Skip to content
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

Updates Menu Backdrop behavior #2767

Merged
merged 28 commits into from
Mar 31, 2025
Merged

Updates Menu Backdrop behavior #2767

merged 28 commits into from
Mar 31, 2025

Conversation

TheSonOfThomp
Copy link
Collaborator

@TheSonOfThomp TheSonOfThomp commented Mar 18, 2025

Hooks:

  • Updates 3rd argument in useBackdropClick to accept an options object. Retains (but deprecates) boolean-only functionality.
    • Adds options.allowPropagation to allow or disallow the click event to bubble up to other elements.

Lib

Adds getClosestFocusableElement.
This function crawls up the DOM tree to find the closest focusable element to the provided element
Returns the element itself if it is focusable or if no focusable element is found, it returns the body element.

Menu:

  • Re-enables native event propagation on trigger clicks. (Previously this was done to prevent errors caused by different event handling in React vs Backbone)
  • Adds logic when the menu closes to check if the click occurred on an element that is focusable. If it is then we want to focus that element, otherwise we want to focus the menu trigger.

Copy link

changeset-bot bot commented Mar 18, 2025

🦋 Changeset detected

Latest commit: 94909bb

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 83 packages
Name Type
@leafygreen-ui/hooks Minor
@leafygreen-ui/lib Minor
@leafygreen-ui/menu Major
@lg-charts/chart-card Patch
@lg-chat/input-bar Patch
@lg-chat/message-feedback Patch
@lg-chat/message-rating Patch
@leafygreen-ui/a11y Patch
@leafygreen-ui/checkbox Patch
@leafygreen-ui/code Patch
@leafygreen-ui/combobox Patch
@leafygreen-ui/copyable Patch
@leafygreen-ui/date-picker Patch
@leafygreen-ui/descendants Patch
@leafygreen-ui/drawer Patch
@leafygreen-ui/expandable-card Patch
@leafygreen-ui/form-field Patch
@leafygreen-ui/guide-cue Patch
@leafygreen-ui/leafygreen-provider Patch
@leafygreen-ui/modal Patch
@leafygreen-ui/number-input Patch
@leafygreen-ui/pagination Patch
@leafygreen-ui/password-input Patch
@leafygreen-ui/pipeline Patch
@leafygreen-ui/popover Patch
@leafygreen-ui/portal Patch
@leafygreen-ui/radio-box-group Patch
@leafygreen-ui/radio-group Patch
@leafygreen-ui/search-input Patch
@leafygreen-ui/segmented-control Patch
@leafygreen-ui/select Patch
@leafygreen-ui/side-nav Patch
@leafygreen-ui/split-button Patch
@leafygreen-ui/table Patch
@leafygreen-ui/tabs Patch
@leafygreen-ui/text-area Patch
@leafygreen-ui/text-input Patch
@leafygreen-ui/toast Patch
@leafygreen-ui/tooltip Patch
@lg-charts/colors Patch
@lg-charts/core Patch
@lg-charts/legend Patch
@lg-chat/avatar Patch
@lg-chat/chat-disclaimer Patch
@lg-chat/chat-window Patch
@lg-chat/fixed-chat-window Patch
@lg-chat/lg-markdown Patch
@lg-chat/message-feed Patch
@lg-chat/message-prompts Patch
@lg-chat/message Patch
@lg-chat/rich-links Patch
@lg-chat/title-bar Patch
@leafygreen-ui/avatar Patch
@leafygreen-ui/badge Patch
@leafygreen-ui/banner Patch
@leafygreen-ui/button Patch
@leafygreen-ui/callout Patch
@leafygreen-ui/card Patch
@leafygreen-ui/chip Patch
@leafygreen-ui/confirmation-modal Patch
@leafygreen-ui/date-utils Patch
@leafygreen-ui/empty-state Patch
@leafygreen-ui/form-footer Patch
@leafygreen-ui/gallery-indicator Patch
@leafygreen-ui/icon-button Patch
@leafygreen-ui/info-sprinkle Patch
@leafygreen-ui/inline-definition Patch
@leafygreen-ui/input-option Patch
@leafygreen-ui/loading-indicator Patch
@leafygreen-ui/logo Patch
@leafygreen-ui/marketing-modal Patch
@leafygreen-ui/ordered-list Patch
@leafygreen-ui/polymorphic Patch
@leafygreen-ui/skeleton-loader Patch
@leafygreen-ui/stepper Patch
@leafygreen-ui/toggle Patch
@leafygreen-ui/tokens Patch
@leafygreen-ui/typography Patch
@lg-tools/storybook-addon Patch
@lg-charts/drag-provider Patch
@lg-charts/series-provider Patch
@lg-tools/storybook-decorators Patch
@leafygreen-ui/ripple Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@TheSonOfThomp TheSonOfThomp marked this pull request as ready for review March 28, 2025 20:54
@TheSonOfThomp TheSonOfThomp requested a review from a team as a code owner March 28, 2025 20:54
@TheSonOfThomp TheSonOfThomp requested review from shaneeza and removed request for a team March 28, 2025 20:54
@mongodb mongodb deleted a comment from github-actions bot Mar 28, 2025
Copy link
Contributor

github-actions bot commented Mar 28, 2025

Size Change: +457 B (+0.03%)

Total Size: 1.48 MB

Filename Size Change
packages/hooks/dist/esm/index.js 3.45 kB +89 B (+2.65%)
packages/hooks/dist/index.js 3.59 kB +96 B (+2.75%)
packages/lib/dist/esm/index.js 2.54 kB +98 B (+4.01%)
packages/lib/dist/index.js 2.7 kB +95 B (+3.65%)
packages/menu/dist/esm/index.js 7.94 kB +42 B (+0.53%)
packages/menu/dist/index.js 8.18 kB +37 B (+0.45%)
ℹ️ View Unchanged
Filename Size
charts/chart-card/dist/esm/index.js 2.78 kB
charts/chart-card/dist/index.js 2.93 kB
charts/colors/dist/esm/index.js 515 B
charts/colors/dist/index.js 640 B
charts/core/dist/esm/index.js 15.2 kB
charts/core/dist/index.js 15.4 kB
charts/drag-provider/dist/esm/index.js 1.39 kB
charts/drag-provider/dist/index.js 1.5 kB
charts/legend/dist/esm/index.js 1.55 kB
charts/legend/dist/index.js 1.71 kB
charts/series-provider/dist/esm/index.js 1.05 kB
charts/series-provider/dist/index.js 1.17 kB
chat/avatar/dist/esm/index.js 1.36 kB
chat/avatar/dist/index.js 1.52 kB
chat/chat-disclaimer/dist/esm/index.js 566 B
chat/chat-disclaimer/dist/index.js 755 B
chat/chat-window/dist/esm/index.js 1.62 kB
chat/chat-window/dist/index.js 1.79 kB
chat/fixed-chat-window/dist/esm/index.js 2.39 kB
chat/fixed-chat-window/dist/index.js 2.57 kB
chat/input-bar/dist/esm/index.js 6.9 kB
chat/input-bar/dist/index.js 7.11 kB
chat/leafygreen-chat-provider/dist/esm/index.js 873 B
chat/leafygreen-chat-provider/dist/index.js 1.02 kB
chat/lg-markdown/dist/esm/index.js 1.44 kB
chat/lg-markdown/dist/index.js 1.59 kB
chat/message-feed/dist/esm/index.js 2.78 kB
chat/message-feed/dist/index.js 2.97 kB
chat/message-feedback/dist/esm/index.js 2.54 kB
chat/message-feedback/dist/index.js 2.78 kB
chat/message-prompts/dist/esm/index.js 1.72 kB
chat/message-prompts/dist/index.js 1.86 kB
chat/message-rating/dist/esm/index.js 2.51 kB
chat/message-rating/dist/index.js 2.71 kB
chat/message/dist/esm/index.js 3.78 kB
chat/message/dist/index.js 3.98 kB
chat/rich-links/dist/esm/index.js 2.68 kB
chat/rich-links/dist/index.js 2.89 kB
chat/title-bar/dist/esm/index.js 1.37 kB
chat/title-bar/dist/index.js 1.58 kB
packages/a11y/dist/esm/index.js 1.7 kB
packages/a11y/dist/index.js 1.83 kB
packages/avatar/dist/esm/index.js 2.35 kB
packages/avatar/dist/index.js 2.53 kB
packages/badge/dist/esm/index.js 1.41 kB
packages/badge/dist/index.js 1.59 kB
packages/banner/dist/esm/index.js 3.08 kB
packages/banner/dist/index.js 3.37 kB
packages/box/dist/esm/index.js 489 B
packages/box/dist/index.js 627 B
packages/button/dist/esm/index.js 4.92 kB
packages/button/dist/index.js 5.1 kB
packages/callout/dist/esm/index.js 1.54 kB
packages/callout/dist/index.js 1.71 kB
packages/card/dist/esm/index.js 1.51 kB
packages/card/dist/index.js 1.69 kB
packages/checkbox/dist/esm/index.js 4.23 kB
packages/checkbox/dist/index.js 4.43 kB
packages/chip/dist/esm/index.js 3.2 kB
packages/chip/dist/index.js 3.41 kB
packages/code/dist/esm/index.js 11 kB
packages/code/dist/index.js 11.6 kB
packages/combobox/dist/esm/index.js 11.6 kB
packages/combobox/dist/index.js 11.8 kB
packages/confirmation-modal/dist/esm/index.js 2.52 kB
packages/confirmation-modal/dist/index.js 2.74 kB
packages/copyable/dist/esm/index.js 2.78 kB
packages/copyable/dist/index.js 2.99 kB
packages/date-picker/dist/esm/index.js 13.6 kB
packages/date-picker/dist/index.js 14 kB
packages/date-utils/dist/esm/index.js 3.48 kB
packages/date-utils/dist/index.js 3.6 kB
packages/descendants/dist/esm/index.js 2.83 kB
packages/descendants/dist/index.js 2.93 kB
packages/drawer/dist/esm/index.js 3.62 kB
packages/drawer/dist/index.js 3.75 kB
packages/emotion/dist/esm/index.js 345 B
packages/emotion/dist/index.js 555 B
packages/empty-state/dist/esm/index.js 1.77 kB
packages/empty-state/dist/index.js 1.94 kB
packages/expandable-card/dist/esm/index.js 2.85 kB
packages/expandable-card/dist/index.js 3.03 kB
packages/form-field/dist/esm/index.js 4.31 kB
packages/form-field/dist/index.js 4.47 kB
packages/form-footer/dist/esm/index.js 1.71 kB
packages/form-footer/dist/index.js 1.91 kB
packages/gallery-indicator/dist/esm/index.js 1.51 kB
packages/gallery-indicator/dist/index.js 1.67 kB
packages/guide-cue/dist/esm/index.js 6.37 kB
packages/guide-cue/dist/index.js 6.57 kB
packages/icon-button/dist/esm/index.js 2.23 kB
packages/icon-button/dist/index.js 2.43 kB
packages/icon/dist/ActivityFeed.js 1.95 kB
packages/icon/dist/AddFile.js 1.72 kB
packages/icon/dist/AllProducts.js 1.79 kB
packages/icon/dist/AnalyticsNode.js 1.56 kB
packages/icon/dist/Apps.js 1.39 kB
packages/icon/dist/Array.js 1.51 kB
packages/icon/dist/ArrowDown.js 1.64 kB
packages/icon/dist/ArrowLeft.js 1.65 kB
packages/icon/dist/ArrowRight.js 1.64 kB
packages/icon/dist/ArrowUp.js 1.64 kB
packages/icon/dist/Beaker.js 2.07 kB
packages/icon/dist/Bell.js 1.6 kB
packages/icon/dist/Biometric.js 2.17 kB
packages/icon/dist/Boolean.js 1.44 kB
packages/icon/dist/Building.js 1.59 kB
packages/icon/dist/Bulb.js 1.64 kB
packages/icon/dist/Calendar.js 1.59 kB
packages/icon/dist/Camera.js 1.68 kB
packages/icon/dist/Cap.js 1.8 kB
packages/icon/dist/CaretDown.js 1.46 kB
packages/icon/dist/CaretLeft.js 1.46 kB
packages/icon/dist/CaretRight.js 1.46 kB
packages/icon/dist/CaretUp.js 1.46 kB
packages/icon/dist/ChartFilled.js 1.56 kB
packages/icon/dist/Charts.js 1.53 kB
packages/icon/dist/Checkmark.js 1.6 kB
packages/icon/dist/CheckmarkWithCircle.js 1.67 kB
packages/icon/dist/ChevronDown.js 1.56 kB
packages/icon/dist/ChevronLeft.js 1.56 kB
packages/icon/dist/ChevronRight.js 1.57 kB
packages/icon/dist/ChevronUp.js 1.55 kB
packages/icon/dist/Circle.js 1.33 kB
packages/icon/dist/Clock.js 1.62 kB
packages/icon/dist/ClockWithArrow.js 1.91 kB
packages/icon/dist/Clone.js 1.5 kB
packages/icon/dist/Cloud.js 1.67 kB
packages/icon/dist/Code.js 1.88 kB
packages/icon/dist/CodeBlock.js 1.81 kB
packages/icon/dist/Coin.js 1.93 kB
packages/icon/dist/Colon.js 1.44 kB
packages/icon/dist/Config.js 1.76 kB
packages/icon/dist/Connect.js 1.92 kB
packages/icon/dist/Copy.js 1.87 kB
packages/icon/dist/CreditCard.js 1.42 kB
packages/icon/dist/CurlyBraces.js 2.02 kB
packages/icon/dist/Cursor.js 1.55 kB
packages/icon/dist/Dashboard.js 1.56 kB
packages/icon/dist/Database.js 2.02 kB
packages/icon/dist/Diagram.js 1.64 kB
packages/icon/dist/Diagram2.js 1.65 kB
packages/icon/dist/Diagram3.js 1.62 kB
packages/icon/dist/Disconnect.js 1.86 kB
packages/icon/dist/Download.js 1.78 kB
packages/icon/dist/Drag.js 1.6 kB
packages/icon/dist/Edit.js 1.51 kB
packages/icon/dist/Ellipsis.js 1.48 kB
packages/icon/dist/Email.js 1.7 kB
packages/icon/dist/EmptyDatabase.js 4.29 kB
packages/icon/dist/EmptyFolder.js 2.08 kB
packages/icon/dist/Eraser.js 1.77 kB
packages/icon/dist/Escalation.js 1.67 kB
packages/icon/dist/esm/ActivityFeed.js 1.74 kB
packages/icon/dist/esm/AddFile.js 1.51 kB
packages/icon/dist/esm/AllProducts.js 1.59 kB
packages/icon/dist/esm/AnalyticsNode.js 1.36 kB
packages/icon/dist/esm/Apps.js 1.2 kB
packages/icon/dist/esm/Array.js 1.31 kB
packages/icon/dist/esm/ArrowDown.js 1.44 kB
packages/icon/dist/esm/ArrowLeft.js 1.44 kB
packages/icon/dist/esm/ArrowRight.js 1.43 kB
packages/icon/dist/esm/ArrowUp.js 1.43 kB
packages/icon/dist/esm/Beaker.js 1.86 kB
packages/icon/dist/esm/Bell.js 1.4 kB
packages/icon/dist/esm/Biometric.js 1.96 kB
packages/icon/dist/esm/Boolean.js 1.24 kB
packages/icon/dist/esm/Building.js 1.39 kB
packages/icon/dist/esm/Bulb.js 1.44 kB
packages/icon/dist/esm/Calendar.js 1.39 kB
packages/icon/dist/esm/Camera.js 1.48 kB
packages/icon/dist/esm/Cap.js 1.59 kB
packages/icon/dist/esm/CaretDown.js 1.26 kB
packages/icon/dist/esm/CaretLeft.js 1.26 kB
packages/icon/dist/esm/CaretRight.js 1.26 kB
packages/icon/dist/esm/CaretUp.js 1.26 kB
packages/icon/dist/esm/ChartFilled.js 1.35 kB
packages/icon/dist/esm/Charts.js 1.33 kB
packages/icon/dist/esm/Checkmark.js 1.4 kB
packages/icon/dist/esm/CheckmarkWithCircle.js 1.46 kB
packages/icon/dist/esm/ChevronDown.js 1.36 kB
packages/icon/dist/esm/ChevronLeft.js 1.36 kB
packages/icon/dist/esm/ChevronRight.js 1.38 kB
packages/icon/dist/esm/ChevronUp.js 1.35 kB
packages/icon/dist/esm/Circle.js 1.13 kB
packages/icon/dist/esm/Clock.js 1.42 kB
packages/icon/dist/esm/ClockWithArrow.js 1.7 kB
packages/icon/dist/esm/Clone.js 1.29 kB
packages/icon/dist/esm/Cloud.js 1.47 kB
packages/icon/dist/esm/Code.js 1.68 kB
packages/icon/dist/esm/CodeBlock.js 1.61 kB
packages/icon/dist/esm/Coin.js 1.72 kB
packages/icon/dist/esm/Colon.js 1.25 kB
packages/icon/dist/esm/Config.js 1.55 kB
packages/icon/dist/esm/Connect.js 1.72 kB
packages/icon/dist/esm/Copy.js 1.67 kB
packages/icon/dist/esm/CreditCard.js 1.22 kB
packages/icon/dist/esm/CurlyBraces.js 1.82 kB
packages/icon/dist/esm/Cursor.js 1.35 kB
packages/icon/dist/esm/Dashboard.js 1.36 kB
packages/icon/dist/esm/Database.js 1.81 kB
packages/icon/dist/esm/Diagram.js 1.44 kB
packages/icon/dist/esm/Diagram2.js 1.44 kB
packages/icon/dist/esm/Diagram3.js 1.42 kB
packages/icon/dist/esm/Disconnect.js 1.65 kB
packages/icon/dist/esm/Download.js 1.57 kB
packages/icon/dist/esm/Drag.js 1.41 kB
packages/icon/dist/esm/Edit.js 1.31 kB
packages/icon/dist/esm/Ellipsis.js 1.29 kB
packages/icon/dist/esm/Email.js 1.5 kB
packages/icon/dist/esm/EmptyDatabase.js 4.07 kB
packages/icon/dist/esm/EmptyFolder.js 1.88 kB
packages/icon/dist/esm/Eraser.js 1.56 kB
packages/icon/dist/esm/Escalation.js 1.46 kB
packages/icon/dist/esm/Export.js 1.57 kB
packages/icon/dist/esm/Favorite.js 1.52 kB
packages/icon/dist/esm/Federation.js 1.84 kB
packages/icon/dist/esm/File.js 1.33 kB
packages/icon/dist/esm/Filter.js 1.32 kB
packages/icon/dist/esm/Folder.js 1.23 kB
packages/icon/dist/esm/Format.js 1.65 kB
packages/icon/dist/esm/FullScreenEnter.js 1.48 kB
packages/icon/dist/esm/FullScreenExit.js 1.49 kB
packages/icon/dist/esm/Function.js 2.53 kB
packages/icon/dist/esm/Gauge.js 1.52 kB
packages/icon/dist/esm/GlobeAmericas.js 1.44 kB
packages/icon/dist/esm/GovernmentBuilding.js 1.47 kB
packages/icon/dist/esm/Hash.js 1.62 kB
packages/icon/dist/esm/HiddenSecondaryNode.js 2.89 kB
packages/icon/dist/esm/Highlight.js 1.67 kB
packages/icon/dist/esm/Home.js 1.58 kB
packages/icon/dist/esm/HorizontalDrag.js 1.41 kB
packages/icon/dist/esm/Import.js 1.56 kB
packages/icon/dist/esm/ImportantWithCircle.js 1.33 kB
packages/icon/dist/esm/index.js 33.9 kB
packages/icon/dist/esm/InfoWithCircle.js 1.36 kB
packages/icon/dist/esm/InternalEmployee.js 1.65 kB
packages/icon/dist/esm/InviteUser.js 1.67 kB
packages/icon/dist/esm/Key.js 1.47 kB
packages/icon/dist/esm/Laptop.js 1.46 kB
packages/icon/dist/esm/LightningBolt.js 1.33 kB
packages/icon/dist/esm/Link.js 1.83 kB
packages/icon/dist/esm/List.js 1.47 kB
packages/icon/dist/esm/Lock.js 1.43 kB
packages/icon/dist/esm/LogIn.js 1.5 kB
packages/icon/dist/esm/LogOut.js 1.56 kB
packages/icon/dist/esm/MagnifyingGlass.js 1.4 kB
packages/icon/dist/esm/Megaphone.js 1.37 kB
packages/icon/dist/esm/Menu.js 1.28 kB
packages/icon/dist/esm/Minus.js 1.23 kB
packages/icon/dist/esm/Mobile.js 1.23 kB
packages/icon/dist/esm/Moon.js 1.41 kB
packages/icon/dist/esm/MultiDirectionArrow.js 1.45 kB
packages/icon/dist/esm/MultiLayers.js 2.4 kB
packages/icon/dist/esm/NavCollapse.js 1.47 kB
packages/icon/dist/esm/NavExpand.js 1.48 kB
packages/icon/dist/esm/NoFilter.js 1.46 kB
packages/icon/dist/esm/NotAllowed.js 1.35 kB
packages/icon/dist/esm/Note.js 1.38 kB
packages/icon/dist/esm/NumberedList.js 2.28 kB
packages/icon/dist/esm/OpenNewTab.js 1.66 kB
packages/icon/dist/esm/OutlineFavorite.js 1.79 kB
packages/icon/dist/esm/Package.js 1.64 kB
packages/icon/dist/esm/Pause.js 1.28 kB
packages/icon/dist/esm/Pending.js 1.26 kB
packages/icon/dist/esm/Person.js 1.45 kB
packages/icon/dist/esm/PersonGroup.js 1.65 kB
packages/icon/dist/esm/PersonWithLock.js 1.66 kB
packages/icon/dist/esm/Pin.js 1.39 kB
packages/icon/dist/esm/Play.js 1.27 kB
packages/icon/dist/esm/Plus.js 1.29 kB
packages/icon/dist/esm/PlusWithCircle.js 1.32 kB
packages/icon/dist/esm/Primary.js 1.34 kB
packages/icon/dist/esm/Project.js 1.38 kB
packages/icon/dist/esm/QuestionMarkWithCircle.js 1.69 kB
packages/icon/dist/esm/Read.js 1.98 kB
packages/icon/dist/esm/Recommended.js 2.16 kB
packages/icon/dist/esm/Redo.js 1.63 kB
packages/icon/dist/esm/Refresh.js 1.7 kB
packages/icon/dist/esm/Relationship.js 1.39 kB
packages/icon/dist/esm/ReplicaSet.js 1.54 kB
packages/icon/dist/esm/Resize.js 1.36 kB
packages/icon/dist/esm/Return.js 1.46 kB
packages/icon/dist/esm/Revert.js 1.5 kB
packages/icon/dist/esm/Router.js 2.16 kB
packages/icon/dist/esm/Save.js 1.89 kB
packages/icon/dist/esm/SearchIndex.js 2.02 kB
packages/icon/dist/esm/Secondary.js 1.58 kB
packages/icon/dist/esm/Serverless.js 1.53 kB
packages/icon/dist/esm/Settings.js 1.96 kB
packages/icon/dist/esm/ShardedCluster.js 1.91 kB
packages/icon/dist/esm/Shell.js 1.45 kB
packages/icon/dist/esm/Shirt.js 1.4 kB
packages/icon/dist/esm/SMS.js 1.41 kB
packages/icon/dist/esm/SortAscending.js 1.49 kB
packages/icon/dist/esm/SortDescending.js 1.48 kB
packages/icon/dist/esm/Sparkle.js 1.81 kB
packages/icon/dist/esm/SplitHorizontal.js 1.25 kB
packages/icon/dist/esm/SplitVertical.js 1.25 kB
packages/icon/dist/esm/Stitch.js 1.29 kB
packages/icon/dist/esm/Stop.js 1.14 kB
packages/icon/dist/esm/String.js 1.4 kB
packages/icon/dist/esm/Sun.js 1.62 kB
packages/icon/dist/esm/Support.js 1.48 kB
packages/icon/dist/esm/Sweep.js 1.5 kB
packages/icon/dist/esm/Table.js 1.28 kB
packages/icon/dist/esm/Tag.js 1.31 kB
packages/icon/dist/esm/TemporaryTable.js 1.51 kB
packages/icon/dist/esm/ThumbsDown.js 1.6 kB
packages/icon/dist/esm/ThumbsUp.js 1.6 kB
packages/icon/dist/esm/TimeSeries.js 1.64 kB
packages/icon/dist/esm/TimeSeriesCollection.js 1.78 kB
packages/icon/dist/esm/Trash.js 1.31 kB
packages/icon/dist/esm/Undo.js 1.62 kB
packages/icon/dist/esm/University.js 1.81 kB
packages/icon/dist/esm/Unlock.js 1.5 kB
packages/icon/dist/esm/Unsorted.js 1.53 kB
packages/icon/dist/esm/UpDownCarets.js 1.38 kB
packages/icon/dist/esm/Upload.js 1.59 kB
packages/icon/dist/esm/VerticalEllipsis.js 1.3 kB
packages/icon/dist/esm/View.js 1.44 kB
packages/icon/dist/esm/Visibility.js 1.61 kB
packages/icon/dist/esm/VisibilityOff.js 2.01 kB
packages/icon/dist/esm/Warning.js 1.38 kB
packages/icon/dist/esm/Wizard.js 1.72 kB
packages/icon/dist/esm/Wrench.js 1.72 kB
packages/icon/dist/esm/Write.js 1.99 kB
packages/icon/dist/esm/X.js 1.42 kB
packages/icon/dist/esm/XWithCircle.js 1.36 kB
packages/icon/dist/Export.js 1.78 kB
packages/icon/dist/Favorite.js 1.73 kB
packages/icon/dist/Federation.js 2.05 kB
packages/icon/dist/File.js 1.53 kB
packages/icon/dist/Filter.js 1.52 kB
packages/icon/dist/Folder.js 1.43 kB
packages/icon/dist/Format.js 1.85 kB
packages/icon/dist/FullScreenEnter.js 1.68 kB
packages/icon/dist/FullScreenExit.js 1.69 kB
packages/icon/dist/Function.js 2.74 kB
packages/icon/dist/Gauge.js 1.72 kB
packages/icon/dist/GlobeAmericas.js 1.64 kB
packages/icon/dist/GovernmentBuilding.js 1.67 kB
packages/icon/dist/Hash.js 1.83 kB
packages/icon/dist/HiddenSecondaryNode.js 3.1 kB
packages/icon/dist/Highlight.js 1.87 kB
packages/icon/dist/Home.js 1.79 kB
packages/icon/dist/HorizontalDrag.js 1.61 kB
packages/icon/dist/Import.js 1.77 kB
packages/icon/dist/ImportantWithCircle.js 1.53 kB
packages/icon/dist/index.js 34.2 kB
packages/icon/dist/InfoWithCircle.js 1.56 kB
packages/icon/dist/InternalEmployee.js 1.86 kB
packages/icon/dist/InviteUser.js 1.87 kB
packages/icon/dist/Key.js 1.67 kB
packages/icon/dist/Laptop.js 1.65 kB
packages/icon/dist/LightningBolt.js 1.53 kB
packages/icon/dist/Link.js 2.04 kB
packages/icon/dist/List.js 1.67 kB
packages/icon/dist/Lock.js 1.63 kB
packages/icon/dist/LogIn.js 1.7 kB
packages/icon/dist/LogOut.js 1.76 kB
packages/icon/dist/MagnifyingGlass.js 1.6 kB
packages/icon/dist/Megaphone.js 1.57 kB
packages/icon/dist/Menu.js 1.48 kB
packages/icon/dist/Minus.js 1.43 kB
packages/icon/dist/Mobile.js 1.43 kB
packages/icon/dist/Moon.js 1.62 kB
packages/icon/dist/MultiDirectionArrow.js 1.65 kB
packages/icon/dist/MultiLayers.js 2.62 kB
packages/icon/dist/NavCollapse.js 1.67 kB
packages/icon/dist/NavExpand.js 1.68 kB
packages/icon/dist/NoFilter.js 1.66 kB
packages/icon/dist/NotAllowed.js 1.55 kB
packages/icon/dist/Note.js 1.58 kB
packages/icon/dist/NumberedList.js 2.48 kB
packages/icon/dist/OpenNewTab.js 1.87 kB
packages/icon/dist/OutlineFavorite.js 2 kB
packages/icon/dist/Package.js 1.84 kB
packages/icon/dist/Pause.js 1.49 kB
packages/icon/dist/Pending.js 1.46 kB
packages/icon/dist/Person.js 1.65 kB
packages/icon/dist/PersonGroup.js 1.86 kB
packages/icon/dist/PersonWithLock.js 1.86 kB
packages/icon/dist/Pin.js 1.59 kB
packages/icon/dist/Play.js 1.47 kB
packages/icon/dist/Plus.js 1.49 kB
packages/icon/dist/PlusWithCircle.js 1.52 kB
packages/icon/dist/Primary.js 1.54 kB
packages/icon/dist/Project.js 1.58 kB
packages/icon/dist/QuestionMarkWithCircle.js 1.9 kB
packages/icon/dist/Read.js 2.19 kB
packages/icon/dist/Recommended.js 2.37 kB
packages/icon/dist/Redo.js 1.84 kB
packages/icon/dist/Refresh.js 1.9 kB
packages/icon/dist/Relationship.js 1.59 kB
packages/icon/dist/ReplicaSet.js 1.75 kB
packages/icon/dist/Resize.js 1.56 kB
packages/icon/dist/Return.js 1.66 kB
packages/icon/dist/Revert.js 1.7 kB
packages/icon/dist/Router.js 2.37 kB
packages/icon/dist/Save.js 2.09 kB
packages/icon/dist/SearchIndex.js 2.22 kB
packages/icon/dist/Secondary.js 1.78 kB
packages/icon/dist/Serverless.js 1.74 kB
packages/icon/dist/Settings.js 2.16 kB
packages/icon/dist/ShardedCluster.js 2.12 kB
packages/icon/dist/Shell.js 1.65 kB
packages/icon/dist/Shirt.js 1.6 kB
packages/icon/dist/SMS.js 1.6 kB
packages/icon/dist/SortAscending.js 1.69 kB
packages/icon/dist/SortDescending.js 1.69 kB
packages/icon/dist/Sparkle.js 2.02 kB
packages/icon/dist/SplitHorizontal.js 1.45 kB
packages/icon/dist/SplitVertical.js 1.45 kB
packages/icon/dist/Stitch.js 1.49 kB
packages/icon/dist/Stop.js 1.33 kB
packages/icon/dist/String.js 1.6 kB
packages/icon/dist/Sun.js 1.81 kB
packages/icon/dist/Support.js 1.69 kB
packages/icon/dist/Sweep.js 1.7 kB
packages/icon/dist/Table.js 1.48 kB
packages/icon/dist/Tag.js 1.51 kB
packages/icon/dist/TemporaryTable.js 1.72 kB
packages/icon/dist/ThumbsDown.js 1.81 kB
packages/icon/dist/ThumbsUp.js 1.8 kB
packages/icon/dist/TimeSeries.js 1.86 kB
packages/icon/dist/TimeSeriesCollection.js 1.99 kB
packages/icon/dist/Trash.js 1.51 kB
packages/icon/dist/Undo.js 1.83 kB
packages/icon/dist/University.js 2.02 kB
packages/icon/dist/Unlock.js 1.7 kB
packages/icon/dist/Unsorted.js 1.74 kB
packages/icon/dist/UpDownCarets.js 1.59 kB
packages/icon/dist/Upload.js 1.79 kB
packages/icon/dist/VerticalEllipsis.js 1.5 kB
packages/icon/dist/View.js 1.64 kB
packages/icon/dist/Visibility.js 1.81 kB
packages/icon/dist/VisibilityOff.js 2.22 kB
packages/icon/dist/Warning.js 1.58 kB
packages/icon/dist/Wizard.js 1.93 kB
packages/icon/dist/Wrench.js 1.92 kB
packages/icon/dist/Write.js 2.2 kB
packages/icon/dist/X.js 1.62 kB
packages/icon/dist/XWithCircle.js 1.56 kB
packages/info-sprinkle/dist/esm/index.js 1.83 kB
packages/info-sprinkle/dist/index.js 2.02 kB
packages/inline-definition/dist/esm/index.js 1.69 kB
packages/inline-definition/dist/index.js 1.85 kB
packages/input-option/dist/esm/index.js 2.67 kB
packages/input-option/dist/index.js 2.81 kB
packages/leafygreen-provider/dist/esm/index.js 1.86 kB
packages/leafygreen-provider/dist/index.js 2.02 kB
packages/loading-indicator/dist/esm/index.js 3.38 kB
packages/loading-indicator/dist/index.js 3.55 kB
packages/logo/dist/esm/index.js 39 kB
packages/logo/dist/index.js 39.3 kB
packages/marketing-modal/dist/esm/index.js 3.49 kB
packages/marketing-modal/dist/index.js 3.69 kB
packages/modal/dist/esm/index.js 3.4 kB
packages/modal/dist/index.js 3.61 kB
packages/number-input/dist/esm/index.js 5.59 kB
packages/number-input/dist/index.js 5.76 kB
packages/ordered-list/dist/esm/index.js 1.32 kB
packages/ordered-list/dist/index.js 1.49 kB
packages/pagination/dist/esm/index.js 1.68 kB
packages/pagination/dist/index.js 1.88 kB
packages/palette/dist/esm/index.js 411 B
packages/palette/dist/index.js 562 B
packages/password-input/dist/esm/index.js 4.42 kB
packages/password-input/dist/index.js 4.64 kB
packages/pipeline/dist/esm/index.js 7.85 kB
packages/pipeline/dist/index.js 8.1 kB
packages/polymorphic/dist/esm/index.js 1.27 kB
packages/polymorphic/dist/index.js 1.4 kB
packages/popover/dist/esm/index.js 4.94 kB
packages/popover/dist/index.js 5.08 kB
packages/portal/dist/esm/index.js 929 B
packages/portal/dist/index.js 1.09 kB
packages/radio-box-group/dist/esm/index.js 2.87 kB
packages/radio-box-group/dist/index.js 2.99 kB
packages/radio-group/dist/esm/index.js 3.25 kB
packages/radio-group/dist/index.js 3.38 kB
packages/ripple/dist/esm/index.js 956 B
packages/ripple/dist/index.js 1.05 kB
packages/search-input/dist/esm/index.js 5.89 kB
packages/search-input/dist/index.js 6.1 kB
packages/segmented-control/dist/esm/index.js 5.44 kB
packages/segmented-control/dist/index.js 5.57 kB
packages/select/dist/esm/index.js 8.9 kB
packages/select/dist/index.js 9.11 kB
packages/side-nav/dist/esm/index.js 7.46 kB
packages/side-nav/dist/index.js 7.7 kB
packages/skeleton-loader/dist/esm/index.js 3.19 kB
packages/skeleton-loader/dist/index.js 3.39 kB
packages/split-button/dist/esm/index.js 3.46 kB
packages/split-button/dist/index.js 3.63 kB
packages/stepper/dist/esm/index.js 3.47 kB
packages/stepper/dist/index.js 3.67 kB
packages/table/dist/esm/index.js 8.3 kB
packages/table/dist/index.js 8.55 kB
packages/tabs/dist/esm/index.js 5.42 kB
packages/tabs/dist/index.js 5.56 kB
packages/testing-lib/dist/esm/index.js 4.52 kB
packages/testing-lib/dist/index.js 4.74 kB
packages/testing-lib/dist/renderHookServer.js 391 B
packages/testing-lib/dist/renderHookServerV17.js 239 B
packages/text-area/dist/esm/index.js 2.38 kB
packages/text-area/dist/index.js 2.54 kB
packages/text-input/dist/esm/index.js 2.69 kB
packages/text-input/dist/index.js 2.85 kB
packages/toast/dist/esm/index.js 8.21 kB
packages/toast/dist/index.js 8.49 kB
packages/toggle/dist/esm/index.js 3.05 kB
packages/toggle/dist/index.js 3.23 kB
packages/tokens/dist/esm/index.js 2.5 kB
packages/tokens/dist/index.js 2.62 kB
packages/tooltip/dist/esm/index.js 4.3 kB
packages/tooltip/dist/index.js 4.58 kB
packages/typography/dist/esm/index.js 5.64 kB
packages/typography/dist/index.js 5.8 kB
tools/build/dist/esm/index.js 5.75 kB
tools/build/dist/index.js 5.96 kB
tools/cli/dist/esm/index.js 1.98 kB
tools/cli/dist/index.js 2.13 kB
tools/codemods/dist/_virtual/_rollupPluginBabelHelpers.js 940 B
tools/codemods/dist/codemods/consolidate-props/transform.js 378 B
tools/codemods/dist/codemods/popover-v12/transform.js 1.11 kB
tools/codemods/dist/codemods/rename-component-prop/transform.js 317 B
tools/codemods/dist/codemods/update-component-prop-value/transform.js 330 B
tools/codemods/dist/constants.js 148 B
tools/codemods/dist/esm/_virtual/_rollupPluginBabelHelpers.mjs 935 B
tools/codemods/dist/esm/codemods/consolidate-props/transform.mjs 376 B
tools/codemods/dist/esm/codemods/popover-v12/transform.mjs 1.09 kB
tools/codemods/dist/esm/codemods/rename-component-prop/transform.mjs 314 B
tools/codemods/dist/esm/codemods/update-component-prop-value/transform.mjs 330 B
tools/codemods/dist/esm/constants.mjs 148 B
tools/codemods/dist/esm/index.js 4.24 kB
tools/codemods/dist/esm/types.mjs 765 B
tools/codemods/dist/esm/utils/imports/getImportSpecifiersForDeclaration.mjs 280 B
tools/codemods/dist/esm/utils/jsx/getJSXAttributes.mjs 161 B
tools/codemods/dist/esm/utils/jsx/insertJSXComment/insertJSXComment.mjs 373 B
tools/codemods/dist/esm/utils/transformations/addJSXAttributes/addJSXAttributes.mjs 414 B
tools/codemods/dist/esm/utils/transformations/consolidateJSXAttributes/consolidateJSXAttributes.mjs 666 B
tools/codemods/dist/esm/utils/transformations/removeJSXAttributes/removeJSXAttributes.mjs 362 B
tools/codemods/dist/esm/utils/transformations/replaceJSXAttributes/replaceJSXAttributes.mjs 280 B
tools/codemods/dist/index.js 4.48 kB
tools/codemods/dist/types.js 765 B
tools/codemods/dist/utils/imports/getImportSpecifiersForDeclaration.js 283 B
tools/codemods/dist/utils/jsx/getJSXAttributes.js 165 B
tools/codemods/dist/utils/jsx/insertJSXComment/insertJSXComment.js 373 B
tools/codemods/dist/utils/transformations/addJSXAttributes/addJSXAttributes.js 412 B
tools/codemods/dist/utils/transformations/consolidateJSXAttributes/consolidateJSXAttributes.js 664 B
tools/codemods/dist/utils/transformations/removeJSXAttributes/removeJSXAttributes.js 366 B
tools/codemods/dist/utils/transformations/replaceJSXAttributes/replaceJSXAttributes.js 283 B
tools/create/dist/esm/index.js 2.88 kB
tools/create/dist/index.js 3.05 kB
tools/install/dist/esm/index.js 885 B
tools/install/dist/index.js 1.03 kB
tools/link/dist/esm/index.js 5.04 kB
tools/link/dist/index.js 5.15 kB
tools/lint/dist/esm/index.js 3.77 kB
tools/lint/dist/index.js 3.92 kB
tools/meta/dist/esm/index.js 1.54 kB
tools/meta/dist/index.js 1.69 kB
tools/slackbot/dist/esm/index.js 6.1 kB
tools/slackbot/dist/index.js 6.27 kB
tools/storybook-addon/dist/esm/index.js 4.68 kB
tools/storybook-addon/dist/esm/main.js 4.64 kB
tools/storybook-addon/dist/esm/manager.js 554 B
tools/storybook-addon/dist/esm/preview.js 1.6 kB
tools/storybook-addon/dist/index.js 4.79 kB
tools/storybook-addon/dist/main.js 4.74 kB
tools/storybook-addon/dist/manager.js 686 B
tools/storybook-addon/dist/preview.js 1.69 kB
tools/storybook-decorators/dist/esm/index.js 3.29 kB
tools/storybook-decorators/dist/index.js 3.56 kB
tools/storybook-utils/dist/esm/index.js 1.05 kB
tools/storybook-utils/dist/index.js 1.21 kB
tools/test-harnesses/dist/esm/index.js 1.79 kB
tools/test-harnesses/dist/index.js 1.92 kB
tools/test/dist/esm/index.js 1.69 kB
tools/test/dist/index.js 1.82 kB
tools/update/dist/esm/index.js 730 B
tools/update/dist/index.js 896 B
tools/validate/dist/esm/index.js 6.86 kB
tools/validate/dist/index.js 7.08 kB

compressed-size-action

<MenuItem>Item A</MenuItem>
<MenuItem>Item B</MenuItem>
</Menu>
<Button data-testid="outside-button" onClick={otherButtonHandler}>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

data-testid='outie-button'

@@ -42,12 +73,28 @@ export function useBackdropClick(
* 5. Then we call the callback (typically fires `closeMenu`, setting `isOpen = false`, and rerender the component)
*/

// TODO: Remove this in a major version
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

make a ticket?


const handleClose = useCallback(
(event?: MouseEvent | React.MouseEvent) => {
// TODO: move this logic to useBackdropClick
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ticket?

@@ -199,6 +228,7 @@ export const Menu = React.forwardRef<HTMLDivElement, MenuProps>(function Menu(
onEntered={handlePopoverOpen}
data-testid={LGIDs.root}
data-lgid={LGIDs.root}
ref={popoverRef}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why the switch?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

b/c the popover ref should be on the popover element
I'll add to the changeset

@TheSonOfThomp TheSonOfThomp added this pull request to the merge queue Mar 31, 2025
Merged via the queue into main with commit 30b13ad Mar 31, 2025
11 checks passed
@TheSonOfThomp TheSonOfThomp deleted the a/menu-bug branch March 31, 2025 22:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants