@procore/core-react 12.17.6 → 12.17.7

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 (278) hide show
  1. package/babel.config.js +4 -1
  2. package/dist/AnchorNavigation/AnchorNavigation.js.map +1 -1
  3. package/dist/AnchorNavigation/AnchorNavigation.styles.js +3 -3
  4. package/dist/AnchorNavigation/AnchorNavigationProvider.js.map +1 -1
  5. package/dist/Avatar/Avatar.js +1 -2
  6. package/dist/Avatar/Avatar.js.map +1 -1
  7. package/dist/Avatar/Avatar.styles.js +5 -5
  8. package/dist/AvatarStack/AvatarStack.js.map +1 -1
  9. package/dist/AvatarStack/AvatarStack.styles.js +7 -7
  10. package/dist/Badge/Badge.styles.js +2 -2
  11. package/dist/Banner/Banner.js +36 -6
  12. package/dist/Banner/Banner.js.map +1 -1
  13. package/dist/Banner/Banner.styles.d.ts +1 -1
  14. package/dist/Banner/Banner.styles.js +15 -15
  15. package/dist/Banner/Banner.styles.js.map +1 -1
  16. package/dist/Box/Box.styles.js +1 -1
  17. package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
  18. package/dist/Button/Button.js.map +1 -1
  19. package/dist/Button/Button.styles.d.ts +1 -0
  20. package/dist/Button/Button.styles.js +7 -7
  21. package/dist/Button/Button.styles.js.map +1 -1
  22. package/dist/Button/Button.types.d.ts +4 -0
  23. package/dist/Button/Button.types.js.map +1 -1
  24. package/dist/Calendar/Calendar.js.map +1 -1
  25. package/dist/Calendar/Calendar.styles.js +8 -8
  26. package/dist/Card/Card.styles.js +1 -1
  27. package/dist/Checkbox/Checkbox.styles.js +6 -6
  28. package/dist/Checkbox/CheckboxTooltip.js +1 -1
  29. package/dist/ContactItem/ContactItem.styles.js +5 -5
  30. package/dist/Content/Content.styles.js +2 -2
  31. package/dist/DateInput/DateInput.js.map +1 -1
  32. package/dist/DateInput/DateInput.styles.js +6 -6
  33. package/dist/DateSelect/DateSelect.js.map +1 -1
  34. package/dist/DetailPage/DetailPage.styles.js +7 -7
  35. package/dist/Dropdown/Dropdown.styles.js +3 -3
  36. package/dist/DropdownFlyout/DropdownFlyout.js.map +1 -1
  37. package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
  38. package/dist/Dropzone/Dropzone.hooks.js +1 -2
  39. package/dist/Dropzone/Dropzone.hooks.js.map +1 -1
  40. package/dist/Dropzone/Dropzone.js +7 -9
  41. package/dist/Dropzone/Dropzone.js.map +1 -1
  42. package/dist/Dropzone/Dropzone.styles.js +9 -9
  43. package/dist/EmptyState/EmptyState.styles.js +6 -6
  44. package/dist/Field/Field.styles.js +3 -3
  45. package/dist/FileList/FileList.styles.js +4 -4
  46. package/dist/FileSelect/FileExplorer/FileExplorer.js.map +1 -1
  47. package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
  48. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.js.map +1 -1
  49. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
  50. package/dist/FileSelect/FileSelect.js.map +1 -1
  51. package/dist/FileSelect/FileSelect.styles.js +2 -2
  52. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.js.map +1 -1
  53. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
  54. package/dist/FileSelect/FileTokenList/FileTokenList.js.map +1 -1
  55. package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
  56. package/dist/FileSelect/GridSource/GridSource.js.map +1 -1
  57. package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
  58. package/dist/FileSelect/LocalSource/LocalSource.js.map +1 -1
  59. package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
  60. package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
  61. package/dist/FileSelect/ThumbnailList/ThumbnailList.js.map +1 -1
  62. package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
  63. package/dist/FileSelect/TreeSource/TreeSource.js.map +1 -1
  64. package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
  65. package/dist/FileSelect/storyHelpers.js.map +1 -1
  66. package/dist/FileToken/FileToken.styles.js +4 -4
  67. package/dist/FilterToken/FilterToken.js +22 -32
  68. package/dist/FilterToken/FilterToken.js.map +1 -1
  69. package/dist/FilterToken/FilterToken.styles.d.ts +5 -0
  70. package/dist/FilterToken/FilterToken.styles.js +18 -2
  71. package/dist/FilterToken/FilterToken.styles.js.map +1 -1
  72. package/dist/FlexList/FlexList.styles.js +1 -1
  73. package/dist/Form/Form.js.map +1 -1
  74. package/dist/Form/Form.styles.js +14 -14
  75. package/dist/Form/StyledFormikForm.styles.js +2 -2
  76. package/dist/Form/stories/util.js.map +1 -1
  77. package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
  78. package/dist/Grid/Grid.styles.js +2 -2
  79. package/dist/GroupSelect/GroupSelect.styles.js +1 -1
  80. package/dist/Input/Input.styles.js +1 -1
  81. package/dist/Link/Link.styles.js +1 -1
  82. package/dist/ListPage/ListPage.styles.js +8 -8
  83. package/dist/Loader/Loader.styles.js +2 -2
  84. package/dist/Menu/Menu.js.map +1 -1
  85. package/dist/MenuImperative/MenuImperative.js.map +1 -1
  86. package/dist/MenuImperative/MenuImperative.styles.js +10 -10
  87. package/dist/MenuImperative/sensors.js.map +1 -1
  88. package/dist/Modal/Modal.js.map +1 -1
  89. package/dist/Modal/Modal.styles.js +13 -13
  90. package/dist/MultiSelect/MultiSelect.js.map +1 -1
  91. package/dist/MultiSelect/MultiSelect.styles.js +6 -6
  92. package/dist/NextMenu/NextMenu.js.map +1 -1
  93. package/dist/NextMenu/NextMenu.styles.js +3 -3
  94. package/dist/Notation/Notation.js +1 -1
  95. package/dist/NumberInput/NumberInput.js.map +1 -1
  96. package/dist/NumberInput/NumberInput.styles.js +7 -7
  97. package/dist/Overlay/Overlay.js.map +1 -1
  98. package/dist/Overlay/OverlayArrow.styles.js +1 -1
  99. package/dist/OverlayTrigger/OverlayTrigger.js.map +1 -1
  100. package/dist/OverlayTrigger/a11yPresets.js.map +1 -1
  101. package/dist/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
  102. package/dist/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
  103. package/dist/PageLayout/PageLayout.js.map +1 -1
  104. package/dist/PageLayout/PageLayout.styles.js +16 -16
  105. package/dist/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
  106. package/dist/PageTemplate/PageTemplate.styles.js +3 -3
  107. package/dist/Pagination/Pagination.js.map +1 -1
  108. package/dist/Pagination/Pagination.styles.js +5 -5
  109. package/dist/Panel/Panel.js.map +1 -1
  110. package/dist/Panel/Panel.styles.js +11 -11
  111. package/dist/Pill/Pill.styles.js +2 -2
  112. package/dist/PillSelect/PillSelect.styles.js +4 -4
  113. package/dist/Popover/Popover.styles.js +2 -2
  114. package/dist/Portal/Portal.styles.js +1 -1
  115. package/dist/ProgressBar/ProgressBar.d.ts +2 -0
  116. package/dist/ProgressBar/ProgressBar.js +2 -0
  117. package/dist/ProgressBar/ProgressBar.js.map +1 -1
  118. package/dist/ProgressBar/ProgressBar.styles.js +2 -2
  119. package/dist/ProgressBar/ProgressBar.types.js.map +1 -1
  120. package/dist/RadioButton/RadioButton.styles.js +3 -3
  121. package/dist/Required/Required.styles.js +3 -3
  122. package/dist/Search/Search.js.map +1 -1
  123. package/dist/Search/Search.styles.js +5 -5
  124. package/dist/Section/Section.js +1 -2
  125. package/dist/Section/Section.js.map +1 -1
  126. package/dist/Section/Section.styles.js +7 -7
  127. package/dist/Section/Section.styles.js.map +1 -1
  128. package/dist/SegmentedController/SegmentedController.js.map +1 -1
  129. package/dist/SegmentedController/SegmentedController.styles.js +4 -4
  130. package/dist/Select/Select.js.map +1 -1
  131. package/dist/Select/Select.styles.js +7 -7
  132. package/dist/Semantic/Semantic.styles.js +9 -9
  133. package/dist/Slider/Slider.js.map +1 -1
  134. package/dist/Slider/Slider.styles.js +5 -5
  135. package/dist/Spinner/Spinner.styles.js +7 -7
  136. package/dist/SplitViewCard/SplitViewCard.context.js.map +1 -1
  137. package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
  138. package/dist/SuperSelect/SuperSelect.components.js.map +1 -1
  139. package/dist/SuperSelect/SuperSelect.js.map +1 -1
  140. package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
  141. package/dist/SuperSelect/SuperSelect.styles.js +37 -37
  142. package/dist/SuperSelect/SuperSelect.utils.js +1 -2
  143. package/dist/SuperSelect/SuperSelect.utils.js.map +1 -1
  144. package/dist/SuperSelect/presets/contactsPreset.js.map +1 -1
  145. package/dist/SuperSelect/presets/filterPreset.js.map +1 -1
  146. package/dist/SuperSelect/presets/pillPreset.js.map +1 -1
  147. package/dist/SuperSelect/useSuperSelect.js.map +1 -1
  148. package/dist/Switch/Switch.styles.js +4 -4
  149. package/dist/Table/Table.js.map +1 -1
  150. package/dist/Table/Table.styles.js +28 -28
  151. package/dist/TableShelf/TableShelf.styles.js +5 -5
  152. package/dist/Tabs/Tabs.js.map +1 -1
  153. package/dist/Tabs/Tabs.styles.js +15 -15
  154. package/dist/Tearsheet/Tearsheet.js.map +1 -1
  155. package/dist/Tearsheet/Tearsheet.styles.js +5 -5
  156. package/dist/TextArea/TextArea.styles.js +1 -1
  157. package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
  158. package/dist/Thumbnail/Thumbnail.js.map +1 -1
  159. package/dist/Thumbnail/Thumbnail.styles.js +17 -17
  160. package/dist/Thumbnail/Thumbnail.utils.js +2 -3
  161. package/dist/Thumbnail/Thumbnail.utils.js.map +1 -1
  162. package/dist/Thumbnail/ThumbnailDocumentIcon.js +2 -3
  163. package/dist/Thumbnail/ThumbnailDocumentIcon.js.map +1 -1
  164. package/dist/ThumbnailGrid/ThumbnailGrid.js.map +1 -1
  165. package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
  166. package/dist/TieredDropdown/TieredDropdown.js.map +1 -1
  167. package/dist/TieredSelect/LeafSelectionTieredSelect.js.map +1 -1
  168. package/dist/TieredSelect/TierSelectionTieredSelect.js.map +1 -1
  169. package/dist/TieredSelect/TieredSelect.styles.js +9 -9
  170. package/dist/TieredSelect/TieredSelectMenu.js.map +1 -1
  171. package/dist/Tile/Tile.js.map +1 -1
  172. package/dist/Tile/Tile.styles.js +8 -8
  173. package/dist/Title/Title.styles.js +7 -7
  174. package/dist/Toast/Toast.styles.js +3 -3
  175. package/dist/ToggleButton/ToggleButton.styles.js +1 -1
  176. package/dist/Token/Token.styles.js +3 -3
  177. package/dist/ToolHeader/ActionIcon.types.example.js.map +1 -1
  178. package/dist/ToolHeader/ToolHeader.styles.js +6 -6
  179. package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
  180. package/dist/Tooltip/Tooltip.styles.js +2 -2
  181. package/dist/Tree/Tree.js.map +1 -1
  182. package/dist/Tree/Tree.styles.js +9 -9
  183. package/dist/Tree/Tree.styles.js.map +1 -1
  184. package/dist/Typeahead/Typeahead.styles.js +3 -3
  185. package/dist/Typography/Typography.styles.js +1 -1
  186. package/dist/Typography/Typography.table.story.js +2 -2
  187. package/dist/_hooks/FocusScopeOverride.js.map +1 -1
  188. package/dist/_hooks/Hotkey.js.map +1 -1
  189. package/dist/_hooks/TextEntry.js.map +1 -1
  190. package/dist/_hooks/Timer.js.map +1 -1
  191. package/dist/_hooks/Trigger.js.map +1 -1
  192. package/dist/_hooks/useFileUploader.js.map +1 -1
  193. package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
  194. package/dist/_typedoc/AvatarStack/AvatarStack.types.json +24 -24
  195. package/dist/_typedoc/Badge/Badge.types.json +6 -6
  196. package/dist/_typedoc/Banner/Banner.types.json +13 -13
  197. package/dist/_typedoc/Box/Box.types.json +68 -68
  198. package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
  199. package/dist/_typedoc/Button/Button.types.json +24 -16
  200. package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
  201. package/dist/_typedoc/Card/Card.types.json +6 -6
  202. package/dist/_typedoc/Checkbox/Checkbox.types.json +9 -9
  203. package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
  204. package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
  205. package/dist/_typedoc/DateSelect/DateSelect.types.json +13 -13
  206. package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
  207. package/dist/_typedoc/Dropdown/Dropdown.types.json +43 -39
  208. package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +29 -29
  209. package/dist/_typedoc/Dropzone/Dropzone.types.json +41 -41
  210. package/dist/_typedoc/EmptyState/EmptyState.types.json +14 -14
  211. package/dist/_typedoc/FileList/FileList.types.json +9 -9
  212. package/dist/_typedoc/FileSelect/FileSelect.types.json +26 -26
  213. package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
  214. package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
  215. package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
  216. package/dist/_typedoc/Flex/Flex.types.json +27 -27
  217. package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
  218. package/dist/_typedoc/Form/Form.types.json +741 -741
  219. package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
  220. package/dist/_typedoc/Grid/Grid.types.json +8 -8
  221. package/dist/_typedoc/GroupSelect/GroupSelect.types.json +52 -52
  222. package/dist/_typedoc/Input/Input.types.json +2 -2
  223. package/dist/_typedoc/Link/Link.types.json +4 -4
  224. package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
  225. package/dist/_typedoc/Menu/Menu.types.json +62 -62
  226. package/dist/_typedoc/MenuImperative/MenuImperative.types.json +74 -74
  227. package/dist/_typedoc/Modal/Modal.types.json +46 -46
  228. package/dist/_typedoc/MultiSelect/MultiSelect.types.json +31 -31
  229. package/dist/_typedoc/Notation/Notation.types.json +4 -4
  230. package/dist/_typedoc/NumberInput/NumberInput.types.json +37 -37
  231. package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +31 -31
  232. package/dist/_typedoc/PageLayout/PageLayout.types.json +29 -29
  233. package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
  234. package/dist/_typedoc/Panel/Panel.types.json +34 -30
  235. package/dist/_typedoc/Pill/Pill.types.json +2 -2
  236. package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
  237. package/dist/_typedoc/Popover/Popover.types.json +15 -15
  238. package/dist/_typedoc/ProgressBar/ProgressBar.types.json +6 -6
  239. package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
  240. package/dist/_typedoc/Required/Required.types.json +5 -5
  241. package/dist/_typedoc/Search/Search.types.json +19 -19
  242. package/dist/_typedoc/Section/Section.types.json +15 -15
  243. package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
  244. package/dist/_typedoc/Select/Select.types.json +60 -60
  245. package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
  246. package/dist/_typedoc/Slider/Slider.types.json +6 -6
  247. package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
  248. package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +12 -12
  249. package/dist/_typedoc/Switch/Switch.types.json +3 -3
  250. package/dist/_typedoc/Table/Table.types.json +101 -101
  251. package/dist/_typedoc/Tabs/Tabs.types.json +20 -20
  252. package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
  253. package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
  254. package/dist/_typedoc/TextEditor/TextEditor.types.json +9 -9
  255. package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +4 -4
  256. package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
  257. package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +48 -44
  258. package/dist/_typedoc/TieredSelect/TieredSelect.types.json +28 -28
  259. package/dist/_typedoc/Tile/Tile.types.json +30 -30
  260. package/dist/_typedoc/Title/Title.types.json +1 -1
  261. package/dist/_typedoc/Toast/Toast.types.json +4 -4
  262. package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
  263. package/dist/_typedoc/Token/Token.types.json +4 -4
  264. package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
  265. package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +7 -7
  266. package/dist/_typedoc/Tooltip/Tooltip.types.json +13 -13
  267. package/dist/_typedoc/Tree/Tree.types.json +86 -86
  268. package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
  269. package/dist/_typedoc/Typography/Typography.types.json +9 -9
  270. package/dist/_typedoc/_utils/types.json +3 -3
  271. package/dist/_typedoc/deprecations.json +1 -1
  272. package/dist/_utils/TinyMCE.js.map +1 -1
  273. package/dist/_utils/closeWithConfirm.js.map +1 -1
  274. package/dist/_utils/dateTime.js.map +1 -1
  275. package/dist/_utils/getAnchorPosition.js.map +1 -1
  276. package/package.json +2 -1
  277. package/tsconfig.prod.json +2 -1
  278. package/tsconfig.test.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MenuImperative.js","names":["Grip","useLabel","useId","React","isValidElement","useEffect","useMemo","useState","DragDropContext","Draggable","Droppable","DndDroppable","useMouseSensor","useTouchSensor","Checkbox","FakeCheckbox","Typeahead","useI18nContext","useZIndexContext","colors","addSubcomponents","mergeRefs","StyledDroppable","StyledFooter","StyledGrip","StyledGroup","StyledHeader","StyledItem","StyledMenu","StyledOptions","StyledSearch","StyledWrapper","createSensors","onScrollBottomThreshold","NO_ANNOUCEMENT","noop","isScrolledToBottom","e","currentTarget","HTMLElement","scrollTop","scrollHeight","clientHeight","useMergeRef","externalRef","ref","useRef","useCallback","node","current","MenuContext","createContext","a11yOptionsProps","currentlyDroppableIn","onHoverItem","onScrollBottom","onSelect","role","useMenuContext","context","useContext","Error","useMenuImperativeControlNavigation","enable","arguments","length","undefined","options","_id","menuId","id","_React$useState","_React$useState2","_slicedToArray","activeDescendant","setActiveDescendant","_useState","_useState2","onKeyDown","setOnKeyDown","_ref$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","_useState3","_useState4","setCurrentlyDroppableIn","selection","onChangeHighlight","_useMemo","handleItemHover","handleKeyDown","highlight","highlighted","highlightFirst","highlightLast","highlightSelected","highlightSuggested","rehighlightCurrent","prev","next","select","updateSelectCallback","useKeyboardSensor","commonA11yOptionProps","_defineProperty","_objectSpread","tabIndex","useImperativeHandle","el","onDragStart","start","provided","announce","itemInfo","JSON","parse","draggableId","droppableIn","onDragUpdate","_update","result","reason","destination","source","createElement","Provider","value","enableDefaultSensors","sensors","Group","_ref2","clickable","_ref2$item","item","children","_excluded2","_useLabel","label","labelElementType","fieldProps","labelProps","_extends","onClick","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_","_ref5$selected","_ref5$suggested","suggested","_ref5$disabled","disabled","restoreFocus","draggableIndex","_excluded4","_useMergeRef","_useMergeRef2","setRef","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","_excluded6","I18n","_React$useState3","_React$useState4","setValue","autoFocus","scope","Header","_ref8","_objectDestructuringEmpty","Footer","_ref9","_ref9$padding","padding","_excluded7","displayName","MenuImperative"],"sources":["../../src/MenuImperative/MenuImperative.tsx"],"sourcesContent":["import { 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 {\n DraggableProvided,\n DraggableRubric,\n DraggableStateSnapshot,\n DragStart,\n DragUpdate,\n DroppableProvided,\n DroppableStateSnapshot,\n DropResult,\n ResponderProvided,\n} from 'react-beautiful-dnd'\nimport {\n DragDropContext,\n Draggable,\n Droppable as DndDroppable,\n useMouseSensor,\n useTouchSensor,\n} from 'react-beautiful-dnd'\nimport { Checkbox, FakeCheckbox } from '../Checkbox/Checkbox'\nimport type { CheckboxProps } from '../Checkbox/Checkbox.types'\nimport { Typeahead } from '../Typeahead/Typeahead'\nimport type { TypeaheadProps } from '../Typeahead/Typeahead.types'\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 type { DivAttributes } from '../_utils/types'\nimport {\n StyledDroppable,\n StyledFooter,\n StyledGrip,\n StyledGroup,\n StyledHeader,\n StyledItem,\n StyledMenu,\n StyledOptions,\n StyledSearch,\n StyledWrapper,\n} from './MenuImperative.styles'\nimport type {\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 Ref,\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\n// TODO use the shared mergeRefs utility\nexport function useMergeRef<T = HTMLElement>(externalRef: Ref<T>) {\n const ref = React.useRef<T>()\n\n return [\n ref,\n React.useCallback(\n (node) => {\n ref.current = node\n\n if (externalRef) {\n if (typeof externalRef === 'function') {\n externalRef(node)\n } else {\n externalRef.current = node\n }\n }\n },\n [externalRef]\n ),\n ] as const\n}\n\nconst 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\ninterface ControlNavigationProps {\n menuId?: MenuProps['id']\n}\n\ninterface 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/**\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 useKeyboardSensor,\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 enableDefaultSensors={false}\n sensors={[useMouseSensor, useTouchSensor, useKeyboardSensor]}\n >\n <StyledMenu {...props} />\n </DragDropContext>\n </StyledWrapper>\n </MenuContext.Provider>\n )\n})\n\nexport const Group = React.forwardRef<\n HTMLDivElement,\n DivAttributes & GroupProps\n>(function Group({ clickable, item = 'group', id, children, ...props }, ref) {\n const { fieldProps, labelProps } = useLabel({\n id,\n label: children,\n labelElementType: 'span',\n })\n\n return (\n <StyledGroup\n ref={ref}\n onClick={(e) => {\n // TODO: implement selecting groups?\n }}\n data-group={true}\n data-value={JSON.stringify(item)}\n role=\"separator\"\n {...fieldProps}\n {...props}\n >\n <span {...labelProps}>{children}</span>\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}: DivAttributes &\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 [ref, setRef] = useMergeRef<HTMLDivElement>(forwardRef)\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, setRef)}\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={setRef} 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 DivAttributes &\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 ...props\n}: MenuSearchProps) => {\n const I18n = useI18nContext()\n\n const [value, setValue] = React.useState('')\n\n const onChange: TypeaheadProps['onChange'] = React.useCallback(\n function (value, event) {\n setValue(value)\n _onChange?.(event)\n },\n [_onChange]\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 DivAttributes & HeaderProps\n>(function Header({ ...props }, ref) {\n return <StyledHeader ref={ref} {...props} />\n})\n\nexport const Footer = React.forwardRef<\n HTMLDivElement,\n DivAttributes & 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":["Grip","useLabel","useId","React","isValidElement","useEffect","useMemo","useState","DragDropContext","Draggable","Droppable","DndDroppable","useMouseSensor","useTouchSensor","Checkbox","FakeCheckbox","Typeahead","useI18nContext","useZIndexContext","colors","addSubcomponents","mergeRefs","StyledDroppable","StyledFooter","StyledGrip","StyledGroup","StyledHeader","StyledItem","StyledMenu","StyledOptions","StyledSearch","StyledWrapper","createSensors","onScrollBottomThreshold","NO_ANNOUCEMENT","noop","isScrolledToBottom","e","currentTarget","HTMLElement","scrollTop","scrollHeight","clientHeight","useMergeRef","externalRef","ref","useRef","useCallback","node","current","MenuContext","createContext","a11yOptionsProps","currentlyDroppableIn","onHoverItem","onScrollBottom","onSelect","role","useMenuContext","context","useContext","Error","useMenuImperativeControlNavigation","enable","arguments","length","undefined","options","_id","menuId","id","_React$useState","_React$useState2","_slicedToArray","activeDescendant","setActiveDescendant","_useState","_useState2","onKeyDown","setOnKeyDown","_ref$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","_useState3","_useState4","setCurrentlyDroppableIn","selection","onChangeHighlight","_useMemo","handleItemHover","handleKeyDown","highlight","highlighted","highlightFirst","highlightLast","highlightSelected","highlightSuggested","rehighlightCurrent","prev","next","select","updateSelectCallback","useKeyboardSensor","commonA11yOptionProps","_defineProperty","_objectSpread","tabIndex","useImperativeHandle","el","onDragStart","start","provided","announce","itemInfo","JSON","parse","draggableId","droppableIn","onDragUpdate","_update","result","reason","destination","source","createElement","Provider","value","enableDefaultSensors","sensors","Group","_ref2","clickable","_ref2$item","item","children","_excluded2","_useLabel","label","labelElementType","fieldProps","labelProps","_extends","onClick","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_","_ref5$selected","_ref5$suggested","suggested","_ref5$disabled","disabled","restoreFocus","draggableIndex","_excluded4","_useMergeRef","_useMergeRef2","setRef","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","_excluded6","I18n","_React$useState3","_React$useState4","setValue","autoFocus","scope","Header","_ref8","_objectDestructuringEmpty","Footer","_ref9","_ref9$padding","padding","_excluded7","displayName","MenuImperative"],"sources":["../../src/MenuImperative/MenuImperative.tsx"],"sourcesContent":["import { 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 {\n DraggableProvided,\n DraggableRubric,\n DraggableStateSnapshot,\n DragStart,\n DragUpdate,\n DroppableProvided,\n DroppableStateSnapshot,\n DropResult,\n ResponderProvided,\n} from 'react-beautiful-dnd'\nimport {\n DragDropContext,\n Draggable,\n Droppable as DndDroppable,\n useMouseSensor,\n useTouchSensor,\n} from 'react-beautiful-dnd'\nimport { Checkbox, FakeCheckbox } from '../Checkbox/Checkbox'\nimport type { CheckboxProps } from '../Checkbox/Checkbox.types'\nimport { Typeahead } from '../Typeahead/Typeahead'\nimport type { TypeaheadProps } from '../Typeahead/Typeahead.types'\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 type { DivAttributes } from '../_utils/types'\nimport {\n StyledDroppable,\n StyledFooter,\n StyledGrip,\n StyledGroup,\n StyledHeader,\n StyledItem,\n StyledMenu,\n StyledOptions,\n StyledSearch,\n StyledWrapper,\n} from './MenuImperative.styles'\nimport type {\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 Ref,\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\n// TODO use the shared mergeRefs utility\nexport function useMergeRef<T = HTMLElement>(externalRef: Ref<T>) {\n const ref = React.useRef<T>()\n\n return [\n ref,\n React.useCallback(\n (node) => {\n ref.current = node\n\n if (externalRef) {\n if (typeof externalRef === 'function') {\n externalRef(node)\n } else {\n externalRef.current = node\n }\n }\n },\n [externalRef]\n ),\n ] as const\n}\n\nconst 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\ninterface ControlNavigationProps {\n menuId?: MenuProps['id']\n}\n\ninterface 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/**\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 useKeyboardSensor,\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 enableDefaultSensors={false}\n sensors={[useMouseSensor, useTouchSensor, useKeyboardSensor]}\n >\n <StyledMenu {...props} />\n </DragDropContext>\n </StyledWrapper>\n </MenuContext.Provider>\n )\n})\n\nexport const Group = React.forwardRef<\n HTMLDivElement,\n DivAttributes & GroupProps\n>(function Group({ clickable, item = 'group', id, children, ...props }, ref) {\n const { fieldProps, labelProps } = useLabel({\n id,\n label: children,\n labelElementType: 'span',\n })\n\n return (\n <StyledGroup\n ref={ref}\n onClick={(e) => {\n // TODO: implement selecting groups?\n }}\n data-group={true}\n data-value={JSON.stringify(item)}\n role=\"separator\"\n {...fieldProps}\n {...props}\n >\n <span {...labelProps}>{children}</span>\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}: DivAttributes &\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 [ref, setRef] = useMergeRef<HTMLDivElement>(forwardRef)\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, setRef)}\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={setRef} 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 DivAttributes &\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 ...props\n}: MenuSearchProps) => {\n const I18n = useI18nContext()\n\n const [value, setValue] = React.useState('')\n\n const onChange: TypeaheadProps['onChange'] = React.useCallback(\n function (value, event) {\n setValue(value)\n _onChange?.(event)\n },\n [_onChange]\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 DivAttributes & HeaderProps\n>(function Header({ ...props }, ref) {\n return <StyledHeader ref={ref} {...props} />\n})\n\nexport const Footer = React.forwardRef<\n HTMLDivElement,\n DivAttributes & 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_17_6__sc-z984sz-0"
14
+ componentId: "core-12_17_7__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_17_6__sc-z984sz-1"
18
+ componentId: "core-12_17_7__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_17_6__sc-z984sz-2"
22
+ componentId: "core-12_17_7__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,26 +27,26 @@ 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_17_6__sc-z984sz-3"
30
+ componentId: "core-12_17_7__sc-z984sz-3"
31
31
  })(["padding:0 2px;height:24px;visibility:hidden;"]);
32
32
  export var StyledHeader = /*#__PURE__*/styled.div.withConfig({
33
33
  displayName: "StyledHeader",
34
- componentId: "core-12_17_6__sc-z984sz-4"
34
+ componentId: "core-12_17_7__sc-z984sz-4"
35
35
  })([""]);
36
36
  export var StyledSearch = /*#__PURE__*/styled.div.withConfig({
37
37
  displayName: "StyledSearch",
38
- componentId: "core-12_17_6__sc-z984sz-5"
38
+ componentId: "core-12_17_7__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_17_6__sc-z984sz-6"
42
+ componentId: "core-12_17_7__sc-z984sz-6"
43
43
  })(["", " color:", ";cursor:", ";font-weight:", ";padding:", "px ", "px;&:not(:first-child){padding-top:", "px;}"], getTypographyIntent('body'), colors.gray15, function (_ref2) {
44
44
  var $clickable = _ref2.$clickable;
45
45
  return $clickable ? 'pointer' : 'default';
46
46
  }, typographyWeights.semibold, spacing.xs, spacing.lg, spacing.md + spacing.xs);
47
47
  export var StyledItem = /*#__PURE__*/styled.div.withConfig({
48
48
  displayName: "StyledItem",
49
- componentId: "core-12_17_6__sc-z984sz-7"
49
+ componentId: "core-12_17_7__sc-z984sz-7"
50
50
  })(["", ";", " 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 (_ref3) {
51
51
  var as = _ref3.as;
52
52
  return as === 'a' && css(["display:block;text-decoration:none;"]);
@@ -75,10 +75,10 @@ export var StyledItem = /*#__PURE__*/styled.div.withConfig({
75
75
  });
76
76
  export var StyledDroppable = /*#__PURE__*/styled.div.withConfig({
77
77
  displayName: "StyledDroppable",
78
- componentId: "core-12_17_6__sc-z984sz-8"
78
+ componentId: "core-12_17_7__sc-z984sz-8"
79
79
  })(["", ",", "{padding-left:28px;}"], StyledGroup, StyledItem);
80
80
  export var StyledFooter = /*#__PURE__*/styled(Box).withConfig({
81
81
  displayName: "StyledFooter",
82
- componentId: "core-12_17_6__sc-z984sz-9"
82
+ componentId: "core-12_17_7__sc-z984sz-9"
83
83
  })(["border-top:1px solid ", ";border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;"], colors.gray85);
84
84
  //# sourceMappingURL=MenuImperative.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sensors.js","names":["scrollIntoView","noop","MOUSE_ENTER","MOUSE_LEAVE","menuItemsWrapperAttributeName","menuItemsWrapperAttribute","_defineProperty","isItem","element","hasAttribute","isGroup","el","JSON","parse","dataset","group","isWrapper","getAttribute","getFirstItem","menu","firstItem","querySelector","getNextItem","getPrevItem","item","_item$parentElement2","previousElementSibling","getLastItem","parentElement","_item$parentElement","_item$parentElement3","_item$parentElement3$","prevDroppableItems","querySelectorAll","length","_item$parentElement5","nextElementSibling","_item$parentElement4","_item$parentElement6","_item$parentElement6$","items","lastItem","updateHighlightedAttribute","highlight","setAttribute","dispatchEvent","MouseEvent","createSensors","ref","circular","onChangeActiveDescendant","highlightedItem","dragAndDropApi","currentDrag","onSelect","select","event","current","_highlightedItem","_highlightedItem2","_highlightedItem3","_highlightedItem4","_highlightedItem5","_onSelect","disabled","value","selected","restoreFocus","restorefocus","undefined","tagName","click","_objectSpread","action","highlightItem","shouldScroll","arguments","_item$getAttribute","id","getPrevHighlightableItem","currentItem","prev","getNextHighlightableItem","next","highlightFirstItem","highlightLastItem","highlightPrevItem","_ref$current","contains","highlightNextItem","_ref$current2","handleKeyDown","_currentDrag4","key","_currentDrag","preventDefault","isActive","moveUp","_currentDrag2","moveDown","_currentDrag3","ctrlKey","metaKey","_highlightedItem6","draggableId","_dragAndDropApi","preDrag","tryGetLock","snapLift","drop","cancel","handleItemHover","useKeyboardSensor","api","updateSelectCallback","callback","highlighted","_highlightedItem7","highlightFirst","highlightLast","rehighlightCurrent","_highlightedItem8","_ref$current3","newItem","concat","replace","highlightSelected","_ref$current4","selectedItem","highlightSuggested","_ref$current5","suggestedItem"],"sources":["../../src/MenuImperative/sensors.ts"],"sourcesContent":["import type React from 'react'\nimport type { SensorAPI, SnapDragActions } from 'react-beautiful-dnd'\nimport { scrollIntoView } from '../_utils/scrollIntoView'\nimport type { Selection } from './MenuImperative.types'\n\nfunction noop() {}\n\nconst MOUSE_ENTER = 'mouseenter'\nconst MOUSE_LEAVE = 'mouseleave'\n\nconst menuItemsWrapperAttributeName = 'data-core-menuimperative-items-wrapper'\nexport const menuItemsWrapperAttribute = {\n [menuItemsWrapperAttributeName]: 'true',\n}\n\nconst isItem = (element: Element | null) => element?.hasAttribute('data-value')\n\nfunction isGroup(el: HTMLElement) {\n return JSON.parse(el.dataset.group || 'false')\n}\n\nconst isWrapper = (element: Element | null) =>\n element?.getAttribute(menuItemsWrapperAttributeName) === 'true'\n\nfunction getFirstItem(menu: Element | null) {\n const firstItem = menu?.querySelector<HTMLElement>('[data-value]:first-child')\n\n if (firstItem && isGroup(firstItem)) {\n return getNextItem(firstItem)\n }\n\n return firstItem\n}\n\nfunction getPrevItem(item: Element): HTMLElement | null {\n if (item.previousElementSibling) {\n // LocationFilter in data-table has div-wrapper around some items\n if (isWrapper(item.previousElementSibling)) {\n return getLastItem(item.previousElementSibling) as HTMLElement\n }\n\n return item.previousElementSibling as HTMLElement\n }\n\n if (isWrapper(item?.parentElement)) {\n return item?.parentElement?.previousElementSibling as HTMLElement\n }\n\n if (item?.parentElement?.getAttribute('data-droppable') === 'true') {\n const prevDroppableItems =\n item?.parentElement?.previousElementSibling?.querySelectorAll<HTMLElement>(\n '[data-group=\"false\"]'\n )\n return prevDroppableItems?.length\n ? prevDroppableItems[prevDroppableItems.length - 1]\n : null\n }\n\n return null\n}\n\nfunction getNextItem(item: Element): HTMLElement | null {\n if (item.nextElementSibling) {\n // LocationFilter in data-table has div-wrapper around some items\n if (isWrapper(item.nextElementSibling)) {\n return getFirstItem(item.previousElementSibling) as HTMLElement\n }\n return item.nextElementSibling as HTMLElement\n }\n\n if (isWrapper(item?.parentElement)) {\n return item?.parentElement?.nextElementSibling as HTMLElement\n }\n\n if (item?.parentElement?.getAttribute('data-droppable') === 'true') {\n return item?.parentElement?.nextElementSibling?.querySelector(\n '[data-group=\"false\"]'\n ) as HTMLElement\n }\n\n return null\n}\n\nfunction getLastItem(menu: Element | null) {\n const items = menu?.querySelectorAll<HTMLElement>('[data-value]')\n const lastItem = items?.[items.length - 1]\n\n if (lastItem && isGroup(lastItem)) {\n return getPrevItem(lastItem)\n }\n\n return lastItem\n}\n\nfunction updateHighlightedAttribute(\n item: Element | null | undefined,\n highlight: boolean\n) {\n item?.setAttribute('data-highlighted', highlight ? 'true' : 'false')\n item?.dispatchEvent(new MouseEvent(highlight ? MOUSE_ENTER : MOUSE_LEAVE))\n}\n\nexport function createSensors(\n ref: React.RefObject<HTMLDivElement>,\n circular: boolean,\n onChangeActiveDescendant: (\n id: string | undefined,\n menuRef: Element | null\n ) => void\n) {\n let highlightedItem: HTMLElement | null = null\n let dragAndDropApi: SensorAPI | null = null\n let currentDrag: SnapDragActions | null = null\n let onSelect: (selection: Selection) => any = noop\n\n function select(\n event:\n | React.MouseEvent<HTMLElement, MouseEvent>\n | React.KeyboardEvent<HTMLElement>\n ) {\n if (ref.current && highlightedItem) {\n const disabled = JSON.parse(highlightedItem?.dataset.disabled || 'false')\n if (disabled) return\n\n const item = JSON.parse(highlightedItem?.dataset.value || 'null')\n const selected = JSON.parse(highlightedItem?.dataset.selected || 'false')\n const restoreFocus = highlightedItem?.dataset.restorefocus\n ? JSON.parse(highlightedItem?.dataset.restorefocus)\n : undefined\n\n if (highlightedItem.tagName === 'A') {\n highlightedItem.click()\n }\n\n onSelect?.({\n event,\n item,\n group: false,\n action: selected ? 'unselected' : 'selected',\n ...(restoreFocus === undefined ? {} : { restoreFocus }),\n })\n }\n }\n\n function highlightItem(\n item: HTMLElement | null | undefined,\n shouldScroll: boolean = true\n ) {\n // performance improvement, highlightItem is called onMouseMove for Item\n if (item === highlightedItem) {\n return\n }\n\n if (item) {\n updateHighlightedAttribute(highlightedItem, false)\n\n // TODO add localized screenreader instructions for the item\n updateHighlightedAttribute(item, true)\n\n const id = item.getAttribute('id') ?? undefined\n onChangeActiveDescendant(id, ref.current)\n\n highlightedItem = item\n\n if (shouldScroll) {\n scrollIntoView(-1, item)\n }\n } else {\n onChangeActiveDescendant('', ref.current)\n }\n }\n\n function getPrevHighlightableItem(\n currentItem: HTMLElement\n ): HTMLElement | null | undefined {\n const prev = getPrevItem(currentItem)\n if (prev) {\n if (isItem(prev)) {\n if (isGroup(prev)) {\n return getPrevHighlightableItem(prev)\n } else {\n return prev\n }\n }\n } else if (circular) {\n return getLastItem(ref.current)\n }\n\n return prev\n }\n\n function getNextHighlightableItem(\n currentItem: HTMLElement\n ): HTMLElement | null | undefined {\n const next = getNextItem(currentItem)\n\n if (next) {\n if (isItem(next)) {\n if (isGroup(next)) {\n return getNextHighlightableItem(next)\n }\n return next\n }\n } else if (circular) {\n return getFirstItem(ref.current)\n }\n }\n\n function highlightFirstItem(shouldScroll: boolean = true) {\n highlightItem(getFirstItem(ref.current), shouldScroll)\n }\n\n function highlightLastItem(shouldScroll: boolean = true) {\n highlightItem(getLastItem(ref.current), shouldScroll)\n }\n\n function highlightPrevItem() {\n if (highlightedItem && ref.current?.contains(highlightedItem)) {\n const prev = getPrevHighlightableItem(highlightedItem)\n if (prev) {\n highlightItem(prev)\n }\n } else {\n highlightLastItem()\n }\n }\n\n function highlightNextItem() {\n if (highlightedItem && ref.current?.contains(highlightedItem)) {\n const next = getNextHighlightableItem(highlightedItem)\n if (next) {\n highlightItem(next)\n }\n } else {\n highlightFirstItem()\n }\n }\n\n return {\n handleKeyDown(event: React.KeyboardEvent<HTMLDivElement>) {\n if (ref.current) {\n if (event.key === 'ArrowUp' || event.key === 'Up') {\n event.preventDefault()\n currentDrag?.isActive() ? currentDrag.moveUp() : highlightPrevItem()\n } else if (event.key === 'ArrowDown' || event.key === 'Down') {\n event.preventDefault()\n currentDrag?.isActive() ? currentDrag.moveDown() : highlightNextItem()\n } else if (event.key === 'Enter') {\n event.preventDefault()\n if (event.ctrlKey || event.metaKey) {\n const draggableId = highlightedItem?.getAttribute(\n 'data-rbd-draggable-id'\n )\n if (draggableId) {\n const preDrag = dragAndDropApi?.tryGetLock(draggableId)\n if (preDrag) {\n currentDrag = preDrag.snapLift()\n }\n }\n } else if (currentDrag?.isActive()) {\n currentDrag.drop()\n } else {\n select(event)\n }\n } else if (event.key === 'Escape' && currentDrag?.isActive()) {\n currentDrag.cancel()\n }\n }\n },\n handleItemHover(el?: HTMLDivElement) {\n highlightItem(el, false)\n },\n useKeyboardSensor(api: SensorAPI) {\n dragAndDropApi = api\n },\n\n updateSelectCallback(callback: (selection: Selection) => any) {\n onSelect = callback\n },\n\n highlight: highlightItem,\n\n highlighted() {\n return JSON.parse(highlightedItem?.dataset.value || 'null')\n },\n\n highlightFirst: highlightFirstItem,\n highlightLast: highlightLastItem,\n rehighlightCurrent() {\n // Rehighlights an item that may have lost its styling due to the re-render of the list items\n const draggableId = highlightedItem?.getAttribute('data-rbd-draggable-id')\n if (draggableId) {\n const newItem = ref.current?.querySelector<HTMLElement>(\n `[data-rbd-draggable-id=\"${draggableId.replace(/\"/g, '\\\\\"')}\"]`\n )\n highlightItem(newItem)\n }\n },\n\n highlightSelected(shouldScroll: boolean = true) {\n const selectedItem = ref.current?.querySelector<HTMLElement>(\n '[data-selected=\"true\"]'\n )\n\n highlightItem(selectedItem, shouldScroll)\n },\n\n highlightSuggested(shouldScroll: boolean = true) {\n const suggestedItem = ref.current?.querySelector<HTMLElement>(\n '[data-suggested=\"true\"]'\n )\n\n highlightItem(suggestedItem, shouldScroll)\n },\n\n prev: highlightPrevItem,\n next: highlightNextItem,\n select,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"sensors.js","names":["scrollIntoView","noop","MOUSE_ENTER","MOUSE_LEAVE","menuItemsWrapperAttributeName","menuItemsWrapperAttribute","_defineProperty","isItem","element","hasAttribute","isGroup","el","JSON","parse","dataset","group","isWrapper","getAttribute","getFirstItem","menu","firstItem","querySelector","getNextItem","getPrevItem","item","_item$parentElement2","previousElementSibling","getLastItem","parentElement","_item$parentElement","_item$parentElement3","_item$parentElement3$","prevDroppableItems","querySelectorAll","length","_item$parentElement5","nextElementSibling","_item$parentElement4","_item$parentElement6","_item$parentElement6$","items","lastItem","updateHighlightedAttribute","highlight","setAttribute","dispatchEvent","MouseEvent","createSensors","ref","circular","onChangeActiveDescendant","highlightedItem","dragAndDropApi","currentDrag","onSelect","select","event","current","_highlightedItem","_highlightedItem2","_highlightedItem3","_highlightedItem4","_highlightedItem5","_onSelect","disabled","value","selected","restoreFocus","restorefocus","undefined","tagName","click","_objectSpread","action","highlightItem","shouldScroll","arguments","_item$getAttribute","id","getPrevHighlightableItem","currentItem","prev","getNextHighlightableItem","next","highlightFirstItem","highlightLastItem","highlightPrevItem","_ref$current","contains","highlightNextItem","_ref$current2","handleKeyDown","_currentDrag4","key","_currentDrag","preventDefault","isActive","moveUp","_currentDrag2","moveDown","_currentDrag3","ctrlKey","metaKey","_highlightedItem6","draggableId","_dragAndDropApi","preDrag","tryGetLock","snapLift","drop","cancel","handleItemHover","useKeyboardSensor","api","updateSelectCallback","callback","highlighted","_highlightedItem7","highlightFirst","highlightLast","rehighlightCurrent","_highlightedItem8","_ref$current3","newItem","concat","replace","highlightSelected","_ref$current4","selectedItem","highlightSuggested","_ref$current5","suggestedItem"],"sources":["../../src/MenuImperative/sensors.ts"],"sourcesContent":["import type React from 'react'\nimport type { SensorAPI, SnapDragActions } from 'react-beautiful-dnd'\nimport { scrollIntoView } from '../_utils/scrollIntoView'\nimport type { Selection } from './MenuImperative.types'\n\nfunction noop() {}\n\nconst MOUSE_ENTER = 'mouseenter'\nconst MOUSE_LEAVE = 'mouseleave'\n\nconst menuItemsWrapperAttributeName = 'data-core-menuimperative-items-wrapper'\nexport const menuItemsWrapperAttribute = {\n [menuItemsWrapperAttributeName]: 'true',\n}\n\nconst isItem = (element: Element | null) => element?.hasAttribute('data-value')\n\nfunction isGroup(el: HTMLElement) {\n return JSON.parse(el.dataset.group || 'false')\n}\n\nconst isWrapper = (element: Element | null) =>\n element?.getAttribute(menuItemsWrapperAttributeName) === 'true'\n\nfunction getFirstItem(menu: Element | null) {\n const firstItem = menu?.querySelector<HTMLElement>('[data-value]:first-child')\n\n if (firstItem && isGroup(firstItem)) {\n return getNextItem(firstItem)\n }\n\n return firstItem\n}\n\nfunction getPrevItem(item: Element): HTMLElement | null {\n if (item.previousElementSibling) {\n // LocationFilter in data-table has div-wrapper around some items\n if (isWrapper(item.previousElementSibling)) {\n return getLastItem(item.previousElementSibling) as HTMLElement\n }\n\n return item.previousElementSibling as HTMLElement\n }\n\n if (isWrapper(item?.parentElement)) {\n return item?.parentElement?.previousElementSibling as HTMLElement\n }\n\n if (item?.parentElement?.getAttribute('data-droppable') === 'true') {\n const prevDroppableItems =\n item?.parentElement?.previousElementSibling?.querySelectorAll<HTMLElement>(\n '[data-group=\"false\"]'\n )\n return prevDroppableItems?.length\n ? prevDroppableItems[prevDroppableItems.length - 1]\n : null\n }\n\n return null\n}\n\nfunction getNextItem(item: Element): HTMLElement | null {\n if (item.nextElementSibling) {\n // LocationFilter in data-table has div-wrapper around some items\n if (isWrapper(item.nextElementSibling)) {\n return getFirstItem(item.previousElementSibling) as HTMLElement\n }\n return item.nextElementSibling as HTMLElement\n }\n\n if (isWrapper(item?.parentElement)) {\n return item?.parentElement?.nextElementSibling as HTMLElement\n }\n\n if (item?.parentElement?.getAttribute('data-droppable') === 'true') {\n return item?.parentElement?.nextElementSibling?.querySelector(\n '[data-group=\"false\"]'\n ) as HTMLElement\n }\n\n return null\n}\n\nfunction getLastItem(menu: Element | null) {\n const items = menu?.querySelectorAll<HTMLElement>('[data-value]')\n const lastItem = items?.[items.length - 1]\n\n if (lastItem && isGroup(lastItem)) {\n return getPrevItem(lastItem)\n }\n\n return lastItem\n}\n\nfunction updateHighlightedAttribute(\n item: Element | null | undefined,\n highlight: boolean\n) {\n item?.setAttribute('data-highlighted', highlight ? 'true' : 'false')\n item?.dispatchEvent(new MouseEvent(highlight ? MOUSE_ENTER : MOUSE_LEAVE))\n}\n\nexport function createSensors(\n ref: React.RefObject<HTMLDivElement>,\n circular: boolean,\n onChangeActiveDescendant: (\n id: string | undefined,\n menuRef: Element | null\n ) => void\n) {\n let highlightedItem: HTMLElement | null = null\n let dragAndDropApi: SensorAPI | null = null\n let currentDrag: SnapDragActions | null = null\n let onSelect: (selection: Selection) => any = noop\n\n function select(\n event:\n | React.MouseEvent<HTMLElement, MouseEvent>\n | React.KeyboardEvent<HTMLElement>\n ) {\n if (ref.current && highlightedItem) {\n const disabled = JSON.parse(highlightedItem?.dataset.disabled || 'false')\n if (disabled) return\n\n const item = JSON.parse(highlightedItem?.dataset.value || 'null')\n const selected = JSON.parse(highlightedItem?.dataset.selected || 'false')\n const restoreFocus = highlightedItem?.dataset.restorefocus\n ? JSON.parse(highlightedItem?.dataset.restorefocus)\n : undefined\n\n if (highlightedItem.tagName === 'A') {\n highlightedItem.click()\n }\n\n onSelect?.({\n event,\n item,\n group: false,\n action: selected ? 'unselected' : 'selected',\n ...(restoreFocus === undefined ? {} : { restoreFocus }),\n })\n }\n }\n\n function highlightItem(\n item: HTMLElement | null | undefined,\n shouldScroll: boolean = true\n ) {\n // performance improvement, highlightItem is called onMouseMove for Item\n if (item === highlightedItem) {\n return\n }\n\n if (item) {\n updateHighlightedAttribute(highlightedItem, false)\n\n // TODO add localized screenreader instructions for the item\n updateHighlightedAttribute(item, true)\n\n const id = item.getAttribute('id') ?? undefined\n onChangeActiveDescendant(id, ref.current)\n\n highlightedItem = item\n\n if (shouldScroll) {\n scrollIntoView(-1, item)\n }\n } else {\n onChangeActiveDescendant('', ref.current)\n }\n }\n\n function getPrevHighlightableItem(\n currentItem: HTMLElement\n ): HTMLElement | null | undefined {\n const prev = getPrevItem(currentItem)\n if (prev) {\n if (isItem(prev)) {\n if (isGroup(prev)) {\n return getPrevHighlightableItem(prev)\n } else {\n return prev\n }\n }\n } else if (circular) {\n return getLastItem(ref.current)\n }\n\n return prev\n }\n\n function getNextHighlightableItem(\n currentItem: HTMLElement\n ): HTMLElement | null | undefined {\n const next = getNextItem(currentItem)\n\n if (next) {\n if (isItem(next)) {\n if (isGroup(next)) {\n return getNextHighlightableItem(next)\n }\n return next\n }\n } else if (circular) {\n return getFirstItem(ref.current)\n }\n }\n\n function highlightFirstItem(shouldScroll: boolean = true) {\n highlightItem(getFirstItem(ref.current), shouldScroll)\n }\n\n function highlightLastItem(shouldScroll: boolean = true) {\n highlightItem(getLastItem(ref.current), shouldScroll)\n }\n\n function highlightPrevItem() {\n if (highlightedItem && ref.current?.contains(highlightedItem)) {\n const prev = getPrevHighlightableItem(highlightedItem)\n if (prev) {\n highlightItem(prev)\n }\n } else {\n highlightLastItem()\n }\n }\n\n function highlightNextItem() {\n if (highlightedItem && ref.current?.contains(highlightedItem)) {\n const next = getNextHighlightableItem(highlightedItem)\n if (next) {\n highlightItem(next)\n }\n } else {\n highlightFirstItem()\n }\n }\n\n return {\n handleKeyDown(event: React.KeyboardEvent<HTMLDivElement>) {\n if (ref.current) {\n if (event.key === 'ArrowUp' || event.key === 'Up') {\n event.preventDefault()\n currentDrag?.isActive() ? currentDrag.moveUp() : highlightPrevItem()\n } else if (event.key === 'ArrowDown' || event.key === 'Down') {\n event.preventDefault()\n currentDrag?.isActive() ? currentDrag.moveDown() : highlightNextItem()\n } else if (event.key === 'Enter') {\n event.preventDefault()\n if (event.ctrlKey || event.metaKey) {\n const draggableId = highlightedItem?.getAttribute(\n 'data-rbd-draggable-id'\n )\n if (draggableId) {\n const preDrag = dragAndDropApi?.tryGetLock(draggableId)\n if (preDrag) {\n currentDrag = preDrag.snapLift()\n }\n }\n } else if (currentDrag?.isActive()) {\n currentDrag.drop()\n } else {\n select(event)\n }\n } else if (event.key === 'Escape' && currentDrag?.isActive()) {\n currentDrag.cancel()\n }\n }\n },\n handleItemHover(el?: HTMLDivElement) {\n highlightItem(el, false)\n },\n useKeyboardSensor(api: SensorAPI) {\n dragAndDropApi = api\n },\n\n updateSelectCallback(callback: (selection: Selection) => any) {\n onSelect = callback\n },\n\n highlight: highlightItem,\n\n highlighted() {\n return JSON.parse(highlightedItem?.dataset.value || 'null')\n },\n\n highlightFirst: highlightFirstItem,\n highlightLast: highlightLastItem,\n rehighlightCurrent() {\n // Rehighlights an item that may have lost its styling due to the re-render of the list items\n const draggableId = highlightedItem?.getAttribute('data-rbd-draggable-id')\n if (draggableId) {\n const newItem = ref.current?.querySelector<HTMLElement>(\n `[data-rbd-draggable-id=\"${draggableId.replace(/\"/g, '\\\\\"')}\"]`\n )\n highlightItem(newItem)\n }\n },\n\n highlightSelected(shouldScroll: boolean = true) {\n const selectedItem = ref.current?.querySelector<HTMLElement>(\n '[data-selected=\"true\"]'\n )\n\n highlightItem(selectedItem, shouldScroll)\n },\n\n highlightSuggested(shouldScroll: boolean = true) {\n const suggestedItem = ref.current?.querySelector<HTMLElement>(\n '[data-suggested=\"true\"]'\n )\n\n highlightItem(suggestedItem, shouldScroll)\n },\n\n prev: highlightPrevItem,\n next: highlightNextItem,\n select,\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","names":["Clear","React","useEffect","Button","useModalDialogLike","Portal","Heading","LevelContext","Section","SectionProvider","useDeprecation","useLayoutEventListener","OverridableFocusScope","useI18nContext","useOverflowObserver","useScrollLock","Visibility","addSubcomponents","CloseWithConfirmContext","useCloseWithConfirmContext","useCloseWithConfirmState","mergeRefs","ChildRegistryProvider","useModalChildRegistryDispatch","fadeInClassName","fadeOutClassName","StyledModal","StyledModalBody","StyledModalButtons","StyledModalCancel","StyledModalContainer","StyledModalContent","StyledModalFooter","StyledModalFooterNotation","StyledModalFooterSummary","StyledModalHeader","StyledModalHeading","StyledModalScrim","StyledModalWarningIcon","useInitializeModalFocus","noop","defaultStartLevel","initialBodyLevel","ModalCloseContext","createContext","howToClose","onClose","undefined","ModalBodyScrollContext","isBodyScrolled","setIsBodyScrolled","ModalClosableHeader","forwardRef","_ref","ref","children","_ref$compact","compact","externalOnClose","qa","props","_objectWithoutProperties","_excluded","_React$useContext","useContext","_React$useContext2","I18n","modalClosableHeaderRef","useRef","_useCloseWithConfirmC","closeWithConfirm","registerChildRef","child","onClickButton","e","includes","createElement","_extends","$compact","$isBodyScrolled","t","closeButton","icon","onClick","size","variant","ModalClosableFooterButtons","_ref2","_excluded2","_React$useContext3","_useCloseWithConfirmC2","modalClosableFooterButtonsRef","ModalContainer","_ref3","_ref3$compact","placement","width","_excluded3","_React$useContext4","modalContainerRef","hasOnClose","shadowStrength","$placement","$width","ModalBody","_ref4","_ref4$compact","_ref4$noSideSpacing","noSideSpacing","_excluded4","_useOverflowObserver","isOverflowingY","overflowRef","scrollRef","modalBodyRef","_React$useContext5","event","handler","currentTarget","scrollTop","scope","Provider","value","$isOverflowingY","$noSideSpacing","tabIndex","ModalFooterSummary","_ref5","_excluded5","ModalFooterNotation","_ref6","_excluded6","intent","color","italic","Modal_","_ref7","ariaDescribedby","ariaDetails","ariaLabelledby","ariaLabel","_ref7$compact","id","_ref7$onClickOverlay","onClickOverlay","_ref7$open","open","_ref7$placement","role","_excluded7","_React$useState","useState","_React$useState2","_slicedToArray","visible","setVisible","_React$useState3","_React$useState4","fadeType","setFadeType","closeWithConfirmState","setTimeout","onTransitionEnd","handleKeyDown","key","preventDefault","stopPropagation","_useModalDialogLike","isModal","isOpen","dialogProps_","dialogProps","onClickScrim","autoFocus","contain","restoreFocus","className","onKeyDown","ModalBodyScrollObserver","_ref8","_React$useState5","_React$useState6","ConfirmModal","_ref9","headline","_excluded8","Modal","ModalState","oldThing","displayName","Body","Container","Content","FooterSummary","Footer","FooterButtons","FooterNotation","Header","Overlay","Scrim","State"],"sources":["../../src/Modal/Modal.tsx"],"sourcesContent":["import { Clear } from '@procore/core-icons/dist'\nimport React, { useEffect } from 'react'\nimport { Button } from '../Button/Button'\nimport { useModalDialogLike } from '../OverlayTrigger/a11yPresets'\nimport { Portal } from '../Portal/Portal'\nimport {\n Heading,\n LevelContext,\n Section,\n SectionProvider,\n} from '../Section/Section'\nimport type { TypographyProps } from '../Typography/Typography.types'\nimport { useDeprecation } from '../_hooks/Deprecation'\nimport { useLayoutEventListener } from '../_hooks/EventListener'\nimport { OverridableFocusScope } from '../_hooks/FocusScopeOverride'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { useOverflowObserver } from '../_hooks/OverflowObserver'\nimport { useScrollLock } from '../_hooks/ScrollLock'\nimport type { RenderProps } from '../_hooks/Visibility'\nimport { Visibility } from '../_hooks/Visibility'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport {\n CloseWithConfirmContext,\n useCloseWithConfirmContext,\n useCloseWithConfirmState,\n} from '../_utils/closeWithConfirm'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport type { DivAttributes, SpanAttributes } from '../_utils/types'\nimport {\n ChildRegistryProvider,\n useModalChildRegistryDispatch,\n} from './ChildRegistry.context'\nimport {\n fadeInClassName,\n fadeOutClassName,\n StyledModal,\n StyledModalBody,\n StyledModalButtons,\n StyledModalCancel,\n StyledModalContainer,\n StyledModalContent,\n StyledModalFooter,\n StyledModalFooterNotation,\n StyledModalFooterSummary,\n StyledModalHeader,\n StyledModalHeading,\n StyledModalScrim,\n StyledModalWarningIcon,\n} from './Modal.styles'\nimport type {\n ConfirmModalProps,\n ModalBodyProps,\n ModalCloseableHeaderProps,\n ModalCloseContextApi,\n ModalContainerProps,\n ModalProps,\n} from './Modal.types'\nimport { useInitializeModalFocus } from './useInitializeModalFocus'\n\nfunction noop() {}\nconst defaultStartLevel = 2\nconst initialBodyLevel = 3\n\nconst ModalCloseContext = React.createContext<ModalCloseContextApi>({\n howToClose: [],\n onClose: undefined,\n})\n\ninterface ModalBodyScrollContextApi {\n isBodyScrolled: boolean\n setIsBodyScrolled: React.Dispatch<React.SetStateAction<boolean>>\n}\n\nconst ModalBodyScrollContext = React.createContext<ModalBodyScrollContextApi>({\n isBodyScrolled: false,\n setIsBodyScrolled: noop,\n})\n\nconst ModalClosableHeader = React.forwardRef<\n HTMLDivElement,\n ModalCloseableHeaderProps\n>(\n (\n { children, compact = false, onClose: externalOnClose, qa, ...props },\n ref\n ) => {\n const { isBodyScrolled } = React.useContext(ModalBodyScrollContext)\n const { howToClose, onClose } = React.useContext(ModalCloseContext)\n const I18n = useI18nContext()\n const modalClosableHeaderRef = React.useRef(null)\n\n const { closeWithConfirm } = useCloseWithConfirmContext()\n const registerChildRef = useModalChildRegistryDispatch()\n\n useEffect(() => {\n registerChildRef({ child: 'header', ref: modalClosableHeaderRef })\n }, [])\n\n function onClickButton(e: React.MouseEvent<HTMLButtonElement>) {\n if (onClose && howToClose?.includes('x')) {\n closeWithConfirm(onClose)(e, 'x')\n return\n }\n closeWithConfirm(externalOnClose!)(e)\n }\n\n return (\n <StyledModalHeader\n $compact={compact}\n $isBodyScrolled={isBodyScrolled}\n {...props}\n ref={mergeRefs(ref, modalClosableHeaderRef)}\n >\n <StyledModalHeading $compact={compact}>{children}</StyledModalHeading>\n {(onClose && howToClose?.includes('x')) || externalOnClose ? (\n <StyledModalCancel>\n <Button\n aria-label={I18n.t('core.modal.a11y.close')}\n data-internal=\"close-button\"\n data-qa={qa?.closeButton}\n icon={<Clear />}\n onClick={onClickButton}\n size={compact ? 'sm' : 'md'}\n variant=\"tertiary\"\n />\n </StyledModalCancel>\n ) : null}\n </StyledModalHeader>\n )\n }\n)\n\nconst ModalClosableFooterButtons = React.forwardRef<\n HTMLDivElement,\n ModalCloseableHeaderProps\n>(({ children, ...props }, ref) => {\n const { howToClose, onClose } = React.useContext(ModalCloseContext)\n const I18n = useI18nContext()\n const { closeWithConfirm } = useCloseWithConfirmContext()\n const modalClosableFooterButtonsRef = React.useRef(null)\n\n const registerChildRef = useModalChildRegistryDispatch()\n\n useEffect(() => {\n registerChildRef({\n child: 'closeableButtons',\n ref: modalClosableFooterButtonsRef,\n })\n }, [])\n\n function onClickButton(e: React.MouseEvent<HTMLButtonElement>) {\n closeWithConfirm(onClose!)(e, 'footer-button')\n }\n\n return (\n <StyledModalButtons\n {...props}\n ref={mergeRefs(ref, modalClosableFooterButtonsRef)}\n >\n {howToClose?.includes('footer-button') && (\n <Button onClick={onClickButton} variant=\"tertiary\">\n {I18n.t('core.modal.cancel')}\n </Button>\n )}\n {children}\n </StyledModalButtons>\n )\n})\n\nconst ModalContainer = React.forwardRef<HTMLDivElement, ModalContainerProps>(\n ({ compact = false, placement, width, ...props }, ref) => {\n const { onClose } = React.useContext(ModalCloseContext)\n const modalContainerRef = React.useRef<HTMLDivElement>(null)\n useInitializeModalFocus({ modalContainerRef, hasOnClose: !!onClose })\n\n return (\n <StyledModalContainer\n {...props}\n shadowStrength={4}\n $compact={compact}\n $placement={placement}\n $width={width}\n ref={mergeRefs(ref, modalContainerRef)}\n />\n )\n }\n)\n\nconst ModalBody = React.forwardRef<HTMLDivElement, ModalBodyProps>(\n ({ children, compact = false, noSideSpacing = false, ...props }, ref) => {\n const { isOverflowingY, ref: overflowRef } = useOverflowObserver()\n const scrollRef = React.useRef(null)\n const modalBodyRef = React.useRef(null)\n const { setIsBodyScrolled } = React.useContext(ModalBodyScrollContext)\n const registerChildRef = useModalChildRegistryDispatch()\n\n useEffect(() => {\n registerChildRef({ child: 'body', ref: modalBodyRef })\n }, [])\n\n useLayoutEventListener({\n event: 'scroll',\n handler: (e: React.UIEvent<HTMLElement>) => {\n setIsBodyScrolled(e.currentTarget.scrollTop > 0)\n },\n scope: scrollRef,\n })\n\n return (\n <SectionProvider>\n <LevelContext.Provider value={initialBodyLevel}>\n <StyledModalBody\n {...props}\n $compact={compact}\n $isOverflowingY={isOverflowingY}\n $noSideSpacing={noSideSpacing}\n ref={mergeRefs(overflowRef, scrollRef, ref, modalBodyRef)}\n tabIndex={0}\n >\n {children}\n </StyledModalBody>\n </LevelContext.Provider>\n </SectionProvider>\n )\n }\n)\n\nconst ModalFooterSummary = React.forwardRef<HTMLDivElement, DivAttributes>(\n ({ children, ...props }, ref) => {\n return (\n <StyledModalFooterSummary {...props} ref={ref}>\n {children}\n </StyledModalFooterSummary>\n )\n }\n)\n\nconst ModalFooterNotation = React.forwardRef<\n HTMLSpanElement,\n SpanAttributes & TypographyProps\n>(({ children, ...props }, ref) => (\n <StyledModalFooterNotation\n aria-live=\"polite\"\n intent=\"small\"\n color=\"gray45\"\n italic\n {...props}\n ref={ref}\n >\n {children}\n </StyledModalFooterNotation>\n))\n\nconst Modal_ = React.forwardRef<HTMLDivElement, ModalProps>(\n (\n {\n ['aria-describedby']: ariaDescribedby,\n ['aria-details']: ariaDetails,\n ['aria-labelledby']: ariaLabelledby,\n ['aria-label']: ariaLabel,\n children,\n compact = false,\n howToClose,\n id,\n onClickOverlay = noop,\n onClose,\n open = false,\n placement = 'center',\n role,\n ...props\n },\n ref\n ) => {\n useScrollLock(open)\n const [visible, setVisible] = React.useState<boolean>(open)\n const [fadeType, setFadeType] = React.useState<string>('')\n const closeWithConfirmState = useCloseWithConfirmState()\n const { closeWithConfirm } = closeWithConfirmState\n\n React.useEffect(() => {\n if (open) {\n setVisible(true)\n setTimeout(() => {\n setFadeType(fadeInClassName)\n }, 0)\n } else {\n setFadeType(fadeOutClassName)\n }\n }, [open])\n\n const onTransitionEnd = () => {\n if (fadeType === fadeOutClassName) {\n setVisible(false)\n }\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (!onClose) return\n if (e.key === 'Escape') {\n e.preventDefault()\n e.stopPropagation()\n closeWithConfirm(onClose)(e, 'x')\n }\n }\n\n const { dialogProps: dialogProps_ } = useModalDialogLike({\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n id,\n isModal: false,\n isOpen: open,\n role,\n })\n\n const dialogProps = onClose && role === 'dialog' ? dialogProps_ : {}\n\n function onClickScrim(\n e: React.ComponentProps<typeof StyledModalScrim>['onClick']\n ) {\n onClickOverlay(e)\n if (onClose && howToClose?.includes('scrim')) {\n closeWithConfirm(onClose)(e, 'scrim')\n }\n }\n\n return visible ? (\n <Portal>\n <ModalCloseContext.Provider value={{ onClose, howToClose }}>\n <LevelContext.Provider value={defaultStartLevel}>\n <ChildRegistryProvider>\n <OverridableFocusScope\n // TODO breaking - always\n autoFocus={!!onClose}\n contain={!!onClose}\n restoreFocus={!!onClose}\n >\n <StyledModal\n className={fadeType}\n ref={ref}\n onTransitionEnd={onTransitionEnd}\n onKeyDown={handleKeyDown}\n {...dialogProps}\n >\n <StyledModalScrim onClick={onClickScrim} />\n\n <ModalContainer\n {...props}\n compact={compact}\n placement={placement}\n >\n <StyledModalContent $compact={compact}>\n <ModalBodyScrollObserver>\n <CloseWithConfirmContext.Provider\n value={closeWithConfirmState}\n >\n {children}\n </CloseWithConfirmContext.Provider>\n </ModalBodyScrollObserver>\n </StyledModalContent>\n </ModalContainer>\n </StyledModal>\n </OverridableFocusScope>\n </ChildRegistryProvider>\n </LevelContext.Provider>\n </ModalCloseContext.Provider>\n </Portal>\n ) : null\n }\n)\n\nfunction ModalBodyScrollObserver({ children }: { children: React.ReactNode }) {\n const [isBodyScrolled, setIsBodyScrolled] = React.useState<boolean>(false)\n\n return (\n <ModalBodyScrollContext.Provider\n value={{ isBodyScrolled, setIsBodyScrolled }}\n >\n {children}\n </ModalBodyScrollContext.Provider>\n )\n}\n\nexport const ConfirmModal = React.forwardRef<HTMLDivElement, ConfirmModalProps>(\n ({ children, headline, onClose, ...props }, ref) => {\n return (\n <Modal {...props} ref={ref}>\n <ModalClosableHeader onClose={onClose}>\n <StyledModalWarningIcon size=\"lg\" />\n {headline}\n </ModalClosableHeader>\n {children}\n </Modal>\n )\n }\n)\n\nfunction ModalState(props: RenderProps) {\n useDeprecation({ oldThing: 'Modal.State' })\n return <Visibility {...props} />\n}\n\nModal_.displayName = 'Modal'\n\nConfirmModal.displayName = 'ConfirmModal'\n\nModalBody.displayName = 'Modal.Body'\n\nModalFooterNotation.displayName = 'Modal.FooterNotation'\n\nModalFooterSummary.displayName = 'Modal.FooterSummary'\n\nconst Body = ModalBody\nconst Container = ModalContainer\nconst Content = StyledModalContent\nconst FooterSummary = ModalFooterSummary\nconst Footer = StyledModalFooter\nconst FooterButtons = ModalClosableFooterButtons\nconst FooterNotation = ModalFooterNotation\nconst Header = ModalClosableHeader\nconst Overlay = StyledModal\nconst Scrim = StyledModalScrim\nconst State = ModalState\n\n/**\n\n We use modals to present additional actions, information, or forms on pages\n where a user’s experience would benefit from remaining on the same page.\n They can include graphics, inputs, buttons, and other elements as needed to\n produce the workflow or action needed.\n\n Do not include modals on pages with complicated UI layouts.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-modal--demo)\n\n @see [Design Guidelines](https://design.procore.com/modal)\n\n */\nexport const Modal = addSubcomponents(\n {\n Body,\n Container,\n Content,\n Footer,\n FooterButtons,\n FooterNotation,\n FooterSummary,\n Header,\n Heading: Heading,\n Overlay,\n Scrim,\n State,\n Section,\n },\n Modal_\n)\n"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.js","names":["Clear","React","useEffect","Button","useModalDialogLike","Portal","Heading","LevelContext","Section","SectionProvider","useDeprecation","useLayoutEventListener","OverridableFocusScope","useI18nContext","useOverflowObserver","useScrollLock","Visibility","addSubcomponents","CloseWithConfirmContext","useCloseWithConfirmContext","useCloseWithConfirmState","mergeRefs","ChildRegistryProvider","useModalChildRegistryDispatch","fadeInClassName","fadeOutClassName","StyledModal","StyledModalBody","StyledModalButtons","StyledModalCancel","StyledModalContainer","StyledModalContent","StyledModalFooter","StyledModalFooterNotation","StyledModalFooterSummary","StyledModalHeader","StyledModalHeading","StyledModalScrim","StyledModalWarningIcon","useInitializeModalFocus","noop","defaultStartLevel","initialBodyLevel","ModalCloseContext","createContext","howToClose","onClose","undefined","ModalBodyScrollContext","isBodyScrolled","setIsBodyScrolled","ModalClosableHeader","forwardRef","_ref","ref","children","_ref$compact","compact","externalOnClose","qa","props","_objectWithoutProperties","_excluded","_React$useContext","useContext","_React$useContext2","I18n","modalClosableHeaderRef","useRef","_useCloseWithConfirmC","closeWithConfirm","registerChildRef","child","onClickButton","e","includes","createElement","_extends","$compact","$isBodyScrolled","t","closeButton","icon","onClick","size","variant","ModalClosableFooterButtons","_ref2","_excluded2","_React$useContext3","_useCloseWithConfirmC2","modalClosableFooterButtonsRef","ModalContainer","_ref3","_ref3$compact","placement","width","_excluded3","_React$useContext4","modalContainerRef","hasOnClose","shadowStrength","$placement","$width","ModalBody","_ref4","_ref4$compact","_ref4$noSideSpacing","noSideSpacing","_excluded4","_useOverflowObserver","isOverflowingY","overflowRef","scrollRef","modalBodyRef","_React$useContext5","event","handler","currentTarget","scrollTop","scope","Provider","value","$isOverflowingY","$noSideSpacing","tabIndex","ModalFooterSummary","_ref5","_excluded5","ModalFooterNotation","_ref6","_excluded6","intent","color","italic","Modal_","_ref7","ariaDescribedby","ariaDetails","ariaLabelledby","ariaLabel","_ref7$compact","id","_ref7$onClickOverlay","onClickOverlay","_ref7$open","open","_ref7$placement","role","_excluded7","_React$useState","useState","_React$useState2","_slicedToArray","visible","setVisible","_React$useState3","_React$useState4","fadeType","setFadeType","closeWithConfirmState","setTimeout","onTransitionEnd","handleKeyDown","key","preventDefault","stopPropagation","_useModalDialogLike","isModal","isOpen","dialogProps_","dialogProps","onClickScrim","autoFocus","contain","restoreFocus","className","onKeyDown","ModalBodyScrollObserver","_ref8","_React$useState5","_React$useState6","ConfirmModal","_ref9","headline","_excluded8","Modal","ModalState","oldThing","displayName","Body","Container","Content","FooterSummary","Footer","FooterButtons","FooterNotation","Header","Overlay","Scrim","State"],"sources":["../../src/Modal/Modal.tsx"],"sourcesContent":["import { Clear } from '@procore/core-icons/dist'\nimport React, { useEffect } from 'react'\nimport { Button } from '../Button/Button'\nimport { useModalDialogLike } from '../OverlayTrigger/a11yPresets'\nimport { Portal } from '../Portal/Portal'\nimport {\n Heading,\n LevelContext,\n Section,\n SectionProvider,\n} from '../Section/Section'\nimport type { TypographyProps } from '../Typography/Typography.types'\nimport { useDeprecation } from '../_hooks/Deprecation'\nimport { useLayoutEventListener } from '../_hooks/EventListener'\nimport { OverridableFocusScope } from '../_hooks/FocusScopeOverride'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { useOverflowObserver } from '../_hooks/OverflowObserver'\nimport { useScrollLock } from '../_hooks/ScrollLock'\nimport type { RenderProps } from '../_hooks/Visibility'\nimport { Visibility } from '../_hooks/Visibility'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport {\n CloseWithConfirmContext,\n useCloseWithConfirmContext,\n useCloseWithConfirmState,\n} from '../_utils/closeWithConfirm'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport type { DivAttributes, SpanAttributes } from '../_utils/types'\nimport {\n ChildRegistryProvider,\n useModalChildRegistryDispatch,\n} from './ChildRegistry.context'\nimport {\n fadeInClassName,\n fadeOutClassName,\n StyledModal,\n StyledModalBody,\n StyledModalButtons,\n StyledModalCancel,\n StyledModalContainer,\n StyledModalContent,\n StyledModalFooter,\n StyledModalFooterNotation,\n StyledModalFooterSummary,\n StyledModalHeader,\n StyledModalHeading,\n StyledModalScrim,\n StyledModalWarningIcon,\n} from './Modal.styles'\nimport type {\n ConfirmModalProps,\n ModalBodyProps,\n ModalCloseableHeaderProps,\n ModalCloseContextApi,\n ModalContainerProps,\n ModalProps,\n} from './Modal.types'\nimport { useInitializeModalFocus } from './useInitializeModalFocus'\n\nfunction noop() {}\nconst defaultStartLevel = 2\nconst initialBodyLevel = 3\n\nconst ModalCloseContext = React.createContext<ModalCloseContextApi>({\n howToClose: [],\n onClose: undefined,\n})\n\ninterface ModalBodyScrollContextApi {\n isBodyScrolled: boolean\n setIsBodyScrolled: React.Dispatch<React.SetStateAction<boolean>>\n}\n\nconst ModalBodyScrollContext = React.createContext<ModalBodyScrollContextApi>({\n isBodyScrolled: false,\n setIsBodyScrolled: noop,\n})\n\nconst ModalClosableHeader = React.forwardRef<\n HTMLDivElement,\n ModalCloseableHeaderProps\n>(\n (\n { children, compact = false, onClose: externalOnClose, qa, ...props },\n ref\n ) => {\n const { isBodyScrolled } = React.useContext(ModalBodyScrollContext)\n const { howToClose, onClose } = React.useContext(ModalCloseContext)\n const I18n = useI18nContext()\n const modalClosableHeaderRef = React.useRef(null)\n\n const { closeWithConfirm } = useCloseWithConfirmContext()\n const registerChildRef = useModalChildRegistryDispatch()\n\n useEffect(() => {\n registerChildRef({ child: 'header', ref: modalClosableHeaderRef })\n }, [])\n\n function onClickButton(e: React.MouseEvent<HTMLButtonElement>) {\n if (onClose && howToClose?.includes('x')) {\n closeWithConfirm(onClose)(e, 'x')\n return\n }\n closeWithConfirm(externalOnClose!)(e)\n }\n\n return (\n <StyledModalHeader\n $compact={compact}\n $isBodyScrolled={isBodyScrolled}\n {...props}\n ref={mergeRefs(ref, modalClosableHeaderRef)}\n >\n <StyledModalHeading $compact={compact}>{children}</StyledModalHeading>\n {(onClose && howToClose?.includes('x')) || externalOnClose ? (\n <StyledModalCancel>\n <Button\n aria-label={I18n.t('core.modal.a11y.close')}\n data-internal=\"close-button\"\n data-qa={qa?.closeButton}\n icon={<Clear />}\n onClick={onClickButton}\n size={compact ? 'sm' : 'md'}\n variant=\"tertiary\"\n />\n </StyledModalCancel>\n ) : null}\n </StyledModalHeader>\n )\n }\n)\n\nconst ModalClosableFooterButtons = React.forwardRef<\n HTMLDivElement,\n ModalCloseableHeaderProps\n>(({ children, ...props }, ref) => {\n const { howToClose, onClose } = React.useContext(ModalCloseContext)\n const I18n = useI18nContext()\n const { closeWithConfirm } = useCloseWithConfirmContext()\n const modalClosableFooterButtonsRef = React.useRef(null)\n\n const registerChildRef = useModalChildRegistryDispatch()\n\n useEffect(() => {\n registerChildRef({\n child: 'closeableButtons',\n ref: modalClosableFooterButtonsRef,\n })\n }, [])\n\n function onClickButton(e: React.MouseEvent<HTMLButtonElement>) {\n closeWithConfirm(onClose!)(e, 'footer-button')\n }\n\n return (\n <StyledModalButtons\n {...props}\n ref={mergeRefs(ref, modalClosableFooterButtonsRef)}\n >\n {howToClose?.includes('footer-button') && (\n <Button onClick={onClickButton} variant=\"tertiary\">\n {I18n.t('core.modal.cancel')}\n </Button>\n )}\n {children}\n </StyledModalButtons>\n )\n})\n\nconst ModalContainer = React.forwardRef<HTMLDivElement, ModalContainerProps>(\n ({ compact = false, placement, width, ...props }, ref) => {\n const { onClose } = React.useContext(ModalCloseContext)\n const modalContainerRef = React.useRef<HTMLDivElement>(null)\n useInitializeModalFocus({ modalContainerRef, hasOnClose: !!onClose })\n\n return (\n <StyledModalContainer\n {...props}\n shadowStrength={4}\n $compact={compact}\n $placement={placement}\n $width={width}\n ref={mergeRefs(ref, modalContainerRef)}\n />\n )\n }\n)\n\nconst ModalBody = React.forwardRef<HTMLDivElement, ModalBodyProps>(\n ({ children, compact = false, noSideSpacing = false, ...props }, ref) => {\n const { isOverflowingY, ref: overflowRef } = useOverflowObserver()\n const scrollRef = React.useRef(null)\n const modalBodyRef = React.useRef(null)\n const { setIsBodyScrolled } = React.useContext(ModalBodyScrollContext)\n const registerChildRef = useModalChildRegistryDispatch()\n\n useEffect(() => {\n registerChildRef({ child: 'body', ref: modalBodyRef })\n }, [])\n\n useLayoutEventListener({\n event: 'scroll',\n handler: (e: React.UIEvent<HTMLElement>) => {\n setIsBodyScrolled(e.currentTarget.scrollTop > 0)\n },\n scope: scrollRef,\n })\n\n return (\n <SectionProvider>\n <LevelContext.Provider value={initialBodyLevel}>\n <StyledModalBody\n {...props}\n $compact={compact}\n $isOverflowingY={isOverflowingY}\n $noSideSpacing={noSideSpacing}\n ref={mergeRefs(overflowRef, scrollRef, ref, modalBodyRef)}\n tabIndex={0}\n >\n {children}\n </StyledModalBody>\n </LevelContext.Provider>\n </SectionProvider>\n )\n }\n)\n\nconst ModalFooterSummary = React.forwardRef<HTMLDivElement, DivAttributes>(\n ({ children, ...props }, ref) => {\n return (\n <StyledModalFooterSummary {...props} ref={ref}>\n {children}\n </StyledModalFooterSummary>\n )\n }\n)\n\nconst ModalFooterNotation = React.forwardRef<\n HTMLSpanElement,\n SpanAttributes & TypographyProps\n>(({ children, ...props }, ref) => (\n <StyledModalFooterNotation\n aria-live=\"polite\"\n intent=\"small\"\n color=\"gray45\"\n italic\n {...props}\n ref={ref}\n >\n {children}\n </StyledModalFooterNotation>\n))\n\nconst Modal_ = React.forwardRef<HTMLDivElement, ModalProps>(\n (\n {\n ['aria-describedby']: ariaDescribedby,\n ['aria-details']: ariaDetails,\n ['aria-labelledby']: ariaLabelledby,\n ['aria-label']: ariaLabel,\n children,\n compact = false,\n howToClose,\n id,\n onClickOverlay = noop,\n onClose,\n open = false,\n placement = 'center',\n role,\n ...props\n },\n ref\n ) => {\n useScrollLock(open)\n const [visible, setVisible] = React.useState<boolean>(open)\n const [fadeType, setFadeType] = React.useState<string>('')\n const closeWithConfirmState = useCloseWithConfirmState()\n const { closeWithConfirm } = closeWithConfirmState\n\n React.useEffect(() => {\n if (open) {\n setVisible(true)\n setTimeout(() => {\n setFadeType(fadeInClassName)\n }, 0)\n } else {\n setFadeType(fadeOutClassName)\n }\n }, [open])\n\n const onTransitionEnd = () => {\n if (fadeType === fadeOutClassName) {\n setVisible(false)\n }\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (!onClose) return\n if (e.key === 'Escape') {\n e.preventDefault()\n e.stopPropagation()\n closeWithConfirm(onClose)(e, 'x')\n }\n }\n\n const { dialogProps: dialogProps_ } = useModalDialogLike({\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n id,\n isModal: false,\n isOpen: open,\n role,\n })\n\n const dialogProps = onClose && role === 'dialog' ? dialogProps_ : {}\n\n function onClickScrim(\n e: React.ComponentProps<typeof StyledModalScrim>['onClick']\n ) {\n onClickOverlay(e)\n if (onClose && howToClose?.includes('scrim')) {\n closeWithConfirm(onClose)(e, 'scrim')\n }\n }\n\n return visible ? (\n <Portal>\n <ModalCloseContext.Provider value={{ onClose, howToClose }}>\n <LevelContext.Provider value={defaultStartLevel}>\n <ChildRegistryProvider>\n <OverridableFocusScope\n // TODO breaking - always\n autoFocus={!!onClose}\n contain={!!onClose}\n restoreFocus={!!onClose}\n >\n <StyledModal\n className={fadeType}\n ref={ref}\n onTransitionEnd={onTransitionEnd}\n onKeyDown={handleKeyDown}\n {...dialogProps}\n >\n <StyledModalScrim onClick={onClickScrim} />\n\n <ModalContainer\n {...props}\n compact={compact}\n placement={placement}\n >\n <StyledModalContent $compact={compact}>\n <ModalBodyScrollObserver>\n <CloseWithConfirmContext.Provider\n value={closeWithConfirmState}\n >\n {children}\n </CloseWithConfirmContext.Provider>\n </ModalBodyScrollObserver>\n </StyledModalContent>\n </ModalContainer>\n </StyledModal>\n </OverridableFocusScope>\n </ChildRegistryProvider>\n </LevelContext.Provider>\n </ModalCloseContext.Provider>\n </Portal>\n ) : null\n }\n)\n\nfunction ModalBodyScrollObserver({ children }: { children: React.ReactNode }) {\n const [isBodyScrolled, setIsBodyScrolled] = React.useState<boolean>(false)\n\n return (\n <ModalBodyScrollContext.Provider\n value={{ isBodyScrolled, setIsBodyScrolled }}\n >\n {children}\n </ModalBodyScrollContext.Provider>\n )\n}\n\nexport const ConfirmModal = React.forwardRef<HTMLDivElement, ConfirmModalProps>(\n ({ children, headline, onClose, ...props }, ref) => {\n return (\n <Modal {...props} ref={ref}>\n <ModalClosableHeader onClose={onClose}>\n <StyledModalWarningIcon size=\"lg\" />\n {headline}\n </ModalClosableHeader>\n {children}\n </Modal>\n )\n }\n)\n\nfunction ModalState(props: RenderProps) {\n useDeprecation({ oldThing: 'Modal.State' })\n return <Visibility {...props} />\n}\n\nModal_.displayName = 'Modal'\n\nConfirmModal.displayName = 'ConfirmModal'\n\nModalBody.displayName = 'Modal.Body'\n\nModalFooterNotation.displayName = 'Modal.FooterNotation'\n\nModalFooterSummary.displayName = 'Modal.FooterSummary'\n\nconst Body = ModalBody\nconst Container = ModalContainer\nconst Content = StyledModalContent\nconst FooterSummary = ModalFooterSummary\nconst Footer = StyledModalFooter\nconst FooterButtons = ModalClosableFooterButtons\nconst FooterNotation = ModalFooterNotation\nconst Header = ModalClosableHeader\nconst Overlay = StyledModal\nconst Scrim = StyledModalScrim\nconst State = ModalState\n\n/**\n\n We use modals to present additional actions, information, or forms on pages\n where a user’s experience would benefit from remaining on the same page.\n They can include graphics, inputs, buttons, and other elements as needed to\n produce the workflow or action needed.\n\n Do not include modals on pages with complicated UI layouts.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-modal--demo)\n\n @see [Design Guidelines](https://design.procore.com/modal)\n\n */\nexport const Modal = addSubcomponents(\n {\n Body,\n Container,\n Content,\n Footer,\n FooterButtons,\n FooterNotation,\n FooterSummary,\n Header,\n Heading: Heading,\n Overlay,\n Scrim,\n State,\n Section,\n },\n Modal_\n)\n"],"mappings":"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"}