@procore/core-react 12.33.0 → 12.34.1

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 (216) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/AnchorNavigation/AnchorNavigation.styles.js +3 -3
  3. package/dist/Avatar/Avatar.styles.js +5 -5
  4. package/dist/AvatarStack/AvatarStack.styles.js +7 -7
  5. package/dist/Badge/Badge.styles.js +2 -2
  6. package/dist/BadgePill/BadgePill.styles.js +4 -4
  7. package/dist/Banner/Banner.styles.js +10 -10
  8. package/dist/Box/Box.styles.js +1 -1
  9. package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
  10. package/dist/Button/Button.js +12 -0
  11. package/dist/Button/Button.js.map +1 -1
  12. package/dist/Button/Button.styles.js +5 -5
  13. package/dist/Calendar/Calendar.styles.js +8 -8
  14. package/dist/Card/Card.styles.js +1 -1
  15. package/dist/Changelog.mdx +1 -1
  16. package/dist/Checkbox/Checkbox.styles.js +6 -6
  17. package/dist/Checkbox/CheckboxTooltip.js +1 -1
  18. package/dist/{ComponentLifecycle.stories.mdx → ComponentLifecycle.mdx} +1 -1
  19. package/dist/ContactItem/ContactItem.styles.js +5 -5
  20. package/dist/Content/Content.styles.js +2 -2
  21. package/dist/DateInput/DateInput.styles.js +6 -6
  22. package/dist/DetailPage/DetailPage.styles.js +7 -7
  23. package/dist/Dropdown/Dropdown.styles.js +3 -3
  24. package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
  25. package/dist/Dropzone/Dropzone.js +1 -1
  26. package/dist/Dropzone/Dropzone.styles.js +9 -9
  27. package/dist/EmptyState/EmptyState.styles.js +6 -6
  28. package/dist/Field/Field.styles.js +3 -3
  29. package/dist/FileList/FileList.styles.js +4 -4
  30. package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
  31. package/dist/FileSelect/FileExplorer/FileExplorerModal.js +3 -1
  32. package/dist/FileSelect/FileExplorer/FileExplorerModal.js.map +1 -1
  33. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
  34. package/dist/FileSelect/FileSelect.styles.js +2 -2
  35. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
  36. package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
  37. package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
  38. package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
  39. package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
  40. package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
  41. package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
  42. package/dist/FileToken/FileToken.styles.js +4 -4
  43. package/dist/FilterToken/FilterToken.styles.js +5 -5
  44. package/dist/FlexList/FlexList.styles.js +1 -1
  45. package/dist/Form/Form.styles.js +14 -14
  46. package/dist/Form/StyledFormikForm.styles.js +2 -2
  47. package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
  48. package/dist/Grid/Grid.styles.js +2 -2
  49. package/dist/GroupSelect/GroupSelect.styles.js +1 -1
  50. package/dist/Input/Input.styles.js +1 -1
  51. package/dist/Link/Link.styles.js +1 -1
  52. package/dist/ListPage/ListPage.styles.js +8 -8
  53. package/dist/Loader/Loader.styles.js +2 -2
  54. package/dist/MenuImperative/MenuImperative.d.ts +2 -2
  55. package/dist/MenuImperative/MenuImperative.js +10 -5
  56. package/dist/MenuImperative/MenuImperative.js.map +1 -1
  57. package/dist/MenuImperative/MenuImperative.styles.js +10 -10
  58. package/dist/MenuImperative/MenuImperative.types.d.ts +6 -0
  59. package/dist/MenuImperative/MenuImperative.types.js.map +1 -1
  60. package/dist/MenuImperative/index.d.ts +1 -1
  61. package/dist/Modal/Modal.styles.js +13 -13
  62. package/dist/MultiSelect/MultiSelect.js +23 -2
  63. package/dist/MultiSelect/MultiSelect.js.map +1 -1
  64. package/dist/MultiSelect/MultiSelect.styles.js +6 -6
  65. package/dist/NextMenu/NextMenu.styles.js +3 -3
  66. package/dist/Notation/Notation.js +1 -1
  67. package/dist/NumberInput/NumberInput.styles.js +7 -7
  68. package/dist/Overlay/OverlayArrow.styles.js +1 -1
  69. package/dist/PageLayout/PageLayout.styles.js +16 -16
  70. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
  71. package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
  72. package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
  73. package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
  74. package/dist/Pagination/Pagination.styles.js +5 -5
  75. package/dist/Panel/Panel.styles.js +11 -11
  76. package/dist/Pill/Pill.styles.js +3 -3
  77. package/dist/PillSelect/PillSelect.styles.js +4 -4
  78. package/dist/Popover/Popover.styles.js +2 -2
  79. package/dist/Portal/Portal.styles.js +1 -1
  80. package/dist/ProgressBar/ProgressBar.styles.js +2 -2
  81. package/dist/RadioButton/RadioButton.styles.js +3 -3
  82. package/dist/Required/Required.styles.js +3 -3
  83. package/dist/Search/Search.styles.js +5 -5
  84. package/dist/Section/Section.styles.js +7 -7
  85. package/dist/SegmentedController/SegmentedController.styles.js +4 -4
  86. package/dist/Select/Select.styles.js +7 -7
  87. package/dist/Semantic/Semantic.styles.js +9 -9
  88. package/dist/Slider/Slider.styles.js +5 -5
  89. package/dist/Spinner/Spinner.styles.js +7 -7
  90. package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
  91. package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
  92. package/dist/SuperSelect/SuperSelect.styles.js +38 -38
  93. package/dist/SuperSelect/SuperSelect.types.d.ts +1 -0
  94. package/dist/SuperSelect/SuperSelect.types.js.map +1 -1
  95. package/dist/SuperSelect/useSuperSelect.js +29 -25
  96. package/dist/SuperSelect/useSuperSelect.js.map +1 -1
  97. package/dist/Switch/Switch.styles.js +4 -4
  98. package/dist/Table/Table.styles.js +28 -28
  99. package/dist/TableShelf/TableShelf.styles.js +5 -5
  100. package/dist/Tabs/Tabs.styles.js +15 -15
  101. package/dist/Tearsheet/Tearsheet.styles.js +5 -5
  102. package/dist/TextArea/TextArea.styles.js +1 -1
  103. package/dist/TextEditor/TextEditor.js +10 -8
  104. package/dist/TextEditor/TextEditor.js.map +1 -1
  105. package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
  106. package/dist/Thumbnail/Thumbnail.styles.js +17 -17
  107. package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
  108. package/dist/TieredSelect/TierSelectionTieredSelect.js +5 -3
  109. package/dist/TieredSelect/TierSelectionTieredSelect.js.map +1 -1
  110. package/dist/TieredSelect/TieredSelect.js +3 -1
  111. package/dist/TieredSelect/TieredSelect.js.map +1 -1
  112. package/dist/TieredSelect/TieredSelect.styles.d.ts +1 -1
  113. package/dist/TieredSelect/TieredSelect.styles.js +9 -9
  114. package/dist/TieredSelect/TieredSelect.types.d.ts +6 -0
  115. package/dist/TieredSelect/TieredSelect.types.js.map +1 -1
  116. package/dist/TieredSelect/TieredSelectMenu.js +12 -13
  117. package/dist/TieredSelect/TieredSelectMenu.js.map +1 -1
  118. package/dist/Tile/Tile.styles.js +8 -8
  119. package/dist/Title/Title.styles.js +7 -7
  120. package/dist/Toast/Toast.styles.js +3 -3
  121. package/dist/ToggleButton/ToggleButton.styles.js +1 -1
  122. package/dist/Token/Token.styles.js +3 -3
  123. package/dist/ToolHeader/ToolHeader.styles.js +6 -6
  124. package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
  125. package/dist/Tooltip/Tooltip.styles.js +2 -2
  126. package/dist/Tree/Tree.js +9 -1
  127. package/dist/Tree/Tree.js.map +1 -1
  128. package/dist/Tree/Tree.styles.js +9 -9
  129. package/dist/Typeahead/Typeahead.styles.js +3 -3
  130. package/dist/Typography/Typography.styles.js +1 -1
  131. package/dist/Typography/Typography.table.story.js +2 -2
  132. package/dist/_hooks/I18n.d.ts +4 -0
  133. package/dist/_locales/en.json +3 -1
  134. package/dist/_locales/pseudo.json +3 -1
  135. package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
  136. package/dist/_storyHelpers_/components/StoryGrid.js +3 -3
  137. package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +3 -3
  138. package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
  139. package/dist/_typedoc/AvatarStack/AvatarStack.types.json +24 -24
  140. package/dist/_typedoc/Badge/Badge.types.json +6 -6
  141. package/dist/_typedoc/Banner/Banner.types.json +13 -13
  142. package/dist/_typedoc/Box/Box.types.json +68 -68
  143. package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
  144. package/dist/_typedoc/Button/Button.types.json +13 -13
  145. package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
  146. package/dist/_typedoc/Card/Card.types.json +6 -6
  147. package/dist/_typedoc/Checkbox/Checkbox.types.json +8 -8
  148. package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
  149. package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
  150. package/dist/_typedoc/DateSelect/DateSelect.types.json +13 -13
  151. package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
  152. package/dist/_typedoc/Dropdown/Dropdown.types.json +37 -37
  153. package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +30 -30
  154. package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
  155. package/dist/_typedoc/EmptyState/EmptyState.types.json +16 -16
  156. package/dist/_typedoc/FileList/FileList.types.json +9 -9
  157. package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
  158. package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
  159. package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
  160. package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
  161. package/dist/_typedoc/Flex/Flex.types.json +27 -27
  162. package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
  163. package/dist/_typedoc/Form/Form.types.json +764 -744
  164. package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
  165. package/dist/_typedoc/Grid/Grid.types.json +8 -8
  166. package/dist/_typedoc/GroupSelect/GroupSelect.types.json +52 -52
  167. package/dist/_typedoc/Input/Input.types.json +2 -2
  168. package/dist/_typedoc/Link/Link.types.json +1 -1
  169. package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
  170. package/dist/_typedoc/Menu/Menu.types.json +62 -62
  171. package/dist/_typedoc/MenuImperative/MenuImperative.types.json +77 -77
  172. package/dist/_typedoc/Modal/Modal.types.json +46 -46
  173. package/dist/_typedoc/MultiSelect/MultiSelect.types.json +31 -31
  174. package/dist/_typedoc/NextTile/NextTile.types.json +32 -32
  175. package/dist/_typedoc/Notation/Notation.types.json +4 -4
  176. package/dist/_typedoc/NumberInput/NumberInput.types.json +48 -48
  177. package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +32 -32
  178. package/dist/_typedoc/PageLayout/PageLayout.types.json +26 -26
  179. package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
  180. package/dist/_typedoc/Panel/Panel.types.json +30 -30
  181. package/dist/_typedoc/Pill/Pill.types.json +2 -2
  182. package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
  183. package/dist/_typedoc/Popover/Popover.types.json +15 -15
  184. package/dist/_typedoc/ProgressBar/ProgressBar.types.json +7 -7
  185. package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
  186. package/dist/_typedoc/Required/Required.types.json +5 -5
  187. package/dist/_typedoc/Search/Search.types.json +18 -18
  188. package/dist/_typedoc/Section/Section.types.json +15 -15
  189. package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
  190. package/dist/_typedoc/Select/Select.types.json +60 -60
  191. package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
  192. package/dist/_typedoc/Slider/Slider.types.json +6 -6
  193. package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
  194. package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +14 -14
  195. package/dist/_typedoc/Table/Table.types.json +101 -101
  196. package/dist/_typedoc/Tabs/Tabs.types.json +20 -20
  197. package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
  198. package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
  199. package/dist/_typedoc/TextEditor/TextEditor.types.json +9 -9
  200. package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +4 -4
  201. package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
  202. package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +52 -42
  203. package/dist/_typedoc/TieredSelect/TieredSelect.types.json +38 -28
  204. package/dist/_typedoc/Tile/Tile.types.json +8 -8
  205. package/dist/_typedoc/Title/Title.types.json +1 -1
  206. package/dist/_typedoc/Toast/Toast.types.json +4 -4
  207. package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
  208. package/dist/_typedoc/Token/Token.types.json +7 -7
  209. package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
  210. package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +8 -8
  211. package/dist/_typedoc/Tooltip/Tooltip.types.json +13 -13
  212. package/dist/_typedoc/Tree/Tree.types.json +86 -86
  213. package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
  214. package/dist/_typedoc/Typography/Typography.types.json +9 -9
  215. package/dist/_typedoc/_utils/types.json +3 -3
  216. package/package.json +8 -11
@@ -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_33_0__sc-z984sz-0"
14
+ componentId: "core-12_34_1__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_33_0__sc-z984sz-1"
18
+ componentId: "core-12_34_1__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_33_0__sc-z984sz-2"
22
+ componentId: "core-12_34_1__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_33_0__sc-z984sz-3"
30
+ componentId: "core-12_34_1__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_33_0__sc-z984sz-4"
34
+ componentId: "core-12_34_1__sc-z984sz-4"
35
35
  })([""]);
36
36
  export var StyledSearch = /*#__PURE__*/styled.div.withConfig({
37
37
  displayName: "StyledSearch",
38
- componentId: "core-12_33_0__sc-z984sz-5"
38
+ componentId: "core-12_34_1__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_33_0__sc-z984sz-6"
42
+ componentId: "core-12_34_1__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_33_0__sc-z984sz-7"
49
+ componentId: "core-12_34_1__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_33_0__sc-z984sz-8"
78
+ componentId: "core-12_34_1__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_33_0__sc-z984sz-9"
82
+ componentId: "core-12_34_1__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
@@ -227,6 +227,12 @@ export interface MenuSearchProps extends Omit<TypeaheadProps, 'onChange'>, Typea
227
227
  * @since 10.21.0
228
228
  */
229
229
  onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
230
+ /**
231
+ * Controls the search input value. When provided, the search input becomes
232
+ * a controlled component and the parent must manage the value state.
233
+ * @since 12.34.0
234
+ */
235
+ value?: string;
230
236
  }
231
237
  export interface HeaderProps extends Props {
232
238
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"MenuImperative.types.js","names":[],"sources":["../../src/MenuImperative/MenuImperative.types.ts"],"sourcesContent":["import type * as React from 'react'\nimport type { BoxProps } from '../Box'\nimport type {\n TypeaheadInputProps,\n TypeaheadProps,\n} from '../Typeahead/Typeahead.types'\nimport type { Props } from '../_utils/types'\n\nexport type Ref<T> =\n | ((instance: T | null) => void)\n | React.MutableRefObject<T | null>\n | null\n\ntype Div = React.ComponentPropsWithoutRef<'div'>\n\nexport interface Selection {\n /**\n * @since 10.19.0\n */\n event:\n | React.MouseEvent<HTMLElement, MouseEvent>\n | React.KeyboardEvent<HTMLElement>\n /**\n * @since 10.19.0\n */\n group: boolean\n /**\n * @since 10.19.0\n */\n item: any\n /**\n * @since 10.19.0\n */\n action: 'selected' | 'unselected'\n /**\n * Indicates should focus be restored to the trigger(e.g. Button of Dropdown)\n * after activating this item. If all items return focus to the trigger once activated,\n * try just `restoreFocusOnHide` on `Dropdown` instead.\n * if it is `undefined`, it is omitted in onSelect callback.\n * @since 11.15.0\n */\n restoreFocus?: boolean\n}\n\nexport interface Reorder {\n /**\n * @since 10.19.0\n */\n draggableId: string\n /**\n * @since 10.19.0\n */\n source: {\n index: number\n droppableId: string\n }\n /**\n * @since 10.19.0\n */\n destination: {\n index: number\n droppableId: string\n }\n}\n\ntype MenuRole = 'menu' | 'listbox' | 'none'\n\nexport interface MenuProps extends Omit<Div, 'onSelect' | 'onDragEnd'> {\n /**\n * @since 10.19.0\n */\n circular?: boolean\n /**\n * Set aria-multiselectable=\"true\"\n * @since 10.19.0\n */\n multiple?: boolean\n /**\n * @since 10.19.0\n */\n onDragEnd?: (result: Reorder) => void\n /**\n * @since 10.19.0\n */\n onScrollBottom?: (e: React.UIEvent<HTMLDivElement, UIEvent>) => void\n /**\n * @since 10.19.0\n */\n onSelect?: (selection: Selection) => any\n /**\n * A menu is a widget that offers a list of choices to the user, such as a set of actions or functions.\n *\n * A listbox widget presents a list of options and allows a user to select one or more of them.\n *\n * @since 11.3.0\n */\n role?: MenuRole\n /**\n * Used when navigation in the menu is controlled by search or another input,\n * called each time virtual focus (highlighted item) is changed\n * Consider use `useMenuImperativeControlNavigation` hook.\n *\n * @since 11.5.0\n */\n onChangeActiveDescendant?: (id: string | undefined) => void\n /**\n * To override default menu navigation\n * @since 11.5.0\n */\n onKeyboardNavigation?: React.KeyboardEventHandler\n}\n\nexport interface MenuRef {\n /**\n * @since 10.19.0\n */\n el: HTMLDivElement | null\n /**\n * @since 10.19.0\n */\n highlight: (item: HTMLElement, shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlightFirst: (shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlightLast: (shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlightSelected: (shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlightSuggested: (shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlighted: () => any\n /**\n * @since 10.19.0\n */\n next: (circular?: boolean) => void\n /**\n * @since 10.19.0\n */\n prev: (circular?: boolean) => void\n /**\n * @since 10.19.0\n */\n select: (\n event:\n | React.MouseEvent<HTMLElement, MouseEvent>\n | React.KeyboardEvent<HTMLElement>\n ) => void\n /**\n * Usefully for extending navigation behavior with `onKeyboardNavigation`.\n * Pay attention that `ref` is `null` on first render.\n *\n * ```\n * onKeyboardNavigation={(e) => {\n * if (e.key === 'Right' || e.key === 'ArrowRight') {\n * return navigateRight()\n * }\n *\n * ref.defaultKeyDownNavigationHandler(e)\n * }}\n * ```\n *\n * @since 11.5.0\n */\n defaultKeyDownNavigationHandler: React.KeyboardEventHandler\n}\n\nexport interface ItemProps {\n /**\n * @since 10.19.0\n */\n item: any\n /**\n * @since 10.19.0\n */\n selected?: boolean\n /**\n * @since 10.19.0\n */\n suggested?: boolean\n /**\n * @since 10.19.0\n */\n disabled?: boolean\n /**\n * Indicates should focus be restored to the trigger(e.g. Button of Dropdown)\n * after activating this item. If all items return focus to the trigger once activated,\n * try just `restoreFocusOnHide` on `Dropdown` instead.\n * if it is `undefined`, it is omitted in onSelect callback.\n * @since 11.15.0\n */\n restoreFocus?: boolean\n}\n\nexport interface ItemWithDraggingProps extends ItemProps {\n /**\n * @since 10.19.0\n */\n droppableIn: string | string[]\n /**\n * @since 10.19.0\n */\n draggableId: string\n /**\n * @since 10.19.0\n */\n draggableIndex: number\n}\n\ninterface AnchorItemProps\n extends Omit<ItemProps, 'item'>,\n Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'onClick'> {}\n\nexport type MenuItemProps = ItemProps | ItemWithDraggingProps | AnchorItemProps\n\nexport type MenuItemDefaultElement = 'div' | 'a'\n\nexport interface GroupProps {\n /**\n * @since 10.19.0\n */\n clickable?: boolean\n /**\n * @since 10.19.0\n */\n item?: any\n}\n\nexport interface OptionsProps {\n /**\n * @since 10.19.0\n */\n children?: React.ReactNode\n /**\n * @since 10.19.0\n */\n className?: string\n}\n\nexport interface MenuSearchProps\n extends Omit<TypeaheadProps, 'onChange'>,\n TypeaheadInputProps,\n Props {\n /**\n * @since 10.19.0\n */\n i18nScope?: string\n /**\n * @since 10.21.0\n */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void\n}\n\nexport interface HeaderProps extends Props {\n /**\n * @since 10.19.0\n */\n tabIndex?: number\n}\n\nexport interface DroppableProps {\n /**\n * @since 10.19.0\n */\n id: string\n /**\n * @since 10.19.0\n */\n children: React.ReactNode\n}\n\nexport interface FooterProps extends Omit<BoxProps, 'as'> {}\n\nexport interface MenuContext {\n /**\n * @since 11.5.0\n */\n a11yOptionsProps: {\n role?: MenuRole\n onKeyboardNavigation?: React.KeyboardEventHandler | null\n tabIndex?: number\n id?: string\n }\n /**\n * @since 10.19.0\n */\n currentlyDroppableIn: string[]\n /**\n * @since 10.19.0\n */\n onHoverItem: (el?: HTMLDivElement) => void\n /**\n * @since 10.19.0\n */\n onScrollBottom: (e: React.UIEvent<HTMLDivElement, UIEvent>) => void\n /**\n * @since 10.19.0\n */\n onSelect: (selection: Selection) => void\n /**\n * @since 11.3.0\n */\n role: MenuRole\n}\n\nexport interface ControlNavigationProps {\n menuId?: MenuProps['id']\n}\n\nexport interface ControlNavigationReturn {\n menuNavigationTriggerProps: {\n 'aria-activedescendant'?: string\n 'aria-controls'?: string\n onKeyDown?: React.KeyboardEventHandler<Element>\n }\n menuProps: {\n onChangeActiveDescendant?: React.Dispatch<\n React.SetStateAction<string | undefined>\n >\n id: string\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"MenuImperative.types.js","names":[],"sources":["../../src/MenuImperative/MenuImperative.types.ts"],"sourcesContent":["import type * as React from 'react'\nimport type { BoxProps } from '../Box'\nimport type {\n TypeaheadInputProps,\n TypeaheadProps,\n} from '../Typeahead/Typeahead.types'\nimport type { Props } from '../_utils/types'\n\nexport type Ref<T> =\n | ((instance: T | null) => void)\n | React.MutableRefObject<T | null>\n | null\n\ntype Div = React.ComponentPropsWithoutRef<'div'>\n\nexport interface Selection {\n /**\n * @since 10.19.0\n */\n event:\n | React.MouseEvent<HTMLElement, MouseEvent>\n | React.KeyboardEvent<HTMLElement>\n /**\n * @since 10.19.0\n */\n group: boolean\n /**\n * @since 10.19.0\n */\n item: any\n /**\n * @since 10.19.0\n */\n action: 'selected' | 'unselected'\n /**\n * Indicates should focus be restored to the trigger(e.g. Button of Dropdown)\n * after activating this item. If all items return focus to the trigger once activated,\n * try just `restoreFocusOnHide` on `Dropdown` instead.\n * if it is `undefined`, it is omitted in onSelect callback.\n * @since 11.15.0\n */\n restoreFocus?: boolean\n}\n\nexport interface Reorder {\n /**\n * @since 10.19.0\n */\n draggableId: string\n /**\n * @since 10.19.0\n */\n source: {\n index: number\n droppableId: string\n }\n /**\n * @since 10.19.0\n */\n destination: {\n index: number\n droppableId: string\n }\n}\n\ntype MenuRole = 'menu' | 'listbox' | 'none'\n\nexport interface MenuProps extends Omit<Div, 'onSelect' | 'onDragEnd'> {\n /**\n * @since 10.19.0\n */\n circular?: boolean\n /**\n * Set aria-multiselectable=\"true\"\n * @since 10.19.0\n */\n multiple?: boolean\n /**\n * @since 10.19.0\n */\n onDragEnd?: (result: Reorder) => void\n /**\n * @since 10.19.0\n */\n onScrollBottom?: (e: React.UIEvent<HTMLDivElement, UIEvent>) => void\n /**\n * @since 10.19.0\n */\n onSelect?: (selection: Selection) => any\n /**\n * A menu is a widget that offers a list of choices to the user, such as a set of actions or functions.\n *\n * A listbox widget presents a list of options and allows a user to select one or more of them.\n *\n * @since 11.3.0\n */\n role?: MenuRole\n /**\n * Used when navigation in the menu is controlled by search or another input,\n * called each time virtual focus (highlighted item) is changed\n * Consider use `useMenuImperativeControlNavigation` hook.\n *\n * @since 11.5.0\n */\n onChangeActiveDescendant?: (id: string | undefined) => void\n /**\n * To override default menu navigation\n * @since 11.5.0\n */\n onKeyboardNavigation?: React.KeyboardEventHandler\n}\n\nexport interface MenuRef {\n /**\n * @since 10.19.0\n */\n el: HTMLDivElement | null\n /**\n * @since 10.19.0\n */\n highlight: (item: HTMLElement, shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlightFirst: (shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlightLast: (shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlightSelected: (shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlightSuggested: (shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlighted: () => any\n /**\n * @since 10.19.0\n */\n next: (circular?: boolean) => void\n /**\n * @since 10.19.0\n */\n prev: (circular?: boolean) => void\n /**\n * @since 10.19.0\n */\n select: (\n event:\n | React.MouseEvent<HTMLElement, MouseEvent>\n | React.KeyboardEvent<HTMLElement>\n ) => void\n /**\n * Usefully for extending navigation behavior with `onKeyboardNavigation`.\n * Pay attention that `ref` is `null` on first render.\n *\n * ```\n * onKeyboardNavigation={(e) => {\n * if (e.key === 'Right' || e.key === 'ArrowRight') {\n * return navigateRight()\n * }\n *\n * ref.defaultKeyDownNavigationHandler(e)\n * }}\n * ```\n *\n * @since 11.5.0\n */\n defaultKeyDownNavigationHandler: React.KeyboardEventHandler\n}\n\nexport interface ItemProps {\n /**\n * @since 10.19.0\n */\n item: any\n /**\n * @since 10.19.0\n */\n selected?: boolean\n /**\n * @since 10.19.0\n */\n suggested?: boolean\n /**\n * @since 10.19.0\n */\n disabled?: boolean\n /**\n * Indicates should focus be restored to the trigger(e.g. Button of Dropdown)\n * after activating this item. If all items return focus to the trigger once activated,\n * try just `restoreFocusOnHide` on `Dropdown` instead.\n * if it is `undefined`, it is omitted in onSelect callback.\n * @since 11.15.0\n */\n restoreFocus?: boolean\n}\n\nexport interface ItemWithDraggingProps extends ItemProps {\n /**\n * @since 10.19.0\n */\n droppableIn: string | string[]\n /**\n * @since 10.19.0\n */\n draggableId: string\n /**\n * @since 10.19.0\n */\n draggableIndex: number\n}\n\ninterface AnchorItemProps\n extends Omit<ItemProps, 'item'>,\n Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'onClick'> {}\n\nexport type MenuItemProps = ItemProps | ItemWithDraggingProps | AnchorItemProps\n\nexport type MenuItemDefaultElement = 'div' | 'a'\n\nexport interface GroupProps {\n /**\n * @since 10.19.0\n */\n clickable?: boolean\n /**\n * @since 10.19.0\n */\n item?: any\n}\n\nexport interface OptionsProps {\n /**\n * @since 10.19.0\n */\n children?: React.ReactNode\n /**\n * @since 10.19.0\n */\n className?: string\n}\n\nexport interface MenuSearchProps\n extends Omit<TypeaheadProps, 'onChange'>,\n TypeaheadInputProps,\n Props {\n /**\n * @since 10.19.0\n */\n i18nScope?: string\n /**\n * @since 10.21.0\n */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void\n /**\n * Controls the search input value. When provided, the search input becomes\n * a controlled component and the parent must manage the value state.\n * @since 12.34.0\n */\n value?: string\n}\n\nexport interface HeaderProps extends Props {\n /**\n * @since 10.19.0\n */\n tabIndex?: number\n}\n\nexport interface DroppableProps {\n /**\n * @since 10.19.0\n */\n id: string\n /**\n * @since 10.19.0\n */\n children: React.ReactNode\n}\n\nexport interface FooterProps extends Omit<BoxProps, 'as'> {}\n\nexport interface MenuContext {\n /**\n * @since 11.5.0\n */\n a11yOptionsProps: {\n role?: MenuRole\n onKeyboardNavigation?: React.KeyboardEventHandler | null\n tabIndex?: number\n id?: string\n }\n /**\n * @since 10.19.0\n */\n currentlyDroppableIn: string[]\n /**\n * @since 10.19.0\n */\n onHoverItem: (el?: HTMLDivElement) => void\n /**\n * @since 10.19.0\n */\n onScrollBottom: (e: React.UIEvent<HTMLDivElement, UIEvent>) => void\n /**\n * @since 10.19.0\n */\n onSelect: (selection: Selection) => void\n /**\n * @since 11.3.0\n */\n role: MenuRole\n}\n\nexport interface ControlNavigationProps {\n menuId?: MenuProps['id']\n}\n\nexport interface ControlNavigationReturn {\n menuNavigationTriggerProps: {\n 'aria-activedescendant'?: string\n 'aria-controls'?: string\n onKeyDown?: React.KeyboardEventHandler<Element>\n }\n menuProps: {\n onChangeActiveDescendant?: React.Dispatch<\n React.SetStateAction<string | undefined>\n >\n id: string\n }\n}\n"],"mappings":""}
@@ -16,7 +16,7 @@ export declare const UNSAFE_Menu: import("react").ForwardRefExoticComponent<impo
16
16
  Item: import("../_utils/polymorphic").PolymorphicAs.ComponentWithForwardedRef<import("./MenuImperative.types").MenuItemProps, import("./MenuImperative.types").MenuItemDefaultElement>;
17
17
  Options: import("react").ForwardRefExoticComponent<import("./MenuImperative.types").OptionsProps & import("react").RefAttributes<HTMLDivElement>>;
18
18
  Search: {
19
- ({ className, i18nScope, placeholder, onChange: _onChange, ...props }: import("./MenuImperative.types").MenuSearchProps): import("react").JSX.Element;
19
+ ({ className, i18nScope, placeholder, onChange: _onChange, value: valueProp, ...props }: import("./MenuImperative.types").MenuSearchProps): import("react").JSX.Element;
20
20
  displayName: string;
21
21
  };
22
22
  };
@@ -32,15 +32,15 @@ var screenWidthPixelBreakpoints = {
32
32
  };
33
33
  export var StyledModal = /*#__PURE__*/styled.div.withConfig({
34
34
  displayName: "StyledModal",
35
- componentId: "core-12_33_0__sc-1ijdug2-0"
35
+ componentId: "core-12_34_1__sc-1ijdug2-0"
36
36
  })(["display:flex;height:100vh;position:absolute;opacity:0;transition:0.3s opacity ease;width:100vw;z-index:0;pointer-events:none;&.", "{opacity:1;pointer-events:auto;}&.", "{opacity:0;pointer-events:none;}"], fadeInClassName, fadeOutClassName);
37
37
  export var StyledModalButtons = /*#__PURE__*/styled.div.withConfig({
38
38
  displayName: "StyledModalButtons",
39
- componentId: "core-12_33_0__sc-1ijdug2-1"
39
+ componentId: "core-12_34_1__sc-1ijdug2-1"
40
40
  })(["display:flex;flex:0 0 auto;margin-left:", "px;> * + *{margin-left:", "px;}"], spacing.lg, spacing.sm);
41
41
  export var StyledModalContainer = /*#__PURE__*/styled(Card).withConfig({
42
42
  displayName: "StyledModalContainer",
43
- componentId: "core-12_33_0__sc-1ijdug2-2"
43
+ componentId: "core-12_34_1__sc-1ijdug2-2"
44
44
  })(["display:flex;flex-direction:row;position:absolute;z-index:2;", " ", " ", ""], function (_ref) {
45
45
  var $compact = _ref.$compact;
46
46
  if (!$compact) {
@@ -64,11 +64,11 @@ export var StyledModalContainer = /*#__PURE__*/styled(Card).withConfig({
64
64
  });
65
65
  export var StyledModalFooter = /*#__PURE__*/styled.div.withConfig({
66
66
  displayName: "StyledModalFooter",
67
- componentId: "core-12_33_0__sc-1ijdug2-3"
67
+ componentId: "core-12_34_1__sc-1ijdug2-3"
68
68
  })(["align-items:center;display:flex;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end;padding:", "px ", "px ", "px;"], spacing.xl, spacing.xxl, spacing.xxl);
69
69
  export var StyledModalBody = /*#__PURE__*/styled.div.withConfig({
70
70
  displayName: "StyledModalBody",
71
- componentId: "core-12_33_0__sc-1ijdug2-4"
71
+ componentId: "core-12_34_1__sc-1ijdug2-4"
72
72
  })(["", " &:focus-visible{", "}box-sizing:border-box;color:", ";display:flex;flex-direction:column;overflow:auto;", " ", " > ", "{padding-left:0;padding-right:0;&:first-child > ", "{padding-top:0;}}", ""], getTypographyIntent('body'), getFocusInset(), colors.gray15, function (_ref4) {
73
73
  var $noSideSpacing = _ref4.$noSideSpacing;
74
74
  return css(["padding:", "px ", "px;"], spacing.xl, $noSideSpacing ? 0 : spacing.xxl);
@@ -85,7 +85,7 @@ export var StyledModalBody = /*#__PURE__*/styled.div.withConfig({
85
85
  });
86
86
  export var StyledModalContent = /*#__PURE__*/styled.div.withConfig({
87
87
  displayName: "StyledModalContent",
88
- componentId: "core-12_33_0__sc-1ijdug2-5"
88
+ componentId: "core-12_34_1__sc-1ijdug2-5"
89
89
  })(["display:flex;flex-direction:column;max-height:90vh;overflow:hidden;width:100%;", ""], function (_ref7) {
90
90
  var _ref7$$compact = _ref7.$compact,
91
91
  $compact = _ref7$$compact === void 0 ? false : _ref7$$compact;
@@ -96,11 +96,11 @@ export var StyledModalContent = /*#__PURE__*/styled.div.withConfig({
96
96
  });
97
97
  export var StyledModalFooterNotation = /*#__PURE__*/styled(Typography).withConfig({
98
98
  displayName: "StyledModalFooterNotation",
99
- componentId: "core-12_33_0__sc-1ijdug2-6"
99
+ componentId: "core-12_34_1__sc-1ijdug2-6"
100
100
  })(["flex-grow:1;"]);
101
101
  export var StyledModalHeader = /*#__PURE__*/styled.div.withConfig({
102
102
  displayName: "StyledModalHeader",
103
- componentId: "core-12_33_0__sc-1ijdug2-7"
103
+ componentId: "core-12_34_1__sc-1ijdug2-7"
104
104
  })(["align-items:flex-start;color:", ";display:flex;flex:0 0 auto;position:relative;", " ", ""], colors.gray10, function (_ref8) {
105
105
  var $compact = _ref8.$compact,
106
106
  $isBodyScrolled = _ref8.$isBodyScrolled;
@@ -118,7 +118,7 @@ export var StyledModalHeader = /*#__PURE__*/styled.div.withConfig({
118
118
  });
119
119
  export var StyledModalHeading = /*#__PURE__*/styled.div.withConfig({
120
120
  displayName: "StyledModalHeading",
121
- componentId: "core-12_33_0__sc-1ijdug2-8"
121
+ componentId: "core-12_34_1__sc-1ijdug2-8"
122
122
  })(["", " align-items:center;display:flex;flex:1 1 auto;min-height:36px;padding-right:", "px;", ""], function (_ref0) {
123
123
  var $compact = _ref0.$compact;
124
124
  return getTypographyIntent($compact ? 'h3' : 'h2');
@@ -134,18 +134,18 @@ export var StyledModalHeading = /*#__PURE__*/styled.div.withConfig({
134
134
  });
135
135
  export var StyledModalCancel = /*#__PURE__*/styled.div.withConfig({
136
136
  displayName: "StyledModalCancel",
137
- componentId: "core-12_33_0__sc-1ijdug2-9"
137
+ componentId: "core-12_34_1__sc-1ijdug2-9"
138
138
  })(["flex:0 0 auto;"]);
139
139
  export var StyledModalScrim = /*#__PURE__*/styled.div.withConfig({
140
140
  displayName: "StyledModalScrim",
141
- componentId: "core-12_33_0__sc-1ijdug2-10"
141
+ componentId: "core-12_34_1__sc-1ijdug2-10"
142
142
  })(["background:hsla(200,8%,10%,0.6);height:100vh;left:0;position:absolute;top:0;width:100vw;z-index:1;"]);
143
143
  export var StyledModalWarningIcon = /*#__PURE__*/styled(Warning).withConfig({
144
144
  displayName: "StyledModalWarningIcon",
145
- componentId: "core-12_33_0__sc-1ijdug2-11"
145
+ componentId: "core-12_34_1__sc-1ijdug2-11"
146
146
  })(["color:", ";margin-right:", "px;"], colors.yellow40, spacing.sm);
147
147
  export var StyledModalFooterSummary = /*#__PURE__*/styled.div.withConfig({
148
148
  displayName: "StyledModalFooterSummary",
149
- componentId: "core-12_33_0__sc-1ijdug2-12"
149
+ componentId: "core-12_34_1__sc-1ijdug2-12"
150
150
  })(["", " border-top:1px solid ", ";border-bottom:1px solid ", ";padding:", "px ", "px;color:", ";font-style:italic;background-color:", ";margin:-", "px -", "px ", "px -", "px;flex:1 1 100%;"], getTypographyIntent('small'), colors.gray85, colors.gray85, spacing.md, spacing.xxl, colors.gray15, colors.gray98, spacing.xl, spacing.xxl, spacing.xl, spacing.xxl);
151
151
  //# sourceMappingURL=Modal.styles.js.map
@@ -21,6 +21,7 @@ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i
21
21
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
22
22
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
23
23
  import { Clear } from '@procore/core-icons/dist';
24
+ import { useId } from '@react-aria/utils';
24
25
  import React from 'react';
25
26
  import { Box } from '../Box';
26
27
  import { MenuImperative, useMenuImperativeControlNavigation } from '../MenuImperative/MenuImperative';
@@ -380,6 +381,9 @@ var MultiSelect_ = /*#__PURE__*/React.forwardRef(function MultiSelect(_ref7, ref
380
381
  var targetRef = ref || ownRef;
381
382
  var searchRef = React.useRef(null);
382
383
  var menuRef = React.useRef(null);
384
+ var menuId = useId();
385
+ var tokenListId = useId();
386
+ var tokenBaseId = useId();
383
387
  var _React$useState5 = React.useState(false),
384
388
  _React$useState6 = _slicedToArray(_React$useState5, 2),
385
389
  isMenuOpen = _React$useState6[0],
@@ -404,10 +408,12 @@ var MultiSelect_ = /*#__PURE__*/React.forwardRef(function MultiSelect(_ref7, ref
404
408
  });
405
409
  var hasClearIcon = value.length > 0 && !loading;
406
410
  var isNavigatingTokens = multiselect.index !== null;
411
+ var activeTokenId = isNavigatingTokens ? "".concat(tokenBaseId, "-").concat(multiselect.index) : undefined;
407
412
  var overlay = /*#__PURE__*/React.createElement(StyledMultiSelectMenu, {
408
413
  shadowStrength: 2
409
414
  }, /*#__PURE__*/React.createElement(MenuImperative, _extends({}, menuProps, {
410
415
  ref: menuRef,
416
+ id: menuId,
411
417
  onScrollBottom: onScrollBottom,
412
418
  onSelect: multiselect.onSelect,
413
419
  "data-qa": "multi-select-menu",
@@ -473,9 +479,20 @@ var MultiSelect_ = /*#__PURE__*/React.forwardRef(function MultiSelect(_ref7, ref
473
479
  $hasClearIcon: hasClearIcon,
474
480
  $loading: loading,
475
481
  $open: isVisible
476
- }, props), /*#__PURE__*/React.createElement(StyledMultiSelectValues, null, value.map(function (selection, i) {
482
+ }, props), /*#__PURE__*/React.createElement(StyledMultiSelectValues, {
483
+ id: tokenListId,
484
+ role: "list",
485
+ "aria-label": I18n.t('core.multiSelect.selectedItems')
486
+ }, value.map(function (selection, i) {
487
+ var tokenId = "".concat(tokenBaseId, "-").concat(i);
488
+ var tokenLabel = getLabel(selection);
477
489
  return /*#__PURE__*/React.createElement(StyledMultiSelectToken, {
478
- key: getId(selection)
490
+ key: getId(selection),
491
+ id: tokenId,
492
+ role: "listitem",
493
+ "aria-label": typeof tokenLabel === 'string' ? I18n.t('core.multiSelect.selectedToken', {
494
+ tokenLabel: tokenLabel
495
+ }) : undefined
479
496
  }, tokenRenderer({
480
497
  option: selection,
481
498
  focused: i === multiselect.index,
@@ -487,8 +504,12 @@ var MultiSelect_ = /*#__PURE__*/React.forwardRef(function MultiSelect(_ref7, ref
487
504
  qa: qa
488
505
  }));
489
506
  }), /*#__PURE__*/React.createElement(StyledMultiSelectSearch, null, /*#__PURE__*/React.createElement(StyledMultiSelectSearchInput, _extends({
507
+ "aria-activedescendant": activeTokenId,
508
+ "aria-controls": isNavigatingTokens ? tokenListId : menuId,
509
+ "aria-expanded": isVisible,
490
510
  "aria-labelledby": ariaLabelledBy,
491
511
  "data-qa": "core-multiselect-input",
512
+ role: "combobox",
492
513
  $isNavigatingTokens: isNavigatingTokens,
493
514
  disabled: disabled,
494
515
  onBlur: multiselect.clearToken,
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelect.js","names":["Clear","React","Box","MenuImperative","useMenuImperativeControlNavigation","OverlayTrigger","Spinner","Token","Typography","isEventSource","useI18nContext","addSubcomponents","StyledMultiSelectArrow","StyledMultiSelectArrowContainer","StyledMultiSelectButton","StyledMultiSelectClearIcon","StyledMultiSelectMenu","StyledMultiSelectSearch","StyledMultiSelectSearchIcon","StyledMultiSelectSearchInput","StyledMultiSelectToken","StyledMultiSelectValues","targetShowKeys","targetHideKeys","overlayHideKeys","emptyArray","noop","returnTrue","isAlphaNumeric","str","length","match","setFocusTo","ref","current","focus","isOption","obj","_typeof","type","Option","defaultIsOptionDisabled","defaultGetId","item","id","defaultGetLabel","label","defaultGetGroup","groupId","defaultIsSelectable","defaultOptionRenderer","_ref","_qa$option","getId","getLabel","qa","value","props","_objectWithoutProperties","_excluded","createElement","_extends","key","option","call","defaultGroupHeaderRenderer","group","Group","concat","clickable","defaultTokenRenderer","_ref2","_qa$token","_qa$tokenClear","focused","disabled","removeToken","token","Label","Remove","onClick","tokenClear","useMultiSelect","_ref3","getGroup","menuRef","_ref3$onChange","onChange","onSearch_","onSearch","options_","options","optgroups","_React$useState","useState","_React$useState2","_slicedToArray","index","setIndex","_React$useState3","_React$useState4","search","setSearch","valueIds","reduce","acc","cur","add","Set","count","useMemo","filter","opt","toLowerCase","includes","useCallback","e","target","setTimeout","_menuRef$current","highlightFirst","clearToken","removeSelection","selection","selected","s","onSelect","newSelected","has","_toConsumableArray","i","decrementToken","Math","max","incrementToken","onKeyDown","event","_menuRef$current2","select","_menuRef$current3","prev","_menuRef$current4","next","repeat","useEffect","groupedOptions","optionsByGroup","_ref4","_objectSpread","_defineProperty","orphanOptions","forEach","groupOptions","push","console","warn","flatMap","groupHeader","isGroupHeader","ids","domHandlers","forwardRef","_ref5","_excluded2","Item","GroupedOptions","_ref6","multiselect","groupHeaderRenderer","optionRenderer","isOptionDisabled","Options","map","MultiSelect_","MultiSelect","_ref7","_ref7$afterHide","afterHide","_ref7$afterShow","afterShow","_ref7$beforeHide","beforeHide","_ref7$beforeShow","beforeShow","_ref7$block","block","_ref7$disabled","emptyMessage","_ref7$error","error","footer","_ref7$getId","_ref7$getLabel","_ref7$getGroup","_ref7$loading","loading","_ref7$onChange","onScrollBottom","_ref7$options","_ref7$isOptionDisable","_ref7$optionRenderer","_ref7$groupHeaderRend","_ref7$tokenRenderer","tokenRenderer","placeholder","_ref7$placement","placement","_ref7$value","_ref7$tabIndex","tabIndex","ariaLabelledBy","_ref7$qa","_excluded3","i18n","ownRef","useRef","targetRef","searchRef","_React$useState5","_React$useState6","isMenuOpen","setIsMenuOpen","_useMenuImperativeCon","menuNavigationTriggerProps","menuProps","I18n","hasClearIcon","isNavigatingTokens","overlay","shadowStrength","role","padding","color","intent","italic","t","Footer","canFlip","_menuRef$current5","MouseEvent","hideKeys","showKeys","trigger","_ref8","disable","enable","isVisible","$block","$error","$emptyValue","$disabled","$hasClearIcon","$loading","$open","$isNavigatingTokens","onBlur","preventDefault","stopPropagation","size","variant","icon","displayName"],"sources":["../../src/MultiSelect/MultiSelect.tsx"],"sourcesContent":["import { Clear } from '@procore/core-icons/dist'\nimport React from 'react'\nimport { Box } from '../Box'\nimport {\n MenuImperative,\n useMenuImperativeControlNavigation,\n} from '../MenuImperative/MenuImperative'\nimport type { MenuRef, Selection } from '../MenuImperative/MenuImperative.types'\nimport { OverlayTrigger } from '../OverlayTrigger'\nimport { Spinner } from '../Spinner'\nimport { Token } from '../Token'\nimport { Typography } from '../Typography'\nimport { isEventSource } from '../_hooks/ClickOutside'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport {\n StyledMultiSelectArrow,\n StyledMultiSelectArrowContainer,\n StyledMultiSelectButton,\n StyledMultiSelectClearIcon,\n StyledMultiSelectMenu,\n StyledMultiSelectSearch,\n StyledMultiSelectSearchIcon,\n StyledMultiSelectSearchInput,\n StyledMultiSelectToken,\n StyledMultiSelectValues,\n} from './MultiSelect.styles'\nimport type {\n ChangeEvent,\n GroupedOptionsProps,\n GroupHeader,\n GroupItem,\n MultiSelectConfig,\n MultiSelectHook,\n MultiSelectOptionProps,\n MultiSelectOptionRendererProps,\n MultiSelectProps,\n MultiSelectTokenRendererProps,\n OptionItem,\n} from './MultiSelect.types'\n\nconst targetShowKeys = ['ArrowDown', 'Down']\n\nconst targetHideKeys = ['Esc', 'Escape']\n\nconst overlayHideKeys = targetHideKeys\n\nconst emptyArray: OptionItem[] = []\n\nfunction noop() {}\n\nfunction returnTrue() {\n return true\n}\n\nfunction isAlphaNumeric(str: string) {\n return str.length === 1 && str.match(/[A-Za-z0-9 _.,!\"'/$]*/i)\n}\n\nfunction setFocusTo(ref: React.RefObject<HTMLElement>) {\n if (ref.current) {\n ref.current.focus()\n }\n}\n\nfunction isOption(obj: React.ReactChild) {\n return typeof obj === 'object' && obj.type === Option\n}\n\nfunction defaultIsOptionDisabled() {\n return false\n}\n\nfunction defaultGetId(item: OptionItem) {\n return item.id\n}\n\nfunction defaultGetLabel(item: OptionItem) {\n return item.label\n}\n\nfunction defaultGetGroup(item: OptionItem) {\n return item.groupId\n}\n\nfunction defaultIsSelectable(obj: React.ReactChild) {\n typeof obj === 'object' && obj.type === Option\n}\n\nfunction defaultOptionRenderer(\n item: OptionItem,\n { getId, getLabel, qa, value, ...props }: MultiSelectOptionRendererProps\n) {\n return (\n <Option\n key={getId(item)}\n value={value || item}\n data-qa={qa?.option?.(item)}\n {...props}\n >\n {getLabel(item)}\n </Option>\n )\n}\n\nfunction defaultGroupHeaderRenderer(group: GroupItem) {\n return (\n <MenuImperative.Group key={`group_${group.id}`} clickable={false}>\n {group.label}\n </MenuImperative.Group>\n )\n}\n\nfunction defaultTokenRenderer({\n focused,\n disabled,\n option,\n removeToken,\n getLabel,\n qa,\n}: MultiSelectTokenRendererProps) {\n return (\n <Token disabled={disabled} focused={focused} data-qa={qa?.token?.(option)}>\n <Token.Label>{getLabel(option)}</Token.Label>\n <Token.Remove\n data-close\n onClick={removeToken}\n data-qa={qa?.tokenClear?.(option)}\n />\n </Token>\n )\n}\n\nfunction useMultiSelect({\n getId,\n getLabel,\n getGroup,\n menuRef,\n onChange = noop,\n onSearch: onSearch_,\n options: options_,\n value,\n optgroups,\n}: MultiSelectConfig): MultiSelectHook {\n const [index, setIndex] = React.useState<number | null>(null)\n\n const [search, setSearch] = React.useState<string>('')\n\n const valueIds = value.reduce<Set<number | string>>((acc, cur) => {\n acc.add(getId(cur))\n\n return acc\n }, new Set())\n\n const count = value.length\n\n const options = React.useMemo(\n function () {\n if (onSearch_) {\n return options_\n }\n\n return options_.filter((opt) =>\n getLabel(opt).toLowerCase().includes(search.toLowerCase())\n )\n },\n [options_, onSearch_, getLabel, search]\n )\n\n const onSearch = React.useCallback(\n function (e: ChangeEvent) {\n if (onSearch_) {\n onSearch_(e)\n }\n\n setSearch(e.target.value)\n\n // TODO: because menu highlighting is now imperative, we have to wait\n // for a render to highlight the first item. Is there a better way\n // to schedule this?\n setTimeout(() => menuRef.current?.highlightFirst(), 0)\n },\n [menuRef, onSearch_]\n )\n\n const clearToken = () => setIndex(null)\n\n const removeSelection = React.useCallback(\n function (selection: OptionItem, selected: OptionItem[]) {\n return selected.filter((s) => getId(s) !== getId(selection))\n },\n [getId]\n )\n\n const onSelect = React.useCallback(\n (selection: Selection) => {\n const newSelected = valueIds.has(getId(selection.item))\n ? removeSelection(selection.item, value)\n : [...value, selection.item]\n\n setSearch('')\n\n onChange(newSelected)\n },\n [setSearch, onChange, getId, removeSelection, value, valueIds]\n )\n\n const removeToken = React.useCallback(\n function (i: number) {\n onChange(removeSelection(value[i], value))\n },\n [value, onChange, removeSelection]\n )\n\n const decrementToken = React.useCallback(\n function () {\n if (index === null) {\n // index is null, set it to the last token index\n setIndex(count - 1)\n } else {\n // decrementToken by one, don't go below 0\n setIndex(Math.max(0, index - 1))\n }\n },\n [count, index, setIndex]\n )\n\n const incrementToken = React.useCallback(\n function () {\n if (index === count - 1) {\n setIndex(null)\n } else if (index !== null) {\n setIndex(index + 1)\n }\n },\n [count, index, setIndex]\n )\n\n const onKeyDown = React.useCallback(\n function (event: React.KeyboardEvent<HTMLInputElement>) {\n if (event.key === 'Enter') {\n menuRef.current?.select(event)\n }\n\n if (event.key === 'ArrowUp' || event.key === 'Up') {\n menuRef.current?.prev()\n }\n\n if (event.key === 'ArrowDown' || event.key === 'Down') {\n menuRef.current?.next()\n }\n\n if (search === '') {\n if (event.key === 'Backspace') {\n // to prevent accidentally deleting too many tokens, don't do anything\n // on repeating key events\n if (event.repeat) {\n return\n }\n\n // if we are focused on a token, remove it, otherwise remove the last token\n removeToken(index !== null ? index : count - 1)\n\n if (count >= 1) {\n decrementToken()\n } else {\n clearToken()\n }\n }\n\n if (event.key === 'ArrowLeft' || event.key === 'Left') {\n decrementToken()\n }\n\n if (event.key === 'ArrowRight' || event.key === 'Right') {\n incrementToken()\n }\n }\n },\n [count, decrementToken, incrementToken, index, menuRef, removeToken, search]\n )\n\n React.useEffect(\n function () {\n // if we've deleted a token and our new count is less than\n // our current index, clear the index\n if (count <= (index || 0)) {\n clearToken()\n }\n },\n [count, index]\n )\n\n const groupedOptions = React.useMemo(() => {\n if (!optgroups || !optgroups.length) {\n return options\n }\n\n const optionsByGroup: Record<string, (OptionItem | GroupHeader)[]> =\n optgroups.reduce((acc, { id }) => {\n return {\n ...acc,\n [id]: [],\n }\n }, {})\n\n const orphanOptions = [] as OptionItem[]\n\n options.forEach((option) => {\n const groupId = getGroup(option)\n const groupOptions = optionsByGroup[groupId]\n\n if (!groupId || !groupOptions) {\n orphanOptions.push(option)\n return\n }\n\n optionsByGroup[groupId].push(option)\n })\n\n if (orphanOptions.length) {\n console.warn(\n `Could not find option groups for the options below. Make sure that every option has a proper \"groupId\" field or if \"getGroup\" is implemented correctly.`,\n orphanOptions\n )\n }\n\n return optgroups.flatMap((group: GroupItem) => {\n const groupHeader = { ...group, isGroupHeader: true }\n const groupOptions = optionsByGroup[group.id]\n\n if (!groupOptions.length) {\n return []\n }\n\n return [groupHeader, ...groupOptions]\n }, [])\n }, [options, getGroup, optgroups])\n\n return {\n ids: valueIds,\n index,\n menuRef,\n options: groupedOptions,\n search,\n\n clearToken,\n decrementToken,\n incrementToken,\n onSearch,\n onSelect,\n removeToken,\n\n domHandlers: {\n onKeyDown,\n },\n }\n}\n\nexport const Option = React.forwardRef<HTMLDivElement, MultiSelectOptionProps>(\n function Option({ value, ...props }, ref) {\n return <MenuImperative.Item ref={ref} {...props} item={value} />\n }\n)\n\nfunction GroupedOptions({\n multiselect,\n groupHeaderRenderer,\n optionRenderer,\n getId,\n getLabel,\n isOptionDisabled,\n qa,\n}: GroupedOptionsProps) {\n return (\n <MenuImperative.Options>\n {multiselect.options.map((opt) => {\n if (opt.isGroupHeader) {\n const groupHeader: GroupHeader = opt\n return groupHeaderRenderer(groupHeader)\n }\n\n return optionRenderer(opt, {\n getId,\n getLabel,\n // @ts-ignore\n // Object literal may only specify known properties, and 'key' does not exist in type 'OptionRendererProps'.\n key: getId(opt),\n selected: multiselect.ids.has(getId(opt)),\n disabled: isOptionDisabled(opt),\n value: opt,\n qa,\n })\n })}\n </MenuImperative.Options>\n )\n}\n\n/**\n\n Multi selects allow our users to choose one to many options from a list,\n presented in a dropdown. We typically see these selects on forms.\n\n Other select components are group select, select, and tiered select.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_multiselect--basic)\n\n @see [Design Guidelines](https://design.procore.com/multi-select)\n\n */\nconst MultiSelect_ = React.forwardRef<HTMLDivElement, MultiSelectProps>(\n function MultiSelect(\n {\n afterHide = noop,\n afterShow = noop,\n beforeHide = returnTrue,\n beforeShow = returnTrue,\n block = false,\n disabled = false,\n emptyMessage,\n error = false,\n footer,\n getId = defaultGetId,\n getLabel = defaultGetLabel,\n getGroup = defaultGetGroup,\n loading = false,\n onChange = noop,\n onScrollBottom,\n onSearch,\n options = emptyArray,\n isOptionDisabled = defaultIsOptionDisabled,\n optionRenderer = defaultOptionRenderer,\n optgroups,\n groupHeaderRenderer = defaultGroupHeaderRenderer,\n tokenRenderer = defaultTokenRenderer,\n placeholder,\n placement = 'bottom-left',\n value = emptyArray,\n tabIndex = 0,\n ['aria-labelledby']: ariaLabelledBy,\n qa = {},\n ...props\n },\n ref\n ) {\n const i18n = useI18nContext()\n const ownRef = React.useRef<HTMLDivElement>()\n const targetRef = (ref as React.RefObject<HTMLDivElement>) || ownRef\n\n const searchRef = React.useRef<HTMLInputElement>(null)\n\n const menuRef = React.useRef<MenuRef | null>(null)\n const [isMenuOpen, setIsMenuOpen] = React.useState(false)\n const { menuNavigationTriggerProps, menuProps } =\n useMenuImperativeControlNavigation(menuRef, isMenuOpen)\n\n const I18n = useI18nContext()\n\n const multiselect = useMultiSelect({\n getId,\n getLabel,\n getGroup,\n menuRef,\n onSearch,\n options,\n onChange: function (value) {\n onChange(value)\n\n setFocusTo(searchRef)\n },\n value,\n optgroups,\n })\n\n const hasClearIcon = value.length > 0 && !loading\n\n const isNavigatingTokens = multiselect.index !== null\n\n const overlay = (\n <StyledMultiSelectMenu shadowStrength={2}>\n <MenuImperative\n {...menuProps}\n ref={menuRef}\n onScrollBottom={onScrollBottom}\n onSelect={multiselect.onSelect}\n data-qa=\"multi-select-menu\"\n role=\"listbox\"\n >\n {multiselect.options.length ? (\n <GroupedOptions\n multiselect={multiselect}\n getId={getId}\n getLabel={getLabel}\n isOptionDisabled={isOptionDisabled}\n groupHeaderRenderer={groupHeaderRenderer}\n optionRenderer={optionRenderer}\n qa={qa}\n />\n ) : (\n <Box padding=\"md lg\">\n <Typography color=\"gray45\" intent=\"small\" italic>\n {emptyMessage || I18n.t('core.multiSelect.noResults')}\n </Typography>\n </Box>\n )}\n {footer && <MenuImperative.Footer>{footer}</MenuImperative.Footer>}\n </MenuImperative>\n </StyledMultiSelectMenu>\n )\n\n return (\n <OverlayTrigger\n canFlip={true}\n afterHide={() => {\n multiselect.clearToken()\n setIsMenuOpen(false)\n\n afterHide()\n }}\n afterShow={() => {\n multiselect.clearToken()\n\n menuRef.current?.highlightFirst()\n setIsMenuOpen(true)\n\n afterShow()\n }}\n beforeHide={(e) => {\n // if we are clicking somewhere in the target, set focus on the search\n if (e instanceof MouseEvent && isEventSource(targetRef, e)) {\n setFocusTo(searchRef)\n }\n\n return beforeHide(e)\n }}\n beforeShow={(e) => {\n setFocusTo(searchRef)\n\n return beforeShow(e)\n }}\n hideKeys={{\n overlay: overlayHideKeys,\n target: targetHideKeys,\n }}\n overlay={overlay}\n placement={placement}\n ref={targetRef}\n showKeys={targetShowKeys}\n trigger=\"click\"\n >\n {({ disable, enable, isVisible }) => {\n return (\n <StyledMultiSelectButton\n $block={block}\n $error={error}\n $emptyValue={value.length === 0}\n $disabled={disabled}\n $hasClearIcon={hasClearIcon}\n $loading={loading}\n $open={isVisible}\n {...props}\n >\n <StyledMultiSelectValues>\n {value.map((selection, i) => {\n return (\n <StyledMultiSelectToken key={getId(selection)}>\n {tokenRenderer({\n option: selection,\n focused: i === multiselect.index,\n disabled: disabled,\n getLabel,\n removeToken: function () {\n multiselect.removeToken(i)\n },\n qa,\n })}\n </StyledMultiSelectToken>\n )\n })}\n\n <StyledMultiSelectSearch>\n <StyledMultiSelectSearchInput\n aria-labelledby={ariaLabelledBy}\n data-qa=\"core-multiselect-input\"\n $isNavigatingTokens={isNavigatingTokens}\n disabled={disabled}\n onBlur={multiselect.clearToken}\n onChange={function (\n e: React.ChangeEvent<HTMLInputElement>\n ) {\n multiselect.onSearch(e)\n }}\n {...menuNavigationTriggerProps}\n onKeyDown={function (\n e: React.KeyboardEvent<HTMLInputElement>\n ) {\n if (isNavigatingTokens && e.key !== 'Tab') {\n // if we are navigating tokens don't do any input but allow Tab\n e.preventDefault()\n }\n\n if (isVisible) {\n // if the overlay is visible, close it and keep focus\n if (e.key === 'Tab') {\n e.preventDefault()\n\n disable(e)\n }\n // if open, don't notify parents (like Modal) but still let OverlayTrigger close it and keep it focus\n if (e.key === 'Esc' || e.key === 'Escape') {\n e.stopPropagation()\n disable(e)\n }\n } else {\n // if we type in an alphanumeric character, show the overlay\n if (isAlphaNumeric(e.key)) {\n enable(e)\n }\n }\n\n multiselect.domHandlers.onKeyDown(e)\n }}\n placeholder={\n value?.length > 0\n ? ''\n : placeholder ?? I18n.t('core.multiSelect.selectValues')\n }\n ref={searchRef}\n tabIndex={tabIndex}\n value={multiselect.search}\n />\n </StyledMultiSelectSearch>\n </StyledMultiSelectValues>\n <StyledMultiSelectSearchIcon>\n <StyledMultiSelectClearIcon\n aria-label={i18n.t('core.multiSelect.clearAll')}\n data-close\n data-qa=\"core-multiselect-clear\"\n size=\"sm\"\n variant=\"tertiary\"\n disabled={disabled}\n icon={<Clear />}\n onClick={() => onChange([])}\n tabIndex={-1} // TODO revisit this accessibility\n />\n {loading ? (\n <Spinner color=\"blue50\" size=\"xs\" />\n ) : (\n <StyledMultiSelectArrowContainer\n data-qa=\"multiselect-select-arrow\"\n onClick={(e: React.MouseEvent) => isVisible && disable(e)}\n >\n <StyledMultiSelectArrow />\n </StyledMultiSelectArrowContainer>\n )}\n </StyledMultiSelectSearchIcon>\n </StyledMultiSelectButton>\n )\n }}\n </OverlayTrigger>\n )\n }\n)\n\nMultiSelect_.displayName = 'MultiSelect'\n\n/**\n * @see [Storybook](https://procore.github.io/core/latest/?path=/story/demos-multiselect--demo)\n * @see [Design Guidelines](https://design.procore.com/multi-select)\n */\nexport const MultiSelect = addSubcomponents(\n {\n Option,\n },\n MultiSelect_\n)\n"],"mappings":"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"}
1
+ {"version":3,"file":"MultiSelect.js","names":["Clear","useId","React","Box","MenuImperative","useMenuImperativeControlNavigation","OverlayTrigger","Spinner","Token","Typography","isEventSource","useI18nContext","addSubcomponents","StyledMultiSelectArrow","StyledMultiSelectArrowContainer","StyledMultiSelectButton","StyledMultiSelectClearIcon","StyledMultiSelectMenu","StyledMultiSelectSearch","StyledMultiSelectSearchIcon","StyledMultiSelectSearchInput","StyledMultiSelectToken","StyledMultiSelectValues","targetShowKeys","targetHideKeys","overlayHideKeys","emptyArray","noop","returnTrue","isAlphaNumeric","str","length","match","setFocusTo","ref","current","focus","isOption","obj","_typeof","type","Option","defaultIsOptionDisabled","defaultGetId","item","id","defaultGetLabel","label","defaultGetGroup","groupId","defaultIsSelectable","defaultOptionRenderer","_ref","_qa$option","getId","getLabel","qa","value","props","_objectWithoutProperties","_excluded","createElement","_extends","key","option","call","defaultGroupHeaderRenderer","group","Group","concat","clickable","defaultTokenRenderer","_ref2","_qa$token","_qa$tokenClear","focused","disabled","removeToken","token","Label","Remove","onClick","tokenClear","useMultiSelect","_ref3","getGroup","menuRef","_ref3$onChange","onChange","onSearch_","onSearch","options_","options","optgroups","_React$useState","useState","_React$useState2","_slicedToArray","index","setIndex","_React$useState3","_React$useState4","search","setSearch","valueIds","reduce","acc","cur","add","Set","count","useMemo","filter","opt","toLowerCase","includes","useCallback","e","target","setTimeout","_menuRef$current","highlightFirst","clearToken","removeSelection","selection","selected","s","onSelect","newSelected","has","_toConsumableArray","i","decrementToken","Math","max","incrementToken","onKeyDown","event","_menuRef$current2","select","_menuRef$current3","prev","_menuRef$current4","next","repeat","useEffect","groupedOptions","optionsByGroup","_ref4","_objectSpread","_defineProperty","orphanOptions","forEach","groupOptions","push","console","warn","flatMap","groupHeader","isGroupHeader","ids","domHandlers","forwardRef","_ref5","_excluded2","Item","GroupedOptions","_ref6","multiselect","groupHeaderRenderer","optionRenderer","isOptionDisabled","Options","map","MultiSelect_","MultiSelect","_ref7","_ref7$afterHide","afterHide","_ref7$afterShow","afterShow","_ref7$beforeHide","beforeHide","_ref7$beforeShow","beforeShow","_ref7$block","block","_ref7$disabled","emptyMessage","_ref7$error","error","footer","_ref7$getId","_ref7$getLabel","_ref7$getGroup","_ref7$loading","loading","_ref7$onChange","onScrollBottom","_ref7$options","_ref7$isOptionDisable","_ref7$optionRenderer","_ref7$groupHeaderRend","_ref7$tokenRenderer","tokenRenderer","placeholder","_ref7$placement","placement","_ref7$value","_ref7$tabIndex","tabIndex","ariaLabelledBy","_ref7$qa","_excluded3","i18n","ownRef","useRef","targetRef","searchRef","menuId","tokenListId","tokenBaseId","_React$useState5","_React$useState6","isMenuOpen","setIsMenuOpen","_useMenuImperativeCon","menuNavigationTriggerProps","menuProps","I18n","hasClearIcon","isNavigatingTokens","activeTokenId","undefined","overlay","shadowStrength","role","padding","color","intent","italic","t","Footer","canFlip","_menuRef$current5","MouseEvent","hideKeys","showKeys","trigger","_ref8","disable","enable","isVisible","$block","$error","$emptyValue","$disabled","$hasClearIcon","$loading","$open","tokenId","tokenLabel","$isNavigatingTokens","onBlur","preventDefault","stopPropagation","size","variant","icon","displayName"],"sources":["../../src/MultiSelect/MultiSelect.tsx"],"sourcesContent":["import { Clear } from '@procore/core-icons/dist'\nimport { useId } from '@react-aria/utils'\nimport React from 'react'\nimport { Box } from '../Box'\nimport {\n MenuImperative,\n useMenuImperativeControlNavigation,\n} from '../MenuImperative/MenuImperative'\nimport type { MenuRef, Selection } from '../MenuImperative/MenuImperative.types'\nimport { OverlayTrigger } from '../OverlayTrigger'\nimport { Spinner } from '../Spinner'\nimport { Token } from '../Token'\nimport { Typography } from '../Typography'\nimport { isEventSource } from '../_hooks/ClickOutside'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport {\n StyledMultiSelectArrow,\n StyledMultiSelectArrowContainer,\n StyledMultiSelectButton,\n StyledMultiSelectClearIcon,\n StyledMultiSelectMenu,\n StyledMultiSelectSearch,\n StyledMultiSelectSearchIcon,\n StyledMultiSelectSearchInput,\n StyledMultiSelectToken,\n StyledMultiSelectValues,\n} from './MultiSelect.styles'\nimport type {\n ChangeEvent,\n GroupedOptionsProps,\n GroupHeader,\n GroupItem,\n MultiSelectConfig,\n MultiSelectHook,\n MultiSelectOptionProps,\n MultiSelectOptionRendererProps,\n MultiSelectProps,\n MultiSelectTokenRendererProps,\n OptionItem,\n} from './MultiSelect.types'\n\nconst targetShowKeys = ['ArrowDown', 'Down']\n\nconst targetHideKeys = ['Esc', 'Escape']\n\nconst overlayHideKeys = targetHideKeys\n\nconst emptyArray: OptionItem[] = []\n\nfunction noop() {}\n\nfunction returnTrue() {\n return true\n}\n\nfunction isAlphaNumeric(str: string) {\n return str.length === 1 && str.match(/[A-Za-z0-9 _.,!\"'/$]*/i)\n}\n\nfunction setFocusTo(ref: React.RefObject<HTMLElement>) {\n if (ref.current) {\n ref.current.focus()\n }\n}\n\nfunction isOption(obj: React.ReactChild) {\n return typeof obj === 'object' && obj.type === Option\n}\n\nfunction defaultIsOptionDisabled() {\n return false\n}\n\nfunction defaultGetId(item: OptionItem) {\n return item.id\n}\n\nfunction defaultGetLabel(item: OptionItem) {\n return item.label\n}\n\nfunction defaultGetGroup(item: OptionItem) {\n return item.groupId\n}\n\nfunction defaultIsSelectable(obj: React.ReactChild) {\n typeof obj === 'object' && obj.type === Option\n}\n\nfunction defaultOptionRenderer(\n item: OptionItem,\n { getId, getLabel, qa, value, ...props }: MultiSelectOptionRendererProps\n) {\n return (\n <Option\n key={getId(item)}\n value={value || item}\n data-qa={qa?.option?.(item)}\n {...props}\n >\n {getLabel(item)}\n </Option>\n )\n}\n\nfunction defaultGroupHeaderRenderer(group: GroupItem) {\n return (\n <MenuImperative.Group key={`group_${group.id}`} clickable={false}>\n {group.label}\n </MenuImperative.Group>\n )\n}\n\nfunction defaultTokenRenderer({\n focused,\n disabled,\n option,\n removeToken,\n getLabel,\n qa,\n}: MultiSelectTokenRendererProps) {\n return (\n <Token disabled={disabled} focused={focused} data-qa={qa?.token?.(option)}>\n <Token.Label>{getLabel(option)}</Token.Label>\n <Token.Remove\n data-close\n onClick={removeToken}\n data-qa={qa?.tokenClear?.(option)}\n />\n </Token>\n )\n}\n\nfunction useMultiSelect({\n getId,\n getLabel,\n getGroup,\n menuRef,\n onChange = noop,\n onSearch: onSearch_,\n options: options_,\n value,\n optgroups,\n}: MultiSelectConfig): MultiSelectHook {\n const [index, setIndex] = React.useState<number | null>(null)\n\n const [search, setSearch] = React.useState<string>('')\n\n const valueIds = value.reduce<Set<number | string>>((acc, cur) => {\n acc.add(getId(cur))\n\n return acc\n }, new Set())\n\n const count = value.length\n\n const options = React.useMemo(\n function () {\n if (onSearch_) {\n return options_\n }\n\n return options_.filter((opt) =>\n getLabel(opt).toLowerCase().includes(search.toLowerCase())\n )\n },\n [options_, onSearch_, getLabel, search]\n )\n\n const onSearch = React.useCallback(\n function (e: ChangeEvent) {\n if (onSearch_) {\n onSearch_(e)\n }\n\n setSearch(e.target.value)\n\n // TODO: because menu highlighting is now imperative, we have to wait\n // for a render to highlight the first item. Is there a better way\n // to schedule this?\n setTimeout(() => menuRef.current?.highlightFirst(), 0)\n },\n [menuRef, onSearch_]\n )\n\n const clearToken = () => setIndex(null)\n\n const removeSelection = React.useCallback(\n function (selection: OptionItem, selected: OptionItem[]) {\n return selected.filter((s) => getId(s) !== getId(selection))\n },\n [getId]\n )\n\n const onSelect = React.useCallback(\n (selection: Selection) => {\n const newSelected = valueIds.has(getId(selection.item))\n ? removeSelection(selection.item, value)\n : [...value, selection.item]\n\n setSearch('')\n\n onChange(newSelected)\n },\n [setSearch, onChange, getId, removeSelection, value, valueIds]\n )\n\n const removeToken = React.useCallback(\n function (i: number) {\n onChange(removeSelection(value[i], value))\n },\n [value, onChange, removeSelection]\n )\n\n const decrementToken = React.useCallback(\n function () {\n if (index === null) {\n // index is null, set it to the last token index\n setIndex(count - 1)\n } else {\n // decrementToken by one, don't go below 0\n setIndex(Math.max(0, index - 1))\n }\n },\n [count, index, setIndex]\n )\n\n const incrementToken = React.useCallback(\n function () {\n if (index === count - 1) {\n setIndex(null)\n } else if (index !== null) {\n setIndex(index + 1)\n }\n },\n [count, index, setIndex]\n )\n\n const onKeyDown = React.useCallback(\n function (event: React.KeyboardEvent<HTMLInputElement>) {\n if (event.key === 'Enter') {\n menuRef.current?.select(event)\n }\n\n if (event.key === 'ArrowUp' || event.key === 'Up') {\n menuRef.current?.prev()\n }\n\n if (event.key === 'ArrowDown' || event.key === 'Down') {\n menuRef.current?.next()\n }\n\n if (search === '') {\n if (event.key === 'Backspace') {\n // to prevent accidentally deleting too many tokens, don't do anything\n // on repeating key events\n if (event.repeat) {\n return\n }\n\n // if we are focused on a token, remove it, otherwise remove the last token\n removeToken(index !== null ? index : count - 1)\n\n if (count >= 1) {\n decrementToken()\n } else {\n clearToken()\n }\n }\n\n if (event.key === 'ArrowLeft' || event.key === 'Left') {\n decrementToken()\n }\n\n if (event.key === 'ArrowRight' || event.key === 'Right') {\n incrementToken()\n }\n }\n },\n [count, decrementToken, incrementToken, index, menuRef, removeToken, search]\n )\n\n React.useEffect(\n function () {\n // if we've deleted a token and our new count is less than\n // our current index, clear the index\n if (count <= (index || 0)) {\n clearToken()\n }\n },\n [count, index]\n )\n\n const groupedOptions = React.useMemo(() => {\n if (!optgroups || !optgroups.length) {\n return options\n }\n\n const optionsByGroup: Record<string, (OptionItem | GroupHeader)[]> =\n optgroups.reduce((acc, { id }) => {\n return {\n ...acc,\n [id]: [],\n }\n }, {})\n\n const orphanOptions = [] as OptionItem[]\n\n options.forEach((option) => {\n const groupId = getGroup(option)\n const groupOptions = optionsByGroup[groupId]\n\n if (!groupId || !groupOptions) {\n orphanOptions.push(option)\n return\n }\n\n optionsByGroup[groupId].push(option)\n })\n\n if (orphanOptions.length) {\n console.warn(\n `Could not find option groups for the options below. Make sure that every option has a proper \"groupId\" field or if \"getGroup\" is implemented correctly.`,\n orphanOptions\n )\n }\n\n return optgroups.flatMap((group: GroupItem) => {\n const groupHeader = { ...group, isGroupHeader: true }\n const groupOptions = optionsByGroup[group.id]\n\n if (!groupOptions.length) {\n return []\n }\n\n return [groupHeader, ...groupOptions]\n }, [])\n }, [options, getGroup, optgroups])\n\n return {\n ids: valueIds,\n index,\n menuRef,\n options: groupedOptions,\n search,\n\n clearToken,\n decrementToken,\n incrementToken,\n onSearch,\n onSelect,\n removeToken,\n\n domHandlers: {\n onKeyDown,\n },\n }\n}\n\nexport const Option = React.forwardRef<HTMLDivElement, MultiSelectOptionProps>(\n function Option({ value, ...props }, ref) {\n return <MenuImperative.Item ref={ref} {...props} item={value} />\n }\n)\n\nfunction GroupedOptions({\n multiselect,\n groupHeaderRenderer,\n optionRenderer,\n getId,\n getLabel,\n isOptionDisabled,\n qa,\n}: GroupedOptionsProps) {\n return (\n <MenuImperative.Options>\n {multiselect.options.map((opt) => {\n if (opt.isGroupHeader) {\n const groupHeader: GroupHeader = opt\n return groupHeaderRenderer(groupHeader)\n }\n\n return optionRenderer(opt, {\n getId,\n getLabel,\n // @ts-ignore\n // Object literal may only specify known properties, and 'key' does not exist in type 'OptionRendererProps'.\n key: getId(opt),\n selected: multiselect.ids.has(getId(opt)),\n disabled: isOptionDisabled(opt),\n value: opt,\n qa,\n })\n })}\n </MenuImperative.Options>\n )\n}\n\n/**\n\n Multi selects allow our users to choose one to many options from a list,\n presented in a dropdown. We typically see these selects on forms.\n\n Other select components are group select, select, and tiered select.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_multiselect--basic)\n\n @see [Design Guidelines](https://design.procore.com/multi-select)\n\n */\nconst MultiSelect_ = React.forwardRef<HTMLDivElement, MultiSelectProps>(\n function MultiSelect(\n {\n afterHide = noop,\n afterShow = noop,\n beforeHide = returnTrue,\n beforeShow = returnTrue,\n block = false,\n disabled = false,\n emptyMessage,\n error = false,\n footer,\n getId = defaultGetId,\n getLabel = defaultGetLabel,\n getGroup = defaultGetGroup,\n loading = false,\n onChange = noop,\n onScrollBottom,\n onSearch,\n options = emptyArray,\n isOptionDisabled = defaultIsOptionDisabled,\n optionRenderer = defaultOptionRenderer,\n optgroups,\n groupHeaderRenderer = defaultGroupHeaderRenderer,\n tokenRenderer = defaultTokenRenderer,\n placeholder,\n placement = 'bottom-left',\n value = emptyArray,\n tabIndex = 0,\n ['aria-labelledby']: ariaLabelledBy,\n qa = {},\n ...props\n },\n ref\n ) {\n const i18n = useI18nContext()\n const ownRef = React.useRef<HTMLDivElement>()\n const targetRef = (ref as React.RefObject<HTMLDivElement>) || ownRef\n\n const searchRef = React.useRef<HTMLInputElement>(null)\n\n const menuRef = React.useRef<MenuRef | null>(null)\n const menuId = useId()\n const tokenListId = useId()\n const tokenBaseId = useId()\n const [isMenuOpen, setIsMenuOpen] = React.useState(false)\n const { menuNavigationTriggerProps, menuProps } =\n useMenuImperativeControlNavigation(menuRef, isMenuOpen)\n\n const I18n = useI18nContext()\n\n const multiselect = useMultiSelect({\n getId,\n getLabel,\n getGroup,\n menuRef,\n onSearch,\n options,\n onChange: function (value) {\n onChange(value)\n\n setFocusTo(searchRef)\n },\n value,\n optgroups,\n })\n\n const hasClearIcon = value.length > 0 && !loading\n\n const isNavigatingTokens = multiselect.index !== null\n const activeTokenId = isNavigatingTokens\n ? `${tokenBaseId}-${multiselect.index}`\n : undefined\n\n const overlay = (\n <StyledMultiSelectMenu shadowStrength={2}>\n <MenuImperative\n {...menuProps}\n ref={menuRef}\n id={menuId}\n onScrollBottom={onScrollBottom}\n onSelect={multiselect.onSelect}\n data-qa=\"multi-select-menu\"\n role=\"listbox\"\n >\n {multiselect.options.length ? (\n <GroupedOptions\n multiselect={multiselect}\n getId={getId}\n getLabel={getLabel}\n isOptionDisabled={isOptionDisabled}\n groupHeaderRenderer={groupHeaderRenderer}\n optionRenderer={optionRenderer}\n qa={qa}\n />\n ) : (\n <Box padding=\"md lg\">\n <Typography color=\"gray45\" intent=\"small\" italic>\n {emptyMessage || I18n.t('core.multiSelect.noResults')}\n </Typography>\n </Box>\n )}\n {footer && <MenuImperative.Footer>{footer}</MenuImperative.Footer>}\n </MenuImperative>\n </StyledMultiSelectMenu>\n )\n\n return (\n <OverlayTrigger\n canFlip={true}\n afterHide={() => {\n multiselect.clearToken()\n setIsMenuOpen(false)\n\n afterHide()\n }}\n afterShow={() => {\n multiselect.clearToken()\n\n menuRef.current?.highlightFirst()\n setIsMenuOpen(true)\n\n afterShow()\n }}\n beforeHide={(e) => {\n // if we are clicking somewhere in the target, set focus on the search\n if (e instanceof MouseEvent && isEventSource(targetRef, e)) {\n setFocusTo(searchRef)\n }\n\n return beforeHide(e)\n }}\n beforeShow={(e) => {\n setFocusTo(searchRef)\n\n return beforeShow(e)\n }}\n hideKeys={{\n overlay: overlayHideKeys,\n target: targetHideKeys,\n }}\n overlay={overlay}\n placement={placement}\n ref={targetRef}\n showKeys={targetShowKeys}\n trigger=\"click\"\n >\n {({ disable, enable, isVisible }) => {\n return (\n <StyledMultiSelectButton\n $block={block}\n $error={error}\n $emptyValue={value.length === 0}\n $disabled={disabled}\n $hasClearIcon={hasClearIcon}\n $loading={loading}\n $open={isVisible}\n {...props}\n >\n <StyledMultiSelectValues\n id={tokenListId}\n role=\"list\"\n aria-label={I18n.t('core.multiSelect.selectedItems')}\n >\n {value.map((selection, i) => {\n const tokenId = `${tokenBaseId}-${i}`\n const tokenLabel = getLabel(selection)\n return (\n <StyledMultiSelectToken\n key={getId(selection)}\n id={tokenId}\n role=\"listitem\"\n aria-label={\n typeof tokenLabel === 'string'\n ? I18n.t('core.multiSelect.selectedToken', {\n tokenLabel,\n })\n : undefined\n }\n >\n {tokenRenderer({\n option: selection,\n focused: i === multiselect.index,\n disabled: disabled,\n getLabel,\n removeToken: function () {\n multiselect.removeToken(i)\n },\n qa,\n })}\n </StyledMultiSelectToken>\n )\n })}\n\n <StyledMultiSelectSearch>\n <StyledMultiSelectSearchInput\n aria-activedescendant={activeTokenId}\n aria-controls={isNavigatingTokens ? tokenListId : menuId}\n aria-expanded={isVisible}\n aria-labelledby={ariaLabelledBy}\n data-qa=\"core-multiselect-input\"\n role=\"combobox\"\n $isNavigatingTokens={isNavigatingTokens}\n disabled={disabled}\n onBlur={multiselect.clearToken}\n onChange={function (\n e: React.ChangeEvent<HTMLInputElement>\n ) {\n multiselect.onSearch(e)\n }}\n {...menuNavigationTriggerProps}\n onKeyDown={function (\n e: React.KeyboardEvent<HTMLInputElement>\n ) {\n if (isNavigatingTokens && e.key !== 'Tab') {\n // if we are navigating tokens don't do any input but allow Tab\n e.preventDefault()\n }\n\n if (isVisible) {\n // if the overlay is visible, close it and keep focus\n if (e.key === 'Tab') {\n e.preventDefault()\n\n disable(e)\n }\n // if open, don't notify parents (like Modal) but still let OverlayTrigger close it and keep it focus\n if (e.key === 'Esc' || e.key === 'Escape') {\n e.stopPropagation()\n disable(e)\n }\n } else {\n // if we type in an alphanumeric character, show the overlay\n if (isAlphaNumeric(e.key)) {\n enable(e)\n }\n }\n\n multiselect.domHandlers.onKeyDown(e)\n }}\n placeholder={\n value?.length > 0\n ? ''\n : placeholder ?? I18n.t('core.multiSelect.selectValues')\n }\n ref={searchRef}\n tabIndex={tabIndex}\n value={multiselect.search}\n />\n </StyledMultiSelectSearch>\n </StyledMultiSelectValues>\n <StyledMultiSelectSearchIcon>\n <StyledMultiSelectClearIcon\n aria-label={i18n.t('core.multiSelect.clearAll')}\n data-close\n data-qa=\"core-multiselect-clear\"\n size=\"sm\"\n variant=\"tertiary\"\n disabled={disabled}\n icon={<Clear />}\n onClick={() => onChange([])}\n tabIndex={-1} // TODO revisit this accessibility\n />\n {loading ? (\n <Spinner color=\"blue50\" size=\"xs\" />\n ) : (\n <StyledMultiSelectArrowContainer\n data-qa=\"multiselect-select-arrow\"\n onClick={(e: React.MouseEvent) => isVisible && disable(e)}\n >\n <StyledMultiSelectArrow />\n </StyledMultiSelectArrowContainer>\n )}\n </StyledMultiSelectSearchIcon>\n </StyledMultiSelectButton>\n )\n }}\n </OverlayTrigger>\n )\n }\n)\n\nMultiSelect_.displayName = 'MultiSelect'\n\n/**\n * @see [Storybook](https://procore.github.io/core/latest/?path=/story/demos-multiselect--demo)\n * @see [Design Guidelines](https://design.procore.com/multi-select)\n */\nexport const MultiSelect = addSubcomponents(\n {\n Option,\n },\n MultiSelect_\n)\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,SAASA,KAAK,QAAQ,0BAA0B;AAChD,SAASC,KAAK,QAAQ,mBAAmB;AACzC,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,GAAG,QAAQ,QAAQ;AAC5B,SACEC,cAAc,EACdC,kCAAkC,QAC7B,kCAAkC;AAEzC,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,OAAO,QAAQ,YAAY;AACpC,SAASC,KAAK,QAAQ,UAAU;AAChC,SAASC,UAAU,QAAQ,eAAe;AAC1C,SAASC,aAAa,QAAQ,wBAAwB;AACtD,SAASC,cAAc,QAAQ,gBAAgB;AAC/C,SAASC,gBAAgB,QAAQ,4BAA4B;AAC7D,SACEC,sBAAsB,EACtBC,+BAA+B,EAC/BC,uBAAuB,EACvBC,0BAA0B,EAC1BC,qBAAqB,EACrBC,uBAAuB,EACvBC,2BAA2B,EAC3BC,4BAA4B,EAC5BC,sBAAsB,EACtBC,uBAAuB,QAClB,sBAAsB;AAe7B,IAAMC,cAAc,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC;AAE5C,IAAMC,cAAc,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC;AAExC,IAAMC,eAAe,GAAGD,cAAc;AAEtC,IAAME,UAAwB,GAAG,EAAE;AAEnC,SAASC,IAAIA,CAAA,EAAG,CAAC;AAEjB,SAASC,UAAUA,CAAA,EAAG;EACpB,OAAO,IAAI;AACb;AAEA,SAASC,cAAcA,CAACC,GAAW,EAAE;EACnC,OAAOA,GAAG,CAACC,MAAM,KAAK,CAAC,IAAID,GAAG,CAACE,KAAK,CAAC,wBAAwB,CAAC;AAChE;AAEA,SAASC,UAAUA,CAACC,GAAiC,EAAE;EACrD,IAAIA,GAAG,CAACC,OAAO,EAAE;IACfD,GAAG,CAACC,OAAO,CAACC,KAAK,CAAC,CAAC;EACrB;AACF;AAEA,SAASC,QAAQA,CAACC,GAAqB,EAAE;EACvC,OAAOC,OAAA,CAAOD,GAAG,MAAK,QAAQ,IAAIA,GAAG,CAACE,IAAI,KAAKC,MAAM;AACvD;AAEA,SAASC,uBAAuBA,CAAA,EAAG;EACjC,OAAO,KAAK;AACd;AAEA,SAASC,YAAYA,CAACC,IAAgB,EAAE;EACtC,OAAOA,IAAI,CAACC,EAAE;AAChB;AAEA,SAASC,eAAeA,CAACF,IAAgB,EAAE;EACzC,OAAOA,IAAI,CAACG,KAAK;AACnB;AAEA,SAASC,eAAeA,CAACJ,IAAgB,EAAE;EACzC,OAAOA,IAAI,CAACK,OAAO;AACrB;AAEA,SAASC,mBAAmBA,CAACZ,GAAqB,EAAE;EAClDC,OAAA,CAAOD,GAAG,MAAK,QAAQ,IAAIA,GAAG,CAACE,IAAI,KAAKC,MAAM;AAChD;AAEA,SAASU,qBAAqBA,CAC5BP,IAAgB,EAAAQ,IAAA,EAEhB;EAAA,IAAAC,UAAA;EAAA,IADEC,KAAK,GAAAF,IAAA,CAALE,KAAK;IAAEC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IAAEC,EAAE,GAAAJ,IAAA,CAAFI,EAAE;IAAEC,KAAK,GAAAL,IAAA,CAALK,KAAK;IAAKC,KAAK,GAAAC,wBAAA,CAAAP,IAAA,EAAAQ,SAAA;EAEtC,oBACE1D,KAAA,CAAA2D,aAAA,CAACpB,MAAM,EAAAqB,QAAA;IACLC,GAAG,EAAET,KAAK,CAACV,IAAI,CAAE;IACjBa,KAAK,EAAEA,KAAK,IAAIb,IAAK;IACrB,WAASY,EAAE,aAAFA,EAAE,wBAAAH,UAAA,GAAFG,EAAE,CAAEQ,MAAM,cAAAX,UAAA,uBAAVA,UAAA,CAAAY,IAAA,CAAAT,EAAE,EAAWZ,IAAI;EAAE,GACxBc,KAAK,GAERH,QAAQ,CAACX,IAAI,CACR,CAAC;AAEb;AAEA,SAASsB,0BAA0BA,CAACC,KAAgB,EAAE;EACpD,oBACEjE,KAAA,CAAA2D,aAAA,CAACzD,cAAc,CAACgE,KAAK;IAACL,GAAG,WAAAM,MAAA,CAAWF,KAAK,CAACtB,EAAE,CAAG;IAACyB,SAAS,EAAE;EAAM,GAC9DH,KAAK,CAACpB,KACa,CAAC;AAE3B;AAEA,SAASwB,oBAAoBA,CAAAC,KAAA,EAOK;EAAA,IAAAC,SAAA,EAAAC,cAAA;EAAA,IANhCC,OAAO,GAAAH,KAAA,CAAPG,OAAO;IACPC,QAAQ,GAAAJ,KAAA,CAARI,QAAQ;IACRZ,MAAM,GAAAQ,KAAA,CAANR,MAAM;IACNa,WAAW,GAAAL,KAAA,CAAXK,WAAW;IACXtB,QAAQ,GAAAiB,KAAA,CAARjB,QAAQ;IACRC,EAAE,GAAAgB,KAAA,CAAFhB,EAAE;EAEF,oBACEtD,KAAA,CAAA2D,aAAA,CAACrD,KAAK;IAACoE,QAAQ,EAAEA,QAAS;IAACD,OAAO,EAAEA,OAAQ;IAAC,WAASnB,EAAE,aAAFA,EAAE,wBAAAiB,SAAA,GAAFjB,EAAE,CAAEsB,KAAK,cAAAL,SAAA,uBAATA,SAAA,CAAAR,IAAA,CAAAT,EAAE,EAAUQ,MAAM;EAAE,gBACxE9D,KAAA,CAAA2D,aAAA,CAACrD,KAAK,CAACuE,KAAK,QAAExB,QAAQ,CAACS,MAAM,CAAe,CAAC,eAC7C9D,KAAA,CAAA2D,aAAA,CAACrD,KAAK,CAACwE,MAAM;IACX,kBAAU;IACVC,OAAO,EAAEJ,WAAY;IACrB,WAASrB,EAAE,aAAFA,EAAE,wBAAAkB,cAAA,GAAFlB,EAAE,CAAE0B,UAAU,cAAAR,cAAA,uBAAdA,cAAA,CAAAT,IAAA,CAAAT,EAAE,EAAeQ,MAAM;EAAE,CACnC,CACI,CAAC;AAEZ;AAEA,SAASmB,cAAcA,CAAAC,KAAA,EAUgB;EAAA,IATrC9B,KAAK,GAAA8B,KAAA,CAAL9B,KAAK;IACLC,QAAQ,GAAA6B,KAAA,CAAR7B,QAAQ;IACR8B,QAAQ,GAAAD,KAAA,CAARC,QAAQ;IACRC,OAAO,GAAAF,KAAA,CAAPE,OAAO;IAAAC,cAAA,GAAAH,KAAA,CACPI,QAAQ;IAARA,QAAQ,GAAAD,cAAA,cAAG5D,IAAI,GAAA4D,cAAA;IACLE,SAAS,GAAAL,KAAA,CAAnBM,QAAQ;IACCC,QAAQ,GAAAP,KAAA,CAAjBQ,OAAO;IACPnC,KAAK,GAAA2B,KAAA,CAAL3B,KAAK;IACLoC,SAAS,GAAAT,KAAA,CAATS,SAAS;EAET,IAAAC,eAAA,GAA0B5F,KAAK,CAAC6F,QAAQ,CAAgB,IAAI,CAAC;IAAAC,gBAAA,GAAAC,cAAA,CAAAH,eAAA;IAAtDI,KAAK,GAAAF,gBAAA;IAAEG,QAAQ,GAAAH,gBAAA;EAEtB,IAAAI,gBAAA,GAA4BlG,KAAK,CAAC6F,QAAQ,CAAS,EAAE,CAAC;IAAAM,gBAAA,GAAAJ,cAAA,CAAAG,gBAAA;IAA/CE,MAAM,GAAAD,gBAAA;IAAEE,SAAS,GAAAF,gBAAA;EAExB,IAAMG,QAAQ,GAAG/C,KAAK,CAACgD,MAAM,CAAuB,UAACC,GAAG,EAAEC,GAAG,EAAK;IAChED,GAAG,CAACE,GAAG,CAACtD,KAAK,CAACqD,GAAG,CAAC,CAAC;IAEnB,OAAOD,GAAG;EACZ,CAAC,EAAE,IAAIG,GAAG,CAAC,CAAC,CAAC;EAEb,IAAMC,KAAK,GAAGrD,KAAK,CAAC1B,MAAM;EAE1B,IAAM6D,OAAO,GAAG1F,KAAK,CAAC6G,OAAO,CAC3B,YAAY;IACV,IAAItB,SAAS,EAAE;MACb,OAAOE,QAAQ;IACjB;IAEA,OAAOA,QAAQ,CAACqB,MAAM,CAAC,UAACC,GAAG;MAAA,OACzB1D,QAAQ,CAAC0D,GAAG,CAAC,CAACC,WAAW,CAAC,CAAC,CAACC,QAAQ,CAACb,MAAM,CAACY,WAAW,CAAC,CAAC,CAAC;IAAA,CAC5D,CAAC;EACH,CAAC,EACD,CAACvB,QAAQ,EAAEF,SAAS,EAAElC,QAAQ,EAAE+C,MAAM,CACxC,CAAC;EAED,IAAMZ,QAAQ,GAAGxF,KAAK,CAACkH,WAAW,CAChC,UAAUC,CAAc,EAAE;IACxB,IAAI5B,SAAS,EAAE;MACbA,SAAS,CAAC4B,CAAC,CAAC;IACd;IAEAd,SAAS,CAACc,CAAC,CAACC,MAAM,CAAC7D,KAAK,CAAC;;IAEzB;IACA;IACA;IACA8D,UAAU,CAAC;MAAA,IAAAC,gBAAA;MAAA,QAAAA,gBAAA,GAAMlC,OAAO,CAACnD,OAAO,cAAAqF,gBAAA,uBAAfA,gBAAA,CAAiBC,cAAc,CAAC,CAAC;IAAA,GAAE,CAAC,CAAC;EACxD,CAAC,EACD,CAACnC,OAAO,EAAEG,SAAS,CACrB,CAAC;EAED,IAAMiC,UAAU,GAAG,SAAbA,UAAUA,CAAA;IAAA,OAASvB,QAAQ,CAAC,IAAI,CAAC;EAAA;EAEvC,IAAMwB,eAAe,GAAGzH,KAAK,CAACkH,WAAW,CACvC,UAAUQ,SAAqB,EAAEC,QAAsB,EAAE;IACvD,OAAOA,QAAQ,CAACb,MAAM,CAAC,UAACc,CAAC;MAAA,OAAKxE,KAAK,CAACwE,CAAC,CAAC,KAAKxE,KAAK,CAACsE,SAAS,CAAC;IAAA,EAAC;EAC9D,CAAC,EACD,CAACtE,KAAK,CACR,CAAC;EAED,IAAMyE,QAAQ,GAAG7H,KAAK,CAACkH,WAAW,CAChC,UAACQ,SAAoB,EAAK;IACxB,IAAMI,WAAW,GAAGxB,QAAQ,CAACyB,GAAG,CAAC3E,KAAK,CAACsE,SAAS,CAAChF,IAAI,CAAC,CAAC,GACnD+E,eAAe,CAACC,SAAS,CAAChF,IAAI,EAAEa,KAAK,CAAC,MAAAY,MAAA,CAAA6D,kBAAA,CAClCzE,KAAK,IAAEmE,SAAS,CAAChF,IAAI,EAAC;IAE9B2D,SAAS,CAAC,EAAE,CAAC;IAEbf,QAAQ,CAACwC,WAAW,CAAC;EACvB,CAAC,EACD,CAACzB,SAAS,EAAEf,QAAQ,EAAElC,KAAK,EAAEqE,eAAe,EAAElE,KAAK,EAAE+C,QAAQ,CAC/D,CAAC;EAED,IAAM3B,WAAW,GAAG3E,KAAK,CAACkH,WAAW,CACnC,UAAUe,CAAS,EAAE;IACnB3C,QAAQ,CAACmC,eAAe,CAAClE,KAAK,CAAC0E,CAAC,CAAC,EAAE1E,KAAK,CAAC,CAAC;EAC5C,CAAC,EACD,CAACA,KAAK,EAAE+B,QAAQ,EAAEmC,eAAe,CACnC,CAAC;EAED,IAAMS,cAAc,GAAGlI,KAAK,CAACkH,WAAW,CACtC,YAAY;IACV,IAAIlB,KAAK,KAAK,IAAI,EAAE;MAClB;MACAC,QAAQ,CAACW,KAAK,GAAG,CAAC,CAAC;IACrB,CAAC,MAAM;MACL;MACAX,QAAQ,CAACkC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEpC,KAAK,GAAG,CAAC,CAAC,CAAC;IAClC;EACF,CAAC,EACD,CAACY,KAAK,EAAEZ,KAAK,EAAEC,QAAQ,CACzB,CAAC;EAED,IAAMoC,cAAc,GAAGrI,KAAK,CAACkH,WAAW,CACtC,YAAY;IACV,IAAIlB,KAAK,KAAKY,KAAK,GAAG,CAAC,EAAE;MACvBX,QAAQ,CAAC,IAAI,CAAC;IAChB,CAAC,MAAM,IAAID,KAAK,KAAK,IAAI,EAAE;MACzBC,QAAQ,CAACD,KAAK,GAAG,CAAC,CAAC;IACrB;EACF,CAAC,EACD,CAACY,KAAK,EAAEZ,KAAK,EAAEC,QAAQ,CACzB,CAAC;EAED,IAAMqC,SAAS,GAAGtI,KAAK,CAACkH,WAAW,CACjC,UAAUqB,KAA4C,EAAE;IACtD,IAAIA,KAAK,CAAC1E,GAAG,KAAK,OAAO,EAAE;MAAA,IAAA2E,iBAAA;MACzB,CAAAA,iBAAA,GAAApD,OAAO,CAACnD,OAAO,cAAAuG,iBAAA,uBAAfA,iBAAA,CAAiBC,MAAM,CAACF,KAAK,CAAC;IAChC;IAEA,IAAIA,KAAK,CAAC1E,GAAG,KAAK,SAAS,IAAI0E,KAAK,CAAC1E,GAAG,KAAK,IAAI,EAAE;MAAA,IAAA6E,iBAAA;MACjD,CAAAA,iBAAA,GAAAtD,OAAO,CAACnD,OAAO,cAAAyG,iBAAA,uBAAfA,iBAAA,CAAiBC,IAAI,CAAC,CAAC;IACzB;IAEA,IAAIJ,KAAK,CAAC1E,GAAG,KAAK,WAAW,IAAI0E,KAAK,CAAC1E,GAAG,KAAK,MAAM,EAAE;MAAA,IAAA+E,iBAAA;MACrD,CAAAA,iBAAA,GAAAxD,OAAO,CAACnD,OAAO,cAAA2G,iBAAA,uBAAfA,iBAAA,CAAiBC,IAAI,CAAC,CAAC;IACzB;IAEA,IAAIzC,MAAM,KAAK,EAAE,EAAE;MACjB,IAAImC,KAAK,CAAC1E,GAAG,KAAK,WAAW,EAAE;QAC7B;QACA;QACA,IAAI0E,KAAK,CAACO,MAAM,EAAE;UAChB;QACF;;QAEA;QACAnE,WAAW,CAACqB,KAAK,KAAK,IAAI,GAAGA,KAAK,GAAGY,KAAK,GAAG,CAAC,CAAC;QAE/C,IAAIA,KAAK,IAAI,CAAC,EAAE;UACdsB,cAAc,CAAC,CAAC;QAClB,CAAC,MAAM;UACLV,UAAU,CAAC,CAAC;QACd;MACF;MAEA,IAAIe,KAAK,CAAC1E,GAAG,KAAK,WAAW,IAAI0E,KAAK,CAAC1E,GAAG,KAAK,MAAM,EAAE;QACrDqE,cAAc,CAAC,CAAC;MAClB;MAEA,IAAIK,KAAK,CAAC1E,GAAG,KAAK,YAAY,IAAI0E,KAAK,CAAC1E,GAAG,KAAK,OAAO,EAAE;QACvDwE,cAAc,CAAC,CAAC;MAClB;IACF;EACF,CAAC,EACD,CAACzB,KAAK,EAAEsB,cAAc,EAAEG,cAAc,EAAErC,KAAK,EAAEZ,OAAO,EAAET,WAAW,EAAEyB,MAAM,CAC7E,CAAC;EAEDpG,KAAK,CAAC+I,SAAS,CACb,YAAY;IACV;IACA;IACA,IAAInC,KAAK,KAAKZ,KAAK,IAAI,CAAC,CAAC,EAAE;MACzBwB,UAAU,CAAC,CAAC;IACd;EACF,CAAC,EACD,CAACZ,KAAK,EAAEZ,KAAK,CACf,CAAC;EAED,IAAMgD,cAAc,GAAGhJ,KAAK,CAAC6G,OAAO,CAAC,YAAM;IACzC,IAAI,CAAClB,SAAS,IAAI,CAACA,SAAS,CAAC9D,MAAM,EAAE;MACnC,OAAO6D,OAAO;IAChB;IAEA,IAAMuD,cAA4D,GAChEtD,SAAS,CAACY,MAAM,CAAC,UAACC,GAAG,EAAA0C,KAAA,EAAa;MAAA,IAATvG,EAAE,GAAAuG,KAAA,CAAFvG,EAAE;MACzB,OAAAwG,aAAA,CAAAA,aAAA,KACK3C,GAAG,OAAA4C,eAAA,KACLzG,EAAE,EAAG,EAAE;IAEZ,CAAC,EAAE,CAAC,CAAC,CAAC;IAER,IAAM0G,aAAa,GAAG,EAAkB;IAExC3D,OAAO,CAAC4D,OAAO,CAAC,UAACxF,MAAM,EAAK;MAC1B,IAAMf,OAAO,GAAGoC,QAAQ,CAACrB,MAAM,CAAC;MAChC,IAAMyF,YAAY,GAAGN,cAAc,CAAClG,OAAO,CAAC;MAE5C,IAAI,CAACA,OAAO,IAAI,CAACwG,YAAY,EAAE;QAC7BF,aAAa,CAACG,IAAI,CAAC1F,MAAM,CAAC;QAC1B;MACF;MAEAmF,cAAc,CAAClG,OAAO,CAAC,CAACyG,IAAI,CAAC1F,MAAM,CAAC;IACtC,CAAC,CAAC;IAEF,IAAIuF,aAAa,CAACxH,MAAM,EAAE;MACxB4H,OAAO,CAACC,IAAI,gKAEVL,aACF,CAAC;IACH;IAEA,OAAO1D,SAAS,CAACgE,OAAO,CAAC,UAAC1F,KAAgB,EAAK;MAC7C,IAAM2F,WAAW,GAAAT,aAAA,CAAAA,aAAA,KAAQlF,KAAK;QAAE4F,aAAa,EAAE;MAAI,EAAE;MACrD,IAAMN,YAAY,GAAGN,cAAc,CAAChF,KAAK,CAACtB,EAAE,CAAC;MAE7C,IAAI,CAAC4G,YAAY,CAAC1H,MAAM,EAAE;QACxB,OAAO,EAAE;MACX;MAEA,QAAQ+H,WAAW,EAAAzF,MAAA,CAAA6D,kBAAA,CAAKuB,YAAY;IACtC,CAAC,EAAE,EAAE,CAAC;EACR,CAAC,EAAE,CAAC7D,OAAO,EAAEP,QAAQ,EAAEQ,SAAS,CAAC,CAAC;EAElC,OAAO;IACLmE,GAAG,EAAExD,QAAQ;IACbN,KAAK,EAALA,KAAK;IACLZ,OAAO,EAAPA,OAAO;IACPM,OAAO,EAAEsD,cAAc;IACvB5C,MAAM,EAANA,MAAM;IAENoB,UAAU,EAAVA,UAAU;IACVU,cAAc,EAAdA,cAAc;IACdG,cAAc,EAAdA,cAAc;IACd7C,QAAQ,EAARA,QAAQ;IACRqC,QAAQ,EAARA,QAAQ;IACRlD,WAAW,EAAXA,WAAW;IAEXoF,WAAW,EAAE;MACXzB,SAAS,EAATA;IACF;EACF,CAAC;AACH;AAEA,OAAO,IAAM/F,MAAM,gBAAGvC,KAAK,CAACgK,UAAU,CACpC,SAASzH,MAAMA,CAAA0H,KAAA,EAAsBjI,GAAG,EAAE;EAAA,IAAxBuB,KAAK,GAAA0G,KAAA,CAAL1G,KAAK;IAAKC,KAAK,GAAAC,wBAAA,CAAAwG,KAAA,EAAAC,UAAA;EAC/B,oBAAOlK,KAAA,CAAA2D,aAAA,CAACzD,cAAc,CAACiK,IAAI,EAAAvG,QAAA;IAAC5B,GAAG,EAAEA;EAAI,GAAKwB,KAAK;IAAEd,IAAI,EAAEa;EAAM,EAAE,CAAC;AAClE,CACF,CAAC;AAED,SAAS6G,cAAcA,CAAAC,KAAA,EAQC;EAAA,IAPtBC,WAAW,GAAAD,KAAA,CAAXC,WAAW;IACXC,mBAAmB,GAAAF,KAAA,CAAnBE,mBAAmB;IACnBC,cAAc,GAAAH,KAAA,CAAdG,cAAc;IACdpH,KAAK,GAAAiH,KAAA,CAALjH,KAAK;IACLC,QAAQ,GAAAgH,KAAA,CAARhH,QAAQ;IACRoH,gBAAgB,GAAAJ,KAAA,CAAhBI,gBAAgB;IAChBnH,EAAE,GAAA+G,KAAA,CAAF/G,EAAE;EAEF,oBACEtD,KAAA,CAAA2D,aAAA,CAACzD,cAAc,CAACwK,OAAO,QACpBJ,WAAW,CAAC5E,OAAO,CAACiF,GAAG,CAAC,UAAC5D,GAAG,EAAK;IAChC,IAAIA,GAAG,CAAC8C,aAAa,EAAE;MACrB,IAAMD,WAAwB,GAAG7C,GAAG;MACpC,OAAOwD,mBAAmB,CAACX,WAAW,CAAC;IACzC;IAEA,OAAOY,cAAc,CAACzD,GAAG,EAAE;MACzB3D,KAAK,EAALA,KAAK;MACLC,QAAQ,EAARA,QAAQ;MACR;MACA;MACAQ,GAAG,EAAET,KAAK,CAAC2D,GAAG,CAAC;MACfY,QAAQ,EAAE2C,WAAW,CAACR,GAAG,CAAC/B,GAAG,CAAC3E,KAAK,CAAC2D,GAAG,CAAC,CAAC;MACzCrC,QAAQ,EAAE+F,gBAAgB,CAAC1D,GAAG,CAAC;MAC/BxD,KAAK,EAAEwD,GAAG;MACVzD,EAAE,EAAFA;IACF,CAAC,CAAC;EACJ,CAAC,CACqB,CAAC;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMsH,YAAY,gBAAG5K,KAAK,CAACgK,UAAU,CACnC,SAASa,WAAWA,CAAAC,KAAA,EAgClB9I,GAAG,EACH;EAAA,IAAA+I,eAAA,GAAAD,KAAA,CA/BEE,SAAS;IAATA,UAAS,GAAAD,eAAA,cAAGtJ,IAAI,GAAAsJ,eAAA;IAAAE,eAAA,GAAAH,KAAA,CAChBI,SAAS;IAATA,UAAS,GAAAD,eAAA,cAAGxJ,IAAI,GAAAwJ,eAAA;IAAAE,gBAAA,GAAAL,KAAA,CAChBM,UAAU;IAAVA,WAAU,GAAAD,gBAAA,cAAGzJ,UAAU,GAAAyJ,gBAAA;IAAAE,gBAAA,GAAAP,KAAA,CACvBQ,UAAU;IAAVA,WAAU,GAAAD,gBAAA,cAAG3J,UAAU,GAAA2J,gBAAA;IAAAE,WAAA,GAAAT,KAAA,CACvBU,KAAK;IAALA,KAAK,GAAAD,WAAA,cAAG,KAAK,GAAAA,WAAA;IAAAE,cAAA,GAAAX,KAAA,CACbpG,QAAQ;IAARA,QAAQ,GAAA+G,cAAA,cAAG,KAAK,GAAAA,cAAA;IAChBC,YAAY,GAAAZ,KAAA,CAAZY,YAAY;IAAAC,WAAA,GAAAb,KAAA,CACZc,KAAK;IAALA,KAAK,GAAAD,WAAA,cAAG,KAAK,GAAAA,WAAA;IACbE,MAAM,GAAAf,KAAA,CAANe,MAAM;IAAAC,WAAA,GAAAhB,KAAA,CACN1H,KAAK;IAALA,KAAK,GAAA0I,WAAA,cAAGrJ,YAAY,GAAAqJ,WAAA;IAAAC,cAAA,GAAAjB,KAAA,CACpBzH,QAAQ;IAARA,QAAQ,GAAA0I,cAAA,cAAGnJ,eAAe,GAAAmJ,cAAA;IAAAC,cAAA,GAAAlB,KAAA,CAC1B3F,QAAQ;IAARA,QAAQ,GAAA6G,cAAA,cAAGlJ,eAAe,GAAAkJ,cAAA;IAAAC,aAAA,GAAAnB,KAAA,CAC1BoB,OAAO;IAAPA,OAAO,GAAAD,aAAA,cAAG,KAAK,GAAAA,aAAA;IAAAE,cAAA,GAAArB,KAAA,CACfxF,QAAQ;IAARA,SAAQ,GAAA6G,cAAA,cAAG1K,IAAI,GAAA0K,cAAA;IACfC,cAAc,GAAAtB,KAAA,CAAdsB,cAAc;IACd5G,QAAQ,GAAAsF,KAAA,CAARtF,QAAQ;IAAA6G,aAAA,GAAAvB,KAAA,CACRpF,OAAO;IAAPA,OAAO,GAAA2G,aAAA,cAAG7K,UAAU,GAAA6K,aAAA;IAAAC,qBAAA,GAAAxB,KAAA,CACpBL,gBAAgB;IAAhBA,gBAAgB,GAAA6B,qBAAA,cAAG9J,uBAAuB,GAAA8J,qBAAA;IAAAC,oBAAA,GAAAzB,KAAA,CAC1CN,cAAc;IAAdA,cAAc,GAAA+B,oBAAA,cAAGtJ,qBAAqB,GAAAsJ,oBAAA;IACtC5G,SAAS,GAAAmF,KAAA,CAATnF,SAAS;IAAA6G,qBAAA,GAAA1B,KAAA,CACTP,mBAAmB;IAAnBA,mBAAmB,GAAAiC,qBAAA,cAAGxI,0BAA0B,GAAAwI,qBAAA;IAAAC,mBAAA,GAAA3B,KAAA,CAChD4B,aAAa;IAAbA,aAAa,GAAAD,mBAAA,cAAGpI,oBAAoB,GAAAoI,mBAAA;IACpCE,WAAW,GAAA7B,KAAA,CAAX6B,WAAW;IAAAC,eAAA,GAAA9B,KAAA,CACX+B,SAAS;IAATA,SAAS,GAAAD,eAAA,cAAG,aAAa,GAAAA,eAAA;IAAAE,WAAA,GAAAhC,KAAA,CACzBvH,KAAK;IAALA,KAAK,GAAAuJ,WAAA,cAAGtL,UAAU,GAAAsL,WAAA;IAAAC,cAAA,GAAAjC,KAAA,CAClBkC,QAAQ;IAARA,QAAQ,GAAAD,cAAA,cAAG,CAAC,GAAAA,cAAA;IACSE,cAAc,GAAAnC,KAAA,CAAlC,iBAAiB;IAAAoC,QAAA,GAAApC,KAAA,CAClBxH,EAAE;IAAFA,EAAE,GAAA4J,QAAA,cAAG,CAAC,CAAC,GAAAA,QAAA;IACJ1J,KAAK,GAAAC,wBAAA,CAAAqH,KAAA,EAAAqC,UAAA;EAIV,IAAMC,IAAI,GAAG3M,cAAc,CAAC,CAAC;EAC7B,IAAM4M,MAAM,GAAGrN,KAAK,CAACsN,MAAM,CAAiB,CAAC;EAC7C,IAAMC,SAAS,GAAIvL,GAAG,IAAwCqL,MAAM;EAEpE,IAAMG,SAAS,GAAGxN,KAAK,CAACsN,MAAM,CAAmB,IAAI,CAAC;EAEtD,IAAMlI,OAAO,GAAGpF,KAAK,CAACsN,MAAM,CAAiB,IAAI,CAAC;EAClD,IAAMG,MAAM,GAAG1N,KAAK,CAAC,CAAC;EACtB,IAAM2N,WAAW,GAAG3N,KAAK,CAAC,CAAC;EAC3B,IAAM4N,WAAW,GAAG5N,KAAK,CAAC,CAAC;EAC3B,IAAA6N,gBAAA,GAAoC5N,KAAK,CAAC6F,QAAQ,CAAC,KAAK,CAAC;IAAAgI,gBAAA,GAAA9H,cAAA,CAAA6H,gBAAA;IAAlDE,UAAU,GAAAD,gBAAA;IAAEE,aAAa,GAAAF,gBAAA;EAChC,IAAAG,qBAAA,GACE7N,kCAAkC,CAACiF,OAAO,EAAE0I,UAAU,CAAC;IADjDG,0BAA0B,GAAAD,qBAAA,CAA1BC,0BAA0B;IAAEC,SAAS,GAAAF,qBAAA,CAATE,SAAS;EAG7C,IAAMC,IAAI,GAAG1N,cAAc,CAAC,CAAC;EAE7B,IAAM6J,WAAW,GAAGrF,cAAc,CAAC;IACjC7B,KAAK,EAALA,KAAK;IACLC,QAAQ,EAARA,QAAQ;IACR8B,QAAQ,EAARA,QAAQ;IACRC,OAAO,EAAPA,OAAO;IACPI,QAAQ,EAARA,QAAQ;IACRE,OAAO,EAAPA,OAAO;IACPJ,QAAQ,EAAE,SAAVA,QAAQA,CAAY/B,KAAK,EAAE;MACzB+B,SAAQ,CAAC/B,KAAK,CAAC;MAEfxB,UAAU,CAACyL,SAAS,CAAC;IACvB,CAAC;IACDjK,KAAK,EAALA,KAAK;IACLoC,SAAS,EAATA;EACF,CAAC,CAAC;EAEF,IAAMyI,YAAY,GAAG7K,KAAK,CAAC1B,MAAM,GAAG,CAAC,IAAI,CAACqK,OAAO;EAEjD,IAAMmC,kBAAkB,GAAG/D,WAAW,CAACtE,KAAK,KAAK,IAAI;EACrD,IAAMsI,aAAa,GAAGD,kBAAkB,MAAAlK,MAAA,CACjCwJ,WAAW,OAAAxJ,MAAA,CAAImG,WAAW,CAACtE,KAAK,IACnCuI,SAAS;EAEb,IAAMC,OAAO,gBACXxO,KAAA,CAAA2D,aAAA,CAAC5C,qBAAqB;IAAC0N,cAAc,EAAE;EAAE,gBACvCzO,KAAA,CAAA2D,aAAA,CAACzD,cAAc,EAAA0D,QAAA,KACTsK,SAAS;IACblM,GAAG,EAAEoD,OAAQ;IACbzC,EAAE,EAAE8K,MAAO;IACXrB,cAAc,EAAEA,cAAe;IAC/BvE,QAAQ,EAAEyC,WAAW,CAACzC,QAAS;IAC/B,WAAQ,mBAAmB;IAC3B6G,IAAI,EAAC;EAAS,IAEbpE,WAAW,CAAC5E,OAAO,CAAC7D,MAAM,gBACzB7B,KAAA,CAAA2D,aAAA,CAACyG,cAAc;IACbE,WAAW,EAAEA,WAAY;IACzBlH,KAAK,EAAEA,KAAM;IACbC,QAAQ,EAAEA,QAAS;IACnBoH,gBAAgB,EAAEA,gBAAiB;IACnCF,mBAAmB,EAAEA,mBAAoB;IACzCC,cAAc,EAAEA,cAAe;IAC/BlH,EAAE,EAAEA;EAAG,CACR,CAAC,gBAEFtD,KAAA,CAAA2D,aAAA,CAAC1D,GAAG;IAAC0O,OAAO,EAAC;EAAO,gBAClB3O,KAAA,CAAA2D,aAAA,CAACpD,UAAU;IAACqO,KAAK,EAAC,QAAQ;IAACC,MAAM,EAAC,OAAO;IAACC,MAAM;EAAA,GAC7CpD,YAAY,IAAIyC,IAAI,CAACY,CAAC,CAAC,4BAA4B,CAC1C,CACT,CACN,EACAlD,MAAM,iBAAI7L,KAAA,CAAA2D,aAAA,CAACzD,cAAc,CAAC8O,MAAM,QAAEnD,MAA8B,CACnD,CACK,CACxB;EAED,oBACE7L,KAAA,CAAA2D,aAAA,CAACvD,cAAc;IACb6O,OAAO,EAAE,IAAK;IACdjE,SAAS,EAAE,SAAXA,SAASA,CAAA,EAAQ;MACfV,WAAW,CAAC9C,UAAU,CAAC,CAAC;MACxBuG,aAAa,CAAC,KAAK,CAAC;MAEpB/C,UAAS,CAAC,CAAC;IACb,CAAE;IACFE,SAAS,EAAE,SAAXA,SAASA,CAAA,EAAQ;MAAA,IAAAgE,iBAAA;MACf5E,WAAW,CAAC9C,UAAU,CAAC,CAAC;MAExB,CAAA0H,iBAAA,GAAA9J,OAAO,CAACnD,OAAO,cAAAiN,iBAAA,uBAAfA,iBAAA,CAAiB3H,cAAc,CAAC,CAAC;MACjCwG,aAAa,CAAC,IAAI,CAAC;MAEnB7C,UAAS,CAAC,CAAC;IACb,CAAE;IACFE,UAAU,EAAE,SAAZA,UAAUA,CAAGjE,CAAC,EAAK;MACjB;MACA,IAAIA,CAAC,YAAYgI,UAAU,IAAI3O,aAAa,CAAC+M,SAAS,EAAEpG,CAAC,CAAC,EAAE;QAC1DpF,UAAU,CAACyL,SAAS,CAAC;MACvB;MAEA,OAAOpC,WAAU,CAACjE,CAAC,CAAC;IACtB,CAAE;IACFmE,UAAU,EAAE,SAAZA,UAAUA,CAAGnE,CAAC,EAAK;MACjBpF,UAAU,CAACyL,SAAS,CAAC;MAErB,OAAOlC,WAAU,CAACnE,CAAC,CAAC;IACtB,CAAE;IACFiI,QAAQ,EAAE;MACRZ,OAAO,EAAEjN,eAAe;MACxB6F,MAAM,EAAE9F;IACV,CAAE;IACFkN,OAAO,EAAEA,OAAQ;IACjB3B,SAAS,EAAEA,SAAU;IACrB7K,GAAG,EAAEuL,SAAU;IACf8B,QAAQ,EAAEhO,cAAe;IACzBiO,OAAO,EAAC;EAAO,GAEd,UAAAC,KAAA,EAAoC;IAAA,IAAjCC,OAAO,GAAAD,KAAA,CAAPC,OAAO;MAAEC,MAAM,GAAAF,KAAA,CAANE,MAAM;MAAEC,SAAS,GAAAH,KAAA,CAATG,SAAS;IAC5B,oBACE1P,KAAA,CAAA2D,aAAA,CAAC9C,uBAAuB,EAAA+C,QAAA;MACtB+L,MAAM,EAAEnE,KAAM;MACdoE,MAAM,EAAEhE,KAAM;MACdiE,WAAW,EAAEtM,KAAK,CAAC1B,MAAM,KAAK,CAAE;MAChCiO,SAAS,EAAEpL,QAAS;MACpBqL,aAAa,EAAE3B,YAAa;MAC5B4B,QAAQ,EAAE9D,OAAQ;MAClB+D,KAAK,EAAEP;IAAU,GACblM,KAAK,gBAETxD,KAAA,CAAA2D,aAAA,CAACvC,uBAAuB;MACtBuB,EAAE,EAAE+K,WAAY;MAChBgB,IAAI,EAAC,MAAM;MACX,cAAYP,IAAI,CAACY,CAAC,CAAC,gCAAgC;IAAE,GAEpDxL,KAAK,CAACoH,GAAG,CAAC,UAACjD,SAAS,EAAEO,CAAC,EAAK;MAC3B,IAAMiI,OAAO,MAAA/L,MAAA,CAAMwJ,WAAW,OAAAxJ,MAAA,CAAI8D,CAAC,CAAE;MACrC,IAAMkI,UAAU,GAAG9M,QAAQ,CAACqE,SAAS,CAAC;MACtC,oBACE1H,KAAA,CAAA2D,aAAA,CAACxC,sBAAsB;QACrB0C,GAAG,EAAET,KAAK,CAACsE,SAAS,CAAE;QACtB/E,EAAE,EAAEuN,OAAQ;QACZxB,IAAI,EAAC,UAAU;QACf,cACE,OAAOyB,UAAU,KAAK,QAAQ,GAC1BhC,IAAI,CAACY,CAAC,CAAC,gCAAgC,EAAE;UACvCoB,UAAU,EAAVA;QACF,CAAC,CAAC,GACF5B;MACL,GAEA7B,aAAa,CAAC;QACb5I,MAAM,EAAE4D,SAAS;QACjBjD,OAAO,EAAEwD,CAAC,KAAKqC,WAAW,CAACtE,KAAK;QAChCtB,QAAQ,EAAEA,QAAQ;QAClBrB,QAAQ,EAARA,QAAQ;QACRsB,WAAW,EAAE,SAAbA,WAAWA,CAAA,EAAc;UACvB2F,WAAW,CAAC3F,WAAW,CAACsD,CAAC,CAAC;QAC5B,CAAC;QACD3E,EAAE,EAAFA;MACF,CAAC,CACqB,CAAC;IAE7B,CAAC,CAAC,eAEFtD,KAAA,CAAA2D,aAAA,CAAC3C,uBAAuB,qBACtBhB,KAAA,CAAA2D,aAAA,CAACzC,4BAA4B,EAAA0C,QAAA;MAC3B,yBAAuB0K,aAAc;MACrC,iBAAeD,kBAAkB,GAAGX,WAAW,GAAGD,MAAO;MACzD,iBAAeiC,SAAU;MACzB,mBAAiBzC,cAAe;MAChC,WAAQ,wBAAwB;MAChCyB,IAAI,EAAC,UAAU;MACf0B,mBAAmB,EAAE/B,kBAAmB;MACxC3J,QAAQ,EAAEA,QAAS;MACnB2L,MAAM,EAAE/F,WAAW,CAAC9C,UAAW;MAC/BlC,QAAQ,EAAE,SAAVA,QAAQA,CACN6B,CAAsC,EACtC;QACAmD,WAAW,CAAC9E,QAAQ,CAAC2B,CAAC,CAAC;MACzB;IAAE,GACE8G,0BAA0B;MAC9B3F,SAAS,EAAE,SAAXA,SAASA,CACPnB,CAAwC,EACxC;QACA,IAAIkH,kBAAkB,IAAIlH,CAAC,CAACtD,GAAG,KAAK,KAAK,EAAE;UACzC;UACAsD,CAAC,CAACmJ,cAAc,CAAC,CAAC;QACpB;QAEA,IAAIZ,SAAS,EAAE;UACb;UACA,IAAIvI,CAAC,CAACtD,GAAG,KAAK,KAAK,EAAE;YACnBsD,CAAC,CAACmJ,cAAc,CAAC,CAAC;YAElBd,OAAO,CAACrI,CAAC,CAAC;UACZ;UACA;UACA,IAAIA,CAAC,CAACtD,GAAG,KAAK,KAAK,IAAIsD,CAAC,CAACtD,GAAG,KAAK,QAAQ,EAAE;YACzCsD,CAAC,CAACoJ,eAAe,CAAC,CAAC;YACnBf,OAAO,CAACrI,CAAC,CAAC;UACZ;QACF,CAAC,MAAM;UACL;UACA,IAAIxF,cAAc,CAACwF,CAAC,CAACtD,GAAG,CAAC,EAAE;YACzB4L,MAAM,CAACtI,CAAC,CAAC;UACX;QACF;QAEAmD,WAAW,CAACP,WAAW,CAACzB,SAAS,CAACnB,CAAC,CAAC;MACtC,CAAE;MACFwF,WAAW,EACT,CAAApJ,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAE1B,MAAM,IAAG,CAAC,GACb,EAAE,GACF8K,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAIwB,IAAI,CAACY,CAAC,CAAC,+BAA+B,CAC1D;MACD/M,GAAG,EAAEwL,SAAU;MACfR,QAAQ,EAAEA,QAAS;MACnBzJ,KAAK,EAAE+G,WAAW,CAAClE;IAAO,EAC3B,CACsB,CACF,CAAC,eAC1BpG,KAAA,CAAA2D,aAAA,CAAC1C,2BAA2B,qBAC1BjB,KAAA,CAAA2D,aAAA,CAAC7C,0BAA0B;MACzB,cAAYsM,IAAI,CAAC2B,CAAC,CAAC,2BAA2B,CAAE;MAChD,kBAAU;MACV,WAAQ,wBAAwB;MAChCyB,IAAI,EAAC,IAAI;MACTC,OAAO,EAAC,UAAU;MAClB/L,QAAQ,EAAEA,QAAS;MACnBgM,IAAI,eAAE1Q,KAAA,CAAA2D,aAAA,CAAC7D,KAAK,MAAE,CAAE;MAChBiF,OAAO,EAAE,SAATA,OAAOA,CAAA;QAAA,OAAQO,SAAQ,CAAC,EAAE,CAAC;MAAA,CAAC;MAC5B0H,QAAQ,EAAE,CAAC,CAAE,CAAC;IAAA,CACf,CAAC,EACDd,OAAO,gBACNlM,KAAA,CAAA2D,aAAA,CAACtD,OAAO;MAACuO,KAAK,EAAC,QAAQ;MAAC4B,IAAI,EAAC;IAAI,CAAE,CAAC,gBAEpCxQ,KAAA,CAAA2D,aAAA,CAAC/C,+BAA+B;MAC9B,WAAQ,0BAA0B;MAClCmE,OAAO,EAAE,SAATA,OAAOA,CAAGoC,CAAmB;QAAA,OAAKuI,SAAS,IAAIF,OAAO,CAACrI,CAAC,CAAC;MAAA;IAAC,gBAE1DnH,KAAA,CAAA2D,aAAA,CAAChD,sBAAsB,MAAE,CACM,CAER,CACN,CAAC;EAE9B,CACc,CAAC;AAErB,CACF,CAAC;AAEDiK,YAAY,CAAC+F,WAAW,GAAG,aAAa;;AAExC;AACA;AACA;AACA;AACA,OAAO,IAAM9F,WAAW,GAAGnK,gBAAgB,CACzC;EACE6B,MAAM,EAANA;AACF,CAAC,EACDqI,YACF,CAAC"}
@@ -6,26 +6,26 @@ import { getFocus } from '../_styles/mixins';
6
6
  import { spacing } from '../_styles/spacing';
7
7
  export var StyledMultiSelectValues = /*#__PURE__*/styled.div.withConfig({
8
8
  displayName: "StyledMultiSelectValues",
9
- componentId: "core-12_33_0__sc-s9ym9q-0"
9
+ componentId: "core-12_34_1__sc-s9ym9q-0"
10
10
  })(["display:flex;flex-wrap:wrap;margin-bottom:2px;margin-left:", "px;margin-right:", "px;margin-top:2px;min-width:0;width:100%;"], spacing.md, spacing.xs);
11
11
  export var StyledMultiSelectToken = /*#__PURE__*/styled.div.withConfig({
12
12
  displayName: "StyledMultiSelectToken",
13
- componentId: "core-12_33_0__sc-s9ym9q-1"
13
+ componentId: "core-12_34_1__sc-s9ym9q-1"
14
14
  })(["margin-bottom:2px;margin-right:", "px;margin-top:2px;flex:0 1 auto;> div{max-width:178px;width:100%;}"], spacing.xs);
15
15
  export var StyledMultiSelectSearchInput = /*#__PURE__*/styled.input.withConfig({
16
16
  displayName: "StyledMultiSelectSearchInput",
17
- componentId: "core-12_33_0__sc-s9ym9q-2"
17
+ componentId: "core-12_34_1__sc-s9ym9q-2"
18
18
  })(["background-color:transparent;border-width:0;font-family:inherit;padding:0;height:24px;width:100%;", " ", " &::-ms-clear{display:none;}&:focus{box-shadow:none;outline:none;}&::placeholder{color:", ";}"], getTypographyIntent('body'), function (_ref) {
19
19
  var $isNavigatingTokens = _ref.$isNavigatingTokens;
20
20
  return $isNavigatingTokens && css(["color:transparent;"]);
21
21
  }, colors.gray45);
22
22
  export var StyledMultiSelectSearch = /*#__PURE__*/styled.div.withConfig({
23
23
  displayName: "StyledMultiSelectSearch",
24
- componentId: "core-12_33_0__sc-s9ym9q-3"
24
+ componentId: "core-12_34_1__sc-s9ym9q-3"
25
25
  })(["margin-bottom:2px;margin-right:", "px;margin-top:2px;flex:1;max-width:100%;min-width:24px;"], spacing.xs);
26
26
  export var StyledMultiSelectSearchIcon = /*#__PURE__*/styled.div.withConfig({
27
27
  displayName: "StyledMultiSelectSearchIcon",
28
- componentId: "core-12_33_0__sc-s9ym9q-4"
28
+ componentId: "core-12_34_1__sc-s9ym9q-4"
29
29
  })(["align-items:center;align-self:flex-start;display:flex;height:34px;justify-content:flex-end;margin-left:", "px;margin-right:", "px;min-width:40px;width:40px;"], spacing.xs, spacing.md);
30
30
  export var StyledMultiSelectClearIcon = StyledSelectClearIcon;
31
31
  export var StyledMultiSelectArrowContainer = StyledSelectArrowContainer;
@@ -33,7 +33,7 @@ export var StyledMultiSelectArrow = StyledSelectArrow;
33
33
  export var StyledMultiSelectMenu = StyledSelectMenu;
34
34
  export var StyledMultiSelectButton = /*#__PURE__*/styled(StyledSelectButton).withConfig({
35
35
  displayName: "StyledMultiSelectButton",
36
- componentId: "core-12_33_0__sc-s9ym9q-5"
36
+ componentId: "core-12_34_1__sc-s9ym9q-5"
37
37
  })(["height:auto;padding:0;white-space:normal;&:focus-within{", "}", ""], getFocus(), function (_ref2) {
38
38
  var $emptyValue = _ref2.$emptyValue;
39
39
  return $emptyValue && css(["", "{cursor:pointer;}"], StyledMultiSelectSearchInput);
@@ -6,14 +6,14 @@ export var optionMinHeight = 32;
6
6
  export var defaultMenuHeight = 64;
7
7
  export var StyledOptions = /*#__PURE__*/styled.div.withConfig({
8
8
  displayName: "StyledOptions",
9
- componentId: "core-12_33_0__sc-3o6zya-0"
9
+ componentId: "core-12_34_1__sc-3o6zya-0"
10
10
  })([""]);
11
11
  export var StyledItem = /*#__PURE__*/styled.div.withConfig({
12
12
  displayName: "StyledItem",
13
- componentId: "core-12_33_0__sc-3o6zya-1"
13
+ componentId: "core-12_34_1__sc-3o6zya-1"
14
14
  })(["", ";padding:", "px ", "px;cursor:pointer;list-style-type:none;"], getTypographyIntent('body'), spacing.xs, spacing.md);
15
15
  export var StyledGroup = /*#__PURE__*/styled.div.withConfig({
16
16
  displayName: "StyledGroup",
17
- componentId: "core-12_33_0__sc-3o6zya-2"
17
+ componentId: "core-12_34_1__sc-3o6zya-2"
18
18
  })(["", ";padding:", "px ", "px ", "px;font-weight:", ";background:white;list-style-type:none;"], getTypographyIntent('body'), spacing.md, spacing.md, spacing.xs, typographyWeights.semibold);
19
19
  //# sourceMappingURL=NextMenu.styles.js.map
@@ -14,7 +14,7 @@ var variantColorMap = {
14
14
  };
15
15
  var StyledNotation = /*#__PURE__*/styled.i.withConfig({
16
16
  displayName: "StyledNotation",
17
- componentId: "core-12_33_0__sc-160q1m6-0"
17
+ componentId: "core-12_34_1__sc-160q1m6-0"
18
18
  })(["", " color:", ";font-style:italic;"], getTypographyIntent('small'), function (_ref) {
19
19
  var $variant = _ref.$variant;
20
20
  return $variant ? colors[variantColorMap[$variant]] : colors.gray15;