@servicetitan/anvil2 1.44.1 → 1.45.0

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