@servicetitan/anvil2 1.44.2 → 1.45.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (921) hide show
  1. package/CHANGELOG.md +20 -7
  2. package/README.md +0 -8
  3. package/dist/Alert-BNGvfMAV.js +112 -0
  4. package/dist/Alert-BNGvfMAV.js.map +1 -0
  5. package/dist/{Alert-C3WoRkeN.css → Alert.css} +0 -1
  6. package/dist/Alert.js +1 -1
  7. package/dist/{Announcement-ButSjdLn.js → Announcement-CoheCP1i.js} +23 -28
  8. package/dist/Announcement-CoheCP1i.js.map +1 -0
  9. package/dist/Announcement.css +0 -1
  10. package/dist/Announcement.js +1 -1
  11. package/dist/{HammerProvider-vt3DkcCZ-06BeBrPu.js → AnvilProvider-C_qRQnE6.js} +22 -12
  12. package/dist/AnvilProvider-C_qRQnE6.js.map +1 -0
  13. package/dist/AnvilProvider.js +1 -1
  14. package/dist/{Avatar-DREZJN2K.js → Avatar-CyGjhToG.js} +3 -10
  15. package/dist/Avatar-CyGjhToG.js.map +1 -0
  16. package/dist/{Avatar-C7cbRTCt-DCvzmr2C.js → Avatar-D07f9NH_.js} +9 -9
  17. package/dist/Avatar-D07f9NH_.js.map +1 -0
  18. package/dist/{Avatar-C7cbRTCt.css → Avatar.css} +0 -1
  19. package/dist/Avatar.js +2 -1
  20. package/dist/Avatar.js.map +1 -1
  21. package/dist/{Badge-7aZfE-LH.js → Badge-DCA9mfc2.js} +5 -12
  22. package/dist/Badge-DCA9mfc2.js.map +1 -0
  23. package/dist/Badge.css +0 -1
  24. package/dist/Badge.js +1 -1
  25. package/dist/{Breadcrumbs-BMbkH9hL-BUjQksuj.js → Breadcrumbs-C4_PEolS.js} +7 -7
  26. package/dist/Breadcrumbs-C4_PEolS.js.map +1 -0
  27. package/dist/{Breadcrumbs-BMbkH9hL.css → Breadcrumbs.css} +0 -1
  28. package/dist/Breadcrumbs.js +1 -1
  29. package/dist/{Button-BaHFf1AT-BQy-PFB5.js → Button-BxFXQ0-n.js} +31 -16
  30. package/dist/Button-BxFXQ0-n.js.map +1 -0
  31. package/dist/Button.css +59 -46
  32. package/dist/Button.js +1 -1
  33. package/dist/Button.module-pUNSKoVC.js +25 -0
  34. package/dist/Button.module-pUNSKoVC.js.map +1 -0
  35. package/dist/ButtonCompound-BF2Q6gGX.js +64 -0
  36. package/dist/ButtonCompound-BF2Q6gGX.js.map +1 -0
  37. package/dist/ButtonCompound.js +1 -1
  38. package/dist/{ButtonLink-5qlX0uZx-b9H7MGhk.js → ButtonLink-CXv65WVV.js} +35 -17
  39. package/dist/ButtonLink-CXv65WVV.js.map +1 -0
  40. package/dist/ButtonLink.js +1 -1
  41. package/dist/{ButtonToggle-Bm4KRl3o-B1-LbfjY.js → ButtonToggle-pSwg7NvT.js} +26 -5
  42. package/dist/ButtonToggle-pSwg7NvT.js.map +1 -0
  43. package/dist/ButtonToggle.js +1 -1
  44. package/dist/{Calendar-BvftKznl-D4_xp9Rv.js → Calendar-Dq_of5A3.js} +324 -255
  45. package/dist/Calendar-Dq_of5A3.js.map +1 -0
  46. package/dist/{Calendar-BvftKznl.css → Calendar.css} +0 -1
  47. package/dist/Calendar.js +1 -1
  48. package/dist/{Card-ZknG-yim-7W6rYSFV.js → Card-vTYeSkxt.js} +3 -3
  49. package/dist/Card-vTYeSkxt.js.map +1 -0
  50. package/dist/{Card-ZknG-yim.css → Card.css} +0 -1
  51. package/dist/Card.js +1 -1
  52. package/dist/{Checkbox-zg8LVvB6.js → Checkbox-3y2d9mBd.js} +4 -10
  53. package/dist/Checkbox-3y2d9mBd.js.map +1 -0
  54. package/dist/{Checkbox-DyHm7Ntt-DYw5QL3l.js → Checkbox-BiOzGpgJ.js} +9 -11
  55. package/dist/Checkbox-BiOzGpgJ.js.map +1 -0
  56. package/dist/Checkbox.js +2 -1
  57. package/dist/Checkbox.js.map +1 -1
  58. package/dist/{Chip-MbBEXeAm-DmAcwPRJ.js → Chip-Bz-vlQ4D.js} +37 -10
  59. package/dist/Chip-Bz-vlQ4D.js.map +1 -0
  60. package/dist/{Chip-MbBEXeAm.css → Chip.css} +0 -1
  61. package/dist/Chip.js +1 -1
  62. package/dist/Combobox.js +1 -1
  63. package/dist/{DateField-Bqsnpt8S.js → DateField-B2mnasH5.js} +42 -45
  64. package/dist/DateField-B2mnasH5.js.map +1 -0
  65. package/dist/DateField.js +1 -1
  66. package/dist/DateFieldRange-DPbyzuHb.js +557 -0
  67. package/dist/DateFieldRange-DPbyzuHb.js.map +1 -0
  68. package/dist/DateFieldRange.js +1 -1
  69. package/dist/DateFieldSingle-CfAJDcx9.js +450 -0
  70. package/dist/DateFieldSingle-CfAJDcx9.js.map +1 -0
  71. package/dist/DateFieldSingle.js +1 -1
  72. package/dist/DateFieldYearless-ydxcsmRV.js +266 -0
  73. package/dist/DateFieldYearless-ydxcsmRV.js.map +1 -0
  74. package/dist/DateFieldYearless.js +1 -1
  75. package/dist/{DaysOfTheWeek-ImBPjEvl.js → DaysOfTheWeek-BYvE9QK5.js} +9 -28
  76. package/dist/DaysOfTheWeek-BYvE9QK5.js.map +1 -0
  77. package/dist/DaysOfTheWeek.css +0 -1
  78. package/dist/DaysOfTheWeek.js +1 -1
  79. package/dist/{Details-DVg0EOkv.js → Details-CF8DImjw.js} +34 -100
  80. package/dist/Details-CF8DImjw.js.map +1 -0
  81. package/dist/Details.css +0 -1
  82. package/dist/Details.js +1 -1
  83. package/dist/{Dialog-BR6f-XRH.js → Dialog-DpH2Qvbd.js} +71 -166
  84. package/dist/Dialog-DpH2Qvbd.js.map +1 -0
  85. package/dist/Dialog.css +29 -30
  86. package/dist/Dialog.js +1 -1
  87. package/dist/{Divider-B0xGfyWE-f5-ThMiS.js → Divider-DJe8kLf2.js} +3 -3
  88. package/dist/Divider-DJe8kLf2.js.map +1 -0
  89. package/dist/{Divider-B0xGfyWE.css → Divider.css} +0 -1
  90. package/dist/Divider.js +1 -1
  91. package/dist/Dnd.js +1 -1
  92. package/dist/DndSort.css +0 -1
  93. package/dist/DndSort.js +5545 -1
  94. package/dist/DndSort.js.map +1 -1
  95. package/dist/Drawer-DI_k6W2k.js +377 -0
  96. package/dist/Drawer-DI_k6W2k.js.map +1 -0
  97. package/dist/Drawer.css +161 -0
  98. package/dist/Drawer.js +1 -1
  99. package/dist/{floating-ui.react-BFNinq1w.js → DrawerContext-DboTgTmo.js} +958 -908
  100. package/dist/DrawerContext-DboTgTmo.js.map +1 -0
  101. package/dist/{EditCard-B_n1uFkv.js → EditCard-WKzZ2XCz.js} +12 -19
  102. package/dist/EditCard-WKzZ2XCz.js.map +1 -0
  103. package/dist/EditCard.css +0 -1
  104. package/dist/EditCard.js +1 -1
  105. package/dist/FieldLabel-BfnCXung.js +87 -0
  106. package/dist/FieldLabel-BfnCXung.js.map +1 -0
  107. package/dist/FieldLabel.css +60 -0
  108. package/dist/FieldLabel.js +1 -1
  109. package/dist/{FieldMessage-Bobp105T-DYhStLY4.js → FieldMessage-B7uQ8vmr.js} +3 -3
  110. package/dist/FieldMessage-B7uQ8vmr.js.map +1 -0
  111. package/dist/{FieldMessage-Bobp105T.css → FieldMessage.css} +0 -2
  112. package/dist/FieldMessage.js +1 -1
  113. package/dist/{Flex-CiK7uNUu-BfxHG4L0.js → Flex-BdQMekvA.js} +3 -3
  114. package/dist/Flex-BdQMekvA.js.map +1 -0
  115. package/dist/{Flex-CiK7uNUu.css → Flex.css} +0 -1
  116. package/dist/Flex.js +1 -1
  117. package/dist/{Grid-DFAd8mTe.js → Grid-MGUC698u.js} +48 -30
  118. package/dist/Grid-MGUC698u.js.map +1 -0
  119. package/dist/Grid.css +0 -1
  120. package/dist/Grid.js +1 -1
  121. package/dist/{Helper-h7k80qls-DHPFHTvI.js → Helper-BkIDJqgA.js} +4 -4
  122. package/dist/Helper-BkIDJqgA.js.map +1 -0
  123. package/dist/{Helper-h7k80qls.css → Helper.css} +0 -1
  124. package/dist/{Icon-B6HmlQiR-BxQkO3X5.js → Icon-D8SPKeO4.js} +3 -3
  125. package/dist/Icon-D8SPKeO4.js.map +1 -0
  126. package/dist/{Icon-B6HmlQiR.css → Icon.css} +0 -1
  127. package/dist/Icon.js +1 -1
  128. package/dist/{InputMask-BuO8lNAB-DdxdO5Jw.js → InputMask-O_qi1p_3.js} +88 -67
  129. package/dist/InputMask-O_qi1p_3.js.map +1 -0
  130. package/dist/InputMask.js +1 -1
  131. package/dist/Link-eRsLWPaQ.js +103 -0
  132. package/dist/Link-eRsLWPaQ.js.map +1 -0
  133. package/dist/{Link-MiffPrW9.css → Link.css} +0 -1
  134. package/dist/Link.js +1 -1
  135. package/dist/Link.module-Cf17JWod.js +12 -0
  136. package/dist/Link.module-Cf17JWod.js.map +1 -0
  137. package/dist/LinkButton-2lXfrVoU.js +64 -0
  138. package/dist/LinkButton-2lXfrVoU.js.map +1 -0
  139. package/dist/LinkButton.js +1 -75
  140. package/dist/LinkButton.js.map +1 -1
  141. package/dist/{ListView-DVPhWDCM.js → ListView-jR2ZkBB7.js} +151 -234
  142. package/dist/ListView-jR2ZkBB7.js.map +1 -0
  143. package/dist/ListView.css +0 -1
  144. package/dist/ListView.js +1 -1
  145. package/dist/{ListView.module-MVsNF0X0-MVsNF0X0.js → ListView.module-MVsNF0X0.js} +1 -1
  146. package/dist/ListView.module-MVsNF0X0.js.map +1 -0
  147. package/dist/{Listbox-B-WUuj-_-BWWeWtLW.js → Listbox-CUhMbFm2.js} +67 -50
  148. package/dist/Listbox-CUhMbFm2.js.map +1 -0
  149. package/dist/Listbox.css +0 -1
  150. package/dist/Listbox.js +1 -1
  151. package/dist/{Listbox.module-DcBE8Zmo-DcBE8Zmo.js → Listbox.module-DcBE8Zmo.js} +1 -1
  152. package/dist/Listbox.module-DcBE8Zmo.js.map +1 -0
  153. package/dist/{LocalizationContext-UsmB5mnR-BUIYgNp2.js → LocalizationContext-UsmB5mnR.js} +2 -2
  154. package/dist/LocalizationContext-UsmB5mnR.js.map +1 -0
  155. package/dist/{LocalizationProvider-VtRAfGBT-Bo8XuFoE.js → LocalizationProvider-DEZyjW5d.js} +3 -3
  156. package/dist/LocalizationProvider-DEZyjW5d.js.map +1 -0
  157. package/dist/LocalizationProvider.d.ts +0 -4
  158. package/dist/LocalizationProvider.js +2 -2
  159. package/dist/{Menu-TtVJnSrA-yBYichuJ.js → Menu-C8we5CHP.js} +52 -22
  160. package/dist/Menu-C8we5CHP.js.map +1 -0
  161. package/dist/{Menu-TtVJnSrA.css → Menu.css} +0 -2
  162. package/dist/Menu.js +1 -1
  163. package/dist/{NumberField-C9lMsPMD.js → NumberField-1_gRsWT4.js} +158 -175
  164. package/dist/NumberField-1_gRsWT4.js.map +1 -0
  165. package/dist/NumberField.css +7 -8
  166. package/dist/NumberField.js +1 -1
  167. package/dist/{Overflow-CFClqFVC.css → Overflow.css} +0 -2
  168. package/dist/Overflow.js +400 -1
  169. package/dist/Overflow.js.map +1 -1
  170. package/dist/{Page-CGAylFKz.js → Page-CY6QRlvb.js} +14 -14
  171. package/dist/Page-CY6QRlvb.js.map +1 -0
  172. package/dist/Page.js +1 -1
  173. package/dist/{Pagination-DU_qvFRR.js → Pagination-ta8a2cJN.js} +29 -30
  174. package/dist/Pagination-ta8a2cJN.js.map +1 -0
  175. package/dist/Pagination.css +28 -28
  176. package/dist/Pagination.js +1 -1
  177. package/dist/{Popover-CU2cGVD8-Casl3vM1.js → Popover-r26xMIfm.js} +260 -229
  178. package/dist/Popover-r26xMIfm.js.map +1 -0
  179. package/dist/{Popover-CU2cGVD8.css → Popover.css} +0 -2
  180. package/dist/Popover.js +1 -1
  181. package/dist/{PortalProvider-9lXkQ0xY-BKoGegS1.js → PortalProvider-9lXkQ0xY.js} +2 -2
  182. package/dist/PortalProvider-9lXkQ0xY.js.map +1 -0
  183. package/dist/PortalProvider.d.ts +0 -4
  184. package/dist/PortalProvider.js +1 -1
  185. package/dist/ProgressBar-BnXuQ6Bx.js +130 -0
  186. package/dist/ProgressBar-BnXuQ6Bx.js.map +1 -0
  187. package/dist/ProgressBar.css +89 -0
  188. package/dist/ProgressBar.js +1 -1
  189. package/dist/{Radio-DnOuBPi_.js → Radio-CwmRUIzo.js} +4 -10
  190. package/dist/Radio-CwmRUIzo.js.map +1 -0
  191. package/dist/Radio.js +2 -1
  192. package/dist/Radio.js.map +1 -1
  193. package/dist/{Radio-DQ_VQFGZ-SdFBlDnE.js → RadioGroup-BNCWIHOG.js} +84 -105
  194. package/dist/RadioGroup-BNCWIHOG.js.map +1 -0
  195. package/dist/{Radio-DQ_VQFGZ.css → RadioGroup.css} +0 -1
  196. package/dist/{SearchField-BGPqpnVd.js → SearchField-BKXkoWPs.js} +21 -27
  197. package/dist/SearchField-BKXkoWPs.js.map +1 -0
  198. package/dist/SearchField.css +0 -1
  199. package/dist/SearchField.js +1 -1
  200. package/dist/{SegmentedControl-DY1PSYmd.js → SegmentedControl-CsjjV1Dz.js} +32 -80
  201. package/dist/SegmentedControl-CsjjV1Dz.js.map +1 -0
  202. package/dist/SegmentedControl.css +0 -1
  203. package/dist/SegmentedControl.js +1 -1
  204. package/dist/{SelectCard-LSAl_7Lh-BYtfe9PC.js → SelectCard-DOGCG0zr.js} +17 -17
  205. package/dist/SelectCard-DOGCG0zr.js.map +1 -0
  206. package/dist/{SelectCard-LSAl_7Lh.css → SelectCard.css} +0 -1
  207. package/dist/SelectCard.js +1 -1
  208. package/dist/{SelectTrigger-C2w-flvK.js → SelectTrigger-BMo0e-F7.js} +31 -44
  209. package/dist/SelectTrigger-BMo0e-F7.js.map +1 -0
  210. package/dist/SelectTrigger.js +1 -1
  211. package/dist/{SelectTriggerBase-Dj154EN4-BtTvR-Nh.js → SelectTriggerBase-BMMxnXrw.js} +54 -40
  212. package/dist/SelectTriggerBase-BMMxnXrw.js.map +1 -0
  213. package/dist/{SelectTriggerBase-Dj154EN4.css → SelectTriggerBase.css} +68 -54
  214. package/dist/{SideNav-Bh_pVeEw.js → SideNav-CBAzYyML.js} +71 -154
  215. package/dist/SideNav-CBAzYyML.js.map +1 -0
  216. package/dist/SideNav.css +0 -1
  217. package/dist/SideNav.js +1 -1
  218. package/dist/Skeleton.css +0 -1
  219. package/dist/Skeleton.d.ts +0 -4
  220. package/dist/Skeleton.js +190 -1
  221. package/dist/Skeleton.js.map +1 -1
  222. package/dist/{Spinner-DliJVzdW-BQlZEj4V.js → Spinner-wmO8Epw0.js} +2 -2
  223. package/dist/Spinner-wmO8Epw0.js.map +1 -0
  224. package/dist/{Spinner-DliJVzdW.css → Spinner.css} +0 -1
  225. package/dist/Spinner.js +1 -1
  226. package/dist/{SrOnly-BsKDHetF-B93X65F1.js → SrOnly-CTsYSuby.js} +2 -2
  227. package/dist/SrOnly-CTsYSuby.js.map +1 -0
  228. package/dist/{SrOnly-BsKDHetF.css → SrOnly.css} +0 -1
  229. package/dist/SrOnly.js +1 -1
  230. package/dist/{Stepper-BtbDBIzz.js → Stepper-D-fOH9TF.js} +142 -326
  231. package/dist/Stepper-D-fOH9TF.js.map +1 -0
  232. package/dist/Stepper.css +43 -44
  233. package/dist/Stepper.js +1 -1
  234. package/dist/{Switch-DAQFzi-X.js → Switch-C2ddZcr9.js} +22 -28
  235. package/dist/Switch-C2ddZcr9.js.map +1 -0
  236. package/dist/Switch.css +0 -1
  237. package/dist/Switch.js +1 -1
  238. package/dist/{Tab-BSC7e4rM.js → Tab-wNucMTgo.js} +42 -120
  239. package/dist/Tab-wNucMTgo.js.map +1 -0
  240. package/dist/Tab.css +0 -1
  241. package/dist/Tab.js +1 -1
  242. package/dist/{Text-CED_yrId-DsRYZw2-.js → Text-BqvcbXyp.js} +3 -3
  243. package/dist/Text-BqvcbXyp.js.map +1 -0
  244. package/dist/{Text-CED_yrId.css → Text.css} +0 -1
  245. package/dist/Text.js +1 -1
  246. package/dist/TextField-CwgE_JJU.js +13 -0
  247. package/dist/TextField-CwgE_JJU.js.map +1 -0
  248. package/dist/{TextField-DoPP1CQ--UWAOTYiv.js → TextField-DlsZEkS0.js} +29 -12
  249. package/dist/TextField-DlsZEkS0.js.map +1 -0
  250. package/dist/TextField.css +0 -1
  251. package/dist/TextField.js +1 -1
  252. package/dist/{TextField.module-EkKlj66e-EkKlj66e.js → TextField.module-EkKlj66e.js} +1 -1
  253. package/dist/TextField.module-EkKlj66e.js.map +1 -0
  254. package/dist/{Textarea-D2AAZ1L3.js → Textarea-DU-SpoDL.js} +38 -44
  255. package/dist/Textarea-DU-SpoDL.js.map +1 -0
  256. package/dist/Textarea.css +0 -1
  257. package/dist/Textarea.js +1 -1
  258. package/dist/{ThemeProvider-Q3ji6Rpx-DBXlAuQ8.js → ThemeProvider-Be3Pvtpz.js} +6 -8
  259. package/dist/ThemeProvider-Be3Pvtpz.js.map +1 -0
  260. package/dist/{ThemeProvider-Q3ji6Rpx.css → ThemeProvider.css} +0 -1
  261. package/dist/ThemeProvider.d.ts +0 -4
  262. package/dist/ThemeProvider.js +2 -1
  263. package/dist/ThemeProvider.js.map +1 -1
  264. package/dist/ThemeProviderContext-l52GohYT.js +8 -0
  265. package/dist/ThemeProviderContext-l52GohYT.js.map +1 -0
  266. package/dist/{TimeField-tA9uo4lK.js → TimeField-CfhyRfX9.js} +229 -215
  267. package/dist/TimeField-CfhyRfX9.js.map +1 -0
  268. package/dist/TimeField.css +0 -1
  269. package/dist/TimeField.d.ts +4 -0
  270. package/dist/TimeField.js +1 -1
  271. package/dist/Toast.js +2 -1
  272. package/dist/Toast.js.map +1 -1
  273. package/dist/Toaster-BgjT0p8b.js +1124 -0
  274. package/dist/Toaster-BgjT0p8b.js.map +1 -0
  275. package/dist/{toast-BhV_Ask2.js → Toaster-CfC9wod0.js} +5 -7
  276. package/dist/Toaster-CfC9wod0.js.map +1 -0
  277. package/dist/Toaster.css +235 -0
  278. package/dist/{Toolbar-CSWhVSUM.js → Toolbar-DK7tXy_W.js} +163 -279
  279. package/dist/Toolbar-DK7tXy_W.js.map +1 -0
  280. package/dist/Toolbar.css +28 -19
  281. package/dist/Toolbar.js +1 -1
  282. package/dist/Tooltip-BI3Xs75X.js +730 -0
  283. package/dist/Tooltip-BI3Xs75X.js.map +1 -0
  284. package/dist/Tooltip.css +99 -0
  285. package/dist/Tooltip.js +1 -1
  286. package/dist/assets/icons/st/atlas_gradient.svg +1 -0
  287. package/dist/assets/icons/st/atlas_logo.svg +1 -0
  288. package/dist/assets/icons/st/atlas_simple.svg +1 -0
  289. package/dist/assets/icons/st.ts +3 -0
  290. package/dist/{check_circle-BGfigqq-.js → check_circle-Dja-C2lM.js} +2 -4
  291. package/dist/check_circle-Dja-C2lM.js.map +1 -0
  292. package/dist/{childrenToString-Bz9MqbHb-Bz9MqbHb.js → childrenToString-Bz9MqbHb.js} +1 -1
  293. package/dist/childrenToString-Bz9MqbHb.js.map +1 -0
  294. package/dist/components/Alert/Alert.d.ts +26 -8
  295. package/dist/components/Announcement/Announcement.d.ts +26 -8
  296. package/dist/components/Avatar/Avatar.d.ts +2 -48
  297. package/dist/components/Avatar/AvatarGroup.d.ts +39 -0
  298. package/dist/components/Avatar/index.d.ts +1 -0
  299. package/dist/components/Avatar/internal/Avatar.d.ts +58 -0
  300. package/dist/components/Avatar/internal/AvatarBase.d.ts +75 -0
  301. package/dist/components/Badge/Badge.d.ts +31 -8
  302. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +23 -14
  303. package/dist/components/Breadcrumbs/BreadcrumbsLink.d.ts +23 -0
  304. package/dist/components/Breadcrumbs/index.d.ts +1 -0
  305. package/dist/components/Button/Button.d.ts +43 -9
  306. package/dist/components/ButtonCompound/ButtonCompound.d.ts +20 -7
  307. package/dist/components/ButtonLink/ButtonLink.d.ts +66 -15
  308. package/dist/components/ButtonToggle/ButtonToggle.d.ts +46 -11
  309. package/dist/components/Calendar/Calendar.d.ts +149 -36
  310. package/dist/components/Calendar/CalendarContext.d.ts +153 -0
  311. package/dist/components/Calendar/CalendarMonth.d.ts +9 -0
  312. package/dist/components/Calendar/CalendarMonthButton.d.ts +16 -0
  313. package/dist/components/Calendar/CalendarNextButton.d.ts +11 -0
  314. package/dist/components/Calendar/CalendarNowButton.d.ts +20 -0
  315. package/dist/components/Calendar/CalendarPrevButton.d.ts +11 -0
  316. package/dist/components/Calendar/CalendarYearButton.d.ts +15 -0
  317. package/dist/components/Calendar/index.d.ts +9 -2
  318. package/dist/components/Calendar/internal/CalendarDay.d.ts +21 -0
  319. package/dist/components/Calendar/internal/CalendarMonthSelection.d.ts +25 -0
  320. package/dist/components/Calendar/internal/CalendarWeek.d.ts +28 -0
  321. package/dist/components/Calendar/internal/CalendarYearSelection.d.ts +25 -0
  322. package/dist/components/Calendar/internal/utils.d.ts +12 -0
  323. package/dist/components/Card/Card.d.ts +26 -16
  324. package/dist/components/Checkbox/Checkbox.d.ts +3 -29
  325. package/dist/components/Checkbox/CheckboxGroup.d.ts +53 -0
  326. package/dist/components/Checkbox/index.d.ts +2 -0
  327. package/dist/components/Checkbox/internal/Checkbox.d.ts +133 -0
  328. package/dist/components/Checkbox/types.d.ts +4 -0
  329. package/dist/components/Chip/Chip.d.ts +4 -3
  330. package/dist/components/Chip/internal/Chip.d.ts +108 -0
  331. package/dist/components/Combobox/Combobox.d.ts +11 -283
  332. package/dist/components/Combobox/ComboboxContent.d.ts +59 -0
  333. package/dist/components/Combobox/ComboboxEmpty.d.ts +26 -0
  334. package/dist/components/Combobox/ComboboxItem.d.ts +34 -0
  335. package/dist/components/Combobox/ComboboxList.d.ts +31 -0
  336. package/dist/components/Combobox/ComboboxMockData.d.ts +44 -0
  337. package/dist/components/Combobox/ComboboxSelect.d.ts +59 -0
  338. package/dist/components/Combobox/ComboboxTrigger.d.ts +43 -0
  339. package/dist/components/Combobox/ComboboxTypes.d.ts +374 -0
  340. package/dist/components/Combobox/index.d.ts +10 -3
  341. package/dist/components/Combobox/internal/ComboboxContext.d.ts +8 -0
  342. package/dist/components/Combobox/internal/ComboboxGroupContext.d.ts +8 -0
  343. package/dist/components/Combobox/internal/ComboboxLegacy/ComboboxLegacy.d.ts +131 -0
  344. package/dist/components/Combobox/internal/ComboboxLegacy/ComboboxLegacyContent.d.ts +20 -0
  345. package/dist/components/Combobox/internal/ComboboxLegacy/ComboboxLegacyEmpty.d.ts +5 -0
  346. package/dist/components/Combobox/internal/ComboboxLegacy/ComboboxLegacyItem.d.ts +26 -0
  347. package/dist/components/Combobox/internal/ComboboxLegacy/ComboboxLegacyList.d.ts +5 -0
  348. package/dist/components/Combobox/internal/ComboboxLegacy/ComboboxLegacyMockData.d.ts +37 -0
  349. package/dist/components/Combobox/internal/ComboboxLegacy/ComboboxLegacyTrigger.d.ts +21 -0
  350. package/dist/components/Combobox/internal/ComboboxLegacy/ComboboxLegacyUtils.d.ts +38 -0
  351. package/dist/components/Combobox/internal/ComboboxLegacy/index.d.ts +7 -0
  352. package/dist/components/Combobox/internal/ComboboxMockData.d.ts +44 -0
  353. package/dist/components/Combobox/internal/ComboboxUtils.d.ts +74 -0
  354. package/dist/components/Combobox/internal/useGroups.d.ts +14 -0
  355. package/dist/components/Combobox/useInfiniteCombobox.d.ts +69 -1
  356. package/dist/components/DateField/DateField.d.ts +23 -61
  357. package/dist/components/DateField/internal/DateFieldLegacy/DateFieldLegacy.d.ts +37 -0
  358. package/dist/components/DateField/internal/DateFieldLegacy/index.d.ts +1 -0
  359. package/dist/components/DateField/internal/isoToDateFormat.d.ts +1 -0
  360. package/dist/components/DateField/types.d.ts +47 -0
  361. package/dist/components/DateFieldRange/DateFieldRange.d.ts +57 -6
  362. package/dist/components/DateFieldRange/internal/DateFieldRangeCalendar.d.ts +17 -0
  363. package/dist/components/DateFieldRange/internal/MaskedDateRangeInput.d.ts +41 -0
  364. package/dist/components/DateFieldRange/internal/maskito/dateRangePlaceholderMask.d.ts +18 -0
  365. package/dist/components/DateFieldRange/internal/useDateFieldRangeConversion.d.ts +29 -0
  366. package/dist/components/DateFieldRange/internal/useDateFieldRangeState.d.ts +70 -0
  367. package/dist/components/DateFieldRange/internal/utils.d.ts +17 -0
  368. package/dist/components/DateFieldSingle/DateFieldSingle.d.ts +55 -5
  369. package/dist/components/DateFieldSingle/index.d.ts +1 -0
  370. package/dist/components/DateFieldSingle/internal/DateFieldSingleCalendar.d.ts +15 -0
  371. package/dist/components/DateFieldSingle/internal/MaskedDateInput.d.ts +35 -0
  372. package/dist/components/DateFieldSingle/internal/constants.d.ts +3 -0
  373. package/dist/components/DateFieldSingle/internal/maskito/datePlaceholderMask.d.ts +16 -0
  374. package/dist/components/DateFieldSingle/internal/maskito/makeZeroShortcutPreprocessor.d.ts +10 -0
  375. package/dist/components/DateFieldSingle/internal/useDateFieldOrchestration.d.ts +17 -0
  376. package/dist/components/DateFieldSingle/internal/useDateFieldSingleConversion.d.ts +45 -0
  377. package/dist/components/DateFieldSingle/internal/useDateFieldSingleState.d.ts +49 -0
  378. package/dist/components/DateFieldSingle/internal/utils.d.ts +14 -0
  379. package/dist/components/DateFieldSingle/types.d.ts +2 -0
  380. package/dist/components/DateFieldYearless/DateFieldYearless.d.ts +61 -36
  381. package/dist/components/DateFieldYearless/index.d.ts +1 -0
  382. package/dist/components/DateFieldYearless/internal/MaskedYearlessDateInput.d.ts +35 -0
  383. package/dist/components/DateFieldYearless/internal/maskito/yearlessDatePlaceholderMask.d.ts +16 -0
  384. package/dist/components/DateFieldYearless/internal/utils.d.ts +12 -0
  385. package/dist/components/DateFieldYearless/types.d.ts +7 -0
  386. package/dist/components/DaysOfTheWeek/DaysOfTheWeek.d.ts +117 -20
  387. package/dist/components/Details/Details.d.ts +30 -58
  388. package/dist/components/Details/DetailsContent.d.ts +41 -0
  389. package/dist/components/Details/DetailsSummary.d.ts +24 -0
  390. package/dist/components/Details/index.d.ts +2 -0
  391. package/dist/components/Details/internal/DetailsArrow.d.ts +20 -0
  392. package/dist/components/Details/internal/DetailsContext.d.ts +8 -0
  393. package/dist/components/Dialog/Dialog.d.ts +97 -109
  394. package/dist/components/Dialog/DialogCancelButton.d.ts +21 -0
  395. package/dist/components/Dialog/DialogContent.d.ts +22 -0
  396. package/dist/components/Dialog/DialogFooter.d.ts +33 -0
  397. package/dist/components/Dialog/DialogHeader.d.ts +21 -0
  398. package/dist/components/Dialog/index.d.ts +6 -2
  399. package/dist/components/Dialog/internal/DialogContext.d.ts +8 -0
  400. package/dist/components/Dialog/internal/useDialogContext.d.ts +1 -0
  401. package/dist/components/Divider/Divider.d.ts +34 -7
  402. package/dist/components/Dnd/DndHandle.d.ts +26 -0
  403. package/dist/components/Dnd/DndHandleButton.d.ts +32 -0
  404. package/dist/components/Dnd/DndSortLine.d.ts +39 -0
  405. package/dist/components/Dnd/DndZone.d.ts +55 -0
  406. package/dist/components/Dnd/index.d.ts +7 -1
  407. package/dist/components/DndSort/DndSort.d.ts +40 -0
  408. package/dist/components/DndSort/DndSortCard.d.ts +63 -0
  409. package/dist/components/DndSort/DndSortZone.d.ts +130 -0
  410. package/dist/components/DndSort/index.d.ts +12 -2
  411. package/dist/components/DndSort/internal/DndSortContext.d.ts +21 -0
  412. package/dist/components/DndSort/internal/DndSortItem.d.ts +30 -0
  413. package/dist/components/DndSort/internal/DndSortOverlay.d.ts +5 -0
  414. package/dist/components/DndSort/internal/DndSortZoneContext.d.ts +24 -0
  415. package/dist/components/DndSort/internal/announcements.d.ts +8 -0
  416. package/dist/components/DndSort/internal/collisionDetection.d.ts +3 -0
  417. package/dist/components/DndSort/internal/getNextCoordinates.d.ts +17 -0
  418. package/dist/components/DndSort/internal/test-utils.d.ts +24 -0
  419. package/dist/components/DndSort/internal/utils.d.ts +55 -0
  420. package/dist/components/DndSort/types.d.ts +55 -0
  421. package/dist/components/Drawer/Drawer.d.ts +63 -118
  422. package/dist/components/Drawer/DrawerCancelButton.d.ts +25 -0
  423. package/dist/components/Drawer/DrawerContent.d.ts +26 -0
  424. package/dist/components/Drawer/DrawerFooter.d.ts +37 -0
  425. package/dist/components/Drawer/DrawerHeader.d.ts +23 -0
  426. package/dist/components/Drawer/index.d.ts +6 -2
  427. package/dist/components/Drawer/internal/DrawerContext.d.ts +15 -0
  428. package/dist/components/Drawer/internal/useDrawerContext.d.ts +7 -0
  429. package/dist/components/EditCard/EditCard.d.ts +71 -14
  430. package/dist/components/FieldLabel/FieldLabel.d.ts +62 -4
  431. package/dist/components/FieldLabel/internal/FieldLabelMoreInfoIcon.d.ts +12 -0
  432. package/dist/components/FieldMessage/FieldMessage.d.ts +48 -12
  433. package/dist/components/Flex/Flex.d.ts +46 -61
  434. package/dist/components/Flex/internal/FlexSpecificProps.d.ts +34 -0
  435. package/dist/components/Grid/Grid.d.ts +55 -27
  436. package/dist/components/Grid/index.d.ts +1 -0
  437. package/dist/components/Grid/internal/GridItem.d.ts +27 -0
  438. package/dist/components/Grid/internal/GridSpecificProps.d.ts +28 -0
  439. package/dist/components/Icon/Icon.d.ts +42 -15
  440. package/dist/components/InputMask/InputMask.d.ts +109 -48
  441. package/dist/components/InputMask/internal/constants.d.ts +1 -0
  442. package/dist/components/InputMask/internal/utils.d.ts +41 -0
  443. package/dist/components/Link/Link.d.ts +5 -17
  444. package/dist/components/Link/index.d.ts +1 -0
  445. package/dist/components/Link/internal/Link.d.ts +57 -0
  446. package/dist/components/Link/internal/LinkHeadless.d.ts +24 -0
  447. package/dist/components/Link/useLinkStyles.d.ts +17 -0
  448. package/dist/components/LinkButton/LinkButton.d.ts +5 -31
  449. package/dist/components/ListView/ListView.d.ts +17 -46
  450. package/dist/components/ListView/ListViewOption.d.ts +38 -0
  451. package/dist/components/ListView/ListViewOptionCell.d.ts +12 -0
  452. package/dist/components/ListView/index.d.ts +3 -1
  453. package/dist/components/ListView/internal/ListViewContext.d.ts +28 -0
  454. package/dist/components/ListView/internal/types.d.ts +52 -0
  455. package/dist/components/ListView/internal/utils.d.ts +4 -0
  456. package/dist/components/Listbox/Listbox.d.ts +97 -61
  457. package/dist/components/Listbox/ListboxOption.d.ts +53 -0
  458. package/dist/components/Listbox/ListboxOptionGroup.d.ts +32 -0
  459. package/dist/components/Listbox/index.d.ts +3 -1
  460. package/dist/components/Listbox/internal/ListboxContext.d.ts +38 -0
  461. package/dist/components/Listbox/internal/ListboxOptionGroupContext.d.ts +5 -0
  462. package/dist/components/Listbox/internal/utils.d.ts +4 -0
  463. package/dist/components/Menu/Menu.d.ts +20 -46
  464. package/dist/components/Menu/MenuItem.d.ts +57 -0
  465. package/dist/components/Menu/index.d.ts +2 -0
  466. package/dist/components/Menu/internal/MenuContext.d.ts +15 -0
  467. package/dist/components/Menu/internal/MenuLegacy/MenuLegacy.d.ts +50 -0
  468. package/dist/components/Menu/internal/MenuLegacy/MenuLegacyContext.d.ts +9 -0
  469. package/dist/components/Menu/internal/MenuLegacy/MenuLegacyItem.d.ts +12 -0
  470. package/dist/components/Menu/internal/MenuLegacy/index.d.ts +3 -0
  471. package/dist/components/Menu/internal/MenuNested.d.ts +42 -0
  472. package/dist/components/Menu/types.d.ts +72 -0
  473. package/dist/components/NumberField/NumberField.d.ts +48 -7
  474. package/dist/components/Overflow/Overflow.d.ts +51 -84
  475. package/dist/components/Overflow/OverflowText.d.ts +82 -0
  476. package/dist/components/Overflow/index.d.ts +31 -2
  477. package/dist/components/Page/Page.d.ts +7 -7
  478. package/dist/components/Page/PageFooter.d.ts +1 -1
  479. package/dist/components/Page/PageHeader.d.ts +1 -1
  480. package/dist/components/Pagination/Pagination.d.ts +4 -6
  481. package/dist/components/Pagination/internal/Pagination.d.ts +55 -0
  482. package/dist/components/Pagination/internal/PaginationItem.d.ts +52 -0
  483. package/dist/components/Pagination/internal/PaginationItemsPerPageMenu.d.ts +37 -0
  484. package/dist/components/Pagination/internal/PaginationList.d.ts +9 -0
  485. package/dist/components/Pagination/internal/PaginationOverflowMenu.d.ts +61 -0
  486. package/dist/components/Pagination/internal/PaginationTotalCount.d.ts +6 -0
  487. package/dist/components/Popover/Popover.d.ts +146 -134
  488. package/dist/components/Popover/PopoverButton.d.ts +34 -0
  489. package/dist/components/Popover/PopoverClose.d.ts +33 -0
  490. package/dist/components/Popover/PopoverContent.d.ts +46 -0
  491. package/dist/components/Popover/PopoverTrigger.d.ts +63 -0
  492. package/dist/components/Popover/index.d.ts +4 -0
  493. package/dist/components/Popover/internal/PopoverContext.d.ts +40 -0
  494. package/dist/components/Popover/internal/PopoverLegacy/PopoverLegacy.d.ts +8 -0
  495. package/dist/components/Popover/internal/PopoverLegacy/PopoverLegacyButton.d.ts +3 -0
  496. package/dist/components/Popover/internal/PopoverLegacy/PopoverLegacyClose.d.ts +3 -0
  497. package/dist/components/Popover/internal/PopoverLegacy/PopoverLegacyContent.d.ts +3 -0
  498. package/dist/components/Popover/internal/PopoverLegacy/PopoverLegacyTrigger.d.ts +9 -0
  499. package/dist/components/Popover/internal/PopoverLegacy/index.d.ts +8 -0
  500. package/dist/components/Popover/internal/PopoverLegacy/usePopoverLegacy.d.ts +121 -0
  501. package/dist/components/Popover/internal/PopoverLegacy/usePopoverLegacyContext.d.ts +79 -0
  502. package/dist/components/Popover/internal/compareElements.d.ts +1 -0
  503. package/dist/components/Popover/internal/usePopoverContext.d.ts +50 -0
  504. package/dist/components/ProgressBar/ProgressBar.d.ts +59 -14
  505. package/dist/components/Radio/Radio.d.ts +3 -44
  506. package/dist/components/Radio/RadioGroup.d.ts +61 -0
  507. package/dist/components/Radio/index.d.ts +2 -0
  508. package/dist/components/Radio/internal/Radio.d.ts +145 -0
  509. package/dist/components/Radio/types.d.ts +13 -0
  510. package/dist/components/SearchField/SearchField.d.ts +33 -8
  511. package/dist/components/SegmentedControl/SegmentedControl.d.ts +54 -49
  512. package/dist/components/SegmentedControl/SegmentedControlSegment.d.ts +69 -0
  513. package/dist/components/SegmentedControl/index.d.ts +1 -0
  514. package/dist/components/SegmentedControl/internal/SegmentedControlContext.d.ts +24 -0
  515. package/dist/components/SelectCard/SelectCard.d.ts +45 -16
  516. package/dist/components/SelectCard/SelectCardGroup.d.ts +24 -13
  517. package/dist/components/SelectCard/index.d.ts +1 -2
  518. package/dist/components/SelectCard/internal/SelectCardProvider.d.ts +83 -0
  519. package/dist/components/SelectTrigger/SelectTrigger.d.ts +22 -8
  520. package/dist/components/SelectTrigger/internal/SelectTriggerBase.d.ts +40 -0
  521. package/dist/components/SideNav/SideNav.d.ts +32 -114
  522. package/dist/components/SideNav/SideNavCollapsible.d.ts +73 -0
  523. package/dist/components/SideNav/SideNavGroup.d.ts +37 -0
  524. package/dist/components/SideNav/SideNavLink.d.ts +46 -0
  525. package/dist/components/SideNav/index.d.ts +4 -1
  526. package/dist/components/SideNav/internal/SideNavLink.d.ts +74 -0
  527. package/dist/components/SideNav/internal/utils.d.ts +16 -0
  528. package/dist/components/Skeleton/SkeletonCircle.d.ts +41 -0
  529. package/dist/components/Skeleton/SkeletonPill.d.ts +41 -0
  530. package/dist/components/Skeleton/SkeletonRectangle.d.ts +42 -0
  531. package/dist/components/Skeleton/SkeletonText.d.ts +52 -0
  532. package/dist/components/Skeleton/index.d.ts +16 -2
  533. package/dist/components/Spinner/Spinner.d.ts +11 -6
  534. package/dist/components/SrOnly/SrOnly.d.ts +3 -7
  535. package/dist/components/Stepper/Stepper.d.ts +119 -239
  536. package/dist/components/Stepper/StepperFinalPanel.d.ts +30 -0
  537. package/dist/components/Stepper/StepperList.d.ts +28 -0
  538. package/dist/components/Stepper/StepperNextButton.d.ts +73 -0
  539. package/dist/components/Stepper/StepperPanel.d.ts +52 -0
  540. package/dist/components/Stepper/StepperPrevButton.d.ts +44 -0
  541. package/dist/components/Stepper/StepperStep.d.ts +58 -0
  542. package/dist/components/Stepper/index.d.ts +6 -0
  543. package/dist/components/Stepper/internal/StepperContext.d.ts +15 -0
  544. package/dist/components/Switch/Switch.d.ts +47 -11
  545. package/dist/components/Tab/Tab.d.ts +22 -88
  546. package/dist/components/Tab/TabButton.d.ts +54 -0
  547. package/dist/components/Tab/TabList.d.ts +26 -0
  548. package/dist/components/Tab/TabPanel.d.ts +34 -0
  549. package/dist/components/Tab/index.d.ts +3 -0
  550. package/dist/components/Tab/internal/TabContext.d.ts +15 -0
  551. package/dist/components/Text/Text.d.ts +7 -17
  552. package/dist/components/Text/types.d.ts +93 -0
  553. package/dist/components/TextField/TextField.d.ts +4 -5
  554. package/dist/components/TextField/internal/TextField.d.ts +20 -0
  555. package/dist/components/Textarea/Textarea.d.ts +52 -19
  556. package/dist/components/Textarea/index.d.ts +1 -2
  557. package/dist/components/Textarea/types.d.ts +35 -0
  558. package/dist/components/TimeField/TimeField.d.ts +55 -18
  559. package/dist/components/TimeField/index.d.ts +2 -0
  560. package/dist/components/TimeField/internal/MaskedTimeInput.d.ts +87 -0
  561. package/dist/components/TimeField/internal/constants.d.ts +25 -0
  562. package/dist/components/TimeField/internal/maskito/timePlaceholderMask.d.ts +28 -0
  563. package/dist/components/TimeField/internal/types.d.ts +27 -0
  564. package/dist/components/TimeField/internal/utils/timeFormatting.d.ts +10 -0
  565. package/dist/components/TimeField/internal/utils/timeOptions.d.ts +24 -0
  566. package/dist/components/TimeField/internal/utils/timeParsing.d.ts +43 -0
  567. package/dist/components/TimeField/internal/utils/timeRounding.d.ts +58 -0
  568. package/dist/components/TimeField/internal/utils/timeValidation.d.ts +28 -0
  569. package/dist/components/Toast/Toaster.d.ts +4 -4
  570. package/dist/components/Toast/internal/Toast.d.ts +106 -0
  571. package/dist/components/Toast/internal/ToastProvider.d.ts +90 -0
  572. package/dist/components/Toast/internal/ToastStack.d.ts +81 -0
  573. package/dist/components/Toast/internal/Toaster.d.ts +108 -0
  574. package/dist/components/Toast/internal/ToasterPopover.d.ts +19 -0
  575. package/dist/components/Toast/internal/addOrUpdateToastHeight.d.ts +8 -0
  576. package/dist/components/Toast/internal/constants.d.ts +4 -0
  577. package/dist/components/Toast/internal/types.d.ts +18 -0
  578. package/dist/components/Toast/internal/useCloseToast.d.ts +7 -0
  579. package/dist/components/Toast/internal/useHotkeyFocus.d.ts +25 -0
  580. package/dist/components/Toast/internal/useShowMoreButtonPositionStyles.d.ts +6 -0
  581. package/dist/components/Toast/internal/useToastPositionStyles.d.ts +7 -0
  582. package/dist/components/Toast/internal/useToasts.d.ts +6 -0
  583. package/dist/components/Toast/toast.d.ts +113 -38
  584. package/dist/components/Toolbar/Toolbar.d.ts +99 -141
  585. package/dist/components/Toolbar/ToolbarButton.d.ts +41 -0
  586. package/dist/components/Toolbar/ToolbarButtonLink.d.ts +43 -0
  587. package/dist/components/Toolbar/ToolbarButtonToggle.d.ts +37 -0
  588. package/dist/components/Toolbar/ToolbarSelect.d.ts +108 -0
  589. package/dist/components/Toolbar/index.d.ts +6 -1
  590. package/dist/components/Toolbar/internal/ToolbarItemOverflowContext.d.ts +19 -0
  591. package/dist/components/Toolbar/internal/ToolbarItemWrapper.d.ts +33 -0
  592. package/dist/components/Toolbar/internal/ToolbarOverflowContext.d.ts +35 -0
  593. package/dist/components/Toolbar/internal/ToolbarOverflowMenu.d.ts +29 -0
  594. package/dist/components/Toolbar/internal/utils/accessibility.d.ts +21 -0
  595. package/dist/components/Toolbar/internal/utils/test.d.ts +29 -0
  596. package/dist/components/Toolbar/types.d.ts +48 -0
  597. package/dist/components/Tooltip/Tooltip.d.ts +73 -71
  598. package/dist/components/Tooltip/TooltipContent.d.ts +26 -0
  599. package/dist/components/Tooltip/TooltipTrigger.d.ts +30 -0
  600. package/dist/components/Tooltip/index.d.ts +2 -0
  601. package/dist/components/Tooltip/internal/TooltipContext.d.ts +92 -0
  602. package/dist/components/Tooltip/internal/TooltipLegacy/TooltipLegacy.d.ts +6 -0
  603. package/dist/components/Tooltip/internal/TooltipLegacy/TooltipLegacyContent.d.ts +3 -0
  604. package/dist/components/Tooltip/internal/TooltipLegacy/TooltipLegacyTrigger.d.ts +5 -0
  605. package/dist/components/Tooltip/internal/TooltipLegacy/index.d.ts +6 -0
  606. package/dist/components/Tooltip/internal/TooltipLegacy/useTooltipLegacy.d.ts +70 -0
  607. package/dist/components/Tooltip/internal/TooltipLegacy/useTooltipLegacyContext.d.ts +58 -0
  608. package/dist/components/Tooltip/internal/isNonInteractiveTrigger.d.ts +1 -0
  609. package/dist/components/Tooltip/internal/useTooltipContext.d.ts +47 -0
  610. package/dist/components/index.d.ts +1 -0
  611. package/dist/extends-Bg2s_OKl.js.map +1 -1
  612. package/dist/getActiveElement-BcSyVE7S.js +25 -0
  613. package/dist/getActiveElement-BcSyVE7S.js.map +1 -0
  614. package/dist/getKeyboardFocusableElements-QqcABz0D.js.map +1 -1
  615. package/dist/hooks/index.d.ts +0 -1
  616. package/dist/hooks/useAccessibleColor/index.d.ts +1 -1
  617. package/dist/hooks/useAccessibleColor/useAccessibleColor.d.ts +38 -0
  618. package/dist/hooks/useBreakpoint/index.d.ts +1 -1
  619. package/dist/hooks/useBreakpoint/useBreakpoint.d.ts +49 -0
  620. package/dist/hooks/useMergeRefs/index.d.ts +1 -1
  621. package/dist/hooks/useMergeRefs/useMergeRefs.d.ts +17 -0
  622. package/dist/hooks/usePrefersColorScheme/index.d.ts +1 -1
  623. package/dist/hooks/usePrefersColorScheme/usePrefersColorScheme.d.ts +16 -0
  624. package/dist/hooks/useSwipe/index.d.ts +1 -1
  625. package/dist/hooks/useSwipe/useSwipe.d.ts +32 -0
  626. package/dist/{Checkbox.module-DZ58p15b-BUsQC1lW.js → indeterminate_check_box-Bg24oeHy.js} +8 -8
  627. package/dist/indeterminate_check_box-Bg24oeHy.js.map +1 -0
  628. package/dist/{Checkbox.css → indeterminate_check_box.css} +0 -1
  629. package/dist/{index-CKfiQx8n-4nziUo7G.js → index-CqdP5W00.js} +5 -5
  630. package/dist/index-CqdP5W00.js.map +1 -0
  631. package/dist/{ProgressBar-BRvB-bD4.css → index.css} +0 -641
  632. package/dist/index.d.ts +1 -0
  633. package/dist/{index.esm-dyoPQhi6.js → index.esm-D889iexm.js} +115 -115
  634. package/dist/index.esm-D889iexm.js.map +1 -0
  635. package/dist/index.js +508 -72
  636. package/dist/index.js.map +1 -1
  637. package/dist/{index-CKfiQx8n.css → index2.css} +0 -1
  638. package/dist/info-CYpG6tcI.js +6 -0
  639. package/dist/info-CYpG6tcI.js.map +1 -0
  640. package/dist/internal/components/Helper/Helper.d.ts +18 -0
  641. package/dist/internal/components/Helper/index.d.ts +1 -0
  642. package/dist/internal/components/Label/Label.d.ts +77 -0
  643. package/dist/internal/components/Label/index.d.ts +2 -0
  644. package/dist/internal/components/index.d.ts +2 -0
  645. package/dist/internal/functions/childrenToString.d.ts +25 -0
  646. package/dist/internal/functions/getActiveElement.d.ts +1 -0
  647. package/dist/internal/functions/getInitial.d.ts +16 -0
  648. package/dist/internal/functions/getKeyboardFocusableElements.d.ts +25 -0
  649. package/dist/internal/functions/index.d.ts +9 -0
  650. package/dist/internal/functions/kebabize.d.ts +16 -0
  651. package/dist/internal/functions/mapOrder.d.ts +1 -0
  652. package/dist/internal/functions/safePopover.d.ts +2 -0
  653. package/dist/internal/functions/sizeToToken.d.ts +2 -0
  654. package/dist/internal/functions/supportsPopover.d.ts +1 -0
  655. package/dist/internal/hooks/index.d.ts +17 -0
  656. package/dist/internal/hooks/useDialogScrollLock/index.d.ts +1 -0
  657. package/dist/internal/hooks/useDialogScrollLock/useDialogScrollLock.d.ts +40 -0
  658. package/dist/internal/hooks/useDialogTransitionStates/index.d.ts +1 -0
  659. package/dist/internal/hooks/useDialogTransitionStates/useDialogTransitionStates.d.ts +32 -0
  660. package/dist/internal/hooks/useFocusWithin/index.d.ts +1 -0
  661. package/dist/internal/hooks/useFocusWithin/useFocusWithin.d.ts +33 -0
  662. package/dist/internal/hooks/useIntersectionObserver/index.d.ts +1 -0
  663. package/dist/internal/hooks/useIntersectionObserver/useIntersectionObserver.d.ts +67 -0
  664. package/dist/internal/hooks/useIsScrollable/index.d.ts +1 -0
  665. package/dist/internal/hooks/useIsScrollable/useIsScrollable.d.ts +6 -0
  666. package/dist/internal/hooks/useKeyboardFocusables/index.d.ts +1 -0
  667. package/dist/internal/hooks/useKeyboardFocusables/useKeyboardFocusables.d.ts +54 -0
  668. package/dist/internal/hooks/useLayoutPropsUtil/index.d.ts +1 -0
  669. package/dist/internal/hooks/useLayoutPropsUtil/useLayoutPropsUtil.d.ts +56 -0
  670. package/dist/internal/hooks/useNumberField/index.d.ts +1 -0
  671. package/dist/internal/hooks/useNumberField/internal/useNumberFieldInputMode.d.ts +24 -0
  672. package/dist/internal/hooks/useNumberField/internal/useNumberFieldKeys.d.ts +43 -0
  673. package/dist/internal/hooks/useNumberField/useNumberField.d.ts +118 -0
  674. package/dist/internal/hooks/useOnClickOutside/index.d.ts +1 -0
  675. package/dist/internal/hooks/useOnClickOutside/useOnClickOutside.d.ts +34 -0
  676. package/dist/internal/hooks/useOpenCloseTransitionStates/index.d.ts +1 -0
  677. package/dist/internal/hooks/useOpenCloseTransitionStates/useOpenCloseTransitionStates.d.ts +51 -0
  678. package/dist/internal/hooks/useOptionallyControlledState/index.d.ts +1 -0
  679. package/dist/internal/hooks/useOptionallyControlledState/useOptionallyControlledState.d.ts +59 -0
  680. package/dist/internal/hooks/usePlatform/index.d.ts +1 -0
  681. package/dist/internal/hooks/usePlatform/usePlatform.d.ts +65 -0
  682. package/dist/internal/hooks/usePopoverCloseDelayWorkaround/index.d.ts +1 -0
  683. package/dist/internal/hooks/usePopoverCloseDelayWorkaround/usePopoverCloseDelayWorkaround.d.ts +1 -0
  684. package/dist/internal/hooks/usePopoverSupport/index.d.ts +1 -0
  685. package/dist/internal/hooks/usePopoverSupport/usePopoverSupport.d.ts +1 -0
  686. package/dist/internal/hooks/usePopoverTransitionStates/index.d.ts +1 -0
  687. package/dist/internal/hooks/usePopoverTransitionStates/usePopoverTransitionStates.d.ts +25 -0
  688. package/dist/internal/hooks/usePrevious/index.d.ts +1 -0
  689. package/dist/internal/hooks/usePrevious/usePrevious.d.ts +1 -0
  690. package/dist/internal/hooks/useTypeAhead/index.d.ts +1 -0
  691. package/dist/internal/hooks/useTypeAhead/useTypeAhead.d.ts +15 -0
  692. package/dist/internal/types/index.d.ts +1 -0
  693. package/dist/internal/types/props.d.ts +7 -0
  694. package/dist/internal/utils/index.d.ts +1 -0
  695. package/dist/makeZeroShortcutPreprocessor-CxsiGTRW.js +47 -0
  696. package/dist/makeZeroShortcutPreprocessor-CxsiGTRW.js.map +1 -0
  697. package/dist/providers/AnvilProvider/AnvilProvider.d.ts +29 -6
  698. package/dist/providers/LocalizationProvider/LocalizationContext.d.ts +6 -0
  699. package/dist/providers/LocalizationProvider/LocalizationProvider.d.ts +17 -0
  700. package/dist/providers/LocalizationProvider/LocalizationStoryWrapper.d.ts +6 -0
  701. package/dist/providers/LocalizationProvider/index.d.ts +2 -1
  702. package/dist/providers/LocalizationProvider/useTranslations.d.ts +4 -0
  703. package/dist/providers/PortalProvider/PortalProvider.d.ts +10 -0
  704. package/dist/providers/PortalProvider/index.d.ts +1 -1
  705. package/dist/providers/ThemeProvider/ThemeProvider.d.ts +14 -4
  706. package/dist/providers/ThemeProvider/index.d.ts +7 -1
  707. package/dist/providers/ThemeProvider/internal/ThemeProviderContext.d.ts +6 -0
  708. package/dist/providers/ThemeProvider/useTheme.d.ts +1 -0
  709. package/dist/types/MaxLengthCounterProps.d.ts +8 -0
  710. package/dist/types/ianaZones.d.ts +2 -0
  711. package/dist/types/index.d.ts +4 -1
  712. package/dist/types/locales.d.ts +3 -0
  713. package/dist/types/props.d.ts +66 -0
  714. package/dist/{useAccessibleColor-Dc6B_M-Z-BYKjkGRg.js → useAccessibleColor-BYKjkGRg.js} +1 -1
  715. package/dist/useAccessibleColor-BYKjkGRg.js.map +1 -0
  716. package/dist/useAccessibleColor.js +1 -1
  717. package/dist/{useBreakpoint-7QkBkSeP-Cv5fnZxs.js → useBreakpoint-Cv5fnZxs.js} +1 -1
  718. package/dist/useBreakpoint-Cv5fnZxs.js.map +1 -0
  719. package/dist/useBreakpoint.js +1 -1
  720. package/dist/useDateFieldOrchestration-Cqa7dxtr.js +138 -0
  721. package/dist/useDateFieldOrchestration-Cqa7dxtr.js.map +1 -0
  722. package/dist/useDialogTransitionStates-2NaE_noq.js +64 -0
  723. package/dist/useDialogTransitionStates-2NaE_noq.js.map +1 -0
  724. package/dist/{useFocusWithin-Cxz14Zyz-DEudRcSI.js → useFocusWithin-BhU7hoAD.js} +2 -10
  725. package/dist/useFocusWithin-BhU7hoAD.js.map +1 -0
  726. package/dist/{Combobox-BOpe_NUu.js → useInfiniteCombobox-BN2uGhBh.js} +1791 -1847
  727. package/dist/useInfiniteCombobox-BN2uGhBh.js.map +1 -0
  728. package/dist/{Combobox.css → useInfiniteCombobox.css} +102 -45
  729. package/dist/{useLayoutPropsUtil-DWACCL8v-CZNrcQT-.js → useLayoutPropsUtil-DjD5IMh0.js} +2 -2
  730. package/dist/useLayoutPropsUtil-DjD5IMh0.js.map +1 -0
  731. package/dist/{useMergeRefs-Bde85AWI-Bde85AWI.js → useMergeRefs-Bde85AWI.js} +1 -1
  732. package/dist/useMergeRefs-Bde85AWI.js.map +1 -0
  733. package/dist/useMergeRefs.js +1 -1
  734. package/dist/useOnClickOutside-BHEWMLa9.js +170 -0
  735. package/dist/useOnClickOutside-BHEWMLa9.js.map +1 -0
  736. package/dist/{useOptionallyControlledState-DbDuos5L-DbDuos5L.js → useOptionallyControlledState-DbDuos5L.js} +1 -1
  737. package/dist/useOptionallyControlledState-DbDuos5L.js.map +1 -0
  738. package/dist/{usePopoverCloseDelayWorkaround-BZcjPkvT-BZcjPkvT.js → usePopoverCloseDelayWorkaround-BZcjPkvT.js} +1 -1
  739. package/dist/usePopoverCloseDelayWorkaround-BZcjPkvT.js.map +1 -0
  740. package/dist/{usePopoverSupport-B9Lsqryr-CYJxXiun.js → usePopoverSupport-DIjjfodl.js} +2 -2
  741. package/dist/usePopoverSupport-DIjjfodl.js.map +1 -0
  742. package/dist/{usePrefersColorScheme-_hT7dK7_-_hT7dK7_.js → usePrefersColorScheme-_hT7dK7_.js} +1 -1
  743. package/dist/usePrefersColorScheme-_hT7dK7_.js.map +1 -0
  744. package/dist/usePrefersColorScheme.js +1 -1
  745. package/dist/usePrevious-Bvq-5auG.js +12 -0
  746. package/dist/usePrevious-Bvq-5auG.js.map +1 -0
  747. package/dist/{useSwipe-CULmVQEk-CULmVQEk.js → useSwipe-CULmVQEk.js} +1 -1
  748. package/dist/useSwipe-CULmVQEk.js.map +1 -0
  749. package/dist/useSwipe.js +1 -1
  750. package/dist/useTheme-B4i6a3bM.js +9 -0
  751. package/dist/useTheme-B4i6a3bM.js.map +1 -0
  752. package/package.json +29 -4
  753. package/dist/Alert-C3WoRkeN-D_6Yf63F.js +0 -98
  754. package/dist/Alert-C3WoRkeN-D_6Yf63F.js.map +0 -1
  755. package/dist/Alert-DipY5OlC.js +0 -23
  756. package/dist/Alert-DipY5OlC.js.map +0 -1
  757. package/dist/Announcement-ButSjdLn.js.map +0 -1
  758. package/dist/AnvilProvider-BLYCqIbb.js +0 -16
  759. package/dist/AnvilProvider-BLYCqIbb.js.map +0 -1
  760. package/dist/Avatar-C7cbRTCt-DCvzmr2C.js.map +0 -1
  761. package/dist/Avatar-DREZJN2K.js.map +0 -1
  762. package/dist/Badge-7aZfE-LH.js.map +0 -1
  763. package/dist/Breadcrumbs-BMbkH9hL-BUjQksuj.js.map +0 -1
  764. package/dist/Breadcrumbs-fthw3qaL.js +0 -36
  765. package/dist/Breadcrumbs-fthw3qaL.js.map +0 -1
  766. package/dist/Button-BaHFf1AT-BQy-PFB5.js.map +0 -1
  767. package/dist/Button-DMQKV2sV.js +0 -27
  768. package/dist/Button-DMQKV2sV.js.map +0 -1
  769. package/dist/Button.module-BqTaW8HK-BqTaW8HK.js +0 -25
  770. package/dist/Button.module-BqTaW8HK-BqTaW8HK.js.map +0 -1
  771. package/dist/ButtonCompound-Cs2A5X-Z-Dl3InVab.js +0 -49
  772. package/dist/ButtonCompound-Cs2A5X-Z-Dl3InVab.js.map +0 -1
  773. package/dist/ButtonCompound-DGuF0zzT.js +0 -25
  774. package/dist/ButtonCompound-DGuF0zzT.js.map +0 -1
  775. package/dist/ButtonLink-5qlX0uZx-b9H7MGhk.js.map +0 -1
  776. package/dist/ButtonLink-B0NJuVk5.js +0 -28
  777. package/dist/ButtonLink-B0NJuVk5.js.map +0 -1
  778. package/dist/ButtonToggle-Bm4KRl3o-B1-LbfjY.js.map +0 -1
  779. package/dist/ButtonToggle-CKVyEODc.js +0 -27
  780. package/dist/ButtonToggle-CKVyEODc.js.map +0 -1
  781. package/dist/Calendar-BvftKznl-D4_xp9Rv.js.map +0 -1
  782. package/dist/Calendar-DdOR9T_K.js +0 -130
  783. package/dist/Calendar-DdOR9T_K.js.map +0 -1
  784. package/dist/Card-U2IJPk8B.js +0 -11
  785. package/dist/Card-U2IJPk8B.js.map +0 -1
  786. package/dist/Card-ZknG-yim-7W6rYSFV.js.map +0 -1
  787. package/dist/Checkbox-DyHm7Ntt-DYw5QL3l.js.map +0 -1
  788. package/dist/Checkbox-zg8LVvB6.js.map +0 -1
  789. package/dist/Checkbox.module-DZ58p15b-BUsQC1lW.js.map +0 -1
  790. package/dist/Chip-DXQiqF8k.js +0 -34
  791. package/dist/Chip-DXQiqF8k.js.map +0 -1
  792. package/dist/Chip-MbBEXeAm-DmAcwPRJ.js.map +0 -1
  793. package/dist/Combobox-BOpe_NUu.js.map +0 -1
  794. package/dist/DateField-Bqsnpt8S.js.map +0 -1
  795. package/dist/DateFieldRange-Cax7Kl9A.js +0 -22
  796. package/dist/DateFieldRange-Cax7Kl9A.js.map +0 -1
  797. package/dist/DateFieldSingle-bMX770gU.js +0 -22
  798. package/dist/DateFieldSingle-bMX770gU.js.map +0 -1
  799. package/dist/DateFieldYearless-ClNYTBK_.js +0 -22
  800. package/dist/DateFieldYearless-ClNYTBK_.js.map +0 -1
  801. package/dist/DateFieldYearless-pejtv7-x-DBHpW83U.js +0 -1373
  802. package/dist/DateFieldYearless-pejtv7-x-DBHpW83U.js.map +0 -1
  803. package/dist/DaysOfTheWeek-ImBPjEvl.js.map +0 -1
  804. package/dist/Details-DVg0EOkv.js.map +0 -1
  805. package/dist/Dialog-BR6f-XRH.js.map +0 -1
  806. package/dist/Divider-B0xGfyWE-f5-ThMiS.js.map +0 -1
  807. package/dist/Divider-azRKjITG.js +0 -13
  808. package/dist/Divider-azRKjITG.js.map +0 -1
  809. package/dist/DndSort-Cl0FCNQm.js +0 -5546
  810. package/dist/DndSort-Cl0FCNQm.js.map +0 -1
  811. package/dist/Drawer-0ayAWgAA.js +0 -142
  812. package/dist/Drawer-0ayAWgAA.js.map +0 -1
  813. package/dist/EditCard-B_n1uFkv.js.map +0 -1
  814. package/dist/FieldLabel-DWl5qsRY.js +0 -13
  815. package/dist/FieldLabel-DWl5qsRY.js.map +0 -1
  816. package/dist/FieldMessage-Bobp105T-DYhStLY4.js.map +0 -1
  817. package/dist/FieldMessage-DkJ0K5s-.js +0 -13
  818. package/dist/FieldMessage-DkJ0K5s-.js.map +0 -1
  819. package/dist/Flex-CiK7uNUu-BfxHG4L0.js.map +0 -1
  820. package/dist/Flex-Ln6PmaDl.js +0 -11
  821. package/dist/Flex-Ln6PmaDl.js.map +0 -1
  822. package/dist/Grid-CMcDeSYT.js +0 -33
  823. package/dist/Grid-CMcDeSYT.js.map +0 -1
  824. package/dist/Grid-DFAd8mTe.js.map +0 -1
  825. package/dist/HammerProvider-vt3DkcCZ-06BeBrPu.js.map +0 -1
  826. package/dist/Helper-h7k80qls-DHPFHTvI.js.map +0 -1
  827. package/dist/Icon-B6HmlQiR-BxQkO3X5.js.map +0 -1
  828. package/dist/Icon-BgKqBmlj.js +0 -13
  829. package/dist/Icon-BgKqBmlj.js.map +0 -1
  830. package/dist/InputMask-BOUlnmiF.js +0 -30
  831. package/dist/InputMask-BOUlnmiF.js.map +0 -1
  832. package/dist/InputMask-BuO8lNAB-DdxdO5Jw.js.map +0 -1
  833. package/dist/Link-C4N_cV3i.js +0 -45
  834. package/dist/Link-C4N_cV3i.js.map +0 -1
  835. package/dist/Link-MiffPrW9-Cx1zYWSF.js +0 -67
  836. package/dist/Link-MiffPrW9-Cx1zYWSF.js.map +0 -1
  837. package/dist/ListView-DVPhWDCM.js.map +0 -1
  838. package/dist/ListView.module-MVsNF0X0-MVsNF0X0.js.map +0 -1
  839. package/dist/Listbox-B-WUuj-_-BWWeWtLW.js.map +0 -1
  840. package/dist/Listbox-Di6OS1Fk.js +0 -67
  841. package/dist/Listbox-Di6OS1Fk.js.map +0 -1
  842. package/dist/Listbox.module-DcBE8Zmo-DcBE8Zmo.js.map +0 -1
  843. package/dist/LocalizationContext-UsmB5mnR-BUIYgNp2.js.map +0 -1
  844. package/dist/LocalizationProvider-VtRAfGBT-Bo8XuFoE.js.map +0 -1
  845. package/dist/Menu-DHCOMJx2.js +0 -60
  846. package/dist/Menu-DHCOMJx2.js.map +0 -1
  847. package/dist/Menu-TtVJnSrA-yBYichuJ.js.map +0 -1
  848. package/dist/NumberField-C9lMsPMD.js.map +0 -1
  849. package/dist/Overflow-CFClqFVC-BKqOBCan.js +0 -393
  850. package/dist/Overflow-CFClqFVC-BKqOBCan.js.map +0 -1
  851. package/dist/Overflow-w-3_04fS.js +0 -69
  852. package/dist/Overflow-w-3_04fS.js.map +0 -1
  853. package/dist/Page-CGAylFKz.js.map +0 -1
  854. package/dist/Pagination-DU_qvFRR.js.map +0 -1
  855. package/dist/Popover-BPiqdyu1.js +0 -135
  856. package/dist/Popover-BPiqdyu1.js.map +0 -1
  857. package/dist/Popover-CU2cGVD8-Casl3vM1.js.map +0 -1
  858. package/dist/PortalProvider-9lXkQ0xY-BKoGegS1.js.map +0 -1
  859. package/dist/ProgressBar-BRvB-bD4-DppwBrFg.js +0 -2616
  860. package/dist/ProgressBar-BRvB-bD4-DppwBrFg.js.map +0 -1
  861. package/dist/ProgressBar-lPKNTz6i.js +0 -13
  862. package/dist/ProgressBar-lPKNTz6i.js.map +0 -1
  863. package/dist/Radio-DQ_VQFGZ-SdFBlDnE.js.map +0 -1
  864. package/dist/Radio-DnOuBPi_.js.map +0 -1
  865. package/dist/SearchField-BGPqpnVd.js.map +0 -1
  866. package/dist/SegmentedControl-DY1PSYmd.js.map +0 -1
  867. package/dist/SelectCard-LSAl_7Lh-BYtfe9PC.js.map +0 -1
  868. package/dist/SelectCardGroup-u_QKdeRZ.js +0 -49
  869. package/dist/SelectCardGroup-u_QKdeRZ.js.map +0 -1
  870. package/dist/SelectTrigger-C2w-flvK.js.map +0 -1
  871. package/dist/SelectTrigger.css +0 -16
  872. package/dist/SelectTriggerBase-Dj154EN4-BtTvR-Nh.js.map +0 -1
  873. package/dist/SideNav-Bh_pVeEw.js.map +0 -1
  874. package/dist/Skeleton-COxTdwjO.js +0 -398
  875. package/dist/Skeleton-COxTdwjO.js.map +0 -1
  876. package/dist/Spinner-C1r3COiQ.js +0 -13
  877. package/dist/Spinner-C1r3COiQ.js.map +0 -1
  878. package/dist/Spinner-DliJVzdW-BQlZEj4V.js.map +0 -1
  879. package/dist/SrOnly-BsKDHetF-B93X65F1.js.map +0 -1
  880. package/dist/SrOnly-C_I8eH4C.js +0 -9
  881. package/dist/SrOnly-C_I8eH4C.js.map +0 -1
  882. package/dist/Stepper-BtbDBIzz.js.map +0 -1
  883. package/dist/Switch-DAQFzi-X.js.map +0 -1
  884. package/dist/Tab-BSC7e4rM.js.map +0 -1
  885. package/dist/Text-35Ve4Uq0.js +0 -13
  886. package/dist/Text-35Ve4Uq0.js.map +0 -1
  887. package/dist/Text-CED_yrId-DsRYZw2-.js.map +0 -1
  888. package/dist/TextField-B364hxo8.js +0 -29
  889. package/dist/TextField-B364hxo8.js.map +0 -1
  890. package/dist/TextField-DoPP1CQ--UWAOTYiv.js.map +0 -1
  891. package/dist/TextField.module-EkKlj66e-EkKlj66e.js.map +0 -1
  892. package/dist/Textarea-D2AAZ1L3.js.map +0 -1
  893. package/dist/ThemeProvider-DwJqkbiU.js +0 -7
  894. package/dist/ThemeProvider-DwJqkbiU.js.map +0 -1
  895. package/dist/ThemeProvider-Q3ji6Rpx-DBXlAuQ8.js.map +0 -1
  896. package/dist/TimeField-tA9uo4lK.js.map +0 -1
  897. package/dist/Toolbar-CSWhVSUM.js.map +0 -1
  898. package/dist/Tooltip-C2HQDvYj.js +0 -73
  899. package/dist/Tooltip-C2HQDvYj.js.map +0 -1
  900. package/dist/check_circle-BGfigqq-.js.map +0 -1
  901. package/dist/childrenToString-Bz9MqbHb-Bz9MqbHb.js.map +0 -1
  902. package/dist/components/Skeleton/Skeleton.d.ts +0 -153
  903. package/dist/floating-ui.react-BFNinq1w.js.map +0 -1
  904. package/dist/hooks/useLinkStyles/index.d.ts +0 -1
  905. package/dist/index-CKfiQx8n-4nziUo7G.js.map +0 -1
  906. package/dist/index.esm-dyoPQhi6.js.map +0 -1
  907. package/dist/toast-BhV_Ask2.js.map +0 -1
  908. package/dist/useAccessibleColor-Dc6B_M-Z-BYKjkGRg.js.map +0 -1
  909. package/dist/useBreakpoint-7QkBkSeP-Cv5fnZxs.js.map +0 -1
  910. package/dist/useFocusWithin-Cxz14Zyz-DEudRcSI.js.map +0 -1
  911. package/dist/useLayoutPropsUtil-DWACCL8v-CZNrcQT-.js.map +0 -1
  912. package/dist/useLinkStyles.d.ts +0 -6
  913. package/dist/useLinkStyles.js +0 -2
  914. package/dist/useLinkStyles.js.map +0 -1
  915. package/dist/useMergeRefs-Bde85AWI-Bde85AWI.js.map +0 -1
  916. package/dist/useOptionallyControlledState-DbDuos5L-DbDuos5L.js.map +0 -1
  917. package/dist/usePopoverCloseDelayWorkaround-BZcjPkvT-BZcjPkvT.js.map +0 -1
  918. package/dist/usePopoverSupport-B9Lsqryr-CYJxXiun.js.map +0 -1
  919. package/dist/usePrefersColorScheme-_hT7dK7_-_hT7dK7_.js.map +0 -1
  920. package/dist/useSwipe-CULmVQEk-CULmVQEk.js.map +0 -1
  921. /package/dist/components/SideNav/{SideNavProvider.d.ts → internal/SideNavProvider.d.ts} +0 -0
@@ -1,30 +1,102 @@
1
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { useTrackingId } from './useTrackingId.js';
3
- import React__default, { useRef, useEffect, useMemo, useCallback, useLayoutEffect, useReducer, cloneElement, Component, useState, createContext, useId, useContext, useDeferredValue } from 'react';
4
- import { g as getDefaultExportFromCjs, c as cx } from './index-tZvMCc77.js';
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
+ import React__default, { forwardRef, useState, useEffect, createContext, useContext, useRef, useMemo, useCallback, useLayoutEffect, useReducer, cloneElement, Component, useId, useDeferredValue } from 'react';
3
+ import { c as cx, g as getDefaultExportFromCjs } from './index-tZvMCc77.js';
5
4
  import { a as _extends, _ as _objectWithoutPropertiesLoose } from './extends-Bg2s_OKl.js';
6
- import { e as PopoverLegacy, P as Popover, u as usePopoverLegacyContext, f as usePopoverContext } from './Popover-CU2cGVD8-Casl3vM1.js';
7
- import { D as Divider } from './Divider-B0xGfyWE-f5-ThMiS.js';
8
- import { s as styles$3 } from './Listbox.module-DcBE8Zmo-DcBE8Zmo.js';
9
- import { L as Label, s as supportsPopover } from './ProgressBar-BRvB-bD4-DppwBrFg.js';
10
- import { F as Flex } from './Flex-CiK7uNUu-BfxHG4L0.js';
11
- import { B as Button } from './Button-BaHFf1AT-BQy-PFB5.js';
12
- import { C as Chip } from './Chip-MbBEXeAm-DmAcwPRJ.js';
5
+ import { P as Popover, u as usePopoverLegacyContext, f as usePopoverContext } from './Popover-r26xMIfm.js';
6
+ import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjD5IMh0.js';
7
+ import { s as supportsPopover } from './DrawerContext-DboTgTmo.js';
8
+ import { i as isMultiple, u as useDownshiftEnvironment$1, a as defaultItemToKey$1, d as defaultItemToString$1, S as SelectTriggerBase, A as ADD_NEW$1 } from './SelectTriggerBase-BMMxnXrw.js';
9
+ import { s as styles$4 } from './Listbox.module-DcBE8Zmo.js';
10
+ import { T as Text } from './Text-BqvcbXyp.js';
11
+ import { F as Flex } from './Flex-BdQMekvA.js';
12
+ import { B as Button } from './Button-BxFXQ0-n.js';
13
+ import { C as Chip } from './Chip-Bz-vlQ4D.js';
13
14
  import { S as SvgClose } from './close-DZj38AEh.js';
14
15
  import { S as SvgChevronRight } from './chevron_right-BdpsxX7x.js';
15
- import { H as Helper } from './Helper-h7k80qls-DHPFHTvI.js';
16
- import { T as Text } from './Text-CED_yrId-DsRYZw2-.js';
17
- import { S as Spinner } from './Spinner-DliJVzdW-BQlZEj4V.js';
18
- import { s as styles$2 } from './ListView.module-MVsNF0X0-MVsNF0X0.js';
19
- import { I as Icon$2 } from './Icon-B6HmlQiR-BxQkO3X5.js';
20
- import { c as checkboxStyles, S as SvgIndeterminateCheckBox, a as SvgCheckBox, b as SvgCheckBoxOutlineBlank } from './Checkbox.module-DZ58p15b-BUsQC1lW.js';
16
+ import { S as SvgInfo } from './info-CYpG6tcI.js';
17
+ import { S as SrOnly } from './SrOnly-CTsYSuby.js';
18
+ import { T as Tooltip } from './Tooltip-BI3Xs75X.js';
19
+ import { I as Icon$2 } from './Icon-D8SPKeO4.js';
20
+ import { H as Helper } from './Helper-BkIDJqgA.js';
21
+ import { A as Avatar } from './Avatar-CyGjhToG.js';
22
+ import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
23
+ import { useTrackingId } from './useTrackingId.js';
24
+ import { s as styles$3 } from './ListView.module-MVsNF0X0.js';
25
+ import { c as checkboxStyles, S as SvgIndeterminateCheckBox, a as SvgCheckBox, b as SvgCheckBoxOutlineBlank } from './indeterminate_check_box-Bg24oeHy.js';
21
26
  import { S as SvgCheck } from './check-Cf67OWrZ.js';
22
- import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v-CZNrcQT-.js';
23
- import { u as useDownshiftEnvironment$1, a as defaultItemToKey$1, d as defaultItemToString$1, A as ADD_NEW$1, S as SelectTriggerBase } from './SelectTriggerBase-Dj154EN4-BtTvR-Nh.js';
24
- import { c as childrenToString } from './childrenToString-Bz9MqbHb-Bz9MqbHb.js';
25
- import { a as Avatar } from './Avatar-C7cbRTCt-DCvzmr2C.js';
27
+ import { S as Spinner } from './Spinner-wmO8Epw0.js';
28
+
29
+ import './useInfiniteCombobox.css';const label = "_label_jfzvd_2";
30
+ const required = "_required_jfzvd_46";
31
+ const styles$2 = {
32
+ label: label,
33
+ "top-container": "_top-container_jfzvd_37",
34
+ "label-text": "_label-text_jfzvd_42",
35
+ required: required,
36
+ "info-trigger": "_info-trigger_jfzvd_51",
37
+ "info-content": "_info-content_jfzvd_56"
38
+ };
39
+
40
+ const LabelMoreInfoIcon = ({
41
+ moreInfo,
42
+ openMoreInfo
43
+ }) => {
44
+ const [open, setOpen] = useState(openMoreInfo);
45
+ useEffect(() => {
46
+ if (openMoreInfo) {
47
+ setOpen(true);
48
+ } else {
49
+ setOpen(false);
50
+ setTimeout(() => {
51
+ setOpen(void 0);
52
+ });
53
+ }
54
+ }, [openMoreInfo]);
55
+ return /* @__PURE__ */ jsxs(
56
+ Tooltip,
57
+ {
58
+ open,
59
+ placement: "top",
60
+ offset: 5,
61
+ fallbackPlacements: ["right", "bottom", "left"],
62
+ children: [
63
+ /* @__PURE__ */ jsx(Tooltip.Trigger, { className: styles$2["info-trigger"], children: /* @__PURE__ */ jsx(Icon$2, { svg: SvgInfo }) }),
64
+ /* @__PURE__ */ jsx(Tooltip.Content, { className: styles$2["info-content"], children: moreInfo })
65
+ ]
66
+ }
67
+ );
68
+ };
69
+ const Label = forwardRef((props, ref) => {
70
+ const { children, className, moreInfo, required, openMoreInfo, ...rest } = props;
71
+ const LabelClassNames = cx([styles$2["label"]], className);
72
+ return /* @__PURE__ */ jsxs("label", { className: LabelClassNames, "data-anv": "label", ref, ...rest, children: [
73
+ /* @__PURE__ */ jsxs("div", { className: styles$2["top-container"], "aria-atomic": "true", children: [
74
+ /* @__PURE__ */ jsxs("span", { className: styles$2["label-text"], children: [
75
+ children,
76
+ required ? /* @__PURE__ */ jsxs(Fragment, { children: [
77
+ /* @__PURE__ */ jsx("span", { "aria-hidden": true, className: styles$2["required"], children: "*" }),
78
+ /* @__PURE__ */ jsx(SrOnly, { children: "Required" })
79
+ ] }) : null
80
+ ] }),
81
+ moreInfo ? /* @__PURE__ */ jsx(LabelMoreInfoIcon, { moreInfo, openMoreInfo }) : null
82
+ ] }),
83
+ moreInfo ? /* @__PURE__ */ jsx(SrOnly, { children: moreInfo }) : null
84
+ ] });
85
+ });
86
+ Label.displayName = "Label";
87
+
88
+ const ComboboxContext = createContext(null);
89
+ const useCombobox$1 = function() {
90
+ const context = useContext(
91
+ ComboboxContext
92
+ );
93
+ if (context == null) {
94
+ throw new Error("useCombobox must be wrapped in <Combobox />");
95
+ }
96
+ return context;
97
+ };
26
98
 
27
- import './Combobox.css';function _setPrototypeOf(t, e) {
99
+ function _setPrototypeOf(t, e) {
28
100
  return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
29
101
  return t.__proto__ = e, t;
30
102
  }, _setPrototypeOf(t, e);
@@ -4518,12 +4590,12 @@ var _excluded$1 = ["onMouseLeave", "refKey", "ref"],
4518
4590
  _excluded2$1 = ["item", "index", "refKey", "ref", "onMouseMove", "onMouseDown", "onClick", "onPress", "disabled"],
4519
4591
  _excluded3 = ["onClick", "onPress", "refKey", "ref"],
4520
4592
  _excluded4 = ["onKeyDown", "onChange", "onInput", "onBlur", "onChangeText", "onClick", "refKey", "ref"];
4521
- useCombobox$1.stateChangeTypes = stateChangeTypes$1;
4522
- function useCombobox$1(userProps) {
4593
+ useCombobox.stateChangeTypes = stateChangeTypes$1;
4594
+ function useCombobox(userProps) {
4523
4595
  if (userProps === void 0) {
4524
4596
  userProps = {};
4525
4597
  }
4526
- validatePropTypes$1(userProps, useCombobox$1);
4598
+ validatePropTypes$1(userProps, useCombobox);
4527
4599
  // Props defaults and destructuring.
4528
4600
  var props = _extends({}, defaultProps$1, userProps);
4529
4601
  var items = props.items,
@@ -6420,7 +6492,7 @@ const ComboboxLegacySingle = function(props) {
6420
6492
  setInputValue,
6421
6493
  inputValue,
6422
6494
  closeMenu
6423
- } = useCombobox$1({
6495
+ } = useCombobox({
6424
6496
  ...rest,
6425
6497
  items: combinedItems,
6426
6498
  itemToString,
@@ -6432,14 +6504,14 @@ const ComboboxLegacySingle = function(props) {
6432
6504
  stateReducer(state, { type, changes }) {
6433
6505
  switch (type) {
6434
6506
  // keep ComboboxLegacy open onBlur, will call close using Popover's onOutsidePress
6435
- case useCombobox$1.stateChangeTypes.InputBlur:
6507
+ case useCombobox.stateChangeTypes.InputBlur:
6436
6508
  return {
6437
6509
  ...changes,
6438
6510
  isOpen: open != null ? open : true,
6439
6511
  highlightedIndex: state.highlightedIndex
6440
6512
  };
6441
- case useCombobox$1.stateChangeTypes.InputKeyDownEnter:
6442
- case useCombobox$1.stateChangeTypes.ItemClick:
6513
+ case useCombobox.stateChangeTypes.InputKeyDownEnter:
6514
+ case useCombobox.stateChangeTypes.ItemClick:
6443
6515
  if (changes.selectedItem === ADD_NEW) {
6444
6516
  const stateInputValue = state.inputValue;
6445
6517
  setTimeout(() => {
@@ -6458,7 +6530,7 @@ const ComboboxLegacySingle = function(props) {
6458
6530
  };
6459
6531
  }
6460
6532
  // prevent this from closing the popover by default
6461
- case useCombobox$1.stateChangeTypes.InputClick:
6533
+ case useCombobox.stateChangeTypes.InputClick:
6462
6534
  return { ...changes, isOpen: open != null ? open : true };
6463
6535
  default:
6464
6536
  return changes;
@@ -6467,7 +6539,7 @@ const ComboboxLegacySingle = function(props) {
6467
6539
  onInputValueChange: onInputValueChange ?? (({ inputValue: inputValue2, type, selectedItem: selectedItem2 }) => {
6468
6540
  const inputValueMatchesSelectedItem = selectedItem2 != null && inputValue2 === itemToString(selectedItem2);
6469
6541
  const inputValueIsEmpty = inputValue2 == null || inputValue2 === "";
6470
- if (type === useCombobox$1.stateChangeTypes.InputKeyDownEnter || type === useCombobox$1.stateChangeTypes.ItemClick) {
6542
+ if (type === useCombobox.stateChangeTypes.InputKeyDownEnter || type === useCombobox.stateChangeTypes.ItemClick) {
6471
6543
  setItems(itemsProp);
6472
6544
  setHasExactMatch(true);
6473
6545
  } else if (!inputValueMatchesSelectedItem && !inputValueIsEmpty) {
@@ -6594,7 +6666,7 @@ const ComboboxLegacySingle = function(props) {
6594
6666
  style: { ...style, ...layoutStyles },
6595
6667
  ref: wrapperDivRef,
6596
6668
  children: /* @__PURE__ */ jsx(
6597
- PopoverLegacy,
6669
+ Popover,
6598
6670
  {
6599
6671
  root,
6600
6672
  open: isOpen,
@@ -6734,7 +6806,7 @@ const ComboboxLegacyMultiple = function(props) {
6734
6806
  setInputValue,
6735
6807
  inputValue,
6736
6808
  closeMenu
6737
- } = useCombobox$1({
6809
+ } = useCombobox({
6738
6810
  ...rest,
6739
6811
  items: combinedItems,
6740
6812
  itemToString,
@@ -6747,7 +6819,7 @@ const ComboboxLegacyMultiple = function(props) {
6747
6819
  stateReducer(state, { type, changes }) {
6748
6820
  switch (type) {
6749
6821
  // keep ComboboxLegacy open onBlur, will call close using Popover's onOutsidePress
6750
- case useCombobox$1.stateChangeTypes.InputBlur:
6822
+ case useCombobox.stateChangeTypes.InputBlur:
6751
6823
  return {
6752
6824
  ...changes,
6753
6825
  inputValue: state.inputValue,
@@ -6755,8 +6827,8 @@ const ComboboxLegacyMultiple = function(props) {
6755
6827
  isOpen: open != null ? open : true,
6756
6828
  highlightedIndex: state.highlightedIndex
6757
6829
  };
6758
- case useCombobox$1.stateChangeTypes.InputKeyDownEnter:
6759
- case useCombobox$1.stateChangeTypes.ItemClick:
6830
+ case useCombobox.stateChangeTypes.InputKeyDownEnter:
6831
+ case useCombobox.stateChangeTypes.ItemClick:
6760
6832
  if (changes.selectedItem === ADD_NEW) {
6761
6833
  const stateInputValue = state.inputValue;
6762
6834
  setTimeout(() => {
@@ -6776,10 +6848,10 @@ const ComboboxLegacyMultiple = function(props) {
6776
6848
  };
6777
6849
  }
6778
6850
  // prevent this from closing the popover by default
6779
- case useCombobox$1.stateChangeTypes.InputClick:
6851
+ case useCombobox.stateChangeTypes.InputClick:
6780
6852
  return { ...changes, isOpen: open != null ? open : true };
6781
6853
  // prevent this from clearing the input value by default
6782
- case useCombobox$1.stateChangeTypes.ControlledPropUpdatedSelectedItem:
6854
+ case useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
6783
6855
  return { ...changes, inputValue: state.inputValue };
6784
6856
  default:
6785
6857
  return changes;
@@ -6787,9 +6859,9 @@ const ComboboxLegacyMultiple = function(props) {
6787
6859
  },
6788
6860
  onStateChange({ type, selectedItem: newSelectedItem }) {
6789
6861
  switch (type) {
6790
- case useCombobox$1.stateChangeTypes.InputKeyDownEnter:
6791
- case useCombobox$1.stateChangeTypes.ItemClick:
6792
- case useCombobox$1.stateChangeTypes.InputBlur:
6862
+ case useCombobox.stateChangeTypes.InputKeyDownEnter:
6863
+ case useCombobox.stateChangeTypes.ItemClick:
6864
+ case useCombobox.stateChangeTypes.InputBlur:
6793
6865
  if (newSelectedItem != null) {
6794
6866
  const itemAlreadySelected = selectedItems.some(
6795
6867
  (item) => itemToKey(item) === itemToKey(newSelectedItem)
@@ -6807,7 +6879,7 @@ const ComboboxLegacyMultiple = function(props) {
6807
6879
  const { type, selectedItem: selectedItem2 } = changes;
6808
6880
  const inputValueMatchesSelectedItem = selectedItem2 != null && inputValue2 === itemToString(selectedItem2);
6809
6881
  const inputValueIsEmpty = inputValue2 == null || inputValue2 === "";
6810
- if (type === useCombobox$1.stateChangeTypes.InputKeyDownEnter || type === useCombobox$1.stateChangeTypes.ItemClick) {
6882
+ if (type === useCombobox.stateChangeTypes.InputKeyDownEnter || type === useCombobox.stateChangeTypes.ItemClick) {
6811
6883
  setItems(itemsProp);
6812
6884
  setHasExactMatch(true);
6813
6885
  } else if (!inputValueMatchesSelectedItem && !inputValueIsEmpty) {
@@ -6929,7 +7001,7 @@ const ComboboxLegacyMultiple = function(props) {
6929
7001
  style: { ...style, ...layoutStyles },
6930
7002
  ref: wrapperDivRef,
6931
7003
  children: /* @__PURE__ */ jsx(
6932
- PopoverLegacy,
7004
+ Popover,
6933
7005
  {
6934
7006
  root,
6935
7007
  open: !isDisabled && isOpen,
@@ -7104,7 +7176,7 @@ const SelectLegacySingle = function(props) {
7104
7176
  style: { ...style, ...layoutStyles },
7105
7177
  ref: wrapperDivRef,
7106
7178
  children: /* @__PURE__ */ jsx(
7107
- PopoverLegacy,
7179
+ Popover,
7108
7180
  {
7109
7181
  root,
7110
7182
  open: isOpen,
@@ -7344,7 +7416,7 @@ const SelectLegacyMultiple = function(props) {
7344
7416
  style: { ...style, ...layoutStyles },
7345
7417
  ref: wrapperDivRef,
7346
7418
  children: /* @__PURE__ */ jsx(
7347
- PopoverLegacy,
7419
+ Popover,
7348
7420
  {
7349
7421
  root,
7350
7422
  open: !isDisabled && isOpen,
@@ -7823,7 +7895,7 @@ const ComboboxLegacyList = function({
7823
7895
  {
7824
7896
  ...getMenuProps(rest),
7825
7897
  "data-anv": "combobox-list",
7826
- className: cx(styles$1["listview"], styles$2["listview"]),
7898
+ className: cx(styles$1["listview"], styles$3["listview"]),
7827
7899
  style: {
7828
7900
  display: items.length || hasAddNew ? void 0 : "none",
7829
7901
  overflow: "auto"
@@ -7843,7 +7915,7 @@ const ComboboxLegacyList = function({
7843
7915
  {
7844
7916
  ...getMenuProps(rest),
7845
7917
  "data-anv": "combobox-list",
7846
- className: styles$3["listbox"],
7918
+ className: styles$4["listbox"],
7847
7919
  style: {
7848
7920
  display: items.length || hasAddNew ? void 0 : "none",
7849
7921
  overflow: "auto"
@@ -7914,10 +7986,10 @@ const ComboboxLegacyItem = function({
7914
7986
  }),
7915
7987
  className: cx(
7916
7988
  styles$1["listview-option"],
7917
- styles$2["listview-option"]
7989
+ styles$3["listview-option"]
7918
7990
  ),
7919
7991
  children: [
7920
- /* @__PURE__ */ jsx("div", { className: cx(styles$1["cell"], styles$2["cell"]), children: /* @__PURE__ */ jsx("div", { className: checkboxStyles["wrapper"], children: /* @__PURE__ */ jsxs("div", { className: checkboxStyles["checkbox"], children: [
7992
+ /* @__PURE__ */ jsx("div", { className: cx(styles$1["cell"], styles$3["cell"]), children: /* @__PURE__ */ jsx("div", { className: checkboxStyles["wrapper"], children: /* @__PURE__ */ jsxs("div", { className: checkboxStyles["checkbox"], children: [
7921
7993
  /* @__PURE__ */ jsx(
7922
7994
  "input",
7923
7995
  {
@@ -7995,7 +8067,7 @@ const ComboboxLegacyItem = function({
7995
8067
  /* @__PURE__ */ jsx(
7996
8068
  Flex,
7997
8069
  {
7998
- className: styles$3["children"],
8070
+ className: styles$4["children"],
7999
8071
  grow: 1,
8000
8072
  shrink: 1,
8001
8073
  alignItems,
@@ -8073,1186 +8145,1279 @@ const ComboboxLegacyEmpty = function({
8073
8145
  return !items.length ? children : null;
8074
8146
  };
8075
8147
 
8076
- const ComboboxTrigger = function(props) {
8148
+ const ComboboxEmptyElement = function({
8149
+ children
8150
+ }) {
8151
+ const { items, setHasEmpty } = useCombobox$1();
8152
+ useEffect(() => {
8153
+ setHasEmpty?.(true);
8154
+ return () => {
8155
+ setHasEmpty?.(false);
8156
+ };
8157
+ });
8158
+ if (!supportsPopover()) return;
8159
+ return !items.length ? children : null;
8160
+ };
8161
+ const ComboboxEmpty = function({
8162
+ children
8163
+ }) {
8164
+ if (!supportsPopover())
8165
+ return /* @__PURE__ */ jsx(ComboboxLegacyEmpty, { children });
8166
+ return /* @__PURE__ */ jsx(ComboboxEmptyElement, { children });
8167
+ };
8168
+
8169
+ const item = "_item_156am_18";
8170
+ const group = "_group_156am_31";
8171
+ const combobox = "_combobox_156am_46";
8172
+ const listview = "_listview_156am_55";
8173
+ const empty = "_empty_156am_63";
8174
+ const Icon = "_Icon_156am_108";
8175
+ const styles = {
8176
+ item: item,
8177
+ group: group,
8178
+ combobox: combobox,
8179
+ "popover-content": "_popover-content_156am_50",
8180
+ listview: listview,
8181
+ "loading-spinner": "_loading-spinner_156am_59",
8182
+ empty: empty,
8183
+ "group-title": "_group-title_156am_74",
8184
+ Icon: Icon,
8185
+ "listview-option": "_listview-option_156am_113"
8186
+ };
8187
+
8188
+ function useGroups({
8189
+ items,
8190
+ groupBy,
8191
+ groupToString,
8192
+ groupSorter = (a, b) => `${a}`.localeCompare(`${b}`)
8193
+ }) {
8194
+ const { groups, orderedItems } = useMemo(() => {
8195
+ if (!groupBy) return { groups: [], orderedItems: items };
8196
+ const groupsSansItems = [];
8197
+ const groupedItems = {};
8198
+ items.forEach((item) => {
8199
+ const groupKey = item[groupBy];
8200
+ if (!groupedItems[groupKey]) {
8201
+ groupedItems[groupKey] = [];
8202
+ }
8203
+ groupedItems[groupKey].push(item);
8204
+ });
8205
+ Object.keys(groupedItems).forEach((key) => {
8206
+ groupsSansItems.push({ key, label: groupToString?.(key) ?? key });
8207
+ });
8208
+ groupsSansItems.sort((a, b) => groupSorter(a.key, b.key));
8209
+ const orderedItems2 = [];
8210
+ const groups2 = groupsSansItems.map((group) => ({
8211
+ ...group,
8212
+ items: groupedItems[group.key].map((item) => {
8213
+ orderedItems2.push(item);
8214
+ return item;
8215
+ })
8216
+ }));
8217
+ return { groups: groups2, orderedItems: orderedItems2 };
8218
+ }, [groupBy, groupSorter, groupToString, items]);
8219
+ return { groups, orderedItems };
8220
+ }
8221
+
8222
+ const SelectSingle = function(props) {
8077
8223
  const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
8078
8224
  const {
8079
- // variant: variantProp = "combobox",
8080
8225
  className,
8081
8226
  style,
8082
- label,
8083
- size,
8084
- error,
8085
- hint,
8086
- description,
8087
- required,
8088
- moreInfo,
8089
- openMoreInfo,
8090
- prefix,
8091
- suffix,
8092
- maxRows,
8093
- selectedItemProps = () => ({}),
8094
- id,
8095
- placeholder,
8227
+ children,
8228
+ open,
8096
8229
  disabled,
8097
8230
  readOnly,
8231
+ items,
8232
+ itemToString: itemToStringProp,
8233
+ itemToKey: itemToKeyProp,
8234
+ onChange,
8235
+ disableClearSelection = false,
8236
+ disableCloseOnClickOutside = false,
8237
+ disableMatchReferenceWidth = false,
8238
+ disableCloseOnSelectItem = false,
8239
+ loading = false,
8240
+ minPopoverHeight,
8241
+ root,
8242
+ environment: environmentProp,
8243
+ groupBy,
8244
+ groupToString,
8098
8245
  ...rest
8099
8246
  } = componentProps;
8247
+ const ComboboxClassNames = cx(styles["combobox"], className);
8248
+ const [hasDisabledPopover, setHasDisabledPopover] = useState(false);
8249
+ const [hasEmpty, setHasEmpty] = useState(false);
8250
+ const [disabledItems, setDisabledItems] = useState([]);
8251
+ const [isReadOnly, setIsReadOnly] = useState(readOnly);
8252
+ const [isDisabled, setIsDisabled] = useState(disabled);
8253
+ const referenceRef = useRef(null);
8254
+ const contentRef = useRef(null);
8255
+ const handleOutsidePress = (_e) => {
8256
+ if (disableCloseOnClickOutside) return;
8257
+ closeMenu();
8258
+ };
8259
+ const { ref: wrapperDivRef, environment } = useDownshiftEnvironment$1();
8260
+ const itemToString = itemToStringProp ?? defaultItemToString$1;
8261
+ const itemToKey = itemToKeyProp ?? defaultItemToKey$1;
8262
+ const { groups, orderedItems } = useGroups({
8263
+ items,
8264
+ groupBy,
8265
+ groupToString
8266
+ });
8100
8267
  const {
8101
- select,
8102
- disableClearSelection,
8103
- itemToString,
8268
+ isOpen,
8104
8269
  getLabelProps,
8105
- getInputProps,
8106
8270
  getToggleButtonProps,
8107
8271
  getMenuProps,
8272
+ getItemProps,
8273
+ highlightedIndex,
8108
8274
  selectedItem,
8109
- selectedItems,
8110
- getSelectedItemProps,
8111
- getDropdownProps,
8112
- reset,
8113
- removeSelectedItem,
8114
8275
  selectItem,
8115
8276
  inputValue,
8116
- isDisabled,
8117
- isReadOnly,
8118
- referenceRef,
8119
- closeMenu,
8120
- setIsDisabled,
8121
- setIsReadOnly
8122
- } = useCombobox();
8123
- const context = usePopoverContext();
8124
- useLayoutEffect(() => {
8125
- if (typeof disabled === "undefined") return;
8126
- setIsDisabled(disabled);
8127
- }, [disabled, setIsDisabled]);
8128
- useLayoutEffect(() => {
8129
- if (typeof readOnly === "undefined") return;
8130
- setIsReadOnly(readOnly);
8131
- }, [readOnly, setIsReadOnly]);
8132
- const handleBlur = (e) => {
8133
- const target = e.relatedTarget ?? e.target;
8134
- const focusedOnReference = context?.invoker.ref.current && context?.invoker.ref.current.contains(target);
8135
- const focusedOnContent = context?.popover.ref.current && context?.popover.ref.current.contains(target) || context?.popover.element?.contains(target);
8136
- if (!focusedOnReference && !focusedOnContent || !e.relatedTarget) {
8137
- closeMenu();
8277
+ closeMenu
8278
+ } = useSelect({
8279
+ ...rest,
8280
+ items: orderedItems,
8281
+ itemToString,
8282
+ itemToKey,
8283
+ isOpen: open,
8284
+ initialIsOpen: open,
8285
+ environment: environmentProp ?? environment,
8286
+ // NOTE: Reducer needs to be pure, side-effects should be in event handlers
8287
+ stateReducer(state, { type, changes }) {
8288
+ switch (type) {
8289
+ case useSelect.stateChangeTypes.ToggleButtonKeyDownEnter:
8290
+ case useSelect.stateChangeTypes.ItemClick:
8291
+ return {
8292
+ ...changes,
8293
+ isOpen: open != null ? open : disableCloseOnSelectItem ? true : changes.isOpen,
8294
+ highlightedIndex: disableCloseOnSelectItem ? state.highlightedIndex : changes.highlightedIndex
8295
+ };
8296
+ default:
8297
+ return changes;
8298
+ }
8299
+ },
8300
+ onSelectedItemChange(changes) {
8301
+ const { selectedItem: selectedItem2 } = changes;
8302
+ if (onChange != null)
8303
+ onChange(selectedItem2 != null ? selectedItem2 : null);
8304
+ },
8305
+ isItemDisabled(item) {
8306
+ if (isDisabled || isReadOnly) {
8307
+ return !!isDisabled || !!isReadOnly;
8308
+ }
8309
+ if (item && item instanceof Object && "disabled" in item && item.disabled) {
8310
+ return true;
8311
+ }
8312
+ if (item && item instanceof Object && "readOnly" in item && item.readOnly) {
8313
+ return true;
8314
+ }
8315
+ if (disabledItems.includes(item)) {
8316
+ return true;
8317
+ }
8318
+ return false;
8138
8319
  }
8139
- };
8140
- const labelProps = getLabelProps({
8141
- required,
8142
- moreInfo,
8143
- openMoreInfo
8144
8320
  });
8145
- const inputRef = useRef(null);
8146
- const inputWrapperProps = {
8147
- ...select ? {
8148
- ...getToggleButtonProps({
8149
- disabled: isDisabled,
8150
- readOnly: isReadOnly,
8151
- id,
8152
- ref: context?.invoker.ref
8153
- })
8154
- } : {
8155
- onClick: () => inputRef.current?.focus(),
8156
- ref: context?.invoker.ref
8157
- }
8158
- };
8159
- const toggleButtonProps = select ? {} : getToggleButtonProps();
8160
- const handleClearButtonClick = (_e) => {
8161
- if (reset != null) {
8162
- reset();
8163
- } else {
8164
- selectItem(null);
8165
- }
8166
- };
8167
- const styleCombined = {
8168
- ...style,
8169
- ...layoutStyles
8170
- };
8171
- return /* @__PURE__ */ jsx(
8172
- SelectTriggerBase,
8173
- {
8174
- "data-anv": select ? "combobox-select-trigger" : "combobox-search-field",
8175
- className,
8176
- style: styleCombined,
8177
- label,
8178
- size,
8179
- error,
8180
- hint,
8181
- description,
8182
- prefix,
8183
- suffix,
8184
- maxRows,
8185
- selectedItemProps,
8186
- placeholder,
8187
- labelProps,
8188
- inputWrapperProps,
8189
- toggleButtonProps,
8190
- itemToString,
8191
- removeSelectedItem,
8192
- variant: select ? "select" : "combobox",
8193
- disableClearSelection,
8194
- selectedItem,
8195
- selectedItems,
8196
- inputValue,
8197
- disabled: isDisabled,
8198
- readOnly: isReadOnly,
8199
- referenceRef,
8200
- onBlur: handleBlur,
8201
- onClearButtonClick: handleClearButtonClick,
8202
- chipProps: (item, index) => {
8203
- if (getSelectedItemProps != null) {
8204
- const { onClick: _, ...chipProps } = getSelectedItemProps({
8205
- selectedItem: item,
8206
- index
8207
- });
8208
- return chipProps;
8209
- }
8210
- return {};
8321
+ useEffect(() => {
8322
+ setIsDisabled(disabled);
8323
+ }, [disabled]);
8324
+ useEffect(() => {
8325
+ setIsReadOnly(readOnly);
8326
+ }, [readOnly]);
8327
+ return /* @__PURE__ */ jsx(
8328
+ ComboboxContext.Provider,
8329
+ {
8330
+ value: {
8331
+ multiple: false,
8332
+ select: true,
8333
+ disableClearSelection,
8334
+ items: orderedItems,
8335
+ itemToString,
8336
+ itemToKey,
8337
+ isOpen,
8338
+ getLabelProps,
8339
+ getToggleButtonProps,
8340
+ getMenuProps,
8341
+ getItemProps,
8342
+ highlightedIndex,
8343
+ selectedItem,
8344
+ selectedItems: [],
8345
+ disabledItems,
8346
+ setDisabledItems,
8347
+ selectItem,
8348
+ inputValue,
8349
+ isDisabled,
8350
+ isReadOnly,
8351
+ setIsReadOnly,
8352
+ setIsDisabled,
8353
+ hasDisabledPopover,
8354
+ setHasDisabledPopover,
8355
+ hasEmpty,
8356
+ setHasEmpty,
8357
+ loading,
8358
+ referenceRef,
8359
+ contentRef,
8360
+ closeMenu,
8361
+ groups,
8362
+ groupBy,
8363
+ groupToString
8211
8364
  },
8212
- inputProps: select ? {
8213
- ...getDropdownProps != null ? getDropdownProps({
8214
- required,
8215
- preventKeyAction: false
8216
- }) : {
8217
- required
8218
- },
8219
- ["aria-expanded"]: context?.invoker["aria-expanded"],
8220
- ["aria-details"]: getMenuProps().id,
8221
- ["aria-haspopup"]: context?.invoker["aria-haspopup"]
8222
- } : {
8223
- ["aria-expanded"]: context?.invoker["aria-expanded"],
8224
- ["aria-details"]: getMenuProps().id,
8225
- ["aria-haspopup"]: context?.invoker["aria-haspopup"],
8226
- ["aria-controls"]: getMenuProps().id,
8227
- ...getDropdownProps != null && getInputProps != null ? getInputProps(
8228
- getDropdownProps({
8229
- ...rest,
8230
- disabled: isDisabled,
8231
- readOnly: isReadOnly,
8232
- required,
8233
- autoComplete: "off",
8234
- id,
8235
- preventKeyAction: false,
8236
- ref: inputRef
8237
- })
8238
- ) : getInputProps != null ? getInputProps({
8239
- ...rest,
8240
- disabled: isDisabled,
8241
- readOnly: isReadOnly,
8242
- required,
8243
- autoComplete: "off",
8244
- id,
8245
- ref: inputRef
8246
- }) : {}
8247
- }
8365
+ children: /* @__PURE__ */ jsx(
8366
+ "div",
8367
+ {
8368
+ className: ComboboxClassNames,
8369
+ "data-anv": "combobox",
8370
+ style: { ...style, ...layoutStyles },
8371
+ ref: wrapperDivRef,
8372
+ children: /* @__PURE__ */ jsx(
8373
+ Popover,
8374
+ {
8375
+ open: isOpen,
8376
+ noPadding: true,
8377
+ disableCaret: true,
8378
+ fitScreen: true,
8379
+ disableFlipFallback: true,
8380
+ placement: "bottom-start",
8381
+ matchReferenceWidth: !disableMatchReferenceWidth,
8382
+ disableCloseOnClickOutside,
8383
+ onOutsidePress: handleOutsidePress,
8384
+ minHeight: minPopoverHeight,
8385
+ children
8386
+ }
8387
+ )
8388
+ }
8389
+ )
8248
8390
  }
8249
8391
  );
8250
8392
  };
8251
- const ComboboxSearchField$1 = function(props) {
8252
- if (!supportsPopover())
8253
- return /* @__PURE__ */ jsx(ComboboxLegacyTrigger, { ...props, variant: "combobox" });
8254
- return /* @__PURE__ */ jsx(ComboboxTrigger, { ...props, variant: "combobox" });
8255
- };
8256
- const ComboboxSelectTrigger$1 = function(props) {
8257
- if (!supportsPopover())
8258
- return /* @__PURE__ */ jsx(ComboboxLegacyTrigger, { ...props, variant: "select" });
8259
- return /* @__PURE__ */ jsx(ComboboxTrigger, { ...props, variant: "select" });
8260
- };
8261
-
8262
- const item = "_item_1wcw0_2";
8263
- const group = "_group_1wcw0_15";
8264
- const combobox = "_combobox_1wcw0_30";
8265
- const listview = "_listview_1wcw0_39";
8266
- const empty = "_empty_1wcw0_47";
8267
- const Icon = "_Icon_1wcw0_92";
8268
- const styles = {
8269
- item: item,
8270
- group: group,
8271
- combobox: combobox,
8272
- "popover-content": "_popover-content_1wcw0_34",
8273
- listview: listview,
8274
- "loading-spinner": "_loading-spinner_1wcw0_43",
8275
- empty: empty,
8276
- "group-title": "_group-title_1wcw0_58",
8277
- Icon: Icon,
8278
- "listview-option": "_listview-option_1wcw0_97"
8279
- };
8280
-
8281
- const ComboboxGroupContext = createContext(null);
8282
- const ComboboxGroupProvider = ComboboxGroupContext.Provider;
8283
-
8284
- const ComboboxContentElement = function({
8285
- children,
8286
- className,
8287
- disablePopover = false,
8288
- ...rest
8289
- }) {
8393
+ const SelectMultiple = function(props) {
8394
+ const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
8290
8395
  const {
8396
+ className,
8397
+ style,
8398
+ children,
8399
+ open,
8291
8400
  items,
8292
- itemToKey,
8293
- inputValue,
8294
- selectedItem,
8295
- selectedItems,
8296
- setHasDisabledPopover,
8297
- getMenuProps,
8298
- getItemProps,
8299
- isDisabled,
8300
- isReadOnly,
8301
- contentRef,
8302
- closeMenu,
8303
- groups
8304
- } = useCombobox();
8305
- const ComboboxPopoverContentClassNames = cx(
8306
- styles["popover-content"],
8307
- className
8308
- );
8309
- useEffect(() => {
8310
- setHasDisabledPopover(disablePopover);
8311
- return () => {
8312
- setHasDisabledPopover(false);
8313
- };
8314
- }, [disablePopover, setHasDisabledPopover]);
8315
- const context = usePopoverContext();
8316
- const handleBlur = (_e) => {
8317
- if (context?.controlled) return;
8318
- context?.popover.close?.(closeMenu);
8401
+ itemToString: itemToStringProp,
8402
+ itemToKey: itemToKeyProp,
8403
+ onChange,
8404
+ onSelectedItemsChange,
8405
+ onStateChange,
8406
+ disableCloseOnClickOutside = false,
8407
+ disableMatchReferenceWidth = false,
8408
+ disableCloseOnSelectItem = false,
8409
+ loading = false,
8410
+ minPopoverHeight,
8411
+ root,
8412
+ disabled,
8413
+ readOnly,
8414
+ stateReducer: _,
8415
+ initialSelectedItems,
8416
+ initialActiveIndex,
8417
+ defaultSelectedItems,
8418
+ defaultActiveIndex,
8419
+ activeIndex: activeIndexProp,
8420
+ selectedItems: selectedItemsProp,
8421
+ environment: environmentProp,
8422
+ groupBy,
8423
+ groupToString,
8424
+ ...rest
8425
+ } = componentProps;
8426
+ const ComboboxClassNames = cx(styles["combobox"], className);
8427
+ const [hasDisabledPopover, setHasDisabledPopover] = useState(false);
8428
+ const [hasEmpty, setHasEmpty] = useState(false);
8429
+ const [disabledItems, setDisabledItems] = useState([]);
8430
+ const [isReadOnly, setIsReadOnly] = useState(readOnly);
8431
+ const [isDisabled, setIsDisabled] = useState(disabled);
8432
+ const referenceRef = useRef(null);
8433
+ const contentRef = useRef(null);
8434
+ const handleOutsidePress = (_e) => {
8435
+ if (disableCloseOnClickOutside) return;
8436
+ closeMenu();
8319
8437
  };
8320
- const resolveChildren = (groupItems) => children?.({
8321
- items: groupItems,
8322
- inputValue,
8323
- selectedItem,
8324
- getMenuProps,
8325
- getItemProps,
8326
- listProps: {
8327
- ...getMenuProps({}, { suppressRefError: true }),
8328
- style: {
8329
- display: groupItems.length ? void 0 : "none",
8330
- overflow: "auto"
8331
- }
8332
- },
8333
- options: items.map((item, index) => ({
8334
- optionProps: {
8335
- ...getItemProps({
8336
- item,
8337
- index
8338
- }),
8339
- tabIndex: disablePopover ? -1 : void 0,
8340
- selected: itemToKey(selectedItem) === itemToKey(item) || selectedItems.some(
8341
- (selectedItem2) => itemToKey(selectedItem2) === itemToKey(item)
8342
- ),
8343
- disabled: !!isDisabled || !!isReadOnly
8344
- // also see "isItemDisabled" function
8345
- },
8346
- item,
8347
- index
8348
- }))
8438
+ const { ref: wrapperDivRef, environment } = useDownshiftEnvironment$1();
8439
+ const itemToString = itemToStringProp ?? defaultItemToString$1;
8440
+ const itemToKey = itemToKeyProp ?? defaultItemToKey$1;
8441
+ const { groups, orderedItems } = useGroups({ items, groupBy, groupToString });
8442
+ const {
8443
+ getSelectedItemProps,
8444
+ getDropdownProps,
8445
+ reset,
8446
+ selectedItems,
8447
+ addSelectedItem,
8448
+ removeSelectedItem,
8449
+ setSelectedItems
8450
+ } = useMultipleSelection({
8451
+ itemToKey,
8452
+ initialSelectedItems,
8453
+ initialActiveIndex,
8454
+ defaultSelectedItems,
8455
+ defaultActiveIndex,
8456
+ activeIndex: activeIndexProp,
8457
+ selectedItems: selectedItemsProp,
8458
+ environment: environmentProp ?? environment,
8459
+ stateReducer(state, { type, changes }) {
8460
+ switch (type) {
8461
+ // the Chip itself will handle "Backspace" and "Delete"
8462
+ // just return previous state
8463
+ case useMultipleSelection.stateChangeTypes.SelectedItemKeyDownBackspace:
8464
+ case useMultipleSelection.stateChangeTypes.SelectedItemKeyDownDelete:
8465
+ return state;
8466
+ case useMultipleSelection.stateChangeTypes.FunctionRemoveSelectedItem:
8467
+ return { ...changes, activeIndex: -1 };
8468
+ case useMultipleSelection.stateChangeTypes.FunctionReset:
8469
+ return { ...changes, selectedItems: [] };
8470
+ default:
8471
+ return changes;
8472
+ }
8473
+ },
8474
+ onStateChange,
8475
+ onSelectedItemsChange(changes) {
8476
+ const { selectedItems: selectedItems2 } = changes;
8477
+ if (onChange != null) onChange(selectedItems2);
8478
+ if (onSelectedItemsChange != null) onSelectedItemsChange(changes);
8479
+ }
8349
8480
  });
8350
- const id = useId();
8351
- return disablePopover ? /* @__PURE__ */ jsx(
8352
- "div",
8353
- {
8354
- ...rest,
8355
- className: ComboboxPopoverContentClassNames,
8356
- ref: contentRef,
8357
- onBlur: handleBlur,
8358
- children: groups?.length ? groups.map((group, i) => /* @__PURE__ */ jsx(ComboboxGroupProvider, { value: group, children: /* @__PURE__ */ jsx(
8359
- "ul",
8360
- {
8361
- "aria-labelledby": `${id}-group-${group.key}`,
8362
- className: cx(styles["group"], styles$3["listbox"]),
8363
- "data-anv": "combobox-group",
8364
- role: "group",
8365
- children: /* @__PURE__ */ jsxs("li", { children: [
8366
- group.label != null ? /* @__PURE__ */ jsx(
8367
- Text,
8368
- {
8369
- className: styles["group-title"],
8370
- id: `${id}-group-${group.key}`,
8371
- variant: "eyebrow",
8372
- children: group.label
8373
- }
8374
- ) : i !== 0 ? /* @__PURE__ */ jsx(Divider, {}) : null,
8375
- resolveChildren(group.items)
8376
- ] })
8377
- }
8378
- ) }, group.key)) : resolveChildren(items)
8481
+ const {
8482
+ isOpen,
8483
+ getLabelProps,
8484
+ getToggleButtonProps,
8485
+ getMenuProps,
8486
+ getItemProps,
8487
+ highlightedIndex,
8488
+ selectedItem,
8489
+ selectItem,
8490
+ inputValue,
8491
+ closeMenu
8492
+ } = useSelect({
8493
+ ...rest,
8494
+ items: orderedItems,
8495
+ itemToString,
8496
+ itemToKey,
8497
+ selectedItem: null,
8498
+ isOpen: open,
8499
+ initialIsOpen: open,
8500
+ environment: environmentProp ?? environment,
8501
+ // NOTE: Reducer needs to be pure, side-effects should be in event handlers
8502
+ stateReducer(state, { type, changes }) {
8503
+ switch (type) {
8504
+ case useSelect.stateChangeTypes.ToggleButtonKeyDownEnter:
8505
+ case useSelect.stateChangeTypes.ItemClick:
8506
+ return {
8507
+ ...changes,
8508
+ isOpen: open != null ? open : disableCloseOnSelectItem ? true : changes.isOpen,
8509
+ highlightedIndex: disableCloseOnSelectItem ? state.highlightedIndex : changes.highlightedIndex
8510
+ };
8511
+ default:
8512
+ return changes;
8513
+ }
8514
+ },
8515
+ onStateChange(changes) {
8516
+ const { type, selectedItem: newSelectedItem } = changes;
8517
+ switch (type) {
8518
+ case useSelect.stateChangeTypes.ToggleButtonKeyDownEnter:
8519
+ case useSelect.stateChangeTypes.ItemClick:
8520
+ case useSelect.stateChangeTypes.ToggleButtonBlur:
8521
+ if (newSelectedItem != null) {
8522
+ const itemAlreadySelected = selectedItems.some(
8523
+ (item) => itemToKey(item) === itemToKey(newSelectedItem)
8524
+ );
8525
+ if (itemAlreadySelected) {
8526
+ removeSelectedItem(newSelectedItem);
8527
+ } else {
8528
+ addSelectedItem(newSelectedItem);
8529
+ }
8530
+ }
8531
+ break;
8532
+ }
8533
+ onStateChange?.(changes);
8534
+ },
8535
+ isItemDisabled(item) {
8536
+ if (isDisabled || isReadOnly) {
8537
+ return !!isDisabled || !!isReadOnly;
8538
+ }
8539
+ if (item && item instanceof Object && "disabled" in item && item.disabled) {
8540
+ return true;
8541
+ }
8542
+ if (item && item instanceof Object && "readOnly" in item && item.readOnly) {
8543
+ return true;
8544
+ }
8545
+ if (disabledItems.includes(item)) {
8546
+ return true;
8547
+ }
8548
+ return false;
8379
8549
  }
8380
- ) : /* @__PURE__ */ jsx(
8381
- Popover.Content,
8550
+ });
8551
+ useEffect(() => {
8552
+ setIsDisabled(disabled);
8553
+ }, [disabled]);
8554
+ useEffect(() => {
8555
+ setIsReadOnly(readOnly);
8556
+ }, [readOnly]);
8557
+ return /* @__PURE__ */ jsx(
8558
+ ComboboxContext.Provider,
8382
8559
  {
8383
- "data-anv": "combobox-content",
8384
- ...rest,
8385
- className: ComboboxPopoverContentClassNames,
8386
- ref: getMenuProps({ ref: contentRef }, { suppressRefError: true }).ref,
8387
- tabIndex: -1,
8388
- onBlur: handleBlur,
8389
- children: groups?.length ? groups.map((group, i) => /* @__PURE__ */ jsx(ComboboxGroupProvider, { value: group, children: /* @__PURE__ */ jsx(
8390
- "ul",
8560
+ value: {
8561
+ multiple: true,
8562
+ select: true,
8563
+ items: orderedItems,
8564
+ itemToString,
8565
+ itemToKey,
8566
+ isOpen,
8567
+ getLabelProps,
8568
+ getToggleButtonProps,
8569
+ getMenuProps,
8570
+ getItemProps,
8571
+ highlightedIndex,
8572
+ selectedItem,
8573
+ selectedItems,
8574
+ disabledItems,
8575
+ setDisabledItems,
8576
+ getSelectedItemProps,
8577
+ getDropdownProps,
8578
+ reset,
8579
+ addSelectedItem,
8580
+ removeSelectedItem,
8581
+ setSelectedItems,
8582
+ selectItem,
8583
+ inputValue,
8584
+ isDisabled,
8585
+ isReadOnly,
8586
+ setIsReadOnly,
8587
+ setIsDisabled,
8588
+ hasDisabledPopover,
8589
+ setHasDisabledPopover,
8590
+ hasEmpty,
8591
+ setHasEmpty,
8592
+ loading,
8593
+ referenceRef,
8594
+ contentRef,
8595
+ closeMenu,
8596
+ groupBy,
8597
+ groupToString,
8598
+ groups
8599
+ },
8600
+ children: /* @__PURE__ */ jsx(
8601
+ "div",
8391
8602
  {
8392
- "aria-labelledby": `${id}-group-${group.key}`,
8393
- className: cx(styles["group"], styles$3["listbox"]),
8394
- "data-anv": "combobox-group",
8395
- role: "group",
8396
- children: /* @__PURE__ */ jsxs("li", { children: [
8397
- group.label != null ? /* @__PURE__ */ jsx(
8398
- Text,
8399
- {
8400
- className: styles["group-title"],
8401
- id: `${id}-group-${group.key}`,
8402
- variant: "eyebrow",
8403
- children: group.label
8404
- }
8405
- ) : i !== 0 ? /* @__PURE__ */ jsx(Divider, {}) : null,
8406
- resolveChildren(group.items)
8407
- ] })
8603
+ className: ComboboxClassNames,
8604
+ "data-anv": "combobox",
8605
+ style: { ...style, ...layoutStyles },
8606
+ ref: wrapperDivRef,
8607
+ children: /* @__PURE__ */ jsx(
8608
+ Popover,
8609
+ {
8610
+ open: !isDisabled && isOpen,
8611
+ noPadding: true,
8612
+ disableCaret: true,
8613
+ fitScreen: true,
8614
+ disableFlipFallback: true,
8615
+ placement: "bottom-start",
8616
+ matchReferenceWidth: !disableMatchReferenceWidth,
8617
+ disableCloseOnClickOutside,
8618
+ onOutsidePress: handleOutsidePress,
8619
+ minHeight: minPopoverHeight,
8620
+ children
8621
+ }
8622
+ )
8408
8623
  }
8409
- ) }, group.key)) : resolveChildren(items)
8624
+ )
8410
8625
  }
8411
8626
  );
8412
8627
  };
8413
- const ComboboxContent$1 = function({
8414
- children,
8415
- className,
8416
- disablePopover = false,
8417
- ...rest
8418
- }) {
8419
- if (!supportsPopover())
8420
- return /* @__PURE__ */ jsx(
8421
- ComboboxLegacyContent,
8422
- {
8423
- disablePopover,
8424
- className,
8425
- ...rest,
8426
- children
8427
- }
8428
- );
8429
- return /* @__PURE__ */ jsx(
8430
- ComboboxContentElement,
8431
- {
8432
- className,
8433
- disablePopover,
8434
- ...rest,
8435
- children
8628
+ const ComboboxSelect = function(props) {
8629
+ if (!supportsPopover()) {
8630
+ if (isMultiple(props)) {
8631
+ return /* @__PURE__ */ jsx(SelectLegacyMultiple, { ...props });
8632
+ } else {
8633
+ return /* @__PURE__ */ jsx(SelectLegacySingle, { ...props });
8436
8634
  }
8437
- );
8635
+ }
8636
+ if (isMultiple(props)) {
8637
+ return /* @__PURE__ */ jsx(SelectMultiple, { ...props });
8638
+ } else {
8639
+ return /* @__PURE__ */ jsx(SelectSingle, { ...props });
8640
+ }
8438
8641
  };
8439
8642
 
8440
- const ComboboxListElement = function({
8643
+ const ComboboxGroupContext = createContext(null);
8644
+ const ComboboxGroupProvider = ComboboxGroupContext.Provider;
8645
+
8646
+ const ComboboxContentElement = function({
8441
8647
  children,
8648
+ className,
8649
+ disablePopover = false,
8442
8650
  ...rest
8443
8651
  }) {
8444
8652
  const {
8445
- getMenuProps,
8446
- multiple,
8447
8653
  items,
8448
- hasAddNew = false,
8449
- hasEmpty,
8450
- loading
8451
- } = useCombobox();
8452
- if (!supportsPopover())
8453
- return /* @__PURE__ */ jsx(ComboboxLegacyList, { ...rest, children });
8454
- if (multiple) {
8455
- return /* @__PURE__ */ jsxs(Fragment, { children: [
8456
- /* @__PURE__ */ jsx(
8457
- "div",
8654
+ itemToKey,
8655
+ inputValue,
8656
+ selectedItem,
8657
+ selectedItems,
8658
+ setHasDisabledPopover,
8659
+ getMenuProps,
8660
+ getItemProps,
8661
+ isDisabled,
8662
+ isReadOnly,
8663
+ contentRef,
8664
+ closeMenu,
8665
+ groups
8666
+ } = useCombobox$1();
8667
+ const ComboboxPopoverContentClassNames = cx(
8668
+ styles["popover-content"],
8669
+ className
8670
+ );
8671
+ useEffect(() => {
8672
+ setHasDisabledPopover(disablePopover);
8673
+ return () => {
8674
+ setHasDisabledPopover(false);
8675
+ };
8676
+ }, [disablePopover, setHasDisabledPopover]);
8677
+ const context = usePopoverContext();
8678
+ const handleBlur = (_e) => {
8679
+ if (context?.controlled) return;
8680
+ context?.popover.close?.(closeMenu);
8681
+ };
8682
+ const resolveChildren = (groupItems) => children?.({
8683
+ items: groupItems,
8684
+ inputValue,
8685
+ selectedItem,
8686
+ getMenuProps,
8687
+ getItemProps,
8688
+ listProps: {
8689
+ ...getMenuProps({}, { suppressRefError: true }),
8690
+ style: {
8691
+ display: groupItems.length ? void 0 : "none",
8692
+ overflow: "auto"
8693
+ }
8694
+ },
8695
+ options: items.map((item, index) => ({
8696
+ optionProps: {
8697
+ ...getItemProps({
8698
+ item,
8699
+ index
8700
+ }),
8701
+ tabIndex: disablePopover ? -1 : void 0,
8702
+ selected: itemToKey(selectedItem) === itemToKey(item) || selectedItems.some(
8703
+ (selectedItem2) => itemToKey(selectedItem2) === itemToKey(item)
8704
+ ),
8705
+ disabled: !!isDisabled || !!isReadOnly
8706
+ // also see "isItemDisabled" function
8707
+ },
8708
+ item,
8709
+ index
8710
+ }))
8711
+ });
8712
+ const id = useId();
8713
+ return disablePopover ? /* @__PURE__ */ jsx(
8714
+ "div",
8715
+ {
8716
+ ...rest,
8717
+ className: ComboboxPopoverContentClassNames,
8718
+ ref: contentRef,
8719
+ onBlur: handleBlur,
8720
+ children: groups?.length ? groups.map((group) => /* @__PURE__ */ jsx(ComboboxGroupProvider, { value: group, children: /* @__PURE__ */ jsx(
8721
+ "ul",
8458
8722
  {
8459
- ...getMenuProps(rest),
8460
- "data-anv": "combobox-list",
8461
- className: cx(styles["listview"], styles$2["listview"]),
8462
- style: {
8463
- display: items.length || hasAddNew ? void 0 : "none",
8464
- overflow: "auto"
8465
- },
8466
- children
8723
+ "aria-labelledby": `${id}-group-${group.key}`,
8724
+ className: cx(styles["group"], styles$4["listbox"]),
8725
+ "data-anv": "combobox-group",
8726
+ role: "group",
8727
+ children: /* @__PURE__ */ jsxs("li", { children: [
8728
+ /* @__PURE__ */ jsx(
8729
+ Text,
8730
+ {
8731
+ className: styles["group-title"],
8732
+ id: `${id}-group-${group.key}`,
8733
+ variant: "eyebrow",
8734
+ children: group.label
8735
+ }
8736
+ ),
8737
+ resolveChildren(group.items)
8738
+ ] })
8467
8739
  }
8468
- ),
8469
- loading ? /* @__PURE__ */ jsx("div", { className: styles["empty"], children: /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Spinner, { className: styles["loading-spinner"] }) }) }) : !items.length && !hasEmpty ? /* @__PURE__ */ jsx("div", { className: styles["empty"], children: /* @__PURE__ */ jsx(Text, { subdued: true, size: "small", children: "No match found" }) }) : null
8470
- ] });
8471
- } else {
8472
- return /* @__PURE__ */ jsxs(Fragment, { children: [
8473
- /* @__PURE__ */ jsx(
8740
+ ) }, group.key)) : resolveChildren(items)
8741
+ }
8742
+ ) : /* @__PURE__ */ jsx(
8743
+ Popover.Content,
8744
+ {
8745
+ "data-anv": "combobox-content",
8746
+ ...rest,
8747
+ className: ComboboxPopoverContentClassNames,
8748
+ ref: getMenuProps({ ref: contentRef }, { suppressRefError: true }).ref,
8749
+ tabIndex: -1,
8750
+ onBlur: handleBlur,
8751
+ children: groups?.length ? groups.map((group) => /* @__PURE__ */ jsx(ComboboxGroupProvider, { value: group, children: /* @__PURE__ */ jsx(
8474
8752
  "ul",
8475
8753
  {
8476
- ...getMenuProps(rest),
8477
- "data-anv": "combobox-list",
8478
- className: styles$3["listbox"],
8479
- style: {
8480
- display: items.length || hasAddNew ? void 0 : "none",
8481
- overflow: "auto"
8482
- },
8483
- children
8754
+ "aria-labelledby": `${id}-group-${group.key}`,
8755
+ className: cx(styles["group"], styles$4["listbox"]),
8756
+ "data-anv": "combobox-group",
8757
+ role: "group",
8758
+ children: /* @__PURE__ */ jsxs("li", { children: [
8759
+ /* @__PURE__ */ jsx(
8760
+ Text,
8761
+ {
8762
+ className: styles["group-title"],
8763
+ id: `${id}-group-${group.key}`,
8764
+ variant: "eyebrow",
8765
+ children: group.label
8766
+ }
8767
+ ),
8768
+ resolveChildren(group.items)
8769
+ ] })
8484
8770
  }
8485
- ),
8486
- loading ? /* @__PURE__ */ jsx("div", { className: styles["empty"], children: /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Spinner, { className: styles["loading-spinner"] }) }) }) : !items.length && !hasEmpty ? /* @__PURE__ */ jsx("div", { className: styles["empty"], children: /* @__PURE__ */ jsx(Text, { subdued: true, size: "small", children: "No match found" }) }) : null
8487
- ] });
8488
- }
8771
+ ) }, group.key)) : resolveChildren(items)
8772
+ }
8773
+ );
8489
8774
  };
8490
- const ComboboxList$1 = function({
8775
+ const ComboboxContent = function({
8491
8776
  children,
8492
8777
  className,
8778
+ disablePopover = false,
8493
8779
  ...rest
8494
8780
  }) {
8495
8781
  if (!supportsPopover())
8496
- return /* @__PURE__ */ jsx(ComboboxLegacyList, { className, ...rest, children });
8497
- return /* @__PURE__ */ jsx(ComboboxListElement, { className, ...rest, children });
8782
+ return /* @__PURE__ */ jsx(
8783
+ ComboboxLegacyContent,
8784
+ {
8785
+ disablePopover,
8786
+ className,
8787
+ ...rest,
8788
+ children
8789
+ }
8790
+ );
8791
+ return /* @__PURE__ */ jsx(
8792
+ ComboboxContentElement,
8793
+ {
8794
+ className,
8795
+ disablePopover,
8796
+ ...rest,
8797
+ children
8798
+ }
8799
+ );
8498
8800
  };
8499
8801
 
8500
- const ComboboxItemElement = function({
8501
- children,
8502
- disabled: disabledProp,
8503
- item,
8504
- index: indexProp,
8505
- hideCheckbox,
8506
- forceCloseOnSelect,
8507
- forceClearInputValueOnSelect,
8508
- alignItems,
8509
- justifyItems,
8510
- alignContent,
8511
- justifyContent,
8512
- placeItems,
8513
- placeContent,
8514
- gap,
8515
- rowGap,
8516
- columnGap,
8517
- ...rest
8518
- }) {
8802
+ const ComboboxTrigger = function(props) {
8803
+ const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
8519
8804
  const {
8520
- itemToKey,
8521
- getItemProps,
8522
- multiple,
8805
+ // variant: variantProp = "combobox",
8806
+ className,
8807
+ style,
8808
+ label,
8809
+ size,
8810
+ error,
8811
+ hint,
8812
+ description,
8813
+ required,
8814
+ moreInfo,
8815
+ openMoreInfo,
8816
+ prefix,
8817
+ suffix,
8818
+ maxRows,
8819
+ selectedItemProps = () => ({}),
8820
+ id,
8821
+ placeholder,
8822
+ disabled,
8823
+ readOnly,
8824
+ ...rest
8825
+ } = componentProps;
8826
+ const {
8827
+ select,
8828
+ disableClearSelection,
8829
+ itemToString,
8830
+ getLabelProps,
8831
+ getInputProps,
8832
+ getToggleButtonProps,
8833
+ getMenuProps,
8523
8834
  selectedItem,
8524
8835
  selectedItems,
8525
- disabledItems,
8526
- setDisabledItems,
8527
- setForceCloseOnSelectItems,
8528
- setForceClearInputValueOnSelectItems,
8529
- highlightedIndex,
8530
- items,
8531
- groupBy
8532
- } = useCombobox();
8533
- const index = groupBy ? items.indexOf(item) : indexProp;
8534
- const disabled = disabledProp || item && item instanceof Object && "disabled" in item && item.disabled;
8535
- useEffect(() => {
8536
- if (disabledProp && !disabledItems.includes(item)) {
8537
- setDisabledItems([...disabledItems, item]);
8538
- } else if (disabledItems.includes(item)) {
8539
- setDisabledItems(disabledItems.filter((prevItem) => prevItem !== item));
8540
- }
8541
- return () => {
8542
- if (disabledItems.includes(item)) {
8543
- setDisabledItems(disabledItems.filter((prevItem) => prevItem !== item));
8544
- }
8545
- };
8546
- }, [item, disabledProp, setDisabledItems]);
8547
- useEffect(() => {
8548
- if (forceCloseOnSelect) {
8549
- setForceCloseOnSelectItems((forceCloseOnSelectItems) => {
8550
- if (forceCloseOnSelectItems.includes(item)) {
8551
- return forceCloseOnSelectItems;
8552
- } else {
8553
- return [...forceCloseOnSelectItems, item];
8554
- }
8555
- });
8836
+ getSelectedItemProps,
8837
+ getDropdownProps,
8838
+ reset,
8839
+ removeSelectedItem,
8840
+ selectItem,
8841
+ inputValue,
8842
+ isDisabled,
8843
+ isReadOnly,
8844
+ referenceRef,
8845
+ closeMenu,
8846
+ setIsDisabled,
8847
+ setIsReadOnly
8848
+ } = useCombobox$1();
8849
+ const context = usePopoverContext();
8850
+ useLayoutEffect(() => {
8851
+ if (typeof disabled === "undefined") return;
8852
+ setIsDisabled(disabled);
8853
+ }, [disabled, setIsDisabled]);
8854
+ useLayoutEffect(() => {
8855
+ if (typeof readOnly === "undefined") return;
8856
+ setIsReadOnly(readOnly);
8857
+ }, [readOnly, setIsReadOnly]);
8858
+ const handleBlur = (e) => {
8859
+ const target = e.relatedTarget ?? e.target;
8860
+ const focusedOnReference = context?.invoker.ref.current && context?.invoker.ref.current.contains(target);
8861
+ const focusedOnContent = context?.popover.ref.current && context?.popover.ref.current.contains(target) || context?.popover.element?.contains(target);
8862
+ if (!focusedOnReference && !focusedOnContent || !e.relatedTarget) {
8863
+ closeMenu();
8556
8864
  }
8557
- return () => {
8558
- setForceCloseOnSelectItems((forceCloseOnSelectItems) => {
8559
- if (forceCloseOnSelectItems.includes(item)) {
8560
- return forceCloseOnSelectItems.filter(
8561
- (prevItem) => prevItem !== item
8562
- );
8563
- } else {
8564
- return forceCloseOnSelectItems;
8565
- }
8566
- });
8567
- };
8568
- }, [item, forceCloseOnSelect, setForceCloseOnSelectItems]);
8569
- useEffect(() => {
8570
- if (forceClearInputValueOnSelect) {
8571
- setForceClearInputValueOnSelectItems(
8572
- (forceClearInputValueOnSelectItems) => {
8573
- if (forceClearInputValueOnSelectItems.includes(item)) {
8574
- return forceClearInputValueOnSelectItems;
8575
- } else {
8576
- return [...forceClearInputValueOnSelectItems, item];
8577
- }
8578
- }
8579
- );
8865
+ };
8866
+ const labelProps = getLabelProps({
8867
+ required,
8868
+ moreInfo,
8869
+ openMoreInfo
8870
+ });
8871
+ const inputRef = useRef(null);
8872
+ const inputWrapperProps = {
8873
+ ...select ? {
8874
+ ...getToggleButtonProps({
8875
+ disabled: isDisabled,
8876
+ readOnly: isReadOnly,
8877
+ id,
8878
+ ref: context?.invoker.ref
8879
+ })
8880
+ } : {
8881
+ onClick: () => inputRef.current?.focus(),
8882
+ ref: context?.invoker.ref
8580
8883
  }
8581
- return () => {
8582
- setForceClearInputValueOnSelectItems(
8583
- (forceClearInputValueOnSelectItems) => {
8584
- if (forceClearInputValueOnSelectItems.includes(item)) {
8585
- return forceClearInputValueOnSelectItems.filter(
8586
- (prevItem) => prevItem !== item
8587
- );
8588
- } else {
8589
- return forceClearInputValueOnSelectItems;
8590
- }
8591
- }
8592
- );
8593
- };
8594
- }, [
8595
- item,
8596
- forceClearInputValueOnSelect,
8597
- setForceClearInputValueOnSelectItems
8598
- ]);
8599
- if (multiple) {
8600
- const checked = selectedItems.some(
8601
- (selectedItem2) => itemToKey(selectedItem2) === itemToKey(item)
8602
- );
8603
- return /* @__PURE__ */ jsxs(
8604
- "div",
8605
- {
8606
- "data-anv": "combobox-item",
8607
- ...getItemProps({
8608
- item,
8609
- index,
8610
- "aria-selected": highlightedIndex === index,
8611
- ...rest
8612
- }),
8613
- className: cx(
8614
- styles["listview-option"],
8615
- styles$2["listview-option"]
8616
- ),
8617
- children: [
8618
- item !== ADD_NEW$1 && !hideCheckbox ? /* @__PURE__ */ jsx("div", { className: cx(styles["cell"], styles$2["cell"]), children: /* @__PURE__ */ jsx("div", { className: checkboxStyles["wrapper"], children: /* @__PURE__ */ jsxs("div", { className: checkboxStyles["checkbox"], children: [
8619
- /* @__PURE__ */ jsx(
8620
- "input",
8621
- {
8622
- type: "checkbox",
8623
- checked,
8624
- "aria-checked": checked,
8625
- "aria-label": "Select",
8626
- readOnly: true,
8627
- tabIndex: -1,
8628
- ...disabled ? { disabled: true } : {}
8629
- }
8630
- ),
8631
- /* @__PURE__ */ jsxs("span", { className: checkboxStyles["icon-wrapper"], "aria-hidden": true, children: [
8632
- /* @__PURE__ */ jsx(
8633
- Icon$2,
8634
- {
8635
- size: "large",
8636
- svg: SvgIndeterminateCheckBox,
8637
- className: checkboxStyles["icon-indeterminate"]
8638
- }
8639
- ),
8640
- /* @__PURE__ */ jsx(
8641
- Icon$2,
8642
- {
8643
- size: "large",
8644
- svg: SvgCheckBox,
8645
- className: checkboxStyles["icon-checked"]
8646
- }
8647
- ),
8648
- /* @__PURE__ */ jsx(
8649
- Icon$2,
8650
- {
8651
- size: "large",
8652
- svg: SvgCheckBoxOutlineBlank,
8653
- className: checkboxStyles["icon-unchecked"]
8654
- }
8655
- )
8656
- ] }),
8657
- /* @__PURE__ */ jsx("span", { "aria-hidden": true })
8658
- ] }) }) }) : null,
8659
- /* @__PURE__ */ jsx(
8660
- Flex,
8661
- {
8662
- grow: 1,
8663
- shrink: 1,
8664
- alignItems,
8665
- justifyItems,
8666
- alignContent,
8667
- justifyContent,
8668
- placeItems,
8669
- placeContent,
8670
- gap,
8671
- rowGap,
8672
- columnGap,
8673
- children
8674
- }
8675
- )
8676
- ]
8677
- }
8678
- );
8679
- } else {
8680
- return /* @__PURE__ */ jsxs(
8681
- "li",
8682
- {
8683
- ...getItemProps({
8684
- item,
8685
- index,
8686
- "aria-selected": highlightedIndex === index,
8687
- ...rest
8688
- }),
8689
- "data-anv": "combobox-item",
8690
- "data-checked": itemToKey(selectedItem) === itemToKey(item),
8691
- className: styles["item"],
8692
- ...disabled ? { "aria-disabled": true } : {},
8693
- children: [
8694
- /* @__PURE__ */ jsx(
8695
- Flex,
8696
- {
8697
- className: styles$3["children"],
8698
- grow: 1,
8699
- shrink: 1,
8700
- alignItems,
8701
- justifyItems,
8702
- alignContent,
8703
- justifyContent,
8704
- placeItems,
8705
- placeContent,
8706
- gap,
8707
- rowGap,
8708
- columnGap,
8709
- children
8710
- }
8711
- ),
8712
- /* @__PURE__ */ jsx(
8713
- Icon$2,
8714
- {
8715
- "aria-hidden": true,
8716
- svg: SvgCheck,
8717
- inherit: true,
8718
- className: styles["Icon"],
8719
- style: {
8720
- opacity: itemToKey(selectedItem) === itemToKey(item) ? 1 : 0
8721
- }
8722
- }
8723
- )
8724
- ]
8725
- }
8726
- );
8727
- }
8728
- };
8729
- const ComboboxItem$1 = function(props) {
8730
- if (!supportsPopover()) return /* @__PURE__ */ jsx(ComboboxLegacyItem, { ...props });
8731
- return /* @__PURE__ */ jsx(ComboboxItemElement, { ...props });
8732
- };
8733
- const ComboboxItemAddNewElement = function({
8734
- onSelection,
8735
- ...props
8736
- }) {
8737
- const { items, setHasAddNew, hasExactMatch, setOnSelectItemAddNew } = useCombobox();
8738
- useEffect(() => {
8739
- setHasAddNew?.(true);
8740
- return () => {
8741
- setHasAddNew?.(false);
8742
- };
8743
- }, []);
8744
- useEffect(() => {
8745
- setOnSelectItemAddNew?.(() => onSelection);
8746
- return () => {
8747
- setOnSelectItemAddNew?.(void 0);
8748
- };
8749
- }, [setOnSelectItemAddNew, onSelection]);
8750
- const firstRenderRef = useRef(true);
8751
- useEffect(() => {
8752
- if (firstRenderRef.current === true) {
8753
- firstRenderRef.current = false;
8884
+ };
8885
+ const toggleButtonProps = select ? {} : getToggleButtonProps();
8886
+ const handleClearButtonClick = (_e) => {
8887
+ if (reset != null) {
8888
+ reset();
8889
+ } else {
8890
+ selectItem(null);
8754
8891
  }
8755
- }, []);
8756
- return !hasExactMatch && !firstRenderRef.current ? /* @__PURE__ */ jsx(
8757
- ComboboxItem$1,
8892
+ };
8893
+ const styleCombined = {
8894
+ ...style,
8895
+ ...layoutStyles
8896
+ };
8897
+ return /* @__PURE__ */ jsx(
8898
+ SelectTriggerBase,
8758
8899
  {
8759
- ...props,
8760
- item: ADD_NEW$1,
8761
- index: items.length
8762
- }
8763
- ) : null;
8764
- };
8765
- const ComboboxItemAddNew$1 = function(props) {
8766
- if (!supportsPopover()) return /* @__PURE__ */ jsx(ComboboxLegacyItemAddNew, { ...props });
8767
- return /* @__PURE__ */ jsx(ComboboxItemAddNewElement, { ...props });
8768
- };
8769
-
8770
- const ComboboxEmptyElement = function({
8771
- children
8772
- }) {
8773
- const { items, setHasEmpty } = useCombobox();
8774
- useEffect(() => {
8775
- setHasEmpty?.(true);
8776
- return () => {
8777
- setHasEmpty?.(false);
8778
- };
8779
- });
8780
- if (!supportsPopover()) return;
8781
- return !items.length ? children : null;
8782
- };
8783
- const ComboboxEmpty$1 = function({
8784
- children
8785
- }) {
8786
- if (!supportsPopover())
8787
- return /* @__PURE__ */ jsx(ComboboxLegacyEmpty, { children });
8788
- return /* @__PURE__ */ jsx(ComboboxEmptyElement, { children });
8789
- };
8790
-
8791
- function useGroups({
8792
- items,
8793
- groupBy,
8794
- groupToString,
8795
- groupSorter = (a, b) => `${a}`.localeCompare(`${b}`)
8796
- }) {
8797
- const { groups, orderedItems } = useMemo(() => {
8798
- if (!groupBy) return { groups: [], orderedItems: items };
8799
- const groupsSansItems = [];
8800
- const groupedItems = {};
8801
- items.forEach((item) => {
8802
- const groupKey = item[groupBy];
8803
- if (!groupedItems[groupKey]) {
8804
- groupedItems[groupKey] = [];
8900
+ "data-anv": select ? "combobox-select-trigger" : "combobox-search-field",
8901
+ className,
8902
+ style: styleCombined,
8903
+ label,
8904
+ size,
8905
+ error,
8906
+ hint,
8907
+ description,
8908
+ prefix,
8909
+ suffix,
8910
+ maxRows,
8911
+ selectedItemProps,
8912
+ placeholder,
8913
+ labelProps,
8914
+ inputWrapperProps,
8915
+ toggleButtonProps,
8916
+ itemToString,
8917
+ removeSelectedItem,
8918
+ variant: select ? "select" : "combobox",
8919
+ disableClearSelection,
8920
+ selectedItem,
8921
+ selectedItems,
8922
+ inputValue,
8923
+ disabled: isDisabled,
8924
+ readOnly: isReadOnly,
8925
+ referenceRef,
8926
+ onBlur: handleBlur,
8927
+ onClearButtonClick: handleClearButtonClick,
8928
+ chipProps: (item, index) => {
8929
+ if (getSelectedItemProps != null) {
8930
+ const { onClick: _, ...chipProps } = getSelectedItemProps({
8931
+ selectedItem: item,
8932
+ index
8933
+ });
8934
+ return chipProps;
8935
+ }
8936
+ return {};
8937
+ },
8938
+ inputProps: select ? {
8939
+ ...getDropdownProps != null ? getDropdownProps({
8940
+ required,
8941
+ preventKeyAction: false
8942
+ }) : {
8943
+ required
8944
+ },
8945
+ ["aria-expanded"]: context?.invoker["aria-expanded"],
8946
+ ["aria-details"]: getMenuProps().id,
8947
+ ["aria-haspopup"]: context?.invoker["aria-haspopup"]
8948
+ } : {
8949
+ ["aria-expanded"]: context?.invoker["aria-expanded"],
8950
+ ["aria-details"]: getMenuProps().id,
8951
+ ["aria-haspopup"]: context?.invoker["aria-haspopup"],
8952
+ ["aria-controls"]: getMenuProps().id,
8953
+ ...getDropdownProps != null && getInputProps != null ? getInputProps(
8954
+ getDropdownProps({
8955
+ ...rest,
8956
+ disabled: isDisabled,
8957
+ readOnly: isReadOnly,
8958
+ required,
8959
+ autoComplete: "off",
8960
+ id,
8961
+ preventKeyAction: false,
8962
+ ref: inputRef
8963
+ })
8964
+ ) : getInputProps != null ? getInputProps({
8965
+ ...rest,
8966
+ disabled: isDisabled,
8967
+ readOnly: isReadOnly,
8968
+ required,
8969
+ autoComplete: "off",
8970
+ id,
8971
+ ref: inputRef
8972
+ }) : {}
8805
8973
  }
8806
- groupedItems[groupKey].push(item);
8807
- });
8808
- Object.keys(groupedItems).forEach((key) => {
8809
- groupsSansItems.push({
8810
- key,
8811
- label: groupToString ? groupToString?.(key) : key
8812
- });
8813
- });
8814
- groupsSansItems.sort((a, b) => groupSorter(a.key, b.key));
8815
- const orderedItems2 = [];
8816
- const groups2 = groupsSansItems.map((group) => ({
8817
- ...group,
8818
- items: groupedItems[group.key].map((item) => {
8819
- orderedItems2.push(item);
8820
- return item;
8821
- })
8822
- }));
8823
- return { groups: groups2, orderedItems: orderedItems2 };
8824
- }, [groupBy, groupSorter, groupToString, items]);
8825
- return { groups, orderedItems };
8826
- }
8827
-
8828
- const ComboboxContext = createContext(null);
8829
- const useCombobox = function() {
8830
- const context = useContext(
8831
- ComboboxContext
8974
+ }
8832
8975
  );
8833
- if (context == null) {
8834
- throw new Error("useCombobox must be wrapped in <Combobox />");
8835
- }
8836
- return context;
8837
8976
  };
8838
- function isMultiple(props) {
8839
- return Object.hasOwn(props, "multiple") && props.multiple === true;
8840
- }
8841
- const ComboboxSingle = function(props) {
8842
- const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
8843
- const {
8844
- className,
8845
- style,
8846
- children,
8847
- open,
8848
- disabled,
8849
- readOnly,
8850
- items: itemsProp,
8851
- itemToString: itemToStringProp,
8852
- itemToKey: itemToKeyProp,
8853
- onChange,
8854
- disableCloseOnClickOutside = false,
8855
- disableMatchReferenceWidth = false,
8856
- disableCloseOnSelectItem = false,
8857
- filterOptions,
8858
- disableFilter = false,
8859
- loading = false,
8860
- minPopoverHeight,
8861
- root,
8862
- onInputValueChange,
8863
- environment: environmentProp,
8864
- groupBy,
8865
- groupToString,
8866
- groupSorter,
8867
- ...rest
8868
- } = componentProps;
8869
- const ComboboxClassNames = cx(styles["combobox"], className);
8870
- const [items, setItems] = useState(itemsProp);
8871
- const [hasAddNew, setHasAddNew] = useState(false);
8872
- const [onSelectItemAddNew, setOnSelectItemAddNew] = useState(void 0);
8873
- const [hasExactMatch, setHasExactMatch] = useState(false);
8874
- const [hasDisabledPopover, setHasDisabledPopover] = useState(false);
8875
- const [hasEmpty, setHasEmpty] = useState(false);
8876
- const [disabledItems, setDisabledItems] = useState([]);
8877
- const [forceCloseOnSelectItems, setForceCloseOnSelectItems] = useState([]);
8878
- const [, setForceClearInputValueOnSelectItems] = useState([]);
8879
- const [isReadOnly, setIsReadOnly] = useState(readOnly);
8880
- const [isDisabled, setIsDisabled] = useState(disabled);
8881
- const referenceRef = useRef(null);
8882
- const contentRef = useRef(null);
8883
- const handleOutsidePress = (_e) => {
8884
- if (disableCloseOnClickOutside) return;
8885
- closeMenu();
8977
+ const ComboboxSearchFieldElement = function(props) {
8978
+ if (!supportsPopover())
8979
+ return /* @__PURE__ */ jsx(ComboboxLegacyTrigger, { ...props, variant: "combobox" });
8980
+ return /* @__PURE__ */ jsx(ComboboxTrigger, { ...props, variant: "combobox" });
8981
+ };
8982
+ const ComboboxSearchField = function({
8983
+ prefix: prefixProp,
8984
+ ...props
8985
+ }) {
8986
+ const data = {
8987
+ label: childrenToString(props.label),
8988
+ size: props.size,
8989
+ required: props.required,
8990
+ moreInfo: props.moreInfo,
8991
+ openMoreInfo: props.openMoreInfo,
8992
+ description: childrenToString(props.description),
8993
+ hint: props.hint,
8994
+ labelProps: props.labelProps
8886
8995
  };
8887
- const { ref: wrapperDivRef, environment } = useDownshiftEnvironment$1();
8888
- const { orderedItems: allItemsOrderedByGroup } = useGroups({
8889
- items: itemsProp,
8890
- groupBy,
8891
- groupToString,
8892
- groupSorter
8996
+ const trackingId = useTrackingId({
8997
+ name: "ComboboxSearchField",
8998
+ data,
8999
+ hasOverride: !!props["data-tracking-id"]
8893
9000
  });
8894
- const { groups: searchedGroups, orderedItems: searchedItemsOrderedByGroup } = useGroups({
8895
- items,
8896
- groupBy,
8897
- groupToString,
8898
- groupSorter
9001
+ const prefix = prefixProp == null || typeof prefixProp === "string" ? prefixProp : "icon" in prefixProp ? /* @__PURE__ */ jsx(Icon$2, { ...prefixProp.icon }) : "avatar" in prefixProp ? /* @__PURE__ */ jsx(
9002
+ Avatar,
9003
+ {
9004
+ ...prefixProp.avatar,
9005
+ size: props.size === "small" ? "small" : "medium"
9006
+ }
9007
+ ) : prefixProp;
9008
+ return /* @__PURE__ */ jsx(
9009
+ ComboboxSearchFieldElement,
9010
+ {
9011
+ "data-tracking-id": trackingId,
9012
+ ...props,
9013
+ prefix
9014
+ }
9015
+ );
9016
+ };
9017
+ const ComboboxSelectTriggerElement = function(props) {
9018
+ if (!supportsPopover())
9019
+ return /* @__PURE__ */ jsx(ComboboxLegacyTrigger, { ...props, variant: "select" });
9020
+ return /* @__PURE__ */ jsx(ComboboxTrigger, { ...props, variant: "select" });
9021
+ };
9022
+ const ComboboxSelectTrigger = function({
9023
+ prefix: prefixProp,
9024
+ ...props
9025
+ }) {
9026
+ const data = {
9027
+ label: childrenToString(props.label),
9028
+ size: props.size,
9029
+ required: props.required,
9030
+ moreInfo: props.moreInfo,
9031
+ openMoreInfo: props.openMoreInfo,
9032
+ description: childrenToString(props.description),
9033
+ hint: props.hint,
9034
+ labelProps: props.labelProps
9035
+ };
9036
+ const trackingId = useTrackingId({
9037
+ name: "ComboboxSearchField",
9038
+ data,
9039
+ hasOverride: !!props["data-tracking-id"]
8899
9040
  });
8900
- const showAddNew = hasAddNew && !hasExactMatch;
8901
- const combinedItems = useMemo(
8902
- () => showAddNew ? [...searchedItemsOrderedByGroup, ADD_NEW$1] : searchedItemsOrderedByGroup,
8903
- [searchedItemsOrderedByGroup, showAddNew]
9041
+ const prefix = prefixProp == null || typeof prefixProp === "string" ? prefixProp : "icon" in prefixProp ? /* @__PURE__ */ jsx(Icon$2, { ...prefixProp.icon }) : "avatar" in prefixProp ? /* @__PURE__ */ jsx(
9042
+ Avatar,
9043
+ {
9044
+ ...prefixProp.avatar,
9045
+ size: props.size === "small" ? "small" : "medium"
9046
+ }
9047
+ ) : prefixProp;
9048
+ return /* @__PURE__ */ jsx(
9049
+ ComboboxSelectTriggerElement,
9050
+ {
9051
+ "data-tracking-id": trackingId,
9052
+ ...props,
9053
+ prefix
9054
+ }
8904
9055
  );
8905
- const itemToString = itemToStringProp ?? defaultItemToString$1;
8906
- const itemToKey = itemToKeyProp ?? defaultItemToKey$1;
8907
- const {
8908
- isOpen,
8909
- getLabelProps,
8910
- getInputProps,
8911
- getToggleButtonProps,
8912
- getMenuProps,
8913
- getItemProps,
8914
- highlightedIndex,
8915
- selectedItem,
8916
- selectItem,
8917
- setInputValue,
8918
- inputValue,
8919
- closeMenu
8920
- } = useCombobox$1({
8921
- ...rest,
8922
- items: combinedItems,
8923
- itemToString,
9056
+ };
9057
+
9058
+ const CoreComboboxItemElement = function({
9059
+ children,
9060
+ disabled: disabledProp,
9061
+ item,
9062
+ index: indexProp,
9063
+ alignItems,
9064
+ justifyItems,
9065
+ alignContent,
9066
+ justifyContent,
9067
+ placeItems,
9068
+ placeContent,
9069
+ gap,
9070
+ rowGap,
9071
+ columnGap,
9072
+ ...rest
9073
+ }) {
9074
+ const {
8924
9075
  itemToKey,
8925
- isOpen: open,
8926
- initialIsOpen: open,
8927
- environment: environmentProp ?? environment,
8928
- // NOTE: Reducer needs to be pure, side-effects should be in event handlers
8929
- stateReducer(state, { type, changes }) {
8930
- switch (type) {
8931
- // keep Combobox open onBlur, will call close using Popover's onOutsidePress
8932
- case useCombobox$1.stateChangeTypes.InputBlur:
8933
- return {
8934
- ...changes,
8935
- isOpen: open != null ? open : true,
8936
- highlightedIndex: state.highlightedIndex
8937
- };
8938
- case useCombobox$1.stateChangeTypes.InputKeyDownEnter:
8939
- case useCombobox$1.stateChangeTypes.ItemClick:
8940
- if (changes.selectedItem === ADD_NEW$1) {
8941
- const stateInputValue = state.inputValue;
8942
- setTimeout(() => {
8943
- onSelectItemAddNew?.(stateInputValue);
8944
- }, 250);
8945
- return {
8946
- ...changes,
8947
- selectedItem: state.selectedItem,
8948
- inputValue: ""
8949
- };
8950
- } else {
8951
- const forceClose = forceCloseOnSelectItems.includes(
8952
- changes.selectedItem
8953
- );
8954
- return {
8955
- ...changes,
8956
- isOpen: open != null ? open : forceClose ? false : disableCloseOnSelectItem ? true : changes.isOpen,
8957
- highlightedIndex: disableCloseOnSelectItem ? itemToString(state.selectedItem) === state.inputValue || !state.inputValue ? state.highlightedIndex : 0 : changes.highlightedIndex
8958
- };
8959
- }
8960
- // prevent this from closing the popover by default
8961
- case useCombobox$1.stateChangeTypes.InputClick:
8962
- return { ...changes, isOpen: open != null ? open : true };
8963
- default:
8964
- return changes;
8965
- }
8966
- },
8967
- onInputValueChange: onInputValueChange ?? (({ inputValue: inputValue2, type, selectedItem: selectedItem2 }) => {
8968
- const inputValueMatchesSelectedItem = selectedItem2 != null && inputValue2 === itemToString(selectedItem2);
8969
- const inputValueIsEmpty = inputValue2 == null || inputValue2 === "";
8970
- if (type === useCombobox$1.stateChangeTypes.InputKeyDownEnter || type === useCombobox$1.stateChangeTypes.ItemClick) {
8971
- setItems(allItemsOrderedByGroup);
8972
- setHasExactMatch(true);
8973
- } else if (!inputValueMatchesSelectedItem && !inputValueIsEmpty && !disableFilter) {
8974
- setItems(
8975
- matchSorter(allItemsOrderedByGroup, inputValue2, filterOptions)
8976
- );
8977
- setHasExactMatch(
8978
- matchSorter(allItemsOrderedByGroup, inputValue2, {
8979
- ...filterOptions,
8980
- threshold: matchSorter.rankings.EQUAL
8981
- }).length > 0
8982
- );
8983
- } else {
8984
- setItems(allItemsOrderedByGroup);
8985
- setHasExactMatch(true);
8986
- }
8987
- }),
8988
- onSelectedItemChange(changes) {
8989
- const { selectedItem: selectedItem2 } = changes;
8990
- if (onChange != null)
8991
- onChange(selectedItem2 != null ? selectedItem2 : null);
8992
- },
8993
- onIsOpenChange({ isOpen: isOpen2, inputValue: inputValue2, selectedItem: selectedItem2 }) {
8994
- if (isOpen2 === false) {
8995
- setTimeout(() => {
8996
- setItems(allItemsOrderedByGroup);
8997
- if (inputValue2 === "") {
8998
- selectItem(null);
8999
- } else {
9000
- setInputValue(
9001
- selectedItem2 != null ? itemToString(selectedItem2) : ""
9002
- );
9003
- }
9004
- }, 200);
9005
- }
9006
- },
9007
- isItemDisabled(item) {
9008
- if (isDisabled || isReadOnly) {
9009
- return !!isDisabled || !!isReadOnly;
9010
- }
9011
- if (item && item instanceof Object && "disabled" in item && item.disabled) {
9012
- return true;
9013
- }
9014
- if (item && item instanceof Object && "readOnly" in item && item.readOnly) {
9015
- return true;
9016
- }
9017
- if (disabledItems.includes(item)) {
9018
- return true;
9019
- }
9020
- return false;
9021
- }
9022
- });
9023
- const firstRenderRef = useRef(true);
9076
+ getItemProps,
9077
+ multiple,
9078
+ selectedItem,
9079
+ selectedItems,
9080
+ disabledItems,
9081
+ setDisabledItems,
9082
+ highlightedIndex,
9083
+ items,
9084
+ groupBy
9085
+ } = useCombobox$1();
9086
+ const index = groupBy ? items.indexOf(item) : indexProp;
9087
+ const disabled = disabledProp || item && item instanceof Object && "disabled" in item && item.disabled;
9024
9088
  useEffect(() => {
9025
- if (firstRenderRef.current === true) {
9026
- firstRenderRef.current = false;
9089
+ if (disabledProp && !disabledItems.includes(item)) {
9090
+ setDisabledItems([...disabledItems, item]);
9091
+ } else if (disabledItems.includes(item)) {
9092
+ setDisabledItems(
9093
+ disabledItems.filter((prevItem) => prevItem === item)
9094
+ );
9027
9095
  }
9028
- }, []);
9029
- useEffect(() => {
9030
- setIsDisabled(disabled);
9031
- }, [disabled]);
9032
- useEffect(() => {
9033
- setIsReadOnly(readOnly);
9034
- }, [readOnly]);
9035
- useEffect(() => {
9036
- if (firstRenderRef.current) return;
9037
- setTimeout(() => {
9038
- const inputValueMatchesSelectedItem = selectedItem != null && inputValue === itemToString(selectedItem);
9039
- const inputValueIsEmpty = inputValue == null || inputValue === "";
9040
- if (!inputValueMatchesSelectedItem && !inputValueIsEmpty && !disableFilter) {
9041
- setItems(
9042
- matchSorter(allItemsOrderedByGroup, inputValue, filterOptions)
9043
- );
9044
- setHasExactMatch(
9045
- matchSorter(allItemsOrderedByGroup, inputValue, {
9046
- ...filterOptions,
9047
- threshold: matchSorter.rankings.EQUAL
9048
- }).length > 0
9096
+ return () => {
9097
+ if (disabledItems.includes(item)) {
9098
+ setDisabledItems(
9099
+ disabledItems.filter((prevItem) => prevItem === item)
9049
9100
  );
9050
- } else {
9051
- setItems(allItemsOrderedByGroup);
9052
- setHasExactMatch(true);
9053
9101
  }
9054
- }, 200);
9055
- }, [allItemsOrderedByGroup]);
9056
- return /* @__PURE__ */ jsx(
9057
- ComboboxContext.Provider,
9058
- {
9059
- value: {
9060
- multiple: false,
9061
- select: false,
9062
- items: searchedItemsOrderedByGroup,
9063
- itemToString,
9064
- itemToKey,
9065
- isOpen,
9066
- getLabelProps,
9067
- getInputProps,
9068
- getToggleButtonProps,
9069
- getMenuProps,
9070
- getItemProps,
9071
- highlightedIndex,
9072
- selectedItem,
9073
- selectedItems: [],
9074
- disabledItems,
9075
- setDisabledItems,
9076
- setForceCloseOnSelectItems,
9077
- setForceClearInputValueOnSelectItems,
9078
- getSelectedItemProps: void 0,
9079
- getDropdownProps: void 0,
9080
- selectItem,
9081
- inputValue,
9082
- isDisabled,
9083
- isReadOnly,
9084
- setIsReadOnly,
9085
- setIsDisabled,
9086
- hasDisabledPopover,
9087
- setHasDisabledPopover,
9088
- hasEmpty,
9089
- setHasEmpty,
9090
- hasAddNew,
9091
- setHasAddNew,
9092
- onSelectItemAddNew,
9093
- setOnSelectItemAddNew,
9094
- hasExactMatch,
9095
- setHasExactMatch,
9096
- loading,
9097
- referenceRef,
9098
- contentRef,
9099
- closeMenu,
9100
- groupBy,
9101
- groupToString,
9102
- groups: searchedGroups
9103
- },
9104
- children: /* @__PURE__ */ jsx(
9105
- "div",
9106
- {
9107
- className: ComboboxClassNames,
9108
- "data-anv": "combobox",
9109
- style: { ...style, ...layoutStyles },
9110
- ref: wrapperDivRef,
9111
- children: /* @__PURE__ */ jsx(
9112
- Popover,
9113
- {
9114
- open: isOpen,
9115
- noPadding: true,
9116
- disableCaret: true,
9117
- fitScreen: true,
9118
- disableFlipFallback: true,
9119
- placement: "bottom-start",
9120
- matchReferenceWidth: !disableMatchReferenceWidth,
9121
- disableCloseOnClickOutside,
9122
- onOutsidePress: handleOutsidePress,
9123
- minHeight: minPopoverHeight,
9124
- children
9125
- }
9126
- )
9127
- }
9128
- )
9129
- }
9130
- );
9131
- };
9132
- const ComboboxMultiple = function(props) {
9133
- const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
9134
- const {
9135
- className,
9136
- style,
9137
- children,
9138
- open,
9139
- items: itemsProp,
9140
- itemToString: itemToStringProp,
9141
- itemToKey: itemToKeyProp,
9142
- onChange,
9143
- onSelectedItemsChange,
9144
- onStateChange,
9145
- disableCloseOnClickOutside = false,
9146
- disableMatchReferenceWidth = false,
9147
- disableCloseOnSelectItem = false,
9148
- disableClearInputValueOnSelectItem = false,
9149
- filterOptions,
9150
- disableFilter = false,
9151
- loading = false,
9152
- minPopoverHeight,
9153
- root,
9154
- disabled,
9155
- readOnly,
9156
- stateReducer: _,
9157
- onInputValueChange,
9158
- initialSelectedItems,
9159
- initialActiveIndex,
9160
- defaultSelectedItems,
9161
- defaultActiveIndex,
9162
- activeIndex: activeIndexProp,
9163
- selectedItems: selectedItemsProp,
9164
- environment: environmentProp,
9165
- groupBy,
9166
- groupToString,
9167
- ...rest
9168
- } = componentProps;
9169
- const ComboboxClassNames = cx(styles["combobox"], className);
9170
- const [items, setItems] = useState(itemsProp);
9171
- const [hasAddNew, setHasAddNew] = useState(false);
9172
- const [onSelectItemAddNew, setOnSelectItemAddNew] = useState(void 0);
9173
- const [hasExactMatch, setHasExactMatch] = useState(false);
9174
- const [hasDisabledPopover, setHasDisabledPopover] = useState(false);
9175
- const [hasEmpty, setHasEmpty] = useState(false);
9176
- const [disabledItems, setDisabledItems] = useState([]);
9177
- const [forceCloseOnSelectItems, setForceCloseOnSelectItems] = useState([]);
9178
- const [
9179
- forceClearInputValueOnSelectItems,
9180
- setForceClearInputValueOnSelectItems
9181
- ] = useState([]);
9182
- const [isReadOnly, setIsReadOnly] = useState(readOnly);
9183
- const [isDisabled, setIsDisabled] = useState(disabled);
9184
- let storedSetInputValue = void 0;
9185
- const referenceRef = useRef(null);
9186
- const contentRef = useRef(null);
9187
- const handleOutsidePress = (_e) => {
9188
- if (disableCloseOnClickOutside) return;
9189
- closeMenu();
9102
+ };
9103
+ }, [item, disabledProp, setDisabledItems]);
9104
+ if (multiple) {
9105
+ const checked = selectedItems.some(
9106
+ (selectedItem2) => itemToKey(selectedItem2) === itemToKey(item)
9107
+ );
9108
+ return /* @__PURE__ */ jsxs(
9109
+ "div",
9110
+ {
9111
+ "data-anv": "combobox-item",
9112
+ ...getItemProps({
9113
+ item,
9114
+ index,
9115
+ "aria-selected": highlightedIndex === index,
9116
+ ...rest
9117
+ }),
9118
+ className: cx(
9119
+ styles["listview-option"],
9120
+ styles$3["listview-option"]
9121
+ ),
9122
+ children: [
9123
+ item !== ADD_NEW$1 ? /* @__PURE__ */ jsx("div", { className: cx(styles["cell"], styles$3["cell"]), children: /* @__PURE__ */ jsx("div", { className: checkboxStyles["wrapper"], children: /* @__PURE__ */ jsxs("div", { className: checkboxStyles["checkbox"], children: [
9124
+ /* @__PURE__ */ jsx(
9125
+ "input",
9126
+ {
9127
+ type: "checkbox",
9128
+ checked,
9129
+ "aria-checked": checked,
9130
+ "aria-label": "Select",
9131
+ readOnly: true,
9132
+ tabIndex: -1,
9133
+ ...disabled ? { disabled: true } : {}
9134
+ }
9135
+ ),
9136
+ /* @__PURE__ */ jsxs("span", { className: checkboxStyles["icon-wrapper"], "aria-hidden": true, children: [
9137
+ /* @__PURE__ */ jsx(
9138
+ Icon$2,
9139
+ {
9140
+ size: "large",
9141
+ svg: SvgIndeterminateCheckBox,
9142
+ className: checkboxStyles["icon-indeterminate"]
9143
+ }
9144
+ ),
9145
+ /* @__PURE__ */ jsx(
9146
+ Icon$2,
9147
+ {
9148
+ size: "large",
9149
+ svg: SvgCheckBox,
9150
+ className: checkboxStyles["icon-checked"]
9151
+ }
9152
+ ),
9153
+ /* @__PURE__ */ jsx(
9154
+ Icon$2,
9155
+ {
9156
+ size: "large",
9157
+ svg: SvgCheckBoxOutlineBlank,
9158
+ className: checkboxStyles["icon-unchecked"]
9159
+ }
9160
+ )
9161
+ ] }),
9162
+ /* @__PURE__ */ jsx("span", { "aria-hidden": true })
9163
+ ] }) }) }) : null,
9164
+ /* @__PURE__ */ jsx(
9165
+ Flex,
9166
+ {
9167
+ grow: 1,
9168
+ shrink: 1,
9169
+ alignItems,
9170
+ justifyItems,
9171
+ alignContent,
9172
+ justifyContent,
9173
+ placeItems,
9174
+ placeContent,
9175
+ gap,
9176
+ rowGap,
9177
+ columnGap,
9178
+ children
9179
+ }
9180
+ )
9181
+ ]
9182
+ }
9183
+ );
9184
+ } else {
9185
+ return /* @__PURE__ */ jsxs(
9186
+ "li",
9187
+ {
9188
+ ...getItemProps({
9189
+ item,
9190
+ index,
9191
+ "aria-selected": highlightedIndex === index,
9192
+ ...rest
9193
+ }),
9194
+ "data-anv": "combobox-item",
9195
+ "data-checked": itemToKey(selectedItem) === itemToKey(item),
9196
+ className: styles["item"],
9197
+ ...disabled ? { "aria-disabled": true } : {},
9198
+ children: [
9199
+ /* @__PURE__ */ jsx(
9200
+ Flex,
9201
+ {
9202
+ className: styles$4["children"],
9203
+ grow: 1,
9204
+ shrink: 1,
9205
+ alignItems,
9206
+ justifyItems,
9207
+ alignContent,
9208
+ justifyContent,
9209
+ placeItems,
9210
+ placeContent,
9211
+ gap,
9212
+ rowGap,
9213
+ columnGap,
9214
+ children
9215
+ }
9216
+ ),
9217
+ /* @__PURE__ */ jsx(
9218
+ Icon$2,
9219
+ {
9220
+ "aria-hidden": true,
9221
+ svg: SvgCheck,
9222
+ inherit: true,
9223
+ className: styles["Icon"],
9224
+ style: {
9225
+ opacity: itemToKey(selectedItem) === itemToKey(item) ? 1 : 0
9226
+ }
9227
+ }
9228
+ )
9229
+ ]
9230
+ }
9231
+ );
9232
+ }
9233
+ };
9234
+ const ComboboxItemElement = function(props) {
9235
+ if (!supportsPopover()) return /* @__PURE__ */ jsx(ComboboxLegacyItem, { ...props });
9236
+ return /* @__PURE__ */ jsx(CoreComboboxItemElement, { ...props });
9237
+ };
9238
+ const ComboboxItem = function(props) {
9239
+ const data = {
9240
+ item: props.item
9190
9241
  };
9191
- const { ref: wrapperDivRef, environment } = useDownshiftEnvironment$1();
9192
- const { orderedItems: allItemsOrderedByGroup } = useGroups({
9193
- items: itemsProp,
9194
- groupBy,
9195
- groupToString
9242
+ const trackingId = useTrackingId({
9243
+ name: "ComboboxItem",
9244
+ data,
9245
+ hasOverride: !!props["data-tracking-id"]
9196
9246
  });
9197
- const { groups: searchedGroups, orderedItems: searchedItemsOrderedByGroup } = useGroups({
9198
- items,
9199
- groupBy,
9200
- groupToString
9247
+ return /* @__PURE__ */ jsx(ComboboxItemElement, { "data-tracking-id": trackingId, ...props });
9248
+ };
9249
+ const CoreComboboxItemAddNewElement = function({
9250
+ onSelection,
9251
+ ...props
9252
+ }) {
9253
+ const { items, setHasAddNew, hasExactMatch, setOnSelectItemAddNew } = useCombobox$1();
9254
+ useEffect(() => {
9255
+ setHasAddNew?.(true);
9256
+ return () => {
9257
+ setHasAddNew?.(false);
9258
+ };
9259
+ }, []);
9260
+ useEffect(() => {
9261
+ setOnSelectItemAddNew?.(() => onSelection);
9262
+ return () => {
9263
+ setOnSelectItemAddNew?.(void 0);
9264
+ };
9265
+ }, [setOnSelectItemAddNew, onSelection]);
9266
+ const firstRenderRef = useRef(true);
9267
+ useEffect(() => {
9268
+ if (firstRenderRef.current === true) {
9269
+ firstRenderRef.current = false;
9270
+ }
9271
+ }, []);
9272
+ return !hasExactMatch && !firstRenderRef.current ? /* @__PURE__ */ jsx(
9273
+ ComboboxItem,
9274
+ {
9275
+ ...props,
9276
+ item: ADD_NEW$1,
9277
+ index: items.length
9278
+ }
9279
+ ) : null;
9280
+ };
9281
+ const ComboboxItemAddNewElement = function(props) {
9282
+ if (!supportsPopover()) return /* @__PURE__ */ jsx(ComboboxLegacyItemAddNew, { ...props });
9283
+ return /* @__PURE__ */ jsx(CoreComboboxItemAddNewElement, { ...props });
9284
+ };
9285
+ const ComboboxItemAddNew = function(props) {
9286
+ const data = {
9287
+ item: "add-new"
9288
+ };
9289
+ const trackingId = useTrackingId({
9290
+ name: "ComboboxItemAddNew",
9291
+ data,
9292
+ hasOverride: !!props["data-tracking-id"]
9201
9293
  });
9202
- const showAddNew = hasAddNew && !hasExactMatch;
9203
- const combinedItems = useMemo(
9204
- () => showAddNew ? [...items, ADD_NEW$1] : searchedItemsOrderedByGroup,
9205
- [items, searchedItemsOrderedByGroup, showAddNew]
9206
- );
9207
- const itemToString = itemToStringProp ?? defaultItemToString$1;
9208
- const itemToKey = itemToKeyProp ?? defaultItemToKey$1;
9294
+ return /* @__PURE__ */ jsx(ComboboxItemAddNewElement, { "data-tracking-id": trackingId, ...props });
9295
+ };
9296
+
9297
+ const ComboboxListElement = function({
9298
+ children,
9299
+ ...rest
9300
+ }) {
9209
9301
  const {
9210
- getSelectedItemProps,
9211
- getDropdownProps,
9212
- reset,
9213
- selectedItems,
9214
- addSelectedItem,
9215
- removeSelectedItem,
9216
- setSelectedItems
9217
- } = useMultipleSelection({
9218
- itemToKey,
9219
- initialSelectedItems,
9220
- initialActiveIndex,
9221
- defaultSelectedItems,
9222
- defaultActiveIndex,
9223
- activeIndex: activeIndexProp,
9224
- selectedItems: selectedItemsProp,
9225
- environment: environmentProp ?? environment,
9226
- stateReducer(state, { type, changes }) {
9227
- switch (type) {
9228
- // the Chip itself will handle "Backspace" and "Delete"
9229
- // just return previous state
9230
- case useMultipleSelection.stateChangeTypes.SelectedItemKeyDownBackspace:
9231
- case useMultipleSelection.stateChangeTypes.SelectedItemKeyDownDelete:
9232
- return state;
9233
- case useMultipleSelection.stateChangeTypes.FunctionRemoveSelectedItem:
9234
- return { ...changes, activeIndex: -1 };
9235
- case useMultipleSelection.stateChangeTypes.FunctionReset:
9236
- return { ...changes, selectedItems: [] };
9237
- default:
9238
- return changes;
9239
- }
9240
- },
9241
- onStateChange(changes) {
9242
- const { type } = changes;
9243
- switch (type) {
9244
- case useMultipleSelection.stateChangeTypes.FunctionReset:
9245
- storedSetInputValue?.("");
9246
- break;
9247
- }
9248
- onStateChange?.(changes);
9249
- },
9250
- onSelectedItemsChange(changes) {
9251
- const { selectedItems: selectedItems2 } = changes;
9252
- if (onChange != null) onChange(selectedItems2);
9253
- if (onSelectedItemsChange != null) onSelectedItemsChange(changes);
9254
- }
9302
+ getMenuProps,
9303
+ multiple,
9304
+ items,
9305
+ hasAddNew = false,
9306
+ hasEmpty,
9307
+ loading
9308
+ } = useCombobox$1();
9309
+ if (!supportsPopover())
9310
+ return /* @__PURE__ */ jsx(ComboboxLegacyList, { ...rest, children });
9311
+ if (multiple) {
9312
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
9313
+ /* @__PURE__ */ jsx(
9314
+ "div",
9315
+ {
9316
+ ...getMenuProps(rest),
9317
+ "data-anv": "combobox-list",
9318
+ className: cx(styles["listview"], styles$3["listview"]),
9319
+ style: {
9320
+ display: items.length || hasAddNew ? void 0 : "none",
9321
+ overflow: "auto"
9322
+ },
9323
+ children
9324
+ }
9325
+ ),
9326
+ loading ? /* @__PURE__ */ jsx("div", { className: styles["empty"], children: /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Spinner, { className: styles["loading-spinner"] }) }) }) : !items.length && !hasEmpty ? /* @__PURE__ */ jsx("div", { className: styles["empty"], children: /* @__PURE__ */ jsx(Text, { subdued: true, size: "small", children: "No match found" }) }) : null
9327
+ ] });
9328
+ } else {
9329
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
9330
+ /* @__PURE__ */ jsx(
9331
+ "ul",
9332
+ {
9333
+ ...getMenuProps(rest),
9334
+ "data-anv": "combobox-list",
9335
+ className: styles$4["listbox"],
9336
+ style: {
9337
+ display: items.length || hasAddNew ? void 0 : "none",
9338
+ overflow: "auto"
9339
+ },
9340
+ children
9341
+ }
9342
+ ),
9343
+ loading ? /* @__PURE__ */ jsx("div", { className: styles["empty"], children: /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Spinner, { className: styles["loading-spinner"] }) }) }) : !items.length && !hasEmpty ? /* @__PURE__ */ jsx("div", { className: styles["empty"], children: /* @__PURE__ */ jsx(Text, { subdued: true, size: "small", children: "No match found" }) }) : null
9344
+ ] });
9345
+ }
9346
+ };
9347
+ const ComboboxList = function({
9348
+ children,
9349
+ className,
9350
+ ...rest
9351
+ }) {
9352
+ if (!supportsPopover())
9353
+ return /* @__PURE__ */ jsx(ComboboxLegacyList, { className, ...rest, children });
9354
+ return /* @__PURE__ */ jsx(ComboboxListElement, { className, ...rest, children });
9355
+ };
9356
+
9357
+ const ComboboxSingle = function(props) {
9358
+ const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
9359
+ const {
9360
+ className,
9361
+ style,
9362
+ children,
9363
+ open,
9364
+ disabled,
9365
+ readOnly,
9366
+ items: itemsProp,
9367
+ itemToString: itemToStringProp,
9368
+ itemToKey: itemToKeyProp,
9369
+ onChange,
9370
+ disableCloseOnClickOutside = false,
9371
+ disableMatchReferenceWidth = false,
9372
+ disableCloseOnSelectItem = false,
9373
+ filterOptions,
9374
+ disableFilter = false,
9375
+ loading = false,
9376
+ minPopoverHeight,
9377
+ root,
9378
+ onInputValueChange,
9379
+ environment: environmentProp,
9380
+ groupBy,
9381
+ groupToString,
9382
+ groupSorter,
9383
+ ...rest
9384
+ } = componentProps;
9385
+ const ComboboxClassNames = cx(styles["combobox"], className);
9386
+ const [items, setItems] = useState(itemsProp);
9387
+ const [hasAddNew, setHasAddNew] = useState(false);
9388
+ const [onSelectItemAddNew, setOnSelectItemAddNew] = useState(void 0);
9389
+ const [hasExactMatch, setHasExactMatch] = useState(false);
9390
+ const [hasDisabledPopover, setHasDisabledPopover] = useState(false);
9391
+ const [hasEmpty, setHasEmpty] = useState(false);
9392
+ const [disabledItems, setDisabledItems] = useState([]);
9393
+ const [isReadOnly, setIsReadOnly] = useState(readOnly);
9394
+ const [isDisabled, setIsDisabled] = useState(disabled);
9395
+ const referenceRef = useRef(null);
9396
+ const contentRef = useRef(null);
9397
+ const handleOutsidePress = (_e) => {
9398
+ if (disableCloseOnClickOutside) return;
9399
+ closeMenu();
9400
+ };
9401
+ const { ref: wrapperDivRef, environment } = useDownshiftEnvironment$1();
9402
+ const { orderedItems: allItemsOrderedByGroup } = useGroups({
9403
+ items: itemsProp,
9404
+ groupBy,
9405
+ groupToString,
9406
+ groupSorter
9407
+ });
9408
+ const { groups: searchedGroups, orderedItems: searchedItemsOrderedByGroup } = useGroups({
9409
+ items,
9410
+ groupBy,
9411
+ groupToString,
9412
+ groupSorter
9255
9413
  });
9414
+ const showAddNew = hasAddNew && !hasExactMatch;
9415
+ const combinedItems = useMemo(
9416
+ () => showAddNew ? [...searchedItemsOrderedByGroup, ADD_NEW$1] : searchedItemsOrderedByGroup,
9417
+ [searchedItemsOrderedByGroup, showAddNew]
9418
+ );
9419
+ const itemToString = itemToStringProp ?? defaultItemToString$1;
9420
+ const itemToKey = itemToKeyProp ?? defaultItemToKey$1;
9256
9421
  const {
9257
9422
  isOpen,
9258
9423
  getLabelProps,
@@ -9266,12 +9431,11 @@ const ComboboxMultiple = function(props) {
9266
9431
  setInputValue,
9267
9432
  inputValue,
9268
9433
  closeMenu
9269
- } = useCombobox$1({
9434
+ } = useCombobox({
9270
9435
  ...rest,
9271
9436
  items: combinedItems,
9272
9437
  itemToString,
9273
9438
  itemToKey,
9274
- selectedItem: null,
9275
9439
  isOpen: open,
9276
9440
  initialIsOpen: open,
9277
9441
  environment: environmentProp ?? environment,
@@ -9279,16 +9443,14 @@ const ComboboxMultiple = function(props) {
9279
9443
  stateReducer(state, { type, changes }) {
9280
9444
  switch (type) {
9281
9445
  // keep Combobox open onBlur, will call close using Popover's onOutsidePress
9282
- case useCombobox$1.stateChangeTypes.InputBlur:
9446
+ case useCombobox.stateChangeTypes.InputBlur:
9283
9447
  return {
9284
9448
  ...changes,
9285
- inputValue: state.inputValue,
9286
- selectedItem: null,
9287
9449
  isOpen: open != null ? open : true,
9288
9450
  highlightedIndex: state.highlightedIndex
9289
9451
  };
9290
- case useCombobox$1.stateChangeTypes.InputKeyDownEnter:
9291
- case useCombobox$1.stateChangeTypes.ItemClick:
9452
+ case useCombobox.stateChangeTypes.InputKeyDownEnter:
9453
+ case useCombobox.stateChangeTypes.ItemClick:
9292
9454
  if (changes.selectedItem === ADD_NEW$1) {
9293
9455
  const stateInputValue = state.inputValue;
9294
9456
  setTimeout(() => {
@@ -9300,54 +9462,23 @@ const ComboboxMultiple = function(props) {
9300
9462
  inputValue: ""
9301
9463
  };
9302
9464
  } else {
9303
- const forceClose = forceCloseOnSelectItems.includes(
9304
- changes.selectedItem
9305
- );
9306
- const forceClearInputValue = forceClearInputValueOnSelectItems.includes(
9307
- changes.selectedItem
9308
- );
9309
9465
  return {
9310
9466
  ...changes,
9311
- isOpen: open != null ? open : forceClose ? false : disableCloseOnSelectItem ? true : changes.isOpen,
9312
- highlightedIndex: forceClearInputValue ? 0 : disableCloseOnSelectItem ? disableClearInputValueOnSelectItem || !state.inputValue ? state.highlightedIndex : 0 : changes.highlightedIndex,
9313
- inputValue: forceClearInputValue ? "" : disableClearInputValueOnSelectItem ? state.inputValue : ""
9467
+ isOpen: open != null ? open : disableCloseOnSelectItem ? true : changes.isOpen,
9468
+ highlightedIndex: disableCloseOnSelectItem ? itemToString(state.selectedItem) === state.inputValue || !state.inputValue ? state.highlightedIndex : 0 : changes.highlightedIndex
9314
9469
  };
9315
9470
  }
9316
9471
  // prevent this from closing the popover by default
9317
- case useCombobox$1.stateChangeTypes.InputClick:
9472
+ case useCombobox.stateChangeTypes.InputClick:
9318
9473
  return { ...changes, isOpen: open != null ? open : true };
9319
- // prevent this from clearing the input value by default
9320
- case useCombobox$1.stateChangeTypes.ControlledPropUpdatedSelectedItem:
9321
- return { ...changes, inputValue: state.inputValue };
9322
9474
  default:
9323
9475
  return changes;
9324
9476
  }
9325
9477
  },
9326
- onStateChange(changes) {
9327
- const { type, selectedItem: newSelectedItem } = changes;
9328
- switch (type) {
9329
- case useCombobox$1.stateChangeTypes.InputKeyDownEnter:
9330
- case useCombobox$1.stateChangeTypes.ItemClick:
9331
- case useCombobox$1.stateChangeTypes.InputBlur:
9332
- if (newSelectedItem != null) {
9333
- const itemAlreadySelected = selectedItems.some(
9334
- (item) => itemToKey(item) === itemToKey(newSelectedItem)
9335
- );
9336
- if (itemAlreadySelected) {
9337
- removeSelectedItem(newSelectedItem);
9338
- } else {
9339
- addSelectedItem(newSelectedItem);
9340
- }
9341
- }
9342
- break;
9343
- }
9344
- onStateChange?.(changes);
9345
- },
9346
- onInputValueChange: onInputValueChange ?? (({ inputValue: inputValue2, ...changes }) => {
9347
- const { type, selectedItem: selectedItem2 } = changes;
9478
+ onInputValueChange: onInputValueChange ?? (({ inputValue: inputValue2, type, selectedItem: selectedItem2 }) => {
9348
9479
  const inputValueMatchesSelectedItem = selectedItem2 != null && inputValue2 === itemToString(selectedItem2);
9349
9480
  const inputValueIsEmpty = inputValue2 == null || inputValue2 === "";
9350
- if (type === useCombobox$1.stateChangeTypes.InputKeyDownEnter || type === useCombobox$1.stateChangeTypes.ItemClick) {
9481
+ if (type === useCombobox.stateChangeTypes.InputKeyDownEnter || type === useCombobox.stateChangeTypes.ItemClick) {
9351
9482
  setItems(allItemsOrderedByGroup);
9352
9483
  setHasExactMatch(true);
9353
9484
  } else if (!inputValueMatchesSelectedItem && !inputValueIsEmpty && !disableFilter) {
@@ -9365,11 +9496,22 @@ const ComboboxMultiple = function(props) {
9365
9496
  setHasExactMatch(true);
9366
9497
  }
9367
9498
  }),
9368
- onIsOpenChange({ isOpen: isOpen2 }) {
9499
+ onSelectedItemChange(changes) {
9500
+ const { selectedItem: selectedItem2 } = changes;
9501
+ if (onChange != null)
9502
+ onChange(selectedItem2 != null ? selectedItem2 : null);
9503
+ },
9504
+ onIsOpenChange({ isOpen: isOpen2, inputValue: inputValue2, selectedItem: selectedItem2 }) {
9369
9505
  if (isOpen2 === false) {
9370
9506
  setTimeout(() => {
9371
- setInputValue("");
9372
9507
  setItems(allItemsOrderedByGroup);
9508
+ if (inputValue2 === "") {
9509
+ selectItem(null);
9510
+ } else {
9511
+ setInputValue(
9512
+ selectedItem2 != null ? itemToString(selectedItem2) : ""
9513
+ );
9514
+ }
9373
9515
  }, 200);
9374
9516
  }
9375
9517
  },
@@ -9389,7 +9531,6 @@ const ComboboxMultiple = function(props) {
9389
9531
  return false;
9390
9532
  }
9391
9533
  });
9392
- storedSetInputValue = setInputValue;
9393
9534
  const firstRenderRef = useRef(true);
9394
9535
  useEffect(() => {
9395
9536
  if (firstRenderRef.current === true) {
@@ -9404,27 +9545,26 @@ const ComboboxMultiple = function(props) {
9404
9545
  }, [readOnly]);
9405
9546
  useEffect(() => {
9406
9547
  if (firstRenderRef.current) return;
9407
- setTimeout(() => {
9408
- const inputValueIsEmpty = inputValue == null || inputValue === "";
9409
- if (!inputValueIsEmpty && !disableFilter) {
9410
- setItems(matchSorter(itemsProp, inputValue, filterOptions));
9411
- setHasExactMatch(
9412
- matchSorter(itemsProp, inputValue, {
9413
- ...filterOptions,
9414
- threshold: matchSorter.rankings.EQUAL
9415
- }).length > 0
9416
- );
9417
- } else {
9418
- setItems(itemsProp);
9419
- setHasExactMatch(true);
9420
- }
9421
- }, 200);
9422
- }, [itemsProp]);
9548
+ const inputValueMatchesSelectedItem = selectedItem != null && inputValue === itemToString(selectedItem);
9549
+ const inputValueIsEmpty = inputValue == null || inputValue === "";
9550
+ if (!inputValueMatchesSelectedItem && !inputValueIsEmpty && !disableFilter) {
9551
+ setItems(matchSorter(allItemsOrderedByGroup, inputValue, filterOptions));
9552
+ setHasExactMatch(
9553
+ matchSorter(allItemsOrderedByGroup, inputValue, {
9554
+ ...filterOptions,
9555
+ threshold: matchSorter.rankings.EQUAL
9556
+ }).length > 0
9557
+ );
9558
+ } else {
9559
+ setItems(allItemsOrderedByGroup);
9560
+ setHasExactMatch(true);
9561
+ }
9562
+ }, [allItemsOrderedByGroup]);
9423
9563
  return /* @__PURE__ */ jsx(
9424
9564
  ComboboxContext.Provider,
9425
9565
  {
9426
9566
  value: {
9427
- multiple: true,
9567
+ multiple: false,
9428
9568
  select: false,
9429
9569
  items: searchedItemsOrderedByGroup,
9430
9570
  itemToString,
@@ -9437,17 +9577,11 @@ const ComboboxMultiple = function(props) {
9437
9577
  getItemProps,
9438
9578
  highlightedIndex,
9439
9579
  selectedItem,
9440
- selectedItems,
9580
+ selectedItems: [],
9441
9581
  disabledItems,
9442
9582
  setDisabledItems,
9443
- setForceCloseOnSelectItems,
9444
- setForceClearInputValueOnSelectItems,
9445
- getSelectedItemProps,
9446
- getDropdownProps,
9447
- reset,
9448
- addSelectedItem,
9449
- removeSelectedItem,
9450
- setSelectedItems,
9583
+ getSelectedItemProps: void 0,
9584
+ getDropdownProps: void 0,
9451
9585
  selectItem,
9452
9586
  inputValue,
9453
9587
  isDisabled,
@@ -9482,7 +9616,7 @@ const ComboboxMultiple = function(props) {
9482
9616
  children: /* @__PURE__ */ jsx(
9483
9617
  Popover,
9484
9618
  {
9485
- open: !isDisabled && isOpen,
9619
+ open: isOpen,
9486
9620
  noPadding: true,
9487
9621
  disableCaret: true,
9488
9622
  fitScreen: true,
@@ -9500,39 +9634,54 @@ const ComboboxMultiple = function(props) {
9500
9634
  }
9501
9635
  );
9502
9636
  };
9503
- const SelectSingle = function(props) {
9637
+ const ComboboxMultiple = function(props) {
9504
9638
  const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
9505
9639
  const {
9506
9640
  className,
9507
9641
  style,
9508
9642
  children,
9509
9643
  open,
9510
- disabled,
9511
- readOnly,
9512
- items,
9644
+ items: itemsProp,
9513
9645
  itemToString: itemToStringProp,
9514
9646
  itemToKey: itemToKeyProp,
9515
9647
  onChange,
9516
- disableClearSelection = false,
9648
+ onSelectedItemsChange,
9649
+ onStateChange,
9517
9650
  disableCloseOnClickOutside = false,
9518
9651
  disableMatchReferenceWidth = false,
9519
9652
  disableCloseOnSelectItem = false,
9653
+ disableClearInputValueOnSelectItem = false,
9654
+ filterOptions,
9655
+ disableFilter = false,
9520
9656
  loading = false,
9521
9657
  minPopoverHeight,
9522
9658
  root,
9659
+ disabled,
9660
+ readOnly,
9661
+ stateReducer: _,
9662
+ onInputValueChange,
9663
+ initialSelectedItems,
9664
+ initialActiveIndex,
9665
+ defaultSelectedItems,
9666
+ defaultActiveIndex,
9667
+ activeIndex: activeIndexProp,
9668
+ selectedItems: selectedItemsProp,
9523
9669
  environment: environmentProp,
9524
9670
  groupBy,
9525
9671
  groupToString,
9526
9672
  ...rest
9527
9673
  } = componentProps;
9528
9674
  const ComboboxClassNames = cx(styles["combobox"], className);
9675
+ const [items, setItems] = useState(itemsProp);
9676
+ const [hasAddNew, setHasAddNew] = useState(false);
9677
+ const [onSelectItemAddNew, setOnSelectItemAddNew] = useState(void 0);
9678
+ const [hasExactMatch, setHasExactMatch] = useState(false);
9529
9679
  const [hasDisabledPopover, setHasDisabledPopover] = useState(false);
9530
9680
  const [hasEmpty, setHasEmpty] = useState(false);
9531
9681
  const [disabledItems, setDisabledItems] = useState([]);
9532
- const [forceCloseOnSelectItems, setForceCloseOnSelectItems] = useState([]);
9533
- const [, setForceClearInputValueOnSelectItems] = useState([]);
9534
9682
  const [isReadOnly, setIsReadOnly] = useState(readOnly);
9535
9683
  const [isDisabled, setIsDisabled] = useState(disabled);
9684
+ let storedSetInputValue = void 0;
9536
9685
  const referenceRef = useRef(null);
9537
9686
  const contentRef = useRef(null);
9538
9687
  const handleOutsidePress = (_e) => {
@@ -9540,192 +9689,23 @@ const SelectSingle = function(props) {
9540
9689
  closeMenu();
9541
9690
  };
9542
9691
  const { ref: wrapperDivRef, environment } = useDownshiftEnvironment$1();
9543
- const itemToString = itemToStringProp ?? defaultItemToString$1;
9544
- const itemToKey = itemToKeyProp ?? defaultItemToKey$1;
9545
- const { groups, orderedItems } = useGroups({
9692
+ const { orderedItems: allItemsOrderedByGroup } = useGroups({
9693
+ items: itemsProp,
9694
+ groupBy,
9695
+ groupToString
9696
+ });
9697
+ const { groups: searchedGroups, orderedItems: searchedItemsOrderedByGroup } = useGroups({
9546
9698
  items,
9547
9699
  groupBy,
9548
9700
  groupToString
9549
9701
  });
9550
- const {
9551
- isOpen,
9552
- getLabelProps,
9553
- getToggleButtonProps,
9554
- getMenuProps,
9555
- getItemProps,
9556
- highlightedIndex,
9557
- selectedItem,
9558
- selectItem,
9559
- inputValue,
9560
- closeMenu
9561
- } = useSelect({
9562
- ...rest,
9563
- items: orderedItems,
9564
- itemToString,
9565
- itemToKey,
9566
- isOpen: open,
9567
- initialIsOpen: open,
9568
- environment: environmentProp ?? environment,
9569
- // NOTE: Reducer needs to be pure, side-effects should be in event handlers
9570
- stateReducer(state, { type, changes }) {
9571
- switch (type) {
9572
- case useSelect.stateChangeTypes.ToggleButtonKeyDownEnter:
9573
- case useSelect.stateChangeTypes.ItemClick:
9574
- return {
9575
- ...changes,
9576
- isOpen: open != null ? open : forceCloseOnSelectItems.includes(changes.selectedItem) ? false : disableCloseOnSelectItem ? true : changes.isOpen,
9577
- highlightedIndex: disableCloseOnSelectItem ? state.highlightedIndex : changes.highlightedIndex
9578
- };
9579
- default:
9580
- return changes;
9581
- }
9582
- },
9583
- onSelectedItemChange(changes) {
9584
- const { selectedItem: selectedItem2 } = changes;
9585
- if (onChange != null)
9586
- onChange(selectedItem2 != null ? selectedItem2 : null);
9587
- },
9588
- isItemDisabled(item) {
9589
- if (isDisabled || isReadOnly) {
9590
- return !!isDisabled || !!isReadOnly;
9591
- }
9592
- if (item && item instanceof Object && "disabled" in item && item.disabled) {
9593
- return true;
9594
- }
9595
- if (item && item instanceof Object && "readOnly" in item && item.readOnly) {
9596
- return true;
9597
- }
9598
- if (disabledItems.includes(item)) {
9599
- return true;
9600
- }
9601
- return false;
9602
- }
9603
- });
9604
- useEffect(() => {
9605
- setIsDisabled(disabled);
9606
- }, [disabled]);
9607
- useEffect(() => {
9608
- setIsReadOnly(readOnly);
9609
- }, [readOnly]);
9610
- return /* @__PURE__ */ jsx(
9611
- ComboboxContext.Provider,
9612
- {
9613
- value: {
9614
- multiple: false,
9615
- select: true,
9616
- disableClearSelection,
9617
- items: orderedItems,
9618
- itemToString,
9619
- itemToKey,
9620
- isOpen,
9621
- getLabelProps,
9622
- getToggleButtonProps,
9623
- getMenuProps,
9624
- getItemProps,
9625
- highlightedIndex,
9626
- selectedItem,
9627
- selectedItems: [],
9628
- disabledItems,
9629
- setDisabledItems,
9630
- setForceCloseOnSelectItems,
9631
- setForceClearInputValueOnSelectItems,
9632
- selectItem,
9633
- inputValue,
9634
- isDisabled,
9635
- isReadOnly,
9636
- setIsReadOnly,
9637
- setIsDisabled,
9638
- hasDisabledPopover,
9639
- setHasDisabledPopover,
9640
- hasEmpty,
9641
- setHasEmpty,
9642
- loading,
9643
- referenceRef,
9644
- contentRef,
9645
- closeMenu,
9646
- groups,
9647
- groupBy,
9648
- groupToString
9649
- },
9650
- children: /* @__PURE__ */ jsx(
9651
- "div",
9652
- {
9653
- className: ComboboxClassNames,
9654
- "data-anv": "combobox",
9655
- style: { ...style, ...layoutStyles },
9656
- ref: wrapperDivRef,
9657
- children: /* @__PURE__ */ jsx(
9658
- Popover,
9659
- {
9660
- open: isOpen,
9661
- noPadding: true,
9662
- disableCaret: true,
9663
- fitScreen: true,
9664
- disableFlipFallback: true,
9665
- placement: "bottom-start",
9666
- matchReferenceWidth: !disableMatchReferenceWidth,
9667
- disableCloseOnClickOutside,
9668
- onOutsidePress: handleOutsidePress,
9669
- minHeight: minPopoverHeight,
9670
- children
9671
- }
9672
- )
9673
- }
9674
- )
9675
- }
9676
- );
9677
- };
9678
- const SelectMultiple = function(props) {
9679
- const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
9680
- const {
9681
- className,
9682
- style,
9683
- children,
9684
- open,
9685
- items,
9686
- itemToString: itemToStringProp,
9687
- itemToKey: itemToKeyProp,
9688
- onChange,
9689
- onSelectedItemsChange,
9690
- onStateChange,
9691
- disableCloseOnClickOutside = false,
9692
- disableMatchReferenceWidth = false,
9693
- disableCloseOnSelectItem = false,
9694
- loading = false,
9695
- minPopoverHeight,
9696
- root,
9697
- disabled,
9698
- readOnly,
9699
- stateReducer: _,
9700
- initialSelectedItems,
9701
- initialActiveIndex,
9702
- defaultSelectedItems,
9703
- defaultActiveIndex,
9704
- activeIndex: activeIndexProp,
9705
- selectedItems: selectedItemsProp,
9706
- environment: environmentProp,
9707
- groupBy,
9708
- groupToString,
9709
- ...rest
9710
- } = componentProps;
9711
- const ComboboxClassNames = cx(styles["combobox"], className);
9712
- const [hasDisabledPopover, setHasDisabledPopover] = useState(false);
9713
- const [hasEmpty, setHasEmpty] = useState(false);
9714
- const [disabledItems, setDisabledItems] = useState([]);
9715
- const [forceCloseOnSelectItems, setForceCloseOnSelectItems] = useState([]);
9716
- const [, setForceClearInputValueOnSelectItems] = useState([]);
9717
- const [isReadOnly, setIsReadOnly] = useState(readOnly);
9718
- const [isDisabled, setIsDisabled] = useState(disabled);
9719
- const referenceRef = useRef(null);
9720
- const contentRef = useRef(null);
9721
- const handleOutsidePress = (_e) => {
9722
- if (disableCloseOnClickOutside) return;
9723
- closeMenu();
9724
- };
9725
- const { ref: wrapperDivRef, environment } = useDownshiftEnvironment$1();
9726
- const itemToString = itemToStringProp ?? defaultItemToString$1;
9727
- const itemToKey = itemToKeyProp ?? defaultItemToKey$1;
9728
- const { groups, orderedItems } = useGroups({ items, groupBy, groupToString });
9702
+ const showAddNew = hasAddNew && !hasExactMatch;
9703
+ const combinedItems = useMemo(
9704
+ () => showAddNew ? [...items, ADD_NEW$1] : searchedItemsOrderedByGroup,
9705
+ [items, searchedItemsOrderedByGroup, showAddNew]
9706
+ );
9707
+ const itemToString = itemToStringProp ?? defaultItemToString$1;
9708
+ const itemToKey = itemToKeyProp ?? defaultItemToKey$1;
9729
9709
  const {
9730
9710
  getSelectedItemProps,
9731
9711
  getDropdownProps,
@@ -9758,7 +9738,15 @@ const SelectMultiple = function(props) {
9758
9738
  return changes;
9759
9739
  }
9760
9740
  },
9761
- onStateChange,
9741
+ onStateChange(changes) {
9742
+ const { type } = changes;
9743
+ switch (type) {
9744
+ case useMultipleSelection.stateChangeTypes.FunctionReset:
9745
+ storedSetInputValue?.("");
9746
+ break;
9747
+ }
9748
+ onStateChange?.(changes);
9749
+ },
9762
9750
  onSelectedItemsChange(changes) {
9763
9751
  const { selectedItems: selectedItems2 } = changes;
9764
9752
  if (onChange != null) onChange(selectedItems2);
@@ -9768,17 +9756,19 @@ const SelectMultiple = function(props) {
9768
9756
  const {
9769
9757
  isOpen,
9770
9758
  getLabelProps,
9759
+ getInputProps,
9771
9760
  getToggleButtonProps,
9772
9761
  getMenuProps,
9773
9762
  getItemProps,
9774
9763
  highlightedIndex,
9775
9764
  selectedItem,
9776
9765
  selectItem,
9766
+ setInputValue,
9777
9767
  inputValue,
9778
9768
  closeMenu
9779
- } = useSelect({
9769
+ } = useCombobox({
9780
9770
  ...rest,
9781
- items: orderedItems,
9771
+ items: combinedItems,
9782
9772
  itemToString,
9783
9773
  itemToKey,
9784
9774
  selectedItem: null,
@@ -9788,452 +9778,231 @@ const SelectMultiple = function(props) {
9788
9778
  // NOTE: Reducer needs to be pure, side-effects should be in event handlers
9789
9779
  stateReducer(state, { type, changes }) {
9790
9780
  switch (type) {
9791
- case useSelect.stateChangeTypes.ToggleButtonKeyDownEnter:
9792
- case useSelect.stateChangeTypes.ItemClick:
9781
+ // keep Combobox open onBlur, will call close using Popover's onOutsidePress
9782
+ case useCombobox.stateChangeTypes.InputBlur:
9793
9783
  return {
9794
9784
  ...changes,
9795
- isOpen: open != null ? open : forceCloseOnSelectItems.includes(changes.selectedItem) ? false : disableCloseOnSelectItem ? true : changes.isOpen,
9796
- highlightedIndex: disableCloseOnSelectItem ? state.highlightedIndex : changes.highlightedIndex
9785
+ inputValue: state.inputValue,
9786
+ selectedItem: null,
9787
+ isOpen: open != null ? open : true,
9788
+ highlightedIndex: state.highlightedIndex
9797
9789
  };
9798
- default:
9799
- return changes;
9800
- }
9801
- },
9802
- onStateChange(changes) {
9803
- const { type, selectedItem: newSelectedItem } = changes;
9804
- switch (type) {
9805
- case useSelect.stateChangeTypes.ToggleButtonKeyDownEnter:
9806
- case useSelect.stateChangeTypes.ItemClick:
9807
- case useSelect.stateChangeTypes.ToggleButtonBlur:
9808
- if (newSelectedItem != null) {
9809
- const itemAlreadySelected = selectedItems.some(
9810
- (item) => itemToKey(item) === itemToKey(newSelectedItem)
9811
- );
9812
- if (itemAlreadySelected) {
9813
- removeSelectedItem(newSelectedItem);
9814
- } else {
9815
- addSelectedItem(newSelectedItem);
9816
- }
9817
- }
9818
- break;
9819
- }
9820
- onStateChange?.(changes);
9821
- },
9822
- isItemDisabled(item) {
9823
- if (isDisabled || isReadOnly) {
9824
- return !!isDisabled || !!isReadOnly;
9825
- }
9826
- if (item && item instanceof Object && "disabled" in item && item.disabled) {
9827
- return true;
9828
- }
9829
- if (item && item instanceof Object && "readOnly" in item && item.readOnly) {
9830
- return true;
9831
- }
9832
- if (disabledItems.includes(item)) {
9833
- return true;
9834
- }
9835
- return false;
9836
- }
9837
- });
9838
- useEffect(() => {
9839
- setIsDisabled(disabled);
9840
- }, [disabled]);
9841
- useEffect(() => {
9842
- setIsReadOnly(readOnly);
9843
- }, [readOnly]);
9844
- return /* @__PURE__ */ jsx(
9845
- ComboboxContext.Provider,
9846
- {
9847
- value: {
9848
- multiple: true,
9849
- select: true,
9850
- items: orderedItems,
9851
- itemToString,
9852
- itemToKey,
9853
- isOpen,
9854
- getLabelProps,
9855
- getToggleButtonProps,
9856
- getMenuProps,
9857
- getItemProps,
9858
- highlightedIndex,
9859
- selectedItem,
9860
- selectedItems,
9861
- disabledItems,
9862
- setDisabledItems,
9863
- setForceCloseOnSelectItems,
9864
- setForceClearInputValueOnSelectItems,
9865
- getSelectedItemProps,
9866
- getDropdownProps,
9867
- reset,
9868
- addSelectedItem,
9869
- removeSelectedItem,
9870
- setSelectedItems,
9871
- selectItem,
9872
- inputValue,
9873
- isDisabled,
9874
- isReadOnly,
9875
- setIsReadOnly,
9876
- setIsDisabled,
9877
- hasDisabledPopover,
9878
- setHasDisabledPopover,
9879
- hasEmpty,
9880
- setHasEmpty,
9881
- loading,
9882
- referenceRef,
9883
- contentRef,
9884
- closeMenu,
9885
- groupBy,
9886
- groupToString,
9887
- groups
9888
- },
9889
- children: /* @__PURE__ */ jsx(
9890
- "div",
9891
- {
9892
- className: ComboboxClassNames,
9893
- "data-anv": "combobox",
9894
- style: { ...style, ...layoutStyles },
9895
- ref: wrapperDivRef,
9896
- children: /* @__PURE__ */ jsx(
9897
- Popover,
9898
- {
9899
- open: !isDisabled && isOpen,
9900
- noPadding: true,
9901
- disableCaret: true,
9902
- fitScreen: true,
9903
- disableFlipFallback: true,
9904
- placement: "bottom-start",
9905
- matchReferenceWidth: !disableMatchReferenceWidth,
9906
- disableCloseOnClickOutside,
9907
- onOutsidePress: handleOutsidePress,
9908
- minHeight: minPopoverHeight,
9909
- children
9910
- }
9911
- )
9912
- }
9913
- )
9914
- }
9915
- );
9916
- };
9917
- const ComboboxElement$1 = function(props) {
9918
- if (!supportsPopover()) {
9919
- if (isMultiple(props)) {
9920
- return /* @__PURE__ */ jsx(ComboboxLegacyMultiple, { ...props });
9921
- } else {
9922
- return /* @__PURE__ */ jsx(ComboboxLegacySingle, { ...props });
9923
- }
9924
- }
9925
- if (isMultiple(props)) {
9926
- return /* @__PURE__ */ jsx(ComboboxMultiple, { ...props });
9927
- } else {
9928
- return /* @__PURE__ */ jsx(ComboboxSingle, { ...props });
9929
- }
9930
- };
9931
- const ComboboxSelect$1 = function(props) {
9932
- if (!supportsPopover()) {
9933
- if (isMultiple(props)) {
9934
- return /* @__PURE__ */ jsx(SelectLegacyMultiple, { ...props });
9935
- } else {
9936
- return /* @__PURE__ */ jsx(SelectLegacySingle, { ...props });
9937
- }
9938
- }
9939
- if (isMultiple(props)) {
9940
- return /* @__PURE__ */ jsx(SelectMultiple, { ...props });
9941
- } else {
9942
- return /* @__PURE__ */ jsx(SelectSingle, { ...props });
9943
- }
9944
- };
9945
- const Combobox$1 = Object.assign(ComboboxElement$1, {
9946
- Select: ComboboxSelect$1,
9947
- SearchField: ComboboxSearchField$1,
9948
- SelectTrigger: ComboboxSelectTrigger$1,
9949
- Content: ComboboxContent$1,
9950
- List: ComboboxList$1,
9951
- Item: ComboboxItem$1,
9952
- ItemAddNew: ComboboxItemAddNew$1,
9953
- Empty: ComboboxEmpty$1
9954
- });
9955
-
9956
- const SCROLL_THRESHOLD = 0.64;
9957
- function useInfiniteCombobox({
9958
- query,
9959
- queryInitialItems,
9960
- initialItems = [],
9961
- initialPage = 0,
9962
- initialLoading = false,
9963
- initialInputValue,
9964
- defaultInputValue,
9965
- initialSelectedItem,
9966
- defaultSelectedItem,
9967
- initialSelectedItems,
9968
- defaultSelectedItems,
9969
- updateOnInputValueChange = true,
9970
- updateOnSelectedItemChange = true,
9971
- updateOnSelectedItemsChange = true,
9972
- queryOnFirstRender = false,
9973
- shouldTriggerQuery: shouldTriggerQueryProp
9974
- }) {
9975
- const [items, setItems] = useState(initialItems);
9976
- const deferredItems = useDeferredValue(items);
9977
- const [page, setPage] = useState(initialPage);
9978
- const [loading, setLoading] = useState(initialLoading);
9979
- const deferredLoading = useDeferredValue(loading);
9980
- const [inputValue, setInputValue] = useState(
9981
- initialInputValue ?? defaultInputValue ?? ""
9982
- );
9983
- const [selectedItem, setSelectedItem] = useState(
9984
- initialSelectedItem ?? defaultSelectedItem ?? null
9985
- );
9986
- const [selectedItems, setSelectedItems] = useState(
9987
- initialSelectedItems ?? defaultSelectedItems ?? []
9988
- );
9989
- const scrollerRef = useRef(null);
9990
- const defaultShouldTriggerQuery = (element) => {
9991
- const totalScrollHeight = element.scrollHeight - element.clientHeight;
9992
- return element.scrollTop / totalScrollHeight > SCROLL_THRESHOLD;
9993
- };
9994
- const [triggerQueryCount, setTriggerQueryCount] = useState(0);
9995
- const triggerQueryCountRef = useRef(0);
9996
- const triggerQuery = () => {
9997
- setTriggerQueryCount((x) => x + 1);
9998
- triggerQueryCountRef.current += 1;
9999
- };
10000
- const [done, setDone] = useState(false);
10001
- const firstRenderRef = useRef(true);
10002
- const scrollTimeoutRef = useRef(false);
10003
- const loadingRef = useRef(false);
10004
- const setLoadingStateAndRef = (isLoading) => {
10005
- setLoading(isLoading);
10006
- loadingRef.current = isLoading;
10007
- };
10008
- const queryRetryCountRef = useRef(0);
10009
- useEffect(() => {
10010
- if (firstRenderRef.current && queryInitialItems) {
10011
- setItems(queryInitialItems());
10012
- }
10013
- if (firstRenderRef.current && !queryOnFirstRender) {
10014
- firstRenderRef.current = false;
10015
- return;
10016
- }
10017
- setLoadingStateAndRef(true);
10018
- const timeoutID = setTimeout(() => {
10019
- if (triggerQueryCount < triggerQueryCountRef.current) return;
10020
- query({
10021
- page,
10022
- inputValue,
10023
- selectedItem,
10024
- selectedItems
10025
- }).then((res) => {
10026
- queryRetryCountRef.current = 0;
10027
- if (triggerQueryCount < triggerQueryCountRef.current) return;
10028
- setLoadingStateAndRef(false);
10029
- setPage((x) => x + 1);
10030
- if (res == null || page > 0 && res.length === 0) {
10031
- setDone(true);
10032
- } else if (page === 0) {
10033
- setItems(() => [...res]);
10034
- } else {
10035
- setItems((prevItems) => [...prevItems, ...res]);
10036
- }
10037
- }).catch(() => {
10038
- queryRetryCountRef.current += 1;
10039
- if (queryRetryCountRef.current > 7) {
10040
- queryRetryCountRef.current = 0;
10041
- return;
10042
- } else {
10043
- setTimeout(
10044
- () => {
10045
- triggerQuery();
10046
- },
10047
- 2 ** queryRetryCountRef.current * 160
10048
- );
10049
- }
10050
- });
10051
- }, 160);
10052
- return () => {
10053
- clearTimeout(timeoutID);
10054
- };
10055
- }, [triggerQueryCount]);
10056
- useLayoutEffect(() => {
10057
- setTimeout(() => {
10058
- if (scrollerRef.current && scrollerRef.current.scrollHeight > 0 && scrollerRef.current.clientHeight > 0 && scrollerRef.current.scrollHeight <= scrollerRef.current.clientHeight) {
10059
- triggerQuery();
9790
+ case useCombobox.stateChangeTypes.InputKeyDownEnter:
9791
+ case useCombobox.stateChangeTypes.ItemClick:
9792
+ if (changes.selectedItem === ADD_NEW$1) {
9793
+ const stateInputValue = state.inputValue;
9794
+ setTimeout(() => {
9795
+ onSelectItemAddNew?.(stateInputValue);
9796
+ }, 250);
9797
+ return {
9798
+ ...changes,
9799
+ selectedItem: state.selectedItem,
9800
+ inputValue: ""
9801
+ };
9802
+ } else {
9803
+ return {
9804
+ ...changes,
9805
+ isOpen: open != null ? open : disableCloseOnSelectItem ? true : changes.isOpen,
9806
+ highlightedIndex: disableCloseOnSelectItem ? disableClearInputValueOnSelectItem || !state.inputValue ? state.highlightedIndex : 0 : changes.highlightedIndex,
9807
+ inputValue: disableClearInputValueOnSelectItem ? state.inputValue : ""
9808
+ };
9809
+ }
9810
+ // prevent this from closing the popover by default
9811
+ case useCombobox.stateChangeTypes.InputClick:
9812
+ return { ...changes, isOpen: open != null ? open : true };
9813
+ // prevent this from clearing the input value by default
9814
+ case useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
9815
+ return { ...changes, inputValue: state.inputValue };
9816
+ default:
9817
+ return changes;
10060
9818
  }
10061
- }, 160);
10062
- }, [items]);
10063
- const isEmpty = items.length === 0 && page === 0;
10064
- const onStateChange = useCallback(
10065
- (changes) => {
10066
- if (isEmpty && "isOpen" in changes && changes.isOpen === true) {
10067
- triggerQuery();
9819
+ },
9820
+ onStateChange(changes) {
9821
+ const { type, selectedItem: newSelectedItem } = changes;
9822
+ switch (type) {
9823
+ case useCombobox.stateChangeTypes.InputKeyDownEnter:
9824
+ case useCombobox.stateChangeTypes.ItemClick:
9825
+ case useCombobox.stateChangeTypes.InputBlur:
9826
+ if (newSelectedItem != null) {
9827
+ const itemAlreadySelected = selectedItems.some(
9828
+ (item) => itemToKey(item) === itemToKey(newSelectedItem)
9829
+ );
9830
+ if (itemAlreadySelected) {
9831
+ removeSelectedItem(newSelectedItem);
9832
+ } else {
9833
+ addSelectedItem(newSelectedItem);
9834
+ }
9835
+ }
9836
+ break;
10068
9837
  }
10069
- const inputValueShouldUpdate = updateOnInputValueChange && "inputValue" in changes;
10070
- const selectedItemsShouldUpdate = updateOnSelectedItemsChange && "selectedItems" in changes && changes.selectedItems;
10071
- const selectedItemShouldUpdate = updateOnSelectedItemChange && "selectedItem" in changes && changes.selectedItem !== void 0;
10072
- if (inputValueShouldUpdate) {
10073
- setInputValue(changes.inputValue ?? "");
9838
+ onStateChange?.(changes);
9839
+ },
9840
+ onInputValueChange: onInputValueChange ?? (({ inputValue: inputValue2, ...changes }) => {
9841
+ const { type, selectedItem: selectedItem2 } = changes;
9842
+ const inputValueMatchesSelectedItem = selectedItem2 != null && inputValue2 === itemToString(selectedItem2);
9843
+ const inputValueIsEmpty = inputValue2 == null || inputValue2 === "";
9844
+ if (type === useCombobox.stateChangeTypes.InputKeyDownEnter || type === useCombobox.stateChangeTypes.ItemClick) {
9845
+ setItems(allItemsOrderedByGroup);
9846
+ setHasExactMatch(true);
9847
+ } else if (!inputValueMatchesSelectedItem && !inputValueIsEmpty && !disableFilter) {
9848
+ setItems(
9849
+ matchSorter(allItemsOrderedByGroup, inputValue2, filterOptions)
9850
+ );
9851
+ setHasExactMatch(
9852
+ matchSorter(allItemsOrderedByGroup, inputValue2, {
9853
+ ...filterOptions,
9854
+ threshold: matchSorter.rankings.EQUAL
9855
+ }).length > 0
9856
+ );
9857
+ } else {
9858
+ setItems(allItemsOrderedByGroup);
9859
+ setHasExactMatch(true);
10074
9860
  }
10075
- if (selectedItemsShouldUpdate) {
10076
- setSelectedItems(changes.selectedItems ?? []);
9861
+ }),
9862
+ onIsOpenChange({ isOpen: isOpen2 }) {
9863
+ if (isOpen2 === false) {
9864
+ setTimeout(() => {
9865
+ setInputValue("");
9866
+ setItems(allItemsOrderedByGroup);
9867
+ }, 200);
10077
9868
  }
10078
- if (selectedItemShouldUpdate) {
10079
- setSelectedItem(changes.selectedItem);
9869
+ },
9870
+ isItemDisabled(item) {
9871
+ if (isDisabled || isReadOnly) {
9872
+ return !!isDisabled || !!isReadOnly;
10080
9873
  }
10081
- if (inputValueShouldUpdate || selectedItemsShouldUpdate || selectedItemShouldUpdate) {
10082
- setPage(0);
10083
- setDone(false);
10084
- triggerQuery();
9874
+ if (item && item instanceof Object && "disabled" in item && item.disabled) {
9875
+ return true;
10085
9876
  }
10086
- },
10087
- [
10088
- isEmpty,
10089
- updateOnInputValueChange,
10090
- updateOnSelectedItemsChange,
10091
- updateOnSelectedItemChange
10092
- ]
10093
- );
10094
- const onScroll = useCallback(
10095
- (e) => {
10096
- const element = e.currentTarget;
10097
- if (!scrollTimeoutRef.current && !loadingRef.current) {
10098
- setTimeout(() => {
10099
- const shouldTriggerQuery = shouldTriggerQueryProp ?? defaultShouldTriggerQuery;
10100
- if (shouldTriggerQuery(element) && !done) {
10101
- triggerQuery();
10102
- }
10103
- scrollTimeoutRef.current = false;
10104
- }, 40);
10105
- scrollTimeoutRef.current = true;
9877
+ if (item && item instanceof Object && "readOnly" in item && item.readOnly) {
9878
+ return true;
10106
9879
  }
10107
- },
10108
- [done, shouldTriggerQueryProp]
10109
- );
10110
- return {
10111
- comboboxProps: {
10112
- items: deferredItems,
10113
- loading: deferredLoading,
10114
- initialInputValue,
10115
- defaultInputValue,
10116
- initialSelectedItem,
10117
- defaultSelectedItem,
10118
- initialSelectedItems,
10119
- defaultSelectedItems,
10120
- disableFilter: true,
10121
- // assume the query will return a filtered/sorted list
10122
- onStateChange
10123
- },
10124
- contentProps: {
10125
- onScroll,
10126
- scrollerRef
9880
+ if (disabledItems.includes(item)) {
9881
+ return true;
9882
+ }
9883
+ return false;
10127
9884
  }
10128
- };
10129
- }
10130
-
10131
- const ComboboxElement = function(props) {
10132
- return /* @__PURE__ */ jsx(Combobox$1, { ...props });
10133
- };
10134
- const ComboboxSelect = function(props) {
10135
- return /* @__PURE__ */ jsx(ComboboxSelect$1, { ...props });
10136
- };
10137
- const ComboboxContent = function(props) {
10138
- return /* @__PURE__ */ jsx(Combobox$1.Content, { ...props });
10139
- };
10140
- const ComboboxSearchField = function({
10141
- prefix: prefixProp,
10142
- ...props
10143
- }) {
10144
- const data = {
10145
- label: childrenToString(props.label),
10146
- size: props.size,
10147
- required: props.required,
10148
- moreInfo: props.moreInfo,
10149
- openMoreInfo: props.openMoreInfo,
10150
- description: childrenToString(props.description),
10151
- hint: props.hint,
10152
- labelProps: props.labelProps
10153
- };
10154
- const trackingId = useTrackingId({
10155
- name: "ComboboxSearchField",
10156
- data,
10157
- hasOverride: !!props["data-tracking-id"]
10158
9885
  });
10159
- const prefix = prefixProp == null || typeof prefixProp === "string" ? prefixProp : "icon" in prefixProp ? /* @__PURE__ */ jsx(Icon$2, { ...prefixProp.icon }) : "avatar" in prefixProp ? /* @__PURE__ */ jsx(
10160
- Avatar,
10161
- {
10162
- ...prefixProp.avatar,
10163
- size: props.size === "small" ? "small" : "medium"
9886
+ storedSetInputValue = setInputValue;
9887
+ const firstRenderRef = useRef(true);
9888
+ useEffect(() => {
9889
+ if (firstRenderRef.current === true) {
9890
+ firstRenderRef.current = false;
10164
9891
  }
10165
- ) : prefixProp;
9892
+ }, []);
9893
+ useEffect(() => {
9894
+ setIsDisabled(disabled);
9895
+ }, [disabled]);
9896
+ useEffect(() => {
9897
+ setIsReadOnly(readOnly);
9898
+ }, [readOnly]);
9899
+ useEffect(() => {
9900
+ if (firstRenderRef.current) return;
9901
+ const inputValueIsEmpty = inputValue == null || inputValue === "";
9902
+ if (!inputValueIsEmpty && !disableFilter) {
9903
+ setItems(matchSorter(itemsProp, inputValue, filterOptions));
9904
+ setHasExactMatch(
9905
+ matchSorter(itemsProp, inputValue, {
9906
+ ...filterOptions,
9907
+ threshold: matchSorter.rankings.EQUAL
9908
+ }).length > 0
9909
+ );
9910
+ } else {
9911
+ setItems(itemsProp);
9912
+ setHasExactMatch(true);
9913
+ }
9914
+ }, [itemsProp]);
10166
9915
  return /* @__PURE__ */ jsx(
10167
- Combobox$1.SearchField,
9916
+ ComboboxContext.Provider,
10168
9917
  {
10169
- "data-tracking-id": trackingId,
10170
- ...props,
10171
- prefix
9918
+ value: {
9919
+ multiple: true,
9920
+ select: false,
9921
+ items: searchedItemsOrderedByGroup,
9922
+ itemToString,
9923
+ itemToKey,
9924
+ isOpen,
9925
+ getLabelProps,
9926
+ getInputProps,
9927
+ getToggleButtonProps,
9928
+ getMenuProps,
9929
+ getItemProps,
9930
+ highlightedIndex,
9931
+ selectedItem,
9932
+ selectedItems,
9933
+ disabledItems,
9934
+ setDisabledItems,
9935
+ getSelectedItemProps,
9936
+ getDropdownProps,
9937
+ reset,
9938
+ addSelectedItem,
9939
+ removeSelectedItem,
9940
+ setSelectedItems,
9941
+ selectItem,
9942
+ inputValue,
9943
+ isDisabled,
9944
+ isReadOnly,
9945
+ setIsReadOnly,
9946
+ setIsDisabled,
9947
+ hasDisabledPopover,
9948
+ setHasDisabledPopover,
9949
+ hasEmpty,
9950
+ setHasEmpty,
9951
+ hasAddNew,
9952
+ setHasAddNew,
9953
+ onSelectItemAddNew,
9954
+ setOnSelectItemAddNew,
9955
+ hasExactMatch,
9956
+ setHasExactMatch,
9957
+ loading,
9958
+ referenceRef,
9959
+ contentRef,
9960
+ closeMenu,
9961
+ groupBy,
9962
+ groupToString,
9963
+ groups: searchedGroups
9964
+ },
9965
+ children: /* @__PURE__ */ jsx(
9966
+ "div",
9967
+ {
9968
+ className: ComboboxClassNames,
9969
+ "data-anv": "combobox",
9970
+ style: { ...style, ...layoutStyles },
9971
+ ref: wrapperDivRef,
9972
+ children: /* @__PURE__ */ jsx(
9973
+ Popover,
9974
+ {
9975
+ open: !isDisabled && isOpen,
9976
+ noPadding: true,
9977
+ disableCaret: true,
9978
+ fitScreen: true,
9979
+ disableFlipFallback: true,
9980
+ placement: "bottom-start",
9981
+ matchReferenceWidth: !disableMatchReferenceWidth,
9982
+ disableCloseOnClickOutside,
9983
+ onOutsidePress: handleOutsidePress,
9984
+ minHeight: minPopoverHeight,
9985
+ children
9986
+ }
9987
+ )
9988
+ }
9989
+ )
10172
9990
  }
10173
9991
  );
10174
9992
  };
10175
- const ComboboxSelectTrigger = function({
10176
- prefix: prefixProp,
10177
- ...props
10178
- }) {
10179
- const data = {
10180
- label: childrenToString(props.label),
10181
- size: props.size,
10182
- required: props.required,
10183
- moreInfo: props.moreInfo,
10184
- openMoreInfo: props.openMoreInfo,
10185
- description: childrenToString(props.description),
10186
- hint: props.hint,
10187
- labelProps: props.labelProps
10188
- };
10189
- const trackingId = useTrackingId({
10190
- name: "ComboboxSearchField",
10191
- data,
10192
- hasOverride: !!props["data-tracking-id"]
10193
- });
10194
- const prefix = prefixProp == null || typeof prefixProp === "string" ? prefixProp : "icon" in prefixProp ? /* @__PURE__ */ jsx(Icon$2, { ...prefixProp.icon }) : "avatar" in prefixProp ? /* @__PURE__ */ jsx(
10195
- Avatar,
10196
- {
10197
- ...prefixProp.avatar,
10198
- size: props.size === "small" ? "small" : "medium"
10199
- }
10200
- ) : prefixProp;
10201
- return /* @__PURE__ */ jsx(
10202
- Combobox$1.SelectTrigger,
10203
- {
10204
- "data-tracking-id": trackingId,
10205
- ...props,
10206
- prefix
9993
+ const ComboboxElement = function(props) {
9994
+ if (!supportsPopover()) {
9995
+ if (isMultiple(props)) {
9996
+ return /* @__PURE__ */ jsx(ComboboxLegacyMultiple, { ...props });
9997
+ } else {
9998
+ return /* @__PURE__ */ jsx(ComboboxLegacySingle, { ...props });
10207
9999
  }
10208
- );
10209
- };
10210
- const ComboboxList = function(props) {
10211
- return /* @__PURE__ */ jsx(Combobox$1.List, { ...props });
10212
- };
10213
- const ComboboxItem = function(props) {
10214
- const data = {
10215
- item: props.item
10216
- };
10217
- const trackingId = useTrackingId({
10218
- name: "ComboboxItem",
10219
- data,
10220
- hasOverride: !!props["data-tracking-id"]
10221
- });
10222
- return /* @__PURE__ */ jsx(Combobox$1.Item, { "data-tracking-id": trackingId, ...props });
10223
- };
10224
- const ComboboxItemAddNew = function(props) {
10225
- const data = {
10226
- item: "add-new"
10227
- };
10228
- const trackingId = useTrackingId({
10229
- name: "ComboboxItemAddNew",
10230
- data,
10231
- hasOverride: !!props["data-tracking-id"]
10232
- });
10233
- return /* @__PURE__ */ jsx(Combobox$1.ItemAddNew, { "data-tracking-id": trackingId, ...props });
10234
- };
10235
- const ComboboxEmpty = function(props) {
10236
- return /* @__PURE__ */ jsx(Combobox$1.Empty, { ...props });
10000
+ }
10001
+ if (isMultiple(props)) {
10002
+ return /* @__PURE__ */ jsx(ComboboxMultiple, { ...props });
10003
+ } else {
10004
+ return /* @__PURE__ */ jsx(ComboboxSingle, { ...props });
10005
+ }
10237
10006
  };
10238
10007
  const Combobox = Object.assign(ComboboxElement, {
10239
10008
  /**
@@ -10408,5 +10177,180 @@ const Combobox = Object.assign(ComboboxElement, {
10408
10177
  Empty: ComboboxEmpty
10409
10178
  });
10410
10179
 
10411
- export { Combobox as C, ComboboxElement as a, ComboboxSelect as b, ComboboxContent as c, ComboboxSearchField as d, ComboboxSelectTrigger as e, ComboboxList as f, ComboboxItem as g, ComboboxItemAddNew as h, ComboboxEmpty as i, useInfiniteCombobox as u };
10412
- //# sourceMappingURL=Combobox-BOpe_NUu.js.map
10180
+ const SCROLL_THRESHOLD = 0.64;
10181
+ function useInfiniteCombobox({
10182
+ query,
10183
+ queryInitialItems,
10184
+ initialItems = [],
10185
+ initialPage = 0,
10186
+ initialLoading = false,
10187
+ initialInputValue,
10188
+ defaultInputValue,
10189
+ initialSelectedItem,
10190
+ defaultSelectedItem,
10191
+ initialSelectedItems,
10192
+ defaultSelectedItems,
10193
+ updateOnInputValueChange = true,
10194
+ updateOnSelectedItemChange = true,
10195
+ updateOnSelectedItemsChange = true,
10196
+ queryOnFirstRender = false,
10197
+ shouldTriggerQuery: shouldTriggerQueryProp
10198
+ }) {
10199
+ const [items, setItems] = useState(initialItems);
10200
+ const deferredItems = useDeferredValue(items);
10201
+ const [page, setPage] = useState(initialPage);
10202
+ const [loading, setLoading] = useState(initialLoading);
10203
+ const deferredLoading = useDeferredValue(loading);
10204
+ const [inputValue, setInputValue] = useState(
10205
+ initialInputValue ?? defaultInputValue ?? ""
10206
+ );
10207
+ const [selectedItem, setSelectedItem] = useState(
10208
+ initialSelectedItem ?? defaultSelectedItem ?? null
10209
+ );
10210
+ const [selectedItems, setSelectedItems] = useState(
10211
+ initialSelectedItems ?? defaultSelectedItems ?? []
10212
+ );
10213
+ const scrollerRef = useRef(null);
10214
+ const defaultShouldTriggerQuery = (element) => {
10215
+ const totalScrollHeight = element.scrollHeight - element.clientHeight;
10216
+ return element.scrollTop / totalScrollHeight > SCROLL_THRESHOLD;
10217
+ };
10218
+ const [triggerQueryCount, setTriggerQueryCount] = useState(0);
10219
+ const triggerQueryCountRef = useRef(0);
10220
+ const triggerQuery = () => {
10221
+ setTriggerQueryCount((x) => x + 1);
10222
+ triggerQueryCountRef.current += 1;
10223
+ };
10224
+ const [done, setDone] = useState(false);
10225
+ const firstRenderRef = useRef(true);
10226
+ const scrollTimeoutRef = useRef(false);
10227
+ const loadingRef = useRef(false);
10228
+ const setLoadingStateAndRef = (isLoading) => {
10229
+ setLoading(isLoading);
10230
+ loadingRef.current = isLoading;
10231
+ };
10232
+ const queryRetryCountRef = useRef(0);
10233
+ useEffect(() => {
10234
+ if (firstRenderRef.current && queryInitialItems) {
10235
+ setItems(queryInitialItems());
10236
+ }
10237
+ if (firstRenderRef.current && !queryOnFirstRender) {
10238
+ firstRenderRef.current = false;
10239
+ return;
10240
+ }
10241
+ setLoadingStateAndRef(true);
10242
+ const timeoutID = setTimeout(() => {
10243
+ if (triggerQueryCount < triggerQueryCountRef.current) return;
10244
+ query({
10245
+ page,
10246
+ inputValue,
10247
+ selectedItem,
10248
+ selectedItems
10249
+ }).then((res) => {
10250
+ queryRetryCountRef.current = 0;
10251
+ if (triggerQueryCount < triggerQueryCountRef.current) return;
10252
+ setLoadingStateAndRef(false);
10253
+ setPage((x) => x + 1);
10254
+ if (res == null || page > 0 && res.length === 0) {
10255
+ setDone(true);
10256
+ } else if (page === 0) {
10257
+ setItems(() => [...res]);
10258
+ } else {
10259
+ setItems((prevItems) => [...prevItems, ...res]);
10260
+ }
10261
+ }).catch(() => {
10262
+ queryRetryCountRef.current += 1;
10263
+ if (queryRetryCountRef.current > 7) {
10264
+ queryRetryCountRef.current = 0;
10265
+ return;
10266
+ } else {
10267
+ setTimeout(
10268
+ () => {
10269
+ triggerQuery();
10270
+ },
10271
+ 2 ** queryRetryCountRef.current * 160
10272
+ );
10273
+ }
10274
+ });
10275
+ }, 160);
10276
+ return () => {
10277
+ clearTimeout(timeoutID);
10278
+ };
10279
+ }, [triggerQueryCount]);
10280
+ useLayoutEffect(() => {
10281
+ setTimeout(() => {
10282
+ if (scrollerRef.current && scrollerRef.current.scrollHeight > 0 && scrollerRef.current.clientHeight > 0 && scrollerRef.current.scrollHeight <= scrollerRef.current.clientHeight) {
10283
+ triggerQuery();
10284
+ }
10285
+ }, 160);
10286
+ }, [items]);
10287
+ const isEmpty = items.length === 0 && page === 0;
10288
+ const onStateChange = useCallback(
10289
+ (changes) => {
10290
+ if (isEmpty && "isOpen" in changes && changes.isOpen === true) {
10291
+ triggerQuery();
10292
+ }
10293
+ const inputValueShouldUpdate = updateOnInputValueChange && "inputValue" in changes;
10294
+ const selectedItemsShouldUpdate = updateOnSelectedItemsChange && "selectedItems" in changes && changes.selectedItems;
10295
+ const selectedItemShouldUpdate = updateOnSelectedItemChange && "selectedItem" in changes && changes.selectedItem !== void 0;
10296
+ if (inputValueShouldUpdate) {
10297
+ setInputValue(changes.inputValue ?? "");
10298
+ }
10299
+ if (selectedItemsShouldUpdate) {
10300
+ setSelectedItems(changes.selectedItems ?? []);
10301
+ }
10302
+ if (selectedItemShouldUpdate) {
10303
+ setSelectedItem(changes.selectedItem);
10304
+ }
10305
+ if (inputValueShouldUpdate || selectedItemsShouldUpdate || selectedItemShouldUpdate) {
10306
+ setPage(0);
10307
+ setDone(false);
10308
+ triggerQuery();
10309
+ }
10310
+ },
10311
+ [
10312
+ isEmpty,
10313
+ updateOnInputValueChange,
10314
+ updateOnSelectedItemsChange,
10315
+ updateOnSelectedItemChange
10316
+ ]
10317
+ );
10318
+ const onScroll = useCallback(
10319
+ (e) => {
10320
+ const element = e.currentTarget;
10321
+ if (!scrollTimeoutRef.current && !loadingRef.current) {
10322
+ setTimeout(() => {
10323
+ const shouldTriggerQuery = shouldTriggerQueryProp ?? defaultShouldTriggerQuery;
10324
+ if (shouldTriggerQuery(element) && !done) {
10325
+ triggerQuery();
10326
+ }
10327
+ scrollTimeoutRef.current = false;
10328
+ }, 40);
10329
+ scrollTimeoutRef.current = true;
10330
+ }
10331
+ },
10332
+ [done, shouldTriggerQueryProp]
10333
+ );
10334
+ return {
10335
+ comboboxProps: {
10336
+ items: deferredItems,
10337
+ loading: deferredLoading,
10338
+ initialInputValue,
10339
+ defaultInputValue,
10340
+ initialSelectedItem,
10341
+ defaultSelectedItem,
10342
+ initialSelectedItems,
10343
+ defaultSelectedItems,
10344
+ disableFilter: true,
10345
+ // assume the query will return a filtered/sorted list
10346
+ onStateChange
10347
+ },
10348
+ contentProps: {
10349
+ onScroll,
10350
+ scrollerRef
10351
+ }
10352
+ };
10353
+ }
10354
+
10355
+ export { Combobox as C, ComboboxElement as a, ComboboxSelect as b, ComboboxContent as c, ComboboxList as d, ComboboxItem as e, ComboboxItemAddNew as f, ComboboxSearchField as g, ComboboxSelectTrigger as h, ComboboxEmpty as i, useInfiniteCombobox as u };
10356
+ //# sourceMappingURL=useInfiniteCombobox-BN2uGhBh.js.map