* Display keyboard shortcuts in menus where available
* feat: Display keyboard shortcuts in action menus
Pass shortcut data from Action definitions through to menu items and
render formatted key symbols on the right side of menu entries. Handles
platform differences via normalizeKeyDisplay. Also adds Control key
display support and uppercase formatting for single-letter shortcuts.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Show all search results by passing keywords to Fuse.js, display search
context as subtitle, track recently viewed documents for empty state,
and move SharedSearchActions outside KBarPortal to prevent mount flicker.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* feat: table cell bgcolor
* fix: review
* fix: cleanup
* fix: new color picker
* fix: transparentize bg preset colors
* fix: show selected color in color list
* fix: pass active color to picker
* fix: make color picker command agnostic
* fix: tsc
* fix: table row and col background menu
* getColorSetForSelectedCells
* toggleCellBackground to toggleCellSelectionBackground
* cellHasBackground to cellSelectionHasBackground
* useless spread
* presetColors
* get rid of hasMultipleColors
* get rid of customColor
* be explicit in passing color
* alpha controls
* remove new highligh command
* DRY DottedCircleIcon
* restore ff fix
* merge createCellBackground into updateCelllBackground
* default color
* Merge
---------
Co-authored-by: Tom Moor <tom@getoutline.com>
* Add admin role to GroupUser
This change adds an admin role to GroupUser that allows group admins to:
1. Administer other users in the group
2. Change the group name
Changes include:
- Database migration to add isAdmin field to group_users table
- Updated GroupUser model to include isAdmin field
- Added isGroupAdmin policy utility function
- Updated group policy to allow group admins to update groups
- Added API endpoints for managing admin status
- Updated GroupUsersStore to handle admin functionality
- Added tests for the new functionality
* Replace isAdmin with role-based approach for GroupUser
- Added role field to GroupUser model using UserRole.Admin and UserRole.Member
- Created migration to convert isAdmin boolean to role enum
- Updated policies to be synchronous and require pre-loaded relationships
- Updated API endpoints to support both role and legacy isAdmin parameters
- Updated GroupUsersStore to handle role-based functionality
- Updated tests to use role instead of isAdmin
- Maintained backward compatibility with isAdmin in presenters
* Remove isAdmin logic from GroupUser implementation
- Removed isAdmin parameter from GroupUsersStore methods
- Removed isAdmin field from presenter output
- Removed isAdmin from API schemas
- Removed isAdmin parameter handling in API endpoints
- Updated tests to use role instead of isAdmin
- Simplified role handling throughout the codebase
* lint
* tests
* role -> permission
* fe
* test
* Change permission label from 'Admin' to 'Manage'
---------
Co-authored-by: codegen-sh[bot] <131295404+codegen-sh[bot]@users.noreply.github.com>
* works without custom items in menu
* tooltip support for dropdown button
* fix: menu goes out of bounds
* custom node, lazy render menu for perf
* bug fixes
* fix: useTemplateActions re-computed templates on every render
* fix: hide subscribe/unsubscribe for inactive documents & collections
* cleanup `MenuContext` & `useTemplateMenuItems`
* rename prop, increase dropdown max-height
* jsdoc
* chore: Move `CollectionMenu` to Radix
* action button supports v2
* rename button
* respect disabled pointer-events
* separator should go all the way
* Revert "separator should go all the way"
This reverts commit c76afa1252.
* collection group member menu
* comment menu
* group member menu
* group menu; added support for disabled items
* insights menu
* member menu
* notifications menu
* share menu
* alignment
* tsc, graphite feedback
* remove unused `CollectionGroupMenu` & `MemberMenu`
* sub menu primitives
* user menu
* mobile sub menu
* fluid transition for mobile sub-menu
* account menu
* selected icon
* submenu icon
* tsc: migrate TeamMenu
* reactivity
* base menu works
* action internal link & group
* action external link
* simplify NewTemplatesMenu
* animation
* tiny cleanup
* simplify group api
* icon spacer
* root action
* mobile menu
* decrease drawer animation speed
* format
* animation, const separator
* memo..
* TemplatesMenu + Scrollable dropdown
* delete file-ops
* cap height
* Upgrade @typescript-eslint dependencies from v6.21.0 to v8.33.0
- Updated @typescript-eslint/eslint-plugin from ^6.21.0 to ^8.33.0
- Updated @typescript-eslint/parser from ^6.21.0 to ^8.33.0
- Tested linting functionality to ensure compatibility
- This brings the latest TypeScript ESLint features and bug fixes
* lint
* tsc
---------
Co-authored-by: codegen-sh[bot] <131295404+codegen-sh[bot]@users.noreply.github.com>
Co-authored-by: Tom Moor <tom@getoutline.com>
* feat: Collection subscription
* refactor to use latest impl
* load subscriptions only once
* tests, type rename, migration index
* all users in publish flow
* tsc
* remove SubscriptionType.Collection enum
* review
* feat: add paste menu
* fix: for comment
* Add supported embed detection
* fix: Menu is modified before it closes
* Add multiplayer support
* refactor
* perf: Avoid unneccessary mapping
---------
Co-authored-by: Tom Moor <tom.moor@gmail.com>
* feat: allow sort by position for comments
* wait for prosemirror nodes to load
* Move to menu
* remove sort; rename enum
* asc sort for in-thread display
* revert sort
---------
Co-authored-by: Tom Moor <tom.moor@gmail.com>
* refactor: attaching emoji in tree node is unnecessary
* refactor: pass depth and hasChildren as separate props
* refactor: move tree impl into a separate hook
* refactor: separate out as DocumentExplorer for reuse
* fix: separate search and node
* fix: review comments
* fix: tsc
* feat: initial base structure
* feat: utils for constructing and flattening collection tree
* feat: basic demo to display tree-like structure with virtualization
* feat: make it searchable
* feat: row component
* fix: handle row selection
* fix: scroll jitter
* fix: popover max-height to eliminate extra scroll
* fix: position scrollbar correctly
* fix: do not sort to maintain correct tree-like view
* feat: footer
* fix: scroll to selected item
* fix: deselect item
* fix: display selected location in footer
* fix: deselect item if any upon search trigger
* fix: create draft without collection
* fix: pass down collectionId to all the nodes
* feat: publish document under selected location
* fix: move the doc post publish in case it is supposed to be a nested doc
* fix: wrap text for selected location
* fix: footer background in dark mode and unused css
* fix: popover height in small devices
* fix: no need to spread
* refactor: remove outline
* refactor: border-radius is common
* refactor: remove active and focus
* fix: do not shrink spacer
* fix: scroll list padding with correctly adjusted scrolling
* refactor: use constants
* fix: use padding in favor of spacer
* refactor: border attrs not needed
* refactor: control title padding and icon size centrally
* fix: rename param
* fix: import path
* fix: refactor styles, avoid magic numbers
* fix: type err
* feat: make rows collapsible
* fix: fully expanded without disclosure upon search
* fix: use modal in place of popover
* fix: collapse descendants
* fix: rename PublishPopover to PublishModal
* fix: adjust collapse icon as part of tree view
* fix: enable keyboard navigation
* not sure why collapse and expand shortcuts are not working
* fix: row expansion and search box focus and blur
* fix: remove css hover, handle it via active prop
* fix: discard tree like view for search results
* fix: minor tweaks
* refactor: no need to pass onPublish
* refactor: remove unnecessary attrs from search component
* fix: publish button text
* fix: reset intial scroll offset to 0 on search
* fix: remove search highlights
* fix: clean up search component
* refactor: search and row collapse
* refactor: PublishLocation
* fix: show emoji or star icon if present
* fix: shift focus only from top item
* fix: leading emoji
* fix: baseline text
* fix: make path tertiary
* fix: do not show path for collections
* fix: path text color upon selection
* fix: deleted collection case
* fix: no results found
* fix: space around slash
* Refinement, some small refactors
* fix: Publish shortcut, use Button action
* Allow new document creation from command menu without active collection
* fix: duplicate
* fix: Unneccessary truncation
* fix: Scroll on expand/collapse
Remove wraparound
* fix: tsc
* fix: Horizontal overflow on PublishLocation
Remove pointless moveTo method
* fix: Missing translation
* Remove method indirection
Show expanded collection icon in tree when expanded
* Shrink font size a point
* Remove feature flag
* fix: Path color contrast in light mode
Remove unused expanded/show attributes
* shrink -> collapse, fix expanded disclosure without items after searching
* Mobile styles
* fix: scroll just into view
Co-authored-by: Tom Moor <tom.moor@gmail.com>