@procore/core-react 12.50.1 → 12.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +14 -0
  3. package/dist/AnchorNavigation/AnchorNavigation.styles.js +4 -4
  4. package/dist/Avatar/Avatar.styles.js +5 -5
  5. package/dist/AvatarStack/AvatarStack.styles.js +8 -8
  6. package/dist/Badge/Badge.styles.js +2 -2
  7. package/dist/BadgePill/BadgePill.styles.js +4 -4
  8. package/dist/Banner/Banner.styles.js +10 -10
  9. package/dist/Box/Box.styles.js +1 -1
  10. package/dist/Breadcrumbs/Breadcrumbs.d.ts +15 -2
  11. package/dist/Breadcrumbs/Breadcrumbs.js +27 -4
  12. package/dist/Breadcrumbs/Breadcrumbs.js.map +1 -1
  13. package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
  14. package/dist/Breadcrumbs/Breadcrumbs.types.d.ts +9 -0
  15. package/dist/Breadcrumbs/Breadcrumbs.types.js.map +1 -1
  16. package/dist/Button/Button.styles.js +11 -12
  17. package/dist/Button/Button.styles.js.map +1 -1
  18. package/dist/Calendar/Calendar.styles.js +9 -9
  19. package/dist/Card/Card.styles.js +1 -1
  20. package/dist/Checkbox/Checkbox.styles.js +6 -6
  21. package/dist/ContactItem/ContactItem.styles.js +5 -5
  22. package/dist/Content/Content.styles.js +2 -2
  23. package/dist/DateInput/DateInput.styles.js +6 -6
  24. package/dist/DetailPage/DetailPage.styles.js +7 -7
  25. package/dist/Dropdown/Dropdown.styles.js +3 -3
  26. package/dist/DropdownFlyout/DropdownFlyout.helpers.d.ts +3 -0
  27. package/dist/DropdownFlyout/DropdownFlyout.helpers.js +30 -2
  28. package/dist/DropdownFlyout/DropdownFlyout.helpers.js.map +1 -1
  29. package/dist/DropdownFlyout/DropdownFlyout.js +7 -1
  30. package/dist/DropdownFlyout/DropdownFlyout.js.map +1 -1
  31. package/dist/DropdownFlyout/DropdownFlyout.styles.js +5 -5
  32. package/dist/DropdownFlyout/DropdownFlyout.styles.js.map +1 -1
  33. package/dist/DropdownFlyout/DropdownFlyout.types.d.ts +4 -0
  34. package/dist/DropdownFlyout/DropdownFlyout.types.js.map +1 -1
  35. package/dist/Dropzone/Dropzone.js +1 -1
  36. package/dist/Dropzone/Dropzone.styles.js +9 -9
  37. package/dist/EmptyState/EmptyState.styles.js +6 -6
  38. package/dist/Field/Field.styles.js +3 -3
  39. package/dist/FileList/FileList.styles.js +3 -3
  40. package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
  41. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
  42. package/dist/FileSelect/FileSelect.styles.js +2 -2
  43. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
  44. package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
  45. package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
  46. package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
  47. package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
  48. package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
  49. package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
  50. package/dist/FileToken/FileToken.styles.js +6 -6
  51. package/dist/FilterToken/FilterToken.styles.js +5 -5
  52. package/dist/FlexList/FlexList.styles.js +1 -1
  53. package/dist/Form/Form.styles.js +13 -13
  54. package/dist/Form/StyledFormikForm.styles.js +2 -2
  55. package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
  56. package/dist/Grid/Grid.styles.js +2 -2
  57. package/dist/GroupSelect/GroupSelect.styles.js +1 -1
  58. package/dist/Input/Input.styles.js +1 -1
  59. package/dist/Link/Link.styles.js +1 -1
  60. package/dist/ListPage/ListPage.styles.js +8 -8
  61. package/dist/Loader/Loader.styles.js +2 -2
  62. package/dist/Menu/Menu.js +7 -0
  63. package/dist/Menu/Menu.js.map +1 -1
  64. package/dist/Menu/Menu.types.d.ts +1 -0
  65. package/dist/Menu/Menu.types.js.map +1 -1
  66. package/dist/MenuImperative/MenuImperative.styles.d.ts +1 -0
  67. package/dist/MenuImperative/MenuImperative.styles.js +25 -22
  68. package/dist/MenuImperative/MenuImperative.styles.js.map +1 -1
  69. package/dist/MenuImperative/sensors.js +20 -4
  70. package/dist/MenuImperative/sensors.js.map +1 -1
  71. package/dist/Modal/Modal.styles.js +13 -13
  72. package/dist/MultiSelect/MultiSelect.styles.js +8 -8
  73. package/dist/NextMenu/NextMenu.styles.js +3 -3
  74. package/dist/NextTile/NextTile.styles.js +5 -5
  75. package/dist/Notation/Notation.js +1 -1
  76. package/dist/NumberInput/NumberInput.styles.js +7 -7
  77. package/dist/Overlay/OverlayArrow.styles.js +1 -1
  78. package/dist/PageLayout/PageLayout.styles.js +16 -16
  79. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
  80. package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
  81. package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
  82. package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
  83. package/dist/Pagination/Pagination.styles.js +5 -5
  84. package/dist/Panel/Panel.styles.js +11 -11
  85. package/dist/Pill/Pill.styles.js +3 -3
  86. package/dist/PillSelect/PillSelect.styles.js +4 -4
  87. package/dist/Popover/Popover.styles.js +2 -2
  88. package/dist/Portal/Portal.styles.js +1 -1
  89. package/dist/ProgressBar/ProgressBar.styles.js +2 -2
  90. package/dist/RadioButton/RadioButton.styles.js +3 -3
  91. package/dist/Required/Required.styles.js +3 -3
  92. package/dist/Search/Search.styles.js +5 -5
  93. package/dist/Section/Section.styles.js +7 -7
  94. package/dist/SegmentedController/SegmentedController.styles.js +4 -4
  95. package/dist/Select/Select.styles.js +8 -8
  96. package/dist/Semantic/Semantic.styles.js +9 -9
  97. package/dist/Slider/Slider.styles.js +5 -5
  98. package/dist/Spinner/Spinner.styles.js +7 -7
  99. package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
  100. package/dist/SuperSelect/SuperSelect.components.js +2 -0
  101. package/dist/SuperSelect/SuperSelect.components.js.map +1 -1
  102. package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
  103. package/dist/SuperSelect/SuperSelect.styles.d.ts +1 -0
  104. package/dist/SuperSelect/SuperSelect.styles.js +79 -76
  105. package/dist/SuperSelect/SuperSelect.styles.js.map +1 -1
  106. package/dist/SuperSelect/SuperSelect.types.d.ts +1 -0
  107. package/dist/SuperSelect/SuperSelect.types.js.map +1 -1
  108. package/dist/SuperSelect/useSuperSelect.js +1 -0
  109. package/dist/SuperSelect/useSuperSelect.js.map +1 -1
  110. package/dist/Switch/Switch.styles.js +4 -4
  111. package/dist/Table/Table.styles.js +29 -29
  112. package/dist/TableShelf/TableShelf.styles.js +5 -5
  113. package/dist/Tabs/Tabs.styles.js +16 -16
  114. package/dist/Tearsheet/Tearsheet.styles.js +5 -5
  115. package/dist/TextArea/TextArea.styles.js +1 -1
  116. package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
  117. package/dist/Thumbnail/Thumbnail.styles.js +21 -21
  118. package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
  119. package/dist/TieredSelect/TieredSelect.styles.js +9 -9
  120. package/dist/Tile/Tile.styles.js +8 -8
  121. package/dist/Title/Title.styles.js +7 -7
  122. package/dist/Toast/Toast.styles.js +3 -3
  123. package/dist/ToggleButton/ToggleButton.styles.js +1 -1
  124. package/dist/Token/Token.styles.js +5 -5
  125. package/dist/ToolHeader/ToolHeader.styles.js +6 -6
  126. package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
  127. package/dist/Tooltip/Tooltip.styles.js +3 -3
  128. package/dist/Tree/Tree.js +1 -1
  129. package/dist/Tree/Tree.styles.js +10 -10
  130. package/dist/Typeahead/Typeahead.styles.js +4 -4
  131. package/dist/Typography/Typography.styles.js +1 -1
  132. package/dist/Typography/Typography.table.story.js +2 -2
  133. package/dist/_hooks/I18n.d.ts +45 -9
  134. package/dist/_locales/de-DE.json +1 -1
  135. package/dist/_locales/en-AU.json +1 -1
  136. package/dist/_locales/en-CA.json +1 -1
  137. package/dist/_locales/en-GB.json +1 -1
  138. package/dist/_locales/en.json +1 -1
  139. package/dist/_locales/es-ES.json +1 -1
  140. package/dist/_locales/fr-CA.json +1 -1
  141. package/dist/_locales/fr-FR.json +1 -1
  142. package/dist/_locales/is-IS.json +1 -1
  143. package/dist/_locales/ja-JP.json +2 -2
  144. package/dist/_locales/nb-NO.json +1 -1
  145. package/dist/_locales/pl-PL.json +1 -1
  146. package/dist/_locales/pt-PT.json +1 -1
  147. package/dist/_locales/th-TH.json +1 -1
  148. package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
  149. package/dist/_storyHelpers_/components/StoryGrid.js +3 -3
  150. package/dist/_storyHelpers_/primaryButtonThemeCssVars.d.ts +8 -0
  151. package/dist/_storyHelpers_/primaryButtonThemeCssVars.js +9 -0
  152. package/dist/_storyHelpers_/primaryButtonThemeCssVars.js.map +1 -0
  153. package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +4 -4
  154. package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
  155. package/dist/_typedoc/AvatarStack/AvatarStack.types.json +25 -25
  156. package/dist/_typedoc/Badge/Badge.types.json +6 -6
  157. package/dist/_typedoc/Banner/Banner.types.json +15 -15
  158. package/dist/_typedoc/Box/Box.types.json +68 -68
  159. package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +32 -10
  160. package/dist/_typedoc/Button/Button.types.json +14 -14
  161. package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
  162. package/dist/_typedoc/Card/Card.types.json +6 -6
  163. package/dist/_typedoc/Checkbox/Checkbox.types.json +8 -8
  164. package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
  165. package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
  166. package/dist/_typedoc/DateSelect/DateSelect.types.json +14 -14
  167. package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
  168. package/dist/_typedoc/Dropdown/Dropdown.types.json +38 -38
  169. package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +41 -31
  170. package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
  171. package/dist/_typedoc/EmptyState/EmptyState.types.json +18 -18
  172. package/dist/_typedoc/FileList/FileList.types.json +9 -9
  173. package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
  174. package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
  175. package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
  176. package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
  177. package/dist/_typedoc/Flex/Flex.types.json +27 -27
  178. package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
  179. package/dist/_typedoc/Form/Form.types.json +770 -770
  180. package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
  181. package/dist/_typedoc/Grid/Grid.types.json +8 -8
  182. package/dist/_typedoc/GroupSelect/GroupSelect.types.json +54 -54
  183. package/dist/_typedoc/Input/Input.types.json +2 -2
  184. package/dist/_typedoc/Link/Link.types.json +1 -1
  185. package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
  186. package/dist/_typedoc/Menu/Menu.types.json +62 -62
  187. package/dist/_typedoc/MenuImperative/MenuImperative.types.json +84 -84
  188. package/dist/_typedoc/Modal/Modal.types.json +48 -48
  189. package/dist/_typedoc/MultiSelect/MultiSelect.types.json +33 -33
  190. package/dist/_typedoc/NextTile/NextTile.types.json +33 -33
  191. package/dist/_typedoc/Notation/Notation.types.json +4 -4
  192. package/dist/_typedoc/NumberInput/NumberInput.types.json +52 -52
  193. package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +33 -33
  194. package/dist/_typedoc/PageLayout/PageLayout.types.json +39 -39
  195. package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
  196. package/dist/_typedoc/Panel/Panel.types.json +28 -28
  197. package/dist/_typedoc/Pill/Pill.types.json +2 -2
  198. package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
  199. package/dist/_typedoc/Popover/Popover.types.json +15 -15
  200. package/dist/_typedoc/ProgressBar/ProgressBar.types.json +7 -7
  201. package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
  202. package/dist/_typedoc/Required/Required.types.json +5 -5
  203. package/dist/_typedoc/Search/Search.types.json +18 -18
  204. package/dist/_typedoc/Section/Section.types.json +15 -15
  205. package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
  206. package/dist/_typedoc/Select/Select.types.json +67 -67
  207. package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
  208. package/dist/_typedoc/Slider/Slider.types.json +6 -6
  209. package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
  210. package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +14 -14
  211. package/dist/_typedoc/Table/Table.types.json +105 -105
  212. package/dist/_typedoc/Tabs/Tabs.types.json +23 -23
  213. package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
  214. package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
  215. package/dist/_typedoc/TextEditor/TextEditor.types.json +11 -11
  216. package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +4 -4
  217. package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
  218. package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +43 -43
  219. package/dist/_typedoc/TieredSelect/TieredSelect.types.json +29 -29
  220. package/dist/_typedoc/Tile/Tile.types.json +8 -8
  221. package/dist/_typedoc/Title/Title.types.json +1 -1
  222. package/dist/_typedoc/Toast/Toast.types.json +4 -4
  223. package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
  224. package/dist/_typedoc/Token/Token.types.json +7 -7
  225. package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
  226. package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +8 -8
  227. package/dist/_typedoc/Tooltip/Tooltip.types.json +15 -15
  228. package/dist/_typedoc/Tree/Tree.types.json +88 -88
  229. package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
  230. package/dist/_typedoc/Typography/Typography.types.json +9 -9
  231. package/dist/_typedoc/_utils/types.json +3 -3
  232. package/dist/_typedoc/a11y-tips.json +1 -1
  233. package/dist/_utils/shadowDOM.d.ts +3 -0
  234. package/dist/_utils/shadowDOM.js +20 -0
  235. package/dist/_utils/shadowDOM.js.map +1 -0
  236. package/dist/index.d.ts +1 -0
  237. package/dist/index.js +1 -0
  238. package/dist/index.js.map +1 -1
  239. package/package.json +3 -2
@@ -8,19 +8,19 @@ export var pulseAnimationDuration = 600;
8
8
  var focusPulse = /*#__PURE__*/keyframes(["0%{box-shadow:0 0 0 0 ", ",0 0 0 0 ", ",0 0 0 0 ", ";}25%{box-shadow:0 0 0 0 ", ",0 0 0 0 ", ",0 0 0 0 ", ";}50%{box-shadow:0 0 0 1px ", ",0 0 0 3px ", ",0 0 0 2px ", ";}100%{box-shadow:0 0 0 1.5px ", ",0 0 0 3px ", ",0 0 0 6px ", ";}"], colors.blue60, colors.blue90, colors.blue94, colors.blue60, colors.blue90, colors.blue94, colors.blue60, colors.blue90, colors.blue94, colors.blue60, colors.blue90, colors.blue94);
9
9
  export var StyledFilenameShortcut = /*#__PURE__*/styled.div.withConfig({
10
10
  displayName: "StyledFilenameShortcut",
11
- componentId: "core-12_50_1__sc-13jx4bx-0"
11
+ componentId: "core-12_51_0__sc-13jx4bx-0"
12
12
  })(["display:flex;"]);
13
13
  export var StyledFilename = /*#__PURE__*/styled.span.withConfig({
14
14
  displayName: "StyledFilename",
15
- componentId: "core-12_50_1__sc-13jx4bx-1"
15
+ componentId: "core-12_51_0__sc-13jx4bx-1"
16
16
  })(["flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;"]);
17
17
  export var StyledExtension = /*#__PURE__*/styled.span.withConfig({
18
18
  displayName: "StyledExtension",
19
- componentId: "core-12_50_1__sc-13jx4bx-2"
19
+ componentId: "core-12_51_0__sc-13jx4bx-2"
20
20
  })(["flex-shrink:0;"]);
21
21
  export var StyledFileToken = /*#__PURE__*/styled.div.withConfig({
22
22
  displayName: "StyledFileToken",
23
- componentId: "core-12_50_1__sc-13jx4bx-3"
23
+ componentId: "core-12_51_0__sc-13jx4bx-3"
24
24
  })(["background-color:", ";border-radius:200px;max-width:100%;outline:none;overflow:hidden;position:relative;&:focus,&.focus{box-shadow:0 0 0 2px ", ";outline:none;", "{border-color:transparent;", "}}", "{background:none;color:", ";display:flex;user-select:none;", "{color:", ";}}", "{overflow:hidden;", "{border-radius:200px 0 0 200px;color:", ";padding-right:0;transition:color 0s linear,background-color 0s linear;user-select:none;", "{flex:0 0 auto;}}}", ""], colors.gray96, colors.blue40, StyledToken, function (_ref) {
25
25
  var $progressComplete = _ref.$progressComplete;
26
26
  return $progressComplete && css(["background-color:", ";"], colors.blue45);
@@ -37,10 +37,10 @@ export var StyledFileToken = /*#__PURE__*/styled.div.withConfig({
37
37
  });
38
38
  export var StyledErrorMessage = /*#__PURE__*/styled.span.withConfig({
39
39
  displayName: "StyledErrorMessage",
40
- componentId: "core-12_50_1__sc-13jx4bx-4"
40
+ componentId: "core-12_51_0__sc-13jx4bx-4"
41
41
  })(["display:block;color:", ";margin-top:", "px;word-break:break-word;", ""], colors.red50, spacing.xs, getTypographyIntent('small'));
42
42
  export var StyledFileTokenErrorContainer = /*#__PURE__*/styled.div.withConfig({
43
43
  displayName: "StyledFileTokenErrorContainer",
44
- componentId: "core-12_50_1__sc-13jx4bx-5"
44
+ componentId: "core-12_51_0__sc-13jx4bx-5"
45
45
  })(["max-width:100%;outline:none;&:focus,&.focus{> ", "{box-shadow:0 0 0 2px ", ";outline:none;}}"], StyledFileToken, colors.blue40);
46
46
  //# sourceMappingURL=FileToken.styles.js.map
@@ -6,11 +6,11 @@ import { getEllipsis, getFocus } from '../_styles/mixins';
6
6
  import { spacing } from '../_styles/spacing';
7
7
  export var StyledLabel = /*#__PURE__*/styled.span.withConfig({
8
8
  displayName: "StyledLabel",
9
- componentId: "core-12_50_1__sc-1l1h29r-0"
9
+ componentId: "core-12_51_0__sc-1l1h29r-0"
10
10
  })(["", " ", " ", " flex:0 1 auto;"], getTypographyIntent('body'), getEllipsis, semiboldRules);
11
11
  export var StyledFilterToken = /*#__PURE__*/styled.div.withConfig({
12
12
  displayName: "StyledFilterToken",
13
- componentId: "core-12_50_1__sc-1l1h29r-1"
13
+ componentId: "core-12_51_0__sc-1l1h29r-1"
14
14
  })(["align-items:center;background-color:", ";border-radius:4px;border:1px solid transparent;color:", ";cursor:default;display:inline-flex;height:36px;justify-content:space-between;line-height:1;max-width:360px;min-width:48px;padding:", "px ", "px;&:hover,&.hover{background-color:", ";}", ""], colors.blue96, colors.blue45, spacing.sm, spacing.md, colors.blue90, function (_ref) {
15
15
  var _ref$$focused = _ref.$focused,
16
16
  $focused = _ref$$focused === void 0 ? false : _ref$$focused;
@@ -18,17 +18,17 @@ export var StyledFilterToken = /*#__PURE__*/styled.div.withConfig({
18
18
  });
19
19
  export var StyledFilterRemoveButton = /*#__PURE__*/styled.button.withConfig({
20
20
  displayName: "StyledFilterRemoveButton",
21
- componentId: "core-12_50_1__sc-1l1h29r-2"
21
+ componentId: "core-12_51_0__sc-1l1h29r-2"
22
22
  })(["", " ", ";background:transparent;color:", ";&:active,&:focus,&:hover{background:", ";color:", ";}&:disabled{pointer-events:none;user-select:none;}&:disabled,&[aria-disabled='true']{background:transparent;color:", ";}height:24px;margin:0 0 0 6px;padding:0 ", "px;[data-icon-prop='true']{pointer-events:none;height:16px;width:16px;}"], function (_ref2) {
23
23
  var $disabled = _ref2.$disabled;
24
24
  return getButtonStyles(false, $disabled, false, 'sm', 'tertiary');
25
25
  }, getTypographyIntent('small'), colors.blue45, colors.white, colors.blue45, colors.blue45, spacing.xs);
26
26
  export var StyledContent = /*#__PURE__*/styled.span.withConfig({
27
27
  displayName: "StyledContent",
28
- componentId: "core-12_50_1__sc-1l1h29r-3"
28
+ componentId: "core-12_51_0__sc-1l1h29r-3"
29
29
  })(["align-items:center;display:flex;overflow:hidden;"]);
30
30
  export var StyledContentLabel = /*#__PURE__*/styled.span.withConfig({
31
31
  displayName: "StyledContentLabel",
32
- componentId: "core-12_50_1__sc-1l1h29r-4"
32
+ componentId: "core-12_51_0__sc-1l1h29r-4"
33
33
  })(["overflow:hidden;padding:0 6px;text-overflow:ellipsis;white-space:nowrap;& + span{padding-left:0;}"]);
34
34
  //# sourceMappingURL=FilterToken.styles.js.map
@@ -3,7 +3,7 @@ import { StyledBox } from '../Box/Box.styles';
3
3
  import { Flex } from '../Flex/Flex';
4
4
  export var StyledFlex = /*#__PURE__*/styled(Flex).withConfig({
5
5
  displayName: "StyledFlex",
6
- componentId: "core-12_50_1__sc-1quvv61-0"
6
+ componentId: "core-12_51_0__sc-1quvv61-0"
7
7
  })(["> ", "{", "}"], StyledBox, function (_ref) {
8
8
  var $direction = _ref.$direction;
9
9
  if ($direction !== null && $direction !== void 0 && $direction.includes('reverse')) {
@@ -23,7 +23,7 @@ function applyStylesOnlyToIE11(styles) {
23
23
  }
24
24
  export var StyledFormFieldMain = /*#__PURE__*/styled.div.withConfig({
25
25
  displayName: "StyledFormFieldMain",
26
- componentId: "core-12_50_1__sc-ncj3pf-0"
26
+ componentId: "core-12_51_0__sc-ncj3pf-0"
27
27
  })(["-ms-grid-row:2;grid-row:2;", " ", " ", ""], function (_ref) {
28
28
  var $colStart = _ref.$colStart,
29
29
  $colEnd = _ref.$colEnd,
@@ -35,15 +35,15 @@ export var StyledFormFieldMain = /*#__PURE__*/styled.div.withConfig({
35
35
  }, applyStylesOnlyToIE11("\n padding-left: ".concat(columnGutter, ";\n\n &:nth-child(2) {\n padding-left: 0;\n }\n ")));
36
36
  export var StyledLabel = /*#__PURE__*/styled(StyledLabelBase).withConfig({
37
37
  displayName: "StyledLabel",
38
- componentId: "core-12_50_1__sc-ncj3pf-1"
38
+ componentId: "core-12_51_0__sc-ncj3pf-1"
39
39
  })(["word-wrap:break-word;word-break:break-word;"]);
40
40
  export var StyledDescription = /*#__PURE__*/styled.div.withConfig({
41
41
  displayName: "StyledDescription",
42
- componentId: "core-12_50_1__sc-ncj3pf-2"
42
+ componentId: "core-12_51_0__sc-ncj3pf-2"
43
43
  })(["", " color:", ";word-wrap:break-word;word-break:break-word;"], getTypographyIntent('body'), colors.gray45);
44
44
  export var StyledCheckboxInlineDescription = /*#__PURE__*/styled(StyledDescription).withConfig({
45
45
  displayName: "StyledCheckboxInlineDescription",
46
- componentId: "core-12_50_1__sc-ncj3pf-3"
46
+ componentId: "core-12_51_0__sc-ncj3pf-3"
47
47
  })(["margin-top:", "px;", ""], spacing.xs, function (_ref3) {
48
48
  var $read = _ref3.$read;
49
49
  if (!$read) {
@@ -52,7 +52,7 @@ export var StyledCheckboxInlineDescription = /*#__PURE__*/styled(StyledDescripti
52
52
  });
53
53
  export var StyledFormFieldHeader = /*#__PURE__*/styled(StyledFieldHeader).withConfig({
54
54
  displayName: "StyledFormFieldHeader",
55
- componentId: "core-12_50_1__sc-ncj3pf-4"
55
+ componentId: "core-12_51_0__sc-ncj3pf-4"
56
56
  })(["-ms-grid-row:1;grid-row:1;align-self:end;margin-bottom:", "px;", " ", " * + ", "{margin-top:", "px;}"], spacing.xs, function (_ref4) {
57
57
  var $colStart = _ref4.$colStart,
58
58
  $colEnd = _ref4.$colEnd,
@@ -61,20 +61,20 @@ export var StyledFormFieldHeader = /*#__PURE__*/styled(StyledFieldHeader).withCo
61
61
  }, applyStylesOnlyToIE11("\n padding-left: ".concat(columnGutter, ";\n\n &:first-child {\n padding-left: 0;\n }\n\n ").concat(StyledFormFieldMain, " {\n padding-left: ").concat(columnGutter, ";\n\n &:nth-child(2) {\n padding-left: 0;\n }\n }\n ")), StyledDescription, spacing.xs);
62
62
  export var StyledFormFieldRequiredMark = /*#__PURE__*/styled(Required).withConfig({
63
63
  displayName: "StyledFormFieldRequiredMark",
64
- componentId: "core-12_50_1__sc-ncj3pf-5"
64
+ componentId: "core-12_51_0__sc-ncj3pf-5"
65
65
  })(["padding-left:", "px;vertical-align:top;"], spacing.xs);
66
66
  export var StyledFormFieldErrorIcon = /*#__PURE__*/styled(Error).withConfig({
67
67
  displayName: "StyledFormFieldErrorIcon",
68
- componentId: "core-12_50_1__sc-ncj3pf-6"
68
+ componentId: "core-12_51_0__sc-ncj3pf-6"
69
69
  })(["vertical-align:sub;"]);
70
70
  export var StyledFormFieldBanner = /*#__PURE__*/styled.div.withConfig({
71
71
  displayName: "StyledFormFieldBanner",
72
- componentId: "core-12_50_1__sc-ncj3pf-7"
72
+ componentId: "core-12_51_0__sc-ncj3pf-7"
73
73
  })(["display:flex;align-items:flex-start;min-height:22px;margin-top:", "px;margin-bottom:2px;word-break:break-word;word-wrap:break-word;color:", ";", ""], spacing.xs, colors.red50, getTypographyIntent('body'));
74
74
  /** @deprecated The traditional field layout is deprecated */
75
75
  export var StyledTraditionalFormColumn = /*#__PURE__*/styled.div.withConfig({
76
76
  displayName: "StyledTraditionalFormColumn",
77
- componentId: "core-12_50_1__sc-ncj3pf-8"
77
+ componentId: "core-12_51_0__sc-ncj3pf-8"
78
78
  })(["padding:", ";align-self:center;height:100%;&:nth-child(1){-ms-grid-column:1;}&:nth-child(2){-ms-grid-column:2;}&:nth-child(3){-ms-grid-column:3;}&:nth-child(4){-ms-grid-column:4;}", " ", ""], traditionalPadding, function (_ref5) {
79
79
  var _ref5$$fullWidth = _ref5.$fullWidth,
80
80
  $fullWidth = _ref5$$fullWidth === void 0 ? false : _ref5$$fullWidth;
@@ -86,15 +86,15 @@ export var StyledTraditionalFormColumn = /*#__PURE__*/styled.div.withConfig({
86
86
  });
87
87
  export var StyledFormOutputTextArea = /*#__PURE__*/styled.span.withConfig({
88
88
  displayName: "StyledFormOutputTextArea",
89
- componentId: "core-12_50_1__sc-ncj3pf-9"
89
+ componentId: "core-12_51_0__sc-ncj3pf-9"
90
90
  })(["white-space:pre-wrap;"]);
91
91
  export var StyledFormOutputFiledset = /*#__PURE__*/styled.fieldset.withConfig({
92
92
  displayName: "StyledFormOutputFiledset",
93
- componentId: "core-12_50_1__sc-ncj3pf-10"
93
+ componentId: "core-12_51_0__sc-ncj3pf-10"
94
94
  })(["border:none;padding:0;margin-top:", "px;"], spacing.xs);
95
95
  export var StyledFormRow = /*#__PURE__*/styled.div.withConfig({
96
96
  displayName: "StyledFormRow",
97
- componentId: "core-12_50_1__sc-ncj3pf-11"
97
+ componentId: "core-12_51_0__sc-ncj3pf-11"
98
98
  })(["", ""], function (_ref7) {
99
99
  var _ref7$$traditional = _ref7.$traditional,
100
100
  $traditional = _ref7$$traditional === void 0 ? false : _ref7$$traditional,
@@ -105,6 +105,6 @@ export var StyledFormRow = /*#__PURE__*/styled.div.withConfig({
105
105
  export var formWrapper = /*#__PURE__*/css(["display:inherit;flex-direction:inherit;height:inherit;max-height:inherit;"]);
106
106
  export var StyledForm = /*#__PURE__*/styled.div.withConfig({
107
107
  displayName: "StyledForm",
108
- componentId: "core-12_50_1__sc-ncj3pf-12"
108
+ componentId: "core-12_51_0__sc-ncj3pf-12"
109
109
  })(["", ""], formWrapper);
110
110
  //# sourceMappingURL=Form.styles.js.map
@@ -5,13 +5,13 @@ import { spacing } from '../_styles/spacing';
5
5
  import { formWrapper } from './Form.styles';
6
6
  export var StyledFormikForm = /*#__PURE__*/styled(FormikForm).withConfig({
7
7
  displayName: "StyledFormikForm",
8
- componentId: "core-12_50_1__sc-1ks7m0l-0"
8
+ componentId: "core-12_51_0__sc-1ks7m0l-0"
9
9
  })(["", ""], formWrapper);
10
10
 
11
11
  /** @deprecated The traditional field layout is deprecated */
12
12
  export var StyledTraditionalFormLabel = /*#__PURE__*/styled(Typography).withConfig({
13
13
  displayName: "StyledTraditionalFormLabel",
14
- componentId: "core-12_50_1__sc-1ks7m0l-1"
14
+ componentId: "core-12_51_0__sc-1ks7m0l-1"
15
15
  })(["display:inline-block;word-break:break-word;word-wrap:break-word;", ""], function (_ref) {
16
16
  var $view = _ref.$view;
17
17
  return ['create', 'update'].includes($view) && css(["padding-top:", "px;"], spacing.sm);
@@ -3,7 +3,7 @@ import { spacing } from '../_styles/spacing';
3
3
  var shimmerAnimation = /*#__PURE__*/keyframes(["0%{background-position:-1000px 500px;}100%{background-position:1000px 500px;}"]);
4
4
  export var PlaceholderItem = /*#__PURE__*/styled.div.withConfig({
5
5
  displayName: "PlaceholderItem",
6
- componentId: "core-12_50_1__sc-1nja302-0"
6
+ componentId: "core-12_51_0__sc-1nja302-0"
7
7
  })(["width:100%;min-height:24px;padding:10px 0;animation:", " 3s ease-out infinite;background:radial-gradient( ellipse at center,", " 0%,", " 50% );background-size:2000px 2000px;border-radius:", "px;@media (prefers-reduced-motion:reduce){animation:none;}"], shimmerAnimation, function (props) {
8
8
  return props.$startGradientColor;
9
9
  }, function (props) {
@@ -11,7 +11,7 @@ export var PlaceholderItem = /*#__PURE__*/styled.div.withConfig({
11
11
  }, spacing.sm);
12
12
  export var RoundPlaceholderItem = /*#__PURE__*/styled(PlaceholderItem).withConfig({
13
13
  displayName: "RoundPlaceholderItem",
14
- componentId: "core-12_50_1__sc-1nja302-1"
14
+ componentId: "core-12_51_0__sc-1nja302-1"
15
15
  })(["width:", ";height:", ";border-radius:50%;"], function (props) {
16
16
  return props.$small ? '24px' : '40px';
17
17
  }, function (props) {
@@ -75,7 +75,7 @@ var getRowGutterVertical = function getRowGutterVertical(gutterY, breakpoint) {
75
75
  };
76
76
  export var StyledGridRow = /*#__PURE__*/styled.div.withConfig({
77
77
  displayName: "StyledGridRow",
78
- componentId: "core-12_50_1__sc-8pinsp-0"
78
+ componentId: "core-12_51_0__sc-8pinsp-0"
79
79
  })(["", " display:flex;flex-wrap:wrap;"], function (_ref) {
80
80
  var $gutterX = _ref.$gutterX,
81
81
  $gutterY = _ref.$gutterY;
@@ -87,7 +87,7 @@ export var StyledGridRow = /*#__PURE__*/styled.div.withConfig({
87
87
  });
88
88
  export var StyledGridCol = /*#__PURE__*/styled.div.withConfig({
89
89
  displayName: "StyledGridCol",
90
- componentId: "core-12_50_1__sc-8pinsp-1"
90
+ componentId: "core-12_51_0__sc-8pinsp-1"
91
91
  })(["flex-shrink:0;width:100%;max-width:100%;", ""], function (_ref2) {
92
92
  var $span = _ref2.$span,
93
93
  $offset = _ref2.$offset,
@@ -3,7 +3,7 @@ import { MultiSelect } from '../MultiSelect/MultiSelect';
3
3
  import { colors } from '../_styles/colors';
4
4
  export var StyledGroupSelectOption = /*#__PURE__*/styled(MultiSelect.Option).withConfig({
5
5
  displayName: "StyledGroupSelectOption",
6
- componentId: "core-12_50_1__sc-u5gu8j-0"
6
+ componentId: "core-12_51_0__sc-u5gu8j-0"
7
7
  })(["", ""], function (_ref) {
8
8
  var disabled = _ref.disabled;
9
9
  return disabled && css(["color:", ";cursor:not-allowed;a,a:hover{color:", ";text-decoration:none;}"], colors.gray70, colors.gray70);
@@ -16,6 +16,6 @@ export function getInputStyles(_ref) {
16
16
  }
17
17
  export var StyledInput = /*#__PURE__*/styled.input.withConfig({
18
18
  displayName: "StyledInput",
19
- componentId: "core-12_50_1__sc-12sjkxg-0"
19
+ componentId: "core-12_51_0__sc-12sjkxg-0"
20
20
  })(["", " padding:0 ", "px;&::-ms-clear{display:none;}&[type='number']{-moz-appearance:textfield;&::-webkit-inner-spin-button,&::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}}"], getInputStyles, spacing.md);
21
21
  //# sourceMappingURL=Input.styles.js.map
@@ -17,6 +17,6 @@ function getLinkColors(_ref) {
17
17
  }
18
18
  export var StyledLink = /*#__PURE__*/styled.a.withConfig({
19
19
  displayName: "StyledLink",
20
- componentId: "core-12_50_1__sc-jfowrl-0"
20
+ componentId: "core-12_51_0__sc-jfowrl-0"
21
21
  })(["text-decoration:underline;&:hover{cursor:pointer;text-decoration:underline;}", " &.focus,&:focus{", ";}", ""], focusable, getBorderRadius('md'), getLinkColors);
22
22
  //# sourceMappingURL=Link.styles.js.map
@@ -3,19 +3,19 @@ import { colors } from '../_styles/colors';
3
3
  import { spacing } from '../_styles/spacing';
4
4
  export var StyledListPageMain = /*#__PURE__*/styled.div.withConfig({
5
5
  displayName: "StyledListPageMain",
6
- componentId: "core-12_50_1__sc-1eq7fzi-0"
6
+ componentId: "core-12_51_0__sc-1eq7fzi-0"
7
7
  })(["display:flex;flex:1 0 auto;flex-direction:column;min-width:0;padding:", "px ", "px;width:100%;"], spacing.lg, spacing.xl);
8
8
  export var StyledListPageBanner = /*#__PURE__*/styled.div.withConfig({
9
9
  displayName: "StyledListPageBanner",
10
- componentId: "core-12_50_1__sc-1eq7fzi-1"
10
+ componentId: "core-12_51_0__sc-1eq7fzi-1"
11
11
  })(["flex:0 0 auto;"]);
12
12
  export var StyledListPageToolHeader = /*#__PURE__*/styled.div.withConfig({
13
13
  displayName: "StyledListPageToolHeader",
14
- componentId: "core-12_50_1__sc-1eq7fzi-2"
14
+ componentId: "core-12_51_0__sc-1eq7fzi-2"
15
15
  })(["flex:0 0 auto;padding-bottom:", "px;"], spacing.lg);
16
16
  export var StyledListPageControl = /*#__PURE__*/styled.div.withConfig({
17
17
  displayName: "StyledListPageControl",
18
- componentId: "core-12_50_1__sc-1eq7fzi-3"
18
+ componentId: "core-12_51_0__sc-1eq7fzi-3"
19
19
  })(["flex:", ";", " ", ""], function (_ref) {
20
20
  var $block = _ref.$block;
21
21
  return $block ? '1 0 auto' : '0 0 auto';
@@ -32,18 +32,18 @@ export var StyledListPageControl = /*#__PURE__*/styled.div.withConfig({
32
32
  });
33
33
  export var StyledListPageContentControls = /*#__PURE__*/styled.div.withConfig({
34
34
  displayName: "StyledListPageContentControls",
35
- componentId: "core-12_50_1__sc-1eq7fzi-4"
35
+ componentId: "core-12_51_0__sc-1eq7fzi-4"
36
36
  })(["align-items:center;display:flex;flex:0 0 auto;justify-content:space-between;padding:", "px 0;", " + ", "{margin-left:", "px;}"], spacing.md, StyledListPageControl, StyledListPageControl, spacing.lg);
37
37
  export var StyledListPageBody = /*#__PURE__*/styled.div.withConfig({
38
38
  displayName: "StyledListPageBody",
39
- componentId: "core-12_50_1__sc-1eq7fzi-5"
39
+ componentId: "core-12_51_0__sc-1eq7fzi-5"
40
40
  })(["display:flex;flex:1 0 auto;padding-top:", "px;"], spacing.md);
41
41
  export var StyledListPageBodyContent = /*#__PURE__*/styled.div.withConfig({
42
42
  displayName: "StyledListPageBodyContent",
43
- componentId: "core-12_50_1__sc-1eq7fzi-6"
43
+ componentId: "core-12_51_0__sc-1eq7fzi-6"
44
44
  })(["flex:1 1 auto;"]);
45
45
  export var StyledListPage = /*#__PURE__*/styled.div.withConfig({
46
46
  displayName: "StyledListPage",
47
- componentId: "core-12_50_1__sc-1eq7fzi-7"
47
+ componentId: "core-12_51_0__sc-1eq7fzi-7"
48
48
  })(["display:flex;flex-direction:row;height:100%;width:100%;", " + ", "{padding-top:", "px;}", " + ", "{border-top-color:", ";border-top-style:solid;border-top-width:1px;}", " + ", ",", " + ", "{border-top-color:", ";border-top-style:solid;border-top-width:1px;}", " + ", "{padding-top:0;}"], StyledListPageBanner, StyledListPageToolHeader, spacing.lg, StyledListPageContentControls, StyledListPageContentControls, colors.gray85, StyledListPageToolHeader, StyledListPageContentControls, StyledListPageToolHeader, StyledListPageBody, colors.gray85, StyledListPageContentControls, StyledListPageBody);
49
49
  //# sourceMappingURL=ListPage.styles.js.map
@@ -7,11 +7,11 @@ export var loaderTransitionDuration = 250;
7
7
  var movingStripes = /*#__PURE__*/keyframes(["from{background-position:", "px 0;}100%{background-position:0 ", "px;}"], backgroundSize, backgroundSize);
8
8
  export var StyledLoader = /*#__PURE__*/styled.div.withConfig({
9
9
  displayName: "StyledLoader",
10
- componentId: "core-12_50_1__sc-wgvjj9-0"
10
+ componentId: "core-12_51_0__sc-wgvjj9-0"
11
11
  })(["display:block;height:100%;left:0;min-width:12px;position:absolute;transition:width ", "ms ease-out;top:0;"], loaderTransitionDuration);
12
12
  export var StyledGradient = /*#__PURE__*/styled.div.withConfig({
13
13
  displayName: "StyledGradient",
14
- componentId: "core-12_50_1__sc-wgvjj9-1"
14
+ componentId: "core-12_51_0__sc-wgvjj9-1"
15
15
  })(["height:100%;", ""], function (_ref) {
16
16
  var $animated = _ref.$animated;
17
17
  return $animated ? css(["@media (prefers-reduced-motion:no-preference){animation:", " 0.5s linear infinite;}background-image:linear-gradient( 45deg,", " 26%,", " 25%,", " 51%,", " 50%,", " 76%,", " 75%,", " );background-size:", "px ", "px;"], movingStripes, color1, color2, color2, color1, color1, color2, color2, backgroundSize, backgroundSize) : css(["background-color:", ";"], colors.blue50);
package/dist/Menu/Menu.js CHANGED
@@ -78,6 +78,7 @@ export function useMenu(_ref) {
78
78
  size: 0
79
79
  });
80
80
  var highlighted = React.useRef(null);
81
+ var keyboardNavigated = React.useRef(false);
81
82
  var keyHandlerRef = externalKeyHandlerRef || /*#__PURE__*/React.createRef();
82
83
  var selectItem = React.useCallback(function (selection) {
83
84
  onSelect(selection);
@@ -85,9 +86,11 @@ export function useMenu(_ref) {
85
86
  var _onKeyDown = React.useCallback(function (e) {
86
87
  var key = e.key;
87
88
  if (key === 'ArrowDown' || key === 'Down') {
89
+ keyboardNavigated.current = true;
88
90
  listNavigation.increment();
89
91
  e.preventDefault();
90
92
  } else if (key === 'ArrowUp' || key === 'Up') {
93
+ keyboardNavigated.current = true;
91
94
  listNavigation.decrement();
92
95
  e.preventDefault();
93
96
  } else if (key === 'Enter') {
@@ -118,6 +121,7 @@ export function useMenu(_ref) {
118
121
  },
119
122
  highlighted: highlighted,
120
123
  isSelectable: isSelectable,
124
+ keyboardNavigated: keyboardNavigated,
121
125
  listNavigation: listNavigation,
122
126
  multiple: multiple,
123
127
  onScrollBottom: onScrollBottom,
@@ -212,6 +216,7 @@ export var Item = /*#__PURE__*/React.forwardRef(function Item(_ref4, ref) {
212
216
  props = _objectWithoutProperties(_ref4, _excluded3);
213
217
  var _useMenuHookContext = useMenuHookContext(),
214
218
  highlighted = _useMenuHookContext.highlighted,
219
+ keyboardNavigated = _useMenuHookContext.keyboardNavigated,
215
220
  listNavigation = _useMenuHookContext.listNavigation,
216
221
  multiple = _useMenuHookContext.multiple,
217
222
  selectItem = _useMenuHookContext.selectItem;
@@ -256,11 +261,13 @@ export var Item = /*#__PURE__*/React.forwardRef(function Item(_ref4, ref) {
256
261
  _onMouseMove(event);
257
262
  }
258
263
  if (listNavigation.index !== index) {
264
+ keyboardNavigated.current = false;
259
265
  listNavigation.set(index);
260
266
  }
261
267
  },
262
268
  ref: itemRef,
263
269
  role: "menuitem",
270
+ $focusVisible: isHighlighted && keyboardNavigated.current,
264
271
  $highlighted: isHighlighted,
265
272
  $selected: selected
266
273
  }), children);
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","names":["React","StyledFooter","StyledGroup","StyledGroupLabel","StyledHeader","StyledItem","StyledMenu","StyledOptions","StyledSearch","StyledWrapper","useOverlayTriggerContext","Typeahead","useEventListener","useI18nContext","useListNavigation","addSubcomponents","usingHookOrDefault","onScrollBottomThreshold","isItem","element","type","Item","scrollIntoView","index","parentElement","scrollTop","offsetTop","clientHeight","_element$parentElemen","parentHeight","checkBottomScrollPosition","callback","onScroll","e","currentTarget","HTMLElement","scrollHeight","noop","useMenu","_ref","_ref$isSelectable","isSelectable","externalKeyHandlerRef","keyHandlerRef","_ref$multiple","multiple","onScrollBottom","_ref$onSearch","onSearch","_ref$onSelect","onSelect","_ref$scrollable","scrollable","listNavigation","circular","initialIndex","size","highlighted","useRef","createRef","selectItem","useCallback","selection","onKeyDown","key","increment","preventDefault","decrement","current","click","useEffect","el","addEventListener","removeEventListener","domHandlers","nativeEvent","MenuHookContext","createContext","useMenuHookContext","context","useContext","Error","Menu_","forwardRef","Menu","_ref2","ref","children","_ref2$UNSAFE_closesOn","UNSAFE_closesOnSelect","_ref2$isSelectable","_ref2$onSelect","_ref2$scrollable","usingHook","props","_objectWithoutProperties","_excluded","overlayTriggerContext","menu","reset","hide","event","createElement","Provider","value","_objectSpread","_extends","role","tabIndex","Group","_ref3","item","_excluded2","_ref4","_ref4$index","_ref4$onClick","onClick","_ref4$selected","selected","_ref4$suggested","suggested","onMouseMove","_excluded3","_useMenuHookContext","itemRef","isHighlighted","set","group","$highlighted","$selected","Options","_ref5","className","_ref5$scrollable","_useMenuHookContext2","menuScrollable","optionsRef","Children","toArray","filter","length","setSize","handler","scope","$scrollable","map","child","isValidElement","selectableIndex","cloneElement","Search","_ref6","_ref6$i18nScope","i18nScope","placeholder","_onChange","onChange","_excluded4","I18n","_React$useState","useState","_React$useState2","_slicedToArray","setValue","_menu$onSearch","target","call","autoFocus","t","Header","_ref7","_objectDestructuringEmpty","Footer","_ref8","_ref8$padding","padding","_excluded5","displayName"],"sources":["../../src/Menu/Menu.tsx"],"sourcesContent":["import React from 'react'\nimport {\n StyledFooter,\n StyledGroup,\n StyledGroupLabel,\n StyledHeader,\n StyledItem,\n StyledMenu,\n StyledOptions,\n StyledSearch,\n StyledWrapper,\n} from '../MenuImperative/MenuImperative.styles'\nimport { useOverlayTriggerContext } from '../OverlayTrigger/OverlayTrigger'\nimport type { TypeaheadProps } from '../Typeahead'\nimport { Typeahead } from '../Typeahead'\nimport { useEventListener } from '../_hooks/EventListener'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { useListNavigation } from '../_hooks/ListNavigation'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport { usingHookOrDefault } from '../_utils/usingHookOrDefault'\nimport type {\n ElementTypeChecker,\n MenuFooterProps,\n MenuGroupProps,\n MenuHeaderProps,\n MenuHook,\n MenuHookConfig,\n MenuItemProps,\n MenuOptionsProps,\n MenuProps,\n MenuSearchProps,\n MenuSelection,\n} from './Menu.types'\n\nconst onScrollBottomThreshold = 8\n\nexport const isItem: ElementTypeChecker = (element) => element.type === Item\n\nfunction scrollIntoView(index: number, element: HTMLElement) {\n if (!element.parentElement) {\n return\n }\n\n if (index === 0) {\n element.parentElement.scrollTop = 0\n\n return\n }\n\n const { offsetTop, clientHeight } = element\n\n const { scrollTop, clientHeight: parentHeight } = element.parentElement\n\n if (offsetTop < scrollTop) {\n element.parentElement.scrollTop = offsetTop\n } else if (offsetTop + clientHeight > scrollTop + parentHeight) {\n element.parentElement.scrollTop = offsetTop - parentHeight + clientHeight\n }\n}\n\nfunction checkBottomScrollPosition(callback?: (e: Event) => void) {\n return function onScroll(e: Event) {\n if (\n callback &&\n e.currentTarget instanceof HTMLElement &&\n e.currentTarget.scrollTop >=\n e.currentTarget.scrollHeight -\n e.currentTarget.clientHeight -\n onScrollBottomThreshold\n ) {\n callback(e)\n }\n }\n}\n\nfunction noop() {}\n\nexport function useMenu({\n isSelectable = isItem,\n keyHandlerRef: externalKeyHandlerRef,\n multiple = false,\n onScrollBottom,\n onSearch = noop,\n onSelect = noop,\n scrollable = true,\n}: MenuHookConfig): MenuHook {\n const listNavigation = useListNavigation({\n circular: !onScrollBottom,\n initialIndex: 0,\n size: 0,\n })\n\n const highlighted = React.useRef<HTMLDivElement>(null)\n\n const keyHandlerRef = externalKeyHandlerRef || React.createRef<HTMLElement>()\n\n const selectItem = React.useCallback(\n (selection: MenuSelection) => {\n onSelect(selection)\n },\n [onSelect]\n )\n\n const onKeyDown = React.useCallback(\n function (e: KeyboardEvent) {\n const { key } = e\n\n if (key === 'ArrowDown' || key === 'Down') {\n listNavigation.increment()\n e.preventDefault()\n } else if (key === 'ArrowUp' || key === 'Up') {\n listNavigation.decrement()\n e.preventDefault()\n } else if (key === 'Enter') {\n if (highlighted.current) {\n highlighted.current.click()\n }\n }\n },\n [listNavigation]\n )\n\n // TODO - deprecate keyhandlerRef, this is just for backwards compatibility since we already exposed it\n React.useEffect(\n function () {\n let el: HTMLElement\n\n if (keyHandlerRef.current) {\n keyHandlerRef.current.addEventListener('keydown', onKeyDown)\n\n el = keyHandlerRef.current\n }\n\n return function () {\n if (el) {\n el.removeEventListener('keydown', onKeyDown)\n }\n }\n },\n [keyHandlerRef, onKeyDown]\n )\n\n return {\n domHandlers: {\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) =>\n onKeyDown(e.nativeEvent),\n },\n highlighted,\n isSelectable,\n listNavigation,\n multiple,\n onScrollBottom,\n onSearch,\n scrollable,\n selectItem,\n }\n}\n\nexport const MenuHookContext = React.createContext<MenuHook | null>(null)\n\nexport function useMenuHookContext(): MenuHook {\n const context = React.useContext(MenuHookContext)\n\n if (context === null) {\n throw new Error(\n 'Cannot find `MenuHook` context, please wrap your component in `<MenuHookContext.Provider>`'\n )\n }\n\n return context\n}\n\nexport const Menu_ = React.forwardRef<HTMLDivElement, MenuProps>(function Menu(\n {\n children,\n UNSAFE_closesOnSelect = true,\n isSelectable = isItem,\n keyHandlerRef,\n onScrollBottom,\n onSelect = noop,\n onSearch,\n scrollable = true,\n usingHook,\n ...props\n },\n ref\n) {\n // Don't be tempted to put this in useMenu. In order for hooks to be portable\n // across the dom tree, they should not contain context consumers.\n const overlayTriggerContext = useOverlayTriggerContext()\n\n const menu = usingHookOrDefault(\n usingHook,\n useMenu\n )({\n isSelectable,\n keyHandlerRef,\n onScrollBottom,\n onSelect,\n onSearch,\n scrollable,\n })\n\n React.useEffect(\n function () {\n // When unmounting, reset the listNavigation index and set\n // the current highlighted item to null. we only want to run this once,\n // so don't pass any dependencies\n return function () {\n menu.listNavigation.reset()\n menu.highlighted.current = null\n }\n },\n /* eslint-disable */ [] /* eslint-enable */\n )\n\n function selectItem(selection: MenuSelection) {\n menu.selectItem(selection)\n\n if (UNSAFE_closesOnSelect) {\n overlayTriggerContext.hide(selection.event)\n }\n }\n\n return (\n <MenuHookContext.Provider value={{ ...menu, selectItem }}>\n <StyledWrapper {...menu.domHandlers} ref={ref} role=\"menu\" tabIndex={0}>\n <StyledMenu {...props}>{children}</StyledMenu>\n </StyledWrapper>\n </MenuHookContext.Provider>\n )\n})\n\nexport const Group = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & MenuGroupProps\n>(function Group({ children, item, ...props }, ref) {\n return (\n <StyledGroup\n {...props}\n ref={ref}\n // onClick={(event) => {\n // TODO: implement selecting groups?\n // }}\n >\n <StyledGroupLabel>{children}</StyledGroupLabel>\n </StyledGroup>\n )\n})\n\nexport const Item = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & MenuItemProps\n>(function Item(\n {\n children,\n index = 0,\n item,\n onClick = noop,\n selected = false,\n suggested = false,\n onMouseMove,\n ...props\n },\n ref\n) {\n const { highlighted, listNavigation, multiple, selectItem } =\n useMenuHookContext()\n\n const itemRef =\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (ref as React.RefObject<HTMLDivElement>) || React.useRef<HTMLDivElement>()\n\n const isHighlighted = index === listNavigation.index\n\n React.useEffect(\n function () {\n // When mounting, check if this item is selected or suggested, and if\n // it is, then set it as the current index and scroll to it.\n // We only want to run this once, so don't pass any dependencies\n\n if (multiple) {\n // don't do this behavior in multiple mode\n return\n }\n\n if (itemRef.current && (selected || suggested)) {\n highlighted.current = itemRef.current\n listNavigation.set(index)\n }\n },\n /* eslint-disable */ [] /* eslint-enable */\n )\n\n React.useEffect(\n function () {\n // If this item has become highlighted, scroll to it\n if (itemRef.current && isHighlighted) {\n highlighted.current = itemRef.current\n scrollIntoView(index, itemRef.current)\n }\n },\n [highlighted, index, isHighlighted, itemRef]\n )\n\n return (\n <StyledItem\n {...props}\n onClick={(event: React.MouseEvent<HTMLDivElement>) => {\n listNavigation.set(index)\n\n selectItem({ event: event.nativeEvent, item, group: false })\n\n onClick(event)\n }}\n onMouseMove={(event: React.MouseEvent<HTMLDivElement>) => {\n if (onMouseMove) {\n onMouseMove(event)\n }\n if (listNavigation.index !== index) {\n listNavigation.set(index)\n }\n }}\n ref={itemRef}\n role=\"menuitem\"\n $highlighted={isHighlighted}\n $selected={selected}\n >\n {children}\n </StyledItem>\n )\n})\n\nexport const Options = React.forwardRef<HTMLDivElement, MenuOptionsProps>(\n function Options({ children, className, scrollable = true }, ref) {\n const {\n listNavigation,\n isSelectable,\n onScrollBottom,\n scrollable: menuScrollable,\n } = useMenuHookContext()\n\n const optionsRef =\n (ref as React.RefObject<HTMLDivElement>) || React.createRef()\n\n const size = React.Children.toArray(children).filter(isSelectable).length\n\n React.useEffect(\n function () {\n listNavigation.setSize(size)\n },\n [listNavigation, size]\n )\n\n useEventListener({\n event: 'scroll',\n handler: checkBottomScrollPosition(onScrollBottom),\n scope: optionsRef,\n })\n\n let index = 0\n\n return (\n <StyledOptions\n className={className}\n ref={optionsRef}\n $scrollable={menuScrollable || scrollable}\n >\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child) && isSelectable(child)) {\n const selectableIndex = index\n\n index = index + 1\n\n return React.cloneElement(child, {\n index: selectableIndex,\n })\n }\n\n return child\n })}\n </StyledOptions>\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 const menu = useMenuHookContext()\n\n const [value, setValue] = React.useState('')\n\n const onChange: TypeaheadProps['onChange'] = React.useCallback(\n function (value: string, event: any) {\n setValue(event.target.value)\n menu.onSearch?.(event)\n menu.listNavigation.set(0)\n _onChange?.(event)\n },\n [_onChange]\n )\n\n return (\n <StyledSearch className={className}>\n <Typeahead\n {...props}\n autoFocus={true}\n placeholder={placeholder || I18n.t('search', { scope: i18nScope })}\n onChange={onChange}\n value={value}\n />\n </StyledSearch>\n )\n}\n\nexport const Header = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & MenuHeaderProps\n>(function Header({ ...props }, ref) {\n return <StyledHeader ref={ref} {...props} />\n})\n\nexport const Footer = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & MenuFooterProps\n>(function Footer({ padding = 'md lg', ...props }, ref) {\n return <StyledFooter ref={ref} padding={padding} {...props} />\n})\n\nMenu_.displayName = 'Menu'\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 Menus are used in conjunction with components that contain dropdowns.\n For example, multi select, single select, and dropdown.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-menu--demo)\n\n @see [Design Guidelines](https://design.procore.com/menu)\n\n */\nexport const Menu = addSubcomponents(\n {\n Footer,\n Group,\n Header,\n Item,\n Options,\n Search,\n },\n Menu_\n)\n"],"mappings":"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"}
1
+ {"version":3,"file":"Menu.js","names":["React","StyledFooter","StyledGroup","StyledGroupLabel","StyledHeader","StyledItem","StyledMenu","StyledOptions","StyledSearch","StyledWrapper","useOverlayTriggerContext","Typeahead","useEventListener","useI18nContext","useListNavigation","addSubcomponents","usingHookOrDefault","onScrollBottomThreshold","isItem","element","type","Item","scrollIntoView","index","parentElement","scrollTop","offsetTop","clientHeight","_element$parentElemen","parentHeight","checkBottomScrollPosition","callback","onScroll","e","currentTarget","HTMLElement","scrollHeight","noop","useMenu","_ref","_ref$isSelectable","isSelectable","externalKeyHandlerRef","keyHandlerRef","_ref$multiple","multiple","onScrollBottom","_ref$onSearch","onSearch","_ref$onSelect","onSelect","_ref$scrollable","scrollable","listNavigation","circular","initialIndex","size","highlighted","useRef","keyboardNavigated","createRef","selectItem","useCallback","selection","onKeyDown","key","current","increment","preventDefault","decrement","click","useEffect","el","addEventListener","removeEventListener","domHandlers","nativeEvent","MenuHookContext","createContext","useMenuHookContext","context","useContext","Error","Menu_","forwardRef","Menu","_ref2","ref","children","_ref2$UNSAFE_closesOn","UNSAFE_closesOnSelect","_ref2$isSelectable","_ref2$onSelect","_ref2$scrollable","usingHook","props","_objectWithoutProperties","_excluded","overlayTriggerContext","menu","reset","hide","event","createElement","Provider","value","_objectSpread","_extends","role","tabIndex","Group","_ref3","item","_excluded2","_ref4","_ref4$index","_ref4$onClick","onClick","_ref4$selected","selected","_ref4$suggested","suggested","onMouseMove","_excluded3","_useMenuHookContext","itemRef","isHighlighted","set","group","$focusVisible","$highlighted","$selected","Options","_ref5","className","_ref5$scrollable","_useMenuHookContext2","menuScrollable","optionsRef","Children","toArray","filter","length","setSize","handler","scope","$scrollable","map","child","isValidElement","selectableIndex","cloneElement","Search","_ref6","_ref6$i18nScope","i18nScope","placeholder","_onChange","onChange","_excluded4","I18n","_React$useState","useState","_React$useState2","_slicedToArray","setValue","_menu$onSearch","target","call","autoFocus","t","Header","_ref7","_objectDestructuringEmpty","Footer","_ref8","_ref8$padding","padding","_excluded5","displayName"],"sources":["../../src/Menu/Menu.tsx"],"sourcesContent":["import React from 'react'\nimport {\n StyledFooter,\n StyledGroup,\n StyledGroupLabel,\n StyledHeader,\n StyledItem,\n StyledMenu,\n StyledOptions,\n StyledSearch,\n StyledWrapper,\n} from '../MenuImperative/MenuImperative.styles'\nimport { useOverlayTriggerContext } from '../OverlayTrigger/OverlayTrigger'\nimport type { TypeaheadProps } from '../Typeahead'\nimport { Typeahead } from '../Typeahead'\nimport { useEventListener } from '../_hooks/EventListener'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { useListNavigation } from '../_hooks/ListNavigation'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport { usingHookOrDefault } from '../_utils/usingHookOrDefault'\nimport type {\n ElementTypeChecker,\n MenuFooterProps,\n MenuGroupProps,\n MenuHeaderProps,\n MenuHook,\n MenuHookConfig,\n MenuItemProps,\n MenuOptionsProps,\n MenuProps,\n MenuSearchProps,\n MenuSelection,\n} from './Menu.types'\n\nconst onScrollBottomThreshold = 8\n\nexport const isItem: ElementTypeChecker = (element) => element.type === Item\n\nfunction scrollIntoView(index: number, element: HTMLElement) {\n if (!element.parentElement) {\n return\n }\n\n if (index === 0) {\n element.parentElement.scrollTop = 0\n\n return\n }\n\n const { offsetTop, clientHeight } = element\n\n const { scrollTop, clientHeight: parentHeight } = element.parentElement\n\n if (offsetTop < scrollTop) {\n element.parentElement.scrollTop = offsetTop\n } else if (offsetTop + clientHeight > scrollTop + parentHeight) {\n element.parentElement.scrollTop = offsetTop - parentHeight + clientHeight\n }\n}\n\nfunction checkBottomScrollPosition(callback?: (e: Event) => void) {\n return function onScroll(e: Event) {\n if (\n callback &&\n e.currentTarget instanceof HTMLElement &&\n e.currentTarget.scrollTop >=\n e.currentTarget.scrollHeight -\n e.currentTarget.clientHeight -\n onScrollBottomThreshold\n ) {\n callback(e)\n }\n }\n}\n\nfunction noop() {}\n\nexport function useMenu({\n isSelectable = isItem,\n keyHandlerRef: externalKeyHandlerRef,\n multiple = false,\n onScrollBottom,\n onSearch = noop,\n onSelect = noop,\n scrollable = true,\n}: MenuHookConfig): MenuHook {\n const listNavigation = useListNavigation({\n circular: !onScrollBottom,\n initialIndex: 0,\n size: 0,\n })\n\n const highlighted = React.useRef<HTMLDivElement>(null)\n const keyboardNavigated = React.useRef(false)\n\n const keyHandlerRef = externalKeyHandlerRef || React.createRef<HTMLElement>()\n\n const selectItem = React.useCallback(\n (selection: MenuSelection) => {\n onSelect(selection)\n },\n [onSelect]\n )\n\n const onKeyDown = React.useCallback(\n function (e: KeyboardEvent) {\n const { key } = e\n\n if (key === 'ArrowDown' || key === 'Down') {\n keyboardNavigated.current = true\n listNavigation.increment()\n e.preventDefault()\n } else if (key === 'ArrowUp' || key === 'Up') {\n keyboardNavigated.current = true\n listNavigation.decrement()\n e.preventDefault()\n } else if (key === 'Enter') {\n if (highlighted.current) {\n highlighted.current.click()\n }\n }\n },\n [listNavigation]\n )\n\n // TODO - deprecate keyhandlerRef, this is just for backwards compatibility since we already exposed it\n React.useEffect(\n function () {\n let el: HTMLElement\n\n if (keyHandlerRef.current) {\n keyHandlerRef.current.addEventListener('keydown', onKeyDown)\n\n el = keyHandlerRef.current\n }\n\n return function () {\n if (el) {\n el.removeEventListener('keydown', onKeyDown)\n }\n }\n },\n [keyHandlerRef, onKeyDown]\n )\n\n return {\n domHandlers: {\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) =>\n onKeyDown(e.nativeEvent),\n },\n highlighted,\n isSelectable,\n keyboardNavigated,\n listNavigation,\n multiple,\n onScrollBottom,\n onSearch,\n scrollable,\n selectItem,\n }\n}\n\nexport const MenuHookContext = React.createContext<MenuHook | null>(null)\n\nexport function useMenuHookContext(): MenuHook {\n const context = React.useContext(MenuHookContext)\n\n if (context === null) {\n throw new Error(\n 'Cannot find `MenuHook` context, please wrap your component in `<MenuHookContext.Provider>`'\n )\n }\n\n return context\n}\n\nexport const Menu_ = React.forwardRef<HTMLDivElement, MenuProps>(function Menu(\n {\n children,\n UNSAFE_closesOnSelect = true,\n isSelectable = isItem,\n keyHandlerRef,\n onScrollBottom,\n onSelect = noop,\n onSearch,\n scrollable = true,\n usingHook,\n ...props\n },\n ref\n) {\n // Don't be tempted to put this in useMenu. In order for hooks to be portable\n // across the dom tree, they should not contain context consumers.\n const overlayTriggerContext = useOverlayTriggerContext()\n\n const menu = usingHookOrDefault(\n usingHook,\n useMenu\n )({\n isSelectable,\n keyHandlerRef,\n onScrollBottom,\n onSelect,\n onSearch,\n scrollable,\n })\n\n React.useEffect(\n function () {\n // When unmounting, reset the listNavigation index and set\n // the current highlighted item to null. we only want to run this once,\n // so don't pass any dependencies\n return function () {\n menu.listNavigation.reset()\n menu.highlighted.current = null\n }\n },\n /* eslint-disable */ [] /* eslint-enable */\n )\n\n function selectItem(selection: MenuSelection) {\n menu.selectItem(selection)\n\n if (UNSAFE_closesOnSelect) {\n overlayTriggerContext.hide(selection.event)\n }\n }\n\n return (\n <MenuHookContext.Provider value={{ ...menu, selectItem }}>\n <StyledWrapper {...menu.domHandlers} ref={ref} role=\"menu\" tabIndex={0}>\n <StyledMenu {...props}>{children}</StyledMenu>\n </StyledWrapper>\n </MenuHookContext.Provider>\n )\n})\n\nexport const Group = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & MenuGroupProps\n>(function Group({ children, item, ...props }, ref) {\n return (\n <StyledGroup\n {...props}\n ref={ref}\n // onClick={(event) => {\n // TODO: implement selecting groups?\n // }}\n >\n <StyledGroupLabel>{children}</StyledGroupLabel>\n </StyledGroup>\n )\n})\n\nexport const Item = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & MenuItemProps\n>(function Item(\n {\n children,\n index = 0,\n item,\n onClick = noop,\n selected = false,\n suggested = false,\n onMouseMove,\n ...props\n },\n ref\n) {\n const {\n highlighted,\n keyboardNavigated,\n listNavigation,\n multiple,\n selectItem,\n } = useMenuHookContext()\n\n const itemRef =\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (ref as React.RefObject<HTMLDivElement>) || React.useRef<HTMLDivElement>()\n\n const isHighlighted = index === listNavigation.index\n\n React.useEffect(\n function () {\n // When mounting, check if this item is selected or suggested, and if\n // it is, then set it as the current index and scroll to it.\n // We only want to run this once, so don't pass any dependencies\n\n if (multiple) {\n // don't do this behavior in multiple mode\n return\n }\n\n if (itemRef.current && (selected || suggested)) {\n highlighted.current = itemRef.current\n listNavigation.set(index)\n }\n },\n /* eslint-disable */ [] /* eslint-enable */\n )\n\n React.useEffect(\n function () {\n // If this item has become highlighted, scroll to it\n if (itemRef.current && isHighlighted) {\n highlighted.current = itemRef.current\n scrollIntoView(index, itemRef.current)\n }\n },\n [highlighted, index, isHighlighted, itemRef]\n )\n\n return (\n <StyledItem\n {...props}\n onClick={(event: React.MouseEvent<HTMLDivElement>) => {\n listNavigation.set(index)\n\n selectItem({ event: event.nativeEvent, item, group: false })\n\n onClick(event)\n }}\n onMouseMove={(event: React.MouseEvent<HTMLDivElement>) => {\n if (onMouseMove) {\n onMouseMove(event)\n }\n if (listNavigation.index !== index) {\n keyboardNavigated.current = false\n listNavigation.set(index)\n }\n }}\n ref={itemRef}\n role=\"menuitem\"\n $focusVisible={isHighlighted && keyboardNavigated.current}\n $highlighted={isHighlighted}\n $selected={selected}\n >\n {children}\n </StyledItem>\n )\n})\n\nexport const Options = React.forwardRef<HTMLDivElement, MenuOptionsProps>(\n function Options({ children, className, scrollable = true }, ref) {\n const {\n listNavigation,\n isSelectable,\n onScrollBottom,\n scrollable: menuScrollable,\n } = useMenuHookContext()\n\n const optionsRef =\n (ref as React.RefObject<HTMLDivElement>) || React.createRef()\n\n const size = React.Children.toArray(children).filter(isSelectable).length\n\n React.useEffect(\n function () {\n listNavigation.setSize(size)\n },\n [listNavigation, size]\n )\n\n useEventListener({\n event: 'scroll',\n handler: checkBottomScrollPosition(onScrollBottom),\n scope: optionsRef,\n })\n\n let index = 0\n\n return (\n <StyledOptions\n className={className}\n ref={optionsRef}\n $scrollable={menuScrollable || scrollable}\n >\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child) && isSelectable(child)) {\n const selectableIndex = index\n\n index = index + 1\n\n return React.cloneElement(child, {\n index: selectableIndex,\n })\n }\n\n return child\n })}\n </StyledOptions>\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 const menu = useMenuHookContext()\n\n const [value, setValue] = React.useState('')\n\n const onChange: TypeaheadProps['onChange'] = React.useCallback(\n function (value: string, event: any) {\n setValue(event.target.value)\n menu.onSearch?.(event)\n menu.listNavigation.set(0)\n _onChange?.(event)\n },\n [_onChange]\n )\n\n return (\n <StyledSearch className={className}>\n <Typeahead\n {...props}\n autoFocus={true}\n placeholder={placeholder || I18n.t('search', { scope: i18nScope })}\n onChange={onChange}\n value={value}\n />\n </StyledSearch>\n )\n}\n\nexport const Header = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & MenuHeaderProps\n>(function Header({ ...props }, ref) {\n return <StyledHeader ref={ref} {...props} />\n})\n\nexport const Footer = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & MenuFooterProps\n>(function Footer({ padding = 'md lg', ...props }, ref) {\n return <StyledFooter ref={ref} padding={padding} {...props} />\n})\n\nMenu_.displayName = 'Menu'\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 Menus are used in conjunction with components that contain dropdowns.\n For example, multi select, single select, and dropdown.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-menu--demo)\n\n @see [Design Guidelines](https://design.procore.com/menu)\n\n */\nexport const Menu = addSubcomponents(\n {\n Footer,\n Group,\n Header,\n Item,\n Options,\n Search,\n },\n Menu_\n)\n"],"mappings":"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"}
@@ -164,6 +164,7 @@ export interface MenuHook {
164
164
  * @since 10.19.0
165
165
  */
166
166
  isSelectable: ElementTypeChecker;
167
+ keyboardNavigated: React.MutableRefObject<boolean>;
167
168
  /**
168
169
  * @since 10.19.0
169
170
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.types.js","names":[],"sources":["../../src/Menu/Menu.types.ts"],"sourcesContent":["import type React from 'react'\nimport type { BoxProps } from '../Box/Box.types'\nimport type { SearchHook } from '../Search/Search.types'\nimport type {\n TypeaheadInputProps,\n TypeaheadProps,\n} from '../Typeahead/Typeahead.types'\nimport type { ListNavigationApi } from '../_hooks/ListNavigation'\nimport type { ChangeEvent } from '../_hooks/TextEntry'\nimport type { Props } from '../_utils/types'\n\nexport type ElementTypeChecker = (\n element: any,\n index?: number,\n list?: any[]\n) => boolean\n\nexport interface MenuSelection {\n /**\n * @since 10.19.0\n */\n event: Event\n /**\n * @since 10.19.0\n */\n group: boolean\n /**\n * @since 10.19.0\n */\n item: any\n}\n\nexport interface MenuNavigationProps extends Props {\n /**\n * @since 10.19.0\n */\n index?: number\n /**\n * @since 10.19.0\n */\n ref?: React.Ref<any>\n}\n\nexport interface MenuItemProps extends MenuNavigationProps {\n /**\n * @since 10.19.0\n */\n children?: React.ReactNode\n /**\n * @since 10.19.0\n */\n className?: string\n /**\n * Value which can be passed around various callback functions.\n * Can be anything!\n * @since 10.19.0\n */\n item?: any\n /**\n * @since 10.19.0\n */\n onClick?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => any\n /**\n * Is the item selected\n * @default false\n * @since 10.19.0\n */\n selected?: boolean\n /**\n * @since 10.19.0\n */\n suggested?: boolean\n}\n\nexport interface MenuGroupProps {\n /**\n * @since 10.19.0\n */\n className?: string\n\n /**\n * Can the group item be clicked\n * @since 10.19.0\n */\n clickable?: boolean\n\n /**\n * Value which can be passed around various callback functions.\n * Can be anything!\n * @since 10.19.0\n */\n item?: any\n}\n\nexport interface MenuOptionsProps {\n /**\n * @since 10.19.0\n */\n children?: React.ReactNode\n /**\n * @since 10.19.0\n */\n className?: string\n /**\n * @since 10.19.0\n */\n padding?: string\n\n /**\n * @default true\n */\n scrollable?: boolean\n}\n\nexport interface MenuSearchProps\n extends Omit<TypeaheadProps, 'onChange'>,\n TypeaheadInputProps,\n Props {\n /**\n * The i18n key to use for the menu search's configurable strings. Defaults to\n * using the core library's default strings.\n * @since 10.19.0\n */\n i18nScope?: string\n /**\n * @since 10.21.0\n */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void\n}\n\nexport interface MenuHeaderProps extends Props {\n /**\n * @since 10.19.0\n */\n tabIndex?: number\n}\n\nexport interface MenuFooterProps extends Omit<BoxProps, 'as'> {}\n\nexport interface MenuHookConfig {\n /**\n * @since 10.19.0\n */\n isSelectable?: MenuHook['isSelectable']\n /**\n * @since 10.19.0\n */\n keyHandlerRef?: React.RefObject<HTMLElement>\n /**\n * @since 10.19.0\n */\n multiple?: boolean\n /**\n * @since 10.19.0\n */\n onScrollBottom?: MenuHook['onScrollBottom']\n /**\n * @since 10.19.0\n */\n onSearch?: (event: ChangeEvent) => void\n /**\n * @since 10.19.0\n */\n onSelect?: MenuHook['selectItem']\n /**\n * @since 10.19.0\n */\n scrollable?: MenuHook['scrollable']\n /**\n * @since 10.19.0\n */\n usingSearchHook?: SearchHook\n}\n\nexport interface MenuHook {\n /**\n * @since 10.19.0\n */\n domHandlers: {\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) => void\n }\n /**\n * @since 10.19.0\n */\n highlighted: React.MutableRefObject<HTMLDivElement | null>\n /**\n * @since 10.19.0\n */\n isSelectable: ElementTypeChecker\n /**\n * @since 10.19.0\n */\n listNavigation: ListNavigationApi\n /**\n * @since 10.19.0\n */\n multiple: boolean\n /**\n * @since 10.19.0\n */\n onScrollBottom?: (e: Event) => void\n /**\n * @since 11\n */\n onSearch?: (event: ChangeEvent) => void\n /**\n * @default true\n */\n scrollable: boolean\n /**\n * @since 10.19.0\n */\n selectItem: (selection: MenuSelection) => void\n}\n\n// TODO unify with MenuHookConfig\nexport interface MenuProps extends Props, Omit<MenuOptionsProps, 'padding'> {\n /**\n * @deprecated\n *\n * The `isSelectable` prop has been deprecated and will be removed in a future version.\n * Menu item selection is now handled internally and there is no need to configure this\n * anymore.\n *\n * @deprecatedSince 10.20.0\n * @since 10.19.0\n */\n isSelectable?: ElementTypeChecker\n\n /**\n * Ref object which will get the key handler listeners\n * @since 10.19.0\n */\n keyHandlerRef?: React.RefObject<HTMLElement>\n /**\n * @since 10.19.0\n */\n onScrollBottom?: (e: Event) => void\n\n /**\n * Callback for selecting an item from the menu. `item` will be the `item` prop supplied to the\n * `Item` component. `group` will be `true` if the clicked item was a group label.\n * @since 10.19.0\n */\n onSelect?: (selection: MenuSelection) => any\n /**\n * @since 11\n */\n onSearch?: (event: ChangeEvent) => void\n /**\n * @deprecatedSince 9\n * @deprecated Never offically documented/supported. Please migrate to the other props like `onSelect` and `onSearch` on the `Menu` component. In v11, the **internal only** `useMenu` removed its search state. You should not be using `useMenu` nor this `usingHook` prop.\n * @since 10.19.0\n */\n usingHook?: MenuHook\n\n /**\n * Unsafe, do not use\n * @deprecatedSince 9\n * @deprecated Never offically documented/supported\n * @since 10.19.0\n */\n UNSAFE_closesOnSelect?: boolean\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Menu.types.js","names":[],"sources":["../../src/Menu/Menu.types.ts"],"sourcesContent":["import type React from 'react'\nimport type { BoxProps } from '../Box/Box.types'\nimport type { SearchHook } from '../Search/Search.types'\nimport type {\n TypeaheadInputProps,\n TypeaheadProps,\n} from '../Typeahead/Typeahead.types'\nimport type { ListNavigationApi } from '../_hooks/ListNavigation'\nimport type { ChangeEvent } from '../_hooks/TextEntry'\nimport type { Props } from '../_utils/types'\n\nexport type ElementTypeChecker = (\n element: any,\n index?: number,\n list?: any[]\n) => boolean\n\nexport interface MenuSelection {\n /**\n * @since 10.19.0\n */\n event: Event\n /**\n * @since 10.19.0\n */\n group: boolean\n /**\n * @since 10.19.0\n */\n item: any\n}\n\nexport interface MenuNavigationProps extends Props {\n /**\n * @since 10.19.0\n */\n index?: number\n /**\n * @since 10.19.0\n */\n ref?: React.Ref<any>\n}\n\nexport interface MenuItemProps extends MenuNavigationProps {\n /**\n * @since 10.19.0\n */\n children?: React.ReactNode\n /**\n * @since 10.19.0\n */\n className?: string\n /**\n * Value which can be passed around various callback functions.\n * Can be anything!\n * @since 10.19.0\n */\n item?: any\n /**\n * @since 10.19.0\n */\n onClick?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => any\n /**\n * Is the item selected\n * @default false\n * @since 10.19.0\n */\n selected?: boolean\n /**\n * @since 10.19.0\n */\n suggested?: boolean\n}\n\nexport interface MenuGroupProps {\n /**\n * @since 10.19.0\n */\n className?: string\n\n /**\n * Can the group item be clicked\n * @since 10.19.0\n */\n clickable?: boolean\n\n /**\n * Value which can be passed around various callback functions.\n * Can be anything!\n * @since 10.19.0\n */\n item?: any\n}\n\nexport interface MenuOptionsProps {\n /**\n * @since 10.19.0\n */\n children?: React.ReactNode\n /**\n * @since 10.19.0\n */\n className?: string\n /**\n * @since 10.19.0\n */\n padding?: string\n\n /**\n * @default true\n */\n scrollable?: boolean\n}\n\nexport interface MenuSearchProps\n extends Omit<TypeaheadProps, 'onChange'>,\n TypeaheadInputProps,\n Props {\n /**\n * The i18n key to use for the menu search's configurable strings. Defaults to\n * using the core library's default strings.\n * @since 10.19.0\n */\n i18nScope?: string\n /**\n * @since 10.21.0\n */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void\n}\n\nexport interface MenuHeaderProps extends Props {\n /**\n * @since 10.19.0\n */\n tabIndex?: number\n}\n\nexport interface MenuFooterProps extends Omit<BoxProps, 'as'> {}\n\nexport interface MenuHookConfig {\n /**\n * @since 10.19.0\n */\n isSelectable?: MenuHook['isSelectable']\n /**\n * @since 10.19.0\n */\n keyHandlerRef?: React.RefObject<HTMLElement>\n /**\n * @since 10.19.0\n */\n multiple?: boolean\n /**\n * @since 10.19.0\n */\n onScrollBottom?: MenuHook['onScrollBottom']\n /**\n * @since 10.19.0\n */\n onSearch?: (event: ChangeEvent) => void\n /**\n * @since 10.19.0\n */\n onSelect?: MenuHook['selectItem']\n /**\n * @since 10.19.0\n */\n scrollable?: MenuHook['scrollable']\n /**\n * @since 10.19.0\n */\n usingSearchHook?: SearchHook\n}\n\nexport interface MenuHook {\n /**\n * @since 10.19.0\n */\n domHandlers: {\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) => void\n }\n /**\n * @since 10.19.0\n */\n highlighted: React.MutableRefObject<HTMLDivElement | null>\n /**\n * @since 10.19.0\n */\n isSelectable: ElementTypeChecker\n keyboardNavigated: React.MutableRefObject<boolean>\n /**\n * @since 10.19.0\n */\n listNavigation: ListNavigationApi\n /**\n * @since 10.19.0\n */\n multiple: boolean\n /**\n * @since 10.19.0\n */\n onScrollBottom?: (e: Event) => void\n /**\n * @since 11\n */\n onSearch?: (event: ChangeEvent) => void\n /**\n * @default true\n */\n scrollable: boolean\n /**\n * @since 10.19.0\n */\n selectItem: (selection: MenuSelection) => void\n}\n\n// TODO unify with MenuHookConfig\nexport interface MenuProps extends Props, Omit<MenuOptionsProps, 'padding'> {\n /**\n * @deprecated\n *\n * The `isSelectable` prop has been deprecated and will be removed in a future version.\n * Menu item selection is now handled internally and there is no need to configure this\n * anymore.\n *\n * @deprecatedSince 10.20.0\n * @since 10.19.0\n */\n isSelectable?: ElementTypeChecker\n\n /**\n * Ref object which will get the key handler listeners\n * @since 10.19.0\n */\n keyHandlerRef?: React.RefObject<HTMLElement>\n /**\n * @since 10.19.0\n */\n onScrollBottom?: (e: Event) => void\n\n /**\n * Callback for selecting an item from the menu. `item` will be the `item` prop supplied to the\n * `Item` component. `group` will be `true` if the clicked item was a group label.\n * @since 10.19.0\n */\n onSelect?: (selection: MenuSelection) => any\n /**\n * @since 11\n */\n onSearch?: (event: ChangeEvent) => void\n /**\n * @deprecatedSince 9\n * @deprecated Never offically documented/supported. Please migrate to the other props like `onSelect` and `onSearch` on the `Menu` component. In v11, the **internal only** `useMenu` removed its search state. You should not be using `useMenu` nor this `usingHook` prop.\n * @since 10.19.0\n */\n usingHook?: MenuHook\n\n /**\n * Unsafe, do not use\n * @deprecatedSince 9\n * @deprecated Never offically documented/supported\n * @since 10.19.0\n */\n UNSAFE_closesOnSelect?: boolean\n}\n"],"mappings":""}
@@ -13,6 +13,7 @@ export declare const StyledItem: import("styled-components/dist/types").IStyledC
13
13
  $disabled?: boolean | undefined;
14
14
  $selected?: boolean | undefined;
15
15
  $highlighted?: boolean | undefined;
16
+ $focusVisible?: boolean | undefined;
16
17
  $isDraggable?: boolean | undefined;
17
18
  $isDragging?: boolean | undefined;
18
19
  }>> & string;