-
Notifications
You must be signed in to change notification settings - Fork 1.3k
RAC: Submenu support #5648
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
RAC: Submenu support #5648
Changes from 45 commits
Commits
Show all changes
81 commits
Select commit
Hold shift + click to select a range
4c54a2f
initialize RAC submenu
reidbarber 75edf1f
use cached children
reidbarber dbc2cf8
cleanup
reidbarber 8bdd954
use one useRenderProps
reidbarber 5d7c9a6
types
reidbarber da103f0
cleanup
reidbarber 0100aa5
fix trigger ref
reidbarber bd95e34
typescript
reidbarber 2e6b265
add chevron style to submenu trigger
reidbarber c3cb412
types
reidbarber a61d762
cleanup
reidbarber acc9144
pass submenu ref
reidbarber afb26c0
Merge remote-tracking branch 'origin/main' into rac-submenu-2
reidbarber f7bbc67
add submenu story to menu story file
reidbarber 9537ac5
fix nested case
reidbarber 5eeaefe
cleanup
reidbarber e41c580
add nested story
reidbarber 0fab5de
fix trigger attribute
reidbarber 74c94e5
add tests
reidbarber 93eae69
update jsdoc
reidbarber 0ac5950
add docs
reidbarber 531f880
update storybook styles
reidbarber 0353aad
Merge branch 'main' into rac-submenu-2
reidbarber 78bb709
fix docs types
reidbarber 46ee9ca
Merge branch 'rac-submenu-2' of https://github.com/adobe/react-spectr…
reidbarber 444a051
cleanup tests
reidbarber 268619e
move imports in docs closer to example
reidbarber e7c1207
typescript
reidbarber a11f588
add example to homepage
reidbarber a7405f9
close all submenus if underlay is clicked
reidbarber 10862de
revert autoformatting from headwind
reidbarber 5193143
add to small example, fix imports and labels
reidbarber 2461c4c
render via portal
reidbarber 9f215a2
add render props and data attributes
reidbarber 774a524
add || undefined
reidbarber 4a6064d
add many items example
reidbarber 2f1c070
add keys for storybook
reidbarber ff34be5
imrove styles on docs page
reidbarber 7c45618
improve homepage styles
reidbarber de49d82
move chevron into item wrapper
reidbarber ffcbbd4
Merge remote-tracking branch 'origin/main' into rac-submenu-2
reidbarber e00dd27
ts lint
reidbarber d6509a2
lint
reidbarber d8fdc04
story style update
reidbarber 087315b
style isSubmenuOpen states
reidbarber 2613335
add dynamic example to dcs
reidbarber c52c8c5
don't allow submenu trigger to be a link
reidbarber e9777b6
clarify submenutrigger children order in types
reidbarber 5aee52b
use proper hover state from useHover
reidbarber 6cd4870
update tests
reidbarber db7f438
update docs to clarify children
reidbarber ed2fb5c
remove top -5 offset
reidbarber 292fac0
add disabled submenu example
reidbarber 05c89e3
fix iOS VO submenu closing issue
reidbarber 14f5584
add Select story with many items
reidbarber 5db5718
move docs chevron styles from inline to CSS snippet
reidbarber 8e1f11c
export SubmenuTrigger directly without forwardRef
reidbarber 63ee502
update render props
reidbarber dcea397
fix indentation
reidbarber 544f5e1
add has-submenu to tailwind plugin
reidbarber d136d0a
remove offset
reidbarber b15ba52
Merge remote-tracking branch 'origin/main' into rac-submenu-2
reidbarber e2df1d2
Merge branch 'main' into rac-submenu-2
reidbarber c4bc063
fix homepage example styles
reidbarber e9fd987
fix docs example dark mode style
reidbarber 4b06860
focus trigger on escape
reidbarber 85c38bf
add test for focus menu trigger after submenu closes via escape
reidbarber d4d3058
Merge remote-tracking branch 'origin/main' into rac-submenu-2
reidbarber 161a84a
add alpha tag to docs
reidbarber 66e5b97
add JSDoc
reidbarber 3dfab71
fix restoring focus to menu trigger after nested submenu closed via E…
reidbarber 51e34f0
lint
reidbarber e208c99
Merge branch 'main' into rac-submenu-2
reidbarber 4389c5c
Render popover outside menu item div
devongovett f85a0b8
support a custom delay prop in hook and RAC
reidbarber 77c5cab
remove from homepage and tailwind starter for now
reidbarber 7c9ac79
Merge branch 'main' into rac-submenu-2
LFDanLu 7174f6d
revert auto-formatting
reidbarber b8ab586
Merge remote-tracking branch 'origin/main' into rac-submenu-2
reidbarber 31df572
Merge branch 'rac-submenu-2' of https://github.com/adobe/react-spectr…
reidbarber efc1c46
Merge branch 'main' into rac-submenu-2
reidbarber File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,8 +14,8 @@ import {Arrow} from './components'; | |
import {Button} from 'tailwind-starter/Button'; | ||
import {Cell, Column, Row, TableHeader} from 'tailwind-starter/Table'; | ||
import {Checkbox} from 'tailwind-starter/Checkbox'; | ||
import {CloudSun, Dessert, Droplet, Droplets, FilterIcon, MoreHorizontal, PencilIcon, PlusIcon, RefreshCw, SlidersIcon, StarIcon, Sun, SunDim, TrashIcon} from 'lucide-react'; | ||
import {ColumnProps, Dialog, DialogTrigger, DropZone, Form, Heading, isFileDropItem, Key, MenuTrigger, ModalOverlay, ModalOverlayProps, Modal as RACModal, ResizableTableContainer, Selection, SortDescriptor, Table, TableBody, Text, ToggleButton, ToggleButtonProps, TooltipTrigger} from 'react-aria-components'; | ||
import {CloudSun, Dessert, Droplet, Droplets, FilterIcon, Mail, MoreHorizontal, PencilIcon, PlusIcon, RefreshCw, ShareIcon, SlidersIcon, StarIcon, Sun, SunDim, TrashIcon, Twitter} from 'lucide-react'; | ||
import {ColumnProps, Dialog, DialogTrigger, DropZone, Form, Heading, isFileDropItem, Key, MenuTrigger, ModalOverlay, ModalOverlayProps, Modal as RACModal, ResizableTableContainer, Selection, SortDescriptor, SubmenuTrigger, Table, TableBody, Text, ToggleButton, ToggleButtonProps, TooltipTrigger} from 'react-aria-components'; | ||
import {ComboBox, ComboBoxItem} from 'tailwind-starter/ComboBox'; | ||
import {DatePicker} from 'tailwind-starter/DatePicker'; | ||
import {focusRing} from 'tailwind-starter/utils'; | ||
|
@@ -245,6 +245,18 @@ export function ExampleApp() { | |
<MenuItem id="favorite"><StarIcon aria-hidden className="w-4 h-4" /> {item.isFavorite ? 'Unfavorite' : 'Favorite'}</MenuItem> | ||
<MenuItem id="edit"><PencilIcon aria-hidden className="w-4 h-4" /> Edit…</MenuItem> | ||
<MenuItem id="delete"><TrashIcon aria-hidden className="w-4 h-4" /> Delete…</MenuItem> | ||
<SubmenuTrigger> | ||
<MenuItem aria-label="Share"> | ||
<ShareIcon aria-hidden className="w-4 h-4" /> | ||
Share | ||
</MenuItem> | ||
<Popover> | ||
<Menu> | ||
<MenuItem href={`https://twitter.com/intent/tweet?text=${encodeURIComponent(item.common_name)}`} target="blank" rel="noopener noreferrer" aria-label="Twitter"><Twitter aria-hidden className="w-4 h-4" /> Twitter…</MenuItem> | ||
<MenuItem href={`mailto:[email protected]?subject=${encodeURIComponent(item.common_name)}`} target="blank" rel="noopener noreferrer" aria-label="Email"><Mail aria-hidden className="w-4 h-4" /> Email…</MenuItem> | ||
</Menu> | ||
</Popover> | ||
</SubmenuTrigger> | ||
</Menu> | ||
</MenuTrigger> | ||
</div> | ||
|
@@ -295,6 +307,18 @@ export function ExampleApp() { | |
<MenuItem id="favorite"><StarIcon aria-hidden className="w-4 h-4" /> {item.isFavorite ? 'Unfavorite' : 'Favorite'}</MenuItem> | ||
<MenuItem id="edit"><PencilIcon aria-hidden className="w-4 h-4" /> Edit…</MenuItem> | ||
<MenuItem id="delete"><TrashIcon aria-hidden className="w-4 h-4" /> Delete…</MenuItem> | ||
<SubmenuTrigger> | ||
<MenuItem aria-label="Share"> | ||
<ShareIcon aria-hidden className="w-4 h-4" /> | ||
Share | ||
</MenuItem> | ||
<Popover> | ||
<Menu> | ||
<MenuItem href={`https://twitter.com/intent/tweet?text=${encodeURIComponent(item.common_name)}`} target="blank" rel="noopener noreferrer" aria-label="Twitter"><Twitter aria-hidden className="w-4 h-4" /> Twitter…</MenuItem> | ||
<MenuItem href={`mailto:[email protected]?subject=${encodeURIComponent(item.common_name)}`} target="blank" rel="noopener noreferrer" aria-label="Email"><Mail aria-hidden className="w-4 h-4" /> Email…</MenuItem> | ||
</Menu> | ||
</Popover> | ||
</SubmenuTrigger> | ||
</Menu> | ||
</MenuTrigger> | ||
</Cell> | ||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.