@procore/core-react 12.21.2 → 12.22.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 (388) hide show
  1. package/CHANGELOG.md +6 -8
  2. package/dist/@types/global.d.js.map +1 -1
  3. package/dist/AnchorNavigation/AnchorNavigation.styles.d.ts +6 -5
  4. package/dist/AnchorNavigation/AnchorNavigation.styles.js +3 -3
  5. package/dist/Avatar/Avatar.styles.d.ts +7 -6
  6. package/dist/Avatar/Avatar.styles.js +5 -5
  7. package/dist/AvatarStack/AvatarStack.styles.d.ts +1677 -13
  8. package/dist/AvatarStack/AvatarStack.styles.js +7 -7
  9. package/dist/Badge/Badge.styles.d.ts +3 -2
  10. package/dist/Badge/Badge.styles.js +2 -2
  11. package/dist/Banner/Banner.js +1 -1
  12. package/dist/Banner/Banner.js.map +1 -1
  13. package/dist/Banner/Banner.styles.d.ts +22 -13
  14. package/dist/Banner/Banner.styles.js +12 -12
  15. package/dist/Banner/Banner.styles.js.map +1 -1
  16. package/dist/Box/Box.js +1 -1
  17. package/dist/Box/Box.js.map +1 -1
  18. package/dist/Box/Box.styles.d.ts +2 -1
  19. package/dist/Box/Box.styles.js +3 -3
  20. package/dist/Box/Box.styles.js.map +1 -1
  21. package/dist/Box/Box.types.d.ts +1 -1
  22. package/dist/Box/Box.types.js.map +1 -1
  23. package/dist/Breadcrumbs/Breadcrumbs.styles.d.ts +5 -4
  24. package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
  25. package/dist/Button/Button.styles.d.ts +8 -6
  26. package/dist/Button/Button.styles.js +5 -5
  27. package/dist/Calendar/Calendar.styles.d.ts +15 -9
  28. package/dist/Calendar/Calendar.styles.js +8 -8
  29. package/dist/Card/Card.styles.d.ts +3 -2
  30. package/dist/Card/Card.styles.js +1 -1
  31. package/dist/Checkbox/Checkbox.styles.d.ts +11 -10
  32. package/dist/Checkbox/Checkbox.styles.js +6 -6
  33. package/dist/Checkbox/CheckboxTooltip.js +1 -1
  34. package/dist/ContactItem/ContactItem.styles.d.ts +18 -7
  35. package/dist/ContactItem/ContactItem.styles.js +5 -5
  36. package/dist/Content/Content.styles.d.ts +6 -2
  37. package/dist/Content/Content.styles.js +2 -2
  38. package/dist/DateInput/DateInput.js +6 -6
  39. package/dist/DateInput/DateInput.js.map +1 -1
  40. package/dist/DateInput/DateInput.styles.d.ts +20 -13
  41. package/dist/DateInput/DateInput.styles.js +21 -23
  42. package/dist/DateInput/DateInput.styles.js.map +1 -1
  43. package/dist/DateSelect/DateSelect.js +2 -2
  44. package/dist/DateSelect/DateSelect.js.map +1 -1
  45. package/dist/DetailPage/DetailPage.styles.d.ts +13 -7
  46. package/dist/DetailPage/DetailPage.styles.js +7 -7
  47. package/dist/Dropdown/Dropdown.styles.d.ts +10 -4
  48. package/dist/Dropdown/Dropdown.styles.js +3 -3
  49. package/dist/DropdownFlyout/DropdownFlyout.js +1 -1
  50. package/dist/DropdownFlyout/DropdownFlyout.js.map +1 -1
  51. package/dist/DropdownFlyout/DropdownFlyout.styles.d.ts +5 -4
  52. package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
  53. package/dist/DropdownFlyout/DropdownFlyout.types.d.ts +4 -1
  54. package/dist/DropdownFlyout/DropdownFlyout.types.js.map +1 -1
  55. package/dist/Dropzone/Dropzone.d.ts +3 -1
  56. package/dist/Dropzone/Dropzone.js +5 -5
  57. package/dist/Dropzone/Dropzone.js.map +1 -1
  58. package/dist/Dropzone/Dropzone.styles.d.ts +24 -16
  59. package/dist/Dropzone/Dropzone.styles.js +22 -22
  60. package/dist/Dropzone/Dropzone.styles.js.map +1 -1
  61. package/dist/EmptyState/EmptyState.js +1 -1
  62. package/dist/EmptyState/EmptyState.js.map +1 -1
  63. package/dist/EmptyState/EmptyState.styles.d.ts +8 -7
  64. package/dist/EmptyState/EmptyState.styles.js +6 -6
  65. package/dist/Field/Field.styles.d.ts +4 -3
  66. package/dist/Field/Field.styles.js +3 -3
  67. package/dist/FileList/FileList.styles.d.ts +8 -4
  68. package/dist/FileList/FileList.styles.js +4 -4
  69. package/dist/FileSelect/FileExplorer/FileExplorer.styles.d.ts +18 -10
  70. package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
  71. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.d.ts +5 -3
  72. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
  73. package/dist/FileSelect/FileSelect.d.ts +3 -3
  74. package/dist/FileSelect/FileSelect.js +4 -4
  75. package/dist/FileSelect/FileSelect.js.map +1 -1
  76. package/dist/FileSelect/FileSelect.styles.d.ts +4 -2
  77. package/dist/FileSelect/FileSelect.styles.js +2 -2
  78. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.d.ts +7 -5
  79. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
  80. package/dist/FileSelect/FileTokenList/FileTokenList.styles.d.ts +4 -2
  81. package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
  82. package/dist/FileSelect/GridSource/GridSource.styles.d.ts +11 -9
  83. package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
  84. package/dist/FileSelect/LocalSource/LocalSource.styles.d.ts +10 -4
  85. package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
  86. package/dist/FileSelect/SourceItem/SourceItem.styles.d.ts +5 -4
  87. package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
  88. package/dist/FileSelect/ThumbnailList/ThumbnailList.js +1 -1
  89. package/dist/FileSelect/ThumbnailList/ThumbnailList.js.map +1 -1
  90. package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.d.ts +18 -8
  91. package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
  92. package/dist/FileSelect/TreeSource/TreeSource.styles.d.ts +2 -1
  93. package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
  94. package/dist/FileToken/FileToken.styles.d.ts +6 -5
  95. package/dist/FileToken/FileToken.styles.js +4 -4
  96. package/dist/FilterToken/FilterToken.styles.d.ts +8 -7
  97. package/dist/FilterToken/FilterToken.styles.js +5 -5
  98. package/dist/FlexList/FlexList.styles.d.ts +4 -2
  99. package/dist/FlexList/FlexList.styles.js +1 -1
  100. package/dist/Form/Form.d.ts +2 -1
  101. package/dist/Form/Form.js.map +1 -1
  102. package/dist/Form/Form.styles.d.ts +48 -25
  103. package/dist/Form/Form.styles.js +18 -18
  104. package/dist/Form/Form.styles.js.map +1 -1
  105. package/dist/Form/Form.types.d.ts +1 -1
  106. package/dist/Form/Form.types.js.map +1 -1
  107. package/dist/Form/StyledFormikForm.styles.d.ts +7 -3
  108. package/dist/Form/StyledFormikForm.styles.js +2 -2
  109. package/dist/GhostPlaceholder/GhostPlaceholder.styles.d.ts +5 -2
  110. package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
  111. package/dist/Grid/Grid.styles.d.ts +5 -4
  112. package/dist/Grid/Grid.styles.js +2 -2
  113. package/dist/GroupSelect/GroupSelect.js +1 -1
  114. package/dist/GroupSelect/GroupSelect.js.map +1 -1
  115. package/dist/GroupSelect/GroupSelect.styles.d.ts +4 -2
  116. package/dist/GroupSelect/GroupSelect.styles.js +1 -1
  117. package/dist/Input/Input.js +5 -1
  118. package/dist/Input/Input.js.map +1 -1
  119. package/dist/Input/Input.styles.d.ts +8 -8
  120. package/dist/Input/Input.styles.js +5 -5
  121. package/dist/Input/Input.styles.js.map +1 -1
  122. package/dist/Link/Link.js +3 -1
  123. package/dist/Link/Link.js.map +1 -1
  124. package/dist/Link/Link.styles.d.ts +4 -1
  125. package/dist/Link/Link.styles.js +4 -4
  126. package/dist/Link/Link.styles.js.map +1 -1
  127. package/dist/Link/Link.types.d.ts +1 -2
  128. package/dist/Link/Link.types.js.map +1 -1
  129. package/dist/ListPage/ListPage.styles.d.ts +9 -8
  130. package/dist/ListPage/ListPage.styles.js +8 -8
  131. package/dist/Loader/Loader.styles.d.ts +4 -3
  132. package/dist/Loader/Loader.styles.js +2 -2
  133. package/dist/Menu/Menu.js +6 -5
  134. package/dist/Menu/Menu.js.map +1 -1
  135. package/dist/MenuImperative/MenuImperative.d.ts +2 -3
  136. package/dist/MenuImperative/MenuImperative.js +8 -26
  137. package/dist/MenuImperative/MenuImperative.js.map +1 -1
  138. package/dist/MenuImperative/MenuImperative.styles.d.ts +15 -13
  139. package/dist/MenuImperative/MenuImperative.styles.js +13 -13
  140. package/dist/MenuImperative/MenuImperative.styles.js.map +1 -1
  141. package/dist/Modal/Modal.d.ts +6 -6
  142. package/dist/Modal/Modal.js +2 -2
  143. package/dist/Modal/Modal.js.map +1 -1
  144. package/dist/Modal/Modal.styles.d.ts +27 -19
  145. package/dist/Modal/Modal.styles.js +13 -13
  146. package/dist/MultiSelect/MultiSelect.js +5 -5
  147. package/dist/MultiSelect/MultiSelect.js.map +1 -1
  148. package/dist/MultiSelect/MultiSelect.styles.d.ts +19 -13
  149. package/dist/MultiSelect/MultiSelect.styles.js +6 -6
  150. package/dist/NextMenu/NextMenu.styles.d.ts +4 -3
  151. package/dist/NextMenu/NextMenu.styles.js +3 -3
  152. package/dist/Notation/Notation.js +5 -5
  153. package/dist/Notation/Notation.js.map +1 -1
  154. package/dist/NumberInput/NumberInput.hooks.d.ts +1 -1
  155. package/dist/NumberInput/NumberInput.styles.d.ts +16 -10
  156. package/dist/NumberInput/NumberInput.styles.js +7 -7
  157. package/dist/Overlay/OverlayArrow.styles.d.ts +2 -1
  158. package/dist/Overlay/OverlayArrow.styles.js +1 -1
  159. package/dist/OverlayTrigger/a11yPresets.d.ts +20 -20
  160. package/dist/PageLayout/PageLayout.styles.d.ts +33 -24
  161. package/dist/PageLayout/PageLayout.styles.js +16 -16
  162. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.d.ts +2 -1
  163. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
  164. package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.d.ts +3 -1
  165. package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.js.map +1 -1
  166. package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.d.ts +10 -4
  167. package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
  168. package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.d.ts +12 -8
  169. package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
  170. package/dist/PageTemplate/PageTemplate/PageTemplate.styles.d.ts +5 -3
  171. package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
  172. package/dist/Pagination/Pagination.styles.d.ts +13 -5
  173. package/dist/Pagination/Pagination.styles.js +5 -5
  174. package/dist/Panel/Panel.js +1 -1
  175. package/dist/Panel/Panel.js.map +1 -1
  176. package/dist/Panel/Panel.styles.d.ts +19 -15
  177. package/dist/Panel/Panel.styles.js +19 -19
  178. package/dist/Panel/Panel.styles.js.map +1 -1
  179. package/dist/Pill/Pill.styles.d.ts +9 -5
  180. package/dist/Pill/Pill.styles.js +2 -2
  181. package/dist/PillSelect/PillSelect.styles.d.ts +7 -5
  182. package/dist/PillSelect/PillSelect.styles.js +4 -4
  183. package/dist/Popover/Popover.styles.d.ts +3 -2
  184. package/dist/Popover/Popover.styles.js +2 -2
  185. package/dist/Portal/Portal.styles.d.ts +2 -1
  186. package/dist/Portal/Portal.styles.js +1 -1
  187. package/dist/ProgressBar/ProgressBar.styles.d.ts +3 -3
  188. package/dist/ProgressBar/ProgressBar.styles.js +2 -2
  189. package/dist/RadioButton/RadioButton.styles.d.ts +5 -4
  190. package/dist/RadioButton/RadioButton.styles.js +3 -3
  191. package/dist/Required/Required.styles.d.ts +5 -4
  192. package/dist/Required/Required.styles.js +3 -3
  193. package/dist/Search/Search.js +6 -2
  194. package/dist/Search/Search.js.map +1 -1
  195. package/dist/Search/Search.styles.d.ts +11 -12
  196. package/dist/Search/Search.styles.js +13 -7
  197. package/dist/Search/Search.styles.js.map +1 -1
  198. package/dist/Section/Section.styles.d.ts +11 -9
  199. package/dist/Section/Section.styles.js +7 -7
  200. package/dist/SegmentedController/SegmentedController.js +1 -1
  201. package/dist/SegmentedController/SegmentedController.js.map +1 -1
  202. package/dist/SegmentedController/SegmentedController.styles.d.ts +8 -7
  203. package/dist/SegmentedController/SegmentedController.styles.js +9 -9
  204. package/dist/SegmentedController/SegmentedController.styles.js.map +1 -1
  205. package/dist/Select/Select.js +4 -4
  206. package/dist/Select/Select.js.map +1 -1
  207. package/dist/Select/Select.styles.d.ts +13 -9
  208. package/dist/Select/Select.styles.js +7 -7
  209. package/dist/Semantic/Semantic.styles.d.ts +359 -20
  210. package/dist/Semantic/Semantic.styles.js +11 -12
  211. package/dist/Semantic/Semantic.styles.js.map +1 -1
  212. package/dist/Slider/Slider.styles.d.ts +9 -7
  213. package/dist/Slider/Slider.styles.js +5 -5
  214. package/dist/Spinner/Spinner.styles.d.ts +9 -8
  215. package/dist/Spinner/Spinner.styles.js +7 -7
  216. package/dist/SplitViewCard/SplitViewCard.styles.d.ts +13 -11
  217. package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
  218. package/dist/SuperSelect/SuperSelect.components.d.ts +1 -1
  219. package/dist/SuperSelect/SuperSelect.components.js.map +1 -1
  220. package/dist/SuperSelect/SuperSelect.presets.styles.d.ts +3 -1
  221. package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
  222. package/dist/SuperSelect/SuperSelect.styles.d.ts +67 -54
  223. package/dist/SuperSelect/SuperSelect.styles.js +37 -37
  224. package/dist/SuperSelect/SuperSelect.styles.js.map +1 -1
  225. package/dist/SuperSelect/SuperSelect.types.d.ts +9 -8
  226. package/dist/SuperSelect/SuperSelect.types.js.map +1 -1
  227. package/dist/SuperSelect/presets/filterPreset.js.map +1 -1
  228. package/dist/SuperSelect/useSuperSelect.js.map +1 -1
  229. package/dist/Switch/Switch.styles.d.ts +6 -5
  230. package/dist/Switch/Switch.styles.js +4 -4
  231. package/dist/Table/Table.d.ts +7 -3
  232. package/dist/Table/Table.js.map +1 -1
  233. package/dist/Table/Table.styles.d.ts +69 -45
  234. package/dist/Table/Table.styles.js +28 -28
  235. package/dist/TableShelf/TableShelf.styles.d.ts +6 -5
  236. package/dist/TableShelf/TableShelf.styles.js +5 -5
  237. package/dist/Tabs/Tabs.styles.d.ts +31 -9
  238. package/dist/Tabs/Tabs.styles.js +15 -15
  239. package/dist/Tearsheet/Tearsheet.styles.d.ts +12 -10
  240. package/dist/Tearsheet/Tearsheet.styles.js +6 -6
  241. package/dist/Tearsheet/Tearsheet.styles.js.map +1 -1
  242. package/dist/TextArea/TextArea.js +6 -2
  243. package/dist/TextArea/TextArea.js.map +1 -1
  244. package/dist/TextArea/TextArea.styles.d.ts +7 -1
  245. package/dist/TextArea/TextArea.styles.js +2 -2
  246. package/dist/TextArea/TextArea.styles.js.map +1 -1
  247. package/dist/TextEditor/TextEditor.styles.d.ts +3 -2
  248. package/dist/TextEditorOutput/TextEditorOutput.styles.d.ts +2 -1
  249. package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
  250. package/dist/Thumbnail/Thumbnail.hooks.d.ts +129 -139
  251. package/dist/Thumbnail/Thumbnail.js +69 -56
  252. package/dist/Thumbnail/Thumbnail.js.map +1 -1
  253. package/dist/Thumbnail/Thumbnail.styles.d.ts +34 -32
  254. package/dist/Thumbnail/Thumbnail.styles.js +78 -79
  255. package/dist/Thumbnail/Thumbnail.styles.js.map +1 -1
  256. package/dist/Thumbnail/Thumbnail.types.d.ts +1 -1
  257. package/dist/Thumbnail/Thumbnail.types.js.map +1 -1
  258. package/dist/Thumbnail/ThumbnailCaption.js +10 -10
  259. package/dist/Thumbnail/ThumbnailCaption.js.map +1 -1
  260. package/dist/ThumbnailGrid/ThumbnailGrid.js +2 -2
  261. package/dist/ThumbnailGrid/ThumbnailGrid.js.map +1 -1
  262. package/dist/ThumbnailGrid/ThumbnailGrid.styles.d.ts +20 -8
  263. package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
  264. package/dist/TieredSelect/TierSelectionTieredSelect.js +9 -9
  265. package/dist/TieredSelect/TierSelectionTieredSelect.js.map +1 -1
  266. package/dist/TieredSelect/TieredSelect.styles.d.ts +29 -13
  267. package/dist/TieredSelect/TieredSelect.styles.js +9 -9
  268. package/dist/TieredSelect/TieredSelect.types.d.ts +1 -1
  269. package/dist/TieredSelect/TieredSelect.types.js.map +1 -1
  270. package/dist/TieredSelect/TieredSelectMenu.js +10 -10
  271. package/dist/TieredSelect/TieredSelectMenu.js.map +1 -1
  272. package/dist/Tile/Tile.js +1 -1
  273. package/dist/Tile/Tile.js.map +1 -1
  274. package/dist/Tile/Tile.styles.d.ts +13 -11
  275. package/dist/Tile/Tile.styles.js +8 -8
  276. package/dist/Title/Title.styles.d.ts +12 -8
  277. package/dist/Title/Title.styles.js +7 -7
  278. package/dist/Toast/Toast.styles.d.ts +7 -5
  279. package/dist/Toast/Toast.styles.js +3 -3
  280. package/dist/ToggleButton/ToggleButton.styles.d.ts +4 -2
  281. package/dist/ToggleButton/ToggleButton.styles.js +1 -1
  282. package/dist/Token/Token.styles.d.ts +9 -5
  283. package/dist/Token/Token.styles.js +3 -3
  284. package/dist/ToolHeader/ToolHeader.d.ts +8 -4
  285. package/dist/ToolHeader/ToolHeader.styles.d.ts +9 -7
  286. package/dist/ToolHeader/ToolHeader.styles.js +8 -8
  287. package/dist/ToolHeader/ToolHeader.styles.js.map +1 -1
  288. package/dist/ToolLandingPage/ToolLandingPage.styles.d.ts +5 -3
  289. package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
  290. package/dist/Tooltip/Tooltip.js +3 -4
  291. package/dist/Tooltip/Tooltip.js.map +1 -1
  292. package/dist/Tooltip/Tooltip.styles.d.ts +3 -2
  293. package/dist/Tooltip/Tooltip.styles.js +3 -3
  294. package/dist/Tooltip/Tooltip.styles.js.map +1 -1
  295. package/dist/Tree/Tree.styles.d.ts +24 -12
  296. package/dist/Tree/Tree.styles.js +9 -9
  297. package/dist/Typeahead/Typeahead.js +1 -1
  298. package/dist/Typeahead/Typeahead.js.map +1 -1
  299. package/dist/Typeahead/Typeahead.styles.d.ts +5 -7
  300. package/dist/Typeahead/Typeahead.styles.js +3 -3
  301. package/dist/Typography/Typography.styles.d.ts +5 -4
  302. package/dist/Typography/Typography.styles.js +1 -1
  303. package/dist/Typography/Typography.styles.js.map +1 -1
  304. package/dist/Typography/Typography.table.story.js +2 -2
  305. package/dist/_styles/arrows.d.ts +4 -4
  306. package/dist/_styles/borderRadius.d.ts +1 -1
  307. package/dist/_styles/mixins.d.ts +7 -7
  308. package/dist/_styles/shadows.d.ts +1 -1
  309. package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +3 -3
  310. package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
  311. package/dist/_typedoc/AvatarStack/AvatarStack.types.json +24 -24
  312. package/dist/_typedoc/Badge/Badge.types.json +6 -6
  313. package/dist/_typedoc/Banner/Banner.types.json +13 -13
  314. package/dist/_typedoc/Box/Box.types.json +77 -77
  315. package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
  316. package/dist/_typedoc/Button/Button.types.json +13 -13
  317. package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
  318. package/dist/_typedoc/Card/Card.types.json +6 -6
  319. package/dist/_typedoc/Checkbox/Checkbox.types.json +9 -9
  320. package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
  321. package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
  322. package/dist/_typedoc/DateSelect/DateSelect.types.json +13 -13
  323. package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
  324. package/dist/_typedoc/Dropdown/Dropdown.types.json +37 -37
  325. package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +39 -29
  326. package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
  327. package/dist/_typedoc/EmptyState/EmptyState.types.json +16 -16
  328. package/dist/_typedoc/FileList/FileList.types.json +9 -9
  329. package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
  330. package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
  331. package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
  332. package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
  333. package/dist/_typedoc/Flex/Flex.types.json +27 -27
  334. package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
  335. package/dist/_typedoc/Form/Form.types.json +747 -747
  336. package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
  337. package/dist/_typedoc/Grid/Grid.types.json +8 -8
  338. package/dist/_typedoc/GroupSelect/GroupSelect.types.json +52 -52
  339. package/dist/_typedoc/Input/Input.types.json +2 -2
  340. package/dist/_typedoc/Link/Link.types.json +11 -6
  341. package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
  342. package/dist/_typedoc/Menu/Menu.types.json +62 -62
  343. package/dist/_typedoc/MenuImperative/MenuImperative.types.json +74 -74
  344. package/dist/_typedoc/Modal/Modal.types.json +46 -46
  345. package/dist/_typedoc/MultiSelect/MultiSelect.types.json +31 -31
  346. package/dist/_typedoc/Notation/Notation.types.json +4 -4
  347. package/dist/_typedoc/NumberInput/NumberInput.types.json +37 -37
  348. package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +31 -31
  349. package/dist/_typedoc/PageLayout/PageLayout.types.json +29 -29
  350. package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
  351. package/dist/_typedoc/Panel/Panel.types.json +28 -28
  352. package/dist/_typedoc/Pill/Pill.types.json +2 -2
  353. package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
  354. package/dist/_typedoc/Popover/Popover.types.json +15 -15
  355. package/dist/_typedoc/ProgressBar/ProgressBar.types.json +6 -6
  356. package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
  357. package/dist/_typedoc/Required/Required.types.json +5 -5
  358. package/dist/_typedoc/Search/Search.types.json +18 -18
  359. package/dist/_typedoc/Section/Section.types.json +15 -15
  360. package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
  361. package/dist/_typedoc/Select/Select.types.json +60 -60
  362. package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
  363. package/dist/_typedoc/Slider/Slider.types.json +6 -6
  364. package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
  365. package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +12 -12
  366. package/dist/_typedoc/Switch/Switch.types.json +3 -3
  367. package/dist/_typedoc/Table/Table.types.json +101 -101
  368. package/dist/_typedoc/Tabs/Tabs.types.json +20 -20
  369. package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
  370. package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
  371. package/dist/_typedoc/TextEditor/TextEditor.types.json +9 -9
  372. package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +4 -4
  373. package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
  374. package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +44 -44
  375. package/dist/_typedoc/TieredSelect/TieredSelect.types.json +30 -30
  376. package/dist/_typedoc/Tile/Tile.types.json +30 -30
  377. package/dist/_typedoc/Title/Title.types.json +3 -3
  378. package/dist/_typedoc/Toast/Toast.types.json +4 -4
  379. package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
  380. package/dist/_typedoc/Token/Token.types.json +6 -6
  381. package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
  382. package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +7 -7
  383. package/dist/_typedoc/Tooltip/Tooltip.types.json +13 -13
  384. package/dist/_typedoc/Tree/Tree.types.json +86 -86
  385. package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
  386. package/dist/_typedoc/Typography/Typography.types.json +9 -9
  387. package/dist/_typedoc/_utils/types.json +3 -3
  388. package/package.json +10 -12
@@ -1 +1 @@
1
- {"version":3,"file":"GroupSelect.js","names":["React","MenuImperative","MultiSelect","StyledGroupSelectOption","emptyArray","noop","defaultGetId","item","id","defaultGetLabel","label","defaultGetGroup","options","defaultGetOptGroup","groupId","defaultOptionRenderer","_ref","getId","getLabel","_ref$disabled","disabled","value","props","_objectWithoutProperties","_excluded","createElement","_extends","key","concat","defaultOptGroupRenderer","_ref2","Group","clickable","useGroupSelect","_ref3","groups","getGroup","onChange","_onSearch","onSearch","_React$useState","useState","_React$useState2","_slicedToArray","searchValue","setSearchValue","groupOptionsDictionary","useMemo","reduce","acc","curr","_objectSpread","_defineProperty","collectOptionIds","useCallback","cur","add","Set","groupIds","isGroup","groupdId","has","externalOnSearch","e","internalOnSearch","target","selectedOptions","filter","option","selectedOptionIds","selectedGroups","group","length","every","selectedGroupIds","getGroupOptions","groupOptiodId","groupOptions","groupOption","onSelect","selection","newSelected","optionId","_toConsumableArray","searchFilterCallback","toLowerCase","includes","computedOptions","filteredGroups","computedGroups","GroupSelect","forwardRef","_ref4","ref","_ref4$value","_ref4$options","_ref4$groups","_ref4$getId","_ref4$getLabel","_ref4$getGroup","_ref4$getOptGroup","getOptGroup","_ref4$onChange","optionRenderer","groupRenderer","_ref4$optGroupRendere","optGroupRenderer","_excluded2","_useGroupSelect","multiselectOptionRenderer","renderer","isSelected","isDisabled","selected","groupHeaderRenderer","displayName"],"sources":["../../src/GroupSelect/GroupSelect.tsx"],"sourcesContent":["import React from 'react'\nimport { MenuImperative } from '../MenuImperative/MenuImperative'\nimport { MultiSelect } from '../MultiSelect/MultiSelect'\nimport type {\n GroupItem,\n MultiSelectProps,\n} from '../MultiSelect/MultiSelect.types'\nimport { StyledGroupSelectOption } from './GroupSelect.styles'\nimport type {\n ChangeEvent,\n GroupOption,\n GroupSelectConfig,\n GroupSelectOptionRendererParams,\n GroupSelectProps,\n Option,\n} from './GroupSelect.types'\n\nconst emptyArray: Option[] = []\nconst noop: GroupSelectProps['onChange'] = () => {}\nconst defaultGetId: GroupSelectProps['getId'] = (item) => item.id\nconst defaultGetLabel: GroupSelectProps['getLabel'] = (item) => item.label\nconst defaultGetGroup: GroupSelectProps['getGroup'] = (item) => item.options\nconst defaultGetOptGroup: GroupSelectProps['getOptGroup'] = (item) =>\n item.groupId\n\nfunction defaultOptionRenderer(\n item: Option | GroupOption,\n {\n getId,\n getLabel,\n disabled = false,\n value,\n ...props\n }: GroupSelectOptionRendererParams\n) {\n return (\n <StyledGroupSelectOption\n {...props}\n key={`group-select-menu-item-${getId(item)}`}\n value={value || item}\n disabled={disabled}\n >\n {getLabel(item)}\n </StyledGroupSelectOption>\n )\n}\n\nfunction defaultOptGroupRenderer({ id, label }: GroupItem) {\n return (\n <MenuImperative.Group key={`group_${id}`} clickable={false}>\n {label}\n </MenuImperative.Group>\n )\n}\n\nfunction useGroupSelect({\n value,\n options,\n groups,\n getId,\n getLabel,\n getGroup,\n onChange,\n onSearch: _onSearch,\n}: GroupSelectConfig) {\n const [searchValue, setSearchValue] = React.useState('')\n\n const groupOptionsDictionary: Record<string | number, Option> = React.useMemo(\n () =>\n groups.reduce(\n (acc, curr) => ({\n ...acc,\n [getId(curr)]: getGroup(curr),\n }),\n {}\n ),\n [getGroup, getId, groups]\n )\n\n const collectOptionIds = React.useCallback(\n (value: Option[]) =>\n value.reduce<Set<number | string>>(\n (acc, cur) => acc.add(getId(cur)),\n new Set()\n ),\n [getId]\n )\n\n const groupIds = React.useMemo(\n () => collectOptionIds(groups),\n [collectOptionIds, groups]\n )\n\n const isGroup = (groupdId: string | number) => groupIds.has(groupdId)\n\n const externalOnSearch = React.useCallback(\n (e: ChangeEvent) => {\n if (_onSearch) {\n _onSearch(e)\n }\n },\n [_onSearch]\n )\n\n const internalOnSearch = React.useCallback((e: ChangeEvent) => {\n setSearchValue(e.target.value)\n }, [])\n\n const onSearch = _onSearch ? externalOnSearch : internalOnSearch\n\n const selectedOptions = React.useMemo(\n () => value.filter((option) => !groupIds.has(getId(option))),\n [getId, groupIds, value]\n )\n\n const selectedOptionIds = React.useMemo(\n () => collectOptionIds(selectedOptions),\n [collectOptionIds, selectedOptions]\n )\n\n const selectedGroups = React.useMemo(\n () =>\n groups.filter(\n (group) =>\n getGroup(group).length &&\n getGroup(group).every((option: Option) =>\n selectedOptionIds.has(getId(option))\n )\n ),\n [getGroup, getId, groups, selectedOptionIds]\n )\n\n const selectedGroupIds = React.useMemo(\n () => collectOptionIds(selectedGroups),\n [collectOptionIds, selectedGroups]\n )\n\n const getGroupOptions = (groupOptiodId: string | number) => {\n const groupOptions = groupOptionsDictionary[groupOptiodId] || []\n return groupOptions.filter(\n (groupOption: Option) => !selectedOptionIds.has(getId(groupOption))\n )\n }\n\n const onSelect = (selection: (Option | GroupOption)[]) => {\n const newSelected = selection.reduce((acc, option) => {\n const optionId = getId(option)\n\n if (isGroup(optionId)) {\n return !selectedGroupIds.has(optionId)\n ? [...acc, ...getGroupOptions(optionId)]\n : acc\n }\n\n return [...acc, option]\n }, [])\n\n setSearchValue('')\n\n onChange(newSelected)\n }\n\n const searchFilterCallback = React.useCallback(\n (option) =>\n getLabel(option).toLowerCase().includes(searchValue.toLowerCase()),\n [getLabel, searchValue]\n )\n\n const computedOptions = _onSearch\n ? options\n : options.filter(searchFilterCallback)\n\n const filteredGroups = _onSearch\n ? groups\n : groups.filter(searchFilterCallback)\n\n const computedGroups = React.useMemo(\n () => filteredGroups.filter((group: Option) => getGroup(group).length),\n [filteredGroups, getGroup]\n )\n\n return {\n selectedOptions,\n computedOptions: [...computedGroups, ...computedOptions],\n selectedOptionIds,\n selectedGroupIds,\n isGroup,\n onSearch,\n onSelect,\n }\n}\n\n/**\n\n Group select allows users to select multiple options from a single item in a\n menu. Other select components are multi select, and select, tiered select.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-groupselect--custom-search)\n\n @see [Design Guidelines](https://design.procore.com/group-select)\n\n */\nexport const GroupSelect = React.forwardRef<\n HTMLDivElement & MultiSelectProps,\n GroupSelectProps\n>(function GroupSelect(\n {\n value = emptyArray,\n options = emptyArray,\n groups = emptyArray,\n getId = defaultGetId,\n getLabel = defaultGetLabel,\n getGroup = defaultGetGroup,\n getOptGroup = defaultGetOptGroup,\n onChange = noop,\n onSearch: _onSearch,\n optionRenderer,\n groupRenderer,\n optGroupRenderer = defaultOptGroupRenderer,\n ...props\n },\n ref\n) {\n const {\n selectedOptions,\n selectedOptionIds,\n selectedGroupIds,\n computedOptions,\n isGroup,\n onSelect,\n onSearch,\n } = useGroupSelect({\n value,\n options,\n groups,\n getId,\n getLabel,\n getGroup,\n onChange,\n onSearch: _onSearch,\n })\n\n const multiselectOptionRenderer = React.useCallback(\n (option: Option) => {\n const optionId = getId(option)\n const renderer =\n (isGroup(optionId) ? groupRenderer : optionRenderer) ||\n defaultOptionRenderer\n\n const isSelected = selectedOptionIds.has(optionId)\n const isDisabled = selectedGroupIds.has(optionId)\n\n return renderer(option, {\n getId,\n getLabel,\n value: option,\n selected: isSelected,\n disabled: isDisabled,\n })\n },\n [\n getId,\n getLabel,\n groupRenderer,\n isGroup,\n optionRenderer,\n selectedGroupIds,\n selectedOptionIds,\n ]\n )\n\n return (\n <MultiSelect\n ref={ref}\n {...props}\n value={selectedOptions}\n options={computedOptions}\n getId={getId}\n getLabel={getLabel}\n onChange={onSelect}\n onSearch={onSearch}\n getGroup={getOptGroup}\n optionRenderer={multiselectOptionRenderer}\n groupHeaderRenderer={optGroupRenderer}\n />\n )\n})\n\nGroupSelect.displayName = 'GroupSelect'\n"],"mappings":"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"}
1
+ {"version":3,"file":"GroupSelect.js","names":["React","MenuImperative","MultiSelect","StyledGroupSelectOption","emptyArray","noop","defaultGetId","item","id","defaultGetLabel","label","defaultGetGroup","options","defaultGetOptGroup","groupId","defaultOptionRenderer","_ref","getId","getLabel","_ref$disabled","disabled","value","props","_objectWithoutProperties","_excluded","createElement","_extends","key","concat","defaultOptGroupRenderer","_ref2","Group","clickable","useGroupSelect","_ref3","groups","getGroup","onChange","_onSearch","onSearch","_React$useState","useState","_React$useState2","_slicedToArray","searchValue","setSearchValue","groupOptionsDictionary","useMemo","reduce","acc","curr","_objectSpread","_defineProperty","collectOptionIds","useCallback","cur","add","Set","groupIds","isGroup","groupdId","has","externalOnSearch","e","internalOnSearch","target","selectedOptions","filter","option","selectedOptionIds","selectedGroups","group","length","every","selectedGroupIds","getGroupOptions","groupOptiodId","groupOptions","groupOption","onSelect","selection","newSelected","optionId","_toConsumableArray","searchFilterCallback","toLowerCase","includes","computedOptions","filteredGroups","computedGroups","GroupSelect","forwardRef","_ref4","ref","_ref4$value","_ref4$options","_ref4$groups","_ref4$getId","_ref4$getLabel","_ref4$getGroup","_ref4$getOptGroup","getOptGroup","_ref4$onChange","optionRenderer","groupRenderer","_ref4$optGroupRendere","optGroupRenderer","_excluded2","_useGroupSelect","multiselectOptionRenderer","renderer","isSelected","isDisabled","selected","groupHeaderRenderer","displayName"],"sources":["../../src/GroupSelect/GroupSelect.tsx"],"sourcesContent":["import React from 'react'\nimport { MenuImperative } from '../MenuImperative/MenuImperative'\nimport { MultiSelect } from '../MultiSelect'\nimport type {\n GroupItem,\n MultiSelectProps,\n} from '../MultiSelect/MultiSelect.types'\nimport { StyledGroupSelectOption } from './GroupSelect.styles'\nimport type {\n ChangeEvent,\n GroupOption,\n GroupSelectConfig,\n GroupSelectOptionRendererParams,\n GroupSelectProps,\n Option,\n} from './GroupSelect.types'\n\nconst emptyArray: Option[] = []\nconst noop: GroupSelectProps['onChange'] = () => {}\nconst defaultGetId: GroupSelectProps['getId'] = (item) => item.id\nconst defaultGetLabel: GroupSelectProps['getLabel'] = (item) => item.label\nconst defaultGetGroup: GroupSelectProps['getGroup'] = (item) => item.options\nconst defaultGetOptGroup: GroupSelectProps['getOptGroup'] = (item) =>\n item.groupId\n\nfunction defaultOptionRenderer(\n item: Option | GroupOption,\n {\n getId,\n getLabel,\n disabled = false,\n value,\n ...props\n }: GroupSelectOptionRendererParams\n) {\n return (\n <StyledGroupSelectOption\n {...props}\n key={`group-select-menu-item-${getId(item)}`}\n value={value || item}\n disabled={disabled}\n >\n {getLabel(item)}\n </StyledGroupSelectOption>\n )\n}\n\nfunction defaultOptGroupRenderer({ id, label }: GroupItem) {\n return (\n <MenuImperative.Group key={`group_${id}`} clickable={false}>\n {label}\n </MenuImperative.Group>\n )\n}\n\nfunction useGroupSelect({\n value,\n options,\n groups,\n getId,\n getLabel,\n getGroup,\n onChange,\n onSearch: _onSearch,\n}: GroupSelectConfig) {\n const [searchValue, setSearchValue] = React.useState('')\n\n const groupOptionsDictionary: Record<string | number, Option> = React.useMemo(\n () =>\n groups.reduce(\n (acc, curr) => ({\n ...acc,\n [getId(curr)]: getGroup(curr),\n }),\n {}\n ),\n [getGroup, getId, groups]\n )\n\n const collectOptionIds = React.useCallback(\n (value: Option[]) =>\n value.reduce<Set<number | string>>(\n (acc, cur) => acc.add(getId(cur)),\n new Set()\n ),\n [getId]\n )\n\n const groupIds = React.useMemo(\n () => collectOptionIds(groups),\n [collectOptionIds, groups]\n )\n\n const isGroup = (groupdId: string | number) => groupIds.has(groupdId)\n\n const externalOnSearch = React.useCallback(\n (e: ChangeEvent) => {\n if (_onSearch) {\n _onSearch(e)\n }\n },\n [_onSearch]\n )\n\n const internalOnSearch = React.useCallback((e: ChangeEvent) => {\n setSearchValue(e.target.value)\n }, [])\n\n const onSearch = _onSearch ? externalOnSearch : internalOnSearch\n\n const selectedOptions = React.useMemo(\n () => value.filter((option) => !groupIds.has(getId(option))),\n [getId, groupIds, value]\n )\n\n const selectedOptionIds = React.useMemo(\n () => collectOptionIds(selectedOptions),\n [collectOptionIds, selectedOptions]\n )\n\n const selectedGroups = React.useMemo(\n () =>\n groups.filter(\n (group) =>\n getGroup(group).length &&\n getGroup(group).every((option: Option) =>\n selectedOptionIds.has(getId(option))\n )\n ),\n [getGroup, getId, groups, selectedOptionIds]\n )\n\n const selectedGroupIds = React.useMemo(\n () => collectOptionIds(selectedGroups),\n [collectOptionIds, selectedGroups]\n )\n\n const getGroupOptions = (groupOptiodId: string | number) => {\n const groupOptions = groupOptionsDictionary[groupOptiodId] || []\n return groupOptions.filter(\n (groupOption: Option) => !selectedOptionIds.has(getId(groupOption))\n )\n }\n\n const onSelect = (selection: (Option | GroupOption)[]) => {\n const newSelected = selection.reduce((acc, option) => {\n const optionId = getId(option)\n\n if (isGroup(optionId)) {\n return !selectedGroupIds.has(optionId)\n ? [...acc, ...getGroupOptions(optionId)]\n : acc\n }\n\n return [...acc, option]\n }, [])\n\n setSearchValue('')\n\n onChange(newSelected)\n }\n\n const searchFilterCallback = React.useCallback(\n (option: Option | GroupOption) =>\n getLabel(option).toLowerCase().includes(searchValue.toLowerCase()),\n [getLabel, searchValue]\n )\n\n const computedOptions = _onSearch\n ? options\n : options.filter(searchFilterCallback)\n\n const filteredGroups = _onSearch\n ? groups\n : groups.filter(searchFilterCallback)\n\n const computedGroups = React.useMemo(\n () => filteredGroups.filter((group: Option) => getGroup(group).length),\n [filteredGroups, getGroup]\n )\n\n return {\n selectedOptions,\n computedOptions: [...computedGroups, ...computedOptions],\n selectedOptionIds,\n selectedGroupIds,\n isGroup,\n onSearch,\n onSelect,\n }\n}\n\n/**\n\n Group select allows users to select multiple options from a single item in a\n menu. Other select components are multi select, and select, tiered select.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-groupselect--custom-search)\n\n @see [Design Guidelines](https://design.procore.com/group-select)\n\n */\nexport const GroupSelect = React.forwardRef<\n HTMLDivElement & MultiSelectProps,\n GroupSelectProps\n>(function GroupSelect(\n {\n value = emptyArray,\n options = emptyArray,\n groups = emptyArray,\n getId = defaultGetId,\n getLabel = defaultGetLabel,\n getGroup = defaultGetGroup,\n getOptGroup = defaultGetOptGroup,\n onChange = noop,\n onSearch: _onSearch,\n optionRenderer,\n groupRenderer,\n optGroupRenderer = defaultOptGroupRenderer,\n ...props\n },\n ref\n) {\n const {\n selectedOptions,\n selectedOptionIds,\n selectedGroupIds,\n computedOptions,\n isGroup,\n onSelect,\n onSearch,\n } = useGroupSelect({\n value,\n options,\n groups,\n getId,\n getLabel,\n getGroup,\n onChange,\n onSearch: _onSearch,\n })\n\n const multiselectOptionRenderer = React.useCallback(\n (option: Option) => {\n const optionId = getId(option)\n const renderer =\n (isGroup(optionId) ? groupRenderer : optionRenderer) ||\n defaultOptionRenderer\n\n const isSelected = selectedOptionIds.has(optionId)\n const isDisabled = selectedGroupIds.has(optionId)\n\n return renderer(option, {\n getId,\n getLabel,\n value: option,\n selected: isSelected,\n disabled: isDisabled,\n })\n },\n [\n getId,\n getLabel,\n groupRenderer,\n isGroup,\n optionRenderer,\n selectedGroupIds,\n selectedOptionIds,\n ]\n )\n\n return (\n <MultiSelect\n ref={ref}\n {...props}\n value={selectedOptions}\n options={computedOptions}\n getId={getId}\n getLabel={getLabel}\n onChange={onSelect}\n onSearch={onSearch}\n getGroup={getOptGroup}\n optionRenderer={multiselectOptionRenderer}\n groupHeaderRenderer={optGroupRenderer}\n />\n )\n})\n\nGroupSelect.displayName = 'GroupSelect'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,cAAc,QAAQ,kCAAkC;AACjE,SAASC,WAAW,QAAQ,gBAAgB;AAK5C,SAASC,uBAAuB,QAAQ,sBAAsB;AAU9D,IAAMC,UAAoB,GAAG,EAAE;AAC/B,IAAMC,IAAkC,GAAG,SAArCA,IAAkCA,CAAA,EAAS,CAAC,CAAC;AACnD,IAAMC,YAAuC,GAAG,SAA1CA,YAAuCA,CAAIC,IAAI;EAAA,OAAKA,IAAI,CAACC,EAAE;AAAA;AACjE,IAAMC,eAA6C,GAAG,SAAhDA,eAA6CA,CAAIF,IAAI;EAAA,OAAKA,IAAI,CAACG,KAAK;AAAA;AAC1E,IAAMC,eAA6C,GAAG,SAAhDA,eAA6CA,CAAIJ,IAAI;EAAA,OAAKA,IAAI,CAACK,OAAO;AAAA;AAC5E,IAAMC,kBAAmD,GAAG,SAAtDA,kBAAmDA,CAAIN,IAAI;EAAA,OAC/DA,IAAI,CAACO,OAAO;AAAA;AAEd,SAASC,qBAAqBA,CAC5BR,IAA0B,EAAAS,IAAA,EAQ1B;EAAA,IANEC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAAC,aAAA,GAAAH,IAAA,CACRI,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAG,KAAK,GAAAA,aAAA;IAChBE,KAAK,GAAAL,IAAA,CAALK,KAAK;IACFC,KAAK,GAAAC,wBAAA,CAAAP,IAAA,EAAAQ,SAAA;EAGV,oBACExB,KAAA,CAAAyB,aAAA,CAACtB,uBAAuB,EAAAuB,QAAA,KAClBJ,KAAK;IACTK,GAAG,4BAAAC,MAAA,CAA4BX,KAAK,CAACV,IAAI,CAAC,CAAG;IAC7Cc,KAAK,EAAEA,KAAK,IAAId,IAAK;IACrBa,QAAQ,EAAEA;EAAS,IAElBF,QAAQ,CAACX,IAAI,CACS,CAAC;AAE9B;AAEA,SAASsB,uBAAuBA,CAAAC,KAAA,EAA2B;EAAA,IAAxBtB,EAAE,GAAAsB,KAAA,CAAFtB,EAAE;IAAEE,KAAK,GAAAoB,KAAA,CAALpB,KAAK;EAC1C,oBACEV,KAAA,CAAAyB,aAAA,CAACxB,cAAc,CAAC8B,KAAK;IAACJ,GAAG,WAAAC,MAAA,CAAWpB,EAAE,CAAG;IAACwB,SAAS,EAAE;EAAM,GACxDtB,KACmB,CAAC;AAE3B;AAEA,SAASuB,cAAcA,CAAAC,KAAA,EASD;EAAA,IARpBb,KAAK,GAAAa,KAAA,CAALb,KAAK;IACLT,OAAO,GAAAsB,KAAA,CAAPtB,OAAO;IACPuB,MAAM,GAAAD,KAAA,CAANC,MAAM;IACNlB,KAAK,GAAAiB,KAAA,CAALjB,KAAK;IACLC,QAAQ,GAAAgB,KAAA,CAARhB,QAAQ;IACRkB,QAAQ,GAAAF,KAAA,CAARE,QAAQ;IACRC,QAAQ,GAAAH,KAAA,CAARG,QAAQ;IACEC,SAAS,GAAAJ,KAAA,CAAnBK,QAAQ;EAER,IAAAC,eAAA,GAAsCxC,KAAK,CAACyC,QAAQ,CAAC,EAAE,CAAC;IAAAC,gBAAA,GAAAC,cAAA,CAAAH,eAAA;IAAjDI,WAAW,GAAAF,gBAAA;IAAEG,cAAc,GAAAH,gBAAA;EAElC,IAAMI,sBAAuD,GAAG9C,KAAK,CAAC+C,OAAO,CAC3E;IAAA,OACEZ,MAAM,CAACa,MAAM,CACX,UAACC,GAAG,EAAEC,IAAI;MAAA,OAAAC,aAAA,CAAAA,aAAA,KACLF,GAAG,OAAAG,eAAA,KACLnC,KAAK,CAACiC,IAAI,CAAC,EAAGd,QAAQ,CAACc,IAAI,CAAC;IAAA,CAC7B,EACF,CAAC,CACH,CAAC;EAAA,GACH,CAACd,QAAQ,EAAEnB,KAAK,EAAEkB,MAAM,CAC1B,CAAC;EAED,IAAMkB,gBAAgB,GAAGrD,KAAK,CAACsD,WAAW,CACxC,UAACjC,KAAe;IAAA,OACdA,KAAK,CAAC2B,MAAM,CACV,UAACC,GAAG,EAAEM,GAAG;MAAA,OAAKN,GAAG,CAACO,GAAG,CAACvC,KAAK,CAACsC,GAAG,CAAC,CAAC;IAAA,GACjC,IAAIE,GAAG,CAAC,CACV,CAAC;EAAA,GACH,CAACxC,KAAK,CACR,CAAC;EAED,IAAMyC,QAAQ,GAAG1D,KAAK,CAAC+C,OAAO,CAC5B;IAAA,OAAMM,gBAAgB,CAAClB,MAAM,CAAC;EAAA,GAC9B,CAACkB,gBAAgB,EAAElB,MAAM,CAC3B,CAAC;EAED,IAAMwB,OAAO,GAAG,SAAVA,OAAOA,CAAIC,QAAyB;IAAA,OAAKF,QAAQ,CAACG,GAAG,CAACD,QAAQ,CAAC;EAAA;EAErE,IAAME,gBAAgB,GAAG9D,KAAK,CAACsD,WAAW,CACxC,UAACS,CAAc,EAAK;IAClB,IAAIzB,SAAS,EAAE;MACbA,SAAS,CAACyB,CAAC,CAAC;IACd;EACF,CAAC,EACD,CAACzB,SAAS,CACZ,CAAC;EAED,IAAM0B,gBAAgB,GAAGhE,KAAK,CAACsD,WAAW,CAAC,UAACS,CAAc,EAAK;IAC7DlB,cAAc,CAACkB,CAAC,CAACE,MAAM,CAAC5C,KAAK,CAAC;EAChC,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMkB,QAAQ,GAAGD,SAAS,GAAGwB,gBAAgB,GAAGE,gBAAgB;EAEhE,IAAME,eAAe,GAAGlE,KAAK,CAAC+C,OAAO,CACnC;IAAA,OAAM1B,KAAK,CAAC8C,MAAM,CAAC,UAACC,MAAM;MAAA,OAAK,CAACV,QAAQ,CAACG,GAAG,CAAC5C,KAAK,CAACmD,MAAM,CAAC,CAAC;IAAA,EAAC;EAAA,GAC5D,CAACnD,KAAK,EAAEyC,QAAQ,EAAErC,KAAK,CACzB,CAAC;EAED,IAAMgD,iBAAiB,GAAGrE,KAAK,CAAC+C,OAAO,CACrC;IAAA,OAAMM,gBAAgB,CAACa,eAAe,CAAC;EAAA,GACvC,CAACb,gBAAgB,EAAEa,eAAe,CACpC,CAAC;EAED,IAAMI,cAAc,GAAGtE,KAAK,CAAC+C,OAAO,CAClC;IAAA,OACEZ,MAAM,CAACgC,MAAM,CACX,UAACI,KAAK;MAAA,OACJnC,QAAQ,CAACmC,KAAK,CAAC,CAACC,MAAM,IACtBpC,QAAQ,CAACmC,KAAK,CAAC,CAACE,KAAK,CAAC,UAACL,MAAc;QAAA,OACnCC,iBAAiB,CAACR,GAAG,CAAC5C,KAAK,CAACmD,MAAM,CAAC,CAAC;MAAA,CACtC,CAAC;IAAA,CACL,CAAC;EAAA,GACH,CAAChC,QAAQ,EAAEnB,KAAK,EAAEkB,MAAM,EAAEkC,iBAAiB,CAC7C,CAAC;EAED,IAAMK,gBAAgB,GAAG1E,KAAK,CAAC+C,OAAO,CACpC;IAAA,OAAMM,gBAAgB,CAACiB,cAAc,CAAC;EAAA,GACtC,CAACjB,gBAAgB,EAAEiB,cAAc,CACnC,CAAC;EAED,IAAMK,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,aAA8B,EAAK;IAC1D,IAAMC,YAAY,GAAG/B,sBAAsB,CAAC8B,aAAa,CAAC,IAAI,EAAE;IAChE,OAAOC,YAAY,CAACV,MAAM,CACxB,UAACW,WAAmB;MAAA,OAAK,CAACT,iBAAiB,CAACR,GAAG,CAAC5C,KAAK,CAAC6D,WAAW,CAAC,CAAC;IAAA,CACrE,CAAC;EACH,CAAC;EAED,IAAMC,QAAQ,GAAG,SAAXA,QAAQA,CAAIC,SAAmC,EAAK;IACxD,IAAMC,WAAW,GAAGD,SAAS,CAAChC,MAAM,CAAC,UAACC,GAAG,EAAEmB,MAAM,EAAK;MACpD,IAAMc,QAAQ,GAAGjE,KAAK,CAACmD,MAAM,CAAC;MAE9B,IAAIT,OAAO,CAACuB,QAAQ,CAAC,EAAE;QACrB,OAAO,CAACR,gBAAgB,CAACb,GAAG,CAACqB,QAAQ,CAAC,MAAAtD,MAAA,CAAAuD,kBAAA,CAC9BlC,GAAG,GAAAkC,kBAAA,CAAKR,eAAe,CAACO,QAAQ,CAAC,KACrCjC,GAAG;MACT;MAEA,UAAArB,MAAA,CAAAuD,kBAAA,CAAWlC,GAAG,IAAEmB,MAAM;IACxB,CAAC,EAAE,EAAE,CAAC;IAENvB,cAAc,CAAC,EAAE,CAAC;IAElBR,QAAQ,CAAC4C,WAAW,CAAC;EACvB,CAAC;EAED,IAAMG,oBAAoB,GAAGpF,KAAK,CAACsD,WAAW,CAC5C,UAACc,MAA4B;IAAA,OAC3BlD,QAAQ,CAACkD,MAAM,CAAC,CAACiB,WAAW,CAAC,CAAC,CAACC,QAAQ,CAAC1C,WAAW,CAACyC,WAAW,CAAC,CAAC,CAAC;EAAA,GACpE,CAACnE,QAAQ,EAAE0B,WAAW,CACxB,CAAC;EAED,IAAM2C,eAAe,GAAGjD,SAAS,GAC7B1B,OAAO,GACPA,OAAO,CAACuD,MAAM,CAACiB,oBAAoB,CAAC;EAExC,IAAMI,cAAc,GAAGlD,SAAS,GAC5BH,MAAM,GACNA,MAAM,CAACgC,MAAM,CAACiB,oBAAoB,CAAC;EAEvC,IAAMK,cAAc,GAAGzF,KAAK,CAAC+C,OAAO,CAClC;IAAA,OAAMyC,cAAc,CAACrB,MAAM,CAAC,UAACI,KAAa;MAAA,OAAKnC,QAAQ,CAACmC,KAAK,CAAC,CAACC,MAAM;IAAA,EAAC;EAAA,GACtE,CAACgB,cAAc,EAAEpD,QAAQ,CAC3B,CAAC;EAED,OAAO;IACL8B,eAAe,EAAfA,eAAe;IACfqB,eAAe,KAAA3D,MAAA,CAAAuD,kBAAA,CAAMM,cAAc,GAAAN,kBAAA,CAAKI,eAAe,EAAC;IACxDlB,iBAAiB,EAAjBA,iBAAiB;IACjBK,gBAAgB,EAAhBA,gBAAgB;IAChBf,OAAO,EAAPA,OAAO;IACPpB,QAAQ,EAARA,QAAQ;IACRwC,QAAQ,EAARA;EACF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMW,WAAW,gBAAG1F,KAAK,CAAC2F,UAAU,CAGzC,SAASD,WAAWA,CAAAE,KAAA,EAgBpBC,GAAG,EACH;EAAA,IAAAC,WAAA,GAAAF,KAAA,CAfEvE,KAAK;IAALA,KAAK,GAAAyE,WAAA,cAAG1F,UAAU,GAAA0F,WAAA;IAAAC,aAAA,GAAAH,KAAA,CAClBhF,OAAO;IAAPA,OAAO,GAAAmF,aAAA,cAAG3F,UAAU,GAAA2F,aAAA;IAAAC,YAAA,GAAAJ,KAAA,CACpBzD,MAAM;IAANA,MAAM,GAAA6D,YAAA,cAAG5F,UAAU,GAAA4F,YAAA;IAAAC,WAAA,GAAAL,KAAA,CACnB3E,KAAK;IAALA,KAAK,GAAAgF,WAAA,cAAG3F,YAAY,GAAA2F,WAAA;IAAAC,cAAA,GAAAN,KAAA,CACpB1E,QAAQ;IAARA,QAAQ,GAAAgF,cAAA,cAAGzF,eAAe,GAAAyF,cAAA;IAAAC,cAAA,GAAAP,KAAA,CAC1BxD,QAAQ;IAARA,QAAQ,GAAA+D,cAAA,cAAGxF,eAAe,GAAAwF,cAAA;IAAAC,iBAAA,GAAAR,KAAA,CAC1BS,WAAW;IAAXA,WAAW,GAAAD,iBAAA,cAAGvF,kBAAkB,GAAAuF,iBAAA;IAAAE,cAAA,GAAAV,KAAA,CAChCvD,QAAQ;IAARA,QAAQ,GAAAiE,cAAA,cAAGjG,IAAI,GAAAiG,cAAA;IACLhE,SAAS,GAAAsD,KAAA,CAAnBrD,QAAQ;IACRgE,cAAc,GAAAX,KAAA,CAAdW,cAAc;IACdC,aAAa,GAAAZ,KAAA,CAAbY,aAAa;IAAAC,qBAAA,GAAAb,KAAA,CACbc,gBAAgB;IAAhBA,gBAAgB,GAAAD,qBAAA,cAAG5E,uBAAuB,GAAA4E,qBAAA;IACvCnF,KAAK,GAAAC,wBAAA,CAAAqE,KAAA,EAAAe,UAAA;EAIV,IAAAC,eAAA,GAQI3E,cAAc,CAAC;MACjBZ,KAAK,EAALA,KAAK;MACLT,OAAO,EAAPA,OAAO;MACPuB,MAAM,EAANA,MAAM;MACNlB,KAAK,EAALA,KAAK;MACLC,QAAQ,EAARA,QAAQ;MACRkB,QAAQ,EAARA,QAAQ;MACRC,QAAQ,EAARA,QAAQ;MACRE,QAAQ,EAAED;IACZ,CAAC,CAAC;IAhBA4B,eAAe,GAAA0C,eAAA,CAAf1C,eAAe;IACfG,iBAAiB,GAAAuC,eAAA,CAAjBvC,iBAAiB;IACjBK,gBAAgB,GAAAkC,eAAA,CAAhBlC,gBAAgB;IAChBa,eAAe,GAAAqB,eAAA,CAAfrB,eAAe;IACf5B,OAAO,GAAAiD,eAAA,CAAPjD,OAAO;IACPoB,QAAQ,GAAA6B,eAAA,CAAR7B,QAAQ;IACRxC,QAAQ,GAAAqE,eAAA,CAARrE,QAAQ;EAYV,IAAMsE,yBAAyB,GAAG7G,KAAK,CAACsD,WAAW,CACjD,UAACc,MAAc,EAAK;IAClB,IAAMc,QAAQ,GAAGjE,KAAK,CAACmD,MAAM,CAAC;IAC9B,IAAM0C,QAAQ,GACZ,CAACnD,OAAO,CAACuB,QAAQ,CAAC,GAAGsB,aAAa,GAAGD,cAAc,KACnDxF,qBAAqB;IAEvB,IAAMgG,UAAU,GAAG1C,iBAAiB,CAACR,GAAG,CAACqB,QAAQ,CAAC;IAClD,IAAM8B,UAAU,GAAGtC,gBAAgB,CAACb,GAAG,CAACqB,QAAQ,CAAC;IAEjD,OAAO4B,QAAQ,CAAC1C,MAAM,EAAE;MACtBnD,KAAK,EAALA,KAAK;MACLC,QAAQ,EAARA,QAAQ;MACRG,KAAK,EAAE+C,MAAM;MACb6C,QAAQ,EAAEF,UAAU;MACpB3F,QAAQ,EAAE4F;IACZ,CAAC,CAAC;EACJ,CAAC,EACD,CACE/F,KAAK,EACLC,QAAQ,EACRsF,aAAa,EACb7C,OAAO,EACP4C,cAAc,EACd7B,gBAAgB,EAChBL,iBAAiB,CAErB,CAAC;EAED,oBACErE,KAAA,CAAAyB,aAAA,CAACvB,WAAW,EAAAwB,QAAA;IACVmE,GAAG,EAAEA;EAAI,GACLvE,KAAK;IACTD,KAAK,EAAE6C,eAAgB;IACvBtD,OAAO,EAAE2E,eAAgB;IACzBtE,KAAK,EAAEA,KAAM;IACbC,QAAQ,EAAEA,QAAS;IACnBmB,QAAQ,EAAE0C,QAAS;IACnBxC,QAAQ,EAAEA,QAAS;IACnBH,QAAQ,EAAEiE,WAAY;IACtBE,cAAc,EAAEM,yBAA0B;IAC1CK,mBAAmB,EAAER;EAAiB,EACvC,CAAC;AAEN,CAAC,CAAC;AAEFhB,WAAW,CAACyB,WAAW,GAAG,aAAa"}
@@ -1,4 +1,6 @@
1
1
  /// <reference types="react" />
2
- export declare const StyledGroupSelectOption: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("..").MultiSelectOptionProps & import("react").RefAttributes<HTMLDivElement>>, any, {
2
+ export declare const StyledGroupSelectOption: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<Omit<import("..").MultiSelectOptionProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
3
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
4
+ }, {
3
5
  disabled: boolean;
4
- }, never>;
6
+ }>> & string & Omit<import("react").ForwardRefExoticComponent<import("..").MultiSelectOptionProps & import("react").RefAttributes<HTMLDivElement>>, keyof import("react").Component<any, {}, any>>;
@@ -3,7 +3,7 @@ import { MultiSelect } from '../MultiSelect/MultiSelect';
3
3
  import { colors } from '../_styles/colors';
4
4
  export var StyledGroupSelectOption = /*#__PURE__*/styled(MultiSelect.Option).withConfig({
5
5
  displayName: "StyledGroupSelectOption",
6
- componentId: "core-12_21_2__sc-u5gu8j-0"
6
+ componentId: "core-12_22_0__sc-u5gu8j-0"
7
7
  })(["", ""], function (_ref) {
8
8
  var disabled = _ref.disabled;
9
9
  return disabled && css(["color:", ";cursor:not-allowed;a,a:hover{color:", ";text-decoration:none;}"], colors.gray70, colors.gray70);
@@ -1,4 +1,4 @@
1
- var _excluded = ["children"];
1
+ var _excluded = ["children", "error", "variant"];
2
2
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
3
3
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
4
4
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
@@ -15,8 +15,12 @@ import { StyledInput } from './Input.styles';
15
15
  */
16
16
  export var Input = /*#__PURE__*/React.forwardRef(function Input(_ref, ref) {
17
17
  var children = _ref.children,
18
+ error = _ref.error,
19
+ variant = _ref.variant,
18
20
  props = _objectWithoutProperties(_ref, _excluded);
19
21
  return /*#__PURE__*/React.createElement(StyledInput, _extends({}, props, {
22
+ $error: error,
23
+ $variant: variant,
20
24
  ref: ref
21
25
  }));
22
26
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","names":["React","StyledInput","Input","forwardRef","_ref","ref","children","props","_objectWithoutProperties","_excluded","createElement","_extends","displayName"],"sources":["../../src/Input/Input.tsx"],"sourcesContent":["import React from 'react'\nimport type { InputAttributes } from '../_utils/types'\nimport { StyledInput } from './Input.styles'\nimport type { InputProps } from './Input.types'\n\n/**\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-input--demo)\n\n @see [Design Guidelines](https://design.procore.com/text-input)\n\n */\nexport const Input = React.forwardRef<\n HTMLInputElement,\n InputAttributes & InputProps\n>(function Input({ children, ...props }, ref) {\n return <StyledInput {...props} ref={ref} />\n})\n\nInput.displayName = 'Input'\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,WAAW,QAAQ,gBAAgB;AAG5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,KAAK,gBAAGF,KAAK,CAACG,UAAU,CAGnC,SAASD,KAAKA,CAAAE,IAAA,EAAyBC,GAAG,EAAE;EAAA,IAA3BC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAKC,KAAK,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA;EACnC,oBAAOT,KAAA,CAAAU,aAAA,CAACT,WAAW,EAAAU,QAAA,KAAKJ,KAAK;IAAEF,GAAG,EAAEA;EAAI,EAAE,CAAC;AAC7C,CAAC,CAAC;AAEFH,KAAK,CAACU,WAAW,GAAG,OAAO"}
1
+ {"version":3,"file":"Input.js","names":["React","StyledInput","Input","forwardRef","_ref","ref","children","error","variant","props","_objectWithoutProperties","_excluded","createElement","_extends","$error","$variant","displayName"],"sources":["../../src/Input/Input.tsx"],"sourcesContent":["import React from 'react'\nimport type { InputAttributes } from '../_utils/types'\nimport { StyledInput } from './Input.styles'\nimport type { InputProps } from './Input.types'\n\n/**\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-input--demo)\n\n @see [Design Guidelines](https://design.procore.com/text-input)\n\n */\nexport const Input = React.forwardRef<\n HTMLInputElement,\n InputAttributes & InputProps\n>(function Input({ children, error, variant, ...props }, ref) {\n return <StyledInput {...props} $error={error} $variant={variant} ref={ref} />\n})\n\nInput.displayName = 'Input'\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,WAAW,QAAQ,gBAAgB;AAG5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,KAAK,gBAAGF,KAAK,CAACG,UAAU,CAGnC,SAASD,KAAKA,CAAAE,IAAA,EAAyCC,GAAG,EAAE;EAAA,IAA3CC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAEC,KAAK,GAAAH,IAAA,CAALG,KAAK;IAAEC,OAAO,GAAAJ,IAAA,CAAPI,OAAO;IAAKC,KAAK,GAAAC,wBAAA,CAAAN,IAAA,EAAAO,SAAA;EACnD,oBAAOX,KAAA,CAAAY,aAAA,CAACX,WAAW,EAAAY,QAAA,KAAKJ,KAAK;IAAEK,MAAM,EAAEP,KAAM;IAACQ,QAAQ,EAAEP,OAAQ;IAACH,GAAG,EAAEA;EAAI,EAAE,CAAC;AAC/E,CAAC,CAAC;AAEFH,KAAK,CAACc,WAAW,GAAG,OAAO"}
@@ -1,12 +1,12 @@
1
+ /// <reference types="react" />
2
+ import type { Interpolation } from 'styled-components';
3
+ export declare type InputStylesProps = {
4
+ $error?: boolean;
5
+ $variant?: 'error' | '';
6
+ };
1
7
  export declare const dataQa: {
2
8
  focused: string;
3
9
  hovered: string;
4
10
  };
5
- export declare function getInputStyles({ error, variant, }: {
6
- error?: boolean;
7
- variant?: 'error' | '';
8
- }): import("styled-components").FlattenSimpleInterpolation;
9
- export declare const StyledInput: import("styled-components").StyledComponent<"input", any, {
10
- error?: boolean | undefined;
11
- variant?: "" | "error" | undefined;
12
- }, never>;
11
+ export declare function getInputStyles({ $error, $variant, }: InputStylesProps): Interpolation<object>;
12
+ export declare const StyledInput: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, InputStylesProps>> & string;
@@ -1,5 +1,5 @@
1
1
  import styled, { css } from 'styled-components';
2
- import { getTypographyIntent } from '../Typography/Typography.styles';
2
+ import { getTypographyIntent } from '../Typography';
3
3
  import { borderRadius } from '../_styles/borderRadius';
4
4
  import { colors } from '../_styles/colors';
5
5
  import { getFocus } from '../_styles/mixins';
@@ -10,12 +10,12 @@ export var dataQa = {
10
10
  };
11
11
  var inputHeight = 36;
12
12
  export function getInputStyles(_ref) {
13
- var error = _ref.error,
14
- variant = _ref.variant;
15
- return css(["", " background-color:", ";border-color:", ";border-radius:", "px;border-style:solid;border-width:1px;color:", ";display:block;font-family:inherit;height:", "px;width:100%;&::placeholder{color:", ";}&::-moz-placeholder{color:", ";opacity:1;}", " &:focus,&[data-qa=", "]{", "}&:disabled{background-color:", ";border-color:", ";color:", ";-webkit-text-fill-color:", ";opacity:1;}", ""], getTypographyIntent('body'), colors.white, colors.gray70, borderRadius.md, colors.gray15, inputHeight, colors.gray45, colors.gray45, !error && css(["&:hover,&[data-qa=", "]{border-color:", ";}"], dataQa.hovered, colors.gray45), dataQa.focused, getFocus(), colors.gray94, colors.gray70, colors.gray45, colors.gray45, (error || variant === 'error') && css(["border-color:", ";background-color:", ";border-color:var(--core-input-error-border-color,", ");background-color:var( --core-input-error-background-color,", " );"], colors.red50, colors.white, colors.red50, colors.white));
13
+ var $error = _ref.$error,
14
+ $variant = _ref.$variant;
15
+ return css(["", " background-color:", ";border-color:", ";border-radius:", "px;border-style:solid;border-width:1px;color:", ";display:block;font-family:inherit;height:", "px;width:100%;&::placeholder{color:", ";}&::-moz-placeholder{color:", ";opacity:1;}", " &:focus,&[data-qa=", "]{", "}&:disabled{background-color:", ";border-color:", ";color:", ";-webkit-text-fill-color:", ";opacity:1;}", ""], getTypographyIntent('body'), colors.white, colors.gray70, borderRadius.md, colors.gray15, inputHeight, colors.gray45, colors.gray45, !$error && css(["&:hover,&[data-qa=", "]{border-color:", ";}"], dataQa.hovered, colors.gray45), dataQa.focused, getFocus(), colors.gray94, colors.gray70, colors.gray45, colors.gray45, ($error || $variant === 'error') && css(["border-color:", ";background-color:", ";border-color:var(--core-input-error-border-color,", ");background-color:var( --core-input-error-background-color,", " );"], colors.red50, colors.white, colors.red50, colors.white));
16
16
  }
17
17
  export var StyledInput = /*#__PURE__*/styled.input.withConfig({
18
18
  displayName: "StyledInput",
19
- componentId: "core-12_21_2__sc-12sjkxg-0"
19
+ componentId: "core-12_22_0__sc-12sjkxg-0"
20
20
  })(["", " padding:0 ", "px;&::-ms-clear{display:none;}&[type='number']{-moz-appearance:textfield;&::-webkit-inner-spin-button,&::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}}"], getInputStyles, spacing.md);
21
21
  //# sourceMappingURL=Input.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Input.styles.js","names":["styled","css","getTypographyIntent","borderRadius","colors","getFocus","spacing","dataQa","focused","hovered","inputHeight","getInputStyles","_ref","error","variant","white","gray70","md","gray15","gray45","gray94","red50","StyledInput","input","withConfig","displayName","componentId"],"sources":["../../src/Input/Input.styles.ts"],"sourcesContent":["import styled, { css } from 'styled-components'\nimport { getTypographyIntent } from '../Typography/Typography.styles'\nimport { borderRadius } from '../_styles/borderRadius'\nimport { colors } from '../_styles/colors'\nimport { getFocus } from '../_styles/mixins'\nimport { spacing } from '../_styles/spacing'\n\nexport const dataQa = {\n focused: 'core-input-focused',\n hovered: 'core-input-hovered',\n}\n\nconst inputHeight = 36\n\nexport function getInputStyles({\n error,\n variant,\n}: {\n error?: boolean\n variant?: 'error' | ''\n}) {\n return css`\n ${getTypographyIntent('body')}\n\n background-color: ${colors.white};\n border-color: ${colors.gray70};\n border-radius: ${borderRadius.md}px;\n border-style: solid;\n border-width: 1px;\n color: ${colors.gray15};\n display: block;\n font-family: inherit;\n height: ${inputHeight}px;\n width: 100%;\n\n &::placeholder {\n color: ${colors.gray45};\n }\n\n /* Firefox 19+ */\n &::-moz-placeholder {\n color: ${colors.gray45};\n opacity: 1;\n }\n\n ${!error &&\n css`\n &:hover,\n &[data-qa=${dataQa.hovered}] {\n border-color: ${colors.gray45};\n }\n `}\n\n &:focus,\n &[data-qa=${dataQa.focused}] {\n ${getFocus()}\n }\n\n &:disabled {\n background-color: ${colors.gray94};\n border-color: ${colors.gray70};\n color: ${colors.gray45};\n // Safari: fixes lighter color of disabled input text\n -webkit-text-fill-color: ${colors.gray45};\n opacity: 1;\n }\n\n ${(error || variant === 'error') &&\n css`\n border-color: ${colors.red50};\n background-color: ${colors.white};\n\n // TODO we can clean up these css vars when we convert Form to JSS\n border-color: var(--core-input-error-border-color, ${colors.red50});\n background-color: var(\n --core-input-error-background-color,\n ${colors.white}\n );\n `}\n `\n}\n\nexport const StyledInput = styled.input`\n ${getInputStyles}\n\n padding: 0 ${spacing.md}px;\n\n &::-ms-clear {\n display: none;\n }\n\n &[type='number'] {\n -moz-appearance: textfield;\n\n &::-webkit-inner-spin-button,\n &::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n }\n`\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAC/C,SAASC,mBAAmB,QAAQ,iCAAiC;AACrE,SAASC,YAAY,QAAQ,yBAAyB;AACtD,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,SAASC,OAAO,QAAQ,oBAAoB;AAE5C,OAAO,IAAMC,MAAM,GAAG;EACpBC,OAAO,EAAE,oBAAoB;EAC7BC,OAAO,EAAE;AACX,CAAC;AAED,IAAMC,WAAW,GAAG,EAAE;AAEtB,OAAO,SAASC,cAAcA,CAAAC,IAAA,EAM3B;EAAA,IALDC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,OAAO,GAAAF,IAAA,CAAPE,OAAO;EAKP,OAAOb,GAAG,oYACNC,mBAAmB,CAAC,MAAM,CAAC,EAETE,MAAM,CAACW,KAAK,EAChBX,MAAM,CAACY,MAAM,EACZb,YAAY,CAACc,EAAE,EAGvBb,MAAM,CAACc,MAAM,EAGZR,WAAW,EAIVN,MAAM,CAACe,MAAM,EAKbf,MAAM,CAACe,MAAM,EAItB,CAACN,KAAK,IACRZ,GAAG,kDAEWM,MAAM,CAACE,OAAO,EACRL,MAAM,CAACe,MAAM,CAEhC,EAGWZ,MAAM,CAACC,OAAO,EACtBH,QAAQ,CAAC,CAAC,EAIQD,MAAM,CAACgB,MAAM,EACjBhB,MAAM,CAACY,MAAM,EACpBZ,MAAM,CAACe,MAAM,EAEKf,MAAM,CAACe,MAAM,EAIxC,CAACN,KAAK,IAAIC,OAAO,KAAK,OAAO,KAC/Bb,GAAG,uKACeG,MAAM,CAACiB,KAAK,EACRjB,MAAM,CAACW,KAAK,EAGqBX,MAAM,CAACiB,KAAK,EAG7DjB,MAAM,CAACW,KAAK,CAEjB;AAEL;AAEA,OAAO,IAAMO,WAAW,gBAAGtB,MAAM,CAACuB,KAAK,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,kMACnCf,cAAc,EAEHL,OAAO,CAACW,EAAE,CAexB"}
1
+ {"version":3,"file":"Input.styles.js","names":["styled","css","getTypographyIntent","borderRadius","colors","getFocus","spacing","dataQa","focused","hovered","inputHeight","getInputStyles","_ref","$error","$variant","white","gray70","md","gray15","gray45","gray94","red50","StyledInput","input","withConfig","displayName","componentId"],"sources":["../../src/Input/Input.styles.ts"],"sourcesContent":["import type { Interpolation } from 'styled-components'\nimport styled, { css } from 'styled-components'\nimport { getTypographyIntent } from '../Typography'\nimport { borderRadius } from '../_styles/borderRadius'\nimport { colors } from '../_styles/colors'\nimport { getFocus } from '../_styles/mixins'\nimport { spacing } from '../_styles/spacing'\n\nexport type InputStylesProps = {\n $error?: boolean\n $variant?: 'error' | ''\n}\n\nexport const dataQa = {\n focused: 'core-input-focused',\n hovered: 'core-input-hovered',\n}\n\nconst inputHeight = 36\n\nexport function getInputStyles({\n $error,\n $variant,\n}: InputStylesProps): Interpolation<object> {\n return css`\n ${getTypographyIntent('body')}\n\n background-color: ${colors.white};\n border-color: ${colors.gray70};\n border-radius: ${borderRadius.md}px;\n border-style: solid;\n border-width: 1px;\n color: ${colors.gray15};\n display: block;\n font-family: inherit;\n height: ${inputHeight}px;\n width: 100%;\n\n &::placeholder {\n color: ${colors.gray45};\n }\n\n /* Firefox 19+ */\n &::-moz-placeholder {\n color: ${colors.gray45};\n opacity: 1;\n }\n\n ${!$error &&\n css`\n &:hover,\n &[data-qa=${dataQa.hovered}] {\n border-color: ${colors.gray45};\n }\n `}\n\n &:focus,\n &[data-qa=${dataQa.focused}] {\n ${getFocus()}\n }\n\n &:disabled {\n background-color: ${colors.gray94};\n border-color: ${colors.gray70};\n color: ${colors.gray45};\n // Safari: fixes lighter color of disabled input text\n -webkit-text-fill-color: ${colors.gray45};\n opacity: 1;\n }\n\n ${($error || $variant === 'error') &&\n css`\n border-color: ${colors.red50};\n background-color: ${colors.white};\n\n // TODO we can clean up these css vars when we convert Form to JSS\n border-color: var(--core-input-error-border-color, ${colors.red50});\n background-color: var(\n --core-input-error-background-color,\n ${colors.white}\n );\n `}\n `\n}\n\nexport const StyledInput = styled.input<InputStylesProps>`\n ${getInputStyles}\n\n padding: 0 ${spacing.md}px;\n\n &::-ms-clear {\n display: none;\n }\n\n &[type='number'] {\n -moz-appearance: textfield;\n\n &::-webkit-inner-spin-button,\n &::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n }\n`\n"],"mappings":"AACA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAC/C,SAASC,mBAAmB,QAAQ,eAAe;AACnD,SAASC,YAAY,QAAQ,yBAAyB;AACtD,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,SAASC,OAAO,QAAQ,oBAAoB;AAO5C,OAAO,IAAMC,MAAM,GAAG;EACpBC,OAAO,EAAE,oBAAoB;EAC7BC,OAAO,EAAE;AACX,CAAC;AAED,IAAMC,WAAW,GAAG,EAAE;AAEtB,OAAO,SAASC,cAAcA,CAAAC,IAAA,EAGc;EAAA,IAF1CC,MAAM,GAAAD,IAAA,CAANC,MAAM;IACNC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;EAER,OAAOb,GAAG,oYACNC,mBAAmB,CAAC,MAAM,CAAC,EAETE,MAAM,CAACW,KAAK,EAChBX,MAAM,CAACY,MAAM,EACZb,YAAY,CAACc,EAAE,EAGvBb,MAAM,CAACc,MAAM,EAGZR,WAAW,EAIVN,MAAM,CAACe,MAAM,EAKbf,MAAM,CAACe,MAAM,EAItB,CAACN,MAAM,IACTZ,GAAG,kDAEWM,MAAM,CAACE,OAAO,EACRL,MAAM,CAACe,MAAM,CAEhC,EAGWZ,MAAM,CAACC,OAAO,EACtBH,QAAQ,CAAC,CAAC,EAIQD,MAAM,CAACgB,MAAM,EACjBhB,MAAM,CAACY,MAAM,EACpBZ,MAAM,CAACe,MAAM,EAEKf,MAAM,CAACe,MAAM,EAIxC,CAACN,MAAM,IAAIC,QAAQ,KAAK,OAAO,KACjCb,GAAG,uKACeG,MAAM,CAACiB,KAAK,EACRjB,MAAM,CAACW,KAAK,EAGqBX,MAAM,CAACiB,KAAK,EAG7DjB,MAAM,CAACW,KAAK,CAEjB;AAEL;AAEA,OAAO,IAAMO,WAAW,gBAAGtB,MAAM,CAACuB,KAAK,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,kMACnCf,cAAc,EAEHL,OAAO,CAACW,EAAE,CAexB"}
package/dist/Link/Link.js CHANGED
@@ -1,4 +1,4 @@
1
- var _excluded = ["children"];
1
+ var _excluded = ["children", "variant"];
2
2
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
3
3
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
4
4
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
@@ -21,8 +21,10 @@ import { StyledLink } from './Link.styles';
21
21
  */
22
22
  export var Link = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
23
23
  var children = _ref.children,
24
+ variant = _ref.variant,
24
25
  props = _objectWithoutProperties(_ref, _excluded);
25
26
  return /*#__PURE__*/React.createElement(StyledLink, _extends({}, props, {
27
+ $variant: variant,
26
28
  ref: ref
27
29
  }), children);
28
30
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Link.js","names":["React","StyledLink","Link","forwardRef","_ref","ref","children","props","_objectWithoutProperties","_excluded","createElement","_extends","displayName"],"sources":["../../src/Link/Link.tsx"],"sourcesContent":["import React from 'react'\nimport { StyledLink } from './Link.styles'\nimport type { LinkProps } from './Link.types'\n\n/**\n\n Links provide users with quick references to relevant Procore or affiliate\n websites that will provide more contextual information to a page or feature.\n\n Links should not be used to reference a page or modal in Procore’s product.\n In that case, use a button.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-link--demo)\n\n @see [Design Guidelines](https://design.procore.com/link)\n\n */\nexport const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(\n ({ children, ...props }, ref) => {\n return (\n <StyledLink {...props} ref={ref}>\n {children}\n </StyledLink>\n )\n }\n)\n\nLink.displayName = 'Link'\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,eAAe;AAG1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,IAAI,gBAAGF,KAAK,CAACG,UAAU,CAClC,UAAAC,IAAA,EAAyBC,GAAG,EAAK;EAAA,IAA9BC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAKC,KAAK,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA;EACnB,oBACET,KAAA,CAAAU,aAAA,CAACT,UAAU,EAAAU,QAAA,KAAKJ,KAAK;IAAEF,GAAG,EAAEA;EAAI,IAC7BC,QACS,CAAC;AAEjB,CACF,CAAC;AAEDJ,IAAI,CAACU,WAAW,GAAG,MAAM"}
1
+ {"version":3,"file":"Link.js","names":["React","StyledLink","Link","forwardRef","_ref","ref","children","variant","props","_objectWithoutProperties","_excluded","createElement","_extends","$variant","displayName"],"sources":["../../src/Link/Link.tsx"],"sourcesContent":["import React from 'react'\nimport { StyledLink } from './Link.styles'\nimport type { LinkProps } from './Link.types'\n\n/**\n\n Links provide users with quick references to relevant Procore or affiliate\n websites that will provide more contextual information to a page or feature.\n\n Links should not be used to reference a page or modal in Procore’s product.\n In that case, use a button.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-link--demo)\n\n @see [Design Guidelines](https://design.procore.com/link)\n\n */\nexport const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(\n ({ children, variant, ...props }, ref) => {\n return (\n <StyledLink {...props} $variant={variant} ref={ref}>\n {children}\n </StyledLink>\n )\n }\n)\n\nLink.displayName = 'Link'\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,eAAe;AAG1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,IAAI,gBAAGF,KAAK,CAACG,UAAU,CAClC,UAAAC,IAAA,EAAkCC,GAAG,EAAK;EAAA,IAAvCC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAEC,OAAO,GAAAH,IAAA,CAAPG,OAAO;IAAKC,KAAK,GAAAC,wBAAA,CAAAL,IAAA,EAAAM,SAAA;EAC5B,oBACEV,KAAA,CAAAW,aAAA,CAACV,UAAU,EAAAW,QAAA,KAAKJ,KAAK;IAAEK,QAAQ,EAAEN,OAAQ;IAACF,GAAG,EAAEA;EAAI,IAChDC,QACS,CAAC;AAEjB,CACF,CAAC;AAEDJ,IAAI,CAACY,WAAW,GAAG,MAAM"}
@@ -1,2 +1,5 @@
1
+ /// <reference types="react" />
1
2
  import type { LinkProps } from './Link.types';
2
- export declare const StyledLink: import("styled-components").StyledComponent<"a", any, LinkProps, never>;
3
+ export declare const StyledLink: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, {
4
+ $variant: LinkProps['variant'];
5
+ }>> & string;
@@ -3,9 +3,9 @@ import { getBorderRadius } from '../_styles/borderRadius';
3
3
  import { colors } from '../_styles/colors';
4
4
  import { focusable } from '../_styles/mixins';
5
5
  function getLinkColors(_ref) {
6
- var _ref$variant = _ref.variant,
7
- variant = _ref$variant === void 0 ? 'default' : _ref$variant;
8
- switch (variant) {
6
+ var _ref$$variant = _ref.$variant,
7
+ $variant = _ref$$variant === void 0 ? 'default' : _ref$$variant;
8
+ switch ($variant) {
9
9
  case 'gray':
10
10
  return css(["color:", ";&:hover{color:", ";}"], colors.gray30, colors.orange50);
11
11
  case 'white':
@@ -17,6 +17,6 @@ function getLinkColors(_ref) {
17
17
  }
18
18
  export var StyledLink = /*#__PURE__*/styled.a.withConfig({
19
19
  displayName: "StyledLink",
20
- componentId: "core-12_21_2__sc-jfowrl-0"
20
+ componentId: "core-12_22_0__sc-jfowrl-0"
21
21
  })(["text-decoration:underline;&:hover{cursor:pointer;text-decoration:underline;}", " &.focus,&:focus{", ";}", ""], focusable, getBorderRadius('md'), getLinkColors);
22
22
  //# sourceMappingURL=Link.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Link.styles.js","names":["styled","css","getBorderRadius","colors","focusable","getLinkColors","_ref","_ref$variant","variant","gray30","orange50","white","gray85","blue45","blue30","StyledLink","a","withConfig","displayName","componentId"],"sources":["../../src/Link/Link.styles.ts"],"sourcesContent":["import styled, { css } from 'styled-components'\nimport { getBorderRadius } from '../_styles/borderRadius'\nimport { colors } from '../_styles/colors'\nimport { focusable } from '../_styles/mixins'\nimport type { LinkProps } from './Link.types'\n\nfunction getLinkColors({ variant = 'default' }) {\n switch (variant) {\n case 'gray':\n return css`\n color: ${colors.gray30};\n\n &:hover {\n color: ${colors.orange50};\n }\n `\n case 'white':\n return css`\n color: ${colors.white};\n\n &:hover {\n color: ${colors.gray85};\n }\n `\n case 'default':\n default:\n return css`\n color: ${colors.blue45};\n\n &:hover {\n color: ${colors.blue30};\n }\n `\n }\n}\n\nexport const StyledLink = styled.a<LinkProps>`\n text-decoration: underline;\n\n &:hover {\n cursor: pointer;\n text-decoration: underline;\n }\n\n ${focusable}\n\n // the focusable mixin applies the class and pseudo selector\n &.focus,\n &:focus {\n ${getBorderRadius('md')};\n }\n\n ${getLinkColors}\n`\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAC/C,SAASC,eAAe,QAAQ,yBAAyB;AACzD,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,SAAS,QAAQ,mBAAmB;AAG7C,SAASC,aAAaA,CAAAC,IAAA,EAA0B;EAAA,IAAAC,YAAA,GAAAD,IAAA,CAAvBE,OAAO;IAAPA,OAAO,GAAAD,YAAA,cAAG,SAAS,GAAAA,YAAA;EAC1C,QAAQC,OAAO;IACb,KAAK,MAAM;MACT,OAAOP,GAAG,sCACCE,MAAM,CAACM,MAAM,EAGXN,MAAM,CAACO,QAAQ;IAG9B,KAAK,OAAO;MACV,OAAOT,GAAG,sCACCE,MAAM,CAACQ,KAAK,EAGVR,MAAM,CAACS,MAAM;IAG5B,KAAK,SAAS;IACd;MACE,OAAOX,GAAG,sCACCE,MAAM,CAACU,MAAM,EAGXV,MAAM,CAACW,MAAM;EAG9B;AACF;AAEA,OAAO,IAAMC,UAAU,gBAAGf,MAAM,CAACgB,CAAC,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,oHAQ9Bf,SAAS,EAKPF,eAAe,CAAC,IAAI,CAAC,EAGvBG,aAAa,CAChB"}
1
+ {"version":3,"file":"Link.styles.js","names":["styled","css","getBorderRadius","colors","focusable","getLinkColors","_ref","_ref$$variant","$variant","gray30","orange50","white","gray85","blue45","blue30","StyledLink","a","withConfig","displayName","componentId"],"sources":["../../src/Link/Link.styles.ts"],"sourcesContent":["import styled, { css } from 'styled-components'\nimport { getBorderRadius } from '../_styles/borderRadius'\nimport { colors } from '../_styles/colors'\nimport { focusable } from '../_styles/mixins'\nimport type { LinkProps } from './Link.types'\n\nfunction getLinkColors({ $variant = 'default' }) {\n switch ($variant) {\n case 'gray':\n return css`\n color: ${colors.gray30};\n\n &:hover {\n color: ${colors.orange50};\n }\n `\n case 'white':\n return css`\n color: ${colors.white};\n\n &:hover {\n color: ${colors.gray85};\n }\n `\n case 'default':\n default:\n return css`\n color: ${colors.blue45};\n\n &:hover {\n color: ${colors.blue30};\n }\n `\n }\n}\n\nexport const StyledLink = styled.a<{ $variant: LinkProps['variant'] }>`\n text-decoration: underline;\n\n &:hover {\n cursor: pointer;\n text-decoration: underline;\n }\n\n ${focusable}\n\n // the focusable mixin applies the class and pseudo selector\n &.focus,\n &:focus {\n ${getBorderRadius('md')};\n }\n\n ${getLinkColors}\n`\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAC/C,SAASC,eAAe,QAAQ,yBAAyB;AACzD,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,SAAS,QAAQ,mBAAmB;AAG7C,SAASC,aAAaA,CAAAC,IAAA,EAA2B;EAAA,IAAAC,aAAA,GAAAD,IAAA,CAAxBE,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAG,SAAS,GAAAA,aAAA;EAC3C,QAAQC,QAAQ;IACd,KAAK,MAAM;MACT,OAAOP,GAAG,sCACCE,MAAM,CAACM,MAAM,EAGXN,MAAM,CAACO,QAAQ;IAG9B,KAAK,OAAO;MACV,OAAOT,GAAG,sCACCE,MAAM,CAACQ,KAAK,EAGVR,MAAM,CAACS,MAAM;IAG5B,KAAK,SAAS;IACd;MACE,OAAOX,GAAG,sCACCE,MAAM,CAACU,MAAM,EAGXV,MAAM,CAACW,MAAM;EAG9B;AACF;AAEA,OAAO,IAAMC,UAAU,gBAAGf,MAAM,CAACgB,CAAC,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,oHAQ9Bf,SAAS,EAKPF,eAAe,CAAC,IAAI,CAAC,EAGvBG,aAAa,CAChB"}
@@ -1,5 +1,5 @@
1
1
  import type { AnchorAttributes, Props } from '../_utils/types';
2
- declare type LinkVariant = 'gray' | 'white';
2
+ export declare type LinkVariant = 'gray' | 'white';
3
3
  export interface LinkProps extends Props, AnchorAttributes {
4
4
  /**
5
5
  * The color variant of the link
@@ -10,4 +10,3 @@ export interface LinkProps extends Props, AnchorAttributes {
10
10
  */
11
11
  variant?: LinkVariant;
12
12
  }
13
- export {};
@@ -1 +1 @@
1
- {"version":3,"file":"Link.types.js","names":[],"sources":["../../src/Link/Link.types.ts"],"sourcesContent":["import type { AnchorAttributes, Props } from '../_utils/types'\n\ntype LinkVariant = 'gray' | 'white'\n\nexport interface LinkProps extends Props, AnchorAttributes {\n /**\n * The color variant of the link\n * @since 10.19.0\n *\n * @deprecated variant `gray` is deprecated and will be removed\n * @deprecatedSince 12.18.0\n */\n variant?: LinkVariant\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Link.types.js","names":[],"sources":["../../src/Link/Link.types.ts"],"sourcesContent":["import type { AnchorAttributes, Props } from '../_utils/types'\n\nexport type LinkVariant = 'gray' | 'white'\n\nexport interface LinkProps extends Props, AnchorAttributes {\n /**\n * The color variant of the link\n * @since 10.19.0\n *\n * @deprecated variant `gray` is deprecated and will be removed\n * @deprecatedSince 12.18.0\n */\n variant?: LinkVariant\n}\n"],"mappings":""}
@@ -1,14 +1,15 @@
1
- export declare const StyledListPageMain: import("styled-components").StyledComponent<"div", any, {}, never>;
2
- export declare const StyledListPageBanner: import("styled-components").StyledComponent<"div", any, {}, never>;
3
- export declare const StyledListPageToolHeader: import("styled-components").StyledComponent<"div", any, {}, never>;
1
+ /// <reference types="react" />
2
+ export declare const StyledListPageMain: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
3
+ export declare const StyledListPageBanner: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
4
+ export declare const StyledListPageToolHeader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
4
5
  interface StyledListPageControlProps {
5
6
  $alignRight: boolean;
6
7
  $block: boolean;
7
8
  $search: boolean;
8
9
  }
9
- export declare const StyledListPageControl: import("styled-components").StyledComponent<"div", any, StyledListPageControlProps, never>;
10
- export declare const StyledListPageContentControls: import("styled-components").StyledComponent<"div", any, {}, never>;
11
- export declare const StyledListPageBody: import("styled-components").StyledComponent<"div", any, {}, never>;
12
- export declare const StyledListPageBodyContent: import("styled-components").StyledComponent<"div", any, {}, never>;
13
- export declare const StyledListPage: import("styled-components").StyledComponent<"div", any, {}, never>;
10
+ export declare const StyledListPageControl: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, StyledListPageControlProps>> & string;
11
+ export declare const StyledListPageContentControls: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
12
+ export declare const StyledListPageBody: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
13
+ export declare const StyledListPageBodyContent: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
14
+ export declare const StyledListPage: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
14
15
  export {};
@@ -3,19 +3,19 @@ import { colors } from '../_styles/colors';
3
3
  import { spacing } from '../_styles/spacing';
4
4
  export var StyledListPageMain = /*#__PURE__*/styled.div.withConfig({
5
5
  displayName: "StyledListPageMain",
6
- componentId: "core-12_21_2__sc-1eq7fzi-0"
6
+ componentId: "core-12_22_0__sc-1eq7fzi-0"
7
7
  })(["display:flex;flex:1 0 auto;flex-direction:column;min-width:0;padding:", "px ", "px;width:100%;"], spacing.lg, spacing.xl);
8
8
  export var StyledListPageBanner = /*#__PURE__*/styled.div.withConfig({
9
9
  displayName: "StyledListPageBanner",
10
- componentId: "core-12_21_2__sc-1eq7fzi-1"
10
+ componentId: "core-12_22_0__sc-1eq7fzi-1"
11
11
  })(["flex:0 0 auto;"]);
12
12
  export var StyledListPageToolHeader = /*#__PURE__*/styled.div.withConfig({
13
13
  displayName: "StyledListPageToolHeader",
14
- componentId: "core-12_21_2__sc-1eq7fzi-2"
14
+ componentId: "core-12_22_0__sc-1eq7fzi-2"
15
15
  })(["flex:0 0 auto;padding-bottom:", "px;"], spacing.lg);
16
16
  export var StyledListPageControl = /*#__PURE__*/styled.div.withConfig({
17
17
  displayName: "StyledListPageControl",
18
- componentId: "core-12_21_2__sc-1eq7fzi-3"
18
+ componentId: "core-12_22_0__sc-1eq7fzi-3"
19
19
  })(["flex:", ";", " ", ""], function (_ref) {
20
20
  var $block = _ref.$block;
21
21
  return $block ? '1 0 auto' : '0 0 auto';
@@ -32,18 +32,18 @@ export var StyledListPageControl = /*#__PURE__*/styled.div.withConfig({
32
32
  });
33
33
  export var StyledListPageContentControls = /*#__PURE__*/styled.div.withConfig({
34
34
  displayName: "StyledListPageContentControls",
35
- componentId: "core-12_21_2__sc-1eq7fzi-4"
35
+ componentId: "core-12_22_0__sc-1eq7fzi-4"
36
36
  })(["align-items:center;display:flex;flex:0 0 auto;justify-content:space-between;padding:", "px 0;", " + ", "{margin-left:", "px;}"], spacing.md, StyledListPageControl, StyledListPageControl, spacing.lg);
37
37
  export var StyledListPageBody = /*#__PURE__*/styled.div.withConfig({
38
38
  displayName: "StyledListPageBody",
39
- componentId: "core-12_21_2__sc-1eq7fzi-5"
39
+ componentId: "core-12_22_0__sc-1eq7fzi-5"
40
40
  })(["display:flex;flex:1 0 auto;padding-top:", "px;"], spacing.md);
41
41
  export var StyledListPageBodyContent = /*#__PURE__*/styled.div.withConfig({
42
42
  displayName: "StyledListPageBodyContent",
43
- componentId: "core-12_21_2__sc-1eq7fzi-6"
43
+ componentId: "core-12_22_0__sc-1eq7fzi-6"
44
44
  })(["flex:1 1 auto;"]);
45
45
  export var StyledListPage = /*#__PURE__*/styled.div.withConfig({
46
46
  displayName: "StyledListPage",
47
- componentId: "core-12_21_2__sc-1eq7fzi-7"
47
+ componentId: "core-12_22_0__sc-1eq7fzi-7"
48
48
  })(["display:flex;flex-direction:row;height:100%;width:100%;", " + ", "{padding-top:", "px;}", " + ", "{border-top-color:", ";border-top-style:solid;border-top-width:1px;}", " + ", ",", " + ", "{border-top-color:", ";border-top-style:solid;border-top-width:1px;}", " + ", "{padding-top:0;}"], StyledListPageBanner, StyledListPageToolHeader, spacing.lg, StyledListPageContentControls, StyledListPageContentControls, colors.gray85, StyledListPageToolHeader, StyledListPageContentControls, StyledListPageToolHeader, StyledListPageBody, colors.gray85, StyledListPageContentControls, StyledListPageBody);
49
49
  //# sourceMappingURL=ListPage.styles.js.map
@@ -1,5 +1,6 @@
1
+ /// <reference types="react" />
1
2
  export declare const loaderTransitionDuration = 250;
2
- export declare const StyledLoader: import("styled-components").StyledComponent<"div", any, {}, never>;
3
- export declare const StyledGradient: import("styled-components").StyledComponent<"div", any, {
3
+ export declare const StyledLoader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
4
+ export declare const StyledGradient: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
4
5
  $animated: boolean;
5
- }, never>;
6
+ }>> & string;
@@ -7,11 +7,11 @@ export var loaderTransitionDuration = 250;
7
7
  var movingStripes = /*#__PURE__*/keyframes(["from{background-position:", "px 0;}100%{background-position:0 ", "px;}"], backgroundSize, backgroundSize);
8
8
  export var StyledLoader = /*#__PURE__*/styled.div.withConfig({
9
9
  displayName: "StyledLoader",
10
- componentId: "core-12_21_2__sc-wgvjj9-0"
10
+ componentId: "core-12_22_0__sc-wgvjj9-0"
11
11
  })(["display:block;height:100%;left:0;min-width:12px;position:absolute;transition:width ", "ms ease-out;top:0;"], loaderTransitionDuration);
12
12
  export var StyledGradient = /*#__PURE__*/styled.div.withConfig({
13
13
  displayName: "StyledGradient",
14
- componentId: "core-12_21_2__sc-wgvjj9-1"
14
+ componentId: "core-12_22_0__sc-wgvjj9-1"
15
15
  })(["height:100%;", ""], function (_ref) {
16
16
  var $animated = _ref.$animated;
17
17
  return $animated ? css(["animation:", " 0.5s linear infinite;background-image:linear-gradient( 45deg,", " 26%,", " 25%,", " 51%,", " 50%,", " 76%,", " 75%,", " );background-size:", "px ", "px;"], movingStripes, color1, color2, color2, color1, color1, color2, color2, backgroundSize, backgroundSize) : css(["background-color:", ";"], colors.blue50);
package/dist/Menu/Menu.js CHANGED
@@ -22,7 +22,7 @@ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t =
22
22
  import React from 'react';
23
23
  import { StyledFooter, StyledGroup, StyledHeader, StyledItem, StyledMenu, StyledOptions, StyledSearch, StyledWrapper } from '../MenuImperative/MenuImperative.styles';
24
24
  import { useOverlayTriggerContext } from '../OverlayTrigger/OverlayTrigger';
25
- import { Typeahead } from '../Typeahead/Typeahead';
25
+ import { Typeahead } from '../Typeahead';
26
26
  import { useEventListener } from '../_hooks/EventListener';
27
27
  import { useI18nContext } from '../_hooks/I18n';
28
28
  import { useListNavigation } from '../_hooks/ListNavigation';
@@ -192,10 +192,11 @@ export var Group = /*#__PURE__*/React.forwardRef(function Group(_ref3, ref) {
192
192
  item = _ref3.item,
193
193
  props = _objectWithoutProperties(_ref3, _excluded2);
194
194
  return /*#__PURE__*/React.createElement(StyledGroup, _extends({}, props, {
195
- ref: ref,
196
- onClick: function onClick(event) {
197
- // TODO: implement selecting groups?
198
- },
195
+ ref: ref
196
+ // onClick={(event) => {
197
+ // TODO: implement selecting groups?
198
+ // }}
199
+ ,
199
200
  $clickable: clickable
200
201
  }), children);
201
202
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","names":["React","StyledFooter","StyledGroup","StyledHeader","StyledItem","StyledMenu","StyledOptions","StyledSearch","StyledWrapper","useOverlayTriggerContext","Typeahead","useEventListener","useI18nContext","useListNavigation","addSubcomponents","usingHookOrDefault","onScrollBottomThreshold","isItem","element","type","Item","scrollIntoView","index","parentElement","scrollTop","offsetTop","clientHeight","_element$parentElemen","parentHeight","checkBottomScrollPosition","callback","onScroll","e","currentTarget","HTMLElement","scrollHeight","noop","useMenu","_ref","_ref$isSelectable","isSelectable","externalKeyHandlerRef","keyHandlerRef","_ref$multiple","multiple","onScrollBottom","_ref$onSearch","onSearch","_ref$onSelect","onSelect","_ref$scrollable","scrollable","listNavigation","circular","initialIndex","size","highlighted","useRef","createRef","selectItem","useCallback","selection","onKeyDown","key","increment","preventDefault","decrement","current","click","useEffect","el","addEventListener","removeEventListener","domHandlers","nativeEvent","MenuHookContext","createContext","useMenuHookContext","context","useContext","Error","Menu_","forwardRef","Menu","_ref2","ref","children","_ref2$UNSAFE_closesOn","UNSAFE_closesOnSelect","_ref2$isSelectable","_ref2$onSelect","_ref2$scrollable","usingHook","props","_objectWithoutProperties","_excluded","overlayTriggerContext","menu","reset","hide","event","createElement","Provider","value","_objectSpread","_extends","tabIndex","Group","_ref3","_ref3$clickable","clickable","item","_excluded2","onClick","$clickable","_ref4","_ref4$index","_ref4$onClick","_ref4$selected","selected","_ref4$suggested","suggested","onMouseMove","_excluded3","_useMenuHookContext","itemRef","isHighlighted","set","group","$highlighted","$selected","Options","_ref5","className","_ref5$scrollable","_useMenuHookContext2","menuScrollable","optionsRef","Children","toArray","filter","length","setSize","handler","scope","$scrollable","map","child","isValidElement","selectableIndex","cloneElement","Search","_ref6","_ref6$i18nScope","i18nScope","placeholder","_onChange","onChange","_excluded4","I18n","_React$useState","useState","_React$useState2","_slicedToArray","setValue","_menu$onSearch","target","call","autoFocus","t","Header","_ref7","_objectDestructuringEmpty","Footer","_ref8","_ref8$padding","padding","_excluded5","displayName"],"sources":["../../src/Menu/Menu.tsx"],"sourcesContent":["import React from 'react'\nimport {\n StyledFooter,\n StyledGroup,\n StyledHeader,\n StyledItem,\n StyledMenu,\n StyledOptions,\n StyledSearch,\n StyledWrapper,\n} from '../MenuImperative/MenuImperative.styles'\nimport { useOverlayTriggerContext } from '../OverlayTrigger/OverlayTrigger'\nimport { Typeahead } from '../Typeahead/Typeahead'\nimport type { TypeaheadProps } from '../Typeahead/Typeahead.types'\nimport { useEventListener } from '../_hooks/EventListener'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { useListNavigation } from '../_hooks/ListNavigation'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport type { DivAttributes } from '../_utils/types'\nimport { usingHookOrDefault } from '../_utils/usingHookOrDefault'\nimport type {\n ElementTypeChecker,\n MenuFooterProps,\n MenuGroupProps,\n MenuHeaderProps,\n MenuHook,\n MenuHookConfig,\n MenuItemProps,\n MenuOptionsProps,\n MenuProps,\n MenuSearchProps,\n MenuSelection,\n} from './Menu.types'\n\nconst onScrollBottomThreshold = 8\n\nexport const isItem: ElementTypeChecker = (element) => element.type === Item\n\nfunction scrollIntoView(index: number, element: HTMLElement) {\n if (!element.parentElement) {\n return\n }\n\n if (index === 0) {\n element.parentElement.scrollTop = 0\n\n return\n }\n\n const { offsetTop, clientHeight } = element\n\n const { scrollTop, clientHeight: parentHeight } = element.parentElement\n\n if (offsetTop < scrollTop) {\n element.parentElement.scrollTop = offsetTop\n } else if (offsetTop + clientHeight > scrollTop + parentHeight) {\n element.parentElement.scrollTop = offsetTop - parentHeight + clientHeight\n }\n}\n\nfunction checkBottomScrollPosition(callback?: (e: Event) => void) {\n return function onScroll(e: Event) {\n if (\n callback &&\n e.currentTarget instanceof HTMLElement &&\n e.currentTarget.scrollTop >=\n e.currentTarget.scrollHeight -\n e.currentTarget.clientHeight -\n onScrollBottomThreshold\n ) {\n callback(e)\n }\n }\n}\n\nfunction noop() {}\n\nexport function useMenu({\n isSelectable = isItem,\n keyHandlerRef: externalKeyHandlerRef,\n multiple = false,\n onScrollBottom,\n onSearch = noop,\n onSelect = noop,\n scrollable = true,\n}: MenuHookConfig): MenuHook {\n const listNavigation = useListNavigation({\n circular: !onScrollBottom,\n initialIndex: 0,\n size: 0,\n })\n\n const highlighted = React.useRef<HTMLDivElement>(null)\n\n const keyHandlerRef = externalKeyHandlerRef || React.createRef<HTMLElement>()\n\n const selectItem = React.useCallback(\n (selection: MenuSelection) => {\n onSelect(selection)\n },\n [onSelect]\n )\n\n const onKeyDown = React.useCallback(\n function (e: KeyboardEvent) {\n const { key } = e\n\n if (key === 'ArrowDown' || key === 'Down') {\n listNavigation.increment()\n e.preventDefault()\n } else if (key === 'ArrowUp' || key === 'Up') {\n listNavigation.decrement()\n e.preventDefault()\n } else if (key === 'Enter') {\n if (highlighted.current) {\n highlighted.current.click()\n }\n }\n },\n [listNavigation]\n )\n\n // TODO - deprecate keyhandlerRef, this is just for backwards compatibility since we already exposed it\n React.useEffect(\n function () {\n let el: HTMLElement\n\n if (keyHandlerRef.current) {\n keyHandlerRef.current.addEventListener('keydown', onKeyDown)\n\n el = keyHandlerRef.current\n }\n\n return function () {\n if (el) {\n el.removeEventListener('keydown', onKeyDown)\n }\n }\n },\n [keyHandlerRef, onKeyDown]\n )\n\n return {\n domHandlers: {\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) =>\n onKeyDown(e.nativeEvent),\n },\n highlighted,\n isSelectable,\n listNavigation,\n multiple,\n onScrollBottom,\n onSearch,\n scrollable,\n selectItem,\n }\n}\n\nexport const MenuHookContext = React.createContext<MenuHook | null>(null)\n\nexport function useMenuHookContext(): MenuHook {\n const context = React.useContext(MenuHookContext)\n\n if (context === null) {\n throw new Error(\n 'Cannot find `MenuHook` context, please wrap your component in `<MenuHookContext.Provider>`'\n )\n }\n\n return context\n}\n\nexport const Menu_ = React.forwardRef<HTMLDivElement, MenuProps>(function Menu(\n {\n children,\n UNSAFE_closesOnSelect = true,\n isSelectable = isItem,\n keyHandlerRef,\n onScrollBottom,\n onSelect = noop,\n onSearch,\n scrollable = true,\n usingHook,\n ...props\n },\n ref\n) {\n // Don't be tempted to put this in useMenu. In order for hooks to be portable\n // across the dom tree, they should not contain context consumers.\n const overlayTriggerContext = useOverlayTriggerContext()\n\n const menu = usingHookOrDefault(\n usingHook,\n useMenu\n )({\n isSelectable,\n keyHandlerRef,\n onScrollBottom,\n onSelect,\n onSearch,\n scrollable,\n })\n\n React.useEffect(\n function () {\n // When unmounting, reset the listNavigation index and set\n // the current highlighted item to null. we only want to run this once,\n // so don't pass any dependencies\n return function () {\n menu.listNavigation.reset()\n menu.highlighted.current = null\n }\n },\n /* eslint-disable */ [] /* eslint-enable */\n )\n\n function selectItem(selection: MenuSelection) {\n menu.selectItem(selection)\n\n if (UNSAFE_closesOnSelect) {\n overlayTriggerContext.hide(selection.event)\n }\n }\n\n return (\n <MenuHookContext.Provider value={{ ...menu, selectItem }}>\n <StyledWrapper {...menu.domHandlers} ref={ref} tabIndex={0}>\n <StyledMenu {...props}>{children}</StyledMenu>\n </StyledWrapper>\n </MenuHookContext.Provider>\n )\n})\n\nexport const Group = React.forwardRef<\n HTMLDivElement,\n DivAttributes & MenuGroupProps\n>(function Group({ children, clickable = false, item, ...props }, ref) {\n return (\n <StyledGroup\n {...props}\n ref={ref}\n onClick={(event) => {\n // TODO: implement selecting groups?\n }}\n $clickable={clickable}\n >\n {children}\n </StyledGroup>\n )\n})\n\nexport const Item = React.forwardRef<\n HTMLDivElement,\n DivAttributes & MenuItemProps\n>(function Item(\n {\n children,\n index = 0,\n item,\n onClick = noop,\n selected = false,\n suggested = false,\n onMouseMove,\n ...props\n },\n ref\n) {\n const { highlighted, listNavigation, multiple, selectItem } =\n useMenuHookContext()\n\n const itemRef =\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (ref as React.RefObject<HTMLDivElement>) || React.useRef<HTMLDivElement>()\n\n const isHighlighted = index === listNavigation.index\n\n React.useEffect(\n function () {\n // When mounting, check if this item is selected or suggested, and if\n // it is, then set it as the current index and scroll to it.\n // We only want to run this once, so don't pass any dependencies\n\n if (multiple) {\n // don't do this behavior in multiple mode\n return\n }\n\n if (itemRef.current && (selected || suggested)) {\n highlighted.current = itemRef.current\n listNavigation.set(index)\n }\n },\n /* eslint-disable */ [] /* eslint-enable */\n )\n\n React.useEffect(\n function () {\n // If this item has become highlighted, scroll to it\n if (itemRef.current && isHighlighted) {\n highlighted.current = itemRef.current\n scrollIntoView(index, itemRef.current)\n }\n },\n [highlighted, index, isHighlighted, itemRef]\n )\n\n return (\n <StyledItem\n {...props}\n onClick={(event) => {\n listNavigation.set(index)\n\n selectItem({ event: event.nativeEvent, item, group: false })\n\n onClick(event)\n }}\n onMouseMove={(event) => {\n if (onMouseMove) {\n onMouseMove(event)\n }\n if (listNavigation.index !== index) {\n listNavigation.set(index)\n }\n }}\n ref={itemRef}\n $highlighted={isHighlighted}\n $selected={selected}\n >\n {children}\n </StyledItem>\n )\n})\n\nexport const Options = React.forwardRef<HTMLDivElement, MenuOptionsProps>(\n function Options({ children, className, scrollable = true }, ref) {\n const {\n listNavigation,\n isSelectable,\n onScrollBottom,\n scrollable: menuScrollable,\n } = useMenuHookContext()\n\n const optionsRef =\n (ref as React.RefObject<HTMLDivElement>) || React.createRef()\n\n const size = React.Children.toArray(children).filter(isSelectable).length\n\n React.useEffect(\n function () {\n listNavigation.setSize(size)\n },\n [listNavigation, size]\n )\n\n useEventListener({\n event: 'scroll',\n handler: checkBottomScrollPosition(onScrollBottom),\n scope: optionsRef,\n })\n\n let index = 0\n\n return (\n <StyledOptions\n className={className}\n ref={optionsRef}\n $scrollable={menuScrollable || scrollable}\n >\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child) && isSelectable(child)) {\n const selectableIndex = index\n\n index = index + 1\n\n return React.cloneElement(child, {\n index: selectableIndex,\n })\n }\n\n return child\n })}\n </StyledOptions>\n )\n }\n)\n\nexport const Search = ({\n className,\n i18nScope = 'core.menu',\n placeholder,\n onChange: _onChange,\n ...props\n}: MenuSearchProps) => {\n const I18n = useI18nContext()\n const menu = useMenuHookContext()\n\n const [value, setValue] = React.useState('')\n\n const onChange: TypeaheadProps['onChange'] = React.useCallback(\n function (value: string, event: any) {\n setValue(event.target.value)\n menu.onSearch?.(event)\n menu.listNavigation.set(0)\n _onChange?.(event)\n },\n [_onChange]\n )\n\n return (\n <StyledSearch className={className}>\n <Typeahead\n {...props}\n autoFocus={true}\n placeholder={placeholder || I18n.t('search', { scope: i18nScope })}\n onChange={onChange}\n value={value}\n />\n </StyledSearch>\n )\n}\n\nexport const Header = React.forwardRef<\n HTMLDivElement,\n DivAttributes & MenuHeaderProps\n>(function Header({ ...props }, ref) {\n return <StyledHeader ref={ref} {...props} />\n})\n\nexport const Footer = React.forwardRef<\n HTMLDivElement,\n DivAttributes & MenuFooterProps\n>(function Footer({ padding = 'md lg', ...props }, ref) {\n return <StyledFooter ref={ref} padding={padding} {...props} />\n})\n\nMenu_.displayName = 'Menu'\n\nFooter.displayName = 'Menu.Footer'\n\nGroup.displayName = 'Menu.Group'\n\nHeader.displayName = 'Menu.Header'\n\nItem.displayName = 'Menu.Item'\n\nOptions.displayName = 'Menu.Options'\n\nSearch.displayName = 'Menu.Search'\n\n/**\n\n Menus are used in conjunction with components that contain dropdowns.\n For example, multi select, single select, and dropdown.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-menu--demo)\n\n @see [Design Guidelines](https://design.procore.com/menu)\n\n */\nexport const Menu = addSubcomponents(\n {\n Footer,\n Group,\n Header,\n Item,\n Options,\n Search,\n },\n Menu_\n)\n"],"mappings":"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"}
1
+ {"version":3,"file":"Menu.js","names":["React","StyledFooter","StyledGroup","StyledHeader","StyledItem","StyledMenu","StyledOptions","StyledSearch","StyledWrapper","useOverlayTriggerContext","Typeahead","useEventListener","useI18nContext","useListNavigation","addSubcomponents","usingHookOrDefault","onScrollBottomThreshold","isItem","element","type","Item","scrollIntoView","index","parentElement","scrollTop","offsetTop","clientHeight","_element$parentElemen","parentHeight","checkBottomScrollPosition","callback","onScroll","e","currentTarget","HTMLElement","scrollHeight","noop","useMenu","_ref","_ref$isSelectable","isSelectable","externalKeyHandlerRef","keyHandlerRef","_ref$multiple","multiple","onScrollBottom","_ref$onSearch","onSearch","_ref$onSelect","onSelect","_ref$scrollable","scrollable","listNavigation","circular","initialIndex","size","highlighted","useRef","createRef","selectItem","useCallback","selection","onKeyDown","key","increment","preventDefault","decrement","current","click","useEffect","el","addEventListener","removeEventListener","domHandlers","nativeEvent","MenuHookContext","createContext","useMenuHookContext","context","useContext","Error","Menu_","forwardRef","Menu","_ref2","ref","children","_ref2$UNSAFE_closesOn","UNSAFE_closesOnSelect","_ref2$isSelectable","_ref2$onSelect","_ref2$scrollable","usingHook","props","_objectWithoutProperties","_excluded","overlayTriggerContext","menu","reset","hide","event","createElement","Provider","value","_objectSpread","_extends","tabIndex","Group","_ref3","_ref3$clickable","clickable","item","_excluded2","$clickable","_ref4","_ref4$index","_ref4$onClick","onClick","_ref4$selected","selected","_ref4$suggested","suggested","onMouseMove","_excluded3","_useMenuHookContext","itemRef","isHighlighted","set","group","$highlighted","$selected","Options","_ref5","className","_ref5$scrollable","_useMenuHookContext2","menuScrollable","optionsRef","Children","toArray","filter","length","setSize","handler","scope","$scrollable","map","child","isValidElement","selectableIndex","cloneElement","Search","_ref6","_ref6$i18nScope","i18nScope","placeholder","_onChange","onChange","_excluded4","I18n","_React$useState","useState","_React$useState2","_slicedToArray","setValue","_menu$onSearch","target","call","autoFocus","t","Header","_ref7","_objectDestructuringEmpty","Footer","_ref8","_ref8$padding","padding","_excluded5","displayName"],"sources":["../../src/Menu/Menu.tsx"],"sourcesContent":["import React from 'react'\nimport {\n StyledFooter,\n StyledGroup,\n StyledHeader,\n StyledItem,\n StyledMenu,\n StyledOptions,\n StyledSearch,\n StyledWrapper,\n} from '../MenuImperative/MenuImperative.styles'\nimport { useOverlayTriggerContext } from '../OverlayTrigger/OverlayTrigger'\nimport type { TypeaheadProps } from '../Typeahead'\nimport { Typeahead } from '../Typeahead'\nimport { useEventListener } from '../_hooks/EventListener'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { useListNavigation } from '../_hooks/ListNavigation'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport type { DivAttributes } from '../_utils/types'\nimport { usingHookOrDefault } from '../_utils/usingHookOrDefault'\nimport type {\n ElementTypeChecker,\n MenuFooterProps,\n MenuGroupProps,\n MenuHeaderProps,\n MenuHook,\n MenuHookConfig,\n MenuItemProps,\n MenuOptionsProps,\n MenuProps,\n MenuSearchProps,\n MenuSelection,\n} from './Menu.types'\n\nconst onScrollBottomThreshold = 8\n\nexport const isItem: ElementTypeChecker = (element) => element.type === Item\n\nfunction scrollIntoView(index: number, element: HTMLElement) {\n if (!element.parentElement) {\n return\n }\n\n if (index === 0) {\n element.parentElement.scrollTop = 0\n\n return\n }\n\n const { offsetTop, clientHeight } = element\n\n const { scrollTop, clientHeight: parentHeight } = element.parentElement\n\n if (offsetTop < scrollTop) {\n element.parentElement.scrollTop = offsetTop\n } else if (offsetTop + clientHeight > scrollTop + parentHeight) {\n element.parentElement.scrollTop = offsetTop - parentHeight + clientHeight\n }\n}\n\nfunction checkBottomScrollPosition(callback?: (e: Event) => void) {\n return function onScroll(e: Event) {\n if (\n callback &&\n e.currentTarget instanceof HTMLElement &&\n e.currentTarget.scrollTop >=\n e.currentTarget.scrollHeight -\n e.currentTarget.clientHeight -\n onScrollBottomThreshold\n ) {\n callback(e)\n }\n }\n}\n\nfunction noop() {}\n\nexport function useMenu({\n isSelectable = isItem,\n keyHandlerRef: externalKeyHandlerRef,\n multiple = false,\n onScrollBottom,\n onSearch = noop,\n onSelect = noop,\n scrollable = true,\n}: MenuHookConfig): MenuHook {\n const listNavigation = useListNavigation({\n circular: !onScrollBottom,\n initialIndex: 0,\n size: 0,\n })\n\n const highlighted = React.useRef<HTMLDivElement>(null)\n\n const keyHandlerRef = externalKeyHandlerRef || React.createRef<HTMLElement>()\n\n const selectItem = React.useCallback(\n (selection: MenuSelection) => {\n onSelect(selection)\n },\n [onSelect]\n )\n\n const onKeyDown = React.useCallback(\n function (e: KeyboardEvent) {\n const { key } = e\n\n if (key === 'ArrowDown' || key === 'Down') {\n listNavigation.increment()\n e.preventDefault()\n } else if (key === 'ArrowUp' || key === 'Up') {\n listNavigation.decrement()\n e.preventDefault()\n } else if (key === 'Enter') {\n if (highlighted.current) {\n highlighted.current.click()\n }\n }\n },\n [listNavigation]\n )\n\n // TODO - deprecate keyhandlerRef, this is just for backwards compatibility since we already exposed it\n React.useEffect(\n function () {\n let el: HTMLElement\n\n if (keyHandlerRef.current) {\n keyHandlerRef.current.addEventListener('keydown', onKeyDown)\n\n el = keyHandlerRef.current\n }\n\n return function () {\n if (el) {\n el.removeEventListener('keydown', onKeyDown)\n }\n }\n },\n [keyHandlerRef, onKeyDown]\n )\n\n return {\n domHandlers: {\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) =>\n onKeyDown(e.nativeEvent),\n },\n highlighted,\n isSelectable,\n listNavigation,\n multiple,\n onScrollBottom,\n onSearch,\n scrollable,\n selectItem,\n }\n}\n\nexport const MenuHookContext = React.createContext<MenuHook | null>(null)\n\nexport function useMenuHookContext(): MenuHook {\n const context = React.useContext(MenuHookContext)\n\n if (context === null) {\n throw new Error(\n 'Cannot find `MenuHook` context, please wrap your component in `<MenuHookContext.Provider>`'\n )\n }\n\n return context\n}\n\nexport const Menu_ = React.forwardRef<HTMLDivElement, MenuProps>(function Menu(\n {\n children,\n UNSAFE_closesOnSelect = true,\n isSelectable = isItem,\n keyHandlerRef,\n onScrollBottom,\n onSelect = noop,\n onSearch,\n scrollable = true,\n usingHook,\n ...props\n },\n ref\n) {\n // Don't be tempted to put this in useMenu. In order for hooks to be portable\n // across the dom tree, they should not contain context consumers.\n const overlayTriggerContext = useOverlayTriggerContext()\n\n const menu = usingHookOrDefault(\n usingHook,\n useMenu\n )({\n isSelectable,\n keyHandlerRef,\n onScrollBottom,\n onSelect,\n onSearch,\n scrollable,\n })\n\n React.useEffect(\n function () {\n // When unmounting, reset the listNavigation index and set\n // the current highlighted item to null. we only want to run this once,\n // so don't pass any dependencies\n return function () {\n menu.listNavigation.reset()\n menu.highlighted.current = null\n }\n },\n /* eslint-disable */ [] /* eslint-enable */\n )\n\n function selectItem(selection: MenuSelection) {\n menu.selectItem(selection)\n\n if (UNSAFE_closesOnSelect) {\n overlayTriggerContext.hide(selection.event)\n }\n }\n\n return (\n <MenuHookContext.Provider value={{ ...menu, selectItem }}>\n <StyledWrapper {...menu.domHandlers} ref={ref} tabIndex={0}>\n <StyledMenu {...props}>{children}</StyledMenu>\n </StyledWrapper>\n </MenuHookContext.Provider>\n )\n})\n\nexport const Group = React.forwardRef<\n HTMLDivElement,\n DivAttributes & MenuGroupProps\n>(function Group({ children, clickable = false, item, ...props }, ref) {\n return (\n <StyledGroup\n {...props}\n ref={ref}\n // onClick={(event) => {\n // TODO: implement selecting groups?\n // }}\n $clickable={clickable}\n >\n {children}\n </StyledGroup>\n )\n})\n\nexport const Item = React.forwardRef<\n HTMLDivElement,\n DivAttributes & MenuItemProps\n>(function Item(\n {\n children,\n index = 0,\n item,\n onClick = noop,\n selected = false,\n suggested = false,\n onMouseMove,\n ...props\n },\n ref\n) {\n const { highlighted, listNavigation, multiple, selectItem } =\n useMenuHookContext()\n\n const itemRef =\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (ref as React.RefObject<HTMLDivElement>) || React.useRef<HTMLDivElement>()\n\n const isHighlighted = index === listNavigation.index\n\n React.useEffect(\n function () {\n // When mounting, check if this item is selected or suggested, and if\n // it is, then set it as the current index and scroll to it.\n // We only want to run this once, so don't pass any dependencies\n\n if (multiple) {\n // don't do this behavior in multiple mode\n return\n }\n\n if (itemRef.current && (selected || suggested)) {\n highlighted.current = itemRef.current\n listNavigation.set(index)\n }\n },\n /* eslint-disable */ [] /* eslint-enable */\n )\n\n React.useEffect(\n function () {\n // If this item has become highlighted, scroll to it\n if (itemRef.current && isHighlighted) {\n highlighted.current = itemRef.current\n scrollIntoView(index, itemRef.current)\n }\n },\n [highlighted, index, isHighlighted, itemRef]\n )\n\n return (\n <StyledItem\n {...props}\n onClick={(event: React.MouseEvent<HTMLDivElement>) => {\n listNavigation.set(index)\n\n selectItem({ event: event.nativeEvent, item, group: false })\n\n onClick(event)\n }}\n onMouseMove={(event: React.MouseEvent<HTMLDivElement>) => {\n if (onMouseMove) {\n onMouseMove(event)\n }\n if (listNavigation.index !== index) {\n listNavigation.set(index)\n }\n }}\n ref={itemRef}\n $highlighted={isHighlighted}\n $selected={selected}\n >\n {children}\n </StyledItem>\n )\n})\n\nexport const Options = React.forwardRef<HTMLDivElement, MenuOptionsProps>(\n function Options({ children, className, scrollable = true }, ref) {\n const {\n listNavigation,\n isSelectable,\n onScrollBottom,\n scrollable: menuScrollable,\n } = useMenuHookContext()\n\n const optionsRef =\n (ref as React.RefObject<HTMLDivElement>) || React.createRef()\n\n const size = React.Children.toArray(children).filter(isSelectable).length\n\n React.useEffect(\n function () {\n listNavigation.setSize(size)\n },\n [listNavigation, size]\n )\n\n useEventListener({\n event: 'scroll',\n handler: checkBottomScrollPosition(onScrollBottom),\n scope: optionsRef,\n })\n\n let index = 0\n\n return (\n <StyledOptions\n className={className}\n ref={optionsRef}\n $scrollable={menuScrollable || scrollable}\n >\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child) && isSelectable(child)) {\n const selectableIndex = index\n\n index = index + 1\n\n return React.cloneElement(child, {\n index: selectableIndex,\n })\n }\n\n return child\n })}\n </StyledOptions>\n )\n }\n)\n\nexport const Search = ({\n className,\n i18nScope = 'core.menu',\n placeholder,\n onChange: _onChange,\n ...props\n}: MenuSearchProps) => {\n const I18n = useI18nContext()\n const menu = useMenuHookContext()\n\n const [value, setValue] = React.useState('')\n\n const onChange: TypeaheadProps['onChange'] = React.useCallback(\n function (value: string, event: any) {\n setValue(event.target.value)\n menu.onSearch?.(event)\n menu.listNavigation.set(0)\n _onChange?.(event)\n },\n [_onChange]\n )\n\n return (\n <StyledSearch className={className}>\n <Typeahead\n {...props}\n autoFocus={true}\n placeholder={placeholder || I18n.t('search', { scope: i18nScope })}\n onChange={onChange}\n value={value}\n />\n </StyledSearch>\n )\n}\n\nexport const Header = React.forwardRef<\n HTMLDivElement,\n DivAttributes & MenuHeaderProps\n>(function Header({ ...props }, ref) {\n return <StyledHeader ref={ref} {...props} />\n})\n\nexport const Footer = React.forwardRef<\n HTMLDivElement,\n DivAttributes & MenuFooterProps\n>(function Footer({ padding = 'md lg', ...props }, ref) {\n return <StyledFooter ref={ref} padding={padding} {...props} />\n})\n\nMenu_.displayName = 'Menu'\n\nFooter.displayName = 'Menu.Footer'\n\nGroup.displayName = 'Menu.Group'\n\nHeader.displayName = 'Menu.Header'\n\nItem.displayName = 'Menu.Item'\n\nOptions.displayName = 'Menu.Options'\n\nSearch.displayName = 'Menu.Search'\n\n/**\n\n Menus are used in conjunction with components that contain dropdowns.\n For example, multi select, single select, and dropdown.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-menu--demo)\n\n @see [Design Guidelines](https://design.procore.com/menu)\n\n */\nexport const Menu = addSubcomponents(\n {\n Footer,\n Group,\n Header,\n Item,\n Options,\n Search,\n },\n Menu_\n)\n"],"mappings":"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"}