@procore/core-react 12.53.3 → 12.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/dist/AnchorNavigation/AnchorNavigation.styles.js +4 -4
  3. package/dist/Avatar/Avatar.styles.js +5 -5
  4. package/dist/AvatarStack/AvatarStack.js +2 -0
  5. package/dist/AvatarStack/AvatarStack.js.map +1 -1
  6. package/dist/AvatarStack/AvatarStack.styles.js +8 -8
  7. package/dist/Badge/Badge.styles.js +2 -2
  8. package/dist/BadgePill/BadgePill.styles.js +4 -4
  9. package/dist/Banner/Banner.d.ts +1 -0
  10. package/dist/Banner/Banner.js +31 -14
  11. package/dist/Banner/Banner.js.map +1 -1
  12. package/dist/Banner/Banner.styles.d.ts +10 -0
  13. package/dist/Banner/Banner.styles.js +29 -12
  14. package/dist/Banner/Banner.styles.js.map +1 -1
  15. package/dist/Banner/Banner.types.d.ts +1 -1
  16. package/dist/Banner/Banner.types.js.map +1 -1
  17. package/dist/Banner/index.d.ts +1 -1
  18. package/dist/Banner/index.js +1 -1
  19. package/dist/Banner/index.js.map +1 -1
  20. package/dist/Box/Box.styles.js +1 -1
  21. package/dist/Breadcrumbs/Breadcrumbs.styles.js +7 -6
  22. package/dist/Breadcrumbs/Breadcrumbs.styles.js.map +1 -1
  23. package/dist/Button/Button.styles.js +5 -5
  24. package/dist/Calendar/Calendar.js +97 -10
  25. package/dist/Calendar/Calendar.js.map +1 -1
  26. package/dist/Calendar/Calendar.styles.d.ts +3 -0
  27. package/dist/Calendar/Calendar.styles.js +13 -9
  28. package/dist/Calendar/Calendar.styles.js.map +1 -1
  29. package/dist/Calendar/Calendar.types.js.map +1 -1
  30. package/dist/Card/Card.styles.js +1 -1
  31. package/dist/Checkbox/Checkbox.styles.js +6 -6
  32. package/dist/ContactItem/ContactItem.styles.js +5 -5
  33. package/dist/Content/Content.styles.js +2 -2
  34. package/dist/DateInput/DateInput.js +1 -1
  35. package/dist/DateInput/DateInput.js.map +1 -1
  36. package/dist/DateInput/DateInput.styles.js +8 -8
  37. package/dist/DateInput/DateInput.styles.js.map +1 -1
  38. package/dist/DateSelect/DateSelect.js +60 -29
  39. package/dist/DateSelect/DateSelect.js.map +1 -1
  40. package/dist/DateSelect/DateSelect.types.d.ts +2 -2
  41. package/dist/DateSelect/DateSelect.types.js.map +1 -1
  42. package/dist/DetailPage/DetailPage.styles.js +11 -9
  43. package/dist/DetailPage/DetailPage.styles.js.map +1 -1
  44. package/dist/Dropdown/Dropdown.styles.js +3 -3
  45. package/dist/DropdownFlyout/DropdownFlyout.js +8 -0
  46. package/dist/DropdownFlyout/DropdownFlyout.js.map +1 -1
  47. package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
  48. package/dist/Dropzone/Dropzone.js +1 -1
  49. package/dist/Dropzone/Dropzone.styles.js +9 -9
  50. package/dist/EmptyState/EmptyState.styles.js +6 -6
  51. package/dist/Field/Field.styles.js +3 -3
  52. package/dist/FileList/FileList.styles.js +3 -3
  53. package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +17 -14
  54. package/dist/FileSelect/FileExplorer/FileExplorer.styles.js.map +1 -1
  55. package/dist/FileSelect/FileExplorer/FileExplorerModal.js +4 -2
  56. package/dist/FileSelect/FileExplorer/FileExplorerModal.js.map +1 -1
  57. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +5 -4
  58. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js.map +1 -1
  59. package/dist/FileSelect/FileSelect.styles.js +2 -2
  60. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
  61. package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
  62. package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
  63. package/dist/FileSelect/LocalSource/LocalSource.styles.js +6 -5
  64. package/dist/FileSelect/LocalSource/LocalSource.styles.js.map +1 -1
  65. package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
  66. package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +13 -11
  67. package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js.map +1 -1
  68. package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
  69. package/dist/FileToken/FileToken.styles.js +6 -6
  70. package/dist/FilterToken/FilterToken.styles.js +5 -5
  71. package/dist/FlexList/FlexList.styles.js +1 -1
  72. package/dist/Form/Form.js +5 -0
  73. package/dist/Form/Form.js.map +1 -1
  74. package/dist/Form/Form.styles.js +13 -13
  75. package/dist/Form/StyledFormikForm.styles.js +2 -2
  76. package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
  77. package/dist/Grid/Grid.styles.js +2 -2
  78. package/dist/GroupSelect/GroupSelect.styles.js +1 -1
  79. package/dist/Input/Input.styles.js +1 -1
  80. package/dist/Link/Link.styles.js +1 -1
  81. package/dist/ListPage/ListPage.styles.js +12 -11
  82. package/dist/ListPage/ListPage.styles.js.map +1 -1
  83. package/dist/Loader/Loader.styles.js +2 -2
  84. package/dist/MenuImperative/MenuImperative.styles.js +11 -11
  85. package/dist/Modal/Modal.js +0 -2
  86. package/dist/Modal/Modal.js.map +1 -1
  87. package/dist/Modal/Modal.styles.js +44 -32
  88. package/dist/Modal/Modal.styles.js.map +1 -1
  89. package/dist/MultiSelect/MultiSelect.js +3 -1
  90. package/dist/MultiSelect/MultiSelect.js.map +1 -1
  91. package/dist/MultiSelect/MultiSelect.styles.js +8 -8
  92. package/dist/MultiSelect/MultiSelect.types.d.ts +5 -0
  93. package/dist/MultiSelect/MultiSelect.types.js.map +1 -1
  94. package/dist/NextMenu/NextMenu.styles.js +3 -3
  95. package/dist/NextTile/NextTile.styles.js +5 -5
  96. package/dist/Notation/Notation.js +1 -1
  97. package/dist/NumberInput/NumberInput.styles.js +7 -7
  98. package/dist/Overlay/OverlayArrow.styles.js +1 -1
  99. package/dist/OverlayTrigger/OverlayTrigger.js +12 -3
  100. package/dist/OverlayTrigger/OverlayTrigger.js.map +1 -1
  101. package/dist/OverlayTrigger/OverlayTrigger.types.d.ts +14 -0
  102. package/dist/OverlayTrigger/OverlayTrigger.types.js.map +1 -1
  103. package/dist/OverlayTrigger/a11yPresets.d.ts +19 -3
  104. package/dist/OverlayTrigger/a11yPresets.js +16 -6
  105. package/dist/OverlayTrigger/a11yPresets.js.map +1 -1
  106. package/dist/PageLayout/PageLayout.js +15 -4
  107. package/dist/PageLayout/PageLayout.js.map +1 -1
  108. package/dist/PageLayout/PageLayout.styles.js +35 -34
  109. package/dist/PageLayout/PageLayout.styles.js.map +1 -1
  110. package/dist/PageLayout/PageLayout.types.d.ts +1 -0
  111. package/dist/PageLayout/PageLayout.types.js.map +1 -1
  112. package/dist/PageLayout/PageLayout.utils.d.ts +11 -0
  113. package/dist/PageLayout/PageLayout.utils.js +45 -0
  114. package/dist/PageLayout/PageLayout.utils.js.map +1 -1
  115. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.js +2 -2
  116. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.js.map +1 -1
  117. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.d.ts +5 -0
  118. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +9 -2
  119. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js.map +1 -1
  120. package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
  121. package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
  122. package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
  123. package/dist/Pagination/Pagination.styles.js +5 -5
  124. package/dist/Panel/Panel.styles.js +17 -16
  125. package/dist/Panel/Panel.styles.js.map +1 -1
  126. package/dist/Pill/Pill.styles.js +3 -3
  127. package/dist/PillSelect/PillSelect.styles.js +5 -5
  128. package/dist/Popover/Popover.js +6 -1
  129. package/dist/Popover/Popover.js.map +1 -1
  130. package/dist/Popover/Popover.styles.js +2 -2
  131. package/dist/Portal/Portal.styles.js +1 -1
  132. package/dist/ProgressBar/ProgressBar.styles.js +2 -2
  133. package/dist/RadioButton/RadioButton.styles.js +3 -3
  134. package/dist/Required/Required.styles.js +3 -3
  135. package/dist/Search/Search.styles.js +5 -5
  136. package/dist/Section/Section.js +0 -1
  137. package/dist/Section/Section.js.map +1 -1
  138. package/dist/Section/Section.styles.js +7 -7
  139. package/dist/SegmentedController/SegmentedController.styles.js +4 -4
  140. package/dist/Select/Select.js +5 -2
  141. package/dist/Select/Select.js.map +1 -1
  142. package/dist/Select/Select.styles.js +8 -8
  143. package/dist/Semantic/Semantic.styles.js +9 -9
  144. package/dist/Slider/Slider.styles.js +5 -5
  145. package/dist/Spinner/Spinner.styles.js +7 -7
  146. package/dist/SplitViewCard/SplitViewCard.styles.js +15 -13
  147. package/dist/SplitViewCard/SplitViewCard.styles.js.map +1 -1
  148. package/dist/SuperSelect/SuperSelect.js +8 -0
  149. package/dist/SuperSelect/SuperSelect.js.map +1 -1
  150. package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
  151. package/dist/SuperSelect/SuperSelect.styles.js +40 -40
  152. package/dist/SuperSelect/SuperSelect.types.d.ts +7 -0
  153. package/dist/SuperSelect/SuperSelect.types.js.map +1 -1
  154. package/dist/SuperSelect/useSuperSelect.d.ts +1 -1
  155. package/dist/SuperSelect/useSuperSelect.js +27 -6
  156. package/dist/SuperSelect/useSuperSelect.js.map +1 -1
  157. package/dist/Switch/Switch.styles.js +4 -4
  158. package/dist/Table/Table.js +63 -2
  159. package/dist/Table/Table.js.map +1 -1
  160. package/dist/Table/Table.styles.js +31 -30
  161. package/dist/Table/Table.styles.js.map +1 -1
  162. package/dist/TableShelf/TableShelf.styles.js +5 -5
  163. package/dist/Tabs/Tabs.js +11 -3
  164. package/dist/Tabs/Tabs.js.map +1 -1
  165. package/dist/Tabs/Tabs.styles.js +16 -16
  166. package/dist/Tearsheet/Tearsheet.js +59 -34
  167. package/dist/Tearsheet/Tearsheet.js.map +1 -1
  168. package/dist/Tearsheet/Tearsheet.styles.js +5 -5
  169. package/dist/TextArea/TextArea.styles.js +1 -1
  170. package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
  171. package/dist/Thumbnail/Thumbnail.styles.d.ts +1 -0
  172. package/dist/Thumbnail/Thumbnail.styles.js +22 -22
  173. package/dist/Thumbnail/Thumbnail.styles.js.map +1 -1
  174. package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
  175. package/dist/TieredSelect/LeafSelectionTieredSelect.js +3 -1
  176. package/dist/TieredSelect/LeafSelectionTieredSelect.js.map +1 -1
  177. package/dist/TieredSelect/TierSelectionTieredSelect.js +3 -1
  178. package/dist/TieredSelect/TierSelectionTieredSelect.js.map +1 -1
  179. package/dist/TieredSelect/TieredSelect.styles.js +9 -9
  180. package/dist/Tile/Tile.styles.js +8 -8
  181. package/dist/Title/Title.styles.js +11 -9
  182. package/dist/Title/Title.styles.js.map +1 -1
  183. package/dist/Toast/Toast.styles.js +3 -3
  184. package/dist/ToggleButton/ToggleButton.styles.js +1 -1
  185. package/dist/Token/Token.styles.js +5 -5
  186. package/dist/ToolHeader/ToolHeader.styles.js +15 -10
  187. package/dist/ToolHeader/ToolHeader.styles.js.map +1 -1
  188. package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
  189. package/dist/Tooltip/Tooltip.js +7 -1
  190. package/dist/Tooltip/Tooltip.js.map +1 -1
  191. package/dist/Tooltip/Tooltip.styles.js +3 -3
  192. package/dist/Tree/Tree.js +1 -1
  193. package/dist/Tree/Tree.styles.js +10 -10
  194. package/dist/Typeahead/Typeahead.styles.js +4 -4
  195. package/dist/Typography/Typography.styles.js +1 -1
  196. package/dist/Typography/Typography.table.story.js +2 -2
  197. package/dist/_hooks/I18n.d.ts +33 -13
  198. package/dist/_hooks/I18n.js +2 -0
  199. package/dist/_hooks/I18n.js.map +1 -1
  200. package/dist/_locales/de-DE.json +1 -0
  201. package/dist/_locales/en-AU.json +1 -0
  202. package/dist/_locales/en-CA.json +1 -0
  203. package/dist/_locales/en-GB.json +1 -0
  204. package/dist/_locales/en.json +3 -1
  205. package/dist/_locales/es-ES.json +1 -0
  206. package/dist/_locales/es.json +1 -0
  207. package/dist/_locales/fr-CA.json +1 -0
  208. package/dist/_locales/fr-FR.json +1 -0
  209. package/dist/_locales/is-IS.json +1 -0
  210. package/dist/_locales/it-IT.json +1 -0
  211. package/dist/_locales/ja-JP.json +1 -0
  212. package/dist/_locales/nb-NO.json +2 -1
  213. package/dist/_locales/pl-PL.json +1 -0
  214. package/dist/_locales/pseudo.json +3 -1
  215. package/dist/_locales/pt-BR.json +1 -0
  216. package/dist/_locales/pt-PT.json +3 -2
  217. package/dist/_locales/th-TH.json +1 -0
  218. package/dist/_locales/zh-SG.json +1 -0
  219. package/dist/_locales/zh-TW.json +2 -1
  220. package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
  221. package/dist/_storyHelpers_/components/StoryGrid.js +5 -4
  222. package/dist/_storyHelpers_/components/StoryGrid.js.map +1 -1
  223. package/dist/_storyHelpers_/highZoom.d.ts +68 -0
  224. package/dist/_storyHelpers_/highZoom.js +72 -0
  225. package/dist/_storyHelpers_/highZoom.js.map +1 -0
  226. package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +7 -7
  227. package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
  228. package/dist/_typedoc/AvatarStack/AvatarStack.types.json +25 -25
  229. package/dist/_typedoc/Badge/Badge.types.json +6 -6
  230. package/dist/_typedoc/Banner/Banner.types.json +18 -18
  231. package/dist/_typedoc/Box/Box.types.json +68 -68
  232. package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +12 -12
  233. package/dist/_typedoc/Button/Button.types.json +14 -14
  234. package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
  235. package/dist/_typedoc/Card/Card.types.json +6 -6
  236. package/dist/_typedoc/Checkbox/Checkbox.types.json +8 -8
  237. package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
  238. package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
  239. package/dist/_typedoc/DateSelect/DateSelect.types.json +45 -14
  240. package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
  241. package/dist/_typedoc/DetailPageTemplate/DetailPageTemplate.types.json +3 -3
  242. package/dist/_typedoc/Dropdown/Dropdown.types.json +38 -38
  243. package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +37 -37
  244. package/dist/_typedoc/Dropzone/Dropzone.types.json +50 -50
  245. package/dist/_typedoc/EmptyState/EmptyState.types.json +18 -18
  246. package/dist/_typedoc/FileList/FileList.types.json +9 -9
  247. package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
  248. package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
  249. package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
  250. package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +17 -17
  251. package/dist/_typedoc/Flex/Flex.types.json +27 -27
  252. package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
  253. package/dist/_typedoc/Form/Form.types.json +875 -773
  254. package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
  255. package/dist/_typedoc/Grid/Grid.types.json +8 -8
  256. package/dist/_typedoc/GroupSelect/GroupSelect.types.json +99 -79
  257. package/dist/_typedoc/Input/Input.types.json +2 -2
  258. package/dist/_typedoc/Link/Link.types.json +1 -1
  259. package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
  260. package/dist/_typedoc/Menu/Menu.types.json +62 -62
  261. package/dist/_typedoc/MenuImperative/MenuImperative.types.json +90 -90
  262. package/dist/_typedoc/Modal/Modal.types.json +48 -48
  263. package/dist/_typedoc/MultiSelect/MultiSelect.types.json +43 -33
  264. package/dist/_typedoc/NextTile/NextTile.types.json +33 -33
  265. package/dist/_typedoc/Notation/Notation.types.json +4 -4
  266. package/dist/_typedoc/NumberInput/NumberInput.types.json +52 -52
  267. package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +44 -33
  268. package/dist/_typedoc/PageLayout/PageLayout.types.json +42 -42
  269. package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
  270. package/dist/_typedoc/Panel/Panel.types.json +28 -28
  271. package/dist/_typedoc/Pill/Pill.types.json +2 -2
  272. package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
  273. package/dist/_typedoc/Popover/Popover.types.json +15 -15
  274. package/dist/_typedoc/ProgressBar/ProgressBar.types.json +7 -7
  275. package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
  276. package/dist/_typedoc/Required/Required.types.json +5 -5
  277. package/dist/_typedoc/Search/Search.types.json +18 -18
  278. package/dist/_typedoc/Section/Section.types.json +15 -15
  279. package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
  280. package/dist/_typedoc/Select/Select.types.json +67 -67
  281. package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
  282. package/dist/_typedoc/SettingsPageTemplate/SettingsPageTemplate.types.json +3 -3
  283. package/dist/_typedoc/Slider/Slider.types.json +6 -6
  284. package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
  285. package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +14 -14
  286. package/dist/_typedoc/Table/Table.types.json +136 -105
  287. package/dist/_typedoc/Tabs/Tablist.types.json +10 -10
  288. package/dist/_typedoc/Tabs/Tabs.types.json +20 -20
  289. package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
  290. package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
  291. package/dist/_typedoc/TextEditor/TextEditor.types.json +11 -11
  292. package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +4 -4
  293. package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
  294. package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +43 -43
  295. package/dist/_typedoc/TieredSelect/TieredSelect.types.json +29 -29
  296. package/dist/_typedoc/Tile/Tile.types.json +8 -8
  297. package/dist/_typedoc/Title/Title.types.json +1 -1
  298. package/dist/_typedoc/Toast/Toast.types.json +4 -4
  299. package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
  300. package/dist/_typedoc/Token/Token.types.json +7 -7
  301. package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
  302. package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +8 -8
  303. package/dist/_typedoc/ToolLandingPageTemplate/ToolLandingPageTemplate.types.json +2 -2
  304. package/dist/_typedoc/Tooltip/Tooltip.types.json +15 -15
  305. package/dist/_typedoc/Tree/Tree.types.json +132 -132
  306. package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
  307. package/dist/_typedoc/Typography/Typography.types.json +9 -9
  308. package/dist/_typedoc/_utils/types.json +3 -3
  309. package/dist/_typedoc/a11y-tips.json +1 -1
  310. package/package.json +2 -2
  311. package/dist/_hooks/ScrollLock.d.ts +0 -1
  312. package/dist/_hooks/ScrollLock.js +0 -31
  313. package/dist/_hooks/ScrollLock.js.map +0 -1
@@ -1,6 +1,7 @@
1
1
  import { Warning } from '@procore/core-icons';
2
2
  import styled, { css } from 'styled-components';
3
3
  import { Card } from '../Card/Card';
4
+ import { mediaHeightDown } from '../PageLayout/PageLayout.utils';
4
5
  import { StyledRequiredContainer } from '../Required/Required.styles';
5
6
  import { StyledSection, StyledSectionInner } from '../Section/Section.styles';
6
7
  import { Typography } from '../Typography/Typography';
@@ -33,16 +34,16 @@ var screenWidthPixelBreakpoints = {
33
34
  };
34
35
  export var StyledModal = /*#__PURE__*/styled.div.withConfig({
35
36
  displayName: "StyledModal",
36
- componentId: "core-12_53_3__sc-1ijdug2-0"
37
+ componentId: "core-12_54_0__sc-1ijdug2-0"
37
38
  })(["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);
38
39
  export var StyledModalButtons = /*#__PURE__*/styled.div.withConfig({
39
40
  displayName: "StyledModalButtons",
40
- componentId: "core-12_53_3__sc-1ijdug2-1"
41
+ componentId: "core-12_54_0__sc-1ijdug2-1"
41
42
  })(["display:flex;flex:0 0 auto;margin-left:", "px;> * + *{margin-left:", "px;}"], spacing.lg, spacing.sm);
42
43
  export var StyledModalContainer = /*#__PURE__*/styled(Card).withConfig({
43
44
  displayName: "StyledModalContainer",
44
- componentId: "core-12_53_3__sc-1ijdug2-2"
45
- })(["display:flex;flex-direction:row;position:absolute;z-index:2;", " ", " ", ""], function (_ref) {
45
+ componentId: "core-12_54_0__sc-1ijdug2-2"
46
+ })(["display:flex;flex-direction:row;position:absolute;z-index:2;", " ", " ", " ", ""], function (_ref) {
46
47
  var $compact = _ref.$compact;
47
48
  if (!$compact) {
48
49
  return '';
@@ -62,48 +63,59 @@ export var StyledModalContainer = /*#__PURE__*/styled(Card).withConfig({
62
63
  }
63
64
  // TODO deprecated, uses new centering, required width
64
65
  return css(["left:50vw;transform:translateX(-50%) ", ";"], $placement === 'center' && 'translateY(-50%)');
66
+ }, function (_ref4) {
67
+ var $compact = _ref4.$compact,
68
+ $placement = _ref4.$placement;
69
+ return !$compact && css(["@media ", "{max-height:calc( ", " );overflow-y:auto;}@media (max-width:", "px){top:0;left:0;right:0;transform:none;margin:0;width:100vw;max-width:none;height:100vh;max-height:100vh;border-radius:0;overflow-y:auto;}"], mediaHeightDown["short"], $placement === 'top' ? "95vh - ".concat(spacing.sm, "px") : "100vh - ".concat(spacing.sm * 2, "px"), screenWidthPixelBreakpoints.mobile.small.max);
65
70
  });
66
71
  export var StyledModalFooter = /*#__PURE__*/styled.div.withConfig({
67
72
  displayName: "StyledModalFooter",
68
- componentId: "core-12_53_3__sc-1ijdug2-3"
73
+ componentId: "core-12_54_0__sc-1ijdug2-3"
69
74
  })(["align-items:center;display:flex;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end;padding:", "px;"], spacing.lg);
70
75
  export var StyledModalBody = /*#__PURE__*/styled.div.withConfig({
71
76
  displayName: "StyledModalBody",
72
- componentId: "core-12_53_3__sc-1ijdug2-4"
73
- })(["", " &: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;}}> ", "{margin-bottom:", "px;}", ""], getTypographyIntent('body'), getFocusInset(), colors.gray15, function (_ref4) {
74
- var $noSideSpacing = _ref4.$noSideSpacing;
77
+ componentId: "core-12_54_0__sc-1ijdug2-4"
78
+ })(["", " &: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;}}> ", "{margin-bottom:", "px;}", ""], getTypographyIntent('body'), getFocusInset(), colors.gray15, function (_ref5) {
79
+ var $noSideSpacing = _ref5.$noSideSpacing;
75
80
  return css(["padding:", "px ", "px;"], spacing.lg, $noSideSpacing ? 0 : spacing.lg);
76
- }, function (_ref5) {
77
- var $compact = _ref5.$compact;
81
+ }, function (_ref6) {
82
+ var $compact = _ref6.$compact;
78
83
  if (!$compact) {
79
84
  // TODO deprecated, moving width up. delete line in breaking change
80
85
  return css(["max-width:", ";"], modalMaxWidth);
81
86
  }
82
- }, StyledSection, StyledSectionInner, StyledRequiredContainer, spacing.lg, function (_ref6) {
83
- var $isOverflowingY = _ref6.$isOverflowingY;
87
+ }, function (_ref7) {
88
+ var $compact = _ref7.$compact;
89
+ return !$compact && css(["@media ", "{flex:none;max-height:none !important;}@media (max-width:", "px){padding-top:0;}"], mediaHeightDown["short"], screenWidthPixelBreakpoints.mobile.small.max);
90
+ }, StyledSection, StyledSectionInner, StyledRequiredContainer, spacing.lg, function (_ref8) {
91
+ var $isOverflowingY = _ref8.$isOverflowingY;
84
92
  return $isOverflowingY && css(["& + ", "{border-top-width:1px;border-top-style:solid;border-top-color:", ";", "{border-top:none;}}"], StyledModalFooter, colors.gray85, StyledModalFooterSummary);
85
93
  });
86
94
  export var StyledModalContent = /*#__PURE__*/styled.div.withConfig({
87
95
  displayName: "StyledModalContent",
88
- componentId: "core-12_53_3__sc-1ijdug2-5"
89
- })(["display:flex;flex-direction:column;max-height:90vh;overflow:hidden;width:100%;", ""], function (_ref7) {
90
- var _ref7$$compact = _ref7.$compact,
91
- $compact = _ref7$$compact === void 0 ? false : _ref7$$compact;
96
+ componentId: "core-12_54_0__sc-1ijdug2-5"
97
+ })(["display:flex;flex-direction:column;max-height:90vh;overflow:hidden;width:100%;", " ", ""], function (_ref9) {
98
+ var _ref9$$compact = _ref9.$compact,
99
+ $compact = _ref9$$compact === void 0 ? false : _ref9$$compact;
92
100
  if (!$compact) {
93
101
  return '';
94
102
  }
95
103
  return css(["max-height:unset;"]);
104
+ }, function (_ref0) {
105
+ var _ref0$$compact = _ref0.$compact,
106
+ $compact = _ref0$$compact === void 0 ? false : _ref0$$compact;
107
+ return !$compact && css(["@media ", "{max-height:none;overflow:visible;}"], mediaHeightDown["short"]);
96
108
  });
97
109
  export var StyledModalFooterNotation = /*#__PURE__*/styled(Typography).withConfig({
98
110
  displayName: "StyledModalFooterNotation",
99
- componentId: "core-12_53_3__sc-1ijdug2-6"
111
+ componentId: "core-12_54_0__sc-1ijdug2-6"
100
112
  })(["flex-grow:1;"]);
101
113
  export var StyledModalHeader = /*#__PURE__*/styled.div.withConfig({
102
114
  displayName: "StyledModalHeader",
103
- componentId: "core-12_53_3__sc-1ijdug2-7"
104
- })(["align-items:flex-start;color:", ";display:flex;flex:0 0 auto;position:relative;", " padding:", "px"], colors.gray10, function (_ref8) {
105
- var $compact = _ref8.$compact,
106
- $isBodyScrolled = _ref8.$isBodyScrolled;
115
+ componentId: "core-12_54_0__sc-1ijdug2-7"
116
+ })(["align-items:flex-start;color:", ";display:flex;flex:0 0 auto;position:relative;", " padding:", "px"], colors.gray10, function (_ref1) {
117
+ var $compact = _ref1.$compact,
118
+ $isBodyScrolled = _ref1.$isBodyScrolled;
107
119
  if ($compact) {
108
120
  return css(["border-bottom:1px solid ", ";"], colors.gray85);
109
121
  }
@@ -111,15 +123,15 @@ export var StyledModalHeader = /*#__PURE__*/styled.div.withConfig({
111
123
  }, spacing.lg);
112
124
  export var StyledModalHeading = /*#__PURE__*/styled.div.withConfig({
113
125
  displayName: "StyledModalHeading",
114
- componentId: "core-12_53_3__sc-1ijdug2-8"
115
- })(["", " align-items:center;display:flex;flex:1 1 auto;min-height:36px;padding-right:", "px;", ""], function (_ref9) {
116
- var $compact = _ref9.$compact;
126
+ componentId: "core-12_54_0__sc-1ijdug2-8"
127
+ })(["", " align-items:center;display:flex;flex:1 1 auto;min-height:36px;padding-right:", "px;", ""], function (_ref10) {
128
+ var $compact = _ref10.$compact;
117
129
  return getTypographyIntent($compact ? 'h3' : 'h2');
118
- }, function (_ref0) {
119
- var $compact = _ref0.$compact;
130
+ }, function (_ref11) {
131
+ var $compact = _ref11.$compact;
120
132
  return $compact ? 36 : spacing.lg;
121
- }, function (_ref1) {
122
- var $compact = _ref1.$compact;
133
+ }, function (_ref12) {
134
+ var $compact = _ref12.$compact;
123
135
  if (!$compact) {
124
136
  return '';
125
137
  }
@@ -127,18 +139,18 @@ export var StyledModalHeading = /*#__PURE__*/styled.div.withConfig({
127
139
  });
128
140
  export var StyledModalCancel = /*#__PURE__*/styled.div.withConfig({
129
141
  displayName: "StyledModalCancel",
130
- componentId: "core-12_53_3__sc-1ijdug2-9"
142
+ componentId: "core-12_54_0__sc-1ijdug2-9"
131
143
  })(["flex:0 0 auto;"]);
132
144
  export var StyledModalScrim = /*#__PURE__*/styled.div.withConfig({
133
145
  displayName: "StyledModalScrim",
134
- componentId: "core-12_53_3__sc-1ijdug2-10"
146
+ componentId: "core-12_54_0__sc-1ijdug2-10"
135
147
  })(["background:hsla(200,8%,10%,0.6);height:100vh;left:0;position:absolute;top:0;width:100vw;z-index:1;"]);
136
148
  export var StyledModalWarningIcon = /*#__PURE__*/styled(Warning).withConfig({
137
149
  displayName: "StyledModalWarningIcon",
138
- componentId: "core-12_53_3__sc-1ijdug2-11"
150
+ componentId: "core-12_54_0__sc-1ijdug2-11"
139
151
  })(["color:", ";margin-right:", "px;"], colors.yellow40, spacing.sm);
140
152
  export var StyledModalFooterSummary = /*#__PURE__*/styled.div.withConfig({
141
153
  displayName: "StyledModalFooterSummary",
142
- componentId: "core-12_53_3__sc-1ijdug2-12"
154
+ componentId: "core-12_54_0__sc-1ijdug2-12"
143
155
  })(["", " background-color:", ";border-bottom:1px solid ", ";border-top:1px solid ", ";color:", ";flex:1 1 100%;font-style:italic;margin:-", "px -", "px ", "px;padding:", "px;"], getTypographyIntent('small'), colors.gray98, colors.gray85, colors.gray85, colors.gray15, spacing.lg, spacing.lg, spacing.lg, spacing.lg);
144
156
  //# sourceMappingURL=Modal.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.styles.js","names":["Warning","styled","css","Card","StyledRequiredContainer","StyledSection","StyledSectionInner","Typography","getTypographyIntent","colors","getFocusInset","spacing","fadeInClassName","fadeOutClassName","modalMaxWidth","modalPixelGutter","xl","modalPixelWidths","sm","md","lg","compactModalFullscreenMaxHeight","screenWidthPixelBreakpoints","mobile","small","min","max","large","StyledModal","div","withConfig","displayName","componentId","StyledModalButtons","StyledModalContainer","_ref","$compact","_ref2","$placement","_ref3","$width","StyledModalBody","StyledModalFooter","gray15","_ref4","$noSideSpacing","_ref5","_ref6","$isOverflowingY","gray85","StyledModalFooterSummary","StyledModalContent","_ref7","_ref7$$compact","StyledModalFooterNotation","StyledModalHeader","gray10","_ref8","$isBodyScrolled","StyledModalHeading","_ref9","_ref0","_ref1","StyledModalCancel","StyledModalScrim","StyledModalWarningIcon","yellow40","gray98"],"sources":["../../src/Modal/Modal.styles.ts"],"sourcesContent":["import { Warning } from '@procore/core-icons'\nimport styled, { css } from 'styled-components'\nimport { Card } from '../Card/Card'\nimport { StyledRequiredContainer } from '../Required/Required.styles'\nimport { StyledSection, StyledSectionInner } from '../Section/Section.styles'\nimport { Typography } from '../Typography/Typography'\nimport { getTypographyIntent } from '../Typography/Typography.styles'\nimport { colors } from '../_styles/colors'\nimport { getFocusInset } from '../_styles/mixins'\nimport { spacing } from '../_styles/spacing'\nimport type { ModalPlacement, ModalWidth } from './Modal.types'\n\nexport const fadeInClassName = 'fade-in'\nexport const fadeOutClassName = 'fade-out'\nexport const modalMaxWidth = '640px'\nexport const modalPixelGutter = spacing.xl\nexport const modalPixelWidths = {\n sm: 432,\n md: 688,\n lg: 1152,\n xl: 1920,\n}\n\nconst compactModalFullscreenMaxHeight = 940\nconst screenWidthPixelBreakpoints = {\n mobile: {\n small: {\n min: 0,\n max: 439,\n },\n large: {\n min: 440,\n max: 767,\n },\n },\n}\n\nexport const StyledModal = styled.div`\n display: flex;\n height: 100vh;\n position: absolute;\n opacity: 0;\n transition: 0.3s opacity ease;\n width: 100vw;\n z-index: 0;\n pointer-events: none;\n\n &.${fadeInClassName} {\n opacity: 1;\n pointer-events: auto;\n }\n\n &.${fadeOutClassName} {\n opacity: 0;\n pointer-events: none;\n }\n`\n\nexport const StyledModalButtons = styled.div`\n display: flex;\n flex: 0 0 auto;\n margin-left: ${spacing.lg}px;\n\n > * + * {\n margin-left: ${spacing.sm}px;\n }\n`\n\nexport const StyledModalContainer = styled(Card)<{\n $compact: boolean\n $placement: ModalPlacement\n $width?: ModalWidth\n}>`\n display: flex;\n flex-direction: row;\n position: absolute;\n z-index: 2;\n\n ${({ $compact }) => {\n if (!$compact) {\n return ''\n }\n\n return css`\n @media (max-width: ${screenWidthPixelBreakpoints.mobile.small\n .max}px) and (max-height: ${compactModalFullscreenMaxHeight}px) {\n border-radius: 0;\n height: 100vh;\n width: 100vw;\n }\n @media (min-width: ${screenWidthPixelBreakpoints.mobile.large\n .min}px) and (max-width: ${screenWidthPixelBreakpoints.mobile.large\n .max}px) {\n max-height: calc(100vh - 24px);\n width: 416px;\n }\n @media (min-height: ${compactModalFullscreenMaxHeight + 1}px) {\n height: 916px;\n max-width: 100vw;\n }\n `\n }}\n\n ${({ $placement }) => {\n if ($placement === 'top') {\n return css`\n top: 5vh;\n `\n }\n\n return css`\n top: 50vh;\n transform: translateY(-50%);\n `\n }}\n\n ${({ $width, $placement }) => {\n if ($width) {\n return css`\n left: ${modalPixelGutter}px;\n right: ${modalPixelGutter}px;\n margin-left: auto;\n margin-right: auto;\n max-width: ${modalPixelWidths[$width]}px;\n\n // TODO deprecated, moving width up. delete line in breaking change\n ${StyledModalBody} {\n max-width: none;\n }\n `\n }\n // TODO deprecated, uses new centering, required width\n return css`\n left: 50vw;\n transform: translateX(-50%)\n ${$placement === 'center' && 'translateY(-50%)'};\n `\n }}\n`\n\nexport const StyledModalFooter = styled.div`\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n flex-wrap: wrap;\n justify-content: flex-end;\n padding: ${spacing.lg}px;\n`\n\nexport const StyledModalBody = styled.div<{\n $compact: boolean\n $isOverflowingY: boolean\n $noSideSpacing: boolean\n}>`\n ${getTypographyIntent('body')}\n\n &:focus-visible {\n ${getFocusInset()}\n }\n\n box-sizing: border-box;\n color: ${colors.gray15};\n display: flex;\n flex-direction: column;\n overflow: auto;\n\n ${({ $noSideSpacing }) => {\n return css`\n padding: ${spacing.lg}px ${$noSideSpacing ? 0 : spacing.lg}px;\n `\n }}\n\n ${({ $compact }) => {\n if (!$compact) {\n // TODO deprecated, moving width up. delete line in breaking change\n return css`\n max-width: ${modalMaxWidth};\n `\n }\n }}\n\n > ${StyledSection} {\n padding-left: 0;\n padding-right: 0;\n\n &:first-child > ${StyledSectionInner} {\n padding-top: 0;\n }\n }\n\n > ${StyledRequiredContainer} {\n margin-bottom: ${spacing.lg}px;\n }\n\n ${({ $isOverflowingY }) =>\n $isOverflowingY &&\n css`\n & + ${StyledModalFooter} {\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: ${colors.gray85};\n ${StyledModalFooterSummary} {\n border-top: none;\n }\n }\n `}\n`\n\nexport const StyledModalContent = styled.div<{ $compact?: boolean }>`\n display: flex;\n flex-direction: column;\n max-height: 90vh;\n overflow: hidden;\n width: 100%;\n\n ${({ $compact = false }) => {\n if (!$compact) {\n return ''\n }\n\n return css`\n max-height: unset;\n `\n }}\n`\n\nexport const StyledModalFooterNotation = styled(Typography)`\n flex-grow: 1;\n`\n\nexport const StyledModalHeader = styled.div<{\n $compact: boolean\n $isBodyScrolled: boolean\n}>`\n align-items: flex-start;\n color: ${colors.gray10};\n display: flex;\n flex: 0 0 auto;\n position: relative;\n ${({ $compact, $isBodyScrolled }) => {\n if ($compact) {\n return css`\n border-bottom: 1px solid ${colors.gray85};\n `\n }\n\n return css`\n border-bottom: 1px solid\n ${$isBodyScrolled ? colors.gray85 : 'transparent'};\n `\n }}\n\n padding: ${spacing.lg}px\n`\n\nexport const StyledModalHeading = styled.div<{ $compact: boolean }>`\n ${({ $compact }) => getTypographyIntent($compact ? 'h3' : 'h2')}\n align-items: center;\n display: flex;\n flex: 1 1 auto;\n min-height: 36px;\n padding-right: ${({ $compact }) => ($compact ? 36 : spacing.lg)}px;\n\n ${({ $compact }) => {\n if (!$compact) {\n return ''\n }\n\n return css`\n min-height: unset;\n `\n }}\n`\n\nexport const StyledModalCancel = styled.div`\n flex: 0 0 auto;\n`\n\nexport const StyledModalScrim = styled.div`\n background: hsla(200, 8%, 10%, 0.6);\n height: 100vh;\n left: 0;\n position: absolute;\n top: 0;\n width: 100vw;\n z-index: 1;\n`\n\nexport const StyledModalWarningIcon = styled(Warning)`\n color: ${colors.yellow40};\n margin-right: ${spacing.sm}px;\n`\nexport const StyledModalFooterSummary = styled.div`\n ${getTypographyIntent('small')}\n background-color: ${colors.gray98};\n border-bottom: 1px solid ${colors.gray85};\n border-top: 1px solid ${colors.gray85};\n color: ${colors.gray15};\n flex: 1 1 100%;\n font-style: italic;\n margin: -${spacing.lg}px -${spacing.lg}px ${spacing.lg}px;\n padding: ${spacing.lg}px;\n`\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Modal.styles.js","names":["Warning","styled","css","Card","mediaHeightDown","StyledRequiredContainer","StyledSection","StyledSectionInner","Typography","getTypographyIntent","colors","getFocusInset","spacing","fadeInClassName","fadeOutClassName","modalMaxWidth","modalPixelGutter","xl","modalPixelWidths","sm","md","lg","compactModalFullscreenMaxHeight","screenWidthPixelBreakpoints","mobile","small","min","max","large","StyledModal","div","withConfig","displayName","componentId","StyledModalButtons","StyledModalContainer","_ref","$compact","_ref2","$placement","_ref3","$width","StyledModalBody","_ref4","concat","StyledModalFooter","gray15","_ref5","$noSideSpacing","_ref6","_ref7","_ref8","$isOverflowingY","gray85","StyledModalFooterSummary","StyledModalContent","_ref9","_ref9$$compact","_ref0","_ref0$$compact","StyledModalFooterNotation","StyledModalHeader","gray10","_ref1","$isBodyScrolled","StyledModalHeading","_ref10","_ref11","_ref12","StyledModalCancel","StyledModalScrim","StyledModalWarningIcon","yellow40","gray98"],"sources":["../../src/Modal/Modal.styles.ts"],"sourcesContent":["import { Warning } from '@procore/core-icons'\nimport styled, { css } from 'styled-components'\nimport { Card } from '../Card/Card'\nimport { mediaHeightDown } from '../PageLayout/PageLayout.utils'\nimport { StyledRequiredContainer } from '../Required/Required.styles'\nimport { StyledSection, StyledSectionInner } from '../Section/Section.styles'\nimport { Typography } from '../Typography/Typography'\nimport { getTypographyIntent } from '../Typography/Typography.styles'\nimport { colors } from '../_styles/colors'\nimport { getFocusInset } from '../_styles/mixins'\nimport { spacing } from '../_styles/spacing'\nimport type { ModalPlacement, ModalWidth } from './Modal.types'\n\nexport const fadeInClassName = 'fade-in'\nexport const fadeOutClassName = 'fade-out'\nexport const modalMaxWidth = '640px'\nexport const modalPixelGutter = spacing.xl\nexport const modalPixelWidths = {\n sm: 432,\n md: 688,\n lg: 1152,\n xl: 1920,\n}\n\nconst compactModalFullscreenMaxHeight = 940\nconst screenWidthPixelBreakpoints = {\n mobile: {\n small: {\n min: 0,\n max: 439,\n },\n large: {\n min: 440,\n max: 767,\n },\n },\n}\n\nexport const StyledModal = styled.div`\n display: flex;\n height: 100vh;\n position: absolute;\n opacity: 0;\n transition: 0.3s opacity ease;\n width: 100vw;\n z-index: 0;\n pointer-events: none;\n\n &.${fadeInClassName} {\n opacity: 1;\n pointer-events: auto;\n }\n\n &.${fadeOutClassName} {\n opacity: 0;\n pointer-events: none;\n }\n`\n\nexport const StyledModalButtons = styled.div`\n display: flex;\n flex: 0 0 auto;\n margin-left: ${spacing.lg}px;\n\n > * + * {\n margin-left: ${spacing.sm}px;\n }\n`\n\nexport const StyledModalContainer = styled(Card)<{\n $compact: boolean\n $placement: ModalPlacement\n $width?: ModalWidth\n}>`\n display: flex;\n flex-direction: row;\n position: absolute;\n z-index: 2;\n\n ${({ $compact }) => {\n if (!$compact) {\n return ''\n }\n\n return css`\n @media (max-width: ${screenWidthPixelBreakpoints.mobile.small\n .max}px) and (max-height: ${compactModalFullscreenMaxHeight}px) {\n border-radius: 0;\n height: 100vh;\n width: 100vw;\n }\n @media (min-width: ${screenWidthPixelBreakpoints.mobile.large\n .min}px) and (max-width: ${screenWidthPixelBreakpoints.mobile.large\n .max}px) {\n max-height: calc(100vh - 24px);\n width: 416px;\n }\n @media (min-height: ${compactModalFullscreenMaxHeight + 1}px) {\n height: 916px;\n max-width: 100vw;\n }\n `\n }}\n\n ${({ $placement }) => {\n if ($placement === 'top') {\n return css`\n top: 5vh;\n `\n }\n\n return css`\n top: 50vh;\n transform: translateY(-50%);\n `\n }}\n\n ${({ $width, $placement }) => {\n if ($width) {\n return css`\n left: ${modalPixelGutter}px;\n right: ${modalPixelGutter}px;\n margin-left: auto;\n margin-right: auto;\n max-width: ${modalPixelWidths[$width]}px;\n\n // TODO deprecated, moving width up. delete line in breaking change\n ${StyledModalBody} {\n max-width: none;\n }\n `\n }\n // TODO deprecated, uses new centering, required width\n return css`\n left: 50vw;\n transform: translateX(-50%)\n ${$placement === 'center' && 'translateY(-50%)'};\n `\n }}\n\n ${({ $compact, $placement }) =>\n !$compact &&\n css`\n // High zoom: the dialog scrolls as a whole\n @media ${mediaHeightDown.short} {\n max-height: calc(\n ${$placement === 'top'\n ? `95vh - ${spacing.sm}px`\n : `100vh - ${spacing.sm * 2}px`}\n );\n overflow-y: auto;\n }\n\n // 400% zoom: full screen\n @media (max-width: ${screenWidthPixelBreakpoints.mobile.small.max}px) {\n top: 0;\n left: 0;\n right: 0;\n transform: none;\n margin: 0;\n width: 100vw;\n max-width: none;\n height: 100vh;\n max-height: 100vh;\n border-radius: 0;\n overflow-y: auto;\n }\n `}\n`\n\nexport const StyledModalFooter = styled.div`\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n flex-wrap: wrap;\n justify-content: flex-end;\n padding: ${spacing.lg}px;\n`\n\nexport const StyledModalBody = styled.div<{\n $compact: boolean\n $isOverflowingY: boolean\n $noSideSpacing: boolean\n}>`\n ${getTypographyIntent('body')}\n\n &:focus-visible {\n ${getFocusInset()}\n }\n\n box-sizing: border-box;\n color: ${colors.gray15};\n display: flex;\n flex-direction: column;\n overflow: auto;\n\n ${({ $noSideSpacing }) => {\n return css`\n padding: ${spacing.lg}px ${$noSideSpacing ? 0 : spacing.lg}px;\n `\n }}\n\n ${({ $compact }) => {\n if (!$compact) {\n // TODO deprecated, moving width up. delete line in breaking change\n return css`\n max-width: ${modalMaxWidth};\n `\n }\n }}\n\n ${({ $compact }) =>\n !$compact &&\n css`\n // High zoom: one scroll area, also over an inline max-height\n @media ${mediaHeightDown.short} {\n flex: none;\n max-height: none !important;\n }\n\n // 400% zoom: no top padding\n @media (max-width: ${screenWidthPixelBreakpoints.mobile.small.max}px) {\n padding-top: 0;\n }\n `}\n\n > ${StyledSection} {\n padding-left: 0;\n padding-right: 0;\n\n &:first-child > ${StyledSectionInner} {\n padding-top: 0;\n }\n }\n\n > ${StyledRequiredContainer} {\n margin-bottom: ${spacing.lg}px;\n }\n\n ${({ $isOverflowingY }) =>\n $isOverflowingY &&\n css`\n & + ${StyledModalFooter} {\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: ${colors.gray85};\n ${StyledModalFooterSummary} {\n border-top: none;\n }\n }\n `}\n`\n\nexport const StyledModalContent = styled.div<{ $compact?: boolean }>`\n display: flex;\n flex-direction: column;\n max-height: 90vh;\n overflow: hidden;\n width: 100%;\n\n ${({ $compact = false }) => {\n if (!$compact) {\n return ''\n }\n\n return css`\n max-height: unset;\n `\n }}\n\n ${({ $compact = false }) =>\n !$compact &&\n css`\n @media ${mediaHeightDown.short} {\n max-height: none;\n overflow: visible;\n }\n `}\n`\n\nexport const StyledModalFooterNotation = styled(Typography)`\n flex-grow: 1;\n`\n\nexport const StyledModalHeader = styled.div<{\n $compact: boolean\n $isBodyScrolled: boolean\n}>`\n align-items: flex-start;\n color: ${colors.gray10};\n display: flex;\n flex: 0 0 auto;\n position: relative;\n ${({ $compact, $isBodyScrolled }) => {\n if ($compact) {\n return css`\n border-bottom: 1px solid ${colors.gray85};\n `\n }\n\n return css`\n border-bottom: 1px solid\n ${$isBodyScrolled ? colors.gray85 : 'transparent'};\n `\n }}\n\n padding: ${spacing.lg}px\n`\n\nexport const StyledModalHeading = styled.div<{ $compact: boolean }>`\n ${({ $compact }) => getTypographyIntent($compact ? 'h3' : 'h2')}\n align-items: center;\n display: flex;\n flex: 1 1 auto;\n min-height: 36px;\n padding-right: ${({ $compact }) => ($compact ? 36 : spacing.lg)}px;\n\n ${({ $compact }) => {\n if (!$compact) {\n return ''\n }\n\n return css`\n min-height: unset;\n `\n }}\n`\n\nexport const StyledModalCancel = styled.div`\n flex: 0 0 auto;\n`\n\nexport const StyledModalScrim = styled.div`\n background: hsla(200, 8%, 10%, 0.6);\n height: 100vh;\n left: 0;\n position: absolute;\n top: 0;\n width: 100vw;\n z-index: 1;\n`\n\nexport const StyledModalWarningIcon = styled(Warning)`\n color: ${colors.yellow40};\n margin-right: ${spacing.sm}px;\n`\nexport const StyledModalFooterSummary = styled.div`\n ${getTypographyIntent('small')}\n background-color: ${colors.gray98};\n border-bottom: 1px solid ${colors.gray85};\n border-top: 1px solid ${colors.gray85};\n color: ${colors.gray15};\n flex: 1 1 100%;\n font-style: italic;\n margin: -${spacing.lg}px -${spacing.lg}px ${spacing.lg}px;\n padding: ${spacing.lg}px;\n`\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,qBAAqB;AAC7C,OAAOC,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAC/C,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,eAAe,QAAQ,gCAAgC;AAChE,SAASC,uBAAuB,QAAQ,6BAA6B;AACrE,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,2BAA2B;AAC7E,SAASC,UAAU,QAAQ,0BAA0B;AACrD,SAASC,mBAAmB,QAAQ,iCAAiC;AACrE,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,aAAa,QAAQ,mBAAmB;AACjD,SAASC,OAAO,QAAQ,oBAAoB;AAG5C,OAAO,IAAMC,eAAe,GAAG,SAAS;AACxC,OAAO,IAAMC,gBAAgB,GAAG,UAAU;AAC1C,OAAO,IAAMC,aAAa,GAAG,OAAO;AACpC,OAAO,IAAMC,gBAAgB,GAAGJ,OAAO,CAACK,EAAE;AAC1C,OAAO,IAAMC,gBAAgB,GAAG;EAC9BC,EAAE,EAAE,GAAG;EACPC,EAAE,EAAE,GAAG;EACPC,EAAE,EAAE,IAAI;EACRJ,EAAE,EAAE;AACN,CAAC;AAED,IAAMK,+BAA+B,GAAG,GAAG;AAC3C,IAAMC,2BAA2B,GAAG;EAClCC,MAAM,EAAE;IACNC,KAAK,EAAE;MACLC,GAAG,EAAE,CAAC;MACNC,GAAG,EAAE;IACP,CAAC;IACDC,KAAK,EAAE;MACLF,GAAG,EAAE,GAAG;MACRC,GAAG,EAAE;IACP;EACF;AACF,CAAC;AAED,OAAO,IAAME,WAAW,gBAAG5B,MAAM,CAAC6B,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,kNAU/BpB,eAAe,EAKfC,gBAAgB,CAIrB;AAED,OAAO,IAAMoB,kBAAkB,gBAAGjC,MAAM,CAAC6B,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,mFAG3BrB,OAAO,CAACS,EAAE,EAGRT,OAAO,CAACO,EAAE,CAE5B;AAED,OAAO,IAAMgB,oBAAoB,gBAAGlC,MAAM,CAACE,IAAI,CAAC,CAAA4B,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,wFAU5C,UAAAG,IAAA,EAAkB;EAAA,IAAfC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;EACX,IAAI,CAACA,QAAQ,EAAE;IACb,OAAO,EAAE;EACX;EAEA,OAAOnC,GAAG,wPACaqB,2BAA2B,CAACC,MAAM,CAACC,KAAK,CACxDE,GAAG,EAAwBL,+BAA+B,EAK1CC,2BAA2B,CAACC,MAAM,CAACI,KAAK,CACxDF,GAAG,EAAuBH,2BAA2B,CAACC,MAAM,CAACI,KAAK,CAClED,GAAG,EAIcL,+BAA+B,GAAG,CAAC;AAK7D,CAAC,EAEC,UAAAgB,KAAA,EAAoB;EAAA,IAAjBC,UAAU,GAAAD,KAAA,CAAVC,UAAU;EACb,IAAIA,UAAU,KAAK,KAAK,EAAE;IACxB,OAAOrC,GAAG;EAGZ;EAEA,OAAOA,GAAG;AAIZ,CAAC,EAEC,UAAAsC,KAAA,EAA4B;EAAA,IAAzBC,MAAM,GAAAD,KAAA,CAANC,MAAM;IAAEF,UAAU,GAAAC,KAAA,CAAVD,UAAU;EACrB,IAAIE,MAAM,EAAE;IACV,OAAOvC,GAAG,yGACAc,gBAAgB,EACfA,gBAAgB,EAGZE,gBAAgB,CAACuB,MAAM,CAAC,EAGnCC,eAAe;EAIrB;EACA;EACA,OAAOxC,GAAG,iDAGJqC,UAAU,KAAK,QAAQ,IAAI,kBAAkB;AAErD,CAAC,EAEC,UAAAI,KAAA;EAAA,IAAGN,QAAQ,GAAAM,KAAA,CAARN,QAAQ;IAAEE,UAAU,GAAAI,KAAA,CAAVJ,UAAU;EAAA,OACvB,CAACF,QAAQ,IACTnC,GAAG,6NAEQE,eAAe,SAAM,EAExBmC,UAAU,KAAK,KAAK,aAAAK,MAAA,CACRhC,OAAO,CAACO,EAAE,qBAAAyB,MAAA,CACThC,OAAO,CAACO,EAAE,GAAG,CAAC,OAAI,EAMhBI,2BAA2B,CAACC,MAAM,CAACC,KAAK,CAACE,GAAG,CAalE;AAAA,EACJ;AAED,OAAO,IAAMkB,iBAAiB,gBAAG5C,MAAM,CAAC6B,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,8GAM9BrB,OAAO,CAACS,EAAE,CACtB;AAED,OAAO,IAAMqB,eAAe,gBAAGzC,MAAM,CAAC6B,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,gPAKrCxB,mBAAmB,CAAC,MAAM,CAAC,EAGzBE,aAAa,CAAC,CAAC,EAIVD,MAAM,CAACoC,MAAM,EAKpB,UAAAC,KAAA,EAAwB;EAAA,IAArBC,cAAc,GAAAD,KAAA,CAAdC,cAAc;EACjB,OAAO9C,GAAG,6BACGU,OAAO,CAACS,EAAE,EAAM2B,cAAc,GAAG,CAAC,GAAGpC,OAAO,CAACS,EAAE;AAE9D,CAAC,EAEC,UAAA4B,KAAA,EAAkB;EAAA,IAAfZ,QAAQ,GAAAY,KAAA,CAARZ,QAAQ;EACX,IAAI,CAACA,QAAQ,EAAE;IACb;IACA,OAAOnC,GAAG,sBACKa,aAAa;EAE9B;AACF,CAAC,EAEC,UAAAmC,KAAA;EAAA,IAAGb,QAAQ,GAAAa,KAAA,CAARb,QAAQ;EAAA,OACX,CAACA,QAAQ,IACTnC,GAAG,kGAEQE,eAAe,SAAM,EAMTmB,2BAA2B,CAACC,MAAM,CAACC,KAAK,CAACE,GAAG,CAGlE;AAAA,GAECrB,aAAa,EAIGC,kBAAkB,EAKlCF,uBAAuB,EACRO,OAAO,CAACS,EAAE,EAG3B,UAAA8B,KAAA;EAAA,IAAGC,eAAe,GAAAD,KAAA,CAAfC,eAAe;EAAA,OAClBA,eAAe,IACflD,GAAG,yGACK2C,iBAAiB,EAGDnC,MAAM,CAAC2C,MAAM,EAC/BC,wBAAwB,CAI7B;AAAA,EACJ;AAED,OAAO,IAAMC,kBAAkB,gBAAGtD,MAAM,CAAC6B,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,gGAOxC,UAAAuB,KAAA,EAA0B;EAAA,IAAAC,cAAA,GAAAD,KAAA,CAAvBnB,QAAQ;IAARA,QAAQ,GAAAoB,cAAA,cAAG,KAAK,GAAAA,cAAA;EACnB,IAAI,CAACpB,QAAQ,EAAE;IACb,OAAO,EAAE;EACX;EAEA,OAAOnC,GAAG;AAGZ,CAAC,EAEC,UAAAwD,KAAA;EAAA,IAAAC,cAAA,GAAAD,KAAA,CAAGrB,QAAQ;IAARA,QAAQ,GAAAsB,cAAA,cAAG,KAAK,GAAAA,cAAA;EAAA,OACnB,CAACtB,QAAQ,IACTnC,GAAG,qDACQE,eAAe,SAAM,CAI/B;AAAA,EACJ;AAED,OAAO,IAAMwD,yBAAyB,gBAAG3D,MAAM,CAACO,UAAU,CAAC,CAAAuB,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,oBAE1D;AAED,OAAO,IAAM4B,iBAAiB,gBAAG5D,MAAM,CAAC6B,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,2GAKhCvB,MAAM,CAACoD,MAAM,EAIpB,UAAAC,KAAA,EAAmC;EAAA,IAAhC1B,QAAQ,GAAA0B,KAAA,CAAR1B,QAAQ;IAAE2B,eAAe,GAAAD,KAAA,CAAfC,eAAe;EAC5B,IAAI3B,QAAQ,EAAE;IACZ,OAAOnC,GAAG,oCACmBQ,MAAM,CAAC2C,MAAM;EAE5C;EAEA,OAAOnD,GAAG,oCAEJ8D,eAAe,GAAGtD,MAAM,CAAC2C,MAAM,GAAG,aAAa;AAEvD,CAAC,EAEUzC,OAAO,CAACS,EAAE,CACtB;AAED,OAAO,IAAM4C,kBAAkB,gBAAGhE,MAAM,CAAC6B,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,qGACxC,UAAAiC,MAAA;EAAA,IAAG7B,QAAQ,GAAA6B,MAAA,CAAR7B,QAAQ;EAAA,OAAO5B,mBAAmB,CAAC4B,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;AAAA,GAK9C,UAAA8B,MAAA;EAAA,IAAG9B,QAAQ,GAAA8B,MAAA,CAAR9B,QAAQ;EAAA,OAAQA,QAAQ,GAAG,EAAE,GAAGzB,OAAO,CAACS,EAAE;AAAA,CAAC,EAE7D,UAAA+C,MAAA,EAAkB;EAAA,IAAf/B,QAAQ,GAAA+B,MAAA,CAAR/B,QAAQ;EACX,IAAI,CAACA,QAAQ,EAAE;IACb,OAAO,EAAE;EACX;EAEA,OAAOnC,GAAG;AAGZ,CAAC,CACF;AAED,OAAO,IAAMmE,iBAAiB,gBAAGpE,MAAM,CAAC6B,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,sBAE1C;AAED,OAAO,IAAMqC,gBAAgB,gBAAGrE,MAAM,CAAC6B,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,0GAQzC;AAED,OAAO,IAAMsC,sBAAsB,gBAAGtE,MAAM,CAACD,OAAO,CAAC,CAAA+B,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,wCAC1CvB,MAAM,CAAC8D,QAAQ,EACR5D,OAAO,CAACO,EAAE,CAC3B;AACD,OAAO,IAAMmC,wBAAwB,gBAAGrD,MAAM,CAAC6B,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,mLAC9CxB,mBAAmB,CAAC,OAAO,CAAC,EACVC,MAAM,CAAC+D,MAAM,EACN/D,MAAM,CAAC2C,MAAM,EAChB3C,MAAM,CAAC2C,MAAM,EAC5B3C,MAAM,CAACoC,MAAM,EAGXlC,OAAO,CAACS,EAAE,EAAOT,OAAO,CAACS,EAAE,EAAMT,OAAO,CAACS,EAAE,EAC3CT,OAAO,CAACS,EAAE,CACtB","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  var _excluded = ["getId", "getLabel", "qa", "value"],
2
2
  _excluded2 = ["value"],
3
- _excluded3 = ["afterHide", "afterShow", "beforeHide", "beforeShow", "block", "disabled", "emptyMessage", "error", "footer", "getId", "getLabel", "getGroup", "loading", "onChange", "onScrollBottom", "onSearch", "options", "isOptionDisabled", "optionRenderer", "optgroups", "groupHeaderRenderer", "groupRenderer", "tokenRenderer", "placeholder", "placement", "value", "tabIndex", "aria-labelledby", "aria-describedby", "qa"],
3
+ _excluded3 = ["afterHide", "afterShow", "beforeHide", "beforeShow", "block", "disabled", "emptyMessage", "error", "footer", "getId", "getLabel", "getGroup", "loading", "onChange", "onScrollBottom", "onSearch", "options", "isOptionDisabled", "optionRenderer", "optgroups", "groupHeaderRenderer", "groupRenderer", "tokenRenderer", "placeholder", "placement", "value", "tabIndex", "aria-labelledby", "aria-describedby", "aria-required", "qa"],
4
4
  _excluded4 = ["aria-controls"];
5
5
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
6
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -385,6 +385,7 @@ var MultiSelect_ = /*#__PURE__*/React.forwardRef(function MultiSelect(_ref7, ref
385
385
  tabIndex = _ref7$tabIndex === void 0 ? 0 : _ref7$tabIndex,
386
386
  ariaLabelledBy = _ref7['aria-labelledby'],
387
387
  ariaDescribedBy = _ref7['aria-describedby'],
388
+ ariaRequired = _ref7['aria-required'],
388
389
  _ref7$qa = _ref7.qa,
389
390
  qa = _ref7$qa === void 0 ? {} : _ref7$qa,
390
391
  props = _objectWithoutProperties(_ref7, _excluded3);
@@ -568,6 +569,7 @@ var MultiSelect_ = /*#__PURE__*/React.forwardRef(function MultiSelect(_ref7, ref
568
569
  "aria-expanded": isVisible,
569
570
  "aria-invalid": error || undefined,
570
571
  "aria-labelledby": ariaLabelledBy,
572
+ "aria-required": ariaRequired,
571
573
  "data-qa": "core-multiselect-input",
572
574
  role: "combobox",
573
575
  $isNavigatingTokens: isNavigatingTokens,
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelect.js","names":["Clear","useId","VisuallyHidden","React","Box","MenuImperative","useMenuImperativeControlNavigation","OverlayTrigger","Spinner","Token","Typography","isEventSource","useI18nContext","addSubcomponents","StyledMultiSelectArrow","StyledMultiSelectArrowContainer","StyledMultiSelectButton","StyledMultiSelectClearIcon","StyledMultiSelectInner","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","defaultGroupRenderer","group","Group","concat","children","defaultTokenRenderer","_ref2","_qa$token","_qa$tokenClear","focused","disabled","removeToken","tokenRemoveProps","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","map","isGroupHeader","Boolean","ids","domHandlers","forwardRef","_ref5","_excluded2","Item","GroupedOptions","_ref6","multiselect","groupHeaderRenderer","groupRenderer","optionRenderer","isOptionDisabled","renderOption","groupHeader","Fragment","Options","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$groupRenderer","_ref7$tokenRenderer","tokenRenderer","placeholder","_ref7$placement","placement","_ref7$value","_ref7$tabIndex","tabIndex","ariaLabelledBy","ariaDescribedBy","_ref7$qa","_excluded3","i18n","ownRef","useRef","targetRef","searchRef","tokenRemoveRefs","shouldTabToTokensRef","tokenListId","tokenBaseId","noneSelectedId","_React$useState5","_React$useState6","isMenuOpen","setIsMenuOpen","_React$useState7","_React$useState8","isTokenTabbingActive","setIsTokenTabbingActive","_useMenuImperativeCon","menuNavigationTriggerProps","menuProps","menuAriaControls","restMenuNavigationTriggerProps","_excluded4","I18n","showClearIcon","isNavigatingTokens","activeTokenId","undefined","focusTokenRemove","tokenRemove","onTokenRemoveKeyDown","tokenIndex","preventDefault","nextTokenIndex","overlay","shadowStrength","role","padding","color","intent","italic","t","Footer","canFlip","_menuRef$current5","MouseEvent","hideKeys","showKeys","trigger","_ref8","disable","enable","isVisible","ariaControls","$block","$error","$emptyValue","$disabled","$loading","$open","onBlurCapture","_targetRef$current","contains","relatedTarget","tokenId","tokenLabel","el","join","$isNavigatingTokens","onBlur","onFocus","_targetRef$current2","focusCameFromInsideTarget","stopPropagation","size","variant","icon","$show","displayName"],"sources":["../../src/MultiSelect/MultiSelect.tsx"],"sourcesContent":["import { Clear } from '@procore/core-icons/dist'\nimport { useId } from '@react-aria/utils'\nimport { VisuallyHidden } from '@react-aria/visually-hidden'\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 StyledMultiSelectInner,\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 GroupHeaderProps,\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 defaultGroupRenderer(group: GroupHeaderProps) {\n return (\n <MenuImperative.Group key={`group_${group.id}`} label={group.label}>\n {group.children}\n </MenuImperative.Group>\n )\n}\n\nfunction defaultTokenRenderer({\n focused,\n disabled,\n option,\n removeToken,\n getLabel,\n qa,\n tokenRemoveProps,\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 {...tokenRemoveProps}\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 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' || event.key === 'Delete') {\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\n .map((group: GroupItem) => {\n const groupOptions = optionsByGroup[group.id]\n\n if (!groupOptions.length) {\n return null\n }\n\n return { ...group, isGroupHeader: true, options: groupOptions }\n }, [])\n .filter(Boolean)\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 groupRenderer,\n optionRenderer,\n getId,\n getLabel,\n isOptionDisabled,\n qa,\n}: GroupedOptionsProps) {\n const renderOption = (option: OptionItem | GroupHeader): React.ReactNode => {\n if (option.isGroupHeader) {\n const groupHeader: GroupHeader = option\n if (groupHeaderRenderer) {\n return (\n <>\n {groupHeaderRenderer(groupHeader)}\n {groupHeader.options.map(renderOption)}\n </>\n )\n }\n return groupRenderer({\n ...groupHeader,\n children: groupHeader.options.map(renderOption),\n })\n }\n\n return optionRenderer(option, {\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(option),\n selected: multiselect.ids.has(getId(option)),\n disabled: isOptionDisabled(option),\n value: option,\n qa,\n })\n }\n return (\n <MenuImperative.Options>\n {multiselect.options.map(renderOption)}\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,\n groupRenderer = defaultGroupRenderer,\n tokenRenderer = defaultTokenRenderer,\n placeholder,\n placement = 'bottom-left',\n value = emptyArray,\n tabIndex = 0,\n ['aria-labelledby']: ariaLabelledBy,\n ['aria-describedby']: ariaDescribedBy,\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 const tokenRemoveRefs = React.useRef<Array<HTMLButtonElement | null>>([])\n const shouldTabToTokensRef = React.useRef(false)\n\n const menuRef = React.useRef<MenuRef | null>(null)\n const tokenListId = useId()\n const tokenBaseId = useId()\n const noneSelectedId = useId()\n const [isMenuOpen, setIsMenuOpen] = React.useState(false)\n const [isTokenTabbingActive, setIsTokenTabbingActive] =\n React.useState(false)\n const { menuNavigationTriggerProps, menuProps } =\n useMenuImperativeControlNavigation(menuRef, isMenuOpen)\n const {\n 'aria-controls': menuAriaControls,\n ...restMenuNavigationTriggerProps\n } = menuNavigationTriggerProps\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 showClearIcon = value.length > 0 && !loading\n\n const isNavigatingTokens = multiselect.index !== null\n const activeTokenId = isNavigatingTokens\n ? `${tokenBaseId}-${multiselect.index}`\n : undefined\n\n const focusTokenRemove = React.useCallback((index: number) => {\n const tokenRemove = tokenRemoveRefs.current[index]\n if (tokenRemove) {\n tokenRemove.focus()\n }\n }, [])\n\n const onTokenRemoveKeyDown = React.useCallback(\n (tokenIndex: number, e: React.KeyboardEvent<HTMLButtonElement>) => {\n if (e.key === 'Enter' || e.key === ' ' || e.key === 'Spacebar') {\n e.preventDefault()\n multiselect.removeToken(tokenIndex)\n return\n }\n\n if (e.key !== 'Tab') {\n return\n }\n\n const nextTokenIndex = tokenIndex + 1\n if (nextTokenIndex < value.length) {\n e.preventDefault()\n focusTokenRemove(nextTokenIndex)\n }\n },\n [focusTokenRemove, multiselect, value.length]\n )\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 groupRenderer={groupRenderer}\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 const ariaControls = isNavigatingTokens\n ? tokenListId\n : menuAriaControls\n\n return (\n <StyledMultiSelectButton\n $block={block}\n $error={error}\n $emptyValue={value.length === 0}\n $disabled={disabled}\n $loading={loading}\n $open={isVisible}\n onBlurCapture={(e: React.FocusEvent<HTMLDivElement>) => {\n if (\n !targetRef.current?.contains(e.relatedTarget as Node | null)\n ) {\n setIsTokenTabbingActive(false)\n }\n }}\n {...props}\n >\n {value.length === 0 && (\n <VisuallyHidden>\n <span id={noneSelectedId}>\n {I18n.t('core.multiSelect.noneSelected')}\n </span>\n </VisuallyHidden>\n )}\n <StyledMultiSelectInner>\n <StyledMultiSelectValues\n id={tokenListId}\n role=\"list\"\n aria-label={\n value.length > 0\n ? I18n.t('core.multiSelect.selectedItems')\n : I18n.t('core.multiSelect.noneSelected')\n }\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 tokenRemoveProps: {\n tabIndex: -1,\n onKeyDown: (e) => onTokenRemoveKeyDown(i, e),\n ref: (el) => {\n tokenRemoveRefs.current[i] = el\n },\n },\n qa,\n })}\n </StyledMultiSelectToken>\n )\n })}\n </StyledMultiSelectValues>\n\n <StyledMultiSelectSearch>\n <StyledMultiSelectSearchInput\n aria-activedescendant={activeTokenId}\n aria-controls={ariaControls}\n aria-describedby={\n [\n ariaDescribedBy,\n value.length === 0 ? noneSelectedId : undefined,\n ]\n .filter(Boolean)\n .join(' ') || undefined\n }\n aria-expanded={isVisible}\n aria-invalid={error || undefined}\n aria-labelledby={ariaLabelledBy}\n data-qa=\"core-multiselect-input\"\n role=\"combobox\"\n $isNavigatingTokens={isNavigatingTokens}\n disabled={disabled}\n onBlur={multiselect.clearToken}\n onFocus={(e: React.FocusEvent<HTMLInputElement>) => {\n setIsTokenTabbingActive(false)\n\n const focusCameFromInsideTarget = Boolean(\n e.relatedTarget &&\n targetRef.current?.contains(e.relatedTarget as Node)\n )\n\n if (!focusCameFromInsideTarget) {\n shouldTabToTokensRef.current = true\n }\n }}\n onChange={function (\n e: React.ChangeEvent<HTMLInputElement>\n ) {\n multiselect.onSearch(e)\n }}\n {...restMenuNavigationTriggerProps}\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 // close dropdown when navigating tokens with arrow keys\n if (\n multiselect.search === '' &&\n (e.key === 'ArrowLeft' ||\n e.key === 'Left' ||\n e.key === 'ArrowRight' ||\n e.key === 'Right')\n ) {\n disable(e)\n }\n } else {\n if (\n e.key === 'Tab' &&\n value.length > 0 &&\n shouldTabToTokensRef.current\n ) {\n e.preventDefault()\n shouldTabToTokensRef.current = false\n setIsTokenTabbingActive(true)\n focusTokenRemove(0)\n return\n }\n\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={isTokenTabbingActive ? -1 : tabIndex}\n value={multiselect.search}\n />\n </StyledMultiSelectSearch>\n </StyledMultiSelectInner>\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={showClearIcon ? 0 : -1}\n $show={showClearIcon}\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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","ignoreList":[]}
1
+ {"version":3,"file":"MultiSelect.js","names":["Clear","useId","VisuallyHidden","React","Box","MenuImperative","useMenuImperativeControlNavigation","OverlayTrigger","Spinner","Token","Typography","isEventSource","useI18nContext","addSubcomponents","StyledMultiSelectArrow","StyledMultiSelectArrowContainer","StyledMultiSelectButton","StyledMultiSelectClearIcon","StyledMultiSelectInner","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","defaultGroupRenderer","group","Group","concat","children","defaultTokenRenderer","_ref2","_qa$token","_qa$tokenClear","focused","disabled","removeToken","tokenRemoveProps","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","map","isGroupHeader","Boolean","ids","domHandlers","forwardRef","_ref5","_excluded2","Item","GroupedOptions","_ref6","multiselect","groupHeaderRenderer","groupRenderer","optionRenderer","isOptionDisabled","renderOption","groupHeader","Fragment","Options","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$groupRenderer","_ref7$tokenRenderer","tokenRenderer","placeholder","_ref7$placement","placement","_ref7$value","_ref7$tabIndex","tabIndex","ariaLabelledBy","ariaDescribedBy","ariaRequired","_ref7$qa","_excluded3","i18n","ownRef","useRef","targetRef","searchRef","tokenRemoveRefs","shouldTabToTokensRef","tokenListId","tokenBaseId","noneSelectedId","_React$useState5","_React$useState6","isMenuOpen","setIsMenuOpen","_React$useState7","_React$useState8","isTokenTabbingActive","setIsTokenTabbingActive","_useMenuImperativeCon","menuNavigationTriggerProps","menuProps","menuAriaControls","restMenuNavigationTriggerProps","_excluded4","I18n","showClearIcon","isNavigatingTokens","activeTokenId","undefined","focusTokenRemove","tokenRemove","onTokenRemoveKeyDown","tokenIndex","preventDefault","nextTokenIndex","overlay","shadowStrength","role","padding","color","intent","italic","t","Footer","canFlip","_menuRef$current5","MouseEvent","hideKeys","showKeys","trigger","_ref8","disable","enable","isVisible","ariaControls","$block","$error","$emptyValue","$disabled","$loading","$open","onBlurCapture","_targetRef$current","contains","relatedTarget","tokenId","tokenLabel","el","join","$isNavigatingTokens","onBlur","onFocus","_targetRef$current2","focusCameFromInsideTarget","stopPropagation","size","variant","icon","$show","displayName"],"sources":["../../src/MultiSelect/MultiSelect.tsx"],"sourcesContent":["import { Clear } from '@procore/core-icons/dist'\nimport { useId } from '@react-aria/utils'\nimport { VisuallyHidden } from '@react-aria/visually-hidden'\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 StyledMultiSelectInner,\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 GroupHeaderProps,\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 defaultGroupRenderer(group: GroupHeaderProps) {\n return (\n <MenuImperative.Group key={`group_${group.id}`} label={group.label}>\n {group.children}\n </MenuImperative.Group>\n )\n}\n\nfunction defaultTokenRenderer({\n focused,\n disabled,\n option,\n removeToken,\n getLabel,\n qa,\n tokenRemoveProps,\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 {...tokenRemoveProps}\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 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' || event.key === 'Delete') {\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\n .map((group: GroupItem) => {\n const groupOptions = optionsByGroup[group.id]\n\n if (!groupOptions.length) {\n return null\n }\n\n return { ...group, isGroupHeader: true, options: groupOptions }\n }, [])\n .filter(Boolean)\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 groupRenderer,\n optionRenderer,\n getId,\n getLabel,\n isOptionDisabled,\n qa,\n}: GroupedOptionsProps) {\n const renderOption = (option: OptionItem | GroupHeader): React.ReactNode => {\n if (option.isGroupHeader) {\n const groupHeader: GroupHeader = option\n if (groupHeaderRenderer) {\n return (\n <>\n {groupHeaderRenderer(groupHeader)}\n {groupHeader.options.map(renderOption)}\n </>\n )\n }\n return groupRenderer({\n ...groupHeader,\n children: groupHeader.options.map(renderOption),\n })\n }\n\n return optionRenderer(option, {\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(option),\n selected: multiselect.ids.has(getId(option)),\n disabled: isOptionDisabled(option),\n value: option,\n qa,\n })\n }\n return (\n <MenuImperative.Options>\n {multiselect.options.map(renderOption)}\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,\n groupRenderer = defaultGroupRenderer,\n tokenRenderer = defaultTokenRenderer,\n placeholder,\n placement = 'bottom-left',\n value = emptyArray,\n tabIndex = 0,\n ['aria-labelledby']: ariaLabelledBy,\n ['aria-describedby']: ariaDescribedBy,\n ['aria-required']: ariaRequired,\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 const tokenRemoveRefs = React.useRef<Array<HTMLButtonElement | null>>([])\n const shouldTabToTokensRef = React.useRef(false)\n\n const menuRef = React.useRef<MenuRef | null>(null)\n const tokenListId = useId()\n const tokenBaseId = useId()\n const noneSelectedId = useId()\n const [isMenuOpen, setIsMenuOpen] = React.useState(false)\n const [isTokenTabbingActive, setIsTokenTabbingActive] =\n React.useState(false)\n const { menuNavigationTriggerProps, menuProps } =\n useMenuImperativeControlNavigation(menuRef, isMenuOpen)\n const {\n 'aria-controls': menuAriaControls,\n ...restMenuNavigationTriggerProps\n } = menuNavigationTriggerProps\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 showClearIcon = value.length > 0 && !loading\n\n const isNavigatingTokens = multiselect.index !== null\n const activeTokenId = isNavigatingTokens\n ? `${tokenBaseId}-${multiselect.index}`\n : undefined\n\n const focusTokenRemove = React.useCallback((index: number) => {\n const tokenRemove = tokenRemoveRefs.current[index]\n if (tokenRemove) {\n tokenRemove.focus()\n }\n }, [])\n\n const onTokenRemoveKeyDown = React.useCallback(\n (tokenIndex: number, e: React.KeyboardEvent<HTMLButtonElement>) => {\n if (e.key === 'Enter' || e.key === ' ' || e.key === 'Spacebar') {\n e.preventDefault()\n multiselect.removeToken(tokenIndex)\n return\n }\n\n if (e.key !== 'Tab') {\n return\n }\n\n const nextTokenIndex = tokenIndex + 1\n if (nextTokenIndex < value.length) {\n e.preventDefault()\n focusTokenRemove(nextTokenIndex)\n }\n },\n [focusTokenRemove, multiselect, value.length]\n )\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 groupRenderer={groupRenderer}\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 const ariaControls = isNavigatingTokens\n ? tokenListId\n : menuAriaControls\n\n return (\n <StyledMultiSelectButton\n $block={block}\n $error={error}\n $emptyValue={value.length === 0}\n $disabled={disabled}\n $loading={loading}\n $open={isVisible}\n onBlurCapture={(e: React.FocusEvent<HTMLDivElement>) => {\n if (\n !targetRef.current?.contains(e.relatedTarget as Node | null)\n ) {\n setIsTokenTabbingActive(false)\n }\n }}\n {...props}\n >\n {value.length === 0 && (\n <VisuallyHidden>\n <span id={noneSelectedId}>\n {I18n.t('core.multiSelect.noneSelected')}\n </span>\n </VisuallyHidden>\n )}\n <StyledMultiSelectInner>\n <StyledMultiSelectValues\n id={tokenListId}\n role=\"list\"\n aria-label={\n value.length > 0\n ? I18n.t('core.multiSelect.selectedItems')\n : I18n.t('core.multiSelect.noneSelected')\n }\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 tokenRemoveProps: {\n tabIndex: -1,\n onKeyDown: (e) => onTokenRemoveKeyDown(i, e),\n ref: (el) => {\n tokenRemoveRefs.current[i] = el\n },\n },\n qa,\n })}\n </StyledMultiSelectToken>\n )\n })}\n </StyledMultiSelectValues>\n\n <StyledMultiSelectSearch>\n <StyledMultiSelectSearchInput\n aria-activedescendant={activeTokenId}\n aria-controls={ariaControls}\n aria-describedby={\n [\n ariaDescribedBy,\n value.length === 0 ? noneSelectedId : undefined,\n ]\n .filter(Boolean)\n .join(' ') || undefined\n }\n aria-expanded={isVisible}\n aria-invalid={error || undefined}\n aria-labelledby={ariaLabelledBy}\n aria-required={ariaRequired}\n data-qa=\"core-multiselect-input\"\n role=\"combobox\"\n $isNavigatingTokens={isNavigatingTokens}\n disabled={disabled}\n onBlur={multiselect.clearToken}\n onFocus={(e: React.FocusEvent<HTMLInputElement>) => {\n setIsTokenTabbingActive(false)\n\n const focusCameFromInsideTarget = Boolean(\n e.relatedTarget &&\n targetRef.current?.contains(e.relatedTarget as Node)\n )\n\n if (!focusCameFromInsideTarget) {\n shouldTabToTokensRef.current = true\n }\n }}\n onChange={function (\n e: React.ChangeEvent<HTMLInputElement>\n ) {\n multiselect.onSearch(e)\n }}\n {...restMenuNavigationTriggerProps}\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 // close dropdown when navigating tokens with arrow keys\n if (\n multiselect.search === '' &&\n (e.key === 'ArrowLeft' ||\n e.key === 'Left' ||\n e.key === 'ArrowRight' ||\n e.key === 'Right')\n ) {\n disable(e)\n }\n } else {\n if (\n e.key === 'Tab' &&\n value.length > 0 &&\n shouldTabToTokensRef.current\n ) {\n e.preventDefault()\n shouldTabToTokensRef.current = false\n setIsTokenTabbingActive(true)\n focusTokenRemove(0)\n return\n }\n\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={isTokenTabbingActive ? -1 : tabIndex}\n value={multiselect.search}\n />\n </StyledMultiSelectSearch>\n </StyledMultiSelectInner>\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={showClearIcon ? 0 : -1}\n $show={showClearIcon}\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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","ignoreList":[]}
@@ -8,34 +8,34 @@ import { getFocus } from '../_styles/mixins';
8
8
  import { spacing } from '../_styles/spacing';
9
9
  export var StyledMultiSelectInner = /*#__PURE__*/styled.div.withConfig({
10
10
  displayName: "StyledMultiSelectInner",
11
- componentId: "core-12_53_3__sc-s9ym9q-0"
11
+ componentId: "core-12_54_0__sc-s9ym9q-0"
12
12
  })(["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);
13
13
  export var StyledMultiSelectValues = /*#__PURE__*/styled.div.withConfig({
14
14
  displayName: "StyledMultiSelectValues",
15
- componentId: "core-12_53_3__sc-s9ym9q-1"
15
+ componentId: "core-12_54_0__sc-s9ym9q-1"
16
16
  })(["display:contents;"]);
17
17
  export var StyledMultiSelectToken = /*#__PURE__*/styled.div.withConfig({
18
18
  displayName: "StyledMultiSelectToken",
19
- componentId: "core-12_53_3__sc-s9ym9q-2"
19
+ componentId: "core-12_54_0__sc-s9ym9q-2"
20
20
  })(["margin-bottom:2px;margin-right:", "px;margin-top:2px;flex:0 1 auto;> div{max-width:178px;width:100%;}"], spacing.xs);
21
21
  export var StyledMultiSelectSearchInput = /*#__PURE__*/styled.input.withConfig({
22
22
  displayName: "StyledMultiSelectSearchInput",
23
- componentId: "core-12_53_3__sc-s9ym9q-3"
23
+ componentId: "core-12_54_0__sc-s9ym9q-3"
24
24
  })(["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) {
25
25
  var $isNavigatingTokens = _ref.$isNavigatingTokens;
26
26
  return $isNavigatingTokens && css(["color:transparent;"]);
27
27
  }, colors.gray45);
28
28
  export var StyledMultiSelectSearch = /*#__PURE__*/styled.div.withConfig({
29
29
  displayName: "StyledMultiSelectSearch",
30
- componentId: "core-12_53_3__sc-s9ym9q-4"
30
+ componentId: "core-12_54_0__sc-s9ym9q-4"
31
31
  })(["margin-bottom:2px;margin-right:", "px;margin-top:2px;flex:1;max-width:100%;min-width:24px;"], spacing.xs);
32
32
  export var StyledMultiSelectSearchIcon = /*#__PURE__*/styled.div.withConfig({
33
33
  displayName: "StyledMultiSelectSearchIcon",
34
- componentId: "core-12_53_3__sc-s9ym9q-5"
34
+ componentId: "core-12_54_0__sc-s9ym9q-5"
35
35
  })(["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);
36
36
  export var StyledMultiSelectClearIcon = /*#__PURE__*/styled(Button).withConfig({
37
37
  displayName: "StyledMultiSelectClearIcon",
38
- componentId: "core-12_53_3__sc-s9ym9q-6"
38
+ componentId: "core-12_54_0__sc-s9ym9q-6"
39
39
  })(["", " ", "{pointer-events:none;}"], function (_ref2) {
40
40
  var $show = _ref2.$show;
41
41
  return css(["opacity:", ";"], $show ? 1 : 0);
@@ -45,7 +45,7 @@ export var StyledMultiSelectArrow = StyledSelectArrow;
45
45
  export var StyledMultiSelectMenu = StyledSelectMenu;
46
46
  export var StyledMultiSelectButton = /*#__PURE__*/styled(StyledSelectButton).withConfig({
47
47
  displayName: "StyledMultiSelectButton",
48
- componentId: "core-12_53_3__sc-s9ym9q-7"
48
+ componentId: "core-12_54_0__sc-s9ym9q-7"
49
49
  })(["height:auto;padding:0;white-space:normal;&:focus-within{", "}", ""], getFocus(), function (_ref3) {
50
50
  var $emptyValue = _ref3.$emptyValue;
51
51
  return $emptyValue && css(["", "{cursor:pointer;}"], StyledMultiSelectSearchInput);
@@ -413,4 +413,9 @@ export interface MultiSelectProps {
413
413
  * @since 12.35.1
414
414
  */
415
415
  ['aria-describedby']?: string;
416
+ /**
417
+ * Marks the field as mandatory for assistive technology. Applied to the
418
+ * element carrying `role="combobox"`.
419
+ */
420
+ ['aria-required']?: boolean;
416
421
  }