@procore/core-react 12.41.0 → 12.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/AnchorNavigation/AnchorNavigation.styles.js +3 -3
  3. package/dist/Avatar/Avatar.styles.js +5 -5
  4. package/dist/AvatarStack/AvatarStack.styles.js +7 -7
  5. package/dist/Badge/Badge.styles.js +2 -2
  6. package/dist/BadgePill/BadgePill.styles.js +4 -4
  7. package/dist/Banner/Banner.styles.js +10 -10
  8. package/dist/Box/Box.styles.js +1 -1
  9. package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
  10. package/dist/Button/Button.styles.js +5 -5
  11. package/dist/Calendar/Calendar.styles.js +9 -9
  12. package/dist/Card/Card.styles.js +1 -1
  13. package/dist/Checkbox/Checkbox.styles.js +6 -6
  14. package/dist/ContactItem/ContactItem.js +7 -3
  15. package/dist/ContactItem/ContactItem.js.map +1 -1
  16. package/dist/ContactItem/ContactItem.styles.js +5 -5
  17. package/dist/Content/Content.styles.js +2 -2
  18. package/dist/DateInput/DateInput.styles.js +6 -6
  19. package/dist/DetailPage/DetailPage.styles.js +7 -7
  20. package/dist/Dropdown/Dropdown.styles.js +3 -3
  21. package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
  22. package/dist/Dropzone/Dropzone.js +1 -1
  23. package/dist/Dropzone/Dropzone.styles.js +9 -9
  24. package/dist/EmptyState/EmptyState.styles.js +6 -6
  25. package/dist/Field/Field.styles.js +3 -3
  26. package/dist/FileList/FileList.styles.js +3 -3
  27. package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
  28. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
  29. package/dist/FileSelect/FileSelect.styles.js +2 -2
  30. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
  31. package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
  32. package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
  33. package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
  34. package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
  35. package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
  36. package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
  37. package/dist/FileToken/FileToken.styles.js +6 -6
  38. package/dist/FilterToken/FilterToken.styles.js +5 -5
  39. package/dist/FlexList/FlexList.styles.js +1 -1
  40. package/dist/Form/Form.styles.js +13 -13
  41. package/dist/Form/StyledFormikForm.styles.js +2 -2
  42. package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
  43. package/dist/Grid/Grid.styles.js +2 -2
  44. package/dist/GroupSelect/GroupSelect.styles.js +1 -1
  45. package/dist/Input/Input.styles.js +1 -1
  46. package/dist/Link/Link.styles.js +1 -1
  47. package/dist/ListPage/ListPage.styles.js +8 -8
  48. package/dist/Loader/Loader.styles.js +2 -2
  49. package/dist/MenuImperative/MenuImperative.d.ts +1 -1
  50. package/dist/MenuImperative/MenuImperative.js +126 -34
  51. package/dist/MenuImperative/MenuImperative.js.map +1 -1
  52. package/dist/MenuImperative/MenuImperative.styles.js +15 -15
  53. package/dist/MenuImperative/MenuImperative.styles.js.map +1 -1
  54. package/dist/MenuImperative/MenuImperative.types.d.ts +36 -0
  55. package/dist/MenuImperative/MenuImperative.types.js.map +1 -1
  56. package/dist/MenuImperative/sensors.d.ts +6 -3
  57. package/dist/MenuImperative/sensors.js +42 -34
  58. package/dist/MenuImperative/sensors.js.map +1 -1
  59. package/dist/Modal/Modal.d.ts +4 -0
  60. package/dist/Modal/Modal.js +23 -13
  61. package/dist/Modal/Modal.js.map +1 -1
  62. package/dist/Modal/Modal.styles.js +13 -13
  63. package/dist/Modal/Modal.types.d.ts +28 -5
  64. package/dist/Modal/Modal.types.js.map +1 -1
  65. package/dist/Modal/index.d.ts +1 -1
  66. package/dist/Modal/index.js.map +1 -1
  67. package/dist/MultiSelect/MultiSelect.styles.js +8 -8
  68. package/dist/NextMenu/NextMenu.styles.js +3 -3
  69. package/dist/Notation/Notation.js +1 -1
  70. package/dist/NumberInput/NumberInput.styles.js +7 -7
  71. package/dist/Overlay/OverlayArrow.styles.js +1 -1
  72. package/dist/OverlayTrigger/a11yPresets.d.ts +17 -24
  73. package/dist/OverlayTrigger/a11yPresets.js +29 -27
  74. package/dist/OverlayTrigger/a11yPresets.js.map +1 -1
  75. package/dist/PageLayout/PageLayout.styles.js +16 -16
  76. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
  77. package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
  78. package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
  79. package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
  80. package/dist/Pagination/Pagination.styles.js +5 -5
  81. package/dist/Panel/Panel.styles.js +11 -11
  82. package/dist/Pill/Pill.styles.js +3 -3
  83. package/dist/PillSelect/PillSelect.styles.js +4 -4
  84. package/dist/Popover/Popover.styles.js +2 -2
  85. package/dist/Portal/Portal.styles.js +1 -1
  86. package/dist/ProgressBar/ProgressBar.styles.js +4 -4
  87. package/dist/ProgressBar/ProgressBar.styles.js.map +1 -1
  88. package/dist/RadioButton/RadioButton.styles.js +3 -3
  89. package/dist/Required/Required.styles.js +3 -3
  90. package/dist/Search/Search.styles.js +5 -5
  91. package/dist/Section/Section.styles.js +7 -7
  92. package/dist/SegmentedController/SegmentedController.styles.js +4 -4
  93. package/dist/Select/Select.styles.js +8 -8
  94. package/dist/Semantic/Semantic.styles.js +9 -9
  95. package/dist/Slider/Slider.styles.js +5 -5
  96. package/dist/Spinner/Spinner.styles.js +7 -7
  97. package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
  98. package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
  99. package/dist/SuperSelect/SuperSelect.styles.js +38 -38
  100. package/dist/SuperSelect/useSuperSelect.js +2 -2
  101. package/dist/SuperSelect/useSuperSelect.js.map +1 -1
  102. package/dist/Switch/Switch.styles.js +4 -4
  103. package/dist/Table/Table.styles.js +28 -28
  104. package/dist/TableShelf/TableShelf.styles.js +5 -5
  105. package/dist/Tabs/Tabs.styles.js +15 -15
  106. package/dist/Tearsheet/Tearsheet.js +1 -1
  107. package/dist/Tearsheet/Tearsheet.js.map +1 -1
  108. package/dist/Tearsheet/Tearsheet.styles.js +5 -5
  109. package/dist/Tearsheet/storybook/PageLayoutDemo.js +1 -0
  110. package/dist/Tearsheet/storybook/PageLayoutDemo.js.map +1 -1
  111. package/dist/TextArea/TextArea.styles.js +1 -1
  112. package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
  113. package/dist/Thumbnail/Thumbnail.styles.js +17 -17
  114. package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
  115. package/dist/TieredSelect/TieredSelect.styles.js +9 -9
  116. package/dist/Tile/Tile.styles.js +8 -8
  117. package/dist/Title/Title.styles.js +7 -7
  118. package/dist/Toast/Toast.styles.js +3 -3
  119. package/dist/ToggleButton/ToggleButton.styles.js +1 -1
  120. package/dist/Token/Token.styles.js +3 -3
  121. package/dist/ToolHeader/ToolHeader.styles.js +6 -6
  122. package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
  123. package/dist/Tooltip/Tooltip.styles.js +3 -3
  124. package/dist/Tree/Tree.js +1 -1
  125. package/dist/Tree/Tree.styles.js +10 -10
  126. package/dist/Typeahead/Typeahead.styles.js +3 -3
  127. package/dist/Typography/Typography.styles.js +1 -1
  128. package/dist/Typography/Typography.table.story.js +2 -2
  129. package/dist/_hooks/I18n.d.ts +14 -0
  130. package/dist/_locales/en.json +8 -1
  131. package/dist/_locales/pseudo.json +8 -1
  132. package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
  133. package/dist/_storyHelpers_/components/StoryGrid.js +3 -3
  134. package/dist/_styles/colors.js +1 -3
  135. package/dist/_styles/colors.js.map +1 -1
  136. package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +3 -3
  137. package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
  138. package/dist/_typedoc/AvatarStack/AvatarStack.types.json +25 -25
  139. package/dist/_typedoc/Badge/Badge.types.json +6 -6
  140. package/dist/_typedoc/Banner/Banner.types.json +15 -15
  141. package/dist/_typedoc/Box/Box.types.json +68 -68
  142. package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
  143. package/dist/_typedoc/Button/Button.types.json +13 -13
  144. package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
  145. package/dist/_typedoc/Card/Card.types.json +6 -6
  146. package/dist/_typedoc/Checkbox/Checkbox.types.json +8 -8
  147. package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
  148. package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
  149. package/dist/_typedoc/DateSelect/DateSelect.types.json +13 -13
  150. package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
  151. package/dist/_typedoc/Dropdown/Dropdown.types.json +37 -37
  152. package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +31 -31
  153. package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
  154. package/dist/_typedoc/EmptyState/EmptyState.types.json +16 -16
  155. package/dist/_typedoc/FileList/FileList.types.json +9 -9
  156. package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
  157. package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
  158. package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
  159. package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
  160. package/dist/_typedoc/Flex/Flex.types.json +27 -27
  161. package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
  162. package/dist/_typedoc/Form/Form.types.json +760 -760
  163. package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
  164. package/dist/_typedoc/Grid/Grid.types.json +8 -8
  165. package/dist/_typedoc/GroupSelect/GroupSelect.types.json +54 -54
  166. package/dist/_typedoc/Input/Input.types.json +2 -2
  167. package/dist/_typedoc/Link/Link.types.json +1 -1
  168. package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
  169. package/dist/_typedoc/Menu/Menu.types.json +62 -62
  170. package/dist/_typedoc/MenuImperative/MenuImperative.types.json +147 -77
  171. package/dist/_typedoc/Modal/Modal.types.json +96 -68
  172. package/dist/_typedoc/MultiSelect/MultiSelect.types.json +33 -33
  173. package/dist/_typedoc/NextTile/NextTile.types.json +32 -32
  174. package/dist/_typedoc/Notation/Notation.types.json +4 -4
  175. package/dist/_typedoc/NumberInput/NumberInput.types.json +48 -48
  176. package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +33 -33
  177. package/dist/_typedoc/PageLayout/PageLayout.types.json +28 -28
  178. package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
  179. package/dist/_typedoc/Panel/Panel.types.json +27 -27
  180. package/dist/_typedoc/Pill/Pill.types.json +2 -2
  181. package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
  182. package/dist/_typedoc/Popover/Popover.types.json +15 -15
  183. package/dist/_typedoc/ProgressBar/ProgressBar.types.json +7 -7
  184. package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
  185. package/dist/_typedoc/Required/Required.types.json +5 -5
  186. package/dist/_typedoc/Search/Search.types.json +18 -18
  187. package/dist/_typedoc/Section/Section.types.json +15 -15
  188. package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
  189. package/dist/_typedoc/Select/Select.types.json +67 -67
  190. package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
  191. package/dist/_typedoc/Slider/Slider.types.json +6 -6
  192. package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
  193. package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +14 -14
  194. package/dist/_typedoc/Table/Table.types.json +102 -102
  195. package/dist/_typedoc/Tabs/Tabs.types.json +21 -21
  196. package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
  197. package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
  198. package/dist/_typedoc/TextEditor/TextEditor.types.json +11 -11
  199. package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +4 -4
  200. package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
  201. package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +43 -43
  202. package/dist/_typedoc/TieredSelect/TieredSelect.types.json +29 -29
  203. package/dist/_typedoc/Tile/Tile.types.json +8 -8
  204. package/dist/_typedoc/Title/Title.types.json +1 -1
  205. package/dist/_typedoc/Toast/Toast.types.json +4 -4
  206. package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
  207. package/dist/_typedoc/Token/Token.types.json +7 -7
  208. package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
  209. package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +8 -8
  210. package/dist/_typedoc/Tooltip/Tooltip.types.json +15 -15
  211. package/dist/_typedoc/Tree/Tree.types.json +88 -88
  212. package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
  213. package/dist/_typedoc/Typography/Typography.types.json +9 -9
  214. package/dist/_typedoc/_utils/types.json +3 -3
  215. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"MenuImperative.js","names":["DragDropContext","Draggable","Droppable","DndDroppable","Grip","useLabel","useId","React","isValidElement","useEffect","useMemo","useState","Checkbox","FakeCheckbox","Typeahead","useI18nContext","useZIndexContext","colors","addSubcomponents","mergeRefs","StyledDroppable","StyledFooter","StyledGrip","StyledGroup","StyledGroupLabel","StyledHeader","StyledItem","StyledMenu","StyledOptions","StyledSearch","StyledWrapper","createSensors","onScrollBottomThreshold","NO_ANNOUCEMENT","noop","isScrolledToBottom","e","currentTarget","HTMLElement","scrollTop","scrollHeight","clientHeight","MenuContext","createContext","a11yOptionsProps","currentlyDroppableIn","onHoverItem","onScrollBottom","onSelect","role","useMenuContext","context","useContext","Error","useMenuImperativeControlNavigation","ref","enable","arguments","length","undefined","options","_id","menuId","id","_React$useState","_React$useState2","_slicedToArray","activeDescendant","setActiveDescendant","_useState","_useState2","onKeyDown","setOnKeyDown","_ref$current","current","defaultKeyDownNavigationHandler","menuNavigationTriggerProps","menuProps","onChangeActiveDescendant","changeAriaActiveDescendantOnOptions","menuRef","querySelector","setAttribute","MenuImperative_","forwardRef","Menu","_ref","_ref$circular","circular","_ref$onDragEnd","onDragEnd","onDragEnd_","_ref$onScrollBottom","onScrollBottom_","_ref$onSelect","onSelect_","_ref$role","onKeyboardNavigation_","onKeyboardNavigation","multiple","props","_objectWithoutProperties","_excluded","useRef","_useState3","_useState4","setCurrentlyDroppableIn","useCallback","selection","onChangeHighlight","_useMemo","handleItemHover","handleKeyDown","highlight","highlighted","highlightFirst","highlightLast","highlightSelected","highlightSuggested","rehighlightCurrent","prev","next","select","updateSelectCallback","commonA11yOptionProps","_defineProperty","_objectSpread","tabIndex","useImperativeHandle","el","onDragStart","start","provided","announce","itemInfo","JSON","parse","draggableId","droppableIn","onDragUpdate","_update","result","reason","destination","source","createElement","Provider","value","Group","_ref2","clickable","_ref2$item","item","label","children","_excluded2","_useLabel","labelElementType","fieldProps","labelProps","_extends","stringify","findDraggableRecursively","nodeChildren","Children","toArray","i","child","matchingChild","_ref3","ctx","cloneZIndex","renderItemClone","_snapshot","rubric","_draggingChild$props","draggableInfo","draggingChild","cloneProps","ClonedItem","hasCheckbox","type","CheckboxItem","droppableId","isDropDisabled","includes","renderClone","snapshot","innerRef","placeholder","_ref4","_ref4$hasCheckbox","_ref4$children","_ref4$selected","selected","_excluded3","itemProps","$selected","itemChildren","indeterminate","error","checked","onChange","draggableProps","dragHandleProps","$isDraggable","$isDragging","style","zIndex","color","gray45","Item","_ref5","as","_ref5$children","_ref5$item","_ref5$onClick","onClick","onClick_","_ref5$selected","_ref5$suggested","suggested","_ref5$disabled","disabled","restoreFocus","draggableIndex","_excluded4","event","group","action","contextRole","ariaSelected","onMouseMove","$disabled","droppableInfo","Array","isArray","index","isDragDisabled","_ref6","_ref6$selected","_ref6$disabled","_ref6$error","_ref6$indeterminate","_ref6$children","_excluded5","ariaChecked","Options","i18n","t","onScroll","Search","_ref7","className","_ref7$i18nScope","i18nScope","_onChange","valueProp","_excluded6","I18n","isControlled","_React$useState3","_React$useState4","internalValue","setInternalValue","autoFocus","scope","Header","_ref8","_objectDestructuringEmpty","Footer","_ref9","_ref9$padding","padding","_excluded7","displayName","MenuImperative"],"sources":["../../src/MenuImperative/MenuImperative.tsx"],"sourcesContent":["import type {\n DraggableProvided,\n DraggableRubric,\n DraggableStateSnapshot,\n DragStart,\n DragUpdate,\n DroppableProvided,\n DroppableStateSnapshot,\n DropResult,\n ResponderProvided,\n} from '@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-migration'\nimport {\n DragDropContext,\n Draggable,\n Droppable as DndDroppable,\n} from '@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-migration'\nimport { Grip } from '@procore/core-icons/dist'\nimport { useLabel } from '@react-aria/label'\nimport { useId } from '@react-aria/utils'\nimport React, { isValidElement, useEffect, useMemo, useState } from 'react'\nimport type { CheckboxProps } from '../Checkbox'\nimport { Checkbox, FakeCheckbox } from '../Checkbox/Checkbox'\nimport type { TypeaheadProps } from '../Typeahead'\nimport { Typeahead } from '../Typeahead'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { useZIndexContext } from '../_hooks/ZIndex'\nimport { colors } from '../_styles/colors'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport type { PolymorphicAs } from '../_utils/polymorphic'\nimport {\n StyledDroppable,\n StyledFooter,\n StyledGrip,\n StyledGroup,\n StyledGroupLabel,\n StyledHeader,\n StyledItem,\n StyledMenu,\n StyledOptions,\n StyledSearch,\n StyledWrapper,\n} from './MenuImperative.styles'\nimport type {\n ControlNavigationProps,\n ControlNavigationReturn,\n DroppableProps,\n FooterProps,\n GroupProps,\n HeaderProps,\n ItemProps,\n ItemWithDraggingProps,\n MenuContext as IMenuContext,\n MenuItemDefaultElement,\n MenuItemProps,\n MenuProps,\n MenuRef,\n MenuSearchProps,\n OptionsProps,\n Selection,\n} from './MenuImperative.types'\nimport { createSensors } from './sensors'\n\nconst onScrollBottomThreshold = 8\nconst NO_ANNOUCEMENT = ''\n\nfunction noop() {}\n\nfunction isScrolledToBottom(e: React.UIEvent<HTMLDivElement, UIEvent>) {\n return (\n e.currentTarget instanceof HTMLElement &&\n e.currentTarget.scrollTop >=\n e.currentTarget.scrollHeight -\n e.currentTarget.clientHeight -\n onScrollBottomThreshold\n )\n}\n\nexport const MenuContext = React.createContext<IMenuContext>({\n a11yOptionsProps: {},\n currentlyDroppableIn: [],\n onHoverItem: noop,\n onScrollBottom: noop,\n onSelect: noop,\n role: 'none',\n})\n\nexport function useMenuContext(): IMenuContext {\n const context = React.useContext(MenuContext)\n\n if (context === null) {\n throw new Error(\n 'Cannot find `Menu` context, please wrap your component in `<MenuContext.Provider>`'\n )\n }\n\n return context\n}\n\n/**\n * Usefully if navigation is controlled by search input or another input.\n *\n * @param ref MenuImperative ref\n * @param enable True by default. Setting to false will change all props\n * to undefined (except id in menuProps), so navigation controlled by menu itself is restored.\n * @param options.menuId provide id otherwise it will be generated\n * @since 11.5.0\n */\nexport const useMenuImperativeControlNavigation = (\n ref: React.RefObject<MenuRef>,\n enable = true,\n options: ControlNavigationProps = {}\n): ControlNavigationReturn => {\n const { menuId: _id } = options\n const id = useId(_id)\n const [activeDescendant, setActiveDescendant] = React.useState<\n string | undefined\n >()\n const [onKeyDown, setOnKeyDown] = useState<React.KeyboardEventHandler>()\n // ref is null on first render\n React.useEffect(() => {\n setOnKeyDown(() => ref.current?.defaultKeyDownNavigationHandler)\n }, [])\n\n if (enable) {\n const menuNavigationTriggerProps = {\n 'aria-activedescendant': activeDescendant,\n 'aria-controls': id,\n onKeyDown,\n }\n\n const menuProps = {\n onChangeActiveDescendant: setActiveDescendant,\n id,\n }\n\n return {\n menuNavigationTriggerProps,\n menuProps,\n }\n } else {\n return {\n menuNavigationTriggerProps: {},\n menuProps: { id },\n }\n }\n}\n\nfunction changeAriaActiveDescendantOnOptions(id = '', menuRef: Element | null) {\n const options = menuRef?.querySelector<HTMLElement>(\n '[data-internal=\"menuimperative-options\"]'\n )\n\n options?.setAttribute('aria-activedescendant', id)\n}\n\nconst MenuImperative_ = React.forwardRef<MenuRef, MenuProps>(function Menu(\n {\n circular = false,\n onDragEnd: onDragEnd_ = noop,\n onScrollBottom: onScrollBottom_ = noop,\n onSelect: onSelect_ = noop,\n role = 'none',\n onChangeActiveDescendant,\n onKeyboardNavigation: onKeyboardNavigation_,\n id,\n multiple,\n ...props\n },\n forwardRef\n) {\n const ref = React.useRef<HTMLDivElement>(null)\n const [currentlyDroppableIn, setCurrentlyDroppableIn] = useState<string[]>([])\n\n // for context, used by Menu.Item\n const onSelect = React.useCallback(\n function (selection: Selection) {\n onSelect_(selection)\n },\n [onSelect_]\n )\n\n const onChangeHighlight = onChangeActiveDescendant\n ? onChangeActiveDescendant\n : changeAriaActiveDescendantOnOptions\n\n const {\n handleItemHover,\n handleKeyDown: defaultKeyDownNavigationHandler,\n highlight,\n highlighted,\n highlightFirst,\n highlightLast,\n highlightSelected,\n highlightSuggested,\n rehighlightCurrent,\n prev,\n next,\n select,\n updateSelectCallback,\n } = useMemo(\n () => createSensors(ref, circular, onChangeHighlight),\n [circular, onChangeHighlight]\n )\n\n const commonA11yOptionProps = {\n role,\n id,\n ['aria-multiselectable']: multiple,\n }\n\n const a11yOptionsProps = !onChangeActiveDescendant\n ? {\n ...commonA11yOptionProps,\n onKeyDown: onKeyboardNavigation_ ?? defaultKeyDownNavigationHandler,\n tabIndex: 0,\n }\n : {\n ...commonA11yOptionProps,\n onKeyDown: undefined,\n tabIndex: undefined,\n }\n\n updateSelectCallback(onSelect)\n\n // exposes internal menu API\n React.useImperativeHandle(forwardRef, () => ({\n el: ref.current,\n highlight,\n highlighted,\n highlightFirst,\n highlightLast,\n highlightSelected,\n highlightSuggested,\n next,\n prev,\n select,\n defaultKeyDownNavigationHandler,\n }))\n\n useEffect(rehighlightCurrent)\n\n function onDragStart(start: DragStart, provided: ResponderProvided) {\n // TODO Replace with localized instructions\n provided.announce(NO_ANNOUCEMENT)\n const itemInfo = JSON.parse(start.draggableId)\n setCurrentlyDroppableIn(itemInfo.droppableIn)\n }\n\n function onDragUpdate(_update: DragUpdate, provided: ResponderProvided) {\n // TODO Replace with localized instructions\n provided.announce(NO_ANNOUCEMENT)\n }\n\n const onDragEnd = React.useCallback(\n function (result: DropResult, provided: ResponderProvided) {\n // TODO Replace with localized instructions\n provided.announce(NO_ANNOUCEMENT)\n setCurrentlyDroppableIn([])\n if (result.reason === 'DROP' && result.destination) {\n const itemInfo = JSON.parse(result.draggableId)\n onDragEnd_({\n draggableId: itemInfo.draggableId,\n source: result.source,\n destination: result.destination,\n })\n }\n },\n [onDragEnd_]\n )\n\n // for context, used by Menu.Options\n const onScrollBottom = React.useCallback(\n function (e: React.UIEvent<HTMLDivElement, UIEvent>) {\n if (isScrolledToBottom(e)) {\n onScrollBottom_(e)\n }\n },\n [onScrollBottom_]\n )\n\n return (\n <MenuContext.Provider\n value={{\n a11yOptionsProps,\n currentlyDroppableIn,\n onHoverItem: handleItemHover,\n onScrollBottom,\n onSelect,\n role,\n }}\n >\n <StyledWrapper ref={ref}>\n <DragDropContext\n onDragStart={onDragStart}\n onDragUpdate={onDragUpdate}\n onDragEnd={onDragEnd}\n >\n <StyledMenu {...props} />\n </DragDropContext>\n </StyledWrapper>\n </MenuContext.Provider>\n )\n})\n\nexport const Group = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & GroupProps\n>(function Group(\n { clickable, item = 'group', id, label, children, ...props },\n ref\n) {\n const { fieldProps, labelProps } = useLabel({\n id,\n label: label ?? children,\n labelElementType: 'span',\n })\n\n return (\n <StyledGroup\n ref={ref}\n data-group={true}\n data-value={JSON.stringify(item)}\n role={label ? 'group' : 'separator'}\n {...fieldProps}\n {...props}\n >\n <StyledGroupLabel {...labelProps}>{label ?? children}</StyledGroupLabel>\n {label ? children : null}\n </StyledGroup>\n )\n})\n\nfunction findDraggableRecursively(\n children: React.ReactNode,\n draggableId: any\n): React.ReactElement | null {\n const nodeChildren = React.Children.toArray(children)\n for (let i = 0; i < nodeChildren.length; i++) {\n const child = nodeChildren[i]\n if (isValidElement(child)) {\n if ('draggableId' in child.props) {\n if (child.props.draggableId === draggableId) {\n return child\n }\n } else {\n const matchingChild = findDraggableRecursively(\n child.props.children,\n draggableId\n )\n if (matchingChild) {\n return matchingChild\n }\n }\n }\n }\n return null\n}\n\nexport function Droppable({ id, children }: DroppableProps) {\n const ctx = useMenuContext()\n const cloneZIndex = useZIndexContext().value\n\n function renderItemClone(\n provided: DraggableProvided,\n _snapshot: DraggableStateSnapshot,\n rubric: DraggableRubric\n ) {\n const draggableInfo = JSON.parse(rubric.draggableId)\n const draggingChild = findDraggableRecursively(\n children,\n draggableInfo.draggableId\n )\n const cloneProps = draggingChild?.props ?? {}\n\n return (\n <ClonedItem\n hasCheckbox={draggingChild?.type === CheckboxItem}\n provided={provided}\n cloneZIndex={cloneZIndex}\n {...cloneProps}\n />\n )\n }\n\n return (\n <DndDroppable\n droppableId={id}\n isDropDisabled={!ctx.currentlyDroppableIn.includes(id)}\n renderClone={renderItemClone}\n >\n {(provided: DroppableProvided, snapshot: DroppableStateSnapshot) => (\n <StyledDroppable ref={provided.innerRef} data-droppable>\n {children}\n {provided.placeholder}\n </StyledDroppable>\n )}\n </DndDroppable>\n )\n}\n\n// creates a version of a draggable item that can be positioned correctly within modals\n// this should always have the same appearance of an Item or CheckboxItem, but doesn't\n// need to handle selection events, which can't be done while the item is being dragged\nconst ClonedItem = ({\n hasCheckbox = false,\n children = null,\n selected = false,\n provided,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> &\n ItemProps &\n Omit<CheckboxProps, 'checked'> & {\n provided: DraggableProvided\n hasCheckbox: boolean\n cloneZIndex: number\n }) => {\n const itemProps = {\n ...props,\n $selected: selected,\n }\n\n const itemChildren = hasCheckbox ? (\n <Checkbox\n indeterminate={props.indeterminate}\n error={props.error}\n checked={selected}\n onChange={noop}\n >\n {children}\n </Checkbox>\n ) : (\n children\n )\n\n return (\n <StyledItem\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n {...itemProps}\n $isDraggable\n $isDragging\n style={{\n ...provided.draggableProps.style,\n ...props.style,\n zIndex: props.cloneZIndex,\n }}\n >\n <StyledGrip>\n <Grip color={colors.gray45} />\n </StyledGrip>\n {itemChildren}\n </StyledItem>\n )\n}\n\nexport const Item = React.forwardRef(function Item<\n E extends React.ElementType = MenuItemDefaultElement\n>(\n {\n as,\n /* @ts-ignore */\n children = null,\n item = null,\n /* @ts-ignore */\n onClick: onClick_ = noop,\n selected = false,\n suggested = false,\n disabled = false,\n id: _id,\n role,\n restoreFocus,\n draggableId,\n draggableIndex,\n droppableIn,\n ...props\n }: PolymorphicAs.ComponentPropsWithoutRef<MenuItemProps, E>,\n /**\n * TODO: although it is typed just fine from the outside (`<Menu.Item ref>` that is),\n * an effort is required to type it properly here too\n */\n forwardRef: React.Ref<any>\n) {\n const id = useId(_id)\n\n const ctx = useMenuContext()\n\n const onClick = React.useCallback(\n function (event: React.MouseEvent<HTMLDivElement, MouseEvent>) {\n if (disabled) return\n\n onClick_(event)\n\n ctx.onSelect({\n item,\n event,\n group: false,\n action: selected ? 'unselected' : 'selected',\n ...(restoreFocus === undefined ? {} : { restoreFocus }),\n })\n },\n [ctx, item, onClick_, disabled, selected]\n )\n\n let contextRole\n let ariaSelected\n\n if (ctx.role === 'listbox') {\n contextRole = 'option'\n ariaSelected = selected ? true : undefined\n } else if (ctx.role === 'menu') {\n contextRole = 'menuitem'\n }\n\n const itemProps = {\n 'aria-disabled': disabled ? true : undefined,\n 'aria-selected': ariaSelected,\n ...props,\n id,\n role: role ?? contextRole,\n onClick,\n onMouseMove: (e: any) => ctx.onHoverItem(e.currentTarget),\n 'data-group': false,\n 'data-value': JSON.stringify(item),\n 'data-selected': selected,\n 'data-suggested': suggested,\n 'data-disabled': disabled,\n 'data-restorefocus': restoreFocus,\n $disabled: disabled,\n $selected: selected,\n }\n\n if (\n droppableIn !== undefined &&\n draggableId !== undefined &&\n draggableIndex !== undefined\n ) {\n // encoding id and valid droppables as the draggableId, so we can use them to determine where this item can be dropped\n const droppableInfo = {\n draggableId,\n droppableIn: Array.isArray(droppableIn) ? droppableIn : [droppableIn],\n }\n return (\n <Draggable\n draggableId={JSON.stringify(droppableInfo)}\n index={draggableIndex}\n isDragDisabled={disabled}\n >\n {(provided: DraggableProvided) => (\n <StyledItem\n ref={mergeRefs(provided.innerRef, forwardRef)}\n as={as}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n {...itemProps}\n $isDraggable={!disabled}\n style={{ ...provided.draggableProps.style, ...itemProps.style }}\n tabIndex={-1}\n >\n {!disabled && (\n <StyledGrip>\n <Grip color={colors.gray45} />\n </StyledGrip>\n )}\n {children}\n </StyledItem>\n )}\n </Draggable>\n )\n }\n\n return (\n <StyledItem ref={forwardRef} as={as} {...itemProps}>\n {children}\n </StyledItem>\n )\n}) as PolymorphicAs.ComponentWithForwardedRef<\n MenuItemProps,\n MenuItemDefaultElement\n>\n\nexport const CheckboxItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> &\n (ItemProps | ItemWithDraggingProps) &\n Omit<CheckboxProps, 'checked'>\n>(function CheckboxItem(\n {\n selected = false,\n disabled = false,\n error = false,\n indeterminate = false,\n children = null,\n role,\n ...props\n },\n forwardRef\n) {\n const ctx = useMenuContext()\n\n let contextRole\n let ariaChecked: React.AriaAttributes['aria-checked']\n let ariaSelected\n\n if (ctx.role === 'listbox') {\n contextRole = 'option'\n ariaSelected = selected ? true : undefined\n } else if (ctx.role === 'menu') {\n contextRole = 'menuitemcheckbox'\n\n if (indeterminate) {\n ariaChecked = 'mixed'\n } else {\n ariaChecked = selected ? 'true' : 'false'\n }\n }\n\n return (\n <Item\n aria-checked={ariaChecked}\n aria-disabled={disabled ? true : undefined}\n aria-selected={ariaSelected}\n {...props}\n role={role ?? contextRole}\n selected={selected}\n disabled={disabled}\n ref={forwardRef}\n >\n <FakeCheckbox\n indeterminate={indeterminate}\n error={error}\n disabled={disabled}\n checked={selected}\n >\n {children}\n </FakeCheckbox>\n </Item>\n )\n})\nexport const Options = React.forwardRef<HTMLDivElement, OptionsProps>(\n function Options(props, ref) {\n const ctx = useMenuContext()\n const i18n = useI18nContext()\n\n return (\n <StyledOptions\n aria-label={i18n.t('core.menuImperative.options.ariaLabel')}\n {...props}\n {...ctx.a11yOptionsProps}\n data-internal=\"menuimperative-options\"\n ref={ref}\n onScroll={ctx.onScrollBottom}\n />\n )\n }\n)\n\nexport const Search = ({\n className,\n i18nScope = 'core.menu',\n placeholder,\n onChange: _onChange,\n value: valueProp,\n ...props\n}: MenuSearchProps) => {\n const I18n = useI18nContext()\n\n const isControlled = valueProp !== undefined\n const [internalValue, setInternalValue] = React.useState('')\n const value = isControlled ? valueProp : internalValue\n\n const onChange: NonNullable<TypeaheadProps['onChange']> = React.useCallback(\n function (value, event) {\n if (!isControlled) {\n setInternalValue(value)\n }\n _onChange?.(event as unknown as React.ChangeEvent<HTMLInputElement>)\n },\n [_onChange, isControlled]\n )\n\n // intentionally changed to type text + searchbox,\n // voiceOver focus goes to clear button when no results in Chrome\n return (\n <StyledSearch className={className}>\n <Typeahead\n {...props}\n type=\"text\"\n role=\"searchbox\"\n autoFocus={true}\n placeholder={placeholder || I18n.t('search', { scope: i18nScope })}\n onChange={onChange}\n value={value}\n />\n </StyledSearch>\n )\n}\n\nexport const Header = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & HeaderProps\n>(function Header({ ...props }, ref) {\n return <StyledHeader ref={ref} {...props} />\n})\n\nexport const Footer = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & FooterProps\n>(function Footer({ padding = 'md lg', ...props }, ref) {\n return <StyledFooter ref={ref} padding={padding} {...props} />\n})\n\nMenuImperative_.displayName = 'Menu'\n\nDroppable.displayName = 'Menu.Droppable'\n\nFooter.displayName = 'Menu.Footer'\n\nGroup.displayName = 'Menu.Group'\n\nHeader.displayName = 'Menu.Header'\n\nItem.displayName = 'Menu.Item'\n\nOptions.displayName = 'Menu.Options'\n\nSearch.displayName = 'Menu.Search'\n\n/**\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-menu-imperative--demo)\n\n */\nexport const MenuImperative = addSubcomponents(\n {\n CheckboxItem,\n Droppable,\n Footer,\n Group,\n Header,\n Item,\n Options,\n Search,\n },\n MenuImperative_\n)\n"],"mappings":"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"}
1
+ {"version":3,"file":"MenuImperative.js","names":["DragDropContext","Draggable","Droppable","DndDroppable","Grip","useLabel","useId","React","isValidElement","useEffect","useMemo","useState","flushSync","Checkbox","FakeCheckbox","Typeahead","useI18nContext","useZIndexContext","colors","addSubcomponents","mergeRefs","StyledDroppable","StyledFooter","StyledGrip","StyledGroup","StyledGroupLabel","StyledHeader","StyledItem","StyledMenu","StyledOptions","StyledSearch","StyledWrapper","createSensors","onScrollBottomThreshold","findGroupByDroppableId","container","droppableId","droppable","querySelector","concat","group","closest","noop","isScrolledToBottom","e","currentTarget","HTMLElement","scrollTop","scrollHeight","clientHeight","MenuContext","createContext","a11yOptionsProps","currentlyDroppableIn","dndInstructionsId","onHoverItem","onFocusItem","onBlurItem","onScrollBottom","onSelect","role","useMenuContext","context","useContext","Error","IsInsideDroppableContext","useIsInsideDroppable","useMenuImperativeControlNavigation","ref","enable","arguments","length","undefined","options","_id","menuId","id","_React$useState","_React$useState2","_slicedToArray","activeDescendant","setActiveDescendant","_useState","_useState2","onKeyDown","setOnKeyDown","_ref$current","current","defaultKeyDownNavigationHandler","menuNavigationTriggerProps","menuProps","onChangeActiveDescendant","changeAriaActiveDescendantOnOptions","menuRef","setAttribute","MenuImperative_","forwardRef","Menu","_ref","_ref$circular","circular","_ref$onDragEnd","onDragEnd","onDragEnd_","_ref$onScrollBottom","onScrollBottom_","_ref$onSelect","onSelect_","_ref$role","onKeyboardNavigation_","onKeyboardNavigation","multiple","props","_objectWithoutProperties","_excluded","useRef","_useState3","_useState4","setCurrentlyDroppableIn","i18n","useCallback","selection","onChangeHighlight","_useMemo","handleItemHover","handleItemFocus","handleItemBlur","handleKeyDown","highlight","highlighted","highlightFirst","highlightLast","highlightSelected","highlightSuggested","rehighlightCurrent","prev","next","select","updateSelectCallback","setIsDragging","commonA11yOptionProps","_defineProperty","_objectSpread","tabIndex","useImperativeHandle","el","onDragStart","start","provided","_findGroupByDroppable","_findGroupByDroppable2","itemInfo","JSON","parse","draggableId","droppableIn","startPosition","source","index","startGroupTitle","getAttribute","announcement","t","announce","onDragUpdate","_update","_findGroupByDroppable3","_findGroupByDroppable4","_update$destination","_findGroupByDroppable5","_findGroupByDroppable6","endPosition","destination","endGroupTitle","result","_result$destination","_findGroupByDroppable7","_findGroupByDroppable8","reason","createElement","Provider","value","hidden","Group","_ref2","clickable","_ref2$item","item","label","labelId","children","_excluded2","_useLabel","labelElementType","fieldProps","labelProps","_extends","stringify","findDraggableRecursively","nodeChildren","Children","toArray","i","child","matchingChild","_ref3","_excluded3","ctx","cloneZIndex","renderItemClone","_snapshot","rubric","_draggingChild$props","draggableInfo","draggingChild","cloneProps","ClonedItem","hasCheckbox","type","CheckboxItem","isDropDisabled","includes","renderClone","snapshot","innerRef","placeholder","_ref4","_ref4$hasCheckbox","_ref4$children","_ref4$selected","selected","_excluded4","itemProps","$selected","itemChildren","indeterminate","error","checked","onChange","draggableProps","dragHandleProps","$isDraggable","$isDragging","style","zIndex","color","gray45","Item","_ref5","as","_ref5$children","_ref5$item","_ref5$onClick","onClick","onClick_","_ref5$selected","_ref5$suggested","suggested","_ref5$disabled","disabled","restoreFocus","draggableIndex","_excluded5","isInsideDroppable","event","action","contextRole","ariaSelected","ariaDescribedBy","onMouseMove","onFocus","onBlur","$disabled","droppableInfo","Array","isArray","isDragDisabled","_ref6","_ref6$selected","_ref6$disabled","_ref6$error","_ref6$indeterminate","_ref6$children","_excluded6","ariaChecked","Options","onScroll","Search","_ref7","className","_ref7$i18nScope","i18nScope","_onChange","valueProp","_excluded7","I18n","isControlled","_React$useState3","_React$useState4","internalValue","setInternalValue","autoFocus","scope","Header","_ref8","_objectDestructuringEmpty","Footer","_ref9","_ref9$padding","padding","_excluded8","displayName","MenuImperative"],"sources":["../../src/MenuImperative/MenuImperative.tsx"],"sourcesContent":["import type {\n DraggableProvided,\n DraggableRubric,\n DraggableStateSnapshot,\n DragStart,\n DragUpdate,\n DroppableProvided,\n DroppableStateSnapshot,\n DropResult,\n ResponderProvided,\n} from '@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-migration'\nimport {\n DragDropContext,\n Draggable,\n Droppable as DndDroppable,\n} from '@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-migration'\nimport { Grip } from '@procore/core-icons/dist'\nimport { useLabel } from '@react-aria/label'\nimport { useId } from '@react-aria/utils'\nimport React, { isValidElement, useEffect, useMemo, useState } from 'react'\nimport { flushSync } from 'react-dom'\nimport type { CheckboxProps } from '../Checkbox'\nimport { Checkbox, FakeCheckbox } from '../Checkbox/Checkbox'\nimport type { TypeaheadProps } from '../Typeahead'\nimport { Typeahead } from '../Typeahead'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { useZIndexContext } from '../_hooks/ZIndex'\nimport { colors } from '../_styles/colors'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport type { PolymorphicAs } from '../_utils/polymorphic'\nimport {\n StyledDroppable,\n StyledFooter,\n StyledGrip,\n StyledGroup,\n StyledGroupLabel,\n StyledHeader,\n StyledItem,\n StyledMenu,\n StyledOptions,\n StyledSearch,\n StyledWrapper,\n} from './MenuImperative.styles'\nimport type {\n ControlNavigationProps,\n ControlNavigationReturn,\n DroppableProps,\n FooterProps,\n GroupProps,\n HeaderProps,\n ItemProps,\n ItemWithDraggingProps,\n MenuContext as IMenuContext,\n MenuItemDefaultElement,\n MenuItemProps,\n MenuProps,\n MenuRef,\n MenuSearchProps,\n OptionsProps,\n Selection,\n} from './MenuImperative.types'\nimport { createSensors } from './sensors'\n\nconst onScrollBottomThreshold = 8\n\n/**\n * Finds the group element for a given droppable ID (from DnD result).\n * Locates the Droppable via data-droppable-id, then returns its parent Group\n * (ancestor with data-group=\"true\") so we can read data-title for announcements.\n */\nfunction findGroupByDroppableId(\n container: HTMLElement | null,\n droppableId: string\n): HTMLElement | null {\n const droppable = container?.querySelector<HTMLElement>(\n `[data-droppable-id=\"${droppableId}\"]`\n )\n if (!droppable) return null\n const group = droppable.closest<HTMLElement>('[data-group=\"true\"]')\n return group ?? null\n}\n\nfunction noop() {}\n\nfunction isScrolledToBottom(e: React.UIEvent<HTMLDivElement, UIEvent>) {\n return (\n e.currentTarget instanceof HTMLElement &&\n e.currentTarget.scrollTop >=\n e.currentTarget.scrollHeight -\n e.currentTarget.clientHeight -\n onScrollBottomThreshold\n )\n}\n\nexport const MenuContext = React.createContext<IMenuContext>({\n a11yOptionsProps: {},\n currentlyDroppableIn: [],\n dndInstructionsId: '',\n onHoverItem: noop,\n onFocusItem: noop,\n onBlurItem: noop,\n onScrollBottom: noop,\n onSelect: noop,\n role: 'none',\n})\n\nexport function useMenuContext(): IMenuContext {\n const context = React.useContext(MenuContext)\n\n if (context === null) {\n throw new Error(\n 'Cannot find `Menu` context, please wrap your component in `<MenuContext.Provider>`'\n )\n }\n\n return context\n}\n\nconst IsInsideDroppableContext = React.createContext(false)\n\nfunction useIsInsideDroppable(): boolean {\n return React.useContext(IsInsideDroppableContext)\n}\n\n/**\n * Usefully if navigation is controlled by search input or another input.\n *\n * @param ref MenuImperative ref\n * @param enable True by default. Setting to false will change all props\n * to undefined (except id in menuProps), so navigation controlled by menu itself is restored.\n * @param options.menuId provide id otherwise it will be generated\n * @since 11.5.0\n */\nexport const useMenuImperativeControlNavigation = (\n ref: React.RefObject<MenuRef>,\n enable = true,\n options: ControlNavigationProps = {}\n): ControlNavigationReturn => {\n const { menuId: _id } = options\n const id = useId(_id)\n const [activeDescendant, setActiveDescendant] = React.useState<\n string | undefined\n >()\n const [onKeyDown, setOnKeyDown] = useState<React.KeyboardEventHandler>()\n // ref is null on first render\n React.useEffect(() => {\n setOnKeyDown(() => ref.current?.defaultKeyDownNavigationHandler)\n }, [])\n\n if (enable) {\n const menuNavigationTriggerProps = {\n 'aria-activedescendant': activeDescendant,\n 'aria-controls': id,\n onKeyDown,\n }\n\n const menuProps = {\n onChangeActiveDescendant: setActiveDescendant,\n id,\n }\n\n return {\n menuNavigationTriggerProps,\n menuProps,\n }\n } else {\n return {\n menuNavigationTriggerProps: {},\n menuProps: { id },\n }\n }\n}\n\nfunction changeAriaActiveDescendantOnOptions(id = '', menuRef: Element | null) {\n const options = menuRef?.querySelector<HTMLElement>(\n '[data-internal=\"menuimperative-options\"]'\n )\n\n options?.setAttribute('aria-activedescendant', id)\n}\n\nconst MenuImperative_ = React.forwardRef<MenuRef, MenuProps>(function Menu(\n {\n circular = false,\n onDragEnd: onDragEnd_ = noop,\n onScrollBottom: onScrollBottom_ = noop,\n onSelect: onSelect_ = noop,\n role = 'none',\n onChangeActiveDescendant,\n onKeyboardNavigation: onKeyboardNavigation_,\n id,\n multiple,\n ...props\n },\n forwardRef\n) {\n const ref = React.useRef<HTMLDivElement>(null)\n const [currentlyDroppableIn, setCurrentlyDroppableIn] = useState<string[]>([])\n const i18n = useI18nContext()\n const dndInstructionsId = useId()\n\n // for context, used by Menu.Item\n const onSelect = React.useCallback(\n function (selection: Selection) {\n onSelect_(selection)\n },\n [onSelect_]\n )\n\n const onChangeHighlight = onChangeActiveDescendant\n ? onChangeActiveDescendant\n : changeAriaActiveDescendantOnOptions\n\n const {\n handleItemHover,\n handleItemFocus,\n handleItemBlur,\n handleKeyDown: defaultKeyDownNavigationHandler,\n highlight,\n highlighted,\n highlightFirst,\n highlightLast,\n highlightSelected,\n highlightSuggested,\n rehighlightCurrent,\n prev,\n next,\n select,\n updateSelectCallback,\n setIsDragging,\n } = useMemo(\n () => createSensors(ref, circular, onChangeHighlight),\n [circular, onChangeHighlight]\n )\n\n const commonA11yOptionProps = {\n role,\n id,\n ['aria-multiselectable']: multiple,\n }\n\n const a11yOptionsProps = !onChangeActiveDescendant\n ? {\n ...commonA11yOptionProps,\n onKeyDown: onKeyboardNavigation_ ?? defaultKeyDownNavigationHandler,\n tabIndex: 0,\n }\n : {\n ...commonA11yOptionProps,\n onKeyDown: undefined,\n tabIndex: undefined,\n }\n\n updateSelectCallback(onSelect)\n\n // exposes internal menu API\n React.useImperativeHandle(forwardRef, () => ({\n el: ref.current,\n highlight,\n highlighted,\n highlightFirst,\n highlightLast,\n highlightSelected,\n highlightSuggested,\n next,\n prev,\n select,\n defaultKeyDownNavigationHandler,\n }))\n\n useEffect(rehighlightCurrent)\n\n function onDragStart(start: DragStart, provided: ResponderProvided) {\n const itemInfo = JSON.parse(start.draggableId)\n // flushSync needed to ensure proper behavior in Safari\n flushSync(() => setCurrentlyDroppableIn(itemInfo.droppableIn))\n setIsDragging(true)\n\n const startPosition = start.source.index + 1\n const startGroupTitle =\n findGroupByDroppableId(\n ref.current,\n start.source.droppableId\n )?.getAttribute('data-title') ?? ''\n\n const announcement = startGroupTitle\n ? i18n.t('core.menuImperative.dragStartWithGroup', {\n startPosition,\n startGroupTitle,\n })\n : i18n.t('core.menuImperative.dragStart', {\n startPosition,\n })\n provided.announce(announcement)\n }\n\n const onDragUpdate = React.useCallback(function (\n _update: DragUpdate,\n provided: ResponderProvided\n ) {\n const startPosition = _update.source.index + 1\n const startGroupTitle =\n findGroupByDroppableId(\n ref.current,\n _update.source.droppableId\n )?.getAttribute('data-title') ?? ''\n\n const endPosition = _update.destination?.index + 1\n const endGroupTitle = _update.destination\n ? findGroupByDroppableId(\n ref.current,\n _update.destination.droppableId\n )?.getAttribute('data-title') ?? ''\n : ''\n\n const announcement =\n startGroupTitle === endGroupTitle || !endGroupTitle || !startGroupTitle\n ? i18n.t('core.menuImperative.dragUpdate', {\n startPosition,\n endPosition,\n })\n : i18n.t('core.menuImperative.dragUpdateWithGroup', {\n startPosition,\n endPosition,\n startGroupTitle,\n endGroupTitle,\n })\n provided.announce(announcement)\n },\n [])\n\n const onDragEnd = React.useCallback(\n function (result: DropResult, provided: ResponderProvided) {\n const endPosition = result.destination?.index + 1\n const endGroupTitle = result.destination\n ? findGroupByDroppableId(\n ref.current,\n result.destination.droppableId\n )?.getAttribute('data-title') ?? ''\n : ''\n\n const announcement = endGroupTitle\n ? i18n.t('core.menuImperative.dragEndWithGroup', {\n endPosition,\n endGroupTitle,\n })\n : i18n.t('core.menuImperative.dragEnd', {\n endPosition,\n })\n provided.announce(announcement)\n setCurrentlyDroppableIn([])\n setIsDragging(false)\n if (result.reason === 'DROP' && result.destination) {\n const itemInfo = JSON.parse(result.draggableId)\n onDragEnd_({\n draggableId: itemInfo.draggableId,\n source: result.source,\n destination: result.destination,\n })\n }\n },\n [onDragEnd_, setIsDragging]\n )\n\n // for context, used by Menu.Options\n const onScrollBottom = React.useCallback(\n function (e: React.UIEvent<HTMLDivElement, UIEvent>) {\n if (isScrolledToBottom(e)) {\n onScrollBottom_(e)\n }\n },\n [onScrollBottom_]\n )\n\n return (\n <MenuContext.Provider\n value={{\n a11yOptionsProps,\n currentlyDroppableIn,\n dndInstructionsId,\n onHoverItem: handleItemHover,\n onFocusItem: handleItemFocus,\n onBlurItem: handleItemBlur,\n onScrollBottom,\n onSelect,\n role,\n }}\n >\n <StyledWrapper ref={ref}>\n <DragDropContext\n onDragStart={onDragStart}\n onDragUpdate={onDragUpdate}\n onDragEnd={onDragEnd}\n >\n <StyledMenu {...props} />\n </DragDropContext>\n </StyledWrapper>\n <div id={dndInstructionsId} hidden>\n {i18n.t('core.menuImperative.dragAndDropInstructions')}\n </div>\n </MenuContext.Provider>\n )\n})\n\nexport const Group = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & GroupProps\n>(function Group(\n { clickable, item = 'group', label, labelId, children, id, ...props },\n ref\n) {\n let { fieldProps, labelProps } = useLabel({\n id,\n label: label ?? children,\n labelElementType: 'span',\n })\n\n if (labelId) {\n fieldProps = {\n ...fieldProps,\n 'aria-labelledby': labelId,\n }\n labelProps = {\n ...labelProps,\n id: labelId,\n }\n }\n\n return (\n <StyledGroup\n ref={ref}\n data-group={true}\n data-value={JSON.stringify(item)}\n data-title={label}\n role={label ? 'group' : 'separator'}\n {...fieldProps}\n {...props}\n >\n <StyledGroupLabel {...labelProps}>{label ?? children}</StyledGroupLabel>\n {label ? children : null}\n </StyledGroup>\n )\n})\n\nfunction findDraggableRecursively(\n children: React.ReactNode,\n draggableId: any\n): React.ReactElement | null {\n const nodeChildren = React.Children.toArray(children)\n for (let i = 0; i < nodeChildren.length; i++) {\n const child = nodeChildren[i]\n if (isValidElement(child)) {\n if ('draggableId' in child.props) {\n if (child.props.draggableId === draggableId) {\n return child\n }\n } else {\n const matchingChild = findDraggableRecursively(\n child.props.children,\n draggableId\n )\n if (matchingChild) {\n return matchingChild\n }\n }\n }\n }\n return null\n}\n\nexport function Droppable({ id, children, ...props }: DroppableProps) {\n const ctx = useMenuContext()\n const cloneZIndex = useZIndexContext().value\n\n function renderItemClone(\n provided: DraggableProvided,\n _snapshot: DraggableStateSnapshot,\n rubric: DraggableRubric\n ) {\n const draggableInfo = JSON.parse(rubric.draggableId)\n const draggingChild = findDraggableRecursively(\n children,\n draggableInfo.draggableId\n )\n const cloneProps = draggingChild?.props ?? {}\n\n return (\n <ClonedItem\n hasCheckbox={draggingChild?.type === CheckboxItem}\n provided={provided}\n cloneZIndex={cloneZIndex}\n dndInstructionsId={ctx.dndInstructionsId}\n {...cloneProps}\n />\n )\n }\n\n return (\n <DndDroppable\n droppableId={id}\n isDropDisabled={!ctx.currentlyDroppableIn.includes(id)}\n renderClone={renderItemClone}\n >\n {(provided: DroppableProvided, snapshot: DroppableStateSnapshot) => (\n <StyledDroppable\n ref={provided.innerRef}\n data-droppable\n data-droppable-id={id}\n {...props}\n >\n <IsInsideDroppableContext.Provider value={true}>\n {children}\n {provided.placeholder}\n </IsInsideDroppableContext.Provider>\n </StyledDroppable>\n )}\n </DndDroppable>\n )\n}\n\n// creates a version of a draggable item that can be positioned correctly within modals\n// this should always have the same appearance of an Item or CheckboxItem, but doesn't\n// need to handle selection events, which can't be done while the item is being dragged\nconst ClonedItem = ({\n hasCheckbox = false,\n children = null,\n selected = false,\n provided,\n dndInstructionsId,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> &\n ItemProps &\n Omit<CheckboxProps, 'checked'> & {\n provided: DraggableProvided\n hasCheckbox: boolean\n cloneZIndex: number\n dndInstructionsId: string\n }) => {\n const itemProps = {\n ...props,\n 'aria-describedby': dndInstructionsId,\n $selected: selected,\n }\n\n const itemChildren = hasCheckbox ? (\n <Checkbox\n indeterminate={props.indeterminate}\n error={props.error}\n checked={selected}\n onChange={noop}\n >\n {children}\n </Checkbox>\n ) : (\n children\n )\n\n return (\n <StyledItem\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n {...itemProps}\n $isDraggable\n $isDragging\n style={{\n ...provided.draggableProps.style,\n ...props.style,\n zIndex: props.cloneZIndex,\n }}\n >\n <StyledGrip>\n <Grip color={colors.gray45} />\n </StyledGrip>\n {itemChildren}\n </StyledItem>\n )\n}\n\nexport const Item = React.forwardRef(function Item<\n E extends React.ElementType = MenuItemDefaultElement\n>(\n {\n as,\n /* @ts-ignore */\n children = null,\n item = null,\n /* @ts-ignore */\n onClick: onClick_ = noop,\n selected = false,\n suggested = false,\n disabled = false,\n id: _id,\n role,\n restoreFocus,\n draggableId,\n draggableIndex,\n droppableIn,\n ...props\n }: PolymorphicAs.ComponentPropsWithoutRef<MenuItemProps, E>,\n /**\n * TODO: although it is typed just fine from the outside (`<Menu.Item ref>` that is),\n * an effort is required to type it properly here too\n */\n forwardRef: React.Ref<any>\n) {\n const id = useId(_id)\n\n const ctx = useMenuContext()\n const isInsideDroppable = useIsInsideDroppable()\n\n const onClick = React.useCallback(\n function (event: React.MouseEvent<HTMLDivElement, MouseEvent>) {\n if (disabled) return\n\n onClick_(event)\n\n ctx.onSelect({\n item,\n event,\n group: false,\n action: selected ? 'unselected' : 'selected',\n ...(restoreFocus === undefined ? {} : { restoreFocus }),\n })\n },\n [ctx, item, onClick_, disabled, selected]\n )\n\n let contextRole\n let ariaSelected\n\n if (ctx.role === 'listbox') {\n contextRole = 'option'\n } else if (ctx.role === 'menu') {\n contextRole = 'menuitem'\n }\n\n if ([role, contextRole].includes('option')) {\n ariaSelected = selected ? true : undefined\n }\n\n const ariaDescribedBy = isInsideDroppable ? ctx.dndInstructionsId : undefined\n\n const itemProps = {\n 'aria-disabled': disabled ? true : undefined,\n 'aria-describedby': ariaDescribedBy,\n ...props,\n 'aria-selected': ariaSelected,\n id,\n role: role ?? contextRole,\n onClick,\n onMouseMove: (e: any) => ctx.onHoverItem(e.currentTarget),\n onFocus: (e: any) => ctx.onFocusItem(e.currentTarget),\n onBlur: (e: any) => ctx.onBlurItem(e.currentTarget),\n 'data-group': false,\n 'data-value': JSON.stringify(item),\n 'data-selected': selected,\n 'data-suggested': suggested,\n 'data-disabled': disabled,\n 'data-restorefocus': restoreFocus,\n $disabled: disabled,\n $selected: selected,\n }\n\n if (\n droppableIn !== undefined &&\n draggableId !== undefined &&\n draggableIndex !== undefined\n ) {\n // encoding id and valid droppables as the draggableId, so we can use them to determine where this item can be dropped\n const droppableInfo = {\n draggableId,\n droppableIn: Array.isArray(droppableIn) ? droppableIn : [droppableIn],\n }\n return (\n <Draggable\n draggableId={JSON.stringify(droppableInfo)}\n index={draggableIndex}\n isDragDisabled={disabled}\n >\n {(provided: DraggableProvided) => (\n <StyledItem\n ref={mergeRefs(provided.innerRef, forwardRef)}\n as={as}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n {...itemProps}\n $isDraggable={!disabled}\n style={{ ...provided.draggableProps.style, ...itemProps.style }}\n >\n {!disabled && (\n <StyledGrip>\n <Grip color={colors.gray45} />\n </StyledGrip>\n )}\n {children}\n </StyledItem>\n )}\n </Draggable>\n )\n }\n\n return (\n <StyledItem ref={forwardRef} as={as} {...itemProps}>\n {children}\n </StyledItem>\n )\n}) as PolymorphicAs.ComponentWithForwardedRef<\n MenuItemProps,\n MenuItemDefaultElement\n>\n\nexport const CheckboxItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> &\n (ItemProps | ItemWithDraggingProps) &\n Omit<CheckboxProps, 'checked'>\n>(function CheckboxItem(\n {\n selected = false,\n disabled = false,\n error = false,\n indeterminate = false,\n children = null,\n role,\n ...props\n },\n forwardRef\n) {\n const ctx = useMenuContext()\n\n let contextRole\n let ariaChecked: React.AriaAttributes['aria-checked']\n let ariaSelected\n\n if (ctx.role === 'listbox') {\n contextRole = 'option'\n ariaSelected = selected ? true : undefined\n } else if (ctx.role === 'menu') {\n contextRole = 'menuitemcheckbox'\n\n if (indeterminate) {\n ariaChecked = 'mixed'\n } else {\n ariaChecked = selected ? 'true' : 'false'\n }\n }\n\n return (\n <Item\n aria-checked={ariaChecked}\n aria-disabled={disabled ? true : undefined}\n aria-selected={ariaSelected}\n {...props}\n role={role ?? contextRole}\n selected={selected}\n disabled={disabled}\n ref={forwardRef}\n >\n <FakeCheckbox\n indeterminate={indeterminate}\n error={error}\n disabled={disabled}\n checked={selected}\n >\n {children}\n </FakeCheckbox>\n </Item>\n )\n})\nexport const Options = React.forwardRef<HTMLDivElement, OptionsProps>(\n function Options(props, ref) {\n const ctx = useMenuContext()\n const i18n = useI18nContext()\n\n return (\n <StyledOptions\n aria-label={i18n.t('core.menuImperative.options.ariaLabel')}\n {...props}\n {...ctx.a11yOptionsProps}\n data-internal=\"menuimperative-options\"\n ref={ref}\n onScroll={ctx.onScrollBottom}\n />\n )\n }\n)\n\nexport const Search = ({\n className,\n i18nScope = 'core.menu',\n placeholder,\n onChange: _onChange,\n value: valueProp,\n ...props\n}: MenuSearchProps) => {\n const I18n = useI18nContext()\n\n const isControlled = valueProp !== undefined\n const [internalValue, setInternalValue] = React.useState('')\n const value = isControlled ? valueProp : internalValue\n\n const onChange: NonNullable<TypeaheadProps['onChange']> = React.useCallback(\n function (value, event) {\n if (!isControlled) {\n setInternalValue(value)\n }\n _onChange?.(event as unknown as React.ChangeEvent<HTMLInputElement>)\n },\n [_onChange, isControlled]\n )\n\n // intentionally changed to type text + searchbox,\n // voiceOver focus goes to clear button when no results in Chrome\n return (\n <StyledSearch className={className}>\n <Typeahead\n {...props}\n type=\"text\"\n role=\"searchbox\"\n autoFocus={true}\n placeholder={placeholder || I18n.t('search', { scope: i18nScope })}\n onChange={onChange}\n value={value}\n />\n </StyledSearch>\n )\n}\n\nexport const Header = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & HeaderProps\n>(function Header({ ...props }, ref) {\n return <StyledHeader ref={ref} {...props} />\n})\n\nexport const Footer = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & FooterProps\n>(function Footer({ padding = 'md lg', ...props }, ref) {\n return <StyledFooter ref={ref} padding={padding} {...props} />\n})\n\nMenuImperative_.displayName = 'Menu'\n\nDroppable.displayName = 'Menu.Droppable'\n\nFooter.displayName = 'Menu.Footer'\n\nGroup.displayName = 'Menu.Group'\n\nHeader.displayName = 'Menu.Header'\n\nItem.displayName = 'Menu.Item'\n\nOptions.displayName = 'Menu.Options'\n\nSearch.displayName = 'Menu.Search'\n\n/**\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-menu-imperative--demo)\n\n */\nexport const MenuImperative = addSubcomponents(\n {\n CheckboxItem,\n Droppable,\n Footer,\n Group,\n Header,\n Item,\n Options,\n Search,\n },\n MenuImperative_\n)\n"],"mappings":"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"}
@@ -11,15 +11,15 @@ var optionMinHeight = 32;
11
11
  // Do not merge with StyledMenu, needed for max-height working in IE
12
12
  export var StyledWrapper = /*#__PURE__*/styled.div.withConfig({
13
13
  displayName: "StyledWrapper",
14
- componentId: "core-12_41_0__sc-z984sz-0"
14
+ componentId: "core-12_42_0__sc-z984sz-0"
15
15
  })(["border-radius:inherit;display:flex;max-height:inherit;min-width:inherit;outline:none;width:inherit;"]);
16
16
  export var StyledMenu = /*#__PURE__*/styled.div.withConfig({
17
17
  displayName: "StyledMenu",
18
- componentId: "core-12_41_0__sc-z984sz-1"
18
+ componentId: "core-12_42_0__sc-z984sz-1"
19
19
  })(["border-radius:inherit;display:flex;flex-direction:column;outline:0;width:100%;"]);
20
20
  export var StyledOptions = /*#__PURE__*/styled.div.withConfig({
21
21
  displayName: "StyledOptions",
22
- componentId: "core-12_41_0__sc-z984sz-2"
22
+ componentId: "core-12_42_0__sc-z984sz-2"
23
23
  })(["flex-basis:auto;flex-grow:1;flex-shrink:1;min-height:", "px;", ";padding:", "px 0;position:relative;&:focus-visible{", " margin:-1px;}"], optionMinHeight, function (_ref) {
24
24
  var _ref$$scrollable = _ref.$scrollable,
25
25
  $scrollable = _ref$$scrollable === void 0 ? true : _ref$$scrollable;
@@ -27,34 +27,34 @@ export var StyledOptions = /*#__PURE__*/styled.div.withConfig({
27
27
  }, spacing.sm, getFocus());
28
28
  export var StyledGrip = /*#__PURE__*/styled.div.withConfig({
29
29
  displayName: "StyledGrip",
30
- componentId: "core-12_41_0__sc-z984sz-3"
31
- })(["padding:0 2px;height:24px;visibility:hidden;"]);
30
+ componentId: "core-12_42_0__sc-z984sz-3"
31
+ })(["padding:0 2px;height:24px;"]);
32
32
  export var StyledHeader = /*#__PURE__*/styled.div.withConfig({
33
33
  displayName: "StyledHeader",
34
- componentId: "core-12_41_0__sc-z984sz-4"
34
+ componentId: "core-12_42_0__sc-z984sz-4"
35
35
  })([""]);
36
36
  export var StyledSearch = /*#__PURE__*/styled.div.withConfig({
37
37
  displayName: "StyledSearch",
38
- componentId: "core-12_41_0__sc-z984sz-5"
38
+ componentId: "core-12_42_0__sc-z984sz-5"
39
39
  })(["padding:", "px ", "px ", "px;", " > *{pointer-events:none;}"], spacing.lg, spacing.lg, spacing.sm, StyledButton);
40
40
  export var StyledGroup = /*#__PURE__*/styled.div.withConfig({
41
41
  displayName: "StyledGroup",
42
- componentId: "core-12_41_0__sc-z984sz-6"
42
+ componentId: "core-12_42_0__sc-z984sz-6"
43
43
  })(["&:not(:first-child){margin-top:", "px;}"], spacing.md);
44
44
  export var StyledGroupLabel = /*#__PURE__*/styled.span.withConfig({
45
45
  displayName: "StyledGroupLabel",
46
- componentId: "core-12_41_0__sc-z984sz-7"
46
+ componentId: "core-12_42_0__sc-z984sz-7"
47
47
  })(["", " display:block;color:", ";font-weight:", ";padding:", "px ", "px;cursor:default;"], getTypographyIntent('body'), colors.gray15, typographyWeights.semibold, spacing.xs, spacing.lg);
48
48
  export var StyledItem = /*#__PURE__*/styled.div.withConfig({
49
49
  displayName: "StyledItem",
50
- componentId: "core-12_41_0__sc-z984sz-8"
51
- })(["", ";", " cursor:pointer;list-style-type:none;padding:", "px ", "px;a{color:", ";display:block;margin:-", "px -", "px;padding:", "px ", "px;text-decoration:none;&:hover{color:", ";text-decoration:none;}}&[data-highlighted='true']{background-color:", ";}", " &:hover,&:active{", "{visibility:visible;}}", "{color:inherit;cursor:pointer;}", " ", " ", ""], getTypographyIntent('body'), function (_ref2) {
50
+ componentId: "core-12_42_0__sc-z984sz-8"
51
+ })(["", ";", " cursor:pointer;list-style-type:none;padding:", "px ", "px;a{color:", ";display:block;margin:-", "px -", "px;padding:", "px ", "px;text-decoration:none;&:hover{color:", ";text-decoration:none;}}&[data-highlighted='true']{background-color:", ";}", " ", "{color:inherit;cursor:pointer;}", " ", " ", ""], getTypographyIntent('body'), function (_ref2) {
52
52
  var as = _ref2.as;
53
53
  return as === 'a' && css(["display:block;text-decoration:none;"]);
54
54
  }, spacing.xs, spacing.lg, colors.gray15, spacing.xs, spacing.lg, spacing.xs, spacing.lg, colors.gray15, colors.gray96, function (_ref3) {
55
55
  var $highlighted = _ref3.$highlighted;
56
56
  return $highlighted && "background-color: ".concat(colors.gray96, ";");
57
- }, StyledGrip, StyledCheckboxLabel, function (_ref4) {
57
+ }, StyledCheckboxLabel, function (_ref4) {
58
58
  var $disabled = _ref4.$disabled,
59
59
  $selected = _ref4.$selected;
60
60
  if ($disabled) {
@@ -71,15 +71,15 @@ export var StyledItem = /*#__PURE__*/styled.div.withConfig({
71
71
  }, function (_ref6) {
72
72
  var $isDragging = _ref6.$isDragging;
73
73
  if ($isDragging) {
74
- return css(["background-color:", ";", "{visibility:visible;}"], colors.gray96, StyledGrip);
74
+ return css(["background-color:", ";"], colors.gray96);
75
75
  }
76
76
  });
77
77
  export var StyledDroppable = /*#__PURE__*/styled.div.withConfig({
78
78
  displayName: "StyledDroppable",
79
- componentId: "core-12_41_0__sc-z984sz-9"
79
+ componentId: "core-12_42_0__sc-z984sz-9"
80
80
  })(["", ",", "{padding-left:28px;}"], StyledGroup, StyledItem);
81
81
  export var StyledFooter = /*#__PURE__*/styled(Box).withConfig({
82
82
  displayName: "StyledFooter",
83
- componentId: "core-12_41_0__sc-z984sz-10"
83
+ componentId: "core-12_42_0__sc-z984sz-10"
84
84
  })(["border-top:1px solid ", ";border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;"], colors.gray85);
85
85
  //# sourceMappingURL=MenuImperative.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuImperative.styles.js","names":["styled","css","Box","StyledButton","StyledCheckboxLabel","getTypographyIntent","typographyWeights","colors","getFocus","spacing","optionMinHeight","StyledWrapper","div","withConfig","displayName","componentId","StyledMenu","StyledOptions","_ref","_ref$$scrollable","$scrollable","sm","StyledGrip","StyledHeader","StyledSearch","lg","StyledGroup","md","StyledGroupLabel","span","gray15","semibold","xs","StyledItem","_ref2","as","gray96","_ref3","$highlighted","concat","_ref4","$disabled","$selected","gray85","blue50","_ref5","$isDraggable","_ref6","$isDragging","StyledDroppable","StyledFooter"],"sources":["../../src/MenuImperative/MenuImperative.styles.ts"],"sourcesContent":["import styled, { css } from 'styled-components'\nimport { Box } from '../Box'\nimport { StyledButton } from '../Button'\nimport { StyledCheckboxLabel } from '../Checkbox/Checkbox.styles'\nimport { getTypographyIntent, typographyWeights } from '../Typography'\nimport { colors } from '../_styles/colors'\nimport { getFocus } from '../_styles/mixins'\nimport { spacing } from '../_styles/spacing'\n\nconst optionMinHeight = 32\n\n// Do not merge with StyledMenu, needed for max-height working in IE\nexport const StyledWrapper = styled.div`\n border-radius: inherit;\n display: flex;\n max-height: inherit;\n min-width: inherit;\n outline: none;\n width: inherit;\n`\n\nexport const StyledMenu = styled.div`\n border-radius: inherit;\n display: flex;\n flex-direction: column;\n outline: 0;\n width: 100%;\n`\n\nexport const StyledOptions = styled.div<{ $scrollable?: boolean }>`\n flex-basis: auto;\n flex-grow: 1;\n flex-shrink: 1;\n min-height: ${optionMinHeight}px;\n ${({ $scrollable = true }) => $scrollable && `overflow-y: auto`};\n padding: ${spacing.sm}px 0;\n position: relative;\n\n &:focus-visible {\n ${getFocus()}\n margin: -1px;\n }\n`\n\nexport const StyledGrip = styled.div`\n padding: 0 2px;\n height: 24px;\n visibility: hidden;\n`\n\nexport const StyledHeader = styled.div``\n\nexport const StyledSearch = styled.div`\n padding: ${spacing.lg}px ${spacing.lg}px ${spacing.sm}px;\n\n ${StyledButton} > * {\n pointer-events: none;\n }\n`\n\nexport const StyledGroup = styled.div`\n &:not(:first-child) {\n margin-top: ${spacing.md}px;\n }\n`\n\nexport const StyledGroupLabel = styled.span`\n ${getTypographyIntent('body')}\n\n display: block;\n color: ${colors.gray15};\n font-weight: ${typographyWeights.semibold};\n padding: ${spacing.xs}px ${spacing.lg}px;\n cursor: default;\n`\n\nexport const StyledItem = styled.div<{\n $disabled?: boolean\n $selected?: boolean\n $highlighted?: boolean\n $isDraggable?: boolean\n $isDragging?: boolean\n}>`\n ${getTypographyIntent('body')};\n\n ${({ as }) =>\n as === 'a' &&\n css`\n display: block;\n text-decoration: none;\n `}\n\n cursor: pointer;\n list-style-type: none;\n padding: ${spacing.xs}px ${spacing.lg}px;\n\n a {\n // We decided to use a negative margin trick here to allow us to continue\n // to use listNavigation without having to rewrite a bunch of code in js\n color: ${colors.gray15};\n display: block;\n margin: -${spacing.xs}px -${spacing.lg}px;\n padding: ${spacing.xs}px ${spacing.lg}px;\n text-decoration: none;\n\n &:hover {\n color: ${colors.gray15};\n text-decoration: none;\n }\n }\n\n &[data-highlighted='true'] {\n background-color: ${colors.gray96};\n }\n\n ${({ $highlighted }) => $highlighted && `background-color: ${colors.gray96};`}\n\n &:hover,\n &:active {\n ${StyledGrip} {\n visibility: visible;\n }\n }\n\n ${StyledCheckboxLabel} {\n color: inherit;\n cursor: pointer;\n }\n\n ${({ $disabled, $selected }) => {\n if ($disabled) {\n return css`\n &,\n ${StyledCheckboxLabel} {\n color: ${colors.gray85};\n cursor: default;\n }\n `\n } else if ($selected) {\n return css`\n color: ${colors.blue50};\n font-weight: 700;\n\n a,\n a:hover {\n color: ${colors.blue50};\n text-decoration: none;\n }\n\n &[data-highlighted='true'] {\n background-color: ${colors.gray96};\n }\n `\n }\n\n return css`\n color: ${colors.gray15};\n\n &[data-highlighted='true'] {\n background-color: ${colors.gray96};\n }\n `\n }}\n\n ${({ $isDraggable }) => {\n if ($isDraggable) {\n return css`\n display: flex;\n align-items: center;\n\n ${StyledCheckboxLabel} {\n cursor: grab;\n\n // The unchecked and checked icons\n &:before,\n &:after {\n cursor: pointer;\n }\n }\n\n &&& {\n padding-left: 0;\n }\n `\n }\n }}\n\n ${({ $isDragging }) => {\n if ($isDragging) {\n return css`\n background-color: ${colors.gray96};\n\n ${StyledGrip} {\n visibility: visible;\n }\n `\n }\n }}\n`\n\nexport const StyledDroppable = styled.div`\n ${StyledGroup}, ${StyledItem} {\n padding-left: 28px;\n }\n`\n\nexport const StyledFooter = styled(Box)`\n border-top: 1px solid ${colors.gray85};\n border-bottom-left-radius: inherit;\n border-bottom-right-radius: inherit;\n`\n"],"mappings":"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"}
1
+ {"version":3,"file":"MenuImperative.styles.js","names":["styled","css","Box","StyledButton","StyledCheckboxLabel","getTypographyIntent","typographyWeights","colors","getFocus","spacing","optionMinHeight","StyledWrapper","div","withConfig","displayName","componentId","StyledMenu","StyledOptions","_ref","_ref$$scrollable","$scrollable","sm","StyledGrip","StyledHeader","StyledSearch","lg","StyledGroup","md","StyledGroupLabel","span","gray15","semibold","xs","StyledItem","_ref2","as","gray96","_ref3","$highlighted","concat","_ref4","$disabled","$selected","gray85","blue50","_ref5","$isDraggable","_ref6","$isDragging","StyledDroppable","StyledFooter"],"sources":["../../src/MenuImperative/MenuImperative.styles.ts"],"sourcesContent":["import styled, { css } from 'styled-components'\nimport { Box } from '../Box'\nimport { StyledButton } from '../Button'\nimport { StyledCheckboxLabel } from '../Checkbox/Checkbox.styles'\nimport { getTypographyIntent, typographyWeights } from '../Typography'\nimport { colors } from '../_styles/colors'\nimport { getFocus } from '../_styles/mixins'\nimport { spacing } from '../_styles/spacing'\n\nconst optionMinHeight = 32\n\n// Do not merge with StyledMenu, needed for max-height working in IE\nexport const StyledWrapper = styled.div`\n border-radius: inherit;\n display: flex;\n max-height: inherit;\n min-width: inherit;\n outline: none;\n width: inherit;\n`\n\nexport const StyledMenu = styled.div`\n border-radius: inherit;\n display: flex;\n flex-direction: column;\n outline: 0;\n width: 100%;\n`\n\nexport const StyledOptions = styled.div<{ $scrollable?: boolean }>`\n flex-basis: auto;\n flex-grow: 1;\n flex-shrink: 1;\n min-height: ${optionMinHeight}px;\n ${({ $scrollable = true }) => $scrollable && `overflow-y: auto`};\n padding: ${spacing.sm}px 0;\n position: relative;\n\n &:focus-visible {\n ${getFocus()}\n margin: -1px;\n }\n`\n\nexport const StyledGrip = styled.div`\n padding: 0 2px;\n height: 24px;\n`\n\nexport const StyledHeader = styled.div``\n\nexport const StyledSearch = styled.div`\n padding: ${spacing.lg}px ${spacing.lg}px ${spacing.sm}px;\n\n ${StyledButton} > * {\n pointer-events: none;\n }\n`\n\nexport const StyledGroup = styled.div`\n &:not(:first-child) {\n margin-top: ${spacing.md}px;\n }\n`\n\nexport const StyledGroupLabel = styled.span`\n ${getTypographyIntent('body')}\n\n display: block;\n color: ${colors.gray15};\n font-weight: ${typographyWeights.semibold};\n padding: ${spacing.xs}px ${spacing.lg}px;\n cursor: default;\n`\n\nexport const StyledItem = styled.div<{\n $disabled?: boolean\n $selected?: boolean\n $highlighted?: boolean\n $isDraggable?: boolean\n $isDragging?: boolean\n}>`\n ${getTypographyIntent('body')};\n\n ${({ as }) =>\n as === 'a' &&\n css`\n display: block;\n text-decoration: none;\n `}\n\n cursor: pointer;\n list-style-type: none;\n padding: ${spacing.xs}px ${spacing.lg}px;\n\n a {\n // We decided to use a negative margin trick here to allow us to continue\n // to use listNavigation without having to rewrite a bunch of code in js\n color: ${colors.gray15};\n display: block;\n margin: -${spacing.xs}px -${spacing.lg}px;\n padding: ${spacing.xs}px ${spacing.lg}px;\n text-decoration: none;\n\n &:hover {\n color: ${colors.gray15};\n text-decoration: none;\n }\n }\n\n &[data-highlighted='true'] {\n background-color: ${colors.gray96};\n }\n\n ${({ $highlighted }) => $highlighted && `background-color: ${colors.gray96};`}\n\n ${StyledCheckboxLabel} {\n color: inherit;\n cursor: pointer;\n }\n\n ${({ $disabled, $selected }) => {\n if ($disabled) {\n return css`\n &,\n ${StyledCheckboxLabel} {\n color: ${colors.gray85};\n cursor: default;\n }\n `\n } else if ($selected) {\n return css`\n color: ${colors.blue50};\n font-weight: 700;\n\n a,\n a:hover {\n color: ${colors.blue50};\n text-decoration: none;\n }\n\n &[data-highlighted='true'] {\n background-color: ${colors.gray96};\n }\n `\n }\n\n return css`\n color: ${colors.gray15};\n\n &[data-highlighted='true'] {\n background-color: ${colors.gray96};\n }\n `\n }}\n\n ${({ $isDraggable }) => {\n if ($isDraggable) {\n return css`\n display: flex;\n align-items: center;\n\n ${StyledCheckboxLabel} {\n cursor: grab;\n\n // The unchecked and checked icons\n &:before,\n &:after {\n cursor: pointer;\n }\n }\n\n &&& {\n padding-left: 0;\n }\n `\n }\n }}\n\n ${({ $isDragging }) => {\n if ($isDragging) {\n return css`\n background-color: ${colors.gray96};\n `\n }\n }}\n`\n\nexport const StyledDroppable = styled.div`\n ${StyledGroup}, ${StyledItem} {\n padding-left: 28px;\n }\n`\n\nexport const StyledFooter = styled(Box)`\n border-top: 1px solid ${colors.gray85};\n border-bottom-left-radius: inherit;\n border-bottom-right-radius: inherit;\n`\n"],"mappings":"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"}
@@ -198,6 +198,10 @@ interface AnchorItemProps extends Omit<ItemProps, 'item'>, Omit<React.AnchorHTML
198
198
  }
199
199
  export declare type MenuItemProps = ItemProps | ItemWithDraggingProps | AnchorItemProps;
200
200
  export declare type MenuItemDefaultElement = 'div' | 'a';
201
+ /**
202
+ * @a11y When drag-and-drop is enabled, `children` should be a string so it
203
+ * can be used for DnD announcements (exposed as `data-title`).
204
+ */
201
205
  export interface GroupProps {
202
206
  /**
203
207
  * @since 10.19.0
@@ -211,6 +215,10 @@ export interface GroupProps {
211
215
  * @since 12.39.0
212
216
  */
213
217
  label?: string;
218
+ /**
219
+ * @since 12.39.0
220
+ */
221
+ labelId?: string;
214
222
  }
215
223
  export interface OptionsProps {
216
224
  /**
@@ -253,6 +261,22 @@ export interface DroppableProps {
253
261
  * @since 10.19.0
254
262
  */
255
263
  children: React.ReactNode;
264
+ /**
265
+ * @since 12.34.2
266
+ */
267
+ 'aria-label'?: string;
268
+ /**
269
+ * @since 12.34.2
270
+ */
271
+ 'aria-labelledby'?: string;
272
+ /**
273
+ * @since 12.34.2
274
+ */
275
+ role?: React.AriaRole;
276
+ /**
277
+ * @since 12.34.2
278
+ */
279
+ 'aria-multiselectable'?: boolean;
256
280
  }
257
281
  export interface FooterProps extends Omit<BoxProps, 'as'> {
258
282
  }
@@ -270,10 +294,22 @@ export interface MenuContext {
270
294
  * @since 10.19.0
271
295
  */
272
296
  currentlyDroppableIn: string[];
297
+ /**
298
+ * @since 12.34.2
299
+ */
300
+ dndInstructionsId: string;
273
301
  /**
274
302
  * @since 10.19.0
275
303
  */
276
304
  onHoverItem: (el?: HTMLDivElement) => void;
305
+ /**
306
+ * @since 12.34.2
307
+ */
308
+ onFocusItem: (el?: HTMLDivElement) => void;
309
+ /**
310
+ * @since 12.34.2
311
+ */
312
+ onBlurItem: (el?: HTMLDivElement) => void;
277
313
  /**
278
314
  * @since 10.19.0
279
315
  */
@@ -1 +1 @@
1
- {"version":3,"file":"MenuImperative.types.js","names":[],"sources":["../../src/MenuImperative/MenuImperative.types.ts"],"sourcesContent":["import type * as React from 'react'\nimport type { BoxProps } from '../Box'\nimport type {\n TypeaheadInputProps,\n TypeaheadProps,\n} from '../Typeahead/Typeahead.types'\nimport type { Props } from '../_utils/types'\n\nexport type Ref<T> =\n | ((instance: T | null) => void)\n | React.MutableRefObject<T | null>\n | null\n\ntype Div = React.ComponentPropsWithoutRef<'div'>\n\nexport interface Selection {\n /**\n * @since 10.19.0\n */\n event:\n | React.MouseEvent<HTMLElement, MouseEvent>\n | React.KeyboardEvent<HTMLElement>\n /**\n * @since 10.19.0\n */\n group: boolean\n /**\n * @since 10.19.0\n */\n item: any\n /**\n * @since 10.19.0\n */\n action: 'selected' | 'unselected'\n /**\n * Indicates should focus be restored to the trigger(e.g. Button of Dropdown)\n * after activating this item. If all items return focus to the trigger once activated,\n * try just `restoreFocusOnHide` on `Dropdown` instead.\n * if it is `undefined`, it is omitted in onSelect callback.\n * @since 11.15.0\n */\n restoreFocus?: boolean\n}\n\nexport interface Reorder {\n /**\n * @since 10.19.0\n */\n draggableId: string\n /**\n * @since 10.19.0\n */\n source: {\n index: number\n droppableId: string\n }\n /**\n * @since 10.19.0\n */\n destination: {\n index: number\n droppableId: string\n }\n}\n\ntype MenuRole = 'menu' | 'listbox' | 'none'\n\nexport interface MenuProps extends Omit<Div, 'onSelect' | 'onDragEnd'> {\n /**\n * @since 10.19.0\n */\n circular?: boolean\n /**\n * Set aria-multiselectable=\"true\"\n * @since 10.19.0\n */\n multiple?: boolean\n /**\n * @since 10.19.0\n */\n onDragEnd?: (result: Reorder) => void\n /**\n * @since 10.19.0\n */\n onScrollBottom?: (e: React.UIEvent<HTMLDivElement, UIEvent>) => void\n /**\n * @since 10.19.0\n */\n onSelect?: (selection: Selection) => any\n /**\n * A menu is a widget that offers a list of choices to the user, such as a set of actions or functions.\n *\n * A listbox widget presents a list of options and allows a user to select one or more of them.\n *\n * @since 11.3.0\n */\n role?: MenuRole\n /**\n * Used when navigation in the menu is controlled by search or another input,\n * called each time virtual focus (highlighted item) is changed\n * Consider use `useMenuImperativeControlNavigation` hook.\n *\n * @since 11.5.0\n */\n onChangeActiveDescendant?: (id: string | undefined) => void\n /**\n * To override default menu navigation\n * @since 11.5.0\n */\n onKeyboardNavigation?: React.KeyboardEventHandler\n}\n\nexport interface MenuRef {\n /**\n * @since 10.19.0\n */\n el: HTMLDivElement | null\n /**\n * @since 10.19.0\n */\n highlight: (item: HTMLElement, shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlightFirst: (shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlightLast: (shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlightSelected: (shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlightSuggested: (shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlighted: () => any\n /**\n * @since 10.19.0\n */\n next: (circular?: boolean) => void\n /**\n * @since 10.19.0\n */\n prev: (circular?: boolean) => void\n /**\n * @since 10.19.0\n */\n select: (\n event:\n | React.MouseEvent<HTMLElement, MouseEvent>\n | React.KeyboardEvent<HTMLElement>\n ) => void\n /**\n * Usefully for extending navigation behavior with `onKeyboardNavigation`.\n * Pay attention that `ref` is `null` on first render.\n *\n * ```\n * onKeyboardNavigation={(e) => {\n * if (e.key === 'Right' || e.key === 'ArrowRight') {\n * return navigateRight()\n * }\n *\n * ref.defaultKeyDownNavigationHandler(e)\n * }}\n * ```\n *\n * @since 11.5.0\n */\n defaultKeyDownNavigationHandler: React.KeyboardEventHandler\n}\n\nexport interface ItemProps {\n /**\n * @since 10.19.0\n */\n item: any\n /**\n * @since 10.19.0\n */\n selected?: boolean\n /**\n * @since 10.19.0\n */\n suggested?: boolean\n /**\n * @since 10.19.0\n */\n disabled?: boolean\n /**\n * Indicates should focus be restored to the trigger(e.g. Button of Dropdown)\n * after activating this item. If all items return focus to the trigger once activated,\n * try just `restoreFocusOnHide` on `Dropdown` instead.\n * if it is `undefined`, it is omitted in onSelect callback.\n * @since 11.15.0\n */\n restoreFocus?: boolean\n}\n\nexport interface ItemWithDraggingProps extends ItemProps {\n /**\n * @since 10.19.0\n */\n droppableIn: string | string[]\n /**\n * @since 10.19.0\n */\n draggableId: string\n /**\n * @since 10.19.0\n */\n draggableIndex: number\n}\n\ninterface AnchorItemProps\n extends Omit<ItemProps, 'item'>,\n Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'onClick'> {}\n\nexport type MenuItemProps = ItemProps | ItemWithDraggingProps | AnchorItemProps\n\nexport type MenuItemDefaultElement = 'div' | 'a'\n\nexport interface GroupProps {\n /**\n * @since 10.19.0\n */\n clickable?: boolean\n\n /**\n * @since 10.19.0\n */\n item?: any\n\n /**\n * @since 12.39.0\n */\n label?: string\n}\n\nexport interface OptionsProps {\n /**\n * @since 10.19.0\n */\n children?: React.ReactNode\n /**\n * @since 10.19.0\n */\n className?: string\n}\n\nexport interface MenuSearchProps\n extends Omit<TypeaheadProps, 'onChange'>,\n TypeaheadInputProps,\n Props {\n /**\n * @since 10.19.0\n */\n i18nScope?: string\n /**\n * @since 10.21.0\n */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void\n /**\n * Controls the search input value. When provided, the search input becomes\n * a controlled component and the parent must manage the value state.\n * @since 12.34.0\n */\n value?: string\n}\n\nexport interface HeaderProps extends Props {\n /**\n * @since 10.19.0\n */\n tabIndex?: number\n}\n\nexport interface DroppableProps {\n /**\n * @since 10.19.0\n */\n id: string\n /**\n * @since 10.19.0\n */\n children: React.ReactNode\n}\n\nexport interface FooterProps extends Omit<BoxProps, 'as'> {}\n\nexport interface MenuContext {\n /**\n * @since 11.5.0\n */\n a11yOptionsProps: {\n role?: MenuRole\n onKeyboardNavigation?: React.KeyboardEventHandler | null\n tabIndex?: number\n id?: string\n }\n /**\n * @since 10.19.0\n */\n currentlyDroppableIn: string[]\n /**\n * @since 10.19.0\n */\n onHoverItem: (el?: HTMLDivElement) => void\n /**\n * @since 10.19.0\n */\n onScrollBottom: (e: React.UIEvent<HTMLDivElement, UIEvent>) => void\n /**\n * @since 10.19.0\n */\n onSelect: (selection: Selection) => void\n /**\n * @since 11.3.0\n */\n role: MenuRole\n}\n\nexport interface ControlNavigationProps {\n menuId?: MenuProps['id']\n}\n\nexport interface ControlNavigationReturn {\n menuNavigationTriggerProps: {\n 'aria-activedescendant'?: string\n 'aria-controls'?: string\n onKeyDown?: React.KeyboardEventHandler<Element>\n }\n menuProps: {\n onChangeActiveDescendant?: React.Dispatch<\n React.SetStateAction<string | undefined>\n >\n id: string\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"MenuImperative.types.js","names":[],"sources":["../../src/MenuImperative/MenuImperative.types.ts"],"sourcesContent":["import type * as React from 'react'\nimport type { BoxProps } from '../Box'\nimport type {\n TypeaheadInputProps,\n TypeaheadProps,\n} from '../Typeahead/Typeahead.types'\nimport type { Props } from '../_utils/types'\n\nexport type Ref<T> =\n | ((instance: T | null) => void)\n | React.MutableRefObject<T | null>\n | null\n\ntype Div = React.ComponentPropsWithoutRef<'div'>\n\nexport interface Selection {\n /**\n * @since 10.19.0\n */\n event:\n | React.MouseEvent<HTMLElement, MouseEvent>\n | React.KeyboardEvent<HTMLElement>\n /**\n * @since 10.19.0\n */\n group: boolean\n /**\n * @since 10.19.0\n */\n item: any\n /**\n * @since 10.19.0\n */\n action: 'selected' | 'unselected'\n /**\n * Indicates should focus be restored to the trigger(e.g. Button of Dropdown)\n * after activating this item. If all items return focus to the trigger once activated,\n * try just `restoreFocusOnHide` on `Dropdown` instead.\n * if it is `undefined`, it is omitted in onSelect callback.\n * @since 11.15.0\n */\n restoreFocus?: boolean\n}\n\nexport interface Reorder {\n /**\n * @since 10.19.0\n */\n draggableId: string\n /**\n * @since 10.19.0\n */\n source: {\n index: number\n droppableId: string\n }\n /**\n * @since 10.19.0\n */\n destination: {\n index: number\n droppableId: string\n }\n}\n\ntype MenuRole = 'menu' | 'listbox' | 'none'\n\nexport interface MenuProps extends Omit<Div, 'onSelect' | 'onDragEnd'> {\n /**\n * @since 10.19.0\n */\n circular?: boolean\n /**\n * Set aria-multiselectable=\"true\"\n * @since 10.19.0\n */\n multiple?: boolean\n /**\n * @since 10.19.0\n */\n onDragEnd?: (result: Reorder) => void\n /**\n * @since 10.19.0\n */\n onScrollBottom?: (e: React.UIEvent<HTMLDivElement, UIEvent>) => void\n /**\n * @since 10.19.0\n */\n onSelect?: (selection: Selection) => any\n /**\n * A menu is a widget that offers a list of choices to the user, such as a set of actions or functions.\n *\n * A listbox widget presents a list of options and allows a user to select one or more of them.\n *\n * @since 11.3.0\n */\n role?: MenuRole\n /**\n * Used when navigation in the menu is controlled by search or another input,\n * called each time virtual focus (highlighted item) is changed\n * Consider use `useMenuImperativeControlNavigation` hook.\n *\n * @since 11.5.0\n */\n onChangeActiveDescendant?: (id: string | undefined) => void\n /**\n * To override default menu navigation\n * @since 11.5.0\n */\n onKeyboardNavigation?: React.KeyboardEventHandler\n}\n\nexport interface MenuRef {\n /**\n * @since 10.19.0\n */\n el: HTMLDivElement | null\n /**\n * @since 10.19.0\n */\n highlight: (item: HTMLElement, shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlightFirst: (shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlightLast: (shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlightSelected: (shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlightSuggested: (shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlighted: () => any\n /**\n * @since 10.19.0\n */\n next: (circular?: boolean) => void\n /**\n * @since 10.19.0\n */\n prev: (circular?: boolean) => void\n /**\n * @since 10.19.0\n */\n select: (\n event:\n | React.MouseEvent<HTMLElement, MouseEvent>\n | React.KeyboardEvent<HTMLElement>\n ) => void\n /**\n * Usefully for extending navigation behavior with `onKeyboardNavigation`.\n * Pay attention that `ref` is `null` on first render.\n *\n * ```\n * onKeyboardNavigation={(e) => {\n * if (e.key === 'Right' || e.key === 'ArrowRight') {\n * return navigateRight()\n * }\n *\n * ref.defaultKeyDownNavigationHandler(e)\n * }}\n * ```\n *\n * @since 11.5.0\n */\n defaultKeyDownNavigationHandler: React.KeyboardEventHandler\n}\n\nexport interface ItemProps {\n /**\n * @since 10.19.0\n */\n item: any\n /**\n * @since 10.19.0\n */\n selected?: boolean\n /**\n * @since 10.19.0\n */\n suggested?: boolean\n /**\n * @since 10.19.0\n */\n disabled?: boolean\n /**\n * Indicates should focus be restored to the trigger(e.g. Button of Dropdown)\n * after activating this item. If all items return focus to the trigger once activated,\n * try just `restoreFocusOnHide` on `Dropdown` instead.\n * if it is `undefined`, it is omitted in onSelect callback.\n * @since 11.15.0\n */\n restoreFocus?: boolean\n}\n\nexport interface ItemWithDraggingProps extends ItemProps {\n /**\n * @since 10.19.0\n */\n droppableIn: string | string[]\n /**\n * @since 10.19.0\n */\n draggableId: string\n /**\n * @since 10.19.0\n */\n draggableIndex: number\n}\n\ninterface AnchorItemProps\n extends Omit<ItemProps, 'item'>,\n Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'onClick'> {}\n\nexport type MenuItemProps = ItemProps | ItemWithDraggingProps | AnchorItemProps\n\nexport type MenuItemDefaultElement = 'div' | 'a'\n\n/**\n * @a11y When drag-and-drop is enabled, `children` should be a string so it\n * can be used for DnD announcements (exposed as `data-title`).\n */\nexport interface GroupProps {\n /**\n * @since 10.19.0\n */\n clickable?: boolean\n\n /**\n * @since 10.19.0\n */\n item?: any\n\n /**\n * @since 12.39.0\n */\n label?: string\n /**\n * @since 12.39.0\n */\n labelId?: string\n}\n\nexport interface OptionsProps {\n /**\n * @since 10.19.0\n */\n children?: React.ReactNode\n /**\n * @since 10.19.0\n */\n className?: string\n}\n\nexport interface MenuSearchProps\n extends Omit<TypeaheadProps, 'onChange'>,\n TypeaheadInputProps,\n Props {\n /**\n * @since 10.19.0\n */\n i18nScope?: string\n /**\n * @since 10.21.0\n */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void\n /**\n * Controls the search input value. When provided, the search input becomes\n * a controlled component and the parent must manage the value state.\n * @since 12.34.0\n */\n value?: string\n}\n\nexport interface HeaderProps extends Props {\n /**\n * @since 10.19.0\n */\n tabIndex?: number\n}\n\nexport interface DroppableProps {\n /**\n * @since 10.19.0\n */\n id: string\n /**\n * @since 10.19.0\n */\n children: React.ReactNode\n /**\n * @since 12.34.2\n */\n 'aria-label'?: string\n /**\n * @since 12.34.2\n */\n 'aria-labelledby'?: string\n /**\n * @since 12.34.2\n */\n role?: React.AriaRole\n /**\n * @since 12.34.2\n */\n 'aria-multiselectable'?: boolean\n}\n\nexport interface FooterProps extends Omit<BoxProps, 'as'> {}\n\nexport interface MenuContext {\n /**\n * @since 11.5.0\n */\n a11yOptionsProps: {\n role?: MenuRole\n onKeyboardNavigation?: React.KeyboardEventHandler | null\n tabIndex?: number\n id?: string\n }\n /**\n * @since 10.19.0\n */\n currentlyDroppableIn: string[]\n /**\n * @since 12.34.2\n */\n dndInstructionsId: string\n /**\n * @since 10.19.0\n */\n onHoverItem: (el?: HTMLDivElement) => void\n /**\n * @since 12.34.2\n */\n onFocusItem: (el?: HTMLDivElement) => void\n /**\n * @since 12.34.2\n */\n onBlurItem: (el?: HTMLDivElement) => void\n /**\n * @since 10.19.0\n */\n onScrollBottom: (e: React.UIEvent<HTMLDivElement, UIEvent>) => void\n /**\n * @since 10.19.0\n */\n onSelect: (selection: Selection) => void\n /**\n * @since 11.3.0\n */\n role: MenuRole\n}\n\nexport interface ControlNavigationProps {\n menuId?: MenuProps['id']\n}\n\nexport interface ControlNavigationReturn {\n menuNavigationTriggerProps: {\n 'aria-activedescendant'?: string\n 'aria-controls'?: string\n onKeyDown?: React.KeyboardEventHandler<Element>\n }\n menuProps: {\n onChangeActiveDescendant?: React.Dispatch<\n React.SetStateAction<string | undefined>\n >\n id: string\n }\n}\n"],"mappings":""}
@@ -6,12 +6,15 @@ export declare const menuItemsWrapperAttribute: {
6
6
  export declare function createSensors(ref: React.RefObject<HTMLDivElement>, circular: boolean, onChangeActiveDescendant: (id: string | undefined, menuRef: Element | null) => void): {
7
7
  handleKeyDown(event: React.KeyboardEvent<HTMLDivElement>): void;
8
8
  handleItemHover(el?: HTMLDivElement): void;
9
+ handleItemFocus(el?: HTMLDivElement): void;
10
+ handleItemBlur(el?: HTMLDivElement): void;
9
11
  useKeyboardSensor(api: SensorAPI): void;
12
+ setIsDragging(isDragging: boolean): void;
10
13
  updateSelectCallback(callback: (selection: Selection) => any): void;
11
- highlight: (item: HTMLElement | null | undefined, shouldScroll?: boolean) => void;
14
+ highlight: (item: HTMLElement | null | undefined, shouldScroll?: boolean, shouldFocus?: boolean) => void;
12
15
  highlighted(): any;
13
- highlightFirst: (shouldScroll?: boolean) => void;
14
- highlightLast: (shouldScroll?: boolean) => void;
16
+ highlightFirst: (shouldScroll?: boolean, shouldFocus?: boolean) => void;
17
+ highlightLast: (shouldScroll?: boolean, shouldFocus?: boolean) => void;
15
18
  rehighlightCurrent(): void;
16
19
  highlightSelected(shouldScroll?: boolean): void;
17
20
  highlightSuggested(shouldScroll?: boolean): void;