@procore/core-react 11.22.1 → 11.23.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 (987) hide show
  1. package/babel.config.js +32 -15
  2. package/dist/@types/files.d.js +2 -0
  3. package/dist/@types/files.d.js.map +1 -0
  4. package/dist/@types/global.d.js +2 -0
  5. package/dist/@types/global.d.js.map +1 -0
  6. package/dist/Avatar/Avatar.js +91 -80
  7. package/dist/Avatar/Avatar.js.map +1 -1
  8. package/dist/Avatar/Avatar.styles.js +57 -29
  9. package/dist/Avatar/Avatar.styles.js.map +1 -1
  10. package/dist/Avatar/Avatar.types.js.map +1 -1
  11. package/dist/Avatar/index.js +1 -0
  12. package/dist/Avatar/index.js.map +1 -1
  13. package/dist/AvatarStack/AvatarStack.constants.js.map +1 -1
  14. package/dist/AvatarStack/AvatarStack.js +306 -171
  15. package/dist/AvatarStack/AvatarStack.js.map +1 -1
  16. package/dist/AvatarStack/AvatarStack.styles.js +30 -12
  17. package/dist/AvatarStack/AvatarStack.styles.js.map +1 -1
  18. package/dist/AvatarStack/AvatarStack.types.js.map +1 -1
  19. package/dist/AvatarStack/index.js +1 -0
  20. package/dist/AvatarStack/index.js.map +1 -1
  21. package/dist/Badge/Badge.js +10 -16
  22. package/dist/Badge/Badge.js.map +1 -1
  23. package/dist/Badge/Badge.styles.js +8 -7
  24. package/dist/Badge/Badge.styles.js.map +1 -1
  25. package/dist/Badge/Badge.types.js.map +1 -1
  26. package/dist/Badge/index.js +1 -0
  27. package/dist/Badge/index.js.map +1 -1
  28. package/dist/Banner/Banner.js +211 -110
  29. package/dist/Banner/Banner.js.map +1 -1
  30. package/dist/Banner/Banner.styles.js +85 -56
  31. package/dist/Banner/Banner.styles.js.map +1 -1
  32. package/dist/Banner/Banner.types.js.map +1 -1
  33. package/dist/Banner/index.js +2 -1
  34. package/dist/Banner/index.js.map +1 -1
  35. package/dist/Box/Box.js +85 -55
  36. package/dist/Box/Box.js.map +1 -1
  37. package/dist/Box/Box.styles.js +22 -24
  38. package/dist/Box/Box.styles.js.map +1 -1
  39. package/dist/Box/Box.types.js.map +1 -1
  40. package/dist/Box/index.js +1 -0
  41. package/dist/Box/index.js.map +1 -1
  42. package/dist/Breadcrumbs/Breadcrumbs.js +67 -65
  43. package/dist/Breadcrumbs/Breadcrumbs.js.map +1 -1
  44. package/dist/Breadcrumbs/Breadcrumbs.styles.js +28 -21
  45. package/dist/Breadcrumbs/Breadcrumbs.styles.js.map +1 -1
  46. package/dist/Breadcrumbs/Breadcrumbs.types.js +5 -5
  47. package/dist/Breadcrumbs/Breadcrumbs.types.js.map +1 -1
  48. package/dist/Breadcrumbs/index.js +1 -0
  49. package/dist/Breadcrumbs/index.js.map +1 -1
  50. package/dist/Button/Button.js +105 -63
  51. package/dist/Button/Button.js.map +1 -1
  52. package/dist/Button/Button.styles.js +95 -81
  53. package/dist/Button/Button.styles.js.map +1 -1
  54. package/dist/Button/Button.types.js.map +1 -1
  55. package/dist/Button/index.js.map +1 -1
  56. package/dist/Calendar/Calendar.js +244 -125
  57. package/dist/Calendar/Calendar.js.map +1 -1
  58. package/dist/Calendar/Calendar.styles.js +52 -24
  59. package/dist/Calendar/Calendar.styles.js.map +1 -1
  60. package/dist/Calendar/Calendar.types.js.map +1 -1
  61. package/dist/Calendar/index.js +1 -0
  62. package/dist/Calendar/index.js.map +1 -1
  63. package/dist/Card/Card.js +22 -30
  64. package/dist/Card/Card.js.map +1 -1
  65. package/dist/Card/Card.styles.js +12 -12
  66. package/dist/Card/Card.styles.js.map +1 -1
  67. package/dist/Card/Card.types.js.map +1 -1
  68. package/dist/Card/index.js +1 -0
  69. package/dist/Card/index.js.map +1 -1
  70. package/dist/Changelog.mdx +6 -0
  71. package/dist/Checkbox/Checkbox.js +56 -33
  72. package/dist/Checkbox/Checkbox.js.map +1 -1
  73. package/dist/Checkbox/Checkbox.styles.js +103 -87
  74. package/dist/Checkbox/Checkbox.styles.js.map +1 -1
  75. package/dist/Checkbox/Checkbox.types.js.map +1 -1
  76. package/dist/Checkbox/index.js +1 -0
  77. package/dist/Checkbox/index.js.map +1 -1
  78. package/dist/CheckboxGroup/CheckboxGroup.js +24 -31
  79. package/dist/CheckboxGroup/CheckboxGroup.js.map +1 -1
  80. package/dist/CheckboxGroup/CheckboxGroup.types.js.map +1 -1
  81. package/dist/CheckboxGroup/index.js +1 -0
  82. package/dist/CheckboxGroup/index.js.map +1 -1
  83. package/dist/ClickOutside/ClickOutside.js +38 -38
  84. package/dist/ClickOutside/ClickOutside.js.map +1 -1
  85. package/dist/ClickOutside/index.js.map +1 -1
  86. package/dist/ContactItem/ContactItem.js +56 -45
  87. package/dist/ContactItem/ContactItem.js.map +1 -1
  88. package/dist/ContactItem/ContactItem.styles.js +31 -21
  89. package/dist/ContactItem/ContactItem.styles.js.map +1 -1
  90. package/dist/ContactItem/ContactItem.types.js.map +1 -1
  91. package/dist/ContactItem/index.js +1 -0
  92. package/dist/ContactItem/index.js.map +1 -1
  93. package/dist/Content/Content.js +2 -13
  94. package/dist/Content/Content.js.map +1 -1
  95. package/dist/Content/Content.styles.js +9 -8
  96. package/dist/Content/Content.styles.js.map +1 -1
  97. package/dist/Content/index.js.map +1 -1
  98. package/dist/DateInput/DateInput.js +453 -347
  99. package/dist/DateInput/DateInput.js.map +1 -1
  100. package/dist/DateInput/DateInput.styles.js +42 -27
  101. package/dist/DateInput/DateInput.styles.js.map +1 -1
  102. package/dist/DateInput/DateInput.types.js.map +1 -1
  103. package/dist/DateInput/index.js +1 -1
  104. package/dist/DateInput/index.js.map +1 -1
  105. package/dist/DateSelect/DateSelect.js +148 -107
  106. package/dist/DateSelect/DateSelect.js.map +1 -1
  107. package/dist/DateSelect/DateSelect.types.js.map +1 -1
  108. package/dist/DateSelect/index.js +1 -0
  109. package/dist/DateSelect/index.js.map +1 -1
  110. package/dist/DetailPage/DetailPage.constants.js +42 -42
  111. package/dist/DetailPage/DetailPage.constants.js.map +1 -1
  112. package/dist/DetailPage/DetailPage.js +66 -62
  113. package/dist/DetailPage/DetailPage.js.map +1 -1
  114. package/dist/DetailPage/DetailPage.styles.js +30 -14
  115. package/dist/DetailPage/DetailPage.styles.js.map +1 -1
  116. package/dist/DetailPage/DetailPage.types.js.map +1 -1
  117. package/dist/DetailPage/RankedHeading.js +8 -8
  118. package/dist/DetailPage/RankedHeading.js.map +1 -1
  119. package/dist/DetailPage/index.js +1 -0
  120. package/dist/DetailPage/index.js.map +1 -1
  121. package/dist/Dropdown/Dropdown.js +193 -99
  122. package/dist/Dropdown/Dropdown.js.map +1 -1
  123. package/dist/Dropdown/Dropdown.styles.js +21 -15
  124. package/dist/Dropdown/Dropdown.styles.js.map +1 -1
  125. package/dist/Dropdown/Dropdown.types.js.map +1 -1
  126. package/dist/Dropdown/index.js +1 -0
  127. package/dist/Dropdown/index.js.map +1 -1
  128. package/dist/DropdownFlyout/DropdownFlyout.helpers.js +277 -239
  129. package/dist/DropdownFlyout/DropdownFlyout.helpers.js.map +1 -1
  130. package/dist/DropdownFlyout/DropdownFlyout.js +234 -132
  131. package/dist/DropdownFlyout/DropdownFlyout.js.map +1 -1
  132. package/dist/DropdownFlyout/DropdownFlyout.styles.js +16 -9
  133. package/dist/DropdownFlyout/DropdownFlyout.styles.js.map +1 -1
  134. package/dist/DropdownFlyout/DropdownFlyout.types.js.map +1 -1
  135. package/dist/DropdownFlyout/index.js +1 -1
  136. package/dist/DropdownFlyout/index.js.map +1 -1
  137. package/dist/DropdownFlyout/useDropdownFlyoutOverlay.js +10 -11
  138. package/dist/DropdownFlyout/useDropdownFlyoutOverlay.js.map +1 -1
  139. package/dist/Dropzone/Dropzone.hooks.js +257 -211
  140. package/dist/Dropzone/Dropzone.hooks.js.map +1 -1
  141. package/dist/Dropzone/Dropzone.js +209 -156
  142. package/dist/Dropzone/Dropzone.js.map +1 -1
  143. package/dist/Dropzone/Dropzone.styles.js +54 -31
  144. package/dist/Dropzone/Dropzone.styles.js.map +1 -1
  145. package/dist/Dropzone/Dropzone.types.js +19 -11
  146. package/dist/Dropzone/Dropzone.types.js.map +1 -1
  147. package/dist/Dropzone/index.js +1 -0
  148. package/dist/Dropzone/index.js.map +1 -1
  149. package/dist/EmptyState/EmptyState.js +274 -116
  150. package/dist/EmptyState/EmptyState.js.map +1 -1
  151. package/dist/EmptyState/EmptyState.styles.js +33 -19
  152. package/dist/EmptyState/EmptyState.styles.js.map +1 -1
  153. package/dist/EmptyState/EmptyState.types.js.map +1 -1
  154. package/dist/EmptyState/index.js +1 -0
  155. package/dist/EmptyState/index.js.map +1 -1
  156. package/dist/Field/Field.js +26 -33
  157. package/dist/Field/Field.js.map +1 -1
  158. package/dist/Field/Field.styles.js +12 -8
  159. package/dist/Field/Field.styles.js.map +1 -1
  160. package/dist/Field/index.js.map +1 -1
  161. package/dist/FileList/FileList.js +83 -55
  162. package/dist/FileList/FileList.js.map +1 -1
  163. package/dist/FileList/FileList.styles.js +16 -9
  164. package/dist/FileList/FileList.styles.js.map +1 -1
  165. package/dist/FileList/FileList.types.js.map +1 -1
  166. package/dist/FileList/index.js +1 -0
  167. package/dist/FileList/index.js.map +1 -1
  168. package/dist/FileSelect/FileExplorer/FileExplorer.js +69 -65
  169. package/dist/FileSelect/FileExplorer/FileExplorer.js.map +1 -1
  170. package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +37 -16
  171. package/dist/FileSelect/FileExplorer/FileExplorer.styles.js.map +1 -1
  172. package/dist/FileSelect/FileExplorer/FileExplorer.types.js.map +1 -1
  173. package/dist/FileSelect/FileExplorer/FileExplorerModal.js +23 -31
  174. package/dist/FileSelect/FileExplorer/FileExplorerModal.js.map +1 -1
  175. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.js +92 -63
  176. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.js.map +1 -1
  177. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +12 -8
  178. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js.map +1 -1
  179. package/dist/FileSelect/FileExplorer/useSidebarNavigation.js +40 -51
  180. package/dist/FileSelect/FileExplorer/useSidebarNavigation.js.map +1 -1
  181. package/dist/FileSelect/FileSelect.js +465 -324
  182. package/dist/FileSelect/FileSelect.js.map +1 -1
  183. package/dist/FileSelect/FileSelect.styles.js +8 -7
  184. package/dist/FileSelect/FileSelect.styles.js.map +1 -1
  185. package/dist/FileSelect/FileSelect.types.js.map +1 -1
  186. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.js +93 -47
  187. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.js.map +1 -1
  188. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +16 -14
  189. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js.map +1 -1
  190. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.types.js.map +1 -1
  191. package/dist/FileSelect/FileSelectDropzone/index.js +1 -0
  192. package/dist/FileSelect/FileSelectDropzone/index.js.map +1 -1
  193. package/dist/FileSelect/FileTokenList/FileToken.types.js.map +1 -1
  194. package/dist/FileSelect/FileTokenList/FileTokenList.js +112 -90
  195. package/dist/FileSelect/FileTokenList/FileTokenList.js.map +1 -1
  196. package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +8 -7
  197. package/dist/FileSelect/FileTokenList/FileTokenList.styles.js.map +1 -1
  198. package/dist/FileSelect/FileTokenList/index.js.map +1 -1
  199. package/dist/FileSelect/GridSource/GridSource.js +269 -222
  200. package/dist/FileSelect/GridSource/GridSource.js.map +1 -1
  201. package/dist/FileSelect/GridSource/GridSource.styles.js +32 -19
  202. package/dist/FileSelect/GridSource/GridSource.styles.js.map +1 -1
  203. package/dist/FileSelect/GridSource/GridSource.types.js.map +1 -1
  204. package/dist/FileSelect/GridSource/index.js +1 -0
  205. package/dist/FileSelect/GridSource/index.js.map +1 -1
  206. package/dist/FileSelect/LocalSource/LocalSource.js +401 -314
  207. package/dist/FileSelect/LocalSource/LocalSource.js.map +1 -1
  208. package/dist/FileSelect/LocalSource/LocalSource.styles.js +18 -11
  209. package/dist/FileSelect/LocalSource/LocalSource.styles.js.map +1 -1
  210. package/dist/FileSelect/LocalSource/LocalSource.types.js.map +1 -1
  211. package/dist/FileSelect/LocalSource/index.js +1 -0
  212. package/dist/FileSelect/LocalSource/index.js.map +1 -1
  213. package/dist/FileSelect/ProgressAnnouncer/ProgressAnnouncer.js +91 -69
  214. package/dist/FileSelect/ProgressAnnouncer/ProgressAnnouncer.js.map +1 -1
  215. package/dist/FileSelect/ProgressAnnouncer/ProgressAnnouncer.types.js.map +1 -1
  216. package/dist/FileSelect/ProgressAnnouncer/index.js.map +1 -1
  217. package/dist/FileSelect/SourceItem/SourceItem.js +66 -54
  218. package/dist/FileSelect/SourceItem/SourceItem.js.map +1 -1
  219. package/dist/FileSelect/SourceItem/SourceItem.styles.js +29 -24
  220. package/dist/FileSelect/SourceItem/SourceItem.styles.js.map +1 -1
  221. package/dist/FileSelect/SourceItem/SourceItem.test.js +53 -0
  222. package/dist/FileSelect/ThumbnailList/ThumbnailList.js +175 -110
  223. package/dist/FileSelect/ThumbnailList/ThumbnailList.js.map +1 -1
  224. package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +33 -23
  225. package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js.map +1 -1
  226. package/dist/FileSelect/ThumbnailList/ThumbnailList.types.js.map +1 -1
  227. package/dist/FileSelect/ThumbnailList/index.js.map +1 -1
  228. package/dist/FileSelect/TreeSource/TreeSource.js +173 -135
  229. package/dist/FileSelect/TreeSource/TreeSource.js.map +1 -1
  230. package/dist/FileSelect/TreeSource/TreeSource.styles.js +4 -6
  231. package/dist/FileSelect/TreeSource/TreeSource.styles.js.map +1 -1
  232. package/dist/FileSelect/TreeSource/TreeSource.types.js.map +1 -1
  233. package/dist/FileSelect/TreeSource/index.js +1 -0
  234. package/dist/FileSelect/TreeSource/index.js.map +1 -1
  235. package/dist/FileSelect/index.js +3 -1
  236. package/dist/FileSelect/index.js.map +1 -1
  237. package/dist/FileSelect/storyHelpers.js +301 -231
  238. package/dist/FileSelect/storyHelpers.js.map +1 -1
  239. package/dist/FileToken/FileToken.js +103 -80
  240. package/dist/FileToken/FileToken.js.map +1 -1
  241. package/dist/FileToken/FileToken.styles.js +29 -21
  242. package/dist/FileToken/FileToken.styles.js.map +1 -1
  243. package/dist/FileToken/FileToken.types.js.map +1 -1
  244. package/dist/FileToken/index.js.map +1 -1
  245. package/dist/FilterToken/FilterToken.js +44 -34
  246. package/dist/FilterToken/FilterToken.js.map +1 -1
  247. package/dist/FilterToken/FilterToken.styles.js +12 -10
  248. package/dist/FilterToken/FilterToken.styles.js.map +1 -1
  249. package/dist/FilterToken/FilterToken.types.js.map +1 -1
  250. package/dist/FilterToken/index.js.map +1 -1
  251. package/dist/Flex/Flex.js +33 -25
  252. package/dist/Flex/Flex.js.map +1 -1
  253. package/dist/Flex/Flex.types.js.map +1 -1
  254. package/dist/Flex/index.js +1 -0
  255. package/dist/Flex/index.js.map +1 -1
  256. package/dist/FlexList/FlexList.js +52 -47
  257. package/dist/FlexList/FlexList.js.map +1 -1
  258. package/dist/FlexList/FlexList.styles.js +9 -11
  259. package/dist/FlexList/FlexList.styles.js.map +1 -1
  260. package/dist/FlexList/FlexList.types.js.map +1 -1
  261. package/dist/FlexList/index.js +1 -0
  262. package/dist/FlexList/index.js.map +1 -1
  263. package/dist/Form/Form.js +1348 -711
  264. package/dist/Form/Form.js.map +1 -1
  265. package/dist/Form/Form.styles.js +92 -43
  266. package/dist/Form/Form.styles.js.map +1 -1
  267. package/dist/Form/Form.types.js.map +1 -1
  268. package/dist/Form/closeWithConfirm.js +38 -31
  269. package/dist/Form/closeWithConfirm.js.map +1 -1
  270. package/dist/Form/index.js +2 -1
  271. package/dist/Form/index.js.map +1 -1
  272. package/dist/Form/stories/util.js +480 -385
  273. package/dist/Form/stories/util.js.map +1 -1
  274. package/dist/Grid/Grid.constants.js +13 -20
  275. package/dist/Grid/Grid.constants.js.map +1 -1
  276. package/dist/Grid/Grid.js +50 -44
  277. package/dist/Grid/Grid.js.map +1 -1
  278. package/dist/Grid/Grid.styles.js +95 -88
  279. package/dist/Grid/Grid.styles.js.map +1 -1
  280. package/dist/Grid/Grid.types.js.map +1 -1
  281. package/dist/Grid/Grid.utils.js +17 -9
  282. package/dist/Grid/Grid.utils.js.map +1 -1
  283. package/dist/Grid/index.js +1 -0
  284. package/dist/Grid/index.js.map +1 -1
  285. package/dist/GroupSelect/GroupSelect.js +210 -146
  286. package/dist/GroupSelect/GroupSelect.js.map +1 -1
  287. package/dist/GroupSelect/GroupSelect.styles.js +6 -8
  288. package/dist/GroupSelect/GroupSelect.styles.js.map +1 -1
  289. package/dist/GroupSelect/GroupSelect.types.js.map +1 -1
  290. package/dist/GroupSelect/index.js +1 -0
  291. package/dist/GroupSelect/index.js.map +1 -1
  292. package/dist/Input/Input.js +10 -25
  293. package/dist/Input/Input.js.map +1 -1
  294. package/dist/Input/Input.styles.js +10 -11
  295. package/dist/Input/Input.styles.js.map +1 -1
  296. package/dist/Input/Input.types.js.map +1 -1
  297. package/dist/Input/index.js +1 -0
  298. package/dist/Input/index.js.map +1 -1
  299. package/dist/Link/Link.js +10 -25
  300. package/dist/Link/Link.js.map +1 -1
  301. package/dist/Link/Link.styles.js +16 -17
  302. package/dist/Link/Link.styles.js.map +1 -1
  303. package/dist/Link/Link.types.js.map +1 -1
  304. package/dist/Link/index.js +1 -0
  305. package/dist/Link/index.js.map +1 -1
  306. package/dist/ListPage/ListPage.js +69 -51
  307. package/dist/ListPage/ListPage.js.map +1 -1
  308. package/dist/ListPage/ListPage.styles.js +44 -25
  309. package/dist/ListPage/ListPage.styles.js.map +1 -1
  310. package/dist/ListPage/ListPage.types.js.map +1 -1
  311. package/dist/ListPage/index.js.map +1 -1
  312. package/dist/Loader/Loader.js +24 -31
  313. package/dist/Loader/Loader.js.map +1 -1
  314. package/dist/Loader/Loader.styles.js +11 -11
  315. package/dist/Loader/Loader.styles.js.map +1 -1
  316. package/dist/Loader/Loader.types.js.map +1 -1
  317. package/dist/Loader/index.js.map +1 -1
  318. package/dist/Menu/Menu.js +332 -237
  319. package/dist/Menu/Menu.js.map +1 -1
  320. package/dist/Menu/Menu.types.js.map +1 -1
  321. package/dist/Menu/index.js +1 -0
  322. package/dist/Menu/index.js.map +1 -1
  323. package/dist/MenuImperative/MenuImperative.js +504 -311
  324. package/dist/MenuImperative/MenuImperative.js.map +1 -1
  325. package/dist/MenuImperative/MenuImperative.styles.js +71 -46
  326. package/dist/MenuImperative/MenuImperative.styles.js.map +1 -1
  327. package/dist/MenuImperative/MenuImperative.types.js.map +1 -1
  328. package/dist/MenuImperative/index.js +1 -1
  329. package/dist/MenuImperative/index.js.map +1 -1
  330. package/dist/MenuImperative/sensors.js +232 -233
  331. package/dist/MenuImperative/sensors.js.map +1 -1
  332. package/dist/Modal/ChildRegistry.context.js +46 -33
  333. package/dist/Modal/ChildRegistry.context.js.map +1 -1
  334. package/dist/Modal/Modal.js +296 -193
  335. package/dist/Modal/Modal.js.map +1 -1
  336. package/dist/Modal/Modal.styles.js +76 -41
  337. package/dist/Modal/Modal.styles.js.map +1 -1
  338. package/dist/Modal/Modal.types.js.map +1 -1
  339. package/dist/Modal/index.js +1 -0
  340. package/dist/Modal/index.js.map +1 -1
  341. package/dist/Modal/storyHelpers.js +221 -149
  342. package/dist/Modal/storyHelpers.js.map +1 -1
  343. package/dist/Modal/useInitializeModalFocus.js +30 -29
  344. package/dist/Modal/useInitializeModalFocus.js.map +1 -1
  345. package/dist/MultiSelect/MultiSelect.js +487 -324
  346. package/dist/MultiSelect/MultiSelect.js.map +1 -1
  347. package/dist/MultiSelect/MultiSelect.styles.js +29 -16
  348. package/dist/MultiSelect/MultiSelect.styles.js.map +1 -1
  349. package/dist/MultiSelect/MultiSelect.test.js +250 -0
  350. package/dist/MultiSelect/MultiSelect.types.js.map +1 -1
  351. package/dist/MultiSelect/index.js.map +1 -1
  352. package/dist/NextMenu/NextMenu.js +121 -55
  353. package/dist/NextMenu/NextMenu.js.map +1 -1
  354. package/dist/NextMenu/NextMenu.styles.js +13 -9
  355. package/dist/NextMenu/NextMenu.styles.js.map +1 -1
  356. package/dist/NextMenu/NextMenu.types.js.map +1 -1
  357. package/dist/NextMenu/NextMenuItem.js +23 -29
  358. package/dist/NextMenu/NextMenuItem.js.map +1 -1
  359. package/dist/NextMenu/sampleData.js +469 -179
  360. package/dist/NextMenu/sampleData.js.map +1 -1
  361. package/dist/NextTile/NextTile.js +174 -101
  362. package/dist/NextTile/NextTile.js.map +1 -1
  363. package/dist/NextTile/NextTile.types.js.map +1 -1
  364. package/dist/Notation/Notation.js +26 -45
  365. package/dist/Notation/Notation.js.map +1 -1
  366. package/dist/Notation/Notation.types.js +4 -4
  367. package/dist/Notation/Notation.types.js.map +1 -1
  368. package/dist/Notation/index.js +1 -0
  369. package/dist/Notation/index.js.map +1 -1
  370. package/dist/NumberInput/NumberInput.constants.js.map +1 -1
  371. package/dist/NumberInput/NumberInput.hooks.js +47 -41
  372. package/dist/NumberInput/NumberInput.hooks.js.map +1 -1
  373. package/dist/NumberInput/NumberInput.js +440 -338
  374. package/dist/NumberInput/NumberInput.js.map +1 -1
  375. package/dist/NumberInput/NumberInput.styles.js +34 -18
  376. package/dist/NumberInput/NumberInput.styles.js.map +1 -1
  377. package/dist/NumberInput/NumberInput.types.js.map +1 -1
  378. package/dist/NumberInput/NumberInput.utils.js +436 -455
  379. package/dist/NumberInput/NumberInput.utils.js.map +1 -1
  380. package/dist/NumberInput/index.js +1 -0
  381. package/dist/NumberInput/index.js.map +1 -1
  382. package/dist/Overlay/Overlay.js +36 -35
  383. package/dist/Overlay/Overlay.js.map +1 -1
  384. package/dist/Overlay/OverlayArrow.js +27 -21
  385. package/dist/Overlay/OverlayArrow.js.map +1 -1
  386. package/dist/Overlay/OverlayArrow.styles.js +4 -6
  387. package/dist/Overlay/OverlayArrow.styles.js.map +1 -1
  388. package/dist/Overlay/index.js +1 -1
  389. package/dist/Overlay/index.js.map +1 -1
  390. package/dist/Overlay/useOverlay.js +29 -21
  391. package/dist/Overlay/useOverlay.js.map +1 -1
  392. package/dist/OverlayTrigger/OverlayTrigger.js +297 -205
  393. package/dist/OverlayTrigger/OverlayTrigger.js.map +1 -1
  394. package/dist/OverlayTrigger/OverlayTrigger.test.js +483 -0
  395. package/dist/OverlayTrigger/OverlayTrigger.types.js.map +1 -1
  396. package/dist/OverlayTrigger/a11yPresets.js +248 -185
  397. package/dist/OverlayTrigger/a11yPresets.js.map +1 -1
  398. package/dist/OverlayTrigger/index.js +2 -1
  399. package/dist/OverlayTrigger/index.js.map +1 -1
  400. package/dist/PageLayout/PageLayout.constants.js.map +1 -1
  401. package/dist/PageLayout/PageLayout.js +324 -269
  402. package/dist/PageLayout/PageLayout.js.map +1 -1
  403. package/dist/PageLayout/PageLayout.styles.js +111 -71
  404. package/dist/PageLayout/PageLayout.styles.js.map +1 -1
  405. package/dist/PageLayout/PageLayout.types.js.map +1 -1
  406. package/dist/PageLayout/PageLayout.utils.js +37 -35
  407. package/dist/PageLayout/PageLayout.utils.js.map +1 -1
  408. package/dist/PageLayout/index.js +1 -0
  409. package/dist/PageLayout/index.js.map +1 -1
  410. package/dist/Pagination/Pagination.js +98 -65
  411. package/dist/Pagination/Pagination.js.map +1 -1
  412. package/dist/Pagination/Pagination.styles.js +20 -10
  413. package/dist/Pagination/Pagination.styles.js.map +1 -1
  414. package/dist/Pagination/Pagination.types.js.map +1 -1
  415. package/dist/Pagination/PaginationSelect.js +126 -96
  416. package/dist/Pagination/PaginationSelect.js.map +1 -1
  417. package/dist/Pagination/index.js +1 -0
  418. package/dist/Pagination/index.js.map +1 -1
  419. package/dist/Panel/Panel.js +207 -127
  420. package/dist/Panel/Panel.js.map +1 -1
  421. package/dist/Panel/Panel.styles.js +61 -33
  422. package/dist/Panel/Panel.styles.js.map +1 -1
  423. package/dist/Panel/Panel.types.js.map +1 -1
  424. package/dist/Panel/index.js +1 -0
  425. package/dist/Panel/index.js.map +1 -1
  426. package/dist/Pill/Pill.colorPalette.js +40 -40
  427. package/dist/Pill/Pill.colorPalette.js.map +1 -1
  428. package/dist/Pill/Pill.js +32 -31
  429. package/dist/Pill/Pill.js.map +1 -1
  430. package/dist/Pill/Pill.styles.js +12 -11
  431. package/dist/Pill/Pill.styles.js.map +1 -1
  432. package/dist/Pill/Pill.types.js.map +1 -1
  433. package/dist/Pill/index.js +1 -0
  434. package/dist/Pill/index.js.map +1 -1
  435. package/dist/PillSelect/PillSelect.js +143 -77
  436. package/dist/PillSelect/PillSelect.js.map +1 -1
  437. package/dist/PillSelect/PillSelect.styles.js +18 -11
  438. package/dist/PillSelect/PillSelect.styles.js.map +1 -1
  439. package/dist/PillSelect/PillSelect.types.js.map +1 -1
  440. package/dist/PillSelect/index.js +1 -0
  441. package/dist/PillSelect/index.js.map +1 -1
  442. package/dist/Popover/Popover.js +57 -32
  443. package/dist/Popover/Popover.js.map +1 -1
  444. package/dist/Popover/Popover.styles.js +12 -11
  445. package/dist/Popover/Popover.styles.js.map +1 -1
  446. package/dist/Popover/Popover.types.js.map +1 -1
  447. package/dist/Popover/index.js +1 -0
  448. package/dist/Popover/index.js.map +1 -1
  449. package/dist/Portal/Portal.js +14 -26
  450. package/dist/Portal/Portal.js.map +1 -1
  451. package/dist/Portal/Portal.styles.js +4 -6
  452. package/dist/Portal/Portal.styles.js.map +1 -1
  453. package/dist/Portal/Portal.types.js.map +1 -1
  454. package/dist/Portal/index.js.map +1 -1
  455. package/dist/ProgressBar/ProgressBar.js +58 -50
  456. package/dist/ProgressBar/ProgressBar.js.map +1 -1
  457. package/dist/ProgressBar/ProgressBar.styles.js +18 -17
  458. package/dist/ProgressBar/ProgressBar.styles.js.map +1 -1
  459. package/dist/ProgressBar/ProgressBar.types.js.map +1 -1
  460. package/dist/ProgressBar/index.js +1 -0
  461. package/dist/ProgressBar/index.js.map +1 -1
  462. package/dist/RadioButton/RadioButton.js +21 -28
  463. package/dist/RadioButton/RadioButton.js.map +1 -1
  464. package/dist/RadioButton/RadioButton.styles.js +18 -14
  465. package/dist/RadioButton/RadioButton.styles.js.map +1 -1
  466. package/dist/RadioButton/RadioButton.types.js.map +1 -1
  467. package/dist/RadioButton/index.js +1 -0
  468. package/dist/RadioButton/index.js.map +1 -1
  469. package/dist/Required/Required.js +21 -32
  470. package/dist/Required/Required.js.map +1 -1
  471. package/dist/Required/Required.styles.js +18 -14
  472. package/dist/Required/Required.styles.js.map +1 -1
  473. package/dist/Required/Required.types.js.map +1 -1
  474. package/dist/Required/index.js +1 -0
  475. package/dist/Required/index.js.map +1 -1
  476. package/dist/Search/Search.hooks.js +59 -40
  477. package/dist/Search/Search.hooks.js.map +1 -1
  478. package/dist/Search/Search.js +60 -48
  479. package/dist/Search/Search.js.map +1 -1
  480. package/dist/Search/Search.styles.js +28 -11
  481. package/dist/Search/Search.styles.js.map +1 -1
  482. package/dist/Search/Search.types.js.map +1 -1
  483. package/dist/Search/index.js +1 -0
  484. package/dist/Search/index.js.map +1 -1
  485. package/dist/Section/Section.js +127 -102
  486. package/dist/Section/Section.js.map +1 -1
  487. package/dist/Section/Section.styles.js +34 -19
  488. package/dist/Section/Section.styles.js.map +1 -1
  489. package/dist/Section/Section.types.js.map +1 -1
  490. package/dist/Section/index.js.map +1 -1
  491. package/dist/SegmentedController/SegmentedController.js +135 -93
  492. package/dist/SegmentedController/SegmentedController.js.map +1 -1
  493. package/dist/SegmentedController/SegmentedController.styles.js +38 -29
  494. package/dist/SegmentedController/SegmentedController.styles.js.map +1 -1
  495. package/dist/SegmentedController/SegmentedController.types.js +3 -3
  496. package/dist/SegmentedController/SegmentedController.types.js.map +1 -1
  497. package/dist/SegmentedController/index.js +1 -0
  498. package/dist/SegmentedController/index.js.map +1 -1
  499. package/dist/Select/Select.js +302 -125
  500. package/dist/Select/Select.js.map +1 -1
  501. package/dist/Select/Select.styles.js +66 -46
  502. package/dist/Select/Select.styles.js.map +1 -1
  503. package/dist/Select/Select.types.js.map +1 -1
  504. package/dist/Select/index.js +1 -1
  505. package/dist/Select/index.js.map +1 -1
  506. package/dist/Semantic/Semantic.js +63 -40
  507. package/dist/Semantic/Semantic.js.map +1 -1
  508. package/dist/Semantic/Semantic.styles.js +49 -34
  509. package/dist/Semantic/Semantic.styles.js.map +1 -1
  510. package/dist/Semantic/Semantic.types.js.map +1 -1
  511. package/dist/Semantic/index.js.map +1 -1
  512. package/dist/Sidebar/Sidebar.js +85 -68
  513. package/dist/Sidebar/Sidebar.js.map +1 -1
  514. package/dist/Sidebar/Sidebar.styles.js +32 -16
  515. package/dist/Sidebar/Sidebar.styles.js.map +1 -1
  516. package/dist/Sidebar/index.js.map +1 -1
  517. package/dist/Slider/Slider.js +120 -73
  518. package/dist/Slider/Slider.js.map +1 -1
  519. package/dist/Slider/Slider.styles.js +48 -22
  520. package/dist/Slider/Slider.styles.js.map +1 -1
  521. package/dist/Slider/Slider.types.js.map +1 -1
  522. package/dist/Slider/index.js +1 -0
  523. package/dist/Slider/index.js.map +1 -1
  524. package/dist/Spinner/Spinner.js +49 -42
  525. package/dist/Spinner/Spinner.js.map +1 -1
  526. package/dist/Spinner/Spinner.styles.js +64 -47
  527. package/dist/Spinner/Spinner.styles.js.map +1 -1
  528. package/dist/Spinner/Spinner.types.js.map +1 -1
  529. package/dist/Spinner/index.js +1 -0
  530. package/dist/Spinner/index.js.map +1 -1
  531. package/dist/SuperSelect/SuperSelect.components.js +288 -210
  532. package/dist/SuperSelect/SuperSelect.components.js.map +1 -1
  533. package/dist/SuperSelect/SuperSelect.constants.js.map +1 -1
  534. package/dist/SuperSelect/SuperSelect.js +82 -56
  535. package/dist/SuperSelect/SuperSelect.js.map +1 -1
  536. package/dist/SuperSelect/SuperSelect.presets.styles.js +4 -6
  537. package/dist/SuperSelect/SuperSelect.presets.styles.js.map +1 -1
  538. package/dist/SuperSelect/SuperSelect.styles.js +228 -117
  539. package/dist/SuperSelect/SuperSelect.styles.js.map +1 -1
  540. package/dist/SuperSelect/SuperSelect.types.js.map +1 -1
  541. package/dist/SuperSelect/SuperSelect.utils.js +136 -129
  542. package/dist/SuperSelect/SuperSelect.utils.js.map +1 -1
  543. package/dist/SuperSelect/SuperSelect.utils.test.js +717 -0
  544. package/dist/SuperSelect/index.js +1 -1
  545. package/dist/SuperSelect/index.js.map +1 -1
  546. package/dist/SuperSelect/presets/contactsPreset.js +16 -31
  547. package/dist/SuperSelect/presets/contactsPreset.js.map +1 -1
  548. package/dist/SuperSelect/presets/filterPreset.js +55 -55
  549. package/dist/SuperSelect/presets/filterPreset.js.map +1 -1
  550. package/dist/SuperSelect/presets/index.js +4 -4
  551. package/dist/SuperSelect/presets/index.js.map +1 -1
  552. package/dist/SuperSelect/presets/pillPreset.js +39 -25
  553. package/dist/SuperSelect/presets/pillPreset.js.map +1 -1
  554. package/dist/SuperSelect/useSuperSelect.js +769 -636
  555. package/dist/SuperSelect/useSuperSelect.js.map +1 -1
  556. package/dist/SuperSelect/useSuperSelect.test.js +1284 -0
  557. package/dist/SuperSelect/useVirtuosoResizeErrorFix.js +15 -18
  558. package/dist/SuperSelect/useVirtuosoResizeErrorFix.js.map +1 -1
  559. package/dist/Switch/Switch.js +22 -32
  560. package/dist/Switch/Switch.js.map +1 -1
  561. package/dist/Switch/Switch.styles.js +26 -17
  562. package/dist/Switch/Switch.styles.js.map +1 -1
  563. package/dist/Switch/Switch.types.js.map +1 -1
  564. package/dist/Switch/index.js +1 -0
  565. package/dist/Switch/index.js.map +1 -1
  566. package/dist/Table/Table.js +372 -197
  567. package/dist/Table/Table.js.map +1 -1
  568. package/dist/Table/Table.styles.js +204 -127
  569. package/dist/Table/Table.styles.js.map +1 -1
  570. package/dist/Table/Table.types.js.map +1 -1
  571. package/dist/Table/index.js +1 -0
  572. package/dist/Table/index.js.map +1 -1
  573. package/dist/TableShelf/TableShelf.js +51 -47
  574. package/dist/TableShelf/TableShelf.js.map +1 -1
  575. package/dist/TableShelf/TableShelf.styles.js +20 -10
  576. package/dist/TableShelf/TableShelf.styles.js.map +1 -1
  577. package/dist/TableShelf/index.js.map +1 -1
  578. package/dist/Tabs/Tabs.js +237 -136
  579. package/dist/Tabs/Tabs.js.map +1 -1
  580. package/dist/Tabs/Tabs.styles.js +59 -40
  581. package/dist/Tabs/Tabs.styles.js.map +1 -1
  582. package/dist/Tabs/Tabs.types.js +6 -6
  583. package/dist/Tabs/Tabs.types.js.map +1 -1
  584. package/dist/Tabs/index.js +1 -0
  585. package/dist/Tabs/index.js.map +1 -1
  586. package/dist/Tearsheet/Tearsheet.constants.js +2 -15
  587. package/dist/Tearsheet/Tearsheet.constants.js.map +1 -1
  588. package/dist/Tearsheet/Tearsheet.js +228 -177
  589. package/dist/Tearsheet/Tearsheet.js.map +1 -1
  590. package/dist/Tearsheet/Tearsheet.styles.js +106 -92
  591. package/dist/Tearsheet/Tearsheet.styles.js.map +1 -1
  592. package/dist/Tearsheet/Tearsheet.types.js.map +1 -1
  593. package/dist/Tearsheet/Tearsheet.util.js +53 -49
  594. package/dist/Tearsheet/Tearsheet.util.js.map +1 -1
  595. package/dist/Tearsheet/index.js +1 -0
  596. package/dist/Tearsheet/index.js.map +1 -1
  597. package/dist/TextArea/TextArea.js +13 -25
  598. package/dist/TextArea/TextArea.js.map +1 -1
  599. package/dist/TextArea/TextArea.styles.js +7 -8
  600. package/dist/TextArea/TextArea.styles.js.map +1 -1
  601. package/dist/TextArea/TextArea.types.js.map +1 -1
  602. package/dist/TextArea/index.js +1 -0
  603. package/dist/TextArea/index.js.map +1 -1
  604. package/dist/TextEditor/TextEditor.js +110 -81
  605. package/dist/TextEditor/TextEditor.js.map +1 -1
  606. package/dist/TextEditor/TextEditor.styles.js +3 -8
  607. package/dist/TextEditor/TextEditor.styles.js.map +1 -1
  608. package/dist/TextEditor/TextEditor.types.js.map +1 -1
  609. package/dist/TextEditor/index.js +1 -0
  610. package/dist/TextEditor/index.js.map +1 -1
  611. package/dist/TextEditorOutput/TextEditorOutput.js +29 -27
  612. package/dist/TextEditorOutput/TextEditorOutput.js.map +1 -1
  613. package/dist/TextEditorOutput/TextEditorOutput.styles.js +4 -6
  614. package/dist/TextEditorOutput/TextEditorOutput.styles.js.map +1 -1
  615. package/dist/TextEditorOutput/TextEditorOutput.types.js.map +1 -1
  616. package/dist/TextEditorOutput/index.js.map +1 -1
  617. package/dist/Thumbnail/Thumbnail.hooks.js +89 -57
  618. package/dist/Thumbnail/Thumbnail.hooks.js.map +1 -1
  619. package/dist/Thumbnail/Thumbnail.js +394 -180
  620. package/dist/Thumbnail/Thumbnail.js.map +1 -1
  621. package/dist/Thumbnail/Thumbnail.styles.js +151 -130
  622. package/dist/Thumbnail/Thumbnail.styles.js.map +1 -1
  623. package/dist/Thumbnail/Thumbnail.types.js.map +1 -1
  624. package/dist/Thumbnail/Thumbnail.utils.js +45 -55
  625. package/dist/Thumbnail/Thumbnail.utils.js.map +1 -1
  626. package/dist/Thumbnail/ThumbnailCaption.js +101 -54
  627. package/dist/Thumbnail/ThumbnailCaption.js.map +1 -1
  628. package/dist/Thumbnail/ThumbnailDocumentIcon.js +479 -156
  629. package/dist/Thumbnail/ThumbnailDocumentIcon.js.map +1 -1
  630. package/dist/Thumbnail/ThumbnailPreview.js +31 -20
  631. package/dist/Thumbnail/ThumbnailPreview.js.map +1 -1
  632. package/dist/Thumbnail/index.js +2 -0
  633. package/dist/Thumbnail/index.js.map +1 -1
  634. package/dist/ThumbnailGrid/ThumbnailGrid.hooks.js +102 -81
  635. package/dist/ThumbnailGrid/ThumbnailGrid.hooks.js.map +1 -1
  636. package/dist/ThumbnailGrid/ThumbnailGrid.js +536 -402
  637. package/dist/ThumbnailGrid/ThumbnailGrid.js.map +1 -1
  638. package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +28 -14
  639. package/dist/ThumbnailGrid/ThumbnailGrid.styles.js.map +1 -1
  640. package/dist/ThumbnailGrid/ThumbnailGrid.types.js.map +1 -1
  641. package/dist/ThumbnailGrid/index.js +1 -0
  642. package/dist/ThumbnailGrid/index.js.map +1 -1
  643. package/dist/TieredDropdown/TieredDropdown.helpers.js +29 -25
  644. package/dist/TieredDropdown/TieredDropdown.helpers.js.map +1 -1
  645. package/dist/TieredDropdown/TieredDropdown.js +241 -145
  646. package/dist/TieredDropdown/TieredDropdown.js.map +1 -1
  647. package/dist/TieredDropdown/TieredDropdown.types.js.map +1 -1
  648. package/dist/TieredDropdown/index.js +1 -0
  649. package/dist/TieredDropdown/index.js.map +1 -1
  650. package/dist/TieredDropdown/useSearch.js +49 -39
  651. package/dist/TieredDropdown/useSearch.js.map +1 -1
  652. package/dist/TieredSelect/LeafSelectionTieredSelect.js +173 -117
  653. package/dist/TieredSelect/LeafSelectionTieredSelect.js.map +1 -1
  654. package/dist/TieredSelect/TierSelectionTieredSelect.js +486 -316
  655. package/dist/TieredSelect/TierSelectionTieredSelect.js.map +1 -1
  656. package/dist/TieredSelect/TieredSelect.js +149 -111
  657. package/dist/TieredSelect/TieredSelect.js.map +1 -1
  658. package/dist/TieredSelect/TieredSelect.styles.js +40 -18
  659. package/dist/TieredSelect/TieredSelect.styles.js.map +1 -1
  660. package/dist/TieredSelect/TieredSelect.types.js.map +1 -1
  661. package/dist/TieredSelect/TieredSelectMenu.js +390 -277
  662. package/dist/TieredSelect/TieredSelectMenu.js.map +1 -1
  663. package/dist/TieredSelect/index.js +1 -0
  664. package/dist/TieredSelect/index.js.map +1 -1
  665. package/dist/Tile/Tile.js +154 -90
  666. package/dist/Tile/Tile.js.map +1 -1
  667. package/dist/Tile/Tile.styles.js +81 -46
  668. package/dist/Tile/Tile.styles.js.map +1 -1
  669. package/dist/Tile/Tile.types.js.map +1 -1
  670. package/dist/Tile/index.js +1 -0
  671. package/dist/Tile/index.js.map +1 -1
  672. package/dist/Title/Title.js +64 -64
  673. package/dist/Title/Title.js.map +1 -1
  674. package/dist/Title/Title.styles.js +30 -14
  675. package/dist/Title/Title.styles.js.map +1 -1
  676. package/dist/Title/Title.types.js.map +1 -1
  677. package/dist/Title/index.js +1 -0
  678. package/dist/Title/index.js.map +1 -1
  679. package/dist/Toast/Toast.js +44 -40
  680. package/dist/Toast/Toast.js.map +1 -1
  681. package/dist/Toast/Toast.styles.js +18 -15
  682. package/dist/Toast/Toast.styles.js.map +1 -1
  683. package/dist/Toast/Toast.types.js.map +1 -1
  684. package/dist/Toast/index.js +1 -0
  685. package/dist/Toast/index.js.map +1 -1
  686. package/dist/ToggleButton/ToggleButton.js +20 -25
  687. package/dist/ToggleButton/ToggleButton.js.map +1 -1
  688. package/dist/ToggleButton/ToggleButton.styles.js +6 -8
  689. package/dist/ToggleButton/ToggleButton.styles.js.map +1 -1
  690. package/dist/ToggleButton/ToggleButton.types.js.map +1 -1
  691. package/dist/ToggleButton/index.js +1 -0
  692. package/dist/ToggleButton/index.js.map +1 -1
  693. package/dist/Token/Token.js +39 -34
  694. package/dist/Token/Token.js.map +1 -1
  695. package/dist/Token/Token.styles.js +25 -16
  696. package/dist/Token/Token.styles.js.map +1 -1
  697. package/dist/Token/Token.types.js.map +1 -1
  698. package/dist/Token/index.js +1 -0
  699. package/dist/Token/index.js.map +1 -1
  700. package/dist/ToolHeader/ActionIcon.js +45 -38
  701. package/dist/ToolHeader/ActionIcon.js.map +1 -1
  702. package/dist/ToolHeader/ActionIcon.types.example.js +58 -18
  703. package/dist/ToolHeader/ActionIcon.types.example.js.map +1 -1
  704. package/dist/ToolHeader/ActionIcon.types.js.map +1 -1
  705. package/dist/ToolHeader/ToolHeader.js +60 -47
  706. package/dist/ToolHeader/ToolHeader.js.map +1 -1
  707. package/dist/ToolHeader/ToolHeader.styles.js +30 -18
  708. package/dist/ToolHeader/ToolHeader.styles.js.map +1 -1
  709. package/dist/ToolHeader/ToolHeader.types.js.map +1 -1
  710. package/dist/ToolHeader/index.js.map +1 -1
  711. package/dist/Tooltip/Tooltip.js +43 -31
  712. package/dist/Tooltip/Tooltip.js.map +1 -1
  713. package/dist/Tooltip/Tooltip.styles.js +8 -7
  714. package/dist/Tooltip/Tooltip.styles.js.map +1 -1
  715. package/dist/Tooltip/Tooltip.types.js.map +1 -1
  716. package/dist/Tooltip/index.js +1 -0
  717. package/dist/Tooltip/index.js.map +1 -1
  718. package/dist/Tree/Tree.hooks.js +195 -190
  719. package/dist/Tree/Tree.hooks.js.map +1 -1
  720. package/dist/Tree/Tree.js +530 -324
  721. package/dist/Tree/Tree.js.map +1 -1
  722. package/dist/Tree/Tree.styles.js +49 -28
  723. package/dist/Tree/Tree.styles.js.map +1 -1
  724. package/dist/Tree/Tree.types.js.map +1 -1
  725. package/dist/Tree/index.js +1 -0
  726. package/dist/Tree/index.js.map +1 -1
  727. package/dist/Typeahead/Typeahead.js +77 -50
  728. package/dist/Typeahead/Typeahead.js.map +1 -1
  729. package/dist/Typeahead/Typeahead.styles.js +16 -8
  730. package/dist/Typeahead/Typeahead.styles.js.map +1 -1
  731. package/dist/Typeahead/Typeahead.types.js.map +1 -1
  732. package/dist/Typeahead/index.js +1 -0
  733. package/dist/Typeahead/index.js.map +1 -1
  734. package/dist/Typography/Typography.colors.story.js +282 -141
  735. package/dist/Typography/Typography.colors.story.js.map +1 -1
  736. package/dist/Typography/Typography.js +13 -25
  737. package/dist/Typography/Typography.js.map +1 -1
  738. package/dist/Typography/Typography.styles.js +42 -41
  739. package/dist/Typography/Typography.styles.js.map +1 -1
  740. package/dist/Typography/Typography.table.story.js +24 -45
  741. package/dist/Typography/Typography.table.story.js.map +1 -1
  742. package/dist/Typography/Typography.types.js.map +1 -1
  743. package/dist/Typography/index.js.map +1 -1
  744. package/dist/_hooks/Analytics.js +27 -18
  745. package/dist/_hooks/Analytics.js.map +1 -1
  746. package/dist/_hooks/Anchor.js +123 -84
  747. package/dist/_hooks/Anchor.js.map +1 -1
  748. package/dist/_hooks/Autofocus.js +53 -52
  749. package/dist/_hooks/Autofocus.js.map +1 -1
  750. package/dist/_hooks/BoundingRect.js +57 -41
  751. package/dist/_hooks/BoundingRect.js.map +1 -1
  752. package/dist/_hooks/Buffer.js +64 -39
  753. package/dist/_hooks/Buffer.js.map +1 -1
  754. package/dist/_hooks/ClickOutside.js +31 -20
  755. package/dist/_hooks/ClickOutside.js.map +1 -1
  756. package/dist/_hooks/DateTime/DateTime.js +235 -188
  757. package/dist/_hooks/DateTime/DateTime.js.map +1 -1
  758. package/dist/_hooks/DateTime/index.js +1 -1
  759. package/dist/_hooks/DateTime/index.js.map +1 -1
  760. package/dist/_hooks/DelayedCallback.js +41 -25
  761. package/dist/_hooks/DelayedCallback.js.map +1 -1
  762. package/dist/_hooks/DelayedToggle.js +98 -59
  763. package/dist/_hooks/DelayedToggle.js.map +1 -1
  764. package/dist/_hooks/Deprecation.js +11 -10
  765. package/dist/_hooks/Deprecation.js.map +1 -1
  766. package/dist/_hooks/Event.js +53 -28
  767. package/dist/_hooks/Event.js.map +1 -1
  768. package/dist/_hooks/EventListener.js +103 -59
  769. package/dist/_hooks/EventListener.js.map +1 -1
  770. package/dist/_hooks/EventRegistry.js +19 -14
  771. package/dist/_hooks/EventRegistry.js.map +1 -1
  772. package/dist/_hooks/Hotkey.js +35 -32
  773. package/dist/_hooks/Hotkey.js.map +1 -1
  774. package/dist/_hooks/I18n.js +54 -52
  775. package/dist/_hooks/I18n.js.map +1 -1
  776. package/dist/_hooks/InjectedScript.js +66 -45
  777. package/dist/_hooks/InjectedScript.js.map +1 -1
  778. package/dist/_hooks/IntersectionObserver/createIntersectionObserver.js +3 -3
  779. package/dist/_hooks/IntersectionObserver/createIntersectionObserver.js.map +1 -1
  780. package/dist/_hooks/IntersectionObserver/index.js.map +1 -1
  781. package/dist/_hooks/IntersectionObserver/useIntersectionObserver.js +23 -14
  782. package/dist/_hooks/IntersectionObserver/useIntersectionObserver.js.map +1 -1
  783. package/dist/_hooks/ListNavigation.js +114 -79
  784. package/dist/_hooks/ListNavigation.js.map +1 -1
  785. package/dist/_hooks/OverflowObserver/OverflowObserver.js +56 -32
  786. package/dist/_hooks/OverflowObserver/OverflowObserver.js.map +1 -1
  787. package/dist/_hooks/OverflowObserver/OverflowObserver.test.js +110 -0
  788. package/dist/_hooks/OverflowObserver/OverflowObserver.types.js.map +1 -1
  789. package/dist/_hooks/OverflowObserver/index.js.map +1 -1
  790. package/dist/_hooks/Resize.js +10 -4
  791. package/dist/_hooks/Resize.js.map +1 -1
  792. package/dist/_hooks/ResizeObserver.js +23 -14
  793. package/dist/_hooks/ResizeObserver.js.map +1 -1
  794. package/dist/_hooks/Scroll.js +16 -4
  795. package/dist/_hooks/Scroll.js.map +1 -1
  796. package/dist/_hooks/ScrollLock.js +15 -15
  797. package/dist/_hooks/ScrollLock.js.map +1 -1
  798. package/dist/_hooks/TextEntry.js +83 -46
  799. package/dist/_hooks/TextEntry.js.map +1 -1
  800. package/dist/_hooks/Timer.js +48 -29
  801. package/dist/_hooks/Timer.js.map +1 -1
  802. package/dist/_hooks/Trigger.js +120 -86
  803. package/dist/_hooks/Trigger.js.map +1 -1
  804. package/dist/_hooks/Visibility.js +82 -49
  805. package/dist/_hooks/Visibility.js.map +1 -1
  806. package/dist/_hooks/ZIndex.js +53 -34
  807. package/dist/_hooks/ZIndex.js.map +1 -1
  808. package/dist/_hooks/__tests__/Anchor.test.js +109 -0
  809. package/dist/_hooks/__tests__/BoundingRect.test.js +85 -0
  810. package/dist/_hooks/__tests__/Buffer.test.js +76 -0
  811. package/dist/_hooks/__tests__/DateTime.test.js +136 -0
  812. package/dist/_hooks/__tests__/DelayedCallback.test.js +119 -0
  813. package/dist/_hooks/__tests__/DelayedToggle.test.js +50 -0
  814. package/dist/_hooks/__tests__/Deprecation.test.js +58 -0
  815. package/dist/_hooks/__tests__/Event.test.js +46 -0
  816. package/dist/_hooks/__tests__/EventListener.test.js +78 -0
  817. package/dist/_hooks/__tests__/Hotkey.test.js +18 -0
  818. package/dist/_hooks/__tests__/InjectedScript.test.js +80 -0
  819. package/dist/_hooks/__tests__/ListNavigation.test.js +101 -0
  820. package/dist/_hooks/__tests__/TextEntry.test.js +92 -0
  821. package/dist/_hooks/__tests__/Timer.test.js +60 -0
  822. package/dist/_hooks/__tests__/Trigger.test.js +52 -0
  823. package/dist/_hooks/__tests__/Visibility.test.js +86 -0
  824. package/dist/_hooks/__tests__/ZIndex.test.js +76 -0
  825. package/dist/_hooks/useFileUploader.js +220 -220
  826. package/dist/_hooks/useFileUploader.js.map +1 -1
  827. package/dist/_hooks/useFocusWithin.js +27 -18
  828. package/dist/_hooks/useFocusWithin.js.map +1 -1
  829. package/dist/_hooks/useSet.js +71 -45
  830. package/dist/_hooks/useSet.js.map +1 -1
  831. package/dist/_hooks/useUpdateEffect.js +14 -13
  832. package/dist/_hooks/useUpdateEffect.js.map +1 -1
  833. package/dist/_locales/de-DE.json +354 -354
  834. package/dist/_locales/en-AU.json +354 -354
  835. package/dist/_locales/en-CA.json +354 -354
  836. package/dist/_locales/en-GB.json +354 -354
  837. package/dist/_locales/en-US.json +30 -30
  838. package/dist/_locales/en.json +353 -353
  839. package/dist/_locales/es-ES.json +354 -354
  840. package/dist/_locales/es.json +354 -354
  841. package/dist/_locales/fr-CA.json +354 -354
  842. package/dist/_locales/fr-FR.json +354 -354
  843. package/dist/_locales/is-IS.json +354 -354
  844. package/dist/_locales/pt-BR.json +354 -354
  845. package/dist/_locales/th-TH.json +354 -354
  846. package/dist/_locales/zh-SG.json +354 -354
  847. package/dist/_styles/arrows.js +4 -9
  848. package/dist/_styles/arrows.js.map +1 -1
  849. package/dist/_styles/borderRadius.js +4 -9
  850. package/dist/_styles/borderRadius.js.map +1 -1
  851. package/dist/_styles/colors.js +19 -18
  852. package/dist/_styles/colors.js.map +1 -1
  853. package/dist/_styles/media.js.map +1 -1
  854. package/dist/_styles/mixins.js +14 -16
  855. package/dist/_styles/mixins.js.map +1 -1
  856. package/dist/_styles/shadows.js +12 -17
  857. package/dist/_styles/shadows.js.map +1 -1
  858. package/dist/_styles/spacing.js +8 -8
  859. package/dist/_styles/spacing.js.map +1 -1
  860. package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
  861. package/dist/_typedoc/AvatarStack/AvatarStack.types.json +23 -23
  862. package/dist/_typedoc/Badge/Badge.types.json +6 -6
  863. package/dist/_typedoc/Banner/Banner.types.json +13 -13
  864. package/dist/_typedoc/Box/Box.types.json +68 -68
  865. package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
  866. package/dist/_typedoc/Button/Button.types.json +11 -11
  867. package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
  868. package/dist/_typedoc/Card/Card.types.json +6 -6
  869. package/dist/_typedoc/Checkbox/Checkbox.types.json +7 -7
  870. package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
  871. package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
  872. package/dist/_typedoc/DateSelect/DateSelect.types.json +13 -13
  873. package/dist/_typedoc/DetailPage/DetailPage.types.json +4 -4
  874. package/dist/_typedoc/Dropdown/Dropdown.types.json +37 -37
  875. package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +29 -29
  876. package/dist/_typedoc/Dropzone/Dropzone.types.json +41 -41
  877. package/dist/_typedoc/EmptyState/EmptyState.types.json +14 -14
  878. package/dist/_typedoc/FileList/FileList.types.json +9 -9
  879. package/dist/_typedoc/FileSelect/FileSelect.types.json +26 -26
  880. package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
  881. package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
  882. package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
  883. package/dist/_typedoc/Flex/Flex.types.json +27 -27
  884. package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
  885. package/dist/_typedoc/Form/Form.types.json +698 -698
  886. package/dist/_typedoc/Grid/Grid.types.json +8 -8
  887. package/dist/_typedoc/GroupSelect/GroupSelect.types.json +52 -52
  888. package/dist/_typedoc/Input/Input.types.json +2 -2
  889. package/dist/_typedoc/Link/Link.types.json +4 -4
  890. package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
  891. package/dist/_typedoc/Menu/Menu.types.json +62 -62
  892. package/dist/_typedoc/MenuImperative/MenuImperative.types.json +74 -74
  893. package/dist/_typedoc/Modal/Modal.types.json +41 -41
  894. package/dist/_typedoc/MultiSelect/MultiSelect.types.json +31 -31
  895. package/dist/_typedoc/Notation/Notation.types.json +4 -4
  896. package/dist/_typedoc/NumberInput/NumberInput.types.json +38 -38
  897. package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +30 -30
  898. package/dist/_typedoc/PageLayout/PageLayout.types.json +22 -22
  899. package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
  900. package/dist/_typedoc/Panel/Panel.types.json +27 -27
  901. package/dist/_typedoc/Pill/Pill.types.json +2 -2
  902. package/dist/_typedoc/PillSelect/PillSelect.types.json +46 -46
  903. package/dist/_typedoc/Popover/Popover.types.json +14 -14
  904. package/dist/_typedoc/ProgressBar/ProgressBar.types.json +6 -6
  905. package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
  906. package/dist/_typedoc/Required/Required.types.json +5 -5
  907. package/dist/_typedoc/Search/Search.types.json +18 -18
  908. package/dist/_typedoc/Section/Section.types.json +14 -14
  909. package/dist/_typedoc/SegmentedController/SegmentedController.types.json +20 -20
  910. package/dist/_typedoc/Select/Select.types.json +55 -55
  911. package/dist/_typedoc/Slider/Slider.types.json +6 -6
  912. package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
  913. package/dist/_typedoc/Switch/Switch.types.json +3 -3
  914. package/dist/_typedoc/Table/Table.types.json +96 -96
  915. package/dist/_typedoc/Tabs/Tabs.types.json +17 -17
  916. package/dist/_typedoc/Tearsheet/Tearsheet.types.json +16 -16
  917. package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
  918. package/dist/_typedoc/TextEditor/TextEditor.types.json +9 -9
  919. package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +4 -4
  920. package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
  921. package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +42 -42
  922. package/dist/_typedoc/TieredSelect/TieredSelect.types.json +28 -28
  923. package/dist/_typedoc/Tile/Tile.types.json +30 -30
  924. package/dist/_typedoc/Toast/Toast.types.json +4 -4
  925. package/dist/_typedoc/ToggleButton/ToggleButton.types.json +3 -3
  926. package/dist/_typedoc/Token/Token.types.json +4 -4
  927. package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
  928. package/dist/_typedoc/Tooltip/Tooltip.types.json +13 -13
  929. package/dist/_typedoc/Tree/Tree.types.json +86 -86
  930. package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
  931. package/dist/_typedoc/Typography/Typography.types.json +8 -8
  932. package/dist/_typedoc/_utils/types.json +3 -3
  933. package/dist/_utils/CalendarHelpers.js +147 -129
  934. package/dist/_utils/CalendarHelpers.js.map +1 -1
  935. package/dist/_utils/TinyMCE.js +60 -109
  936. package/dist/_utils/TinyMCE.js.map +1 -1
  937. package/dist/_utils/__tests__/CalendarHelpers.test.js +64 -0
  938. package/dist/_utils/__tests__/filename.test.js +27 -0
  939. package/dist/_utils/__tests__/getAnchorPosition.test.js +250 -0
  940. package/dist/_utils/__tests__/mergeRefs.test.js +58 -0
  941. package/dist/_utils/__tests__/slotify.test.js +152 -0
  942. package/dist/_utils/addSubcomponents.js +5 -5
  943. package/dist/_utils/addSubcomponents.js.map +1 -1
  944. package/dist/_utils/dateTime.js +103 -85
  945. package/dist/_utils/dateTime.js.map +1 -1
  946. package/dist/_utils/dom.js +21 -25
  947. package/dist/_utils/dom.js.map +1 -1
  948. package/dist/_utils/filename.js +19 -11
  949. package/dist/_utils/filename.js.map +1 -1
  950. package/dist/_utils/genericAnalyticsClient.js +40 -26
  951. package/dist/_utils/genericAnalyticsClient.js.map +1 -1
  952. package/dist/_utils/getAnchorPosition.js +221 -127
  953. package/dist/_utils/getAnchorPosition.js.map +1 -1
  954. package/dist/_utils/i18n.js +19 -19
  955. package/dist/_utils/i18n.js.map +1 -1
  956. package/dist/_utils/isIE11.js +4 -4
  957. package/dist/_utils/isIE11.js.map +1 -1
  958. package/dist/_utils/isReactElement.js +1 -1
  959. package/dist/_utils/isReactElement.js.map +1 -1
  960. package/dist/_utils/mergeRefs.js +13 -13
  961. package/dist/_utils/mergeRefs.js.map +1 -1
  962. package/dist/_utils/partition.js +13 -5
  963. package/dist/_utils/partition.js.map +1 -1
  964. package/dist/_utils/placement.js +13 -13
  965. package/dist/_utils/placement.js.map +1 -1
  966. package/dist/_utils/polymorphic.js +6 -1
  967. package/dist/_utils/polymorphic.js.map +1 -1
  968. package/dist/_utils/props.js +1 -1
  969. package/dist/_utils/props.js.map +1 -1
  970. package/dist/_utils/propsTypedoc.js +14 -0
  971. package/dist/_utils/propsTypedoc.js.map +1 -1
  972. package/dist/_utils/runInQueue.js +39 -57
  973. package/dist/_utils/runInQueue.js.map +1 -1
  974. package/dist/_utils/scrollIntoView.js +17 -15
  975. package/dist/_utils/scrollIntoView.js.map +1 -1
  976. package/dist/_utils/slotify.js +45 -42
  977. package/dist/_utils/slotify.js.map +1 -1
  978. package/dist/_utils/triggerListeners.js +65 -53
  979. package/dist/_utils/triggerListeners.js.map +1 -1
  980. package/dist/_utils/types.js.map +1 -1
  981. package/dist/_utils/usingHookOrDefault.js +3 -5
  982. package/dist/_utils/usingHookOrDefault.js.map +1 -1
  983. package/dist/index.js +9 -1
  984. package/dist/index.js.map +1 -1
  985. package/package.json +6 -4
  986. package/dist/Link/Link.coverage.stories.js +0 -28
  987. package/dist/Link/Link.coverage.stories.js.map +0 -1
@@ -1,24 +1,20 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
13
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
14
- if (ar || !(i in from)) {
15
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
16
- ar[i] = from[i];
17
- }
18
- }
19
- return to.concat(ar || Array.prototype.slice.call(from));
20
- };
21
- import { autoUpdate, flip, offset, size, useClick, useDismiss, useFloating, useInteractions, useListNavigation, } from '@floating-ui/react';
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
3
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
5
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
6
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
7
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
8
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
9
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
10
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
11
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
16
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
17
+ import { autoUpdate, flip, offset, size, useClick, useDismiss, useFloating, useInteractions, useListNavigation } from '@floating-ui/react';
22
18
  import { useId } from '@react-aria/utils';
23
19
  import debounce from 'lodash.debounce';
24
20
  import uniq from 'lodash.uniq';
@@ -29,664 +25,801 @@ import { useZIndexContext } from '../_hooks/ZIndex';
29
25
  import { spacing } from '../_styles/spacing';
30
26
  import * as defaultComponents from './SuperSelect.components';
31
27
  import { draggableOptionIdSymbol } from './SuperSelect.constants';
32
- import { collectGroupsInOrderOfOccurrence, createOptgroup, getBatchOptionFormatter, getIsAllOptionsUngrouped, getOptionIsOptgroup, getOptionsSortingAlgorithm, isMultiple, removeEmptyOptGroups, reorder, sortOptgroups, } from './SuperSelect.utils';
28
+ import { collectGroupsInOrderOfOccurrence, createOptgroup, getBatchOptionFormatter, getIsAllOptionsUngrouped, getOptionIsOptgroup, getOptionsSortingAlgorithm, isMultiple, removeEmptyOptGroups, reorder, sortOptgroups } from './SuperSelect.utils';
33
29
  var listContainerVerticalPadding = spacing.sm * 2;
34
- function noop() { }
30
+ function noop() {}
35
31
  function defaultGetOptionValue(option) {
36
- return option === null || option === void 0 ? void 0 : option.value;
32
+ return option === null || option === void 0 ? void 0 : option.value;
37
33
  }
38
34
  function defaultGetOptionIsBatch(option) {
39
- return Array.isArray(option === null || option === void 0 ? void 0 : option.value);
35
+ return Array.isArray(option === null || option === void 0 ? void 0 : option.value);
40
36
  }
41
37
  function defaultGetOptionIsDisabled(option) {
42
- var _a;
43
- return (_a = option === null || option === void 0 ? void 0 : option.disabled) !== null && _a !== void 0 ? _a : false;
38
+ var _option$disabled;
39
+ return (_option$disabled = option === null || option === void 0 ? void 0 : option.disabled) !== null && _option$disabled !== void 0 ? _option$disabled : false;
44
40
  }
45
41
  function defaultGetOptionGroup(option) {
46
- var _a;
47
- return (_a = option === null || option === void 0 ? void 0 : option.group) !== null && _a !== void 0 ? _a : '';
42
+ var _option$group;
43
+ return (_option$group = option === null || option === void 0 ? void 0 : option.group) !== null && _option$group !== void 0 ? _option$group : '';
48
44
  }
49
45
  function defaultSetOptionGroup(option, group) {
50
- return __assign(__assign({}, option), { group: group });
46
+ return _objectSpread(_objectSpread({}, option), {}, {
47
+ group: group
48
+ });
51
49
  }
52
50
  function defaultGetOptionLabel(option) {
53
- var _a;
54
- return (_a = option === null || option === void 0 ? void 0 : option.label) !== null && _a !== void 0 ? _a : '';
51
+ var _option$label;
52
+ return (_option$label = option === null || option === void 0 ? void 0 : option.label) !== null && _option$label !== void 0 ? _option$label : '';
55
53
  }
56
54
  function stringContains(str1, str2) {
57
- return str1.toLowerCase().includes(str2.toLowerCase());
58
- }
59
- function useTokenNavigation(context, _a) {
60
- var _b = _a === void 0 ? {} : _a, _c = _b.enabled, enabled = _c === void 0 ? true : _c, _d = _b.value, value = _d === void 0 ? [] : _d, _e = _b.activeIndex, activeIndex = _e === void 0 ? null : _e, _f = _b.onNavigate, onNavigate = _f === void 0 ? noop : _f, _g = _b.onChange, onChange = _g === void 0 ? noop : _g;
61
- return {
62
- reference: {
63
- onKeyDown: function (e) {
64
- if (!enabled || !Array.isArray(value)) {
65
- return;
66
- }
67
- if (e.key === 'ArrowLeft') {
68
- if (activeIndex !== null) {
69
- onNavigate(Math.max(0, activeIndex - 1));
70
- }
71
- else if (value.length > 0) {
72
- onNavigate(value.length - 1);
73
- }
74
- }
75
- else if (e.key === 'ArrowRight') {
76
- if (activeIndex !== null) {
77
- if (activeIndex === value.length - 1) {
78
- onNavigate(null);
79
- }
80
- else {
81
- onNavigate(activeIndex + 1);
82
- }
83
- }
84
- }
85
- else if (e.key === 'Backspace') {
86
- if (!e.repeat) {
87
- if (activeIndex !== null) {
88
- var nextVal = value.filter(function (_, i) { return i !== activeIndex; });
89
- onChange(nextVal);
90
- if (activeIndex >= nextVal.length) {
91
- onNavigate(null);
92
- }
93
- }
94
- else if (value.length > 0) {
95
- onChange(value.filter(function (_, i) { return i !== value.length - 1; }));
96
- }
97
- }
98
- }
99
- },
100
- },
101
- };
102
- }
103
- function useKeyboardSelection(context, _a) {
104
- var _b = _a === void 0 ? {} : _a, _c = _b.enabled, enabled = _c === void 0 ? true : _c, _d = _b.onSelect, onSelect = _d === void 0 ? function () { } : _d;
105
- function onKeyDown(e) {
106
- if (!enabled) {
107
- return;
108
- }
109
- if (e.key === 'Enter') {
110
- onSelect();
111
- }
112
- }
113
- return {
114
- reference: {
115
- onKeyDown: onKeyDown,
116
- },
117
- floating: {
118
- onKeyDown: onKeyDown,
119
- },
120
- };
55
+ return str1.toLowerCase().includes(str2.toLowerCase());
121
56
  }
122
- export function useSuperSelect(_a) {
123
- var _b = _a.block, block = _b === void 0 ? false : _b, customComponents = _a.components, defaultValue = _a.defaultValue, _c = _a.disabled, disabled = _c === void 0 ? false : _c, _d = _a.draggable, draggable = _d === void 0 ? false : _d, _e = _a.emptyMessage, emptyMessage = _e === void 0 ? 'No results' : _e, error = _a.error, footer = _a.footer, _f = _a.getOptionGroup, getOptionGroup = _f === void 0 ? defaultGetOptionGroup : _f, _g = _a.getOptionIsBatch, getOptionIsBatch = _g === void 0 ? defaultGetOptionIsBatch : _g, _h = _a.getOptionIsDisabled, getOptionIsDisabled = _h === void 0 ? defaultGetOptionIsDisabled : _h, _j = _a.getOptionLabel, getOptionLabel = _j === void 0 ? defaultGetOptionLabel : _j, _k = _a.getOptionValue, getOptionValue = _k === void 0 ? defaultGetOptionValue : _k, _l = _a.onScrollBottom, onScrollBottom = _l === void 0 ? noop : _l, _m = _a.onOpenChange, onOpenChange = _m === void 0 ? noop : _m, header = _a.header, _o = _a.loading, loading = _o === void 0 ? false : _o, _p = _a.multiple, multiple = _p === void 0 ? false : _p, onChange = _a.onChange, onManualSort = _a.onManualSort, _q = _a.options, sourceOptions = _q === void 0 ? [] : _q, placeholder = _a.placeholder, _r = _a.preset, preset = _r === void 0 ? '' : _r, presetProps = _a.presetProps, _s = _a.search, search = _s === void 0 ? true : _s, _t = _a.selectionStyle, selectionStyle = _t === void 0 ? 'highlight' : _t, _u = _a.setOptionGroup, setOptionGroup = _u === void 0 ? defaultSetOptionGroup : _u, _v = _a.sort, sort = _v === void 0 ? true : _v, _w = _a.tabIndex, tabIndex = _w === void 0 ? 0 : _w, value_ = _a.value;
124
- React.useEffect(function () {
125
- if (!draggable) {
126
- return;
127
- }
128
- var isUsingDefaultGetter = getOptionGroup === defaultGetOptionGroup;
129
- var isUsingDefaultSetter = setOptionGroup === defaultSetOptionGroup;
130
- if ((isUsingDefaultGetter && !isUsingDefaultSetter) ||
131
- (!isUsingDefaultGetter && isUsingDefaultSetter)) {
132
- console.warn("SuperSelect: Using potentially conflicting \"getOptionGroup\" and \"setOptionGroup\" implementations.\n Group reassignment after drag-and-drop operation might be broken.");
133
- }
134
- }, [draggable, getOptionGroup, setOptionGroup]);
135
- var i18n = useI18nContext();
136
- var initialValue = defaultValue !== null && defaultValue !== void 0 ? defaultValue : (multiple ? [] : null);
137
- var _x = React.useState(initialValue), val = _x[0], setVal = _x[1];
138
- var value = value_ !== undefined ? value_ : val;
139
- function setValue(v) {
140
- if (!value_) {
141
- setVal(v);
142
- }
143
- if (onChange) {
144
- onChange(v);
145
- }
146
- }
147
- var navigationList = React.useRef([]);
148
- var virtuoso = React.useRef(null);
149
- var searchRef = React.useRef(null);
150
- var overlayId = useId(); // TODO use React 18 useId
151
- var listId = useId(); // TODO use React 18 useId
152
- var _y = React.useState(false), open = _y[0], setOpen = _y[1];
153
- var _z = React.useState(false), pointer = _z[0], setPointer = _z[1];
154
- var _0 = React.useState(248), width = _0[0], setWidth = _0[1];
155
- var _1 = React.useState(248), maxHeight = _1[0], setMaxHeight = _1[1];
156
- var _2 = React.useState(0), listHeight = _2[0], setListHeight = _2[1];
157
- var _3 = React.useState(0), searchHeight = _3[0], setSearchHeight = _3[1];
158
- var _4 = React.useState(0), footerHeight = _4[0], setFooterHeight = _4[1];
159
- var listContainerHeight = Math.min(maxHeight - searchHeight - footerHeight + listContainerVerticalPadding, listHeight + listContainerVerticalPadding);
160
- var _5 = React.useState(''), searchValue = _5[0], setSearchValue_ = _5[1];
161
- var setSearchValue = debounce(setSearchValue_, 250); // TODO use React 18 useDeferredValue
162
- var _6 = React.useState(null), activeMenuIndex = _6[0], setActiveMenuIndex = _6[1];
163
- var _7 = React.useState(null), activeTokenIndex = _7[0], setActiveTokenIndex = _7[1];
164
- var components = __assign(__assign({}, defaultComponents), (customComponents || {}));
165
- // TODO #memogetters: consider having getOption... getter functions memoized by consumers
166
- // Until then, exclude these callbacks from effect and memo dependencies
167
- var sortOptions = React.useMemo(function () { return getOptionsSortingAlgorithm({ getOptionIsBatch: getOptionIsBatch, getOptionLabel: getOptionLabel }); },
168
- // skip `getOptionIsBatch` and `getOptionLabel`
169
- []);
170
- var formatBatchOption = React.useMemo(function () {
171
- return getBatchOptionFormatter({
172
- value: value,
173
- multiple: multiple,
174
- getOptionIsBatch: getOptionIsBatch,
175
- getOptionValue: getOptionValue,
176
- });
177
- },
178
- // skip `getOptionIsBatch` and `getOptionValue`, refer to TODO #memogetters
179
- [value, multiple]);
180
- // collect groups, sort them and populate them with options, and sort the options inside the groups
181
- var enforceOptionsSortingOrder = React.useCallback(function groupAndSort(opts) {
182
- var _a = collectGroupsInOrderOfOccurrence(opts, getOptionGroup), groups = _a.groups, groupedOptions = _a.groupedOptions;
183
- if (getIsAllOptionsUngrouped(groups)) {
184
- return opts.sort(sortOptions);
185
- }
186
- return Object.entries(groupedOptions)
187
- .sort(function (_a, _b) {
188
- var groupA = _a[0];
189
- var groupB = _b[0];
190
- return sortOptgroups(groupA, groupB);
191
- })
192
- .flatMap(function (_a) {
193
- var groupName = _a[0], groupOptions = _a[1];
194
- return createOptgroup(groupName, groupOptions.sort(sortOptions));
195
- });
196
- },
197
- // skip `getOptionGroup`, refer to TODO #memogetters
198
- [sortOptions]);
199
- // collect groups and populate them with options
200
- var deriveOptionsSortingOrder = React.useCallback(function (opts) {
201
- var _a = collectGroupsInOrderOfOccurrence(opts, getOptionGroup), groups = _a.groups, groupedOptions = _a.groupedOptions;
202
- if (getIsAllOptionsUngrouped(groups)) {
203
- return opts;
57
+ function useTokenNavigation(context) {
58
+ var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
59
+ _ref$enabled = _ref.enabled,
60
+ enabled = _ref$enabled === void 0 ? true : _ref$enabled,
61
+ _ref$value = _ref.value,
62
+ value = _ref$value === void 0 ? [] : _ref$value,
63
+ _ref$activeIndex = _ref.activeIndex,
64
+ activeIndex = _ref$activeIndex === void 0 ? null : _ref$activeIndex,
65
+ _ref$onNavigate = _ref.onNavigate,
66
+ onNavigate = _ref$onNavigate === void 0 ? noop : _ref$onNavigate,
67
+ _ref$onChange = _ref.onChange,
68
+ onChange = _ref$onChange === void 0 ? noop : _ref$onChange;
69
+ return {
70
+ reference: {
71
+ onKeyDown: function onKeyDown(e) {
72
+ if (!enabled || !Array.isArray(value)) {
73
+ return;
204
74
  }
205
- // display optgroups in the order of occurrence, as they are considered pre-sorted
206
- return groups.flatMap(function (group) {
207
- var groupOptions = groupedOptions[group];
208
- return createOptgroup(group, groupOptions);
209
- });
210
- },
211
- // skip `getOptionGroup`, refer to TODO #memogetters
212
- []);
213
- var groupAndSortAlgorithm = React.useMemo(function () { return (sort ? enforceOptionsSortingOrder : deriveOptionsSortingOrder); }, [sort, enforceOptionsSortingOrder, deriveOptionsSortingOrder]);
214
- var options = React.useMemo(function () {
215
- var queried = searchValue
216
- ? sourceOptions.filter(function (opt) {
217
- return stringContains(getOptionLabel(opt), searchValue);
218
- })
219
- : __spreadArray([], sourceOptions, true); // make a copy of source options to prevent the mutation when sorting
220
- return groupAndSortAlgorithm(queried).map(formatBatchOption);
221
- },
222
- // skip `getOptionLabel`, refer to TODO #memogetters
223
- [groupAndSortAlgorithm, formatBatchOption, searchValue, sourceOptions]);
224
- var _8 = React.useState([]), draggableOptions = _8[0], setDraggableOptions = _8[1];
225
- React.useEffect(function () {
226
- if (!draggable) {
227
- return;
228
- }
229
- // make a copy of source options to prevent the mutation when sorting
230
- var opts = groupAndSortAlgorithm(sourceOptions.map(function (opt) {
231
- var _a;
232
- return (__assign(__assign({}, opt), (_a = {}, _a[draggableOptionIdSymbol] = ulid(), _a)));
233
- }));
234
- setDraggableOptions(opts);
235
- },
236
- // in draggable mode, sourceOptions must be memoized, othewise reorder will not work
237
- [draggable, sourceOptions, groupAndSortAlgorithm]);
238
- var queriedDraggableOptions = React.useMemo(function () {
239
- if (!draggable) {
240
- return [];
241
- }
242
- var queried = searchValue
243
- ? removeEmptyOptGroups(draggableOptions.filter(function (opt) {
244
- if (!getOptionIsOptgroup(opt)) {
245
- return stringContains(getOptionLabel(opt), searchValue);
246
- }
247
- return true;
248
- }))
249
- : draggableOptions;
250
- return queried.map(formatBatchOption);
251
- },
252
- // skip `getOptionLabel`, refer to TODO #memogetters
253
- [draggable, draggableOptions, searchValue, formatBatchOption]);
254
- var groupIndices = React.useMemo(function () {
255
- return options.reduce(function (acc, opt, i) {
256
- if (getOptionIsOptgroup(opt)) {
257
- acc.push(i);
258
- }
259
- return acc;
260
- }, []);
261
- }, [options]);
262
- var selectedIndex = React.useMemo(function () {
263
- return options.findIndex(function (option) { return isSelectableOption(option) && getOptionValue(option) === value; });
264
- }, [options, value]);
265
- var selectedOption = React.useMemo(function () {
266
- var val = Array.isArray(value) ? value[0] : value;
267
- return options.find(function (option) { return getOptionValue(option) === val; });
268
- }, [options, value]);
269
- var selectedLabel = React.useMemo(function () {
270
- return selectedOption ? getOptionLabel(selectedOption) : '';
271
- }, [selectedOption]);
272
- function isSelectableOption(o) {
273
- return !getOptionIsOptgroup(o) && !getOptionIsDisabled(o);
274
- }
275
- function getFirstSelectableOptionIndex() {
276
- return options.findIndex(isSelectableOption);
277
- }
278
- function onSelect(option) {
279
- if (getOptionIsDisabled(option)) {
280
- return;
281
- }
282
- var optionValue = getOptionValue(option);
283
- if (isMultiple(multiple, value)) {
284
- if (Array.isArray(optionValue)) {
285
- setValue(uniq(__spreadArray(__spreadArray([], value, true), optionValue, true)));
75
+ if (e.key === 'ArrowLeft') {
76
+ if (activeIndex !== null) {
77
+ onNavigate(Math.max(0, activeIndex - 1));
78
+ } else if (value.length > 0) {
79
+ onNavigate(value.length - 1);
80
+ }
81
+ } else if (e.key === 'ArrowRight') {
82
+ if (activeIndex !== null) {
83
+ if (activeIndex === value.length - 1) {
84
+ onNavigate(null);
85
+ } else {
86
+ onNavigate(activeIndex + 1);
286
87
  }
287
- else {
288
- setValue(value.includes(optionValue)
289
- ? value.filter(function (val) { return val !== optionValue; })
290
- : __spreadArray(__spreadArray([], value, true), [optionValue], false));
88
+ }
89
+ } else if (e.key === 'Backspace') {
90
+ if (!e.repeat) {
91
+ if (activeIndex !== null) {
92
+ var nextVal = value.filter(function (_, i) {
93
+ return i !== activeIndex;
94
+ });
95
+ onChange(nextVal);
96
+ if (activeIndex >= nextVal.length) {
97
+ onNavigate(null);
98
+ }
99
+ } else if (value.length > 0) {
100
+ onChange(value.filter(function (_, i) {
101
+ return i !== value.length - 1;
102
+ }));
291
103
  }
104
+ }
292
105
  }
293
- else {
294
- setValue(optionValue);
295
- }
106
+ }
296
107
  }
297
- function onKeyboardSelect() {
298
- if (activeMenuIndex !== null) {
299
- var option = options[activeMenuIndex];
300
- if (option) {
301
- onSelect(option);
302
- }
303
- }
108
+ };
109
+ }
110
+ function useKeyboardSelection(context) {
111
+ var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
112
+ _ref2$enabled = _ref2.enabled,
113
+ enabled = _ref2$enabled === void 0 ? true : _ref2$enabled,
114
+ _ref2$onSelect = _ref2.onSelect,
115
+ onSelect = _ref2$onSelect === void 0 ? function () {} : _ref2$onSelect;
116
+ function onKeyDown(e) {
117
+ if (!enabled) {
118
+ return;
304
119
  }
305
- function getOptionIsSelected(option) {
306
- return Array.isArray(value)
307
- ? value.includes(getOptionValue(option))
308
- : value === getOptionValue(option);
120
+ if (e.key === 'Enter') {
121
+ onSelect();
309
122
  }
310
- function isEmpty() {
311
- return Array.isArray(value) ? value.length === 0 : value === null;
123
+ }
124
+ return {
125
+ reference: {
126
+ onKeyDown: onKeyDown
127
+ },
128
+ floating: {
129
+ onKeyDown: onKeyDown
312
130
  }
313
- var boundWidthRef = React.useRef(open);
314
- React.useEffect(function () {
315
- boundWidthRef.current = open;
316
- }, [open]);
317
- var floating = useFloating({
318
- open: open,
319
- onOpenChange: function (open) {
320
- setOpen(open);
321
- onOpenChange(open);
322
- },
323
- whileElementsMounted: autoUpdate,
324
- strategy: 'fixed',
325
- middleware: [
326
- offset(2),
327
- flip(),
328
- size({
329
- apply: function (_a) {
330
- var availableHeight = _a.availableHeight, elements = _a.elements;
331
- if (boundWidthRef.current) {
332
- boundWidthRef.current = false;
333
- setWidth(elements.reference.getBoundingClientRect().width);
334
- }
335
- setMaxHeight(availableHeight);
336
- },
337
- padding: 10,
338
- }),
339
- ],
340
- });
341
- var zIndex = useZIndexContext().value;
342
- var _9 = useInteractions([
343
- useClick(floating.context, {
344
- enabled: !disabled,
345
- keyboardHandlers: false,
346
- }),
347
- useDismiss(floating.context, {
348
- enabled: !disabled,
349
- }),
350
- useListNavigation(floating.context, {
351
- activeIndex: activeMenuIndex,
352
- disabledIndices: groupIndices,
353
- enabled: !disabled,
354
- listRef: navigationList,
355
- loop: true,
356
- onNavigate: function (i) { return setActiveMenuIndex(function () { return i; }); },
357
- selectedIndex: selectedIndex,
358
- virtual: true,
359
- }),
360
- useTokenNavigation(floating.context, {
361
- activeIndex: activeTokenIndex,
362
- enabled: !disabled && multiple && searchValue === '',
363
- onChange: setValue,
364
- onNavigate: function (i) { return setActiveTokenIndex(function () { return i; }); },
365
- value: value,
366
- }),
367
- useKeyboardSelection(floating.context, {
368
- enabled: !disabled,
369
- onSelect: onKeyboardSelect,
370
- }),
371
- {
372
- reference: {
373
- $block: block,
374
- $disabled: disabled,
375
- $error: error,
376
- $hasClearIcon: !disabled && !loading,
377
- $loading: loading,
378
- $multiple: multiple,
379
- $open: open,
380
- $placeholder: !selectedLabel,
381
- 'aria-controls': search ? overlayId : listId,
382
- 'aria-expanded': open,
383
- 'aria-haspopup': search ? 'dialog' : 'listbox',
384
- onKeyDown: function () {
385
- setPointer(false);
386
- },
387
- role: 'combobox',
388
- search: search,
389
- tabIndex: disabled ? -1 : tabIndex,
390
- },
391
- floating: {
392
- role: search ? 'dialog' : 'none',
393
- id: overlayId,
394
- onKeyDown: function () {
395
- setPointer(false);
396
- },
397
- onPointerMove: function () {
398
- setPointer(true);
399
- },
400
- style: {
401
- position: floating.strategy,
402
- left: floating.x || 0,
403
- top: floating.y || 0,
404
- width: width,
405
- maxHeight: maxHeight,
406
- zIndex: zIndex,
407
- },
408
- },
409
- },
410
- ]), getReferenceProps = _9.getReferenceProps, getFloatingProps = _9.getFloatingProps, getItemProps = _9.getItemProps;
411
- function getLabelProps() {
412
- return {
413
- $hoverable: false,
414
- };
131
+ };
132
+ }
133
+ export function useSuperSelect(_ref3) {
134
+ var _ref3$block = _ref3.block,
135
+ block = _ref3$block === void 0 ? false : _ref3$block,
136
+ customComponents = _ref3.components,
137
+ defaultValue = _ref3.defaultValue,
138
+ _ref3$disabled = _ref3.disabled,
139
+ disabled = _ref3$disabled === void 0 ? false : _ref3$disabled,
140
+ _ref3$draggable = _ref3.draggable,
141
+ draggable = _ref3$draggable === void 0 ? false : _ref3$draggable,
142
+ _ref3$emptyMessage = _ref3.emptyMessage,
143
+ emptyMessage = _ref3$emptyMessage === void 0 ? 'No results' : _ref3$emptyMessage,
144
+ error = _ref3.error,
145
+ footer = _ref3.footer,
146
+ _ref3$getOptionGroup = _ref3.getOptionGroup,
147
+ getOptionGroup = _ref3$getOptionGroup === void 0 ? defaultGetOptionGroup : _ref3$getOptionGroup,
148
+ _ref3$getOptionIsBatc = _ref3.getOptionIsBatch,
149
+ getOptionIsBatch = _ref3$getOptionIsBatc === void 0 ? defaultGetOptionIsBatch : _ref3$getOptionIsBatc,
150
+ _ref3$getOptionIsDisa = _ref3.getOptionIsDisabled,
151
+ getOptionIsDisabled = _ref3$getOptionIsDisa === void 0 ? defaultGetOptionIsDisabled : _ref3$getOptionIsDisa,
152
+ _ref3$getOptionLabel = _ref3.getOptionLabel,
153
+ getOptionLabel = _ref3$getOptionLabel === void 0 ? defaultGetOptionLabel : _ref3$getOptionLabel,
154
+ _ref3$getOptionValue = _ref3.getOptionValue,
155
+ getOptionValue = _ref3$getOptionValue === void 0 ? defaultGetOptionValue : _ref3$getOptionValue,
156
+ _ref3$onScrollBottom = _ref3.onScrollBottom,
157
+ onScrollBottom = _ref3$onScrollBottom === void 0 ? noop : _ref3$onScrollBottom,
158
+ _ref3$onOpenChange = _ref3.onOpenChange,
159
+ _onOpenChange = _ref3$onOpenChange === void 0 ? noop : _ref3$onOpenChange,
160
+ header = _ref3.header,
161
+ _ref3$loading = _ref3.loading,
162
+ loading = _ref3$loading === void 0 ? false : _ref3$loading,
163
+ _ref3$multiple = _ref3.multiple,
164
+ multiple = _ref3$multiple === void 0 ? false : _ref3$multiple,
165
+ onChange = _ref3.onChange,
166
+ onManualSort = _ref3.onManualSort,
167
+ _ref3$options = _ref3.options,
168
+ sourceOptions = _ref3$options === void 0 ? [] : _ref3$options,
169
+ placeholder = _ref3.placeholder,
170
+ _ref3$preset = _ref3.preset,
171
+ preset = _ref3$preset === void 0 ? '' : _ref3$preset,
172
+ presetProps = _ref3.presetProps,
173
+ _ref3$search = _ref3.search,
174
+ search = _ref3$search === void 0 ? true : _ref3$search,
175
+ _ref3$selectionStyle = _ref3.selectionStyle,
176
+ selectionStyle = _ref3$selectionStyle === void 0 ? 'highlight' : _ref3$selectionStyle,
177
+ _ref3$setOptionGroup = _ref3.setOptionGroup,
178
+ setOptionGroup = _ref3$setOptionGroup === void 0 ? defaultSetOptionGroup : _ref3$setOptionGroup,
179
+ _ref3$sort = _ref3.sort,
180
+ sort = _ref3$sort === void 0 ? true : _ref3$sort,
181
+ _ref3$tabIndex = _ref3.tabIndex,
182
+ tabIndex = _ref3$tabIndex === void 0 ? 0 : _ref3$tabIndex,
183
+ value_ = _ref3.value;
184
+ React.useEffect(function () {
185
+ if (!draggable) {
186
+ return;
415
187
  }
416
- function getMultiInputProps() {
417
- return {
418
- ref: searchRef,
419
- placeholder: isEmpty() ? placeholder : '',
420
- disabled: disabled,
421
- 'aria-controls': listId,
422
- onKeyDown: function (e) {
423
- var _a;
424
- if (e.key === 'Tab') {
425
- if (open) {
426
- e.preventDefault();
427
- e.stopPropagation();
428
- (_a = floating.refs.floating.current) === null || _a === void 0 ? void 0 : _a.focus();
429
- }
430
- }
431
- },
432
- onChange: function (e) {
433
- setSearchValue(e.currentTarget.value);
434
- setActiveTokenIndex(null);
435
- },
436
- style: {
437
- opacity: activeTokenIndex === null ? 1 : 0,
438
- },
439
- };
188
+ var isUsingDefaultGetter = getOptionGroup === defaultGetOptionGroup;
189
+ var isUsingDefaultSetter = setOptionGroup === defaultSetOptionGroup;
190
+ if (isUsingDefaultGetter && !isUsingDefaultSetter || !isUsingDefaultGetter && isUsingDefaultSetter) {
191
+ console.warn("SuperSelect: Using potentially conflicting \"getOptionGroup\" and \"setOptionGroup\" implementations.\n Group reassignment after drag-and-drop operation might be broken.");
440
192
  }
441
- function getMultiValueProps(index) {
442
- return {
443
- onClick: function (e) {
444
- // prevent the menu from closing
445
- e.stopPropagation();
446
- if (isMultiple(multiple, value)) {
447
- setValue(value.filter(function (_, i) { return i !== index; }));
448
- }
449
- },
450
- };
193
+ }, [draggable, getOptionGroup, setOptionGroup]);
194
+ var i18n = useI18nContext();
195
+ var initialValue = defaultValue !== null && defaultValue !== void 0 ? defaultValue : multiple ? [] : null;
196
+ var _React$useState = React.useState(initialValue),
197
+ _React$useState2 = _slicedToArray(_React$useState, 2),
198
+ val = _React$useState2[0],
199
+ setVal = _React$useState2[1];
200
+ var value = value_ !== undefined ? value_ : val;
201
+ function setValue(v) {
202
+ if (!value_) {
203
+ setVal(v);
451
204
  }
452
- function getSearchContainerProps() {
453
- return {
454
- ref: function (el) {
455
- var _a;
456
- setSearchHeight((_a = el === null || el === void 0 ? void 0 : el.clientHeight) !== null && _a !== void 0 ? _a : 0);
457
- },
458
- };
205
+ if (onChange) {
206
+ onChange(v);
459
207
  }
460
- function getSearchProps() {
461
- return {
462
- 'aria-controls': listId,
463
- onChange: function (value) {
464
- setSearchValue(value);
465
- setActiveTokenIndex(null);
466
- },
467
- placeholder: i18n.t('core.select.search'),
468
- };
208
+ }
209
+ var navigationList = React.useRef([]);
210
+ var virtuoso = React.useRef(null);
211
+ var searchRef = React.useRef(null);
212
+ var overlayId = useId(); // TODO use React 18 useId
213
+ var listId = useId(); // TODO use React 18 useId
214
+
215
+ var _React$useState3 = React.useState(false),
216
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
217
+ open = _React$useState4[0],
218
+ setOpen = _React$useState4[1];
219
+ var _React$useState5 = React.useState(false),
220
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
221
+ pointer = _React$useState6[0],
222
+ setPointer = _React$useState6[1];
223
+ var _React$useState7 = React.useState(248),
224
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
225
+ width = _React$useState8[0],
226
+ setWidth = _React$useState8[1];
227
+ var _React$useState9 = React.useState(248),
228
+ _React$useState10 = _slicedToArray(_React$useState9, 2),
229
+ maxHeight = _React$useState10[0],
230
+ setMaxHeight = _React$useState10[1];
231
+ var _React$useState11 = React.useState(0),
232
+ _React$useState12 = _slicedToArray(_React$useState11, 2),
233
+ listHeight = _React$useState12[0],
234
+ setListHeight = _React$useState12[1];
235
+ var _React$useState13 = React.useState(0),
236
+ _React$useState14 = _slicedToArray(_React$useState13, 2),
237
+ searchHeight = _React$useState14[0],
238
+ setSearchHeight = _React$useState14[1];
239
+ var _React$useState15 = React.useState(0),
240
+ _React$useState16 = _slicedToArray(_React$useState15, 2),
241
+ footerHeight = _React$useState16[0],
242
+ setFooterHeight = _React$useState16[1];
243
+ var listContainerHeight = Math.min(maxHeight - searchHeight - footerHeight + listContainerVerticalPadding, listHeight + listContainerVerticalPadding);
244
+ var _React$useState17 = React.useState(''),
245
+ _React$useState18 = _slicedToArray(_React$useState17, 2),
246
+ searchValue = _React$useState18[0],
247
+ setSearchValue_ = _React$useState18[1];
248
+ var setSearchValue = debounce(setSearchValue_, 250); // TODO use React 18 useDeferredValue
249
+
250
+ var _React$useState19 = React.useState(null),
251
+ _React$useState20 = _slicedToArray(_React$useState19, 2),
252
+ activeMenuIndex = _React$useState20[0],
253
+ setActiveMenuIndex = _React$useState20[1];
254
+ var _React$useState21 = React.useState(null),
255
+ _React$useState22 = _slicedToArray(_React$useState21, 2),
256
+ activeTokenIndex = _React$useState22[0],
257
+ setActiveTokenIndex = _React$useState22[1];
258
+ var components = _objectSpread(_objectSpread({}, defaultComponents), customComponents || {});
259
+
260
+ // TODO #memogetters: consider having getOption... getter functions memoized by consumers
261
+ // Until then, exclude these callbacks from effect and memo dependencies
262
+ var sortOptions = React.useMemo(function () {
263
+ return getOptionsSortingAlgorithm({
264
+ getOptionIsBatch: getOptionIsBatch,
265
+ getOptionLabel: getOptionLabel
266
+ });
267
+ },
268
+ // skip `getOptionIsBatch` and `getOptionLabel`
269
+ []);
270
+ var formatBatchOption = React.useMemo(function () {
271
+ return getBatchOptionFormatter({
272
+ value: value,
273
+ multiple: multiple,
274
+ getOptionIsBatch: getOptionIsBatch,
275
+ getOptionValue: getOptionValue
276
+ });
277
+ },
278
+ // skip `getOptionIsBatch` and `getOptionValue`, refer to TODO #memogetters
279
+ [value, multiple]);
280
+
281
+ // collect groups, sort them and populate them with options, and sort the options inside the groups
282
+ var enforceOptionsSortingOrder = React.useCallback(function groupAndSort(opts) {
283
+ var _collectGroupsInOrder = collectGroupsInOrderOfOccurrence(opts, getOptionGroup),
284
+ groups = _collectGroupsInOrder.groups,
285
+ groupedOptions = _collectGroupsInOrder.groupedOptions;
286
+ if (getIsAllOptionsUngrouped(groups)) {
287
+ return opts.sort(sortOptions);
469
288
  }
470
- function getHeaderProps() {
471
- return {
472
- ref: function (el) { },
473
- };
289
+ return Object.entries(groupedOptions).sort(function (_ref4, _ref5) {
290
+ var _ref6 = _slicedToArray(_ref4, 1),
291
+ groupA = _ref6[0];
292
+ var _ref7 = _slicedToArray(_ref5, 1),
293
+ groupB = _ref7[0];
294
+ return sortOptgroups(groupA, groupB);
295
+ }).flatMap(function (_ref8) {
296
+ var _ref9 = _slicedToArray(_ref8, 2),
297
+ groupName = _ref9[0],
298
+ groupOptions = _ref9[1];
299
+ return createOptgroup(groupName, groupOptions.sort(sortOptions));
300
+ });
301
+ },
302
+ // skip `getOptionGroup`, refer to TODO #memogetters
303
+ [sortOptions]);
304
+
305
+ // collect groups and populate them with options
306
+ var deriveOptionsSortingOrder = React.useCallback(function (opts) {
307
+ var _collectGroupsInOrder2 = collectGroupsInOrderOfOccurrence(opts, getOptionGroup),
308
+ groups = _collectGroupsInOrder2.groups,
309
+ groupedOptions = _collectGroupsInOrder2.groupedOptions;
310
+ if (getIsAllOptionsUngrouped(groups)) {
311
+ return opts;
474
312
  }
475
- function getFooterProps() {
476
- return {
477
- ref: function (el) {
478
- var _a;
479
- setFooterHeight((_a = el === null || el === void 0 ? void 0 : el.clientHeight) !== null && _a !== void 0 ? _a : 0);
480
- },
481
- onKeyDown: function (e) {
482
- if (e.key !== 'Escape') {
483
- e.stopPropagation();
484
- }
485
- },
486
- };
313
+
314
+ // display optgroups in the order of occurrence, as they are considered pre-sorted
315
+ return groups.flatMap(function (group) {
316
+ var groupOptions = groupedOptions[group];
317
+ return createOptgroup(group, groupOptions);
318
+ });
319
+ },
320
+ // skip `getOptionGroup`, refer to TODO #memogetters
321
+ []);
322
+ var groupAndSortAlgorithm = React.useMemo(function () {
323
+ return sort ? enforceOptionsSortingOrder : deriveOptionsSortingOrder;
324
+ }, [sort, enforceOptionsSortingOrder, deriveOptionsSortingOrder]);
325
+ var options = React.useMemo(function () {
326
+ var queried = searchValue ? sourceOptions.filter(function (opt) {
327
+ return stringContains(getOptionLabel(opt), searchValue);
328
+ }) : _toConsumableArray(sourceOptions); // make a copy of source options to prevent the mutation when sorting
329
+
330
+ return groupAndSortAlgorithm(queried).map(formatBatchOption);
331
+ },
332
+ // skip `getOptionLabel`, refer to TODO #memogetters
333
+ [groupAndSortAlgorithm, formatBatchOption, searchValue, sourceOptions]);
334
+ var _React$useState23 = React.useState([]),
335
+ _React$useState24 = _slicedToArray(_React$useState23, 2),
336
+ draggableOptions = _React$useState24[0],
337
+ setDraggableOptions = _React$useState24[1];
338
+ React.useEffect(function () {
339
+ if (!draggable) {
340
+ return;
487
341
  }
488
- function getEmptyMessageProps() {
489
- return {
490
- emptyMessage: emptyMessage,
491
- };
342
+ // make a copy of source options to prevent the mutation when sorting
343
+ var opts = groupAndSortAlgorithm(sourceOptions.map(function (opt) {
344
+ return _objectSpread(_objectSpread({}, opt), {}, _defineProperty({}, draggableOptionIdSymbol, ulid()));
345
+ }));
346
+ setDraggableOptions(opts);
347
+ },
348
+ // in draggable mode, sourceOptions must be memoized, othewise reorder will not work
349
+ [draggable, sourceOptions, groupAndSortAlgorithm]);
350
+ var queriedDraggableOptions = React.useMemo(function () {
351
+ if (!draggable) {
352
+ return [];
492
353
  }
493
- function getClearProps() {
494
- return {
495
- 'aria-hidden': true,
496
- 'aria-label': i18n.t('core.select.clear'),
497
- onClick: function (e) {
498
- // prevent the menu from closing
499
- e.stopPropagation();
500
- setActiveTokenIndex(null);
501
- setValue(multiple ? [] : null);
502
- setOpen(true);
503
- },
504
- };
354
+ var queried = searchValue ? removeEmptyOptGroups(draggableOptions.filter(function (opt) {
355
+ if (!getOptionIsOptgroup(opt)) {
356
+ return stringContains(getOptionLabel(opt), searchValue);
357
+ }
358
+ return true;
359
+ })) : draggableOptions;
360
+ return queried.map(formatBatchOption);
361
+ },
362
+ // skip `getOptionLabel`, refer to TODO #memogetters
363
+ [draggable, draggableOptions, searchValue, formatBatchOption]);
364
+ var groupIndices = React.useMemo(function () {
365
+ return options.reduce(function (acc, opt, i) {
366
+ if (getOptionIsOptgroup(opt)) {
367
+ acc.push(i);
368
+ }
369
+ return acc;
370
+ }, []);
371
+ }, [options]);
372
+ var selectedIndex = React.useMemo(function () {
373
+ return options.findIndex(function (option) {
374
+ return isSelectableOption(option) && getOptionValue(option) === value;
375
+ });
376
+ }, [options, value]);
377
+ var selectedOption = React.useMemo(function () {
378
+ var val = Array.isArray(value) ? value[0] : value;
379
+ return options.find(function (option) {
380
+ return getOptionValue(option) === val;
381
+ });
382
+ }, [options, value]);
383
+ var selectedLabel = React.useMemo(function () {
384
+ return selectedOption ? getOptionLabel(selectedOption) : '';
385
+ }, [selectedOption]);
386
+ function isSelectableOption(o) {
387
+ return !getOptionIsOptgroup(o) && !getOptionIsDisabled(o);
388
+ }
389
+ function getFirstSelectableOptionIndex() {
390
+ return options.findIndex(isSelectableOption);
391
+ }
392
+ function onSelect(option) {
393
+ if (getOptionIsDisabled(option)) {
394
+ return;
505
395
  }
506
- function getMenuProps() {
507
- return {
508
- scrollable: false,
509
- style: {
510
- height: listContainerHeight,
511
- },
512
- };
396
+ var optionValue = getOptionValue(option);
397
+ if (isMultiple(multiple, value)) {
398
+ if (Array.isArray(optionValue)) {
399
+ setValue(uniq([].concat(_toConsumableArray(value), _toConsumableArray(optionValue))));
400
+ } else {
401
+ setValue(value.includes(optionValue) ? value.filter(function (val) {
402
+ return val !== optionValue;
403
+ }) : [].concat(_toConsumableArray(value), [optionValue]));
404
+ }
405
+ } else {
406
+ setValue(optionValue);
513
407
  }
514
- function getVirtuosoProps() {
515
- var atBottomStateChange = function (atBottom) {
516
- if (atBottom) {
517
- onScrollBottom();
518
- }
519
- };
520
- return {
521
- role: 'listbox',
522
- id: overlayId,
523
- data: draggable ? queriedDraggableOptions : options,
524
- components: {
525
- Item: components === null || components === void 0 ? void 0 : components.Item, // TODO fix type
526
- },
527
- initialTopMostItemIndex: selectedIndex >= 0 ? selectedIndex : 0,
528
- style: {
529
- flex: '1 1 auto',
530
- },
531
- tabIndex: -1,
532
- totalListHeightChanged: setListHeight,
533
- atBottomStateChange: atBottomStateChange,
534
- };
408
+ }
409
+ function onKeyboardSelect() {
410
+ if (activeMenuIndex !== null) {
411
+ var option = options[activeMenuIndex];
412
+ if (option) {
413
+ onSelect(option);
414
+ }
535
415
  }
536
- var onDragEnd = React.useCallback(function (result) {
537
- if (!result.destination) {
538
- return;
416
+ }
417
+ function getOptionIsSelected(option) {
418
+ return Array.isArray(value) ? value.includes(getOptionValue(option)) : value === getOptionValue(option);
419
+ }
420
+ function isEmpty() {
421
+ return Array.isArray(value) ? value.length === 0 : value === null;
422
+ }
423
+ var boundWidthRef = React.useRef(open);
424
+ React.useEffect(function () {
425
+ boundWidthRef.current = open;
426
+ }, [open]);
427
+ var floating = useFloating({
428
+ open: open,
429
+ onOpenChange: function onOpenChange(open) {
430
+ setOpen(open);
431
+ _onOpenChange(open);
432
+ },
433
+ whileElementsMounted: autoUpdate,
434
+ strategy: 'fixed',
435
+ middleware: [offset(2), flip(), size({
436
+ apply: function apply(_ref10) {
437
+ var availableHeight = _ref10.availableHeight,
438
+ elements = _ref10.elements;
439
+ if (boundWidthRef.current) {
440
+ boundWidthRef.current = false;
441
+ setWidth(elements.reference.getBoundingClientRect().width);
539
442
  }
540
- if (result.source.index === result.destination.index) {
541
- return;
542
- }
543
- var startIndex = result.source.index;
544
- var destinationIndex = result.destination.index;
545
- setDraggableOptions(function (options) {
546
- var _a = reorder(options, startIndex, destinationIndex), nextOptions = _a.nextOptions, prevGroup = _a.prevGroup, nextGroup = _a.nextGroup;
547
- var adjustedOptions = prevGroup !== nextGroup
548
- ? nextOptions.map(function (option, index) {
549
- if (index === destinationIndex) {
550
- return setOptionGroup(option, nextGroup);
551
- }
552
- return option;
553
- })
554
- : nextOptions;
555
- if (typeof onManualSort === 'function') {
556
- setTimeout(function () {
557
- onManualSort(adjustedOptions.filter(function (option) { return !getOptionIsOptgroup(option); }));
558
- }, 0);
559
- }
560
- return adjustedOptions;
443
+ setMaxHeight(availableHeight);
444
+ },
445
+ padding: 10
446
+ })]
447
+ });
448
+ var _useZIndexContext = useZIndexContext(),
449
+ zIndex = _useZIndexContext.value;
450
+ var _useInteractions = useInteractions([useClick(floating.context, {
451
+ enabled: !disabled,
452
+ keyboardHandlers: false
453
+ }), useDismiss(floating.context, {
454
+ enabled: !disabled
455
+ }), useListNavigation(floating.context, {
456
+ activeIndex: activeMenuIndex,
457
+ disabledIndices: groupIndices,
458
+ enabled: !disabled,
459
+ listRef: navigationList,
460
+ loop: true,
461
+ onNavigate: function onNavigate(i) {
462
+ return setActiveMenuIndex(function () {
463
+ return i;
561
464
  });
562
- }, []);
563
- // run effect when the `open` state changes
564
- //
565
- // if it was closed and is now open, reset the highlighted index to be
566
- // the first selectable option
567
- //
568
- // if it was open and is now closed, reset the search value and focused token index
569
- React.useEffect(function () {
570
- if (open) {
571
- setActiveMenuIndex(function () {
572
- return selectedIndex >= 0 ? selectedIndex : getFirstSelectableOptionIndex();
573
- });
574
- }
575
- else {
576
- setSearchValue(function () { return ''; });
577
- setActiveTokenIndex(function () { return null; });
465
+ },
466
+ selectedIndex: selectedIndex,
467
+ virtual: true
468
+ }), useTokenNavigation(floating.context, {
469
+ activeIndex: activeTokenIndex,
470
+ enabled: !disabled && multiple && searchValue === '',
471
+ onChange: setValue,
472
+ onNavigate: function onNavigate(i) {
473
+ return setActiveTokenIndex(function () {
474
+ return i;
475
+ });
476
+ },
477
+ value: value
478
+ }), useKeyboardSelection(floating.context, {
479
+ enabled: !disabled,
480
+ onSelect: onKeyboardSelect
481
+ }), {
482
+ reference: {
483
+ $block: block,
484
+ $disabled: disabled,
485
+ $error: error,
486
+ $hasClearIcon: !disabled && !loading,
487
+ $loading: loading,
488
+ $multiple: multiple,
489
+ $open: open,
490
+ $placeholder: !selectedLabel,
491
+ 'aria-controls': search ? overlayId : listId,
492
+ 'aria-expanded': open,
493
+ 'aria-haspopup': search ? 'dialog' : 'listbox',
494
+ onKeyDown: function onKeyDown() {
495
+ setPointer(false);
496
+ },
497
+ role: 'combobox',
498
+ search: search,
499
+ tabIndex: disabled ? -1 : tabIndex
500
+ },
501
+ // TODO fix type
502
+ floating: {
503
+ role: search ? 'dialog' : 'none',
504
+ id: overlayId,
505
+ onKeyDown: function onKeyDown() {
506
+ setPointer(false);
507
+ },
508
+ onPointerMove: function onPointerMove() {
509
+ setPointer(true);
510
+ },
511
+ style: {
512
+ position: floating.strategy,
513
+ left: floating.x || 0,
514
+ top: floating.y || 0,
515
+ width: width,
516
+ maxHeight: maxHeight,
517
+ zIndex: zIndex
578
518
  }
579
- }, [open]);
580
- // run the effect when user enters a serach value
581
- //
582
- // if the select is currently open then reset highlighted item to be the first
583
- // selectable option
584
- React.useEffect(function () {
585
- if (open) {
586
- setActiveMenuIndex(function () { return getFirstSelectableOptionIndex(); });
519
+ }
520
+ }]),
521
+ getReferenceProps = _useInteractions.getReferenceProps,
522
+ getFloatingProps = _useInteractions.getFloatingProps,
523
+ getItemProps = _useInteractions.getItemProps;
524
+ function getLabelProps() {
525
+ return {
526
+ $hoverable: false
527
+ };
528
+ }
529
+ function getMultiInputProps() {
530
+ return {
531
+ ref: searchRef,
532
+ placeholder: isEmpty() ? placeholder : '',
533
+ disabled: disabled,
534
+ 'aria-controls': listId,
535
+ onKeyDown: function onKeyDown(e) {
536
+ if (e.key === 'Tab') {
537
+ if (open) {
538
+ var _floating$refs$floati;
539
+ e.preventDefault();
540
+ e.stopPropagation();
541
+ (_floating$refs$floati = floating.refs.floating.current) === null || _floating$refs$floati === void 0 ? void 0 : _floating$refs$floati.focus();
542
+ }
587
543
  }
588
- }, [searchValue]);
589
- // when we change the value then close the overlay, but only if we have
590
- // actually selected a value
591
- //
592
- // multiple mode forces the overlay to stay open
593
- React.useEffect(function () {
594
- if (!multiple && value !== null) {
595
- setOpen(function () { return false; });
544
+ },
545
+ onChange: function onChange(e) {
546
+ setSearchValue(e.currentTarget.value);
547
+ setActiveTokenIndex(null);
548
+ },
549
+ style: {
550
+ opacity: activeTokenIndex === null ? 1 : 0
551
+ }
552
+ };
553
+ }
554
+ function getMultiValueProps(index) {
555
+ return {
556
+ onClick: function onClick(e) {
557
+ // prevent the menu from closing
558
+ e.stopPropagation();
559
+ if (isMultiple(multiple, value)) {
560
+ setValue(value.filter(function (_, i) {
561
+ return i !== index;
562
+ }));
596
563
  }
597
- }, [value]);
598
- // recreate the array to hold dom refs when our options change
599
- React.useEffect(function () {
600
- navigationList.current = __spreadArray([], Array(options.length).fill(null), true);
601
- }, [options]);
602
- // scroll virtuoso list activeMenuIndex into view when the index changes
603
- React.useLayoutEffect(function () {
604
- var _a;
605
- if (activeMenuIndex !== null) {
606
- if (!pointer) {
607
- (_a = virtuoso.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView({ index: activeMenuIndex });
608
- }
564
+ }
565
+ };
566
+ }
567
+ function getSearchContainerProps() {
568
+ return {
569
+ ref: function ref(el) {
570
+ var _el$clientHeight;
571
+ setSearchHeight((_el$clientHeight = el === null || el === void 0 ? void 0 : el.clientHeight) !== null && _el$clientHeight !== void 0 ? _el$clientHeight : 0);
572
+ }
573
+ };
574
+ }
575
+ function getSearchProps() {
576
+ return {
577
+ 'aria-controls': listId,
578
+ onChange: function onChange(value) {
579
+ setSearchValue(value);
580
+ setActiveTokenIndex(null);
581
+ },
582
+ placeholder: i18n.t('core.select.search')
583
+ };
584
+ }
585
+ function getHeaderProps() {
586
+ return {
587
+ ref: function ref(el) {}
588
+ };
589
+ }
590
+ function getFooterProps() {
591
+ return {
592
+ ref: function ref(el) {
593
+ var _el$clientHeight2;
594
+ setFooterHeight((_el$clientHeight2 = el === null || el === void 0 ? void 0 : el.clientHeight) !== null && _el$clientHeight2 !== void 0 ? _el$clientHeight2 : 0);
595
+ },
596
+ onKeyDown: function onKeyDown(e) {
597
+ if (e.key !== 'Escape') {
598
+ e.stopPropagation();
609
599
  }
610
- }, [activeMenuIndex, open]);
600
+ }
601
+ };
602
+ }
603
+ function getEmptyMessageProps() {
611
604
  return {
612
- config: {
613
- block: block,
614
- disabled: disabled,
615
- draggable: draggable,
616
- emptyMessage: emptyMessage,
617
- error: error,
618
- footer: footer,
619
- header: header,
620
- placeholder: placeholder,
621
- preset: preset,
622
- presetProps: presetProps,
623
- selectionStyle: selectionStyle,
624
- tabIndex: tabIndex,
625
- loading: loading,
626
- multiple: multiple,
627
- },
628
- components: components,
629
- state: {
630
- activeMenuIndex: activeMenuIndex,
631
- activeTokenIndex: activeTokenIndex,
632
- isEmpty: isEmpty,
633
- listContainerHeight: listContainerHeight,
634
- listId: listId,
635
- maxHeight: maxHeight,
636
- onDragEnd: onDragEnd,
637
- onSelect: onSelect,
638
- open: open,
639
- options: draggable ? queriedDraggableOptions : options,
640
- overlayId: overlayId,
641
- searchValue: searchValue,
642
- selectedIndex: selectedIndex,
643
- selectedLabel: selectedLabel,
644
- selectedOption: selectedOption,
645
- setOpen: setOpen,
646
- setPointer: setPointer,
647
- setSearchValue: setSearchValue,
648
- sourceOptions: sourceOptions,
649
- value: value,
650
- width: width,
651
- },
652
- props: {
653
- clear: getClearProps,
654
- emptyMessage: getEmptyMessageProps,
655
- footer: getFooterProps,
656
- header: getHeaderProps,
657
- item: getItemProps,
658
- label: getLabelProps,
659
- menu: getMenuProps,
660
- multiInput: getMultiInputProps,
661
- overlay: getFloatingProps,
662
- search: getSearchProps,
663
- searchContainer: getSearchContainerProps,
664
- tokenClear: getMultiValueProps,
665
- trigger: getReferenceProps,
666
- virtuoso: getVirtuosoProps,
667
- },
668
- option: {
669
- group: getOptionGroup,
670
- isBatch: getOptionIsBatch,
671
- isSelected: getOptionIsSelected,
672
- isDisabled: getOptionIsDisabled,
673
- isOptgroup: getOptionIsOptgroup,
674
- label: getOptionLabel,
675
- value: getOptionValue,
676
- },
677
- refs: {
678
- floating: floating,
679
- navigationList: navigationList,
680
- virtuoso: virtuoso,
681
- },
605
+ emptyMessage: emptyMessage
606
+ };
607
+ }
608
+ function getClearProps() {
609
+ return {
610
+ 'aria-hidden': true,
611
+ 'aria-label': i18n.t('core.select.clear'),
612
+ onClick: function onClick(e) {
613
+ // prevent the menu from closing
614
+ e.stopPropagation();
615
+ setActiveTokenIndex(null);
616
+ setValue(multiple ? [] : null);
617
+ setOpen(true);
618
+ }
619
+ };
620
+ }
621
+ function getMenuProps() {
622
+ return {
623
+ scrollable: false,
624
+ style: {
625
+ height: listContainerHeight
626
+ }
627
+ };
628
+ }
629
+ function getVirtuosoProps() {
630
+ var atBottomStateChange = function atBottomStateChange(atBottom) {
631
+ if (atBottom) {
632
+ onScrollBottom();
633
+ }
634
+ };
635
+ return {
636
+ role: 'listbox',
637
+ id: overlayId,
638
+ data: draggable ? queriedDraggableOptions : options,
639
+ components: {
640
+ Item: components === null || components === void 0 ? void 0 : components.Item // TODO fix type
641
+ },
642
+
643
+ initialTopMostItemIndex: selectedIndex >= 0 ? selectedIndex : 0,
644
+ style: {
645
+ flex: '1 1 auto'
646
+ },
647
+ tabIndex: -1,
648
+ totalListHeightChanged: setListHeight,
649
+ atBottomStateChange: atBottomStateChange
682
650
  };
651
+ }
652
+ var onDragEnd = React.useCallback(function (result) {
653
+ if (!result.destination) {
654
+ return;
655
+ }
656
+ if (result.source.index === result.destination.index) {
657
+ return;
658
+ }
659
+ var startIndex = result.source.index;
660
+ var destinationIndex = result.destination.index;
661
+ setDraggableOptions(function (options) {
662
+ var _reorder = reorder(options, startIndex, destinationIndex),
663
+ nextOptions = _reorder.nextOptions,
664
+ prevGroup = _reorder.prevGroup,
665
+ nextGroup = _reorder.nextGroup;
666
+ var adjustedOptions = prevGroup !== nextGroup ? nextOptions.map(function (option, index) {
667
+ if (index === destinationIndex) {
668
+ return setOptionGroup(option, nextGroup);
669
+ }
670
+ return option;
671
+ }) : nextOptions;
672
+ if (typeof onManualSort === 'function') {
673
+ setTimeout(function () {
674
+ onManualSort(adjustedOptions.filter(function (option) {
675
+ return !getOptionIsOptgroup(option);
676
+ }));
677
+ }, 0);
678
+ }
679
+ return adjustedOptions;
680
+ });
681
+ }, []);
682
+
683
+ // run effect when the `open` state changes
684
+ //
685
+ // if it was closed and is now open, reset the highlighted index to be
686
+ // the first selectable option
687
+ //
688
+ // if it was open and is now closed, reset the search value and focused token index
689
+ React.useEffect(function () {
690
+ if (open) {
691
+ setActiveMenuIndex(function () {
692
+ return selectedIndex >= 0 ? selectedIndex : getFirstSelectableOptionIndex();
693
+ });
694
+ } else {
695
+ setSearchValue(function () {
696
+ return '';
697
+ });
698
+ setActiveTokenIndex(function () {
699
+ return null;
700
+ });
701
+ }
702
+ }, [open]);
703
+
704
+ // run the effect when user enters a serach value
705
+ //
706
+ // if the select is currently open then reset highlighted item to be the first
707
+ // selectable option
708
+ React.useEffect(function () {
709
+ if (open) {
710
+ setActiveMenuIndex(function () {
711
+ return getFirstSelectableOptionIndex();
712
+ });
713
+ }
714
+ }, [searchValue]);
715
+
716
+ // when we change the value then close the overlay, but only if we have
717
+ // actually selected a value
718
+ //
719
+ // multiple mode forces the overlay to stay open
720
+ React.useEffect(function () {
721
+ if (!multiple && value !== null) {
722
+ setOpen(function () {
723
+ return false;
724
+ });
725
+ }
726
+ }, [value]);
727
+
728
+ // recreate the array to hold dom refs when our options change
729
+ React.useEffect(function () {
730
+ navigationList.current = _toConsumableArray(Array(options.length).fill(null));
731
+ }, [options]);
732
+
733
+ // scroll virtuoso list activeMenuIndex into view when the index changes
734
+ React.useLayoutEffect(function () {
735
+ if (activeMenuIndex !== null) {
736
+ if (!pointer) {
737
+ var _virtuoso$current;
738
+ (_virtuoso$current = virtuoso.current) === null || _virtuoso$current === void 0 ? void 0 : _virtuoso$current.scrollIntoView({
739
+ index: activeMenuIndex
740
+ });
741
+ }
742
+ }
743
+ }, [activeMenuIndex, open]);
744
+ return {
745
+ config: {
746
+ block: block,
747
+ disabled: disabled,
748
+ draggable: draggable,
749
+ emptyMessage: emptyMessage,
750
+ error: error,
751
+ footer: footer,
752
+ header: header,
753
+ placeholder: placeholder,
754
+ preset: preset,
755
+ presetProps: presetProps,
756
+ selectionStyle: selectionStyle,
757
+ tabIndex: tabIndex,
758
+ loading: loading,
759
+ multiple: multiple
760
+ },
761
+ components: components,
762
+ state: {
763
+ activeMenuIndex: activeMenuIndex,
764
+ activeTokenIndex: activeTokenIndex,
765
+ isEmpty: isEmpty,
766
+ listContainerHeight: listContainerHeight,
767
+ listId: listId,
768
+ maxHeight: maxHeight,
769
+ onDragEnd: onDragEnd,
770
+ onSelect: onSelect,
771
+ open: open,
772
+ options: draggable ? queriedDraggableOptions : options,
773
+ overlayId: overlayId,
774
+ searchValue: searchValue,
775
+ selectedIndex: selectedIndex,
776
+ selectedLabel: selectedLabel,
777
+ selectedOption: selectedOption,
778
+ setOpen: setOpen,
779
+ setPointer: setPointer,
780
+ setSearchValue: setSearchValue,
781
+ sourceOptions: sourceOptions,
782
+ value: value,
783
+ width: width
784
+ },
785
+ props: {
786
+ clear: getClearProps,
787
+ emptyMessage: getEmptyMessageProps,
788
+ footer: getFooterProps,
789
+ header: getHeaderProps,
790
+ item: getItemProps,
791
+ label: getLabelProps,
792
+ menu: getMenuProps,
793
+ multiInput: getMultiInputProps,
794
+ overlay: getFloatingProps,
795
+ search: getSearchProps,
796
+ searchContainer: getSearchContainerProps,
797
+ tokenClear: getMultiValueProps,
798
+ trigger: getReferenceProps,
799
+ virtuoso: getVirtuosoProps
800
+ },
801
+ option: {
802
+ group: getOptionGroup,
803
+ isBatch: getOptionIsBatch,
804
+ isSelected: getOptionIsSelected,
805
+ isDisabled: getOptionIsDisabled,
806
+ isOptgroup: getOptionIsOptgroup,
807
+ label: getOptionLabel,
808
+ value: getOptionValue
809
+ },
810
+ refs: {
811
+ floating: floating,
812
+ navigationList: navigationList,
813
+ virtuoso: virtuoso
814
+ }
815
+ };
683
816
  }
684
- export var SuperSelectContext = React.createContext(null);
817
+ export var SuperSelectContext = /*#__PURE__*/React.createContext(null);
685
818
  export function useSuperSelectContext() {
686
- var ctx = React.useContext(SuperSelectContext);
687
- if (!ctx) {
688
- throw new Error('Invalid SuperSelectContext');
689
- }
690
- return ctx;
819
+ var ctx = React.useContext(SuperSelectContext);
820
+ if (!ctx) {
821
+ throw new Error('Invalid SuperSelectContext');
822
+ }
823
+ return ctx;
691
824
  }
692
825
  //# sourceMappingURL=useSuperSelect.js.map