@spark-ui/components 13.1.4 → 13.2.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 (731) hide show
  1. package/dist/Button-B6rA3-e5.js +2 -0
  2. package/dist/Button-B6rA3-e5.js.map +1 -0
  3. package/dist/{chunk-2YM6GKWW.mjs → Button-C3C0aixy.mjs} +130 -173
  4. package/dist/Button-C3C0aixy.mjs.map +1 -0
  5. package/dist/DialogContent.styles-B5pR8ECK.js +2 -0
  6. package/dist/DialogContent.styles-B5pR8ECK.js.map +1 -0
  7. package/dist/{chunk-XZ47F6TP.mjs → DialogContent.styles-_lRDsl8c.mjs} +6 -8
  8. package/dist/DialogContent.styles-_lRDsl8c.mjs.map +1 -0
  9. package/dist/Icon-CF0W0LKr.js +2 -0
  10. package/dist/Icon-CF0W0LKr.js.map +1 -0
  11. package/dist/Icon-Ck-dhfLd.mjs +58 -0
  12. package/dist/Icon-Ck-dhfLd.mjs.map +1 -0
  13. package/dist/IconButton-C62-axzv.mjs +43 -0
  14. package/dist/IconButton-C62-axzv.mjs.map +1 -0
  15. package/dist/IconButton-D3g86WpZ.js +2 -0
  16. package/dist/IconButton-D3g86WpZ.js.map +1 -0
  17. package/dist/Slot-D2Bbf8Gw.mjs +14 -0
  18. package/dist/Slot-D2Bbf8Gw.mjs.map +1 -0
  19. package/dist/Slot-DQ8z2zsy.js +2 -0
  20. package/dist/Slot-DQ8z2zsy.js.map +1 -0
  21. package/dist/Spinner-_Kffli3B.js +2 -0
  22. package/dist/Spinner-_Kffli3B.js.map +1 -0
  23. package/dist/{chunk-GAK4SC2F.mjs → Spinner-jF3-zoh_.mjs} +29 -40
  24. package/dist/Spinner-jF3-zoh_.mjs.map +1 -0
  25. package/dist/{chunk-RKPP7ZOK.mjs → TextLink-BuzFRWO6.mjs} +27 -36
  26. package/dist/TextLink-BuzFRWO6.mjs.map +1 -0
  27. package/dist/TextLink-C3xDLsbC.js +2 -0
  28. package/dist/TextLink-C3xDLsbC.js.map +1 -0
  29. package/dist/VisuallyHidden-CB6Nx76j.js +2 -0
  30. package/dist/VisuallyHidden-CB6Nx76j.js.map +1 -0
  31. package/dist/VisuallyHidden-KH1biLx-.mjs +28 -0
  32. package/dist/VisuallyHidden-KH1biLx-.mjs.map +1 -0
  33. package/dist/accordion/Accordion.d.ts +27 -0
  34. package/dist/accordion/AccordionItem.d.ts +12 -0
  35. package/dist/accordion/AccordionItemContent.d.ts +12 -0
  36. package/dist/accordion/AccordionItemHeader.d.ts +9 -0
  37. package/dist/accordion/AccordionItemTrigger.d.ts +12 -0
  38. package/dist/accordion/index.d.mts +10 -68
  39. package/dist/accordion/index.d.ts +10 -68
  40. package/dist/accordion/index.js +2 -325
  41. package/dist/accordion/index.js.map +1 -1
  42. package/dist/accordion/index.mjs +114 -154
  43. package/dist/accordion/index.mjs.map +1 -1
  44. package/dist/accordion/useRenderSlot.d.ts +3 -0
  45. package/dist/alert-dialog/AlertDialog.d.ts +29 -0
  46. package/dist/alert-dialog/AlertDialogAction.d.ts +13 -0
  47. package/dist/alert-dialog/AlertDialogBody.d.ts +12 -0
  48. package/dist/alert-dialog/AlertDialogCancel.d.ts +13 -0
  49. package/dist/alert-dialog/AlertDialogContent.d.ts +9 -0
  50. package/dist/alert-dialog/AlertDialogContext.d.ts +12 -0
  51. package/dist/alert-dialog/AlertDialogDescription.d.ts +9 -0
  52. package/dist/alert-dialog/AlertDialogFooter.d.ts +10 -0
  53. package/dist/alert-dialog/AlertDialogHeader.d.ts +10 -0
  54. package/dist/alert-dialog/AlertDialogOverlay.d.ts +9 -0
  55. package/dist/alert-dialog/AlertDialogPortal.d.ts +7 -0
  56. package/dist/alert-dialog/AlertDialogTitle.d.ts +9 -0
  57. package/dist/alert-dialog/AlertDialogTrigger.d.ts +13 -0
  58. package/dist/alert-dialog/index.d.mts +26 -147
  59. package/dist/alert-dialog/index.d.ts +26 -147
  60. package/dist/alert-dialog/index.js +2 -405
  61. package/dist/alert-dialog/index.js.map +1 -1
  62. package/dist/alert-dialog/index.mjs +172 -260
  63. package/dist/alert-dialog/index.mjs.map +1 -1
  64. package/dist/alert-dialog/useRenderSlot.d.ts +3 -0
  65. package/dist/avatar/Avatar.d.ts +3 -0
  66. package/dist/avatar/AvatarAction.d.ts +9 -0
  67. package/dist/avatar/AvatarImage.d.ts +7 -0
  68. package/dist/avatar/AvatarOnlineBadge.d.ts +9 -0
  69. package/dist/avatar/AvatarPlaceholder.d.ts +8 -0
  70. package/dist/avatar/AvatarUser.d.ts +7 -0
  71. package/dist/avatar/context.d.ts +5 -0
  72. package/dist/avatar/index.d.mts +8 -59
  73. package/dist/avatar/index.d.ts +8 -59
  74. package/dist/avatar/index.js +2 -1323
  75. package/dist/avatar/index.js.map +1 -1
  76. package/dist/avatar/index.mjs +149 -207
  77. package/dist/avatar/index.mjs.map +1 -1
  78. package/dist/avatar/types.d.ts +24 -0
  79. package/dist/badge/Badge.d.ts +9 -0
  80. package/dist/badge/BadgeItem.d.ts +31 -0
  81. package/dist/badge/BadgeItem.styles.d.ts +7 -0
  82. package/dist/badge/index.d.mts +1 -47
  83. package/dist/badge/index.d.ts +1 -47
  84. package/dist/badge/index.js +2 -122
  85. package/dist/badge/index.js.map +1 -1
  86. package/dist/badge/index.mjs +32 -44
  87. package/dist/badge/index.mjs.map +1 -1
  88. package/dist/breadcrumb/Breadcrumb.d.ts +10 -0
  89. package/dist/breadcrumb/Breadcrumb.styles.d.ts +0 -0
  90. package/dist/breadcrumb/BreadcrumbCurrentPage.d.ts +11 -0
  91. package/dist/breadcrumb/BreadcrumbItem.d.ts +9 -0
  92. package/dist/breadcrumb/BreadcrumbLink.d.ts +12 -0
  93. package/dist/breadcrumb/BreadcrumbSeparator.d.ts +10 -0
  94. package/dist/breadcrumb/index.d.mts +7 -59
  95. package/dist/breadcrumb/index.d.ts +7 -59
  96. package/dist/breadcrumb/index.js +2 -327
  97. package/dist/breadcrumb/index.js.map +1 -1
  98. package/dist/breadcrumb/index.mjs +106 -146
  99. package/dist/breadcrumb/index.mjs.map +1 -1
  100. package/dist/button/Button.d.ts +26 -0
  101. package/dist/button/Button.styles.d.ts +10 -0
  102. package/dist/button/index.d.mts +1 -41
  103. package/dist/button/index.d.ts +1 -41
  104. package/dist/button/index.js +2 -935
  105. package/dist/button/index.js.map +1 -1
  106. package/dist/button/index.mjs +3 -8
  107. package/dist/button/index.mjs.map +1 -1
  108. package/dist/button/variants/contrast.d.ts +45 -0
  109. package/dist/button/variants/filled.d.ts +45 -0
  110. package/dist/button/variants/ghost.d.ts +45 -0
  111. package/dist/button/variants/index.d.mts +5 -0
  112. package/dist/button/variants/index.d.ts +5 -0
  113. package/dist/button/variants/outlined.d.ts +45 -0
  114. package/dist/button/variants/tinted.d.ts +45 -0
  115. package/dist/card/Backdrop.d.ts +14 -0
  116. package/dist/card/Card.d.ts +16 -0
  117. package/dist/card/Card.styles.d.ts +7 -0
  118. package/dist/card/Content.d.ts +15 -0
  119. package/dist/card/Content.styles.d.ts +8 -0
  120. package/dist/card/context.d.ts +11 -0
  121. package/dist/card/index.d.mts +5 -58
  122. package/dist/card/index.d.ts +5 -58
  123. package/dist/card/index.js +2 -502
  124. package/dist/card/index.js.map +1 -1
  125. package/dist/card/index.mjs +125 -178
  126. package/dist/card/index.mjs.map +1 -1
  127. package/dist/card/utils.d.ts +3 -0
  128. package/dist/carousel/Carousel.d.ts +12 -0
  129. package/dist/carousel/CarouselControls.d.ts +9 -0
  130. package/dist/carousel/CarouselNextButton.d.ts +5 -0
  131. package/dist/carousel/CarouselPageIndicator.d.ts +14 -0
  132. package/dist/carousel/CarouselPagePicker.d.ts +14 -0
  133. package/dist/carousel/CarouselPrevButton.d.ts +5 -0
  134. package/dist/carousel/CarouselSlide.d.ts +12 -0
  135. package/dist/carousel/CarouselSlides.d.ts +10 -0
  136. package/dist/carousel/CarouselViewport.d.ts +9 -0
  137. package/dist/carousel/index.d.mts +18 -263
  138. package/dist/carousel/index.d.ts +18 -263
  139. package/dist/carousel/index.js +2 -1882
  140. package/dist/carousel/index.js.map +1 -1
  141. package/dist/carousel/index.mjs +428 -650
  142. package/dist/carousel/index.mjs.map +1 -1
  143. package/dist/carousel/types.d.ts +165 -0
  144. package/dist/carousel/useCarousel.d.ts +2 -0
  145. package/dist/carousel/useCarouselVisibility.d.ts +13 -0
  146. package/dist/carousel/useEvent.d.ts +7 -0
  147. package/dist/carousel/useIsMounted.d.ts +1 -0
  148. package/dist/carousel/useIsVisible.d.ts +6 -0
  149. package/dist/carousel/useResizeObserver.d.ts +2 -0
  150. package/dist/carousel/useScrollEnd.d.ts +3 -0
  151. package/dist/carousel/useSnapPoints.d.ts +10 -0
  152. package/dist/carousel/utils.d.ts +24 -0
  153. package/dist/checkbox/Checkbox.d.ts +10 -0
  154. package/dist/checkbox/CheckboxGroup.d.ts +18 -0
  155. package/dist/checkbox/CheckboxGroup.styles.d.ts +5 -0
  156. package/dist/checkbox/CheckboxGroupContext.d.ts +41 -0
  157. package/dist/checkbox/CheckboxIndicator.d.ts +9 -0
  158. package/dist/checkbox/CheckboxInput.d.ts +47 -0
  159. package/dist/checkbox/CheckboxInput.styles.d.ts +5 -0
  160. package/dist/checkbox/CheckboxLabel.d.ts +12 -0
  161. package/dist/checkbox/CheckboxLabel.styles.d.ts +5 -0
  162. package/dist/checkbox/index.d.mts +2 -120
  163. package/dist/checkbox/index.d.ts +2 -120
  164. package/dist/checkbox/index.js +2 -511
  165. package/dist/checkbox/index.js.map +1 -1
  166. package/dist/checkbox/index.mjs +135 -226
  167. package/dist/checkbox/index.mjs.map +1 -1
  168. package/dist/chip/Chip.d.ts +34 -0
  169. package/dist/chip/Chip.styles.d.ts +8 -0
  170. package/dist/chip/ChipClearButton.d.ts +10 -0
  171. package/dist/chip/ChipClearButton.styles.d.ts +10 -0
  172. package/dist/chip/ChipContent.d.ts +8 -0
  173. package/dist/chip/ChipIcon.d.ts +8 -0
  174. package/dist/chip/ChipLeadingIcon.d.ts +9 -0
  175. package/dist/chip/ChipTrailingIcon.d.ts +9 -0
  176. package/dist/chip/index.d.mts +10 -92
  177. package/dist/chip/index.d.ts +10 -92
  178. package/dist/chip/index.js +2 -908
  179. package/dist/chip/index.js.map +1 -1
  180. package/dist/chip/index.mjs +218 -324
  181. package/dist/chip/index.mjs.map +1 -1
  182. package/dist/chip/useChipContext.d.ts +4 -0
  183. package/dist/chip/useChipElement.d.ts +41 -0
  184. package/dist/chip/variants/dashed.d.ts +49 -0
  185. package/dist/chip/variants/index.d.mts +3 -0
  186. package/dist/chip/variants/index.d.ts +3 -0
  187. package/dist/chip/variants/outlined.d.ts +49 -0
  188. package/dist/chip/variants/tinted.d.ts +49 -0
  189. package/dist/collapsible/Content.d.ts +12 -0
  190. package/dist/collapsible/Root.d.ts +12 -0
  191. package/dist/collapsible/Trigger.d.ts +11 -0
  192. package/dist/collapsible/index.d.mts +4 -40
  193. package/dist/collapsible/index.d.ts +4 -40
  194. package/dist/collapsible/index.js +2 -109
  195. package/dist/collapsible/index.js.map +1 -1
  196. package/dist/collapsible/index.mjs +39 -58
  197. package/dist/collapsible/index.mjs.map +1 -1
  198. package/dist/collapsible/useRenderSlot.d.ts +3 -0
  199. package/dist/combobox/Combobox.d.ts +6 -0
  200. package/dist/combobox/ComboboxClearButton.d.ts +9 -0
  201. package/dist/combobox/ComboboxContext.d.ts +108 -0
  202. package/dist/combobox/ComboboxDisclosure.d.ts +13 -0
  203. package/dist/combobox/ComboboxEmpty.d.ts +11 -0
  204. package/dist/combobox/ComboboxGroup.d.ts +11 -0
  205. package/dist/combobox/ComboboxInput.d.ts +15 -0
  206. package/dist/combobox/ComboboxItem.d.ts +12 -0
  207. package/dist/combobox/ComboboxItemContext.d.ts +17 -0
  208. package/dist/combobox/ComboboxItemIndicator.d.ts +11 -0
  209. package/dist/combobox/ComboboxItemText.d.ts +10 -0
  210. package/dist/combobox/ComboboxItems.d.ts +11 -0
  211. package/dist/combobox/ComboboxItemsGroupContext.d.ts +8 -0
  212. package/dist/combobox/ComboboxLabel.d.ts +11 -0
  213. package/dist/combobox/ComboboxLeadingIcon.d.ts +7 -0
  214. package/dist/combobox/ComboboxPopover.d.ts +10 -0
  215. package/dist/combobox/ComboboxPortal.d.ts +2 -0
  216. package/dist/combobox/ComboboxSelectedItems.d.ts +4 -0
  217. package/dist/combobox/ComboboxTrigger.d.ts +11 -0
  218. package/dist/combobox/ComboboxTrigger.styles.d.ts +6 -0
  219. package/dist/combobox/index.d.mts +19 -271
  220. package/dist/combobox/index.d.ts +19 -271
  221. package/dist/combobox/index.js +2 -2588
  222. package/dist/combobox/index.js.map +1 -1
  223. package/dist/combobox/index.mjs +623 -1017
  224. package/dist/combobox/index.mjs.map +1 -1
  225. package/dist/combobox/tests/test-utils.d.ts +8 -0
  226. package/dist/combobox/types.d.ts +8 -0
  227. package/dist/combobox/useCombobox/multipleSelectionReducer.d.ts +13 -0
  228. package/dist/combobox/useCombobox/singleSelectionReducer.d.ts +8 -0
  229. package/dist/combobox/utils/index.d.mts +14 -0
  230. package/dist/combobox/utils/index.d.ts +14 -0
  231. package/dist/combobox/utils/useWidthIncreaseCallback.d.ts +2 -0
  232. package/dist/dialog/Dialog.d.ts +32 -0
  233. package/dist/dialog/DialogBody.d.ts +12 -0
  234. package/dist/dialog/DialogClose.d.ts +9 -0
  235. package/dist/dialog/DialogCloseButton.d.ts +9 -0
  236. package/dist/dialog/DialogContent.d.ts +14 -0
  237. package/dist/dialog/DialogContent.styles.d.ts +6 -0
  238. package/dist/dialog/DialogContext.d.ts +11 -0
  239. package/dist/dialog/DialogDescription.d.ts +9 -0
  240. package/dist/dialog/DialogFooter.d.ts +10 -0
  241. package/dist/dialog/DialogHeader.d.ts +10 -0
  242. package/dist/dialog/DialogOverlay.d.ts +9 -0
  243. package/dist/dialog/DialogPortal.d.ts +7 -0
  244. package/dist/dialog/DialogTitle.d.ts +9 -0
  245. package/dist/dialog/DialogTrigger.d.ts +17 -0
  246. package/dist/dialog/index.d.mts +25 -154
  247. package/dist/dialog/index.d.ts +25 -154
  248. package/dist/dialog/index.js +2 -1389
  249. package/dist/dialog/index.js.map +1 -1
  250. package/dist/dialog/index.mjs +163 -258
  251. package/dist/dialog/index.mjs.map +1 -1
  252. package/dist/divider/Divider.d.ts +30 -0
  253. package/dist/divider/Divider.styles.d.ts +9 -0
  254. package/dist/divider/DividerContent.d.ts +13 -0
  255. package/dist/divider/index.d.mts +4 -59
  256. package/dist/divider/index.d.ts +4 -59
  257. package/dist/divider/index.js +2 -224
  258. package/dist/divider/index.js.map +1 -1
  259. package/dist/divider/index.mjs +79 -100
  260. package/dist/divider/index.mjs.map +1 -1
  261. package/dist/divider/variants/intents.d.ts +17 -0
  262. package/dist/drawer/Drawer.d.ts +39 -0
  263. package/dist/drawer/DrawerBody.d.ts +11 -0
  264. package/dist/drawer/DrawerBody.styles.d.ts +5 -0
  265. package/dist/drawer/DrawerClose.d.ts +9 -0
  266. package/dist/drawer/DrawerCloseButton.d.ts +7 -0
  267. package/dist/drawer/DrawerContent.d.ts +10 -0
  268. package/dist/drawer/DrawerContent.styles.d.ts +6 -0
  269. package/dist/drawer/DrawerContext.d.ts +9 -0
  270. package/dist/drawer/DrawerDescription.d.ts +9 -0
  271. package/dist/drawer/DrawerFooter.d.ts +8 -0
  272. package/dist/drawer/DrawerHeader.d.ts +10 -0
  273. package/dist/drawer/DrawerOverlay.d.ts +9 -0
  274. package/dist/drawer/DrawerPortal.d.ts +7 -0
  275. package/dist/drawer/DrawerTitle.d.ts +9 -0
  276. package/dist/drawer/DrawerTrigger.d.ts +13 -0
  277. package/dist/drawer/index.d.mts +24 -141
  278. package/dist/drawer/index.d.ts +24 -141
  279. package/dist/drawer/index.js +2 -1400
  280. package/dist/drawer/index.js.map +1 -1
  281. package/dist/drawer/index.mjs +141 -230
  282. package/dist/drawer/index.mjs.map +1 -1
  283. package/dist/dropdown/Dropdown.d.ts +6 -0
  284. package/dist/dropdown/DropdownContext.d.ts +81 -0
  285. package/dist/dropdown/DropdownDivider.d.ts +10 -0
  286. package/dist/dropdown/DropdownGroup.d.ts +11 -0
  287. package/dist/dropdown/DropdownItem.d.ts +12 -0
  288. package/dist/dropdown/DropdownItemContext.d.ts +17 -0
  289. package/dist/dropdown/DropdownItemIndicator.d.ts +11 -0
  290. package/dist/dropdown/DropdownItemText.d.ts +9 -0
  291. package/dist/dropdown/DropdownItems.d.ts +21 -0
  292. package/dist/dropdown/DropdownItemsGroupContext.d.ts +8 -0
  293. package/dist/dropdown/DropdownLabel.d.ts +11 -0
  294. package/dist/dropdown/DropdownLeadingIcon.d.ts +7 -0
  295. package/dist/dropdown/DropdownPopover.d.ts +6 -0
  296. package/dist/dropdown/DropdownPortal.d.ts +2 -0
  297. package/dist/dropdown/DropdownTrigger.d.ts +12 -0
  298. package/dist/dropdown/DropdownTrigger.styles.d.ts +5 -0
  299. package/dist/dropdown/DropdownValue.d.ts +11 -0
  300. package/dist/dropdown/index.d.mts +16 -220
  301. package/dist/dropdown/index.d.ts +16 -220
  302. package/dist/dropdown/index.js +2 -2051
  303. package/dist/dropdown/index.js.map +1 -1
  304. package/dist/dropdown/index.mjs +352 -584
  305. package/dist/dropdown/index.mjs.map +1 -1
  306. package/dist/dropdown/types.d.ts +8 -0
  307. package/dist/dropdown/useDropdown.d.ts +41 -0
  308. package/dist/dropdown/utils.d.ts +13 -0
  309. package/dist/file-upload/FileUpload.d.ts +130 -0
  310. package/dist/file-upload/FileUploadAcceptedFile.d.ts +25 -0
  311. package/dist/file-upload/FileUploadContext.d.ts +17 -0
  312. package/dist/file-upload/FileUploadDropzone.d.ts +10 -0
  313. package/dist/file-upload/FileUploadItemDeleteTrigger.d.ts +11 -0
  314. package/dist/file-upload/FileUploadPreviewImage.d.ts +17 -0
  315. package/dist/file-upload/FileUploadRejectedFile.d.ts +24 -0
  316. package/dist/file-upload/FileUploadRejectedFileDeleteTrigger.d.ts +12 -0
  317. package/dist/file-upload/FileUploadTrigger.d.ts +12 -0
  318. package/dist/file-upload/constants.d.ts +29 -0
  319. package/dist/file-upload/index.d.mts +14 -262
  320. package/dist/file-upload/index.d.ts +14 -262
  321. package/dist/file-upload/index.js +2 -2255
  322. package/dist/file-upload/index.js.map +1 -1
  323. package/dist/file-upload/index.mjs +506 -834
  324. package/dist/file-upload/index.mjs.map +1 -1
  325. package/dist/file-upload/test-utils.d.ts +9 -0
  326. package/dist/file-upload/useFileUploadState.d.ts +88 -0
  327. package/dist/file-upload/utils.d.ts +40 -0
  328. package/dist/form-field/FormField.d.ts +21 -0
  329. package/dist/form-field/FormFieldAlertMessage.d.ts +9 -0
  330. package/dist/form-field/FormFieldCharactersCount.d.ts +26 -0
  331. package/dist/form-field/FormFieldContext.d.ts +49 -0
  332. package/dist/form-field/FormFieldControl.d.ts +12 -0
  333. package/dist/form-field/FormFieldErrorMessage.d.ts +9 -0
  334. package/dist/form-field/FormFieldHelperMessage.d.ts +9 -0
  335. package/dist/form-field/FormFieldLabel.d.ts +13 -0
  336. package/dist/form-field/FormFieldMessage.d.ts +8 -0
  337. package/dist/form-field/FormFieldProvider.d.ts +9 -0
  338. package/dist/form-field/FormFieldRequiredIndicator.d.ts +9 -0
  339. package/dist/form-field/FormFieldStateMessage.d.ts +10 -0
  340. package/dist/form-field/FormFieldSuccessMessage.d.ts +9 -0
  341. package/dist/form-field/index.d.mts +21 -176
  342. package/dist/form-field/index.d.ts +21 -176
  343. package/dist/form-field/index.js +2 -553
  344. package/dist/form-field/index.js.map +1 -1
  345. package/dist/form-field/index.mjs +246 -349
  346. package/dist/form-field/index.mjs.map +1 -1
  347. package/dist/icon/Icon.d.ts +17 -0
  348. package/dist/icon/Icon.styles.d.ts +6 -0
  349. package/dist/icon/index.d.mts +1 -28
  350. package/dist/icon/index.d.ts +1 -28
  351. package/dist/icon/index.js +2 -127
  352. package/dist/icon/index.js.map +1 -1
  353. package/dist/icon/index.mjs +3 -7
  354. package/dist/icon/index.mjs.map +1 -1
  355. package/dist/icon-button/IconButton.d.ts +10 -0
  356. package/dist/icon-button/IconButton.styles.d.ts +5 -0
  357. package/dist/icon-button/index.d.mts +1 -16
  358. package/dist/icon-button/index.d.ts +1 -16
  359. package/dist/icon-button/index.js +2 -980
  360. package/dist/icon-button/index.js.map +1 -1
  361. package/dist/icon-button/index.mjs +3 -9
  362. package/dist/icon-button/index.mjs.map +1 -1
  363. package/dist/input/Input.d.ts +14 -0
  364. package/dist/input/Input.styles.d.ts +11 -0
  365. package/dist/input/InputAddon.d.ts +9 -0
  366. package/dist/input/InputAddon.styles.d.ts +9 -0
  367. package/dist/input/InputClearButton.d.ts +12 -0
  368. package/dist/input/InputGroup.d.ts +17 -0
  369. package/dist/input/InputGroup.styles.d.ts +6 -0
  370. package/dist/input/InputGroupContext.d.ts +14 -0
  371. package/dist/input/InputIcon.d.ts +6 -0
  372. package/dist/input/InputLeadingAddon.d.ts +11 -0
  373. package/dist/input/InputLeadingIcon.d.ts +7 -0
  374. package/dist/input/InputTrailingAddon.d.ts +11 -0
  375. package/dist/input/InputTrailingIcon.d.ts +7 -0
  376. package/dist/input/index.d.mts +15 -72
  377. package/dist/input/index.d.ts +15 -72
  378. package/dist/input/index.js +2 -724
  379. package/dist/input/index.js.map +1 -1
  380. package/dist/input/index.mjs +453 -12
  381. package/dist/input/index.mjs.map +1 -1
  382. package/dist/input-otp/InputOTP.d.ts +85 -0
  383. package/dist/input-otp/InputOTP.styles.d.ts +10 -0
  384. package/dist/input-otp/InputOTPContext.d.ts +16 -0
  385. package/dist/input-otp/InputOTPGroup.d.ts +7 -0
  386. package/dist/input-otp/InputOTPSeparator.d.ts +7 -0
  387. package/dist/input-otp/InputOTPSlot.d.ts +12 -0
  388. package/dist/input-otp/index.d.mts +10 -128
  389. package/dist/input-otp/index.d.ts +10 -128
  390. package/dist/input-otp/index.js +2 -668
  391. package/dist/input-otp/index.js.map +1 -1
  392. package/dist/input-otp/index.mjs +295 -462
  393. package/dist/input-otp/index.mjs.map +1 -1
  394. package/dist/input-otp/useInputOTP.d.ts +45 -0
  395. package/dist/kbd/Kbd.d.ts +5 -0
  396. package/dist/kbd/index.d.mts +1 -9
  397. package/dist/kbd/index.d.ts +1 -9
  398. package/dist/kbd/index.js +2 -47
  399. package/dist/kbd/index.js.map +1 -1
  400. package/dist/kbd/index.mjs +15 -18
  401. package/dist/kbd/index.mjs.map +1 -1
  402. package/dist/label/Label.d.ts +9 -0
  403. package/dist/label/LabelRequiredIndicator.d.ts +6 -0
  404. package/dist/label/index.d.mts +5 -9
  405. package/dist/label/index.d.ts +5 -9
  406. package/dist/label/index.js +2 -78
  407. package/dist/label/index.js.map +1 -1
  408. package/dist/label/index.mjs +38 -5
  409. package/dist/label/index.mjs.map +1 -1
  410. package/dist/link-box/LinkBox.d.ts +8 -0
  411. package/dist/link-box/LinkBoxLink.d.ts +8 -0
  412. package/dist/link-box/LinkBoxRaised.d.ts +9 -0
  413. package/dist/link-box/index.d.mts +6 -31
  414. package/dist/link-box/index.d.ts +6 -31
  415. package/dist/link-box/index.js +2 -92
  416. package/dist/link-box/index.js.map +1 -1
  417. package/dist/link-box/index.mjs +34 -56
  418. package/dist/link-box/index.mjs.map +1 -1
  419. package/dist/pagination/Pagination.d.ts +8 -0
  420. package/dist/pagination/PaginationContext.d.ts +43 -0
  421. package/dist/pagination/PaginationEllipsis.d.ts +9 -0
  422. package/dist/pagination/PaginationFirstPageTrigger.d.ts +16 -0
  423. package/dist/pagination/PaginationItem.d.ts +17 -0
  424. package/dist/pagination/PaginationLastPageTrigger.d.ts +16 -0
  425. package/dist/pagination/PaginationNextTrigger.d.ts +16 -0
  426. package/dist/pagination/PaginationPages.d.ts +16 -0
  427. package/dist/pagination/PaginationPrevTrigger.d.ts +16 -0
  428. package/dist/pagination/index.d.mts +10 -135
  429. package/dist/pagination/index.d.ts +10 -135
  430. package/dist/pagination/index.js +2 -1353
  431. package/dist/pagination/index.js.map +1 -1
  432. package/dist/pagination/index.mjs +176 -269
  433. package/dist/pagination/index.mjs.map +1 -1
  434. package/dist/pagination/utils.d.ts +1 -0
  435. package/dist/popover/Popover.d.ts +9 -0
  436. package/dist/popover/PopoverAnchor.d.ts +9 -0
  437. package/dist/popover/PopoverArrow.d.ts +9 -0
  438. package/dist/popover/PopoverCloseButton.d.ts +10 -0
  439. package/dist/popover/PopoverContent.d.ts +10 -0
  440. package/dist/popover/PopoverContent.styles.d.ts +9 -0
  441. package/dist/popover/PopoverContext.d.ts +15 -0
  442. package/dist/popover/PopoverHeader.d.ts +10 -0
  443. package/dist/popover/PopoverPortal.d.ts +7 -0
  444. package/dist/popover/PopoverTrigger.d.ts +9 -0
  445. package/dist/popover/index.d.mts +17 -6
  446. package/dist/popover/index.d.ts +17 -6
  447. package/dist/popover/index.js +2 -1339
  448. package/dist/popover/index.js.map +1 -1
  449. package/dist/popover/index.mjs +239 -11
  450. package/dist/popover/index.mjs.map +1 -1
  451. package/dist/portal/Portal.d.ts +10 -0
  452. package/dist/portal/index.d.mts +1 -13
  453. package/dist/portal/index.d.ts +1 -13
  454. package/dist/portal/index.js +2 -37
  455. package/dist/portal/index.js.map +1 -1
  456. package/dist/portal/index.mjs +5 -8
  457. package/dist/portal/index.mjs.map +1 -1
  458. package/dist/progress/Progress.d.ts +16 -0
  459. package/dist/progress/ProgressBar.d.ts +6 -0
  460. package/dist/progress/ProgressBar.styles.d.ts +5 -0
  461. package/dist/progress/ProgressContext.d.ts +13 -0
  462. package/dist/progress/ProgressIndicator.d.ts +6 -0
  463. package/dist/progress/ProgressIndicator.styles.d.ts +7 -0
  464. package/dist/progress/ProgressLabel.d.ts +6 -0
  465. package/dist/progress/index.d.mts +9 -48
  466. package/dist/progress/index.d.ts +9 -48
  467. package/dist/progress/index.js +2 -240
  468. package/dist/progress/index.js.map +1 -1
  469. package/dist/progress/index.mjs +166 -5
  470. package/dist/progress/index.mjs.map +1 -1
  471. package/dist/progress-tracker/ProgressTracker.d.ts +27 -0
  472. package/dist/progress-tracker/ProgressTracker.styles.d.ts +1 -0
  473. package/dist/progress-tracker/ProgressTrackerContext.d.ts +15 -0
  474. package/dist/progress-tracker/ProgressTrackerStep.d.ts +12 -0
  475. package/dist/progress-tracker/ProgressTrackerStep.styles.d.ts +10 -0
  476. package/dist/progress-tracker/ProgressTrackerStepIndicator.d.ts +15 -0
  477. package/dist/progress-tracker/ProgressTrackerStepIndicator.styles.d.ts +7 -0
  478. package/dist/progress-tracker/ProgressTrackerStepLabel.d.ts +9 -0
  479. package/dist/progress-tracker/index.d.mts +10 -80
  480. package/dist/progress-tracker/index.d.ts +10 -80
  481. package/dist/progress-tracker/index.js +2 -571
  482. package/dist/progress-tracker/index.js.map +1 -1
  483. package/dist/progress-tracker/index.mjs +115 -183
  484. package/dist/progress-tracker/index.mjs.map +1 -1
  485. package/dist/radio-group/Radio.d.ts +9 -0
  486. package/dist/radio-group/RadioGroup.d.ts +54 -0
  487. package/dist/radio-group/RadioGroup.styles.d.ts +5 -0
  488. package/dist/radio-group/RadioGroupContext.d.ts +5 -0
  489. package/dist/radio-group/RadioGroupProvider.d.ts +7 -0
  490. package/dist/radio-group/RadioIndicator.d.ts +18 -0
  491. package/dist/radio-group/RadioIndicator.styles.d.ts +5 -0
  492. package/dist/radio-group/RadioInput.d.ts +25 -0
  493. package/dist/radio-group/RadioInput.styles.d.ts +5 -0
  494. package/dist/radio-group/RadioLabel.d.ts +20 -0
  495. package/dist/radio-group/RadioLabel.styles.d.ts +5 -0
  496. package/dist/radio-group/index.d.mts +5 -98
  497. package/dist/radio-group/index.d.ts +5 -98
  498. package/dist/radio-group/index.js +2 -318
  499. package/dist/radio-group/index.js.map +1 -1
  500. package/dist/radio-group/index.mjs +105 -174
  501. package/dist/radio-group/index.mjs.map +1 -1
  502. package/dist/rating/Rating.d.ts +52 -0
  503. package/dist/rating/RatingStar.d.ts +10 -0
  504. package/dist/rating/RatingStar.styles.d.ts +14 -0
  505. package/dist/rating/index.d.mts +1 -78
  506. package/dist/rating/index.d.ts +1 -78
  507. package/dist/rating/index.js +2 -363
  508. package/dist/rating/index.js.map +1 -1
  509. package/dist/rating/index.mjs +125 -170
  510. package/dist/rating/index.mjs.map +1 -1
  511. package/dist/rating/types.d.ts +1 -0
  512. package/dist/rating/utils.d.ts +8 -0
  513. package/dist/scrolling-list/ScrollingList.d.ts +57 -0
  514. package/dist/scrolling-list/ScrollingListControls.d.ts +18 -0
  515. package/dist/scrolling-list/ScrollingListItem.d.ts +17 -0
  516. package/dist/scrolling-list/ScrollingListItems.d.ts +11 -0
  517. package/dist/scrolling-list/ScrollingListNextButton.d.ts +5 -0
  518. package/dist/scrolling-list/ScrollingListPrevButton.d.ts +5 -0
  519. package/dist/scrolling-list/ScrollingListSkipButton.d.ts +9 -0
  520. package/dist/scrolling-list/index.d.mts +14 -117
  521. package/dist/scrolling-list/index.d.ts +14 -117
  522. package/dist/scrolling-list/index.js +2 -1428
  523. package/dist/scrolling-list/index.js.map +1 -1
  524. package/dist/scrolling-list/index.mjs +193 -325
  525. package/dist/scrolling-list/index.mjs.map +1 -1
  526. package/dist/scrolling-list/useFocusWithinScroll.d.ts +3 -0
  527. package/dist/segmented-gauge/SegmentedGauge.d.ts +66 -0
  528. package/dist/segmented-gauge/SegmentedGaugeContext.d.ts +14 -0
  529. package/dist/segmented-gauge/SegmentedGaugeLabel.d.ts +9 -0
  530. package/dist/segmented-gauge/SegmentedGaugeSegment.d.ts +12 -0
  531. package/dist/segmented-gauge/SegmentedGaugeTrack.d.ts +8 -0
  532. package/dist/segmented-gauge/index.d.mts +9 -101
  533. package/dist/segmented-gauge/index.d.ts +9 -101
  534. package/dist/segmented-gauge/index.js +2 -274
  535. package/dist/segmented-gauge/index.js.map +1 -1
  536. package/dist/segmented-gauge/index.mjs +132 -178
  537. package/dist/segmented-gauge/index.mjs.map +1 -1
  538. package/dist/select/Select.d.ts +6 -0
  539. package/dist/select/SelectContext.d.ts +59 -0
  540. package/dist/select/SelectGroup.d.ts +11 -0
  541. package/dist/select/SelectItem.d.ts +11 -0
  542. package/dist/select/SelectItems.d.ts +10 -0
  543. package/dist/select/SelectItemsGroupContext.d.ts +9 -0
  544. package/dist/select/SelectLabel.d.ts +8 -0
  545. package/dist/select/SelectLeadingIcon.d.ts +7 -0
  546. package/dist/select/SelectPlaceholder.d.ts +10 -0
  547. package/dist/select/SelectTrigger.d.ts +16 -0
  548. package/dist/select/SelectTrigger.styles.d.ts +5 -0
  549. package/dist/select/SelectValue.d.ts +15 -0
  550. package/dist/select/index.d.mts +12 -158
  551. package/dist/select/index.d.ts +12 -158
  552. package/dist/select/index.js +2 -581
  553. package/dist/select/index.js.map +1 -1
  554. package/dist/select/index.mjs +207 -339
  555. package/dist/select/index.mjs.map +1 -1
  556. package/dist/select/types.d.ts +6 -0
  557. package/dist/select/utils.d.ts +4 -0
  558. package/dist/skeleton/Skeleton.d.ts +17 -0
  559. package/dist/skeleton/Skeleton.styles.d.ts +5 -0
  560. package/dist/skeleton/SkeletonItem.d.ts +31 -0
  561. package/dist/skeleton/SkeletonItem.styles.d.ts +8 -0
  562. package/dist/skeleton/index.d.mts +8 -67
  563. package/dist/skeleton/index.d.ts +8 -67
  564. package/dist/skeleton/index.js +2 -206
  565. package/dist/skeleton/index.js.map +1 -1
  566. package/dist/skeleton/index.mjs +64 -96
  567. package/dist/skeleton/index.mjs.map +1 -1
  568. package/dist/slider/Slider.d.ts +60 -0
  569. package/dist/slider/Slider.styles.d.ts +1 -0
  570. package/dist/slider/SliderContext.d.ts +7 -0
  571. package/dist/slider/SliderThumb.d.ts +14 -0
  572. package/dist/slider/SliderThumb.styles.d.ts +5 -0
  573. package/dist/slider/SliderTrack.d.ts +14 -0
  574. package/dist/slider/SliderTrack.styles.d.ts +9 -0
  575. package/dist/slider/index.d.mts +8 -97
  576. package/dist/slider/index.d.ts +8 -97
  577. package/dist/slider/index.js +2 -220
  578. package/dist/slider/index.js.map +1 -1
  579. package/dist/slider/index.mjs +94 -111
  580. package/dist/slider/index.mjs.map +1 -1
  581. package/dist/slot/Slot.d.ts +12 -0
  582. package/dist/slot/index.d.mts +1 -16
  583. package/dist/slot/index.d.ts +1 -16
  584. package/dist/slot/index.js +2 -51
  585. package/dist/slot/index.js.map +1 -1
  586. package/dist/slot/index.mjs +5 -9
  587. package/dist/slot/index.mjs.map +1 -1
  588. package/dist/snackbar/Snackbar.d.ts +29 -0
  589. package/dist/snackbar/SnackbarItem.d.ts +49 -0
  590. package/dist/snackbar/SnackbarItem.styles.d.ts +10 -0
  591. package/dist/snackbar/SnackbarItemAction.d.ts +10 -0
  592. package/dist/snackbar/SnackbarItemClose.d.ts +9 -0
  593. package/dist/snackbar/SnackbarItemContext.d.ts +8 -0
  594. package/dist/snackbar/SnackbarItemIcon.d.ts +7 -0
  595. package/dist/snackbar/SnackbarRegion.d.ts +30 -0
  596. package/dist/snackbar/SnackbarRegion.styles.d.ts +5 -0
  597. package/dist/snackbar/index.d.mts +13 -158
  598. package/dist/snackbar/index.d.ts +13 -158
  599. package/dist/snackbar/index.js +2 -1756
  600. package/dist/snackbar/index.js.map +1 -1
  601. package/dist/snackbar/index.mjs +237 -429
  602. package/dist/snackbar/index.mjs.map +1 -1
  603. package/dist/snackbar/snackbarVariants.d.ts +82 -0
  604. package/dist/snackbar/useSnackbarGlobalStore.d.ts +18 -0
  605. package/dist/snackbar/useSwipe.d.ts +15 -0
  606. package/dist/spinner/Spinner.d.ts +9 -0
  607. package/dist/spinner/Spinner.styles.d.ts +7 -0
  608. package/dist/spinner/index.d.mts +1 -21
  609. package/dist/spinner/index.d.ts +1 -21
  610. package/dist/spinner/index.js +2 -139
  611. package/dist/spinner/index.js.map +1 -1
  612. package/dist/spinner/index.mjs +3 -7
  613. package/dist/spinner/index.mjs.map +1 -1
  614. package/dist/stepper/Stepper.d.ts +9 -0
  615. package/dist/stepper/StepperButton.d.ts +14 -0
  616. package/dist/stepper/StepperInput.d.ts +7 -0
  617. package/dist/stepper/index.d.mts +9 -81
  618. package/dist/stepper/index.d.ts +9 -81
  619. package/dist/stepper/index.js +2 -1847
  620. package/dist/stepper/index.js.map +1 -1
  621. package/dist/stepper/index.mjs +143 -195
  622. package/dist/stepper/index.mjs.map +1 -1
  623. package/dist/stepper/types.d.ts +46 -0
  624. package/dist/stepper/useStepper.d.ts +2 -0
  625. package/dist/switch/Switch.d.ts +6 -0
  626. package/dist/switch/SwitchInput.d.ts +51 -0
  627. package/dist/switch/SwitchInput.styles.d.ts +16 -0
  628. package/dist/switch/SwitchLabel.d.ts +17 -0
  629. package/dist/switch/SwitchLabel.styles.d.ts +5 -0
  630. package/dist/switch/index.d.mts +1 -64
  631. package/dist/switch/index.d.ts +1 -64
  632. package/dist/switch/index.js +2 -327
  633. package/dist/switch/index.js.map +1 -1
  634. package/dist/switch/index.mjs +90 -130
  635. package/dist/switch/index.mjs.map +1 -1
  636. package/dist/tabs/Tabs.d.ts +24 -0
  637. package/dist/tabs/TabsContent.d.ts +22 -0
  638. package/dist/tabs/TabsContent.styles.d.ts +3 -0
  639. package/dist/tabs/TabsContext.d.ts +7 -0
  640. package/dist/tabs/TabsList.d.ts +20 -0
  641. package/dist/tabs/TabsList.styles.d.ts +3 -0
  642. package/dist/tabs/TabsPopover.d.ts +29 -0
  643. package/dist/tabs/TabsPopoverAbstraction.d.ts +27 -0
  644. package/dist/tabs/TabsRoot.styles.d.ts +1 -0
  645. package/dist/tabs/TabsTrigger.d.ts +41 -0
  646. package/dist/tabs/TabsTrigger.styles.d.ts +8 -0
  647. package/dist/tabs/index.d.mts +13 -137
  648. package/dist/tabs/index.d.ts +13 -137
  649. package/dist/tabs/index.js +2 -1830
  650. package/dist/tabs/index.js.map +1 -1
  651. package/dist/tabs/index.mjs +224 -350
  652. package/dist/tabs/index.mjs.map +1 -1
  653. package/dist/tabs/useResizeObserver.d.ts +8 -0
  654. package/dist/tag/Tag.d.ts +17 -0
  655. package/dist/tag/Tag.styles.d.ts +8 -0
  656. package/dist/tag/index.d.mts +1 -29
  657. package/dist/tag/index.d.ts +1 -29
  658. package/dist/tag/index.js +2 -283
  659. package/dist/tag/index.js.map +1 -1
  660. package/dist/tag/index.mjs +66 -90
  661. package/dist/tag/index.mjs.map +1 -1
  662. package/dist/tag/variants/filled.d.ts +41 -0
  663. package/dist/tag/variants/index.d.mts +3 -0
  664. package/dist/tag/variants/index.d.ts +3 -0
  665. package/dist/tag/variants/outlined.d.ts +37 -0
  666. package/dist/tag/variants/tinted.d.ts +37 -0
  667. package/dist/text-link/TextLink.d.ts +16 -0
  668. package/dist/text-link/index.d.mts +1 -20
  669. package/dist/text-link/index.d.ts +1 -20
  670. package/dist/text-link/index.js +2 -100
  671. package/dist/text-link/index.js.map +1 -1
  672. package/dist/text-link/index.mjs +3 -6
  673. package/dist/text-link/index.mjs.map +1 -1
  674. package/dist/textarea/Textarea.d.ts +14 -0
  675. package/dist/textarea/TextareaClearButton.d.ts +10 -0
  676. package/dist/textarea/TextareaGroup.d.ts +6 -0
  677. package/dist/textarea/TextareaLeadingIcon.d.ts +7 -0
  678. package/dist/textarea/TextareaTrailingIcon.d.ts +7 -0
  679. package/dist/textarea/index.d.mts +10 -53
  680. package/dist/textarea/index.d.ts +10 -53
  681. package/dist/textarea/index.js +2 -797
  682. package/dist/textarea/index.js.map +1 -1
  683. package/dist/textarea/index.mjs +50 -83
  684. package/dist/textarea/index.mjs.map +1 -1
  685. package/dist/toast/Toast.d.ts +4 -0
  686. package/dist/toast/Toast.styles.d.ts +10 -0
  687. package/dist/toast/index.d.mts +10 -53
  688. package/dist/toast/index.d.ts +10 -53
  689. package/dist/toast/index.js +2 -1454
  690. package/dist/toast/index.js.map +1 -1
  691. package/dist/toast/index.mjs +126 -180
  692. package/dist/toast/index.mjs.map +1 -1
  693. package/dist/toast/types.d.ts +41 -0
  694. package/dist/toast/useRenderSlot.d.ts +3 -0
  695. package/dist/toast/useToastManager.d.ts +2 -0
  696. package/dist/visually-hidden/VisuallyHidden.d.ts +12 -0
  697. package/dist/visually-hidden/index.d.mts +1 -16
  698. package/dist/visually-hidden/index.d.ts +1 -16
  699. package/dist/visually-hidden/index.js +2 -67
  700. package/dist/visually-hidden/index.js.map +1 -1
  701. package/dist/visually-hidden/index.mjs +3 -6
  702. package/dist/visually-hidden/index.mjs.map +1 -1
  703. package/package.json +6 -6
  704. package/dist/Input-N8AWWSmt.d.mts +0 -41
  705. package/dist/Input-N8AWWSmt.d.ts +0 -41
  706. package/dist/InputTrailingIcon-BBp7sE6D.d.mts +0 -20
  707. package/dist/InputTrailingIcon-ZZx8PoJy.d.ts +0 -20
  708. package/dist/LabelRequiredIndicator-DRnCzHMU.d.mts +0 -19
  709. package/dist/LabelRequiredIndicator-DRnCzHMU.d.ts +0 -19
  710. package/dist/chunk-2YM6GKWW.mjs.map +0 -1
  711. package/dist/chunk-6QCEPQ3U.mjs +0 -26
  712. package/dist/chunk-6QCEPQ3U.mjs.map +0 -1
  713. package/dist/chunk-7EWSMIZU.mjs +0 -214
  714. package/dist/chunk-7EWSMIZU.mjs.map +0 -1
  715. package/dist/chunk-DCXWGQVZ.mjs +0 -53
  716. package/dist/chunk-DCXWGQVZ.mjs.map +0 -1
  717. package/dist/chunk-GAK4SC2F.mjs.map +0 -1
  718. package/dist/chunk-GPJMLIHC.mjs +0 -308
  719. package/dist/chunk-GPJMLIHC.mjs.map +0 -1
  720. package/dist/chunk-HLXYG643.mjs +0 -52
  721. package/dist/chunk-HLXYG643.mjs.map +0 -1
  722. package/dist/chunk-KEGAAGJW.mjs +0 -36
  723. package/dist/chunk-KEGAAGJW.mjs.map +0 -1
  724. package/dist/chunk-RKPP7ZOK.mjs.map +0 -1
  725. package/dist/chunk-UMUMFMFB.mjs +0 -68
  726. package/dist/chunk-UMUMFMFB.mjs.map +0 -1
  727. package/dist/chunk-VBX7BTNU.mjs +0 -614
  728. package/dist/chunk-VBX7BTNU.mjs.map +0 -1
  729. package/dist/chunk-XZ47F6TP.mjs.map +0 -1
  730. package/dist/index-Cno_GFuW.d.mts +0 -93
  731. package/dist/index-Cno_GFuW.d.ts +0 -93
@@ -1,697 +1,449 @@
1
- import {
2
- Popover
3
- } from "../chunk-GPJMLIHC.mjs";
4
- import {
5
- IconButton
6
- } from "../chunk-DCXWGQVZ.mjs";
7
- import {
8
- Icon
9
- } from "../chunk-UMUMFMFB.mjs";
10
- import "../chunk-2YM6GKWW.mjs";
11
- import {
12
- Spinner
13
- } from "../chunk-GAK4SC2F.mjs";
14
- import {
15
- VisuallyHidden
16
- } from "../chunk-KEGAAGJW.mjs";
17
- import "../chunk-6QCEPQ3U.mjs";
18
-
19
- // src/combobox/ComboboxContext.tsx
20
- import { useFormFieldControl } from "@spark-ui/components/form-field";
21
- import { useCombinedState } from "@spark-ui/hooks/use-combined-state";
22
- import { useCombobox as useCombobox3, useMultipleSelection } from "downshift";
23
- import {
24
- createContext,
25
- Fragment,
26
- useContext,
27
- useEffect,
28
- useId,
29
- useRef,
30
- useState
31
- } from "react";
32
-
33
- // src/combobox/useCombobox/multipleSelectionReducer.ts
34
- import { useCombobox } from "downshift";
35
-
36
- // src/combobox/utils/index.ts
37
- import { isValidElement, Children } from "react";
38
- function getIndexByKey(map, targetKey) {
39
- let index = 0;
40
- for (const [key] of map.entries()) {
41
- if (key === targetKey) {
42
- return index;
43
- }
44
- index++;
1
+ import { jsx as a, jsxs as _, Fragment as te } from "react/jsx-runtime";
2
+ import { useFormFieldControl as oe } from "@spark-ui/components/form-field";
3
+ import { useCombinedState as Le } from "@spark-ui/hooks/use-combined-state";
4
+ import { useCombobox as g, useMultipleSelection as Ee } from "downshift";
5
+ import { Children as B, isValidElement as z, createContext as ne, useRef as A, useState as T, useEffect as P, useId as q, Fragment as se, useContext as re, useLayoutEffect as ct } from "react";
6
+ import { Popover as K } from "../popover/index.mjs";
7
+ import { DeleteOutline as Ae } from "@spark-ui/icons/DeleteOutline";
8
+ import { cx as f, cva as Me } from "class-variance-authority";
9
+ import { I as $ } from "../Icon-Ck-dhfLd.mjs";
10
+ import { useMergeRefs as W } from "@spark-ui/hooks/use-merge-refs";
11
+ import { ArrowHorizontalDown as dt } from "@spark-ui/icons/ArrowHorizontalDown";
12
+ import { I as ut } from "../IconButton-C62-axzv.mjs";
13
+ import { V as mt } from "../VisuallyHidden-KH1biLx-.mjs";
14
+ import { Check as pt } from "@spark-ui/icons/Check";
15
+ import { S as bt } from "../Spinner-jF3-zoh_.mjs";
16
+ function Fe(e, o) {
17
+ let t = 0;
18
+ for (const [n] of e.entries()) {
19
+ if (n === o)
20
+ return t;
21
+ t++;
45
22
  }
46
23
  return -1;
47
24
  }
48
- var getKeyAtIndex = (map, index) => {
49
- let i = 0;
50
- for (const key of map.keys()) {
51
- if (i === index) return key;
52
- i++;
25
+ const ft = (e, o) => {
26
+ let t = 0;
27
+ for (const n of e.keys()) {
28
+ if (t === o) return n;
29
+ t++;
53
30
  }
54
- return void 0;
55
- };
56
- var getElementByIndex = (map, index) => {
57
- const key = getKeyAtIndex(map, index);
58
- return key !== void 0 ? map.get(key) : void 0;
59
- };
60
- var getElementDisplayName = (element) => {
61
- return element ? element.type.displayName : "";
62
- };
63
- var getOrderedItems = (children, result = []) => {
64
- Children.forEach(children, (child) => {
65
- if (!isValidElement(child)) return;
66
- if (getElementDisplayName(child) === "Combobox.Item") {
67
- const childProps = child.props;
68
- result.push({
69
- value: childProps.value,
70
- disabled: !!childProps.disabled,
71
- text: getItemText(childProps.children)
31
+ }, It = (e, o) => {
32
+ const t = ft(e, o);
33
+ return t !== void 0 ? e.get(t) : void 0;
34
+ }, J = (e) => e ? e.type.displayName : "", Be = (e, o = []) => (B.forEach(e, (t) => {
35
+ if (z(t)) {
36
+ if (J(t) === "Combobox.Item") {
37
+ const n = t.props;
38
+ o.push({
39
+ value: n.value,
40
+ disabled: !!n.disabled,
41
+ text: Ke(n.children)
72
42
  });
73
43
  }
74
- if (child.props.children) {
75
- getOrderedItems(child.props.children, result);
76
- }
77
- });
78
- return result;
79
- };
80
- var findNestedItemText = (children) => {
81
- if (!children) return "";
82
- for (const child of Children.toArray(children)) {
83
- if (isValidElement(child)) {
84
- const childElement = child;
85
- if (getElementDisplayName(childElement) === "Combobox.ItemText") {
86
- return childElement.props.children;
87
- }
88
- const foundText = findNestedItemText(childElement.props.children);
89
- if (foundText) return foundText;
90
- }
44
+ t.props.children && Be(t.props.children, o);
91
45
  }
92
- return "";
93
- };
94
- var getItemText = (children) => {
95
- return typeof children === "string" ? children : findNestedItemText(children);
96
- };
97
- var getItemsFromChildren = (children) => {
98
- const newMap = /* @__PURE__ */ new Map();
99
- getOrderedItems(children).forEach((itemData) => {
100
- newMap.set(itemData.value, itemData);
101
- });
102
- return newMap;
103
- };
104
- var hasChildComponent = (children, displayName) => {
105
- return Children.toArray(children).some((child) => {
106
- if (!isValidElement(child)) return false;
107
- if (getElementDisplayName(child) === displayName) {
108
- return true;
109
- } else if (child.props.children) {
110
- return hasChildComponent(child.props.children, displayName);
46
+ }), o), ze = (e) => {
47
+ if (!e) return "";
48
+ for (const o of B.toArray(e))
49
+ if (z(o)) {
50
+ const t = o;
51
+ if (J(t) === "Combobox.ItemText")
52
+ return t.props.children;
53
+ const n = ze(t.props.children);
54
+ if (n) return n;
111
55
  }
112
- return false;
113
- });
114
- };
115
- var findElement = (children, value) => {
116
- return Children.toArray(children).filter(isValidElement).find((child) => value === getElementDisplayName(child) || "");
117
- };
118
-
119
- // src/combobox/useCombobox/multipleSelectionReducer.ts
120
- var multipleSelectionReducer = ({
121
- multiselect,
122
- selectedItems,
123
- allowCustomValue = false,
124
- setSelectedItems,
125
- triggerAreaRef,
126
- items
127
- }) => {
128
- const reducer = (_, { changes, type }) => {
129
- const isFocusInsideTriggerArea = triggerAreaRef.current?.contains?.(document.activeElement);
130
- switch (type) {
131
- case useCombobox.stateChangeTypes.InputClick:
132
- return {
133
- ...changes,
134
- isOpen: true
135
- // keep menu opened
136
- };
137
- case useCombobox.stateChangeTypes.InputKeyDownEnter:
138
- case useCombobox.stateChangeTypes.ItemClick: {
139
- const newState = { ...changes };
140
- if (changes.selectedItem != null) {
141
- newState.inputValue = "";
142
- newState.isOpen = true;
143
- const highlightedIndex = getIndexByKey(items, changes.selectedItem.value);
144
- newState.highlightedIndex = highlightedIndex;
145
- const isAlreadySelected = multiselect.selectedItems.some(
146
- (selectedItem) => selectedItem.value === changes.selectedItem?.value
147
- );
148
- const updatedItems = isAlreadySelected ? selectedItems.filter((item) => item.value !== changes.selectedItem?.value) : [...selectedItems, changes.selectedItem];
149
- setSelectedItems(updatedItems);
150
- }
151
- return newState;
56
+ return "";
57
+ }, Ke = (e) => typeof e == "string" ? e : ze(e), Re = (e) => {
58
+ const o = /* @__PURE__ */ new Map();
59
+ return Be(e).forEach((t) => {
60
+ o.set(t.value, t);
61
+ }), o;
62
+ }, $e = (e, o) => B.toArray(e).some((t) => z(t) ? J(t) === o ? !0 : t.props.children ? $e(t.props.children, o) : !1 : !1), F = (e, o) => B.toArray(e).filter(z).find((t) => o === J(t) || ""), xt = ({
63
+ multiselect: e,
64
+ selectedItems: o,
65
+ allowCustomValue: t = !1,
66
+ setSelectedItems: n,
67
+ triggerAreaRef: l,
68
+ items: r
69
+ }) => (i, { changes: s, type: m }) => {
70
+ const u = l.current?.contains?.(document.activeElement);
71
+ switch (m) {
72
+ case g.stateChangeTypes.InputClick:
73
+ return {
74
+ ...s,
75
+ isOpen: !0
76
+ // keep menu opened
77
+ };
78
+ case g.stateChangeTypes.InputKeyDownEnter:
79
+ case g.stateChangeTypes.ItemClick: {
80
+ const b = { ...s };
81
+ if (s.selectedItem != null) {
82
+ b.inputValue = "", b.isOpen = !0;
83
+ const O = Fe(r, s.selectedItem.value);
84
+ b.highlightedIndex = O;
85
+ const k = e.selectedItems.some(
86
+ (x) => x.value === s.selectedItem?.value
87
+ ) ? o.filter((x) => x.value !== s.selectedItem?.value) : [...o, s.selectedItem];
88
+ n(k);
152
89
  }
153
- case useCombobox.stateChangeTypes.ToggleButtonClick:
154
- return {
155
- ...changes,
156
- inputValue: allowCustomValue ? changes.inputValue : ""
157
- };
158
- case useCombobox.stateChangeTypes.InputChange:
159
- return {
160
- ...changes,
161
- selectedItem: changes.highlightedIndex === -1 ? null : changes.selectedItem
162
- };
163
- case useCombobox.stateChangeTypes.InputBlur:
164
- return {
165
- ...changes,
166
- inputValue: allowCustomValue ? changes.inputValue : "",
167
- isOpen: isFocusInsideTriggerArea
168
- };
169
- default:
170
- return changes;
171
- }
172
- };
173
- return reducer;
174
- };
175
-
176
- // src/combobox/useCombobox/singleSelectionReducer.ts
177
- import { useCombobox as useCombobox2 } from "downshift";
178
- var singleSelectionReducer = ({
179
- filteredItems,
180
- allowCustomValue = false,
181
- setSelectedItem
182
- }) => {
183
- const reducer = (state, { changes, type }) => {
184
- const exactMatch = filteredItems.find(
185
- (item) => item.text.toLowerCase() === state.inputValue.toLowerCase()
186
- );
187
- switch (type) {
188
- case useCombobox2.stateChangeTypes.InputKeyDownEscape:
189
- if (!changes.selectedItem) {
190
- setSelectedItem(null);
191
- }
192
- return changes;
193
- case useCombobox2.stateChangeTypes.ItemClick:
194
- case useCombobox2.stateChangeTypes.InputKeyDownEnter:
195
- if (changes.selectedItem) {
196
- setSelectedItem(changes.selectedItem);
197
- }
198
- return changes;
199
- case useCombobox2.stateChangeTypes.InputClick:
200
- return { ...changes, isOpen: true };
201
- case useCombobox2.stateChangeTypes.ToggleButtonClick:
202
- case useCombobox2.stateChangeTypes.InputBlur:
203
- if (allowCustomValue) return changes;
204
- if (state.inputValue === "") {
205
- setSelectedItem(null);
206
- return { ...changes, selectedItem: null };
207
- }
208
- if (exactMatch) {
209
- setSelectedItem(exactMatch);
210
- return { ...changes, selectedItem: exactMatch, inputValue: exactMatch.text };
211
- }
212
- if (state.selectedItem) {
213
- return { ...changes, inputValue: state.selectedItem.text };
214
- }
215
- return { ...changes, inputValue: "" };
216
- default:
217
- return changes;
218
- }
219
- };
220
- return reducer;
221
- };
222
-
223
- // src/combobox/ComboboxContext.tsx
224
- import { jsx } from "react/jsx-runtime";
225
- var ComboboxContext = createContext(null);
226
- var getFilteredItemsMap = (map, inputValue) => {
227
- if (!inputValue) return map;
228
- return new Map(
229
- Array.from(map).filter(([_, { text }]) => text.toLowerCase().includes(inputValue.toLowerCase()))
90
+ return b;
91
+ }
92
+ case g.stateChangeTypes.ToggleButtonClick:
93
+ return {
94
+ ...s,
95
+ inputValue: t ? s.inputValue : ""
96
+ };
97
+ case g.stateChangeTypes.InputChange:
98
+ return {
99
+ ...s,
100
+ selectedItem: s.highlightedIndex === -1 ? null : s.selectedItem
101
+ };
102
+ case g.stateChangeTypes.InputBlur:
103
+ return {
104
+ ...s,
105
+ inputValue: t ? s.inputValue : "",
106
+ isOpen: u
107
+ };
108
+ default:
109
+ return s;
110
+ }
111
+ }, yt = ({
112
+ filteredItems: e,
113
+ allowCustomValue: o = !1,
114
+ setSelectedItem: t
115
+ }) => (l, { changes: r, type: c }) => {
116
+ const i = e.find(
117
+ (s) => s.text.toLowerCase() === l.inputValue.toLowerCase()
230
118
  );
231
- };
232
- var ID_PREFIX = ":combobox";
233
- var ComboboxProvider = ({
234
- children,
235
- state: stateProp,
236
- allowCustomValue = false,
237
- filtering = "auto",
238
- disabled: disabledProp = false,
239
- multiple = false,
240
- readOnly: readOnlyProp = false,
241
- wrap = true,
119
+ switch (c) {
120
+ case g.stateChangeTypes.InputKeyDownEscape:
121
+ return r.selectedItem || t(null), r;
122
+ case g.stateChangeTypes.ItemClick:
123
+ case g.stateChangeTypes.InputKeyDownEnter:
124
+ return r.selectedItem && t(r.selectedItem), r;
125
+ case g.stateChangeTypes.InputClick:
126
+ return { ...r, isOpen: !0 };
127
+ case g.stateChangeTypes.ToggleButtonClick:
128
+ case g.stateChangeTypes.InputBlur:
129
+ return o ? r : l.inputValue === "" ? (t(null), { ...r, selectedItem: null }) : i ? (t(i), { ...r, selectedItem: i, inputValue: i.text }) : l.selectedItem ? { ...r, inputValue: l.selectedItem.text } : { ...r, inputValue: "" };
130
+ default:
131
+ return r;
132
+ }
133
+ }, We = ne(null), ee = (e, o) => o ? new Map(
134
+ Array.from(e).filter(([t, { text: n }]) => n.toLowerCase().includes(o.toLowerCase()))
135
+ ) : e, U = ":combobox", Ct = ({
136
+ children: e,
137
+ state: o,
138
+ allowCustomValue: t = !1,
139
+ filtering: n = "auto",
140
+ disabled: l = !1,
141
+ multiple: r = !1,
142
+ readOnly: c = !1,
143
+ wrap: i = !0,
242
144
  // Value
243
- value: controlledValue,
244
- defaultValue,
245
- onValueChange,
145
+ value: s,
146
+ defaultValue: m,
147
+ onValueChange: u,
246
148
  // Open
247
- open: controlledOpen,
248
- defaultOpen,
249
- onOpenChange,
250
- isLoading
149
+ open: b,
150
+ defaultOpen: O,
151
+ onOpenChange: I,
152
+ isLoading: k
251
153
  }) => {
252
- const isMounted = useRef(false);
253
- const [inputValue, setInputValue] = useState("");
254
- const [isTyping, setIsTyping] = useState(filtering === "strict");
255
- const triggerAreaRef = useRef(null);
256
- const innerInputRef = useRef(null);
257
- const [onInputValueChange, setOnInputValueChange] = useState(null);
258
- const [comboboxValue] = useCombinedState(controlledValue, defaultValue);
259
- const shouldFilterItems = filtering === "strict" || filtering === "auto" && isTyping;
260
- const [itemsMap, setItemsMap] = useState(getItemsFromChildren(children));
261
- const [filteredItemsMap, setFilteredItems] = useState(
262
- shouldFilterItems ? getFilteredItemsMap(itemsMap, inputValue) : itemsMap
263
- );
264
- const [selectedItem, setSelectedItem] = useState(
265
- itemsMap.get(comboboxValue) || null
266
- );
267
- const [selectedItems, setSelectedItems] = useState(
268
- comboboxValue ? [...itemsMap.values()].filter((item) => comboboxValue.includes(item.value)) : []
269
- );
270
- const onInternalSelectedItemChange = (item) => {
271
- setIsTyping(false);
272
- if (item?.value !== selectedItem?.value) {
273
- setSelectedItem(item);
274
- setTimeout(() => {
275
- onValueChange?.(item?.value);
276
- }, 0);
277
- }
278
- };
279
- const onInternalSelectedItemsChange = (items) => {
280
- setSelectedItems(items);
281
- setTimeout(() => {
282
- onValueChange?.(items.map((i) => i.value));
154
+ const x = A(!1), [w, N] = T(""), [E, h] = T(n === "strict"), R = A(null), V = A(null), [X, G] = T(null), [D] = Le(s, m), Q = n === "strict" || n === "auto" && E, [C, qe] = T(Re(e)), [H, ve] = T(
155
+ Q ? ee(C, w) : C
156
+ ), [we, Ne] = T(
157
+ C.get(D) || null
158
+ ), [Te, Pe] = T(
159
+ D ? [...C.values()].filter((d) => D.includes(d.value)) : []
160
+ ), Se = (d) => {
161
+ h(!1), d?.value !== we?.value && (Ne(d), setTimeout(() => {
162
+ u?.(d?.value);
163
+ }, 0));
164
+ }, Y = (d) => {
165
+ Pe(d), setTimeout(() => {
166
+ u?.(d.map((y) => y.value));
283
167
  }, 0);
284
168
  };
285
- useEffect(() => {
286
- if (!isMounted.current) {
287
- isMounted.current = true;
169
+ P(() => {
170
+ if (!x.current) {
171
+ x.current = !0;
288
172
  return;
289
173
  }
290
- if (multiple) {
291
- const newSelectedItems = comboboxValue.reduce(
292
- (accum, value) => {
293
- const match = itemsMap.get(value);
294
- return match ? [...accum, match] : accum;
174
+ if (r) {
175
+ const d = D.reduce(
176
+ (y, p) => {
177
+ const S = C.get(p);
178
+ return S ? [...y, S] : y;
295
179
  },
296
180
  []
297
181
  );
298
- setSelectedItems(comboboxValue ? newSelectedItems : []);
299
- } else {
300
- setSelectedItem(itemsMap.get(comboboxValue) || null);
301
- }
302
- }, [multiple ? JSON.stringify(comboboxValue) : comboboxValue]);
303
- const field = useFormFieldControl();
304
- const internalFieldLabelID = `${ID_PREFIX}-label-${useId()}`;
305
- const internalFieldID = `${ID_PREFIX}-field-${useId()}`;
306
- const id = field.id || internalFieldID;
307
- const labelId = field.labelId || internalFieldLabelID;
308
- const state = field.state || stateProp;
309
- const disabled = field.disabled ?? disabledProp;
310
- const readOnly = field.readOnly ?? readOnlyProp;
311
- const [hasPopover, setHasPopover] = useState(
312
- hasChildComponent(children, "Combobox.Popover")
313
- );
314
- const [areSelectedItemsInTrigger, setAreSelectedItemsInTrigger] = useState(false);
315
- const [lastInteractionType, setLastInteractionType] = useState("mouse");
316
- useEffect(() => {
317
- setFilteredItems(shouldFilterItems ? getFilteredItemsMap(itemsMap, inputValue) : itemsMap);
318
- }, [inputValue, itemsMap]);
319
- const multiselect = useMultipleSelection({
320
- selectedItems,
321
- stateReducer: (state2, { type, changes }) => {
322
- const types = useMultipleSelection.stateChangeTypes;
323
- switch (type) {
324
- case types.SelectedItemKeyDownBackspace:
325
- case types.SelectedItemKeyDownDelete: {
326
- onInternalSelectedItemsChange(changes.selectedItems || []);
327
- let activeIndex;
328
- if (type === types.SelectedItemKeyDownDelete) {
329
- const isLastItem = state2?.activeIndex === changes.selectedItems?.length;
330
- activeIndex = isLastItem ? -1 : state2.activeIndex;
331
- } else {
332
- const hasItemBefore = (changes?.activeIndex || 0) - 1 >= 0;
333
- activeIndex = hasItemBefore ? state2.activeIndex - 1 : changes?.activeIndex;
334
- }
335
- return {
336
- ...changes,
337
- activeIndex
182
+ Pe(D ? d : []);
183
+ } else
184
+ Ne(C.get(D) || null);
185
+ }, [r ? JSON.stringify(D) : D]);
186
+ const M = oe(), Ue = `${U}-label-${q()}`, Je = `${U}-field-${q()}`, Oe = M.id || Je, Xe = M.labelId || Ue, Qe = M.state || o, Ye = M.disabled ?? l, Ze = M.readOnly ?? c, [ke, et] = T(
187
+ $e(e, "Combobox.Popover")
188
+ ), [tt, ot] = T(!1), [nt, st] = T("mouse");
189
+ P(() => {
190
+ ve(Q ? ee(C, w) : C);
191
+ }, [w, C]);
192
+ const Ve = Ee({
193
+ selectedItems: Te,
194
+ stateReducer: (d, { type: y, changes: p }) => {
195
+ const S = Ee.stateChangeTypes;
196
+ switch (y) {
197
+ case S.SelectedItemKeyDownBackspace:
198
+ case S.SelectedItemKeyDownDelete: {
199
+ Y(p.selectedItems || []);
200
+ let L;
201
+ return y === S.SelectedItemKeyDownDelete ? L = d?.activeIndex === p.selectedItems?.length ? -1 : d.activeIndex : L = (p?.activeIndex || 0) - 1 >= 0 ? d.activeIndex - 1 : p?.activeIndex, {
202
+ ...p,
203
+ activeIndex: L
338
204
  };
339
205
  }
340
- case types.SelectedItemClick:
341
- if (innerInputRef.current) {
342
- innerInputRef.current.focus();
343
- }
344
- return {
345
- ...changes,
206
+ case S.SelectedItemClick:
207
+ return V.current && V.current.focus(), {
208
+ ...p,
346
209
  activeIndex: -1
347
210
  // the focus will remain on the input
348
211
  };
349
- case types.FunctionRemoveSelectedItem:
212
+ case S.FunctionRemoveSelectedItem:
350
213
  return {
351
- ...changes,
214
+ ...p,
352
215
  activeIndex: -1
353
216
  // the focus will remain on the input
354
217
  };
355
- case types.DropdownKeyDownNavigationPrevious:
356
- downshift.closeMenu();
357
- return changes;
218
+ case S.DropdownKeyDownNavigationPrevious:
219
+ return Z.closeMenu(), p;
358
220
  default:
359
- return changes;
221
+ return p;
360
222
  }
361
223
  }
362
- });
363
- const filteredItems = Array.from(filteredItemsMap.values());
364
- useEffect(() => {
365
- onInputValueChange?.(inputValue || "");
366
- }, [inputValue]);
367
- const downshift = useCombobox3({
368
- inputId: id,
369
- items: filteredItems,
370
- selectedItem: multiple ? void 0 : selectedItem,
371
- id,
372
- labelId,
224
+ }), De = Array.from(H.values());
225
+ P(() => {
226
+ X?.(w || "");
227
+ }, [w]);
228
+ const Z = g({
229
+ inputId: Oe,
230
+ items: De,
231
+ selectedItem: r ? void 0 : we,
232
+ id: Oe,
233
+ labelId: Xe,
373
234
  // Input
374
- inputValue,
375
- onInputValueChange: ({ inputValue: newInputValue }) => {
376
- setInputValue(newInputValue);
377
- if (shouldFilterItems) {
378
- const filtered = getFilteredItemsMap(itemsMap, newInputValue || "");
379
- setFilteredItems(filtered);
235
+ inputValue: w,
236
+ onInputValueChange: ({ inputValue: d }) => {
237
+ if (N(d), Q) {
238
+ const y = ee(C, d || "");
239
+ ve(y);
380
240
  }
381
241
  },
382
242
  // Open
383
- initialIsOpen: defaultOpen,
384
- ...controlledOpen != null && { isOpen: controlledOpen },
385
- onIsOpenChange: (changes) => {
386
- if (changes.isOpen != null) {
387
- onOpenChange?.(changes.isOpen);
388
- }
243
+ initialIsOpen: O,
244
+ ...b != null && { isOpen: b },
245
+ onIsOpenChange: (d) => {
246
+ d.isOpen != null && I?.(d.isOpen);
389
247
  },
390
248
  // Custom Spark item object parsing
391
- itemToString: (item) => {
392
- return item?.text;
393
- },
394
- isItemDisabled: (item) => {
395
- const isFilteredOut = !!inputValue && !filteredItems.some((filteredItem) => {
396
- return item.value === filteredItem.value;
397
- });
398
- return item.disabled || isFilteredOut;
249
+ itemToString: (d) => d?.text,
250
+ isItemDisabled: (d) => {
251
+ const y = !!w && !De.some((p) => d.value === p.value);
252
+ return d.disabled || y;
399
253
  },
400
254
  // Main reducer
401
- stateReducer: multiple ? multipleSelectionReducer({
402
- multiselect,
403
- selectedItems,
404
- allowCustomValue,
405
- setSelectedItems: onInternalSelectedItemsChange,
406
- triggerAreaRef,
407
- items: itemsMap
408
- }) : singleSelectionReducer({
409
- allowCustomValue,
410
- setSelectedItem: onInternalSelectedItemChange,
411
- filteredItems: [...filteredItemsMap.values()]
255
+ stateReducer: r ? xt({
256
+ multiselect: Ve,
257
+ selectedItems: Te,
258
+ allowCustomValue: t,
259
+ setSelectedItems: Y,
260
+ triggerAreaRef: R,
261
+ items: C
262
+ }) : yt({
263
+ allowCustomValue: t,
264
+ setSelectedItem: Se,
265
+ filteredItems: [...H.values()]
412
266
  }),
413
267
  /**
414
268
  * Downshift default behaviour is to scroll into view the highlighted item when the dropdown opens. This behaviour is not stable and scrolls the dropdown to the bottom of the screen.
415
269
  */
416
- scrollIntoView: (node) => {
417
- if (node) {
418
- node.scrollIntoView({ block: "nearest" });
419
- }
420
- return void 0;
270
+ scrollIntoView: (d) => {
271
+ d && d.scrollIntoView({ block: "nearest" });
421
272
  }
422
273
  });
423
- useEffect(() => {
424
- const newMap = getItemsFromChildren(children);
425
- const previousItems = [...itemsMap.values()];
426
- const newItems = [...newMap.values()];
427
- const hasItemsChanges = previousItems.length !== newItems.length || previousItems.some((item, index) => {
428
- const hasUpdatedValue = item.value !== newItems[index]?.value;
429
- const hasUpdatedText = item.text !== newItems[index]?.text;
430
- return hasUpdatedValue || hasUpdatedText;
431
- });
432
- if (hasItemsChanges) {
433
- setItemsMap(newMap);
434
- }
435
- }, [children]);
436
- const [WrapperComponent, wrapperProps] = hasPopover ? [Popover, { open: true }] : [Fragment, {}];
437
- return /* @__PURE__ */ jsx(
438
- ComboboxContext.Provider,
274
+ P(() => {
275
+ const d = Re(e), y = [...C.values()], p = [...d.values()];
276
+ (y.length !== p.length || y.some((L, j) => {
277
+ const at = L.value !== p[j]?.value, it = L.text !== p[j]?.text;
278
+ return at || it;
279
+ })) && qe(d);
280
+ }, [e]);
281
+ const [rt, lt] = ke ? [K, { open: !0 }] : [se, {}];
282
+ return /* @__PURE__ */ a(
283
+ We.Provider,
439
284
  {
440
285
  value: {
441
286
  // Data
442
- itemsMap,
443
- filteredItemsMap,
444
- highlightedItem: getElementByIndex(filteredItemsMap, downshift.highlightedIndex),
287
+ itemsMap: C,
288
+ filteredItemsMap: H,
289
+ highlightedItem: It(H, Z.highlightedIndex),
445
290
  // State
446
- multiple,
447
- disabled,
448
- readOnly,
449
- areSelectedItemsInTrigger,
450
- setAreSelectedItemsInTrigger,
451
- hasPopover,
452
- setHasPopover,
453
- state,
454
- lastInteractionType,
455
- setLastInteractionType,
456
- wrap,
291
+ multiple: r,
292
+ disabled: Ye,
293
+ readOnly: Ze,
294
+ areSelectedItemsInTrigger: tt,
295
+ setAreSelectedItemsInTrigger: ot,
296
+ hasPopover: ke,
297
+ setHasPopover: et,
298
+ state: Qe,
299
+ lastInteractionType: nt,
300
+ setLastInteractionType: st,
301
+ wrap: i,
457
302
  // Refs
458
- innerInputRef,
459
- triggerAreaRef,
303
+ innerInputRef: V,
304
+ triggerAreaRef: R,
460
305
  // Downshift state
461
- ...downshift,
462
- ...multiselect,
463
- setInputValue,
464
- selectItem: onInternalSelectedItemChange,
465
- setSelectedItems: onInternalSelectedItemsChange,
466
- isLoading,
467
- setOnInputValueChange,
468
- isTyping,
469
- setIsTyping
306
+ ...Z,
307
+ ...Ve,
308
+ setInputValue: N,
309
+ selectItem: Se,
310
+ setSelectedItems: Y,
311
+ isLoading: k,
312
+ setOnInputValueChange: G,
313
+ isTyping: E,
314
+ setIsTyping: h
470
315
  },
471
- children: /* @__PURE__ */ jsx(WrapperComponent, { ...wrapperProps, children })
316
+ children: /* @__PURE__ */ a(rt, { ...lt, children: e })
472
317
  }
473
318
  );
474
- };
475
- var useComboboxContext = () => {
476
- const context = useContext(ComboboxContext);
477
- if (!context) {
319
+ }, v = () => {
320
+ const e = re(We);
321
+ if (!e)
478
322
  throw Error("useComboboxContext must be used within a Combobox provider");
479
- }
480
- return context;
481
- };
482
-
483
- // src/combobox/Combobox.tsx
484
- import { jsx as jsx2 } from "react/jsx-runtime";
485
- var Combobox = ({ children, ...props }) => {
486
- return /* @__PURE__ */ jsx2(ComboboxProvider, { ...props, children });
487
- };
488
- Combobox.displayName = "Combobox";
489
-
490
- // src/combobox/ComboboxClearButton.tsx
491
- import { DeleteOutline } from "@spark-ui/icons/DeleteOutline";
492
- import { cx } from "class-variance-authority";
493
- import { jsx as jsx3 } from "react/jsx-runtime";
494
- var ClearButton = ({
495
- className,
496
- tabIndex = -1,
497
- onClick,
498
- ref,
499
- ...others
323
+ return e;
324
+ }, Ge = ({ children: e, ...o }) => /* @__PURE__ */ a(Ct, { ...o, children: e });
325
+ Ge.displayName = "Combobox";
326
+ const le = ({
327
+ className: e,
328
+ tabIndex: o = -1,
329
+ onClick: t,
330
+ ref: n,
331
+ ...l
500
332
  }) => {
501
- const ctx = useComboboxContext();
502
- const handleClick = (event) => {
503
- event.stopPropagation();
504
- if (ctx.multiple) {
505
- ctx.setSelectedItems([]);
506
- } else {
507
- ctx.selectItem(null);
508
- }
509
- ctx.setInputValue("");
510
- if (ctx.innerInputRef.current) {
511
- ctx.innerInputRef.current.focus();
512
- }
513
- if (onClick) {
514
- onClick(event);
515
- }
333
+ const r = v(), c = (i) => {
334
+ i.stopPropagation(), r.multiple ? r.setSelectedItems([]) : r.selectItem(null), r.setInputValue(""), r.innerInputRef.current && r.innerInputRef.current.focus(), t && t(i);
516
335
  };
517
- return /* @__PURE__ */ jsx3(
336
+ return /* @__PURE__ */ a(
518
337
  "button",
519
338
  {
520
- ref,
521
- className: cx(className, "h-sz-44 text-neutral hover:text-neutral-hovered"),
522
- tabIndex,
523
- onClick: handleClick,
339
+ ref: n,
340
+ className: f(e, "h-sz-44 text-neutral hover:text-neutral-hovered"),
341
+ tabIndex: o,
342
+ onClick: c,
524
343
  type: "button",
525
- ...others,
526
- children: /* @__PURE__ */ jsx3(Icon, { size: "sm", children: /* @__PURE__ */ jsx3(DeleteOutline, {}) })
344
+ ...l,
345
+ children: /* @__PURE__ */ a($, { size: "sm", children: /* @__PURE__ */ a(Ae, {}) })
527
346
  }
528
347
  );
529
348
  };
530
- ClearButton.displayName = "Combobox.ClearButton";
531
-
532
- // src/combobox/ComboboxDisclosure.tsx
533
- import { useMergeRefs } from "@spark-ui/hooks/use-merge-refs";
534
- import { ArrowHorizontalDown } from "@spark-ui/icons/ArrowHorizontalDown";
535
- import { cx as cx2 } from "class-variance-authority";
536
- import { jsx as jsx4 } from "react/jsx-runtime";
537
- var Disclosure = ({
538
- className,
539
- closedLabel,
540
- openedLabel,
541
- intent = "neutral",
542
- design = "ghost",
543
- size = "sm",
544
- ref: forwardedRef,
545
- ...props
349
+ le.displayName = "Combobox.ClearButton";
350
+ const ae = ({
351
+ className: e,
352
+ closedLabel: o,
353
+ openedLabel: t,
354
+ intent: n = "neutral",
355
+ design: l = "ghost",
356
+ size: r = "sm",
357
+ ref: c,
358
+ ...i
546
359
  }) => {
547
- const ctx = useComboboxContext();
548
- const { ref: downshiftRef, ...downshiftDisclosureProps } = ctx.getToggleButtonProps({
549
- disabled: ctx.disabled || ctx.readOnly,
550
- onClick: (event) => {
551
- event.stopPropagation();
552
- }
553
- });
554
- const isExpanded = downshiftDisclosureProps["aria-expanded"];
555
- const ref = useMergeRefs(forwardedRef, downshiftRef);
556
- return /* @__PURE__ */ jsx4(
557
- IconButton,
360
+ const s = v(), { ref: m, ...u } = s.getToggleButtonProps({
361
+ disabled: s.disabled || s.readOnly,
362
+ onClick: (I) => {
363
+ I.stopPropagation();
364
+ }
365
+ }), b = u["aria-expanded"], O = W(c, m);
366
+ return /* @__PURE__ */ a(
367
+ ut,
558
368
  {
559
- ref,
560
- className: cx2(className, "ml-sm mt-[calc((44px-32px)/2)]"),
561
- intent,
562
- design,
563
- size,
564
- ...downshiftDisclosureProps,
565
- ...props,
566
- "aria-label": isExpanded ? openedLabel : closedLabel,
567
- disabled: ctx.disabled,
568
- children: /* @__PURE__ */ jsx4(
569
- Icon,
369
+ ref: O,
370
+ className: f(e, "ml-sm mt-[calc((44px-32px)/2)]"),
371
+ intent: n,
372
+ design: l,
373
+ size: r,
374
+ ...u,
375
+ ...i,
376
+ "aria-label": b ? t : o,
377
+ disabled: s.disabled,
378
+ children: /* @__PURE__ */ a(
379
+ $,
570
380
  {
571
- className: cx2("shrink-0", "rotate-0 transition duration-100 ease-in", {
572
- "rotate-180": isExpanded
381
+ className: f("shrink-0", "rotate-0 transition duration-100 ease-in", {
382
+ "rotate-180": b
573
383
  }),
574
384
  size: "sm",
575
- children: /* @__PURE__ */ jsx4(ArrowHorizontalDown, {})
385
+ children: /* @__PURE__ */ a(dt, {})
576
386
  }
577
387
  )
578
388
  }
579
389
  );
580
390
  };
581
- Disclosure.displayName = "Combobox.Disclosure";
582
-
583
- // src/combobox/ComboboxEmpty.tsx
584
- import { cx as cx3 } from "class-variance-authority";
585
- import { jsx as jsx5 } from "react/jsx-runtime";
586
- var Empty = ({ className, children, ref: forwardedRef }) => {
587
- const ctx = useComboboxContext();
588
- const hasNoItemVisible = ctx.filteredItemsMap.size === 0;
589
- return hasNoItemVisible ? /* @__PURE__ */ jsx5(
590
- "div",
591
- {
592
- ref: forwardedRef,
593
- className: cx3("px-lg py-md text-body-1 text-on-surface/dim-1", className),
594
- children
595
- }
596
- ) : null;
597
- };
598
- Empty.displayName = "Combobox.Empty";
599
-
600
- // src/combobox/ComboboxGroup.tsx
601
- import { cx as cx4 } from "class-variance-authority";
602
- import { Children as Children2, isValidElement as isValidElement2 } from "react";
603
-
604
- // src/combobox/ComboboxItemsGroupContext.tsx
605
- import { createContext as createContext2, useContext as useContext2, useId as useId2 } from "react";
606
- import { jsx as jsx6 } from "react/jsx-runtime";
607
- var ComboboxGroupContext = createContext2(null);
608
- var ComboboxGroupProvider = ({ children }) => {
609
- const groupLabelId = `${ID_PREFIX}-group-label-${useId2()}`;
610
- return /* @__PURE__ */ jsx6(ComboboxGroupContext.Provider, { value: { groupLabelId }, children });
611
- };
612
- var useComboboxGroupContext = () => {
613
- const context = useContext2(ComboboxGroupContext);
614
- if (!context) {
615
- throw Error("useComboboxGroupContext must be used within a ComboboxGroup provider");
391
+ ae.displayName = "Combobox.Disclosure";
392
+ const ie = ({ className: e, children: o, ref: t }) => v().filteredItemsMap.size === 0 ? /* @__PURE__ */ a(
393
+ "div",
394
+ {
395
+ ref: t,
396
+ className: f("px-lg py-md text-body-1 text-on-surface/dim-1", e),
397
+ children: o
616
398
  }
617
- return context;
618
- };
619
-
620
- // src/combobox/ComboboxGroup.tsx
621
- import { jsx as jsx7 } from "react/jsx-runtime";
622
- var Group = ({ children, ref: forwardedRef, ...props }) => {
623
- return /* @__PURE__ */ jsx7(ComboboxGroupProvider, { children: /* @__PURE__ */ jsx7(GroupContent, { ref: forwardedRef, ...props, children }) });
624
- };
625
- var GroupContent = ({ children, className, ref: forwardedRef }) => {
626
- const ctx = useComboboxContext();
627
- const groupCtx = useComboboxGroupContext();
628
- const hasVisibleOptions = Children2.toArray(children).some((child) => {
629
- return isValidElement2(child) && ctx.filteredItemsMap.get(child.props.value);
630
- });
631
- return hasVisibleOptions ? /* @__PURE__ */ jsx7(
399
+ ) : null;
400
+ ie.displayName = "Combobox.Empty";
401
+ const He = ne(null), gt = ({ children: e }) => {
402
+ const o = `${U}-group-label-${q()}`;
403
+ return /* @__PURE__ */ a(He.Provider, { value: { groupLabelId: o }, children: e });
404
+ }, je = () => {
405
+ const e = re(He);
406
+ if (!e)
407
+ throw Error("useComboboxGroupContext must be used within a ComboboxGroup provider");
408
+ return e;
409
+ }, ce = ({ children: e, ref: o, ...t }) => /* @__PURE__ */ a(gt, { children: /* @__PURE__ */ a(ht, { ref: o, ...t, children: e }) }), ht = ({ children: e, className: o, ref: t }) => {
410
+ const n = v(), l = je();
411
+ return B.toArray(e).some((c) => z(c) && n.filteredItemsMap.get(c.props.value)) ? /* @__PURE__ */ a(
632
412
  "div",
633
413
  {
634
- ref: forwardedRef,
414
+ ref: t,
635
415
  role: "group",
636
- "aria-labelledby": groupCtx.groupLabelId,
637
- className: cx4(className),
638
- children
416
+ "aria-labelledby": l.groupLabelId,
417
+ className: f(o),
418
+ children: e
639
419
  }
640
420
  ) : null;
641
421
  };
642
- Group.displayName = "Combobox.Group";
643
-
644
- // src/combobox/ComboboxInput.tsx
645
- import { useFormFieldControl as useFormFieldControl2 } from "@spark-ui/components/form-field";
646
- import { useCombinedState as useCombinedState2 } from "@spark-ui/hooks/use-combined-state";
647
- import { useMergeRefs as useMergeRefs2 } from "@spark-ui/hooks/use-merge-refs";
648
- import { cx as cx5 } from "class-variance-authority";
649
- import {
650
- Fragment as Fragment2,
651
- useEffect as useEffect2
652
- } from "react";
653
- import { Fragment as Fragment3, jsx as jsx8, jsxs } from "react/jsx-runtime";
654
- var Input = ({
655
- "aria-label": ariaLabel,
656
- className,
657
- placeholder,
658
- value,
659
- defaultValue,
660
- onValueChange,
661
- ref: forwardedRef,
662
- ...props
422
+ ce.displayName = "Combobox.Group";
423
+ const de = ({
424
+ "aria-label": e,
425
+ className: o,
426
+ placeholder: t,
427
+ value: n,
428
+ defaultValue: l,
429
+ onValueChange: r,
430
+ ref: c,
431
+ ...i
663
432
  }) => {
664
- const ctx = useComboboxContext();
665
- const field = useFormFieldControl2();
666
- const [inputValue] = useCombinedState2(value, defaultValue);
667
- const { isInvalid, description } = field;
668
- useEffect2(() => {
669
- if (inputValue != null) {
670
- ctx.setInputValue(inputValue);
671
- }
672
- }, [inputValue]);
673
- useEffect2(() => {
674
- if (onValueChange) {
675
- ctx.setOnInputValueChange(() => onValueChange);
676
- }
677
- if (!ctx.multiple && ctx.selectedItem) {
678
- ctx.setInputValue(ctx.selectedItem.text);
679
- }
433
+ const s = v(), m = oe(), [u] = Le(n, l), { isInvalid: b, description: O } = m;
434
+ P(() => {
435
+ u != null && s.setInputValue(u);
436
+ }, [u]), P(() => {
437
+ r && s.setOnInputValueChange(() => r), !s.multiple && s.selectedItem && s.setInputValue(s.selectedItem.text);
680
438
  }, []);
681
- const PopoverTrigger = ctx.hasPopover ? Popover.Trigger : Fragment2;
682
- const popoverTriggerProps = ctx.hasPopover ? {
683
- asChild: true,
439
+ const I = s.hasPopover ? K.Trigger : se, k = s.hasPopover ? {
440
+ asChild: !0,
684
441
  type: void 0
685
- } : {};
686
- const multiselectInputProps = ctx.getDropdownProps();
687
- const inputRef = useMergeRefs2(forwardedRef, ctx.innerInputRef, multiselectInputProps.ref);
688
- const downshiftInputProps = ctx.getInputProps({
689
- disabled: ctx.disabled || ctx.readOnly,
690
- ...multiselectInputProps,
691
- onKeyDown: (event) => {
692
- multiselectInputProps.onKeyDown?.(event);
693
- ctx.setLastInteractionType("keyboard");
694
- ctx.setIsTyping(true);
442
+ } : {}, x = s.getDropdownProps(), w = W(c, s.innerInputRef, x.ref), N = s.getInputProps({
443
+ disabled: s.disabled || s.readOnly,
444
+ ...x,
445
+ onKeyDown: (V) => {
446
+ x.onKeyDown?.(V), s.setLastInteractionType("keyboard"), s.setIsTyping(!0);
695
447
  },
696
448
  /**
697
449
  *
@@ -699,99 +451,73 @@ var Input = ({
699
451
  * - without this, the input cursor is moved to the end after every change.
700
452
  * @see https://github.com/downshift-js/downshift/issues/1108#issuecomment-674180157
701
453
  */
702
- onChange: (e) => {
703
- ctx.setInputValue(e.target.value);
454
+ onChange: (V) => {
455
+ s.setInputValue(V.target.value);
704
456
  },
705
- ref: inputRef
706
- });
707
- const hasPlaceholder = ctx.multiple ? !ctx.areSelectedItemsInTrigger || ctx.selectedItems.length === 0 : ctx.selectedItem === null;
708
- function mergeHandlers(handlerA, handlerB) {
709
- return (event) => {
710
- handlerA?.(event);
711
- handlerB?.(event);
457
+ ref: w
458
+ }), E = s.multiple ? !s.areSelectedItemsInTrigger || s.selectedItems.length === 0 : s.selectedItem === null;
459
+ function h(V, X) {
460
+ return (G) => {
461
+ V?.(G), X?.(G);
712
462
  };
713
463
  }
714
- const mergedEventProps = {
715
- onBlur: mergeHandlers(props.onBlur, downshiftInputProps.onBlur),
716
- onChange: mergeHandlers(props.onChange, downshiftInputProps.onChange),
717
- onClick: mergeHandlers(props.onClick, downshiftInputProps.onClick),
718
- onKeyDown: mergeHandlers(props.onKeyDown, downshiftInputProps.onKeyDown)
464
+ const R = {
465
+ onBlur: h(i.onBlur, N.onBlur),
466
+ onChange: h(i.onChange, N.onChange),
467
+ onClick: h(i.onClick, N.onClick),
468
+ onKeyDown: h(i.onKeyDown, N.onKeyDown)
719
469
  };
720
- return /* @__PURE__ */ jsxs(Fragment3, { children: [
721
- ariaLabel && /* @__PURE__ */ jsx8(VisuallyHidden, { children: /* @__PURE__ */ jsx8("label", { ...ctx.getLabelProps(), children: ariaLabel }) }),
722
- /* @__PURE__ */ jsx8(PopoverTrigger, { ...popoverTriggerProps, children: /* @__PURE__ */ jsx8(
470
+ return /* @__PURE__ */ _(te, { children: [
471
+ e && /* @__PURE__ */ a(mt, { children: /* @__PURE__ */ a("label", { ...s.getLabelProps(), children: e }) }),
472
+ /* @__PURE__ */ a(I, { ...k, children: /* @__PURE__ */ a(
723
473
  "input",
724
474
  {
725
475
  "data-spark-component": "combobox-input",
726
476
  type: "text",
727
- ...hasPlaceholder && { placeholder },
728
- className: cx5(
477
+ ...E && { placeholder: t },
478
+ className: f(
729
479
  "max-w-full shrink-0 grow basis-[80px]",
730
480
  "h-sz-28 bg-surface px-sm text-body-1 text-ellipsis outline-hidden",
731
481
  "disabled:text-on-surface/dim-3 disabled:cursor-not-allowed disabled:bg-transparent",
732
482
  "read-only:text-on-surface read-only:cursor-default read-only:bg-transparent",
733
- className
483
+ o
734
484
  ),
735
- ...props,
736
- ...downshiftInputProps,
737
- ...mergedEventProps,
738
- value: ctx.inputValue,
739
- "aria-label": ariaLabel,
740
- disabled: ctx.disabled,
741
- readOnly: ctx.readOnly,
742
- "aria-invalid": isInvalid,
743
- "aria-describedby": description
485
+ ...i,
486
+ ...N,
487
+ ...R,
488
+ value: s.inputValue,
489
+ "aria-label": e,
490
+ disabled: s.disabled,
491
+ readOnly: s.readOnly,
492
+ "aria-invalid": b,
493
+ "aria-describedby": O
744
494
  }
745
495
  ) })
746
496
  ] });
747
497
  };
748
- Input.displayName = "Combobox.Input";
749
-
750
- // src/combobox/ComboboxItem.tsx
751
- import { useMergeRefs as useMergeRefs3 } from "@spark-ui/hooks/use-merge-refs";
752
- import { cva, cx as cx6 } from "class-variance-authority";
753
-
754
- // src/combobox/ComboboxItemContext.tsx
755
- import {
756
- createContext as createContext3,
757
- useContext as useContext3,
758
- useState as useState2
759
- } from "react";
760
- import { jsx as jsx9 } from "react/jsx-runtime";
761
- var ComboboxItemContext = createContext3(null);
762
- var ComboboxItemProvider = ({
763
- value,
764
- disabled = false,
765
- children
498
+ de.displayName = "Combobox.Input";
499
+ const _e = ne(null), vt = ({
500
+ value: e,
501
+ disabled: o = !1,
502
+ children: t
766
503
  }) => {
767
- const ctx = useComboboxContext();
768
- const [textId, setTextId] = useState2(void 0);
769
- const index = getIndexByKey(ctx.filteredItemsMap, value);
770
- const itemData = { disabled, value, text: getItemText(children) };
771
- const isSelected = ctx.multiple ? ctx.selectedItems.some((selectedItem) => selectedItem.value === value) : ctx.selectedItem?.value === value;
772
- return /* @__PURE__ */ jsx9(
773
- ComboboxItemContext.Provider,
504
+ const n = v(), [l, r] = T(void 0), c = Fe(n.filteredItemsMap, e), i = { disabled: o, value: e, text: Ke(t) }, s = n.multiple ? n.selectedItems.some((m) => m.value === e) : n.selectedItem?.value === e;
505
+ return /* @__PURE__ */ a(
506
+ _e.Provider,
774
507
  {
775
- value: { textId, setTextId, isSelected, itemData, index, disabled },
776
- children
508
+ value: { textId: l, setTextId: r, isSelected: s, itemData: i, index: c, disabled: o },
509
+ children: t
777
510
  }
778
511
  );
779
- };
780
- var useComboboxItemContext = () => {
781
- const context = useContext3(ComboboxItemContext);
782
- if (!context) {
512
+ }, ue = () => {
513
+ const e = re(_e);
514
+ if (!e)
783
515
  throw Error("useComboboxItemContext must be used within a ComboboxItem provider");
784
- }
785
- return context;
786
- };
787
-
788
- // src/combobox/ComboboxItem.tsx
789
- import { jsx as jsx10 } from "react/jsx-runtime";
790
- var Item = ({ children, ref: forwardedRef, ...props }) => {
791
- const { value, disabled } = props;
792
- return /* @__PURE__ */ jsx10(ComboboxItemProvider, { value, disabled, children: /* @__PURE__ */ jsx10(ItemContent, { ref: forwardedRef, ...props, children }) });
793
- };
794
- var styles = cva("px-lg py-md text-body-1", {
516
+ return e;
517
+ }, me = ({ children: e, ref: o, ...t }) => {
518
+ const { value: n, disabled: l } = t;
519
+ return /* @__PURE__ */ a(vt, { value: n, disabled: l, children: /* @__PURE__ */ a(Nt, { ref: o, ...t, children: e }) });
520
+ }, wt = Me("px-lg py-md text-body-1", {
795
521
  variants: {
796
522
  selected: {
797
523
  true: "font-bold"
@@ -810,295 +536,213 @@ var styles = cva("px-lg py-md text-body-1", {
810
536
  },
811
537
  compoundVariants: [
812
538
  {
813
- highlighted: true,
539
+ highlighted: !0,
814
540
  interactionType: "mouse",
815
541
  class: "bg-surface-hovered"
816
542
  },
817
543
  {
818
- highlighted: true,
544
+ highlighted: !0,
819
545
  interactionType: "keyboard",
820
546
  class: "u-outline"
821
547
  }
822
548
  ]
823
- });
824
- var ItemContent = ({
825
- className,
826
- disabled = false,
827
- value,
828
- children,
829
- ref: forwardedRef,
830
- ...rest
549
+ }), Nt = ({
550
+ className: e,
551
+ disabled: o = !1,
552
+ value: t,
553
+ children: n,
554
+ ref: l,
555
+ ...r
831
556
  }) => {
832
- const ctx = useComboboxContext();
833
- const itemCtx = useComboboxItemContext();
834
- const isVisible = !!ctx.filteredItemsMap.get(value);
835
- const { ref: downshiftRef, ...downshiftItemProps } = ctx.getItemProps({
836
- item: itemCtx.itemData,
837
- index: itemCtx.index
838
- });
839
- const ref = useMergeRefs3(forwardedRef, downshiftRef);
840
- if (!isVisible) return null;
841
- return /* @__PURE__ */ jsx10(
557
+ const c = v(), i = ue(), s = !!c.filteredItemsMap.get(t), { ref: m, ...u } = c.getItemProps({
558
+ item: i.itemData,
559
+ index: i.index
560
+ }), b = W(l, m);
561
+ return s ? /* @__PURE__ */ a(
842
562
  "li",
843
563
  {
844
- ref,
845
- className: cx6(
846
- styles({
847
- selected: itemCtx.isSelected,
848
- disabled,
849
- highlighted: ctx.highlightedItem?.value === value,
850
- interactionType: ctx.lastInteractionType,
851
- className
564
+ ref: b,
565
+ className: f(
566
+ wt({
567
+ selected: i.isSelected,
568
+ disabled: o,
569
+ highlighted: c.highlightedItem?.value === t,
570
+ interactionType: c.lastInteractionType,
571
+ className: e
852
572
  })
853
573
  ),
854
- ...downshiftItemProps,
855
- ...rest,
856
- "aria-selected": itemCtx.isSelected,
857
- "aria-labelledby": itemCtx.textId,
858
- children
574
+ ...u,
575
+ ...r,
576
+ "aria-selected": i.isSelected,
577
+ "aria-labelledby": i.textId,
578
+ children: n
859
579
  },
860
- value
861
- );
580
+ t
581
+ ) : null;
862
582
  };
863
- Item.displayName = "Combobox.Item";
864
-
865
- // src/combobox/ComboboxItemIndicator.tsx
866
- import { Check } from "@spark-ui/icons/Check";
867
- import { cx as cx7 } from "class-variance-authority";
868
- import { jsx as jsx11 } from "react/jsx-runtime";
869
- var ItemIndicator = ({
870
- className,
871
- children,
872
- label,
873
- ref: forwardedRef
583
+ me.displayName = "Combobox.Item";
584
+ const pe = ({
585
+ className: e,
586
+ children: o,
587
+ label: t,
588
+ ref: n
874
589
  }) => {
875
- const { disabled, isSelected } = useComboboxItemContext();
876
- const childElement = children || /* @__PURE__ */ jsx11(Icon, { size: "sm", children: /* @__PURE__ */ jsx11(Check, { "aria-label": label }) });
877
- return /* @__PURE__ */ jsx11(
590
+ const { disabled: l, isSelected: r } = ue(), c = o || /* @__PURE__ */ a($, { size: "sm", children: /* @__PURE__ */ a(pt, { "aria-label": t }) });
591
+ return /* @__PURE__ */ a(
878
592
  "span",
879
593
  {
880
- ref: forwardedRef,
881
- className: cx7("min-h-sz-16 min-w-sz-16 flex", disabled && "opacity-dim-3", className),
882
- children: isSelected && childElement
594
+ ref: n,
595
+ className: f("min-h-sz-16 min-w-sz-16 flex", l && "opacity-dim-3", e),
596
+ children: r && c
883
597
  }
884
598
  );
885
599
  };
886
- ItemIndicator.displayName = "Combobox.ItemIndicator";
887
-
888
- // src/combobox/ComboboxItems.tsx
889
- import { useMergeRefs as useMergeRefs4 } from "@spark-ui/hooks/use-merge-refs";
890
- import { cx as cx8 } from "class-variance-authority";
891
- import { useLayoutEffect, useRef as useRef2 } from "react";
892
- import { jsx as jsx12 } from "react/jsx-runtime";
893
- var Items = ({ children, className, ref: forwardedRef, ...props }) => {
894
- const ctx = useComboboxContext();
895
- const { ref: downshiftRef, ...downshiftMenuProps } = ctx.getMenuProps({
600
+ pe.displayName = "Combobox.ItemIndicator";
601
+ const be = ({ children: e, className: o, ref: t, ...n }) => {
602
+ const l = v(), { ref: r, ...c } = l.getMenuProps({
896
603
  onMouseMove: () => {
897
- ctx.setLastInteractionType("mouse");
898
- }
899
- });
900
- const innerRef = useRef2(null);
901
- const ref = useMergeRefs4(forwardedRef, downshiftRef, innerRef);
902
- const isOpen = ctx.hasPopover ? ctx.isOpen : true;
903
- const isPointerEventsDisabled = ctx.hasPopover && !isOpen;
904
- useLayoutEffect(() => {
905
- if (innerRef.current?.parentElement) {
906
- innerRef.current.parentElement.style.pointerEvents = isPointerEventsDisabled ? "none" : "";
907
- innerRef.current.style.pointerEvents = isPointerEventsDisabled ? "none" : "";
604
+ l.setLastInteractionType("mouse");
908
605
  }
909
- }, [isPointerEventsDisabled]);
910
- return /* @__PURE__ */ jsx12(
606
+ }), i = A(null), s = W(t, r, i), m = l.hasPopover ? l.isOpen : !0, u = l.hasPopover && !m;
607
+ return ct(() => {
608
+ i.current?.parentElement && (i.current.parentElement.style.pointerEvents = u ? "none" : "", i.current.style.pointerEvents = u ? "none" : "");
609
+ }, [u]), /* @__PURE__ */ a(
911
610
  "ul",
912
611
  {
913
- ref,
914
- className: cx8(
915
- className,
612
+ ref: s,
613
+ className: f(
614
+ o,
916
615
  "flex flex-col",
917
- isOpen ? "block" : "pointer-events-none invisible opacity-0",
918
- ctx.hasPopover && "p-lg",
919
- ctx.isLoading && "items-center overflow-y-auto"
616
+ m ? "block" : "pointer-events-none invisible opacity-0",
617
+ l.hasPopover && "p-lg",
618
+ l.isLoading && "items-center overflow-y-auto"
920
619
  ),
921
- ...props,
922
- ...downshiftMenuProps,
923
- "aria-busy": ctx.isLoading,
620
+ ...n,
621
+ ...c,
622
+ "aria-busy": l.isLoading,
924
623
  "data-spark-component": "combobox-items",
925
- children: ctx.isLoading ? /* @__PURE__ */ jsx12(Spinner, { size: "sm" }) : children
624
+ children: l.isLoading ? /* @__PURE__ */ a(bt, { size: "sm" }) : e
926
625
  }
927
626
  );
928
627
  };
929
- Items.displayName = "Combobox.Items";
930
-
931
- // src/combobox/ComboboxItemText.tsx
932
- import { cx as cx9 } from "class-variance-authority";
933
- import { useEffect as useEffect3, useId as useId3 } from "react";
934
- import { jsx as jsx13 } from "react/jsx-runtime";
935
- var ItemText = ({ children, className, ref: forwardedRef }) => {
936
- const id = `${ID_PREFIX}-item-text-${useId3()}`;
937
- const { setTextId } = useComboboxItemContext();
938
- useEffect3(() => {
939
- setTextId(id);
940
- return () => setTextId(void 0);
941
- });
942
- return /* @__PURE__ */ jsx13("span", { id, className: cx9("inline", className), ref: forwardedRef, children });
628
+ be.displayName = "Combobox.Items";
629
+ const fe = ({ children: e, className: o, ref: t }) => {
630
+ const n = `${U}-item-text-${q()}`, { setTextId: l } = ue();
631
+ return P(() => (l(n), () => l(void 0))), /* @__PURE__ */ a("span", { id: n, className: f("inline", o), ref: t, children: e });
943
632
  };
944
- ItemText.displayName = "Combobox.ItemText";
945
-
946
- // src/combobox/ComboboxLabel.tsx
947
- import { cx as cx10 } from "class-variance-authority";
948
- import { jsx as jsx14 } from "react/jsx-runtime";
949
- var Label = ({ children, className, ref: forwardedRef }) => {
950
- const groupCtx = useComboboxGroupContext();
951
- return /* @__PURE__ */ jsx14(
633
+ fe.displayName = "Combobox.ItemText";
634
+ const Ie = ({ children: e, className: o, ref: t }) => {
635
+ const n = je();
636
+ return /* @__PURE__ */ a(
952
637
  "div",
953
638
  {
954
- ref: forwardedRef,
955
- id: groupCtx.groupLabelId,
956
- className: cx10("px-md py-sm text-body-2 text-neutral italic", className),
957
- children
639
+ ref: t,
640
+ id: n.groupLabelId,
641
+ className: f("px-md py-sm text-body-2 text-neutral italic", o),
642
+ children: e
958
643
  }
959
644
  );
960
645
  };
961
- Label.displayName = "Combobox.Label";
962
-
963
- // src/combobox/ComboboxLeadingIcon.tsx
964
- import { jsx as jsx15 } from "react/jsx-runtime";
965
- var LeadingIcon = ({ children }) => {
966
- return /* @__PURE__ */ jsx15(Icon, { size: "sm", className: "h-sz-44 shrink-0", children });
967
- };
968
- LeadingIcon.displayName = "Combobox.LeadingIcon";
969
-
970
- // src/combobox/ComboboxPopover.tsx
971
- import { cx as cx11 } from "class-variance-authority";
972
- import { useEffect as useEffect4 } from "react";
973
- import { jsx as jsx16 } from "react/jsx-runtime";
974
- var Popover2 = ({
975
- children,
976
- matchTriggerWidth = true,
977
- sideOffset = 4,
978
- className,
979
- ref: forwardedRef,
980
- ...props
646
+ Ie.displayName = "Combobox.Label";
647
+ const xe = ({ children: e }) => /* @__PURE__ */ a($, { size: "sm", className: "h-sz-44 shrink-0", children: e });
648
+ xe.displayName = "Combobox.LeadingIcon";
649
+ const ye = ({
650
+ children: e,
651
+ matchTriggerWidth: o = !0,
652
+ sideOffset: t = 4,
653
+ className: n,
654
+ ref: l,
655
+ ...r
981
656
  }) => {
982
- const ctx = useComboboxContext();
983
- useEffect4(() => {
984
- ctx.setHasPopover(true);
985
- return () => ctx.setHasPopover(false);
986
- }, []);
987
- return /* @__PURE__ */ jsx16(
988
- Popover.Content,
657
+ const c = v();
658
+ return P(() => (c.setHasPopover(!0), () => c.setHasPopover(!1)), []), /* @__PURE__ */ a(
659
+ K.Content,
989
660
  {
990
- ref: forwardedRef,
991
- inset: true,
992
- asChild: true,
993
- matchTriggerWidth,
994
- className: cx11("z-dropdown! relative", className),
995
- sideOffset,
996
- onOpenAutoFocus: (e) => {
997
- e.preventDefault();
661
+ ref: l,
662
+ inset: !0,
663
+ asChild: !0,
664
+ matchTriggerWidth: o,
665
+ className: f("z-dropdown! relative", n),
666
+ sideOffset: t,
667
+ onOpenAutoFocus: (i) => {
668
+ i.preventDefault();
998
669
  },
999
- ...props,
670
+ ...r,
1000
671
  "data-spark-component": "combobox-popover",
1001
- children
672
+ children: e
1002
673
  }
1003
674
  );
1004
675
  };
1005
- Popover2.displayName = "Combobox.Popover";
1006
-
1007
- // src/combobox/ComboboxPortal.tsx
1008
- import { jsx as jsx17 } from "react/jsx-runtime";
1009
- var Portal = ({ children, ...rest }) => /* @__PURE__ */ jsx17(Popover.Portal, { ...rest, children });
1010
- Portal.displayName = "Combobox.Portal";
1011
-
1012
- // src/combobox/ComboboxSelectedItems.tsx
1013
- import { DeleteOutline as DeleteOutline2 } from "@spark-ui/icons/DeleteOutline";
1014
- import { cx as cx12 } from "class-variance-authority";
1015
- import { Fragment as Fragment4, jsx as jsx18, jsxs as jsxs2 } from "react/jsx-runtime";
1016
- var SelectedItem = ({ item: selectedItem, index }) => {
1017
- const ctx = useComboboxContext();
1018
- const isCleanable = !ctx.disabled && !ctx.readOnly;
1019
- const handleFocus = (e) => {
1020
- const element = e.target;
1021
- if (ctx.lastInteractionType === "keyboard") {
1022
- element.scrollIntoView({
1023
- behavior: "smooth",
1024
- block: "nearest",
1025
- inline: "nearest"
1026
- });
1027
- }
1028
- };
1029
- const { disabled, ...selectedItemProps } = ctx.getSelectedItemProps({
1030
- disabled: ctx.disabled || ctx.readOnly,
1031
- selectedItem,
1032
- index
676
+ ye.displayName = "Combobox.Popover";
677
+ const Ce = ({ children: e, ...o }) => /* @__PURE__ */ a(K.Portal, { ...o, children: e });
678
+ Ce.displayName = "Combobox.Portal";
679
+ const Tt = ({ item: e, index: o }) => {
680
+ const t = v(), n = !t.disabled && !t.readOnly, l = (s) => {
681
+ const m = s.target;
682
+ t.lastInteractionType === "keyboard" && m.scrollIntoView({
683
+ behavior: "smooth",
684
+ block: "nearest",
685
+ inline: "nearest"
686
+ });
687
+ }, { disabled: r, ...c } = t.getSelectedItemProps({
688
+ disabled: t.disabled || t.readOnly,
689
+ selectedItem: e,
690
+ index: o
1033
691
  });
1034
- const Element = disabled ? "button" : "span";
1035
- return /* @__PURE__ */ jsxs2(
1036
- Element,
692
+ return /* @__PURE__ */ _(
693
+ r ? "button" : "span",
1037
694
  {
1038
695
  role: "presentation",
1039
696
  "data-spark-component": "combobox-selected-item",
1040
- className: cx12(
697
+ className: f(
1041
698
  "h-sz-28 bg-neutral-container flex items-center rounded-md align-middle",
1042
699
  "text-body-2 text-on-neutral-container",
1043
700
  "disabled:opacity-dim-3 disabled:cursor-not-allowed",
1044
701
  "focus-visible:u-outline-inset outline-hidden",
1045
- { "px-md": !isCleanable, "pl-md": isCleanable }
702
+ { "px-md": !n, "pl-md": n }
1046
703
  ),
1047
- ...selectedItemProps,
704
+ ...c,
1048
705
  tabIndex: -1,
1049
- ...disabled && { disabled: true },
1050
- onFocus: handleFocus,
706
+ ...r && { disabled: !0 },
707
+ onFocus: l,
1051
708
  children: [
1052
- /* @__PURE__ */ jsx18(
709
+ /* @__PURE__ */ a(
1053
710
  "span",
1054
711
  {
1055
- className: cx12("line-clamp-1 overflow-x-hidden leading-normal break-all text-ellipsis", {
1056
- "w-max": !ctx.wrap
712
+ className: f("line-clamp-1 overflow-x-hidden leading-normal break-all text-ellipsis", {
713
+ "w-max": !t.wrap
1057
714
  }),
1058
- children: selectedItem.text
715
+ children: e.text
1059
716
  }
1060
717
  ),
1061
- ctx.disabled,
1062
- isCleanable && /* @__PURE__ */ jsx18(
718
+ t.disabled,
719
+ n && /* @__PURE__ */ a(
1063
720
  "button",
1064
721
  {
1065
722
  type: "button",
1066
723
  tabIndex: -1,
1067
- "aria-hidden": true,
724
+ "aria-hidden": !0,
1068
725
  className: "px-md h-full cursor-pointer",
1069
- onClick: (e) => {
1070
- e.stopPropagation();
1071
- const updatedSelectedItems = ctx.selectedItems.filter(
1072
- (item) => item.value !== selectedItem.value
726
+ onClick: (s) => {
727
+ s.stopPropagation();
728
+ const m = t.selectedItems.filter(
729
+ (u) => u.value !== e.value
1073
730
  );
1074
- ctx.setSelectedItems(updatedSelectedItems);
1075
- if (ctx.innerInputRef.current) {
1076
- ctx.innerInputRef.current.focus({ preventScroll: true });
1077
- }
731
+ t.setSelectedItems(m), t.innerInputRef.current && t.innerInputRef.current.focus({ preventScroll: !0 });
1078
732
  },
1079
- children: /* @__PURE__ */ jsx18(Icon, { size: "sm", children: /* @__PURE__ */ jsx18(DeleteOutline2, {}) })
733
+ children: /* @__PURE__ */ a($, { size: "sm", children: /* @__PURE__ */ a(Ae, {}) })
1080
734
  }
1081
735
  )
1082
736
  ]
1083
737
  },
1084
- `selected-item-${index}`
738
+ `selected-item-${o}`
1085
739
  );
740
+ }, ge = () => {
741
+ const e = v();
742
+ return e.multiple && e.selectedItems.length ? /* @__PURE__ */ a(te, { children: e.selectedItems.map((o, t) => /* @__PURE__ */ a(Tt, { item: o, index: t }, o.value)) }) : null;
1086
743
  };
1087
- var SelectedItems = () => {
1088
- const ctx = useComboboxContext();
1089
- return ctx.multiple && ctx.selectedItems.length ? /* @__PURE__ */ jsx18(Fragment4, { children: ctx.selectedItems.map((item, index) => /* @__PURE__ */ jsx18(SelectedItem, { item, index }, item.value)) }) : null;
1090
- };
1091
- SelectedItems.displayName = "Combobox.SelectedItems";
1092
-
1093
- // src/combobox/ComboboxTrigger.tsx
1094
- import { useFormFieldControl as useFormFieldControl3 } from "@spark-ui/components/form-field";
1095
- import { useMergeRefs as useMergeRefs5 } from "@spark-ui/hooks/use-merge-refs";
1096
- import { cx as cx13 } from "class-variance-authority";
1097
- import { Fragment as Fragment5, useEffect as useEffect6, useRef as useRef4 } from "react";
1098
-
1099
- // src/combobox/ComboboxTrigger.styles.tsx
1100
- import { cva as cva2 } from "class-variance-authority";
1101
- var styles2 = cva2(
744
+ ge.displayName = "Combobox.SelectedItems";
745
+ const Pt = Me(
1102
746
  [
1103
747
  "flex items-start gap-md min-h-sz-44 text-body-1",
1104
748
  "h-fit rounded-lg px-lg",
@@ -1126,158 +770,120 @@ var styles2 = cva2(
1126
770
  },
1127
771
  compoundVariants: [
1128
772
  {
1129
- disabled: false,
773
+ disabled: !1,
1130
774
  state: void 0,
1131
775
  class: "default:hover:ring-outline-high"
1132
776
  },
1133
777
  {
1134
- disabled: false,
1135
- readOnly: false,
778
+ disabled: !1,
779
+ readOnly: !1,
1136
780
  class: "bg-surface text-on-surface cursor-text"
1137
781
  }
1138
782
  ],
1139
783
  defaultVariants: {
1140
784
  state: void 0,
1141
- disabled: false,
1142
- readOnly: false
785
+ disabled: !1,
786
+ readOnly: !1
1143
787
  }
1144
788
  }
1145
- );
1146
-
1147
- // src/combobox/utils/useWidthIncreaseCallback.ts
1148
- import { useEffect as useEffect5, useRef as useRef3 } from "react";
1149
- var useWidthIncreaseCallback = (elementRef, callback) => {
1150
- const prevWidthRef = useRef3(null);
1151
- useEffect5(() => {
1152
- const checkWidthIncrease = () => {
1153
- const currentWidth = elementRef.current?.scrollWidth || null;
1154
- if (prevWidthRef.current && currentWidth && currentWidth > prevWidthRef.current) {
1155
- callback();
1156
- }
1157
- prevWidthRef.current = currentWidth;
1158
- requestAnimationFrame(checkWidthIncrease);
1159
- };
1160
- const interval = requestAnimationFrame(checkWidthIncrease);
1161
- return () => cancelAnimationFrame(interval);
1162
- }, [elementRef]);
1163
- };
1164
-
1165
- // src/combobox/ComboboxTrigger.tsx
1166
- import { Fragment as Fragment6, jsx as jsx19, jsxs as jsxs3 } from "react/jsx-runtime";
1167
- var Trigger = ({ className, children, ref: forwardedRef }) => {
1168
- const ctx = useComboboxContext();
1169
- const field = useFormFieldControl3();
1170
- const leadingIcon = findElement(children, "Combobox.LeadingIcon");
1171
- const selectedItems = findElement(children, "Combobox.SelectedItems");
1172
- const input = findElement(children, "Combobox.Input");
1173
- const clearButton = findElement(children, "Combobox.ClearButton");
1174
- const disclosure = findElement(children, "Combobox.Disclosure");
1175
- const [PopoverAnchor, popoverAnchorProps] = ctx.hasPopover ? [Popover.Anchor, { asChild: true, type: void 0 }] : [Fragment5, {}];
1176
- const ref = useMergeRefs5(forwardedRef, ctx.triggerAreaRef);
1177
- const scrollableAreaRef = useRef4(null);
1178
- const disabled = field.disabled || ctx.disabled;
1179
- const readOnly = field.readOnly || ctx.readOnly;
1180
- const hasClearButton = !!clearButton && !disabled && !readOnly;
1181
- const scrollToRight = () => {
1182
- if (scrollableAreaRef.current && !ctx.wrap) {
1183
- const { scrollWidth, clientWidth } = scrollableAreaRef.current;
1184
- scrollableAreaRef.current.scrollLeft = scrollWidth - clientWidth;
789
+ ), St = (e, o) => {
790
+ const t = A(null);
791
+ P(() => {
792
+ const n = () => {
793
+ const r = e.current?.scrollWidth || null;
794
+ t.current && r && r > t.current && o(), t.current = r, requestAnimationFrame(n);
795
+ }, l = requestAnimationFrame(n);
796
+ return () => cancelAnimationFrame(l);
797
+ }, [e]);
798
+ }, he = ({ className: e, children: o, ref: t }) => {
799
+ const n = v(), l = oe(), r = F(o, "Combobox.LeadingIcon"), c = F(o, "Combobox.SelectedItems"), i = F(o, "Combobox.Input"), s = F(o, "Combobox.ClearButton"), m = F(o, "Combobox.Disclosure"), [u, b] = n.hasPopover ? [K.Anchor, { asChild: !0, type: void 0 }] : [se, {}], O = W(t, n.triggerAreaRef), I = A(null), k = l.disabled || n.disabled, x = l.readOnly || n.readOnly, w = !!s && !k && !x, N = () => {
800
+ if (I.current && !n.wrap) {
801
+ const { scrollWidth: h, clientWidth: R } = I.current;
802
+ I.current.scrollLeft = h - R;
1185
803
  }
1186
804
  };
1187
- useWidthIncreaseCallback(scrollableAreaRef, scrollToRight);
1188
- const hasSelectedItems = !!selectedItems;
1189
- useEffect6(() => {
1190
- ctx.setAreSelectedItemsInTrigger(hasSelectedItems);
1191
- }, [hasSelectedItems]);
1192
- useEffect6(() => {
1193
- const resizeObserver = new ResizeObserver(scrollToRight);
1194
- if (scrollableAreaRef.current) {
1195
- resizeObserver.observe(scrollableAreaRef.current);
1196
- }
1197
- return () => {
1198
- resizeObserver.disconnect();
805
+ St(I, N);
806
+ const E = !!c;
807
+ return P(() => {
808
+ n.setAreSelectedItemsInTrigger(E);
809
+ }, [E]), P(() => {
810
+ const h = new ResizeObserver(N);
811
+ return I.current && h.observe(I.current), () => {
812
+ h.disconnect();
1199
813
  };
1200
- }, []);
1201
- return /* @__PURE__ */ jsx19(Fragment6, { children: /* @__PURE__ */ jsx19(PopoverAnchor, { ...popoverAnchorProps, children: /* @__PURE__ */ jsxs3(
814
+ }, []), /* @__PURE__ */ a(te, { children: /* @__PURE__ */ a(u, { ...b, children: /* @__PURE__ */ _(
1202
815
  "div",
1203
816
  {
1204
- ref,
1205
- className: styles2({
1206
- className,
1207
- state: ctx.state,
1208
- disabled,
1209
- readOnly,
1210
- allowWrap: ctx.wrap
817
+ ref: O,
818
+ className: Pt({
819
+ className: e,
820
+ state: n.state,
821
+ disabled: k,
822
+ readOnly: x,
823
+ allowWrap: n.wrap
1211
824
  }),
1212
825
  onClick: () => {
1213
- if (!ctx.isOpen && !disabled && !readOnly) {
1214
- ctx.openMenu();
1215
- if (ctx.innerInputRef.current) {
1216
- ctx.innerInputRef.current.focus();
1217
- }
1218
- }
826
+ !n.isOpen && !k && !x && (n.openMenu(), n.innerInputRef.current && n.innerInputRef.current.focus());
1219
827
  },
1220
828
  children: [
1221
- leadingIcon,
1222
- /* @__PURE__ */ jsxs3(
829
+ r,
830
+ /* @__PURE__ */ _(
1223
831
  "div",
1224
832
  {
1225
- ref: scrollableAreaRef,
1226
- className: cx13(
833
+ ref: I,
834
+ className: f(
1227
835
  "min-w-none gap-sm py-md inline-flex grow items-start",
1228
- ctx.wrap ? "flex-wrap" : "u-no-scrollbar overflow-x-auto p-[2px]"
836
+ n.wrap ? "flex-wrap" : "u-no-scrollbar overflow-x-auto p-[2px]"
1229
837
  ),
1230
838
  children: [
1231
- selectedItems,
1232
- input
839
+ c,
840
+ i
1233
841
  ]
1234
842
  }
1235
843
  ),
1236
- hasClearButton && clearButton,
1237
- disclosure
844
+ w && s,
845
+ m
1238
846
  ]
1239
847
  }
1240
848
  ) }) });
1241
849
  };
1242
- Trigger.displayName = "Combobox.Trigger";
1243
-
1244
- // src/combobox/index.ts
1245
- var Combobox2 = Object.assign(Combobox, {
1246
- Group,
1247
- Item,
1248
- Items,
1249
- ItemText,
1250
- ItemIndicator,
1251
- Label,
1252
- Popover: Popover2,
1253
- Trigger,
1254
- LeadingIcon,
1255
- Empty,
1256
- Input,
1257
- Disclosure,
1258
- SelectedItems,
1259
- ClearButton,
1260
- Portal
850
+ he.displayName = "Combobox.Trigger";
851
+ const Ot = Object.assign(Ge, {
852
+ Group: ce,
853
+ Item: me,
854
+ Items: be,
855
+ ItemText: fe,
856
+ ItemIndicator: pe,
857
+ Label: Ie,
858
+ Popover: ye,
859
+ Trigger: he,
860
+ LeadingIcon: xe,
861
+ Empty: ie,
862
+ Input: de,
863
+ Disclosure: ae,
864
+ SelectedItems: ge,
865
+ ClearButton: le,
866
+ Portal: Ce
1261
867
  });
1262
- Combobox2.displayName = "Combobox";
1263
- Group.displayName = "Combobox.Group";
1264
- Items.displayName = "Combobox.Items";
1265
- Item.displayName = "Combobox.Item";
1266
- ItemText.displayName = "Combobox.ItemText";
1267
- ItemIndicator.displayName = "Combobox.ItemIndicator";
1268
- Label.displayName = "Combobox.Label";
1269
- Popover2.displayName = "Combobox.Popover";
1270
- Trigger.displayName = "Combobox.Trigger";
1271
- LeadingIcon.displayName = "Combobox.LeadingIcon";
1272
- Empty.displayName = "Combobox.Empty";
1273
- Input.displayName = "Combobox.Input";
1274
- Disclosure.displayName = "Combobox.Disclosure";
1275
- SelectedItems.displayName = "Combobox.SelectedItems";
1276
- ClearButton.displayName = "Combobox.ClearButton";
1277
- Portal.displayName = "Combobox.Portal";
868
+ Ot.displayName = "Combobox";
869
+ ce.displayName = "Combobox.Group";
870
+ be.displayName = "Combobox.Items";
871
+ me.displayName = "Combobox.Item";
872
+ fe.displayName = "Combobox.ItemText";
873
+ pe.displayName = "Combobox.ItemIndicator";
874
+ Ie.displayName = "Combobox.Label";
875
+ ye.displayName = "Combobox.Popover";
876
+ he.displayName = "Combobox.Trigger";
877
+ xe.displayName = "Combobox.LeadingIcon";
878
+ ie.displayName = "Combobox.Empty";
879
+ de.displayName = "Combobox.Input";
880
+ ae.displayName = "Combobox.Disclosure";
881
+ ge.displayName = "Combobox.SelectedItems";
882
+ le.displayName = "Combobox.ClearButton";
883
+ Ce.displayName = "Combobox.Portal";
1278
884
  export {
1279
- Combobox2 as Combobox,
1280
- ComboboxProvider,
1281
- useComboboxContext
885
+ Ot as Combobox,
886
+ Ct as ComboboxProvider,
887
+ v as useComboboxContext
1282
888
  };
1283
- //# sourceMappingURL=index.mjs.map
889
+ //# sourceMappingURL=index.mjs.map