@spark-ui/components 13.0.6 → 13.1.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 (827) hide show
  1. package/dist/Button-C3xHNaGl.js +2 -0
  2. package/dist/Button-C3xHNaGl.js.map +1 -0
  3. package/dist/{chunk-2YM6GKWW.mjs → Button-D32Avk2j.mjs} +130 -173
  4. package/dist/Button-D32Avk2j.mjs.map +1 -0
  5. package/dist/DialogContent.styles-BrhKaHc_.js +2 -0
  6. package/dist/DialogContent.styles-BrhKaHc_.js.map +1 -0
  7. package/dist/{chunk-XZ47F6TP.mjs → DialogContent.styles-WGWJS9dj.mjs} +6 -8
  8. package/dist/DialogContent.styles-WGWJS9dj.mjs.map +1 -0
  9. package/dist/Icon-Bf0XrmiR.js +2 -0
  10. package/dist/Icon-Bf0XrmiR.js.map +1 -0
  11. package/dist/Icon-D1RueiPY.mjs +58 -0
  12. package/dist/Icon-D1RueiPY.mjs.map +1 -0
  13. package/dist/IconButton-BY3gYXtU.mjs +43 -0
  14. package/dist/IconButton-BY3gYXtU.mjs.map +1 -0
  15. package/dist/IconButton-Bf-EDzpI.js +2 -0
  16. package/dist/IconButton-Bf-EDzpI.js.map +1 -0
  17. package/dist/Slot-C98rL4yy.mjs +14 -0
  18. package/dist/Slot-C98rL4yy.mjs.map +1 -0
  19. package/dist/Slot-ghrohQLA.js +2 -0
  20. package/dist/Slot-ghrohQLA.js.map +1 -0
  21. package/dist/{chunk-GAK4SC2F.mjs → Spinner-CYL5kyzM.mjs} +29 -40
  22. package/dist/Spinner-CYL5kyzM.mjs.map +1 -0
  23. package/dist/Spinner-DK8VEsaR.js +2 -0
  24. package/dist/Spinner-DK8VEsaR.js.map +1 -0
  25. package/dist/{chunk-RKPP7ZOK.mjs → TextLink-3MEVs3No.mjs} +27 -36
  26. package/dist/TextLink-3MEVs3No.mjs.map +1 -0
  27. package/dist/TextLink-DD0VO37q.js +2 -0
  28. package/dist/TextLink-DD0VO37q.js.map +1 -0
  29. package/dist/VisuallyHidden-AoRh4WRK.js +2 -0
  30. package/dist/VisuallyHidden-AoRh4WRK.js.map +1 -0
  31. package/dist/VisuallyHidden-ByNP7ZUI.mjs +28 -0
  32. package/dist/VisuallyHidden-ByNP7ZUI.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.ts +10 -68
  39. package/dist/accordion/index.js +2 -325
  40. package/dist/accordion/index.js.map +1 -1
  41. package/dist/accordion/index.mjs +632 -154
  42. package/dist/accordion/index.mjs.map +1 -1
  43. package/dist/accordion/useRenderSlot.d.ts +3 -0
  44. package/dist/alert-dialog/AlertDialog.d.ts +29 -0
  45. package/dist/alert-dialog/AlertDialogAction.d.ts +13 -0
  46. package/dist/alert-dialog/AlertDialogBody.d.ts +12 -0
  47. package/dist/alert-dialog/AlertDialogCancel.d.ts +13 -0
  48. package/dist/alert-dialog/AlertDialogContent.d.ts +9 -0
  49. package/dist/alert-dialog/AlertDialogContext.d.ts +12 -0
  50. package/dist/alert-dialog/AlertDialogDescription.d.ts +9 -0
  51. package/dist/alert-dialog/AlertDialogFooter.d.ts +10 -0
  52. package/dist/alert-dialog/AlertDialogHeader.d.ts +10 -0
  53. package/dist/alert-dialog/AlertDialogOverlay.d.ts +9 -0
  54. package/dist/alert-dialog/AlertDialogPortal.d.ts +7 -0
  55. package/dist/alert-dialog/AlertDialogTitle.d.ts +9 -0
  56. package/dist/alert-dialog/AlertDialogTrigger.d.ts +13 -0
  57. package/dist/alert-dialog/index.d.ts +26 -147
  58. package/dist/alert-dialog/index.js +35 -405
  59. package/dist/alert-dialog/index.js.map +1 -1
  60. package/dist/alert-dialog/index.mjs +2513 -258
  61. package/dist/alert-dialog/index.mjs.map +1 -1
  62. package/dist/alert-dialog/useRenderSlot.d.ts +3 -0
  63. package/dist/avatar/Avatar.d.ts +3 -0
  64. package/dist/avatar/AvatarAction.d.ts +9 -0
  65. package/dist/avatar/AvatarImage.d.ts +7 -0
  66. package/dist/avatar/AvatarOnlineBadge.d.ts +9 -0
  67. package/dist/avatar/AvatarPlaceholder.d.ts +8 -0
  68. package/dist/avatar/AvatarUser.d.ts +7 -0
  69. package/dist/avatar/context.d.ts +5 -0
  70. package/dist/avatar/index.d.ts +8 -59
  71. package/dist/avatar/index.js +2 -1323
  72. package/dist/avatar/index.js.map +1 -1
  73. package/dist/avatar/index.mjs +149 -207
  74. package/dist/avatar/index.mjs.map +1 -1
  75. package/dist/avatar/types.d.ts +24 -0
  76. package/dist/badge/Badge.d.ts +9 -0
  77. package/dist/badge/BadgeItem.d.ts +31 -0
  78. package/dist/badge/BadgeItem.styles.d.ts +7 -0
  79. package/dist/badge/index.d.ts +1 -47
  80. package/dist/badge/index.js +2 -122
  81. package/dist/badge/index.js.map +1 -1
  82. package/dist/badge/index.mjs +32 -44
  83. package/dist/badge/index.mjs.map +1 -1
  84. package/dist/breadcrumb/Breadcrumb.d.ts +10 -0
  85. package/dist/breadcrumb/Breadcrumb.styles.d.ts +0 -0
  86. package/dist/breadcrumb/BreadcrumbCurrentPage.d.ts +11 -0
  87. package/dist/breadcrumb/BreadcrumbItem.d.ts +9 -0
  88. package/dist/breadcrumb/BreadcrumbLink.d.ts +12 -0
  89. package/dist/breadcrumb/BreadcrumbSeparator.d.ts +10 -0
  90. package/dist/breadcrumb/index.d.ts +7 -59
  91. package/dist/breadcrumb/index.js +2 -327
  92. package/dist/breadcrumb/index.js.map +1 -1
  93. package/dist/breadcrumb/index.mjs +106 -146
  94. package/dist/breadcrumb/index.mjs.map +1 -1
  95. package/dist/button/Button.d.ts +26 -0
  96. package/dist/button/Button.styles.d.ts +10 -0
  97. package/dist/button/index.d.ts +1 -41
  98. package/dist/button/index.js +2 -935
  99. package/dist/button/index.js.map +1 -1
  100. package/dist/button/index.mjs +3 -8
  101. package/dist/button/index.mjs.map +1 -1
  102. package/dist/button/variants/contrast.d.ts +45 -0
  103. package/dist/button/variants/filled.d.ts +45 -0
  104. package/dist/button/variants/ghost.d.ts +45 -0
  105. package/dist/button/variants/index.d.ts +5 -0
  106. package/dist/button/variants/outlined.d.ts +45 -0
  107. package/dist/button/variants/tinted.d.ts +45 -0
  108. package/dist/card/Backdrop.d.ts +14 -0
  109. package/dist/card/Card.d.ts +16 -0
  110. package/dist/card/Card.styles.d.ts +7 -0
  111. package/dist/card/Content.d.ts +15 -0
  112. package/dist/card/Content.styles.d.ts +8 -0
  113. package/dist/card/context.d.ts +11 -0
  114. package/dist/card/index.d.ts +5 -58
  115. package/dist/card/index.js +2 -502
  116. package/dist/card/index.js.map +1 -1
  117. package/dist/card/index.mjs +125 -178
  118. package/dist/card/index.mjs.map +1 -1
  119. package/dist/card/utils.d.ts +3 -0
  120. package/dist/carousel/Carousel.d.ts +12 -0
  121. package/dist/carousel/CarouselControls.d.ts +9 -0
  122. package/dist/carousel/CarouselNextButton.d.ts +5 -0
  123. package/dist/carousel/CarouselPageIndicator.d.ts +14 -0
  124. package/dist/carousel/CarouselPagePicker.d.ts +14 -0
  125. package/dist/carousel/CarouselPrevButton.d.ts +5 -0
  126. package/dist/carousel/CarouselSlide.d.ts +12 -0
  127. package/dist/carousel/CarouselSlides.d.ts +10 -0
  128. package/dist/carousel/CarouselViewport.d.ts +9 -0
  129. package/dist/carousel/index.d.ts +18 -263
  130. package/dist/carousel/index.js +2 -1882
  131. package/dist/carousel/index.js.map +1 -1
  132. package/dist/carousel/index.mjs +428 -650
  133. package/dist/carousel/index.mjs.map +1 -1
  134. package/dist/carousel/{index.d.mts → types.d.ts} +13 -112
  135. package/dist/carousel/useCarousel.d.ts +2 -0
  136. package/dist/carousel/useCarouselVisibility.d.ts +13 -0
  137. package/dist/carousel/useEvent.d.ts +7 -0
  138. package/dist/carousel/useIsMounted.d.ts +1 -0
  139. package/dist/carousel/useIsVisible.d.ts +6 -0
  140. package/dist/carousel/useResizeObserver.d.ts +2 -0
  141. package/dist/carousel/useScrollEnd.d.ts +3 -0
  142. package/dist/carousel/useSnapPoints.d.ts +10 -0
  143. package/dist/carousel/utils.d.ts +24 -0
  144. package/dist/checkbox/Checkbox.d.ts +10 -0
  145. package/dist/checkbox/CheckboxGroup.d.ts +18 -0
  146. package/dist/checkbox/CheckboxGroup.styles.d.ts +5 -0
  147. package/dist/checkbox/CheckboxGroupContext.d.ts +41 -0
  148. package/dist/checkbox/CheckboxIndicator.d.ts +9 -0
  149. package/dist/checkbox/CheckboxInput.d.ts +47 -0
  150. package/dist/checkbox/CheckboxInput.styles.d.ts +5 -0
  151. package/dist/checkbox/CheckboxLabel.d.ts +12 -0
  152. package/dist/checkbox/CheckboxLabel.styles.d.ts +5 -0
  153. package/dist/checkbox/index.d.ts +2 -120
  154. package/dist/checkbox/index.js +2 -511
  155. package/dist/checkbox/index.js.map +1 -1
  156. package/dist/checkbox/index.mjs +371 -226
  157. package/dist/checkbox/index.mjs.map +1 -1
  158. package/dist/chip/Chip.d.ts +34 -0
  159. package/dist/chip/Chip.styles.d.ts +8 -0
  160. package/dist/chip/ChipClearButton.d.ts +10 -0
  161. package/dist/chip/ChipClearButton.styles.d.ts +10 -0
  162. package/dist/chip/ChipContent.d.ts +8 -0
  163. package/dist/chip/ChipIcon.d.ts +8 -0
  164. package/dist/chip/ChipLeadingIcon.d.ts +9 -0
  165. package/dist/chip/ChipTrailingIcon.d.ts +9 -0
  166. package/dist/chip/index.d.ts +10 -92
  167. package/dist/chip/index.js +2 -908
  168. package/dist/chip/index.js.map +1 -1
  169. package/dist/chip/index.mjs +390 -322
  170. package/dist/chip/index.mjs.map +1 -1
  171. package/dist/chip/useChipContext.d.ts +4 -0
  172. package/dist/chip/useChipElement.d.ts +41 -0
  173. package/dist/chip/variants/dashed.d.ts +49 -0
  174. package/dist/chip/variants/index.d.ts +3 -0
  175. package/dist/chip/variants/outlined.d.ts +49 -0
  176. package/dist/chip/variants/tinted.d.ts +49 -0
  177. package/dist/collapsible/Content.d.ts +12 -0
  178. package/dist/collapsible/Root.d.ts +12 -0
  179. package/dist/collapsible/Trigger.d.ts +11 -0
  180. package/dist/collapsible/index.d.ts +4 -40
  181. package/dist/collapsible/index.js +2 -109
  182. package/dist/collapsible/index.js.map +1 -1
  183. package/dist/collapsible/index.mjs +214 -58
  184. package/dist/collapsible/index.mjs.map +1 -1
  185. package/dist/collapsible/useRenderSlot.d.ts +3 -0
  186. package/dist/combobox/Combobox.d.ts +6 -0
  187. package/dist/combobox/ComboboxClearButton.d.ts +9 -0
  188. package/dist/combobox/ComboboxContext.d.ts +108 -0
  189. package/dist/combobox/ComboboxDisclosure.d.ts +13 -0
  190. package/dist/combobox/ComboboxEmpty.d.ts +11 -0
  191. package/dist/combobox/ComboboxGroup.d.ts +11 -0
  192. package/dist/combobox/ComboboxInput.d.ts +15 -0
  193. package/dist/combobox/ComboboxItem.d.ts +12 -0
  194. package/dist/combobox/ComboboxItemContext.d.ts +17 -0
  195. package/dist/combobox/ComboboxItemIndicator.d.ts +11 -0
  196. package/dist/combobox/ComboboxItemText.d.ts +10 -0
  197. package/dist/combobox/ComboboxItems.d.ts +11 -0
  198. package/dist/combobox/ComboboxItemsGroupContext.d.ts +8 -0
  199. package/dist/combobox/ComboboxLabel.d.ts +11 -0
  200. package/dist/combobox/ComboboxLeadingIcon.d.ts +7 -0
  201. package/dist/combobox/ComboboxPopover.d.ts +10 -0
  202. package/dist/combobox/ComboboxPortal.d.ts +2 -0
  203. package/dist/combobox/ComboboxSelectedItems.d.ts +4 -0
  204. package/dist/combobox/ComboboxTrigger.d.ts +11 -0
  205. package/dist/combobox/ComboboxTrigger.styles.d.ts +6 -0
  206. package/dist/combobox/index.d.ts +19 -271
  207. package/dist/combobox/index.js +2 -2588
  208. package/dist/combobox/index.js.map +1 -1
  209. package/dist/combobox/index.mjs +623 -1017
  210. package/dist/combobox/index.mjs.map +1 -1
  211. package/dist/combobox/tests/test-utils.d.ts +8 -0
  212. package/dist/combobox/types.d.ts +8 -0
  213. package/dist/combobox/useCombobox/multipleSelectionReducer.d.ts +13 -0
  214. package/dist/combobox/useCombobox/singleSelectionReducer.d.ts +8 -0
  215. package/dist/combobox/utils/index.d.ts +14 -0
  216. package/dist/combobox/utils/useWidthIncreaseCallback.d.ts +2 -0
  217. package/dist/composite-Br3kM5N9.mjs +40 -0
  218. package/dist/composite-Br3kM5N9.mjs.map +1 -0
  219. package/dist/composite-fJD9R7R0.js +2 -0
  220. package/dist/composite-fJD9R7R0.js.map +1 -0
  221. package/dist/detectBrowser-Bc7rk5fI.mjs +44 -0
  222. package/dist/detectBrowser-Bc7rk5fI.mjs.map +1 -0
  223. package/dist/detectBrowser-DTbs_30X.js +2 -0
  224. package/dist/detectBrowser-DTbs_30X.js.map +1 -0
  225. package/dist/dialog/Dialog.d.ts +32 -0
  226. package/dist/dialog/DialogBody.d.ts +12 -0
  227. package/dist/dialog/DialogClose.d.ts +9 -0
  228. package/dist/dialog/DialogCloseButton.d.ts +9 -0
  229. package/dist/dialog/DialogContent.d.ts +14 -0
  230. package/dist/dialog/DialogContent.styles.d.ts +6 -0
  231. package/dist/dialog/DialogContext.d.ts +11 -0
  232. package/dist/dialog/DialogDescription.d.ts +9 -0
  233. package/dist/dialog/DialogFooter.d.ts +10 -0
  234. package/dist/dialog/DialogHeader.d.ts +10 -0
  235. package/dist/dialog/DialogOverlay.d.ts +9 -0
  236. package/dist/dialog/DialogPortal.d.ts +7 -0
  237. package/dist/dialog/DialogTitle.d.ts +9 -0
  238. package/dist/dialog/DialogTrigger.d.ts +17 -0
  239. package/dist/dialog/index.d.ts +25 -154
  240. package/dist/dialog/index.js +2 -1389
  241. package/dist/dialog/index.js.map +1 -1
  242. package/dist/dialog/index.mjs +163 -258
  243. package/dist/dialog/index.mjs.map +1 -1
  244. package/dist/divider/Divider.d.ts +30 -0
  245. package/dist/divider/Divider.styles.d.ts +9 -0
  246. package/dist/divider/DividerContent.d.ts +13 -0
  247. package/dist/divider/index.d.ts +4 -59
  248. package/dist/divider/index.js +2 -224
  249. package/dist/divider/index.js.map +1 -1
  250. package/dist/divider/index.mjs +97 -100
  251. package/dist/divider/index.mjs.map +1 -1
  252. package/dist/divider/variants/intents.d.ts +17 -0
  253. package/dist/downshift.esm-Ncwetv0s.mjs +3038 -0
  254. package/dist/downshift.esm-Ncwetv0s.mjs.map +1 -0
  255. package/dist/downshift.esm-PfCOUbxq.js +37 -0
  256. package/dist/downshift.esm-PfCOUbxq.js.map +1 -0
  257. package/dist/drawer/Drawer.d.ts +39 -0
  258. package/dist/drawer/DrawerBody.d.ts +11 -0
  259. package/dist/drawer/DrawerBody.styles.d.ts +5 -0
  260. package/dist/drawer/DrawerClose.d.ts +9 -0
  261. package/dist/drawer/DrawerCloseButton.d.ts +7 -0
  262. package/dist/drawer/DrawerContent.d.ts +10 -0
  263. package/dist/drawer/DrawerContent.styles.d.ts +6 -0
  264. package/dist/drawer/DrawerContext.d.ts +9 -0
  265. package/dist/drawer/DrawerDescription.d.ts +9 -0
  266. package/dist/drawer/DrawerFooter.d.ts +8 -0
  267. package/dist/drawer/DrawerHeader.d.ts +10 -0
  268. package/dist/drawer/DrawerOverlay.d.ts +9 -0
  269. package/dist/drawer/DrawerPortal.d.ts +7 -0
  270. package/dist/drawer/DrawerTitle.d.ts +9 -0
  271. package/dist/drawer/DrawerTrigger.d.ts +13 -0
  272. package/dist/drawer/index.d.ts +24 -141
  273. package/dist/drawer/index.js +2 -1400
  274. package/dist/drawer/index.js.map +1 -1
  275. package/dist/drawer/index.mjs +141 -230
  276. package/dist/drawer/index.mjs.map +1 -1
  277. package/dist/dropdown/Dropdown.d.ts +6 -0
  278. package/dist/dropdown/DropdownContext.d.ts +81 -0
  279. package/dist/dropdown/DropdownDivider.d.ts +10 -0
  280. package/dist/dropdown/DropdownGroup.d.ts +11 -0
  281. package/dist/dropdown/DropdownItem.d.ts +12 -0
  282. package/dist/dropdown/DropdownItemContext.d.ts +17 -0
  283. package/dist/dropdown/DropdownItemIndicator.d.ts +11 -0
  284. package/dist/dropdown/DropdownItemText.d.ts +9 -0
  285. package/dist/dropdown/DropdownItems.d.ts +21 -0
  286. package/dist/dropdown/DropdownItemsGroupContext.d.ts +8 -0
  287. package/dist/dropdown/DropdownLabel.d.ts +11 -0
  288. package/dist/dropdown/DropdownLeadingIcon.d.ts +7 -0
  289. package/dist/dropdown/DropdownPopover.d.ts +6 -0
  290. package/dist/dropdown/DropdownPortal.d.ts +2 -0
  291. package/dist/dropdown/DropdownTrigger.d.ts +12 -0
  292. package/dist/dropdown/DropdownTrigger.styles.d.ts +5 -0
  293. package/dist/dropdown/DropdownValue.d.ts +11 -0
  294. package/dist/dropdown/index.d.ts +16 -220
  295. package/dist/dropdown/index.js +2 -2051
  296. package/dist/dropdown/index.js.map +1 -1
  297. package/dist/dropdown/index.mjs +352 -584
  298. package/dist/dropdown/index.mjs.map +1 -1
  299. package/dist/dropdown/types.d.ts +8 -0
  300. package/dist/dropdown/useDropdown.d.ts +41 -0
  301. package/dist/dropdown/utils.d.ts +13 -0
  302. package/dist/file-upload/FileUpload.d.ts +130 -0
  303. package/dist/file-upload/FileUploadAcceptedFile.d.ts +25 -0
  304. package/dist/file-upload/FileUploadContext.d.ts +17 -0
  305. package/dist/file-upload/FileUploadDropzone.d.ts +10 -0
  306. package/dist/file-upload/FileUploadItemDeleteTrigger.d.ts +11 -0
  307. package/dist/file-upload/FileUploadPreviewImage.d.ts +17 -0
  308. package/dist/file-upload/FileUploadRejectedFile.d.ts +24 -0
  309. package/dist/file-upload/FileUploadRejectedFileDeleteTrigger.d.ts +12 -0
  310. package/dist/file-upload/FileUploadTrigger.d.ts +12 -0
  311. package/dist/file-upload/constants.d.ts +29 -0
  312. package/dist/file-upload/index.d.ts +14 -262
  313. package/dist/file-upload/index.js +2 -2255
  314. package/dist/file-upload/index.js.map +1 -1
  315. package/dist/file-upload/index.mjs +506 -834
  316. package/dist/file-upload/index.mjs.map +1 -1
  317. package/dist/file-upload/test-utils.d.ts +9 -0
  318. package/dist/file-upload/useFileUploadState.d.ts +88 -0
  319. package/dist/file-upload/utils.d.ts +40 -0
  320. package/dist/floating-ui.utils.dom-CCN4I08l.js +2 -0
  321. package/dist/floating-ui.utils.dom-CCN4I08l.js.map +1 -0
  322. package/dist/floating-ui.utils.dom-uiDUZc_y.mjs +136 -0
  323. package/dist/floating-ui.utils.dom-uiDUZc_y.mjs.map +1 -0
  324. package/dist/form-field/FormField.d.ts +21 -0
  325. package/dist/form-field/FormFieldAlertMessage.d.ts +9 -0
  326. package/dist/form-field/FormFieldCharactersCount.d.ts +26 -0
  327. package/dist/form-field/FormFieldContext.d.ts +49 -0
  328. package/dist/form-field/FormFieldControl.d.ts +12 -0
  329. package/dist/form-field/FormFieldErrorMessage.d.ts +9 -0
  330. package/dist/form-field/FormFieldHelperMessage.d.ts +9 -0
  331. package/dist/form-field/FormFieldLabel.d.ts +13 -0
  332. package/dist/form-field/FormFieldMessage.d.ts +8 -0
  333. package/dist/form-field/FormFieldProvider.d.ts +9 -0
  334. package/dist/form-field/FormFieldRequiredIndicator.d.ts +9 -0
  335. package/dist/form-field/FormFieldStateMessage.d.ts +10 -0
  336. package/dist/form-field/FormFieldSuccessMessage.d.ts +9 -0
  337. package/dist/form-field/index.d.ts +21 -176
  338. package/dist/form-field/index.js +2 -553
  339. package/dist/form-field/index.js.map +1 -1
  340. package/dist/form-field/index.mjs +246 -349
  341. package/dist/form-field/index.mjs.map +1 -1
  342. package/dist/icon/Icon.d.ts +17 -0
  343. package/dist/icon/Icon.styles.d.ts +6 -0
  344. package/dist/icon/index.d.ts +1 -28
  345. package/dist/icon/index.js +2 -127
  346. package/dist/icon/index.js.map +1 -1
  347. package/dist/icon/index.mjs +3 -7
  348. package/dist/icon/index.mjs.map +1 -1
  349. package/dist/icon-button/IconButton.d.ts +10 -0
  350. package/dist/icon-button/IconButton.styles.d.ts +5 -0
  351. package/dist/icon-button/index.d.ts +1 -16
  352. package/dist/icon-button/index.js +2 -980
  353. package/dist/icon-button/index.js.map +1 -1
  354. package/dist/icon-button/index.mjs +3 -9
  355. package/dist/icon-button/index.mjs.map +1 -1
  356. package/dist/index-0KYGKeVg.js +2 -0
  357. package/dist/index-0KYGKeVg.js.map +1 -0
  358. package/dist/index-1WIgmEZh.js +2 -0
  359. package/dist/index-1WIgmEZh.js.map +1 -0
  360. package/dist/index-BRi38DTc.mjs +21 -0
  361. package/dist/index-BRi38DTc.mjs.map +1 -0
  362. package/dist/index-BZAtNKwE.mjs +71 -0
  363. package/dist/index-BZAtNKwE.mjs.map +1 -0
  364. package/dist/index-BZPx6jYI.mjs +9 -0
  365. package/dist/index-BZPx6jYI.mjs.map +1 -0
  366. package/dist/index-BlkdpEIe.mjs +55 -0
  367. package/dist/index-BlkdpEIe.mjs.map +1 -0
  368. package/dist/index-BmAFn37q.mjs +49 -0
  369. package/dist/index-BmAFn37q.mjs.map +1 -0
  370. package/dist/index-C-J_tHdS.js +6 -0
  371. package/dist/index-C-J_tHdS.js.map +1 -0
  372. package/dist/index-C1qb0595.mjs +28 -0
  373. package/dist/index-C1qb0595.mjs.map +1 -0
  374. package/dist/index-C34GgsKQ.mjs +54 -0
  375. package/dist/index-C34GgsKQ.mjs.map +1 -0
  376. package/dist/index-CCKe-Mpx.mjs +7 -0
  377. package/dist/index-CCKe-Mpx.mjs.map +1 -0
  378. package/dist/index-CDBBjNXc.js +2 -0
  379. package/dist/index-CDBBjNXc.js.map +1 -0
  380. package/dist/index-CYjGhVvU.mjs +243 -0
  381. package/dist/index-CYjGhVvU.mjs.map +1 -0
  382. package/dist/index-ChLwd62c.js +2 -0
  383. package/dist/index-ChLwd62c.js.map +1 -0
  384. package/dist/index-Cjj_rUPu.js +2 -0
  385. package/dist/index-Cjj_rUPu.js.map +1 -0
  386. package/dist/index-CyMbLkj0.js +2 -0
  387. package/dist/index-CyMbLkj0.js.map +1 -0
  388. package/dist/index-DFZozV_h.mjs +69 -0
  389. package/dist/index-DFZozV_h.mjs.map +1 -0
  390. package/dist/index-DKuHkHFX.js +2 -0
  391. package/dist/index-DKuHkHFX.js.map +1 -0
  392. package/dist/index-DLHLIYPI.mjs +16 -0
  393. package/dist/index-DLHLIYPI.mjs.map +1 -0
  394. package/dist/index-DO-atGp-.js +2 -0
  395. package/dist/index-DO-atGp-.js.map +1 -0
  396. package/dist/index-DWlg8lkk.mjs +179 -0
  397. package/dist/index-DWlg8lkk.mjs.map +1 -0
  398. package/dist/index-DYxWvftI.js +2 -0
  399. package/dist/index-DYxWvftI.js.map +1 -0
  400. package/dist/index-D_lWkK39.mjs +803 -0
  401. package/dist/index-D_lWkK39.mjs.map +1 -0
  402. package/dist/index-DdkVj7D0.js +18 -0
  403. package/dist/index-DdkVj7D0.js.map +1 -0
  404. package/dist/index-De-6atSi.js +2 -0
  405. package/dist/index-De-6atSi.js.map +1 -0
  406. package/dist/index-DhGWNzsz.mjs +83 -0
  407. package/dist/index-DhGWNzsz.mjs.map +1 -0
  408. package/dist/index-Dkj4QRX8.js +2 -0
  409. package/dist/index-Dkj4QRX8.js.map +1 -0
  410. package/dist/index-DlIFg0Eu.mjs +60 -0
  411. package/dist/index-DlIFg0Eu.mjs.map +1 -0
  412. package/dist/index-DnaHaH_0.js +2 -0
  413. package/dist/index-DnaHaH_0.js.map +1 -0
  414. package/dist/index-MHF2-CYX.js +2 -0
  415. package/dist/index-MHF2-CYX.js.map +1 -0
  416. package/dist/index-MQ0c3ZX_.js +2 -0
  417. package/dist/index-MQ0c3ZX_.js.map +1 -0
  418. package/dist/index-MSR-vgWR.mjs +37 -0
  419. package/dist/index-MSR-vgWR.mjs.map +1 -0
  420. package/dist/index-VL0YEmOW.mjs +125 -0
  421. package/dist/index-VL0YEmOW.mjs.map +1 -0
  422. package/dist/index-tXqxYME3.js +42 -0
  423. package/dist/index-tXqxYME3.js.map +1 -0
  424. package/dist/inertValue-Bif5Sqs6.mjs +522 -0
  425. package/dist/inertValue-Bif5Sqs6.mjs.map +1 -0
  426. package/dist/inertValue-ShwihJSN.js +5 -0
  427. package/dist/inertValue-ShwihJSN.js.map +1 -0
  428. package/dist/input/Input.d.ts +14 -0
  429. package/dist/input/Input.styles.d.ts +11 -0
  430. package/dist/input/InputAddon.d.ts +9 -0
  431. package/dist/input/InputAddon.styles.d.ts +9 -0
  432. package/dist/input/InputClearButton.d.ts +12 -0
  433. package/dist/input/InputGroup.d.ts +17 -0
  434. package/dist/input/InputGroup.styles.d.ts +6 -0
  435. package/dist/input/InputGroupContext.d.ts +14 -0
  436. package/dist/input/InputIcon.d.ts +6 -0
  437. package/dist/input/InputLeadingAddon.d.ts +11 -0
  438. package/dist/input/InputLeadingIcon.d.ts +7 -0
  439. package/dist/input/InputTrailingAddon.d.ts +11 -0
  440. package/dist/input/InputTrailingIcon.d.ts +7 -0
  441. package/dist/input/index.d.ts +15 -72
  442. package/dist/input/index.js +2 -724
  443. package/dist/input/index.js.map +1 -1
  444. package/dist/input/index.mjs +453 -12
  445. package/dist/input/index.mjs.map +1 -1
  446. package/dist/input-otp/InputOTP.d.ts +85 -0
  447. package/dist/input-otp/InputOTP.styles.d.ts +10 -0
  448. package/dist/input-otp/InputOTPContext.d.ts +16 -0
  449. package/dist/input-otp/InputOTPGroup.d.ts +7 -0
  450. package/dist/input-otp/InputOTPSeparator.d.ts +7 -0
  451. package/dist/input-otp/InputOTPSlot.d.ts +12 -0
  452. package/dist/input-otp/index.d.ts +14 -0
  453. package/dist/input-otp/index.js +2 -0
  454. package/dist/input-otp/index.js.map +1 -0
  455. package/dist/input-otp/index.mjs +390 -0
  456. package/dist/input-otp/index.mjs.map +1 -0
  457. package/dist/input-otp/useInputOTP.d.ts +45 -0
  458. package/dist/kbd/Kbd.d.ts +5 -0
  459. package/dist/kbd/index.d.ts +1 -9
  460. package/dist/kbd/index.js +2 -47
  461. package/dist/kbd/index.js.map +1 -1
  462. package/dist/kbd/index.mjs +15 -18
  463. package/dist/kbd/index.mjs.map +1 -1
  464. package/dist/label/Label.d.ts +9 -0
  465. package/dist/label/LabelRequiredIndicator.d.ts +6 -0
  466. package/dist/label/index.d.ts +5 -9
  467. package/dist/label/index.js +2 -78
  468. package/dist/label/index.js.map +1 -1
  469. package/dist/label/index.mjs +3 -5
  470. package/dist/label/index.mjs.map +1 -1
  471. package/dist/link-box/LinkBox.d.ts +8 -0
  472. package/dist/link-box/LinkBoxLink.d.ts +8 -0
  473. package/dist/link-box/LinkBoxRaised.d.ts +9 -0
  474. package/dist/link-box/index.d.ts +6 -31
  475. package/dist/link-box/index.js +2 -92
  476. package/dist/link-box/index.js.map +1 -1
  477. package/dist/link-box/index.mjs +34 -56
  478. package/dist/link-box/index.mjs.map +1 -1
  479. package/dist/pagination/Pagination.d.ts +8 -0
  480. package/dist/pagination/PaginationContext.d.ts +43 -0
  481. package/dist/pagination/PaginationEllipsis.d.ts +9 -0
  482. package/dist/pagination/PaginationFirstPageTrigger.d.ts +16 -0
  483. package/dist/pagination/PaginationItem.d.ts +17 -0
  484. package/dist/pagination/PaginationLastPageTrigger.d.ts +16 -0
  485. package/dist/pagination/PaginationNextTrigger.d.ts +16 -0
  486. package/dist/pagination/PaginationPages.d.ts +16 -0
  487. package/dist/pagination/PaginationPrevTrigger.d.ts +16 -0
  488. package/dist/pagination/index.d.ts +10 -135
  489. package/dist/pagination/index.js +2 -1353
  490. package/dist/pagination/index.js.map +1 -1
  491. package/dist/pagination/index.mjs +893 -268
  492. package/dist/pagination/index.mjs.map +1 -1
  493. package/dist/pagination/utils.d.ts +1 -0
  494. package/dist/popover/Popover.d.ts +9 -0
  495. package/dist/popover/PopoverAnchor.d.ts +9 -0
  496. package/dist/popover/PopoverArrow.d.ts +9 -0
  497. package/dist/popover/PopoverCloseButton.d.ts +10 -0
  498. package/dist/popover/PopoverContent.d.ts +10 -0
  499. package/dist/popover/PopoverContent.styles.d.ts +9 -0
  500. package/dist/popover/PopoverContext.d.ts +15 -0
  501. package/dist/popover/PopoverHeader.d.ts +10 -0
  502. package/dist/popover/PopoverPortal.d.ts +7 -0
  503. package/dist/popover/PopoverTrigger.d.ts +9 -0
  504. package/dist/popover/index.d.ts +17 -6
  505. package/dist/popover/index.js +2 -1339
  506. package/dist/popover/index.js.map +1 -1
  507. package/dist/popover/index.mjs +1868 -11
  508. package/dist/popover/index.mjs.map +1 -1
  509. package/dist/portal/{index.d.mts → Portal.d.ts} +2 -5
  510. package/dist/portal/index.d.ts +1 -13
  511. package/dist/portal/index.js +2 -37
  512. package/dist/portal/index.js.map +1 -1
  513. package/dist/portal/index.mjs +5 -8
  514. package/dist/portal/index.mjs.map +1 -1
  515. package/dist/progress/Progress.d.ts +16 -0
  516. package/dist/progress/ProgressBar.d.ts +6 -0
  517. package/dist/progress/ProgressBar.styles.d.ts +5 -0
  518. package/dist/progress/ProgressContext.d.ts +13 -0
  519. package/dist/progress/ProgressIndicator.d.ts +6 -0
  520. package/dist/progress/ProgressIndicator.styles.d.ts +7 -0
  521. package/dist/progress/ProgressLabel.d.ts +6 -0
  522. package/dist/progress/index.d.ts +9 -48
  523. package/dist/progress/index.js +6 -239
  524. package/dist/progress/index.js.map +1 -1
  525. package/dist/progress/index.mjs +241 -5
  526. package/dist/progress/index.mjs.map +1 -1
  527. package/dist/progress-tracker/ProgressTracker.d.ts +27 -0
  528. package/dist/progress-tracker/ProgressTracker.styles.d.ts +1 -0
  529. package/dist/progress-tracker/ProgressTrackerContext.d.ts +15 -0
  530. package/dist/progress-tracker/ProgressTrackerStep.d.ts +12 -0
  531. package/dist/progress-tracker/ProgressTrackerStep.styles.d.ts +10 -0
  532. package/dist/progress-tracker/ProgressTrackerStepIndicator.d.ts +15 -0
  533. package/dist/progress-tracker/ProgressTrackerStepIndicator.styles.d.ts +7 -0
  534. package/dist/progress-tracker/ProgressTrackerStepLabel.d.ts +9 -0
  535. package/dist/progress-tracker/index.d.ts +10 -80
  536. package/dist/progress-tracker/index.js +2 -571
  537. package/dist/progress-tracker/index.js.map +1 -1
  538. package/dist/progress-tracker/index.mjs +115 -183
  539. package/dist/progress-tracker/index.mjs.map +1 -1
  540. package/dist/radio-group/Radio.d.ts +9 -0
  541. package/dist/radio-group/RadioGroup.d.ts +54 -0
  542. package/dist/radio-group/RadioGroup.styles.d.ts +5 -0
  543. package/dist/radio-group/RadioGroupContext.d.ts +5 -0
  544. package/dist/radio-group/RadioGroupProvider.d.ts +7 -0
  545. package/dist/radio-group/RadioIndicator.d.ts +18 -0
  546. package/dist/radio-group/RadioIndicator.styles.d.ts +5 -0
  547. package/dist/radio-group/RadioInput.d.ts +25 -0
  548. package/dist/radio-group/RadioInput.styles.d.ts +5 -0
  549. package/dist/radio-group/RadioLabel.d.ts +20 -0
  550. package/dist/radio-group/RadioLabel.styles.d.ts +5 -0
  551. package/dist/radio-group/index.d.ts +5 -98
  552. package/dist/radio-group/index.js +2 -318
  553. package/dist/radio-group/index.js.map +1 -1
  554. package/dist/radio-group/index.mjs +332 -174
  555. package/dist/radio-group/index.mjs.map +1 -1
  556. package/dist/rating/Rating.d.ts +52 -0
  557. package/dist/rating/RatingStar.d.ts +10 -0
  558. package/dist/rating/RatingStar.styles.d.ts +14 -0
  559. package/dist/rating/index.d.ts +1 -78
  560. package/dist/rating/index.js +2 -363
  561. package/dist/rating/index.js.map +1 -1
  562. package/dist/rating/index.mjs +125 -170
  563. package/dist/rating/index.mjs.map +1 -1
  564. package/dist/rating/types.d.ts +1 -0
  565. package/dist/rating/utils.d.ts +8 -0
  566. package/dist/scrolling-list/ScrollingList.d.ts +57 -0
  567. package/dist/scrolling-list/ScrollingListControls.d.ts +18 -0
  568. package/dist/scrolling-list/ScrollingListItem.d.ts +17 -0
  569. package/dist/scrolling-list/ScrollingListItems.d.ts +11 -0
  570. package/dist/scrolling-list/ScrollingListNextButton.d.ts +5 -0
  571. package/dist/scrolling-list/ScrollingListPrevButton.d.ts +5 -0
  572. package/dist/scrolling-list/ScrollingListSkipButton.d.ts +9 -0
  573. package/dist/scrolling-list/index.d.ts +14 -117
  574. package/dist/scrolling-list/index.js +2 -1428
  575. package/dist/scrolling-list/index.js.map +1 -1
  576. package/dist/scrolling-list/index.mjs +358 -325
  577. package/dist/scrolling-list/index.mjs.map +1 -1
  578. package/dist/scrolling-list/useFocusWithinScroll.d.ts +3 -0
  579. package/dist/segmented-gauge/{index.d.mts → SegmentedGauge.d.ts} +4 -43
  580. package/dist/segmented-gauge/SegmentedGaugeContext.d.ts +14 -0
  581. package/dist/segmented-gauge/SegmentedGaugeLabel.d.ts +9 -0
  582. package/dist/segmented-gauge/SegmentedGaugeSegment.d.ts +12 -0
  583. package/dist/segmented-gauge/SegmentedGaugeTrack.d.ts +8 -0
  584. package/dist/segmented-gauge/index.d.ts +9 -101
  585. package/dist/segmented-gauge/index.js +2 -274
  586. package/dist/segmented-gauge/index.js.map +1 -1
  587. package/dist/segmented-gauge/index.mjs +132 -178
  588. package/dist/segmented-gauge/index.mjs.map +1 -1
  589. package/dist/select/Select.d.ts +6 -0
  590. package/dist/select/SelectContext.d.ts +59 -0
  591. package/dist/select/SelectGroup.d.ts +11 -0
  592. package/dist/select/SelectItem.d.ts +11 -0
  593. package/dist/select/SelectItems.d.ts +10 -0
  594. package/dist/select/SelectItemsGroupContext.d.ts +9 -0
  595. package/dist/select/SelectLabel.d.ts +8 -0
  596. package/dist/select/SelectLeadingIcon.d.ts +7 -0
  597. package/dist/select/SelectPlaceholder.d.ts +10 -0
  598. package/dist/select/SelectTrigger.d.ts +16 -0
  599. package/dist/select/SelectTrigger.styles.d.ts +5 -0
  600. package/dist/select/SelectValue.d.ts +15 -0
  601. package/dist/select/index.d.ts +12 -158
  602. package/dist/select/index.js +2 -581
  603. package/dist/select/index.js.map +1 -1
  604. package/dist/select/index.mjs +207 -339
  605. package/dist/select/index.mjs.map +1 -1
  606. package/dist/select/types.d.ts +6 -0
  607. package/dist/select/utils.d.ts +4 -0
  608. package/dist/skeleton/Skeleton.d.ts +17 -0
  609. package/dist/skeleton/Skeleton.styles.d.ts +5 -0
  610. package/dist/skeleton/SkeletonItem.d.ts +31 -0
  611. package/dist/skeleton/SkeletonItem.styles.d.ts +8 -0
  612. package/dist/skeleton/index.d.ts +8 -67
  613. package/dist/skeleton/index.js +2 -206
  614. package/dist/skeleton/index.js.map +1 -1
  615. package/dist/skeleton/index.mjs +64 -96
  616. package/dist/skeleton/index.mjs.map +1 -1
  617. package/dist/slider/Slider.d.ts +55 -0
  618. package/dist/slider/Slider.styles.d.ts +1 -0
  619. package/dist/slider/SliderContext.d.ts +4 -0
  620. package/dist/slider/SliderThumb.d.ts +14 -0
  621. package/dist/slider/SliderThumb.styles.d.ts +5 -0
  622. package/dist/slider/SliderTrack.d.ts +14 -0
  623. package/dist/slider/SliderTrack.styles.d.ts +9 -0
  624. package/dist/slider/index.d.ts +8 -97
  625. package/dist/slider/index.js +2 -220
  626. package/dist/slider/index.js.map +1 -1
  627. package/dist/slider/index.mjs +490 -107
  628. package/dist/slider/index.mjs.map +1 -1
  629. package/dist/slot/Slot.d.ts +12 -0
  630. package/dist/slot/index.d.ts +1 -16
  631. package/dist/slot/index.js +2 -51
  632. package/dist/slot/index.js.map +1 -1
  633. package/dist/slot/index.mjs +5 -9
  634. package/dist/slot/index.mjs.map +1 -1
  635. package/dist/snackbar/Snackbar.d.ts +29 -0
  636. package/dist/snackbar/SnackbarItem.d.ts +49 -0
  637. package/dist/snackbar/SnackbarItem.styles.d.ts +10 -0
  638. package/dist/snackbar/SnackbarItemAction.d.ts +10 -0
  639. package/dist/snackbar/SnackbarItemClose.d.ts +9 -0
  640. package/dist/snackbar/SnackbarItemContext.d.ts +8 -0
  641. package/dist/snackbar/SnackbarItemIcon.d.ts +7 -0
  642. package/dist/snackbar/SnackbarRegion.d.ts +30 -0
  643. package/dist/snackbar/SnackbarRegion.styles.d.ts +5 -0
  644. package/dist/snackbar/index.d.ts +13 -158
  645. package/dist/snackbar/index.js +2 -1756
  646. package/dist/snackbar/index.js.map +1 -1
  647. package/dist/snackbar/index.mjs +1153 -429
  648. package/dist/snackbar/index.mjs.map +1 -1
  649. package/dist/snackbar/snackbarVariants.d.ts +82 -0
  650. package/dist/snackbar/useSnackbarGlobalStore.d.ts +18 -0
  651. package/dist/snackbar/useSwipe.d.ts +15 -0
  652. package/dist/spinner/Spinner.d.ts +9 -0
  653. package/dist/spinner/Spinner.styles.d.ts +7 -0
  654. package/dist/spinner/index.d.ts +1 -21
  655. package/dist/spinner/index.js +2 -139
  656. package/dist/spinner/index.js.map +1 -1
  657. package/dist/spinner/index.mjs +3 -7
  658. package/dist/spinner/index.mjs.map +1 -1
  659. package/dist/stepper/Stepper.d.ts +9 -0
  660. package/dist/stepper/StepperButton.d.ts +14 -0
  661. package/dist/stepper/StepperInput.d.ts +7 -0
  662. package/dist/stepper/index.d.ts +9 -81
  663. package/dist/stepper/index.js +8 -1847
  664. package/dist/stepper/index.js.map +1 -1
  665. package/dist/stepper/index.mjs +2325 -197
  666. package/dist/stepper/index.mjs.map +1 -1
  667. package/dist/stepper/types.d.ts +46 -0
  668. package/dist/stepper/useStepper.d.ts +2 -0
  669. package/dist/switch/Switch.d.ts +6 -0
  670. package/dist/switch/{index.d.mts → SwitchInput.d.ts} +4 -17
  671. package/dist/switch/SwitchInput.styles.d.ts +16 -0
  672. package/dist/switch/SwitchLabel.d.ts +17 -0
  673. package/dist/switch/SwitchLabel.styles.d.ts +5 -0
  674. package/dist/switch/index.d.ts +1 -64
  675. package/dist/switch/index.js +2 -327
  676. package/dist/switch/index.js.map +1 -1
  677. package/dist/switch/index.mjs +213 -130
  678. package/dist/switch/index.mjs.map +1 -1
  679. package/dist/tabs/Tabs.d.ts +24 -0
  680. package/dist/tabs/TabsContent.d.ts +22 -0
  681. package/dist/tabs/TabsContent.styles.d.ts +3 -0
  682. package/dist/tabs/TabsContext.d.ts +7 -0
  683. package/dist/tabs/TabsList.d.ts +20 -0
  684. package/dist/tabs/TabsList.styles.d.ts +3 -0
  685. package/dist/tabs/TabsPopover.d.ts +29 -0
  686. package/dist/tabs/TabsPopoverAbstraction.d.ts +27 -0
  687. package/dist/tabs/TabsRoot.styles.d.ts +1 -0
  688. package/dist/tabs/TabsTrigger.d.ts +41 -0
  689. package/dist/tabs/TabsTrigger.styles.d.ts +8 -0
  690. package/dist/tabs/index.d.ts +13 -137
  691. package/dist/tabs/index.js +2 -1830
  692. package/dist/tabs/index.js.map +1 -1
  693. package/dist/tabs/index.mjs +374 -350
  694. package/dist/tabs/index.mjs.map +1 -1
  695. package/dist/tabs/useResizeObserver.d.ts +8 -0
  696. package/dist/tag/Tag.d.ts +17 -0
  697. package/dist/tag/Tag.styles.d.ts +8 -0
  698. package/dist/tag/index.d.ts +1 -29
  699. package/dist/tag/index.js +2 -283
  700. package/dist/tag/index.js.map +1 -1
  701. package/dist/tag/index.mjs +66 -90
  702. package/dist/tag/index.mjs.map +1 -1
  703. package/dist/tag/variants/filled.d.ts +41 -0
  704. package/dist/tag/variants/index.d.ts +3 -0
  705. package/dist/tag/variants/outlined.d.ts +37 -0
  706. package/dist/tag/variants/tinted.d.ts +37 -0
  707. package/dist/text-link/TextLink.d.ts +16 -0
  708. package/dist/text-link/index.d.ts +1 -20
  709. package/dist/text-link/index.js +2 -100
  710. package/dist/text-link/index.js.map +1 -1
  711. package/dist/text-link/index.mjs +3 -6
  712. package/dist/text-link/index.mjs.map +1 -1
  713. package/dist/textarea/Textarea.d.ts +14 -0
  714. package/dist/textarea/TextareaClearButton.d.ts +10 -0
  715. package/dist/textarea/TextareaGroup.d.ts +6 -0
  716. package/dist/textarea/TextareaLeadingIcon.d.ts +7 -0
  717. package/dist/textarea/TextareaTrailingIcon.d.ts +7 -0
  718. package/dist/textarea/index.d.ts +10 -53
  719. package/dist/textarea/index.js +2 -797
  720. package/dist/textarea/index.js.map +1 -1
  721. package/dist/textarea/index.mjs +50 -83
  722. package/dist/textarea/index.mjs.map +1 -1
  723. package/dist/toast/Toast.d.ts +4 -0
  724. package/dist/toast/Toast.styles.d.ts +10 -0
  725. package/dist/toast/index.d.ts +10 -53
  726. package/dist/toast/index.js +2 -1454
  727. package/dist/toast/index.js.map +1 -1
  728. package/dist/toast/index.mjs +1016 -208
  729. package/dist/toast/index.mjs.map +1 -1
  730. package/dist/toast/types.d.ts +41 -0
  731. package/dist/toast/useRenderSlot.d.ts +3 -0
  732. package/dist/toast/useToastManager.d.ts +2 -0
  733. package/dist/useCollapsiblePanel-D1dCo0lf.js +4 -0
  734. package/dist/useCollapsiblePanel-D1dCo0lf.js.map +1 -0
  735. package/dist/useCollapsiblePanel-kbMNl4Z4.mjs +287 -0
  736. package/dist/useCollapsiblePanel-kbMNl4Z4.mjs.map +1 -0
  737. package/dist/useFocusWithin-CFNEka2I.js +2 -0
  738. package/dist/useFocusWithin-CFNEka2I.js.map +1 -0
  739. package/dist/useFocusWithin-CoL4390f.mjs +796 -0
  740. package/dist/useFocusWithin-CoL4390f.mjs.map +1 -0
  741. package/dist/useOpenChangeComplete-Dk-u_f2y.js +2 -0
  742. package/dist/useOpenChangeComplete-Dk-u_f2y.js.map +1 -0
  743. package/dist/useOpenChangeComplete-RUbg6RBw.mjs +582 -0
  744. package/dist/useOpenChangeComplete-RUbg6RBw.mjs.map +1 -0
  745. package/dist/useTransitionStatus-CktVVKxz.mjs +46 -0
  746. package/dist/useTransitionStatus-CktVVKxz.mjs.map +1 -0
  747. package/dist/useTransitionStatus-CqbEyvIj.js +2 -0
  748. package/dist/useTransitionStatus-CqbEyvIj.js.map +1 -0
  749. package/dist/visually-hidden/VisuallyHidden.d.ts +12 -0
  750. package/dist/visually-hidden/index.d.ts +1 -16
  751. package/dist/visually-hidden/index.js +2 -67
  752. package/dist/visually-hidden/index.js.map +1 -1
  753. package/dist/visually-hidden/index.mjs +3 -6
  754. package/dist/visually-hidden/index.mjs.map +1 -1
  755. package/package.json +8 -8
  756. package/dist/Input-N8AWWSmt.d.mts +0 -41
  757. package/dist/Input-N8AWWSmt.d.ts +0 -41
  758. package/dist/InputTrailingIcon-BBp7sE6D.d.mts +0 -20
  759. package/dist/InputTrailingIcon-ZZx8PoJy.d.ts +0 -20
  760. package/dist/LabelRequiredIndicator-DRnCzHMU.d.mts +0 -19
  761. package/dist/LabelRequiredIndicator-DRnCzHMU.d.ts +0 -19
  762. package/dist/accordion/index.d.mts +0 -73
  763. package/dist/alert-dialog/index.d.mts +0 -159
  764. package/dist/avatar/index.d.mts +0 -66
  765. package/dist/badge/index.d.mts +0 -47
  766. package/dist/breadcrumb/index.d.mts +0 -64
  767. package/dist/button/index.d.mts +0 -41
  768. package/dist/card/index.d.mts +0 -61
  769. package/dist/checkbox/index.d.mts +0 -120
  770. package/dist/chip/index.d.mts +0 -97
  771. package/dist/chunk-2YM6GKWW.mjs.map +0 -1
  772. package/dist/chunk-6QCEPQ3U.mjs +0 -26
  773. package/dist/chunk-6QCEPQ3U.mjs.map +0 -1
  774. package/dist/chunk-7EWSMIZU.mjs +0 -214
  775. package/dist/chunk-7EWSMIZU.mjs.map +0 -1
  776. package/dist/chunk-DCXWGQVZ.mjs +0 -53
  777. package/dist/chunk-DCXWGQVZ.mjs.map +0 -1
  778. package/dist/chunk-GAK4SC2F.mjs.map +0 -1
  779. package/dist/chunk-GPJMLIHC.mjs +0 -308
  780. package/dist/chunk-GPJMLIHC.mjs.map +0 -1
  781. package/dist/chunk-HLXYG643.mjs +0 -52
  782. package/dist/chunk-HLXYG643.mjs.map +0 -1
  783. package/dist/chunk-KEGAAGJW.mjs +0 -36
  784. package/dist/chunk-KEGAAGJW.mjs.map +0 -1
  785. package/dist/chunk-RKPP7ZOK.mjs.map +0 -1
  786. package/dist/chunk-UMUMFMFB.mjs +0 -68
  787. package/dist/chunk-UMUMFMFB.mjs.map +0 -1
  788. package/dist/chunk-VBX7BTNU.mjs +0 -614
  789. package/dist/chunk-VBX7BTNU.mjs.map +0 -1
  790. package/dist/chunk-XZ47F6TP.mjs.map +0 -1
  791. package/dist/collapsible/index.d.mts +0 -43
  792. package/dist/combobox/index.d.mts +0 -287
  793. package/dist/dialog/index.d.mts +0 -166
  794. package/dist/divider/index.d.mts +0 -61
  795. package/dist/docgen.json +0 -47767
  796. package/dist/drawer/index.d.mts +0 -152
  797. package/dist/dropdown/index.d.mts +0 -233
  798. package/dist/file-upload/index.d.mts +0 -270
  799. package/dist/form-field/index.d.mts +0 -186
  800. package/dist/icon/index.d.mts +0 -28
  801. package/dist/icon-button/index.d.mts +0 -16
  802. package/dist/index-Cno_GFuW.d.mts +0 -93
  803. package/dist/index-Cno_GFuW.d.ts +0 -93
  804. package/dist/input/index.d.mts +0 -78
  805. package/dist/kbd/index.d.mts +0 -9
  806. package/dist/label/index.d.mts +0 -11
  807. package/dist/link-box/index.d.mts +0 -34
  808. package/dist/pagination/index.d.mts +0 -143
  809. package/dist/popover/index.d.mts +0 -6
  810. package/dist/progress/index.d.mts +0 -52
  811. package/dist/progress-tracker/index.d.mts +0 -80
  812. package/dist/radio-group/index.d.mts +0 -100
  813. package/dist/rating/index.d.mts +0 -78
  814. package/dist/scrolling-list/index.d.mts +0 -118
  815. package/dist/select/index.d.mts +0 -167
  816. package/dist/skeleton/index.d.mts +0 -67
  817. package/dist/slider/index.d.mts +0 -97
  818. package/dist/slot/index.d.mts +0 -16
  819. package/dist/snackbar/index.d.mts +0 -158
  820. package/dist/spinner/index.d.mts +0 -21
  821. package/dist/stepper/index.d.mts +0 -81
  822. package/dist/tabs/index.d.mts +0 -137
  823. package/dist/tag/index.d.mts +0 -29
  824. package/dist/text-link/index.d.mts +0 -20
  825. package/dist/textarea/index.d.mts +0 -57
  826. package/dist/toast/index.d.mts +0 -63
  827. package/dist/visually-hidden/index.d.mts +0 -16
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dropdown/DropdownContext.tsx","../../src/dropdown/useDropdown.ts","../../src/dropdown/utils.ts","../../src/dropdown/Dropdown.tsx","../../src/dropdown/DropdownDivider.tsx","../../src/dropdown/DropdownGroup.tsx","../../src/dropdown/DropdownItemsGroupContext.tsx","../../src/dropdown/DropdownItem.tsx","../../src/dropdown/DropdownItemContext.tsx","../../src/dropdown/DropdownItemIndicator.tsx","../../src/dropdown/DropdownItems.tsx","../../src/dropdown/DropdownItemText.tsx","../../src/dropdown/DropdownLabel.tsx","../../src/dropdown/DropdownLeadingIcon.tsx","../../src/dropdown/DropdownPopover.tsx","../../src/dropdown/DropdownPortal.tsx","../../src/dropdown/DropdownTrigger.tsx","../../src/dropdown/DropdownTrigger.styles.tsx","../../src/dropdown/DropdownValue.tsx","../../src/dropdown/index.ts"],"sourcesContent":["import { useFormFieldControl } from '@spark-ui/components/form-field'\nimport {\n createContext,\n Dispatch,\n Fragment,\n PropsWithChildren,\n SetStateAction,\n useContext,\n useEffect,\n useId,\n useState,\n} from 'react'\n\nimport { Popover } from '../popover'\nimport { type DownshiftState, type DropdownItem, type ItemsMap } from './types'\nimport { useDropdown } from './useDropdown'\nimport { getElementByIndex, getItemsFromChildren, hasChildComponent } from './utils'\n\nexport interface DropdownContextState extends DownshiftState {\n itemsMap: ItemsMap\n highlightedItem: DropdownItem | undefined\n hasPopover: boolean\n setHasPopover: Dispatch<SetStateAction<boolean>>\n multiple: boolean\n disabled: boolean\n readOnly: boolean\n state?: 'error' | 'alert' | 'success'\n lastInteractionType: 'mouse' | 'keyboard'\n setLastInteractionType: (type: 'mouse' | 'keyboard') => void\n}\n\nexport type DropdownContextCommonProps = PropsWithChildren<{\n /**\n * The controlled open state of the select. Must be used in conjunction with `onOpenChange`.\n */\n open?: boolean\n /**\n * Event handler called when the open state of the select changes.\n */\n onOpenChange?: (isOpen: boolean) => void\n /**\n * The open state of the select when it is initially rendered. Use when you do not need to control its open state.\n */\n defaultOpen?: boolean\n /**\n * Use `state` prop to assign a specific state to the dropdown, choosing from: `error`, `alert` and `success`. By doing so, the outline styles will be updated.\n */\n state?: 'error' | 'alert' | 'success'\n /**\n * When true, prevents the user from interacting with the dropdown.\n */\n disabled?: boolean\n /**\n * Sets the dropdown as interactive or not.\n */\n readOnly?: boolean\n}>\n\ninterface DropdownPropsSingle {\n /**\n * Prop 'multiple' indicating whether multiple values are allowed.\n */\n multiple?: false\n /**\n * The value of the select when initially rendered. Use when you do not need to control the state of the select.\n */\n defaultValue?: string\n /**\n * The controlled value of the select. Should be used in conjunction with `onValueChange`.\n */\n value?: string\n /**\n * Event handler called when the value changes.\n */\n onValueChange?: (value: string) => void\n}\n\ninterface DropdownPropsMultiple {\n /**\n * Prop 'multiple' indicating whether multiple values are allowed.\n */\n multiple: true\n /**\n * The value of the select when initially rendered. Use when you do not need to control the state of the select.\n */\n defaultValue?: string[]\n /**\n * The controlled value of the select. Should be used in conjunction with `onValueChange`.\n */\n value?: string[]\n /**\n * Event handler called when the value changes.\n */\n onValueChange?: (value: string[]) => void\n}\n\nexport type DropdownContextProps = DropdownContextCommonProps &\n (DropdownPropsSingle | DropdownPropsMultiple)\n\nconst DropdownContext = createContext<DropdownContextState | null>(null)\n\nexport const ID_PREFIX = ':dropdown'\n\nexport const DropdownProvider = ({\n children,\n defaultValue,\n value,\n onValueChange,\n open,\n onOpenChange,\n defaultOpen,\n multiple = false,\n disabled: disabledProp = false,\n readOnly: readOnlyProp = false,\n state: stateProp,\n}: DropdownContextProps) => {\n const [itemsMap, setItemsMap] = useState<ItemsMap>(getItemsFromChildren(children))\n const [hasPopover, setHasPopover] = useState<boolean>(\n hasChildComponent(children, 'Dropdown.Popover')\n )\n const [lastInteractionType, setLastInteractionType] = useState<'mouse' | 'keyboard'>('mouse')\n\n const field = useFormFieldControl()\n\n const state = field.state || stateProp\n\n const internalFieldLabelID = `${ID_PREFIX}-label-${useId()}`\n const internalFieldID = `${ID_PREFIX}-input-${useId()}`\n const id = field.id || internalFieldID\n const labelId = field.labelId || internalFieldLabelID\n\n const disabled = field.disabled ?? disabledProp\n const readOnly = field.readOnly ?? readOnlyProp\n\n const dropdownState = useDropdown({\n itemsMap,\n defaultValue,\n value,\n onValueChange,\n open,\n onOpenChange,\n defaultOpen,\n multiple,\n id,\n labelId,\n })\n\n /**\n * Indices in a Map are set when an element is added to the Map.\n * If for some reason, in the Dropdown:\n * - items order changes\n * - items are added\n * - items are removed\n *\n * The Map must be rebuilt from the new children in order to preserve logical indices.\n *\n * Downshift is heavily indices based for keyboard navigation, so it it important.\n */\n useEffect(() => {\n const newMap = getItemsFromChildren(children)\n\n const previousItems = [...itemsMap.values()]\n const newItems = [...newMap.values()]\n\n const hasItemsChanges =\n previousItems.length !== newItems.length ||\n previousItems.some((item, index) => {\n const hasUpdatedValue = item.value !== newItems[index]?.value\n const hasUpdatedText = item.text !== newItems[index]?.text\n\n return hasUpdatedValue || hasUpdatedText\n })\n\n if (hasItemsChanges) {\n setItemsMap(newMap)\n }\n }, [children])\n\n /**\n * Warning:\n * Downshift is expecting the items list to always be rendered, as per a11y guidelines.\n * This is why the `Popover` is always opened in this component, but visually hidden instead from Dropdown.Popover.\n */\n const [WrapperComponent, wrapperProps] = hasPopover ? [Popover, { open: true }] : [Fragment, {}]\n\n return (\n <DropdownContext.Provider\n value={{\n multiple,\n disabled,\n readOnly,\n ...dropdownState,\n itemsMap,\n highlightedItem: getElementByIndex(itemsMap, dropdownState.highlightedIndex),\n hasPopover,\n setHasPopover,\n state,\n lastInteractionType,\n setLastInteractionType,\n }}\n >\n <WrapperComponent {...wrapperProps}>{children}</WrapperComponent>\n </DropdownContext.Provider>\n )\n}\n\nexport const useDropdownContext = () => {\n const context = useContext(DropdownContext)\n\n if (!context) {\n throw Error('useDropdownContext must be used within a Dropdown provider')\n }\n\n return context\n}\n","import { useMultipleSelection, useSelect, UseSelectProps } from 'downshift'\n\nimport { type DropdownItem, type ItemsMap } from './types'\n\ntype OnChangeValueType = string & string[]\n\nexport interface DownshiftProps {\n itemsMap: ItemsMap\n value: string | string[] | undefined\n defaultValue: string | string[] | undefined\n onValueChange: ((value: string) => void) | ((value: string[]) => void) | undefined\n open: boolean | undefined\n onOpenChange: ((isOpen: boolean) => void) | undefined\n defaultOpen: boolean | undefined\n multiple: boolean | undefined\n id: string\n labelId: string\n}\n\n/**\n * This hook abstract the complexity of using downshift with both single and multiple selection.\n */\nexport const useDropdown = ({\n itemsMap,\n defaultValue,\n value,\n onValueChange,\n open,\n onOpenChange,\n defaultOpen,\n multiple,\n id,\n labelId,\n}: DownshiftProps) => {\n const items = [...itemsMap.values()]\n\n const downshiftMultipleSelection = useMultipleSelection<DropdownItem>({\n selectedItems:\n value != null && multiple\n ? items.filter(item =>\n multiple ? (value as string[]).includes(item.value) : value === item.value\n )\n : undefined,\n initialSelectedItems:\n defaultValue != null && multiple\n ? items.filter(item =>\n multiple ? (defaultValue as string[]).includes(item.value) : defaultValue === item.value\n )\n : undefined,\n\n onSelectedItemsChange: ({ selectedItems }) => {\n if (selectedItems != null && multiple) {\n onValueChange?.(selectedItems.map(item => item.value) as OnChangeValueType)\n }\n },\n })\n\n /**\n * Custom state reducer for multiple selection behaviour:\n * - keeps the component opened when the user selects an item\n * - preserves the higlighted index when the user select an item\n * - selected items can be unselected, even the last selected item (as opposed to single selection behaviour)\n */\n const stateReducer: UseSelectProps<DropdownItem>['stateReducer'] = (state, { changes, type }) => {\n if (!multiple) return changes\n\n const { selectedItems, removeSelectedItem, addSelectedItem } = downshiftMultipleSelection\n\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (type) {\n case useSelect.stateChangeTypes.ToggleButtonKeyDownEnter:\n case useSelect.stateChangeTypes.ToggleButtonKeyDownSpaceButton:\n case useSelect.stateChangeTypes.ItemClick:\n if (changes.selectedItem != null) {\n const isAlreadySelected = selectedItems.some(\n selectedItem => selectedItem.value === changes.selectedItem?.value\n )\n\n if (isAlreadySelected) removeSelectedItem(changes.selectedItem)\n else addSelectedItem(changes.selectedItem)\n }\n\n return {\n ...changes,\n isOpen: true, // keep the menu open after selection.\n highlightedIndex: state.highlightedIndex, // preserve highlighted index position\n }\n default:\n return changes\n }\n }\n\n const downshift = useSelect<DropdownItem>({\n items,\n isItemDisabled: item => item.disabled,\n itemToString: item => (item ? item.text : ''),\n // a11y attributes\n id,\n labelId,\n // Controlled open state\n isOpen: open, // undefined must be passed for stateful behaviour (uncontrolled)\n onIsOpenChange: ({ isOpen }) => {\n if (isOpen != null) onOpenChange?.(isOpen)\n },\n initialIsOpen: defaultOpen ?? false,\n stateReducer,\n // Controlled mode (single selection)\n selectedItem: value != null && !multiple ? itemsMap.get(value as string) || null : undefined,\n initialSelectedItem:\n (defaultValue != null || value != null) && !multiple\n ? itemsMap.get(defaultValue as string) || null\n : undefined,\n onSelectedItemChange: ({ selectedItem }) => {\n if (selectedItem?.value != null && !multiple) {\n onValueChange?.(selectedItem?.value as OnChangeValueType)\n }\n },\n /**\n * 1. 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.\n */\n scrollIntoView: node => {\n if (node) {\n node.scrollIntoView({ block: 'nearest' })\n }\n\n return undefined\n },\n })\n\n return {\n ...downshift,\n ...downshiftMultipleSelection,\n /** There is a Downshift bug in React 19, it duplicates some selectedItems */\n selectedItems: [...new Set(downshiftMultipleSelection.selectedItems)],\n }\n}\n","import { type FC, isValidElement, type ReactElement, type ReactNode, Children } from 'react'\n\nimport { type ItemProps } from './DropdownItem'\nimport { ItemTextProps } from './DropdownItemText'\nimport { type DropdownItem, type ItemsMap } from './types'\n\nexport function getIndexByKey(map: ItemsMap, targetKey: string) {\n let index = 0\n for (const [key] of map.entries()) {\n if (key === targetKey) {\n return index\n }\n index++\n }\n\n return -1\n}\n\nconst getKeyAtIndex = (map: ItemsMap, index: number) => {\n let i = 0\n for (const key of map.keys()) {\n if (i === index) return key\n i++\n }\n\n return undefined\n}\n\nexport const getElementByIndex = (map: ItemsMap, index: number) => {\n const key = getKeyAtIndex(map, index)\n\n return key !== undefined ? map.get(key) : undefined\n}\n\nconst getElementDisplayName = (element?: ReactElement) => {\n return element ? (element.type as FC & { displayName?: string }).displayName : ''\n}\n\nexport const getOrderedItems = (\n children: ReactNode,\n result: DropdownItem[] = []\n): DropdownItem[] => {\n Children.forEach(children, child => {\n if (!isValidElement(child)) return\n\n if (getElementDisplayName(child) === 'Dropdown.Item') {\n const childProps = child.props as ItemProps\n result.push({\n value: childProps.value,\n disabled: !!childProps.disabled,\n text: getItemText(childProps.children),\n })\n }\n\n if ((child.props as { children: ReactNode }).children) {\n getOrderedItems((child.props as { children: ReactNode }).children, result)\n }\n })\n\n return result\n}\n\n/**\n * If Dropdown.Item children:\n * - is a string, then the string is used.\n * - is JSX markup, then we look for Dropdown.ItemText to get its string value.\n */\nexport const getItemText = (children: ReactNode, itemText = ''): string => {\n if (typeof children === 'string') {\n return children\n }\n\n Children.forEach(children, child => {\n if (!isValidElement(child)) return\n\n if (getElementDisplayName(child) === 'Dropdown.ItemText') {\n itemText = (child.props as ItemTextProps).children\n }\n\n if ((child.props as { children: ReactNode }).children) {\n getItemText((child.props as { children: ReactNode }).children, itemText)\n }\n })\n\n return itemText\n}\n\nexport const getItemsFromChildren = (children: ReactNode): ItemsMap => {\n const newMap: ItemsMap = new Map()\n\n getOrderedItems(children).forEach(itemData => {\n newMap.set(itemData.value, itemData)\n })\n\n return newMap\n}\n\nexport const hasChildComponent = (children: ReactNode, displayName: string): boolean => {\n return Children.toArray(children).some(child => {\n if (!isValidElement(child)) return false\n\n if (getElementDisplayName(child) === displayName) {\n return true\n } else if ((child.props as { children: ReactNode }).children) {\n return hasChildComponent((child.props as { children: ReactNode }).children, displayName)\n }\n\n return false\n })\n}\n","import { type DropdownContextProps, DropdownProvider } from './DropdownContext'\n\nexport type DropdownProps = DropdownContextProps\n\nexport const Dropdown = ({ children, ...props }: DropdownProps) => {\n return <DropdownProvider {...props}>{children}</DropdownProvider>\n}\n\nDropdown.displayName = 'Dropdown'\n","import { cx } from 'class-variance-authority'\nimport { Ref } from 'react'\n\ninterface DividerProps {\n className?: string\n ref?: Ref<HTMLDivElement>\n}\n\nexport const Divider = ({ className, ref: forwardedRef }: DividerProps) => {\n return <div ref={forwardedRef} className={cx('my-md border-b-sm border-outline', className)} />\n}\n\nDivider.displayName = 'Dropdown.Divider'\n","import { cx } from 'class-variance-authority'\nimport { ReactNode, Ref } from 'react'\n\nimport { DropdownGroupProvider, useDropdownGroupContext } from './DropdownItemsGroupContext'\n\ninterface GroupProps {\n children: ReactNode\n className?: string\n ref?: Ref<HTMLDivElement>\n}\n\nexport const Group = ({ children, ref: forwardedRef, ...props }: GroupProps) => {\n return (\n <DropdownGroupProvider>\n <GroupContent ref={forwardedRef} {...props}>\n {children}\n </GroupContent>\n </DropdownGroupProvider>\n )\n}\n\nconst GroupContent = ({ children, className, ref: forwardedRef }: GroupProps) => {\n const { labelId } = useDropdownGroupContext()\n\n return (\n <div ref={forwardedRef} role=\"group\" aria-labelledby={labelId} className={cx(className)}>\n {children}\n </div>\n )\n}\n\nGroup.displayName = 'Dropdown.Group'\n","import { createContext, type PropsWithChildren, useContext, useId } from 'react'\n\nimport { ID_PREFIX } from './DropdownContext'\n\nexport interface DropdownContextState {\n labelId: string\n}\n\ntype DropdownContextProps = PropsWithChildren\n\nconst DropdownGroupContext = createContext<DropdownContextState | null>(null)\n\nexport const DropdownGroupProvider = ({ children }: DropdownContextProps) => {\n const labelId = `${ID_PREFIX}-group-label-${useId()}`\n\n return (\n <DropdownGroupContext.Provider value={{ labelId }}>{children}</DropdownGroupContext.Provider>\n )\n}\n\nexport const useDropdownGroupContext = () => {\n const context = useContext(DropdownGroupContext)\n\n if (!context) {\n throw Error('useDropdownGroupContext must be used within a DropdownGroup provider')\n }\n\n return context\n}\n","import { useMergeRefs } from '@spark-ui/hooks/use-merge-refs'\nimport { cva, cx } from 'class-variance-authority'\nimport { type HTMLAttributes, type ReactNode, Ref } from 'react'\n\nimport { useDropdownContext } from './DropdownContext'\nimport { DropdownItemProvider, useDropdownItemContext } from './DropdownItemContext'\n\nexport interface ItemProps extends HTMLAttributes<HTMLLIElement> {\n disabled?: boolean\n value: string\n children: ReactNode\n className?: string\n ref?: Ref<HTMLLIElement>\n}\n\nexport const Item = ({ children, ref: forwardedRef, ...props }: ItemProps) => {\n const { value, disabled } = props\n\n return (\n <DropdownItemProvider value={value} disabled={disabled}>\n <ItemContent ref={forwardedRef} {...props}>\n {children}\n </ItemContent>\n </DropdownItemProvider>\n )\n}\n\nconst styles = cva('px-lg py-md text-body-1', {\n variants: {\n selected: {\n true: 'font-bold',\n },\n disabled: {\n true: 'opacity-dim-3 cursor-not-allowed',\n false: 'cursor-pointer',\n },\n highlighted: {\n true: '',\n },\n interactionType: {\n mouse: '',\n keyboard: '',\n },\n },\n compoundVariants: [\n {\n highlighted: true,\n interactionType: 'mouse',\n class: 'bg-surface-hovered',\n },\n {\n highlighted: true,\n interactionType: 'keyboard',\n class: 'u-outline',\n },\n ],\n})\n\nconst ItemContent = ({\n className,\n disabled = false,\n value,\n children,\n ref: forwardedRef,\n}: ItemProps) => {\n const { getItemProps, highlightedItem, lastInteractionType } = useDropdownContext()\n const { textId, index, itemData, isSelected } = useDropdownItemContext()\n\n const isHighlighted = highlightedItem?.value === value\n\n const { ref: downshiftRef, ...downshiftItemProps } = getItemProps({ item: itemData, index })\n const ref = useMergeRefs(forwardedRef, downshiftRef)\n\n return (\n <li\n ref={ref}\n className={cx(\n styles({\n selected: isSelected,\n disabled,\n highlighted: isHighlighted,\n interactionType: lastInteractionType,\n className,\n })\n )}\n key={value}\n {...downshiftItemProps}\n aria-selected={isSelected}\n aria-labelledby={textId}\n >\n {children}\n </li>\n )\n}\n\nItem.displayName = 'Dropdown.Item'\n","import {\n createContext,\n Dispatch,\n type PropsWithChildren,\n SetStateAction,\n useContext,\n useState,\n} from 'react'\n\nimport { useDropdownContext } from './DropdownContext'\nimport { DropdownItem } from './types'\nimport { getIndexByKey, getItemText } from './utils'\n\ntype ItemTextId = string | undefined\n\ninterface DropdownItemContextState {\n textId: ItemTextId\n setTextId: Dispatch<SetStateAction<ItemTextId>>\n isSelected: boolean\n itemData: DropdownItem\n index: number\n disabled: boolean\n}\n\nconst DropdownItemContext = createContext<DropdownItemContextState | null>(null)\n\nexport const DropdownItemProvider = ({\n value,\n disabled = false,\n children,\n}: PropsWithChildren<{ value: string; disabled?: boolean }>) => {\n const { multiple, itemsMap, selectedItem, selectedItems } = useDropdownContext()\n\n const [textId, setTextId] = useState<ItemTextId>(undefined)\n\n const index = getIndexByKey(itemsMap, value)\n const itemData: DropdownItem = { disabled, value, text: getItemText(children) }\n\n const isSelected = multiple\n ? selectedItems.some(selectedItem => selectedItem.value === value)\n : selectedItem?.value === value\n\n return (\n <DropdownItemContext.Provider\n value={{ textId, setTextId, isSelected, itemData, index, disabled }}\n >\n {children}\n </DropdownItemContext.Provider>\n )\n}\n\nexport const useDropdownItemContext = () => {\n const context = useContext(DropdownItemContext)\n\n if (!context) {\n throw Error('useDropdownItemContext must be used within a DropdownItem provider')\n }\n\n return context\n}\n","import { Check } from '@spark-ui/icons/Check'\nimport { cx } from 'class-variance-authority'\nimport { ReactNode, Ref } from 'react'\n\nimport { Icon } from '../icon'\nimport { useDropdownItemContext } from './DropdownItemContext'\n\nexport interface ItemIndicatorProps {\n children?: ReactNode\n className?: string\n label?: string\n ref?: Ref<HTMLSpanElement>\n}\n\nexport const ItemIndicator = ({\n className,\n children,\n label,\n ref: forwardedRef,\n}: ItemIndicatorProps) => {\n const { disabled, isSelected } = useDropdownItemContext()\n\n const childElement = children || (\n <Icon size=\"sm\">\n <Check aria-label={label} />\n </Icon>\n )\n\n return (\n <span\n ref={forwardedRef}\n className={cx('min-h-sz-16 min-w-sz-16 flex', disabled && 'opacity-dim-3', className)}\n >\n {isSelected && childElement}\n </span>\n )\n}\n\nItemIndicator.displayName = 'Dropdown.ItemIndicator'\n","import { useMergeRefs } from '@spark-ui/hooks/use-merge-refs'\nimport { cx } from 'class-variance-authority'\nimport { ReactNode, Ref, useLayoutEffect, useRef } from 'react'\n\nimport { useDropdownContext } from './DropdownContext'\n\ninterface ItemsProps {\n children: ReactNode\n className?: string\n ref?: Ref<HTMLUListElement>\n}\n\n/**\n * BUGFIX\n *\n * 1. The !pointer-events-auto class is needed to prevent a bug\n * which cannot be reproduced when running Storybook locally,\n * in scenarios such as when a Dropdown is nested within a Dialog,\n * the \"props\" object, containing styles computed by Radix\n * may erroneously contain \"pointerEvents = 'none'\", while the Dropdown is open,\n * making it impossible to select a value using a pointer device\n */\n\nexport const Items = ({ children, className, ref: forwardedRef, ...props }: ItemsProps) => {\n const { isOpen, getMenuProps, hasPopover, setLastInteractionType } = useDropdownContext()\n\n const { ref: downshiftRef, ...downshiftMenuProps } = getMenuProps({\n onMouseMove: () => {\n setLastInteractionType('mouse')\n },\n })\n\n const innerRef = useRef<HTMLElement>(null)\n\n const ref = useMergeRefs(forwardedRef, downshiftRef, innerRef)\n\n useLayoutEffect(() => {\n if (!hasPopover) return\n if (!innerRef.current) return\n\n if (innerRef.current.parentElement) {\n innerRef.current.parentElement.style.pointerEvents = isOpen ? '' : 'none'\n innerRef.current.style.pointerEvents = isOpen ? '' : 'none'\n }\n }, [isOpen, hasPopover])\n\n return (\n <ul\n ref={ref}\n className={cx(\n className,\n 'flex flex-col',\n isOpen\n ? 'pointer-events-auto! block' /* 1 */\n : 'pointer-events-none invisible absolute opacity-0',\n hasPopover && 'p-lg'\n )}\n {...props}\n {...downshiftMenuProps}\n /**\n * When used inside a Radix dialog/drawer, the focus trap behaviour of Radix prevent scrolling and hovering inside absolutely positioned elements in the dialog.\n * It does programatically in JS using the `style` attribute.\n *\n * Issue is known but there is no clear fix in sight: https://github.com/radix-ui/primitives/issues/1159\n *\n * A solution would be to make an abstraction of `Dialog.Overlay` instead of using the radix one, but that would mean managing body scroll freeze and scrollbar shifting ourselves.\n *\n */\n data-spark-component=\"dropdown-items\"\n >\n {children}\n </ul>\n )\n}\n\nItems.displayName = 'Dropdown.Items'\n","import { cx } from 'class-variance-authority'\nimport { Ref, useEffect, useId } from 'react'\n\nimport { ID_PREFIX } from './DropdownContext'\nimport { useDropdownItemContext } from './DropdownItemContext'\n\nexport interface ItemTextProps {\n children: string\n ref?: Ref<HTMLSpanElement>\n}\n\nexport const ItemText = ({ children, ref: forwardedRef }: ItemTextProps) => {\n const id = `${ID_PREFIX}-item-text-${useId()}`\n\n const { setTextId } = useDropdownItemContext()\n\n useEffect(() => {\n setTextId(id)\n\n return () => setTextId(undefined)\n })\n\n return (\n <span id={id} className={cx('inline')} ref={forwardedRef}>\n {children}\n </span>\n )\n}\n\nItemText.displayName = 'Dropdown.ItemText'\n","import { cx } from 'class-variance-authority'\nimport { Ref } from 'react'\n\nimport { useDropdownGroupContext } from './DropdownItemsGroupContext'\n\ninterface LabelProps {\n children: string\n className?: string\n ref?: Ref<HTMLDivElement>\n}\n\nexport const Label = ({ children, className, ref: forwardedRef }: LabelProps) => {\n const { labelId } = useDropdownGroupContext()\n\n return (\n <div\n ref={forwardedRef}\n id={labelId}\n className={cx('px-md py-sm text-body-2 text-neutral italic', className)}\n >\n {children}\n </div>\n )\n}\n\nLabel.displayName = 'Dropdown.Label'\n","import { ReactElement } from 'react'\n\nimport { Icon } from '../icon'\n\nexport const LeadingIcon = ({ children }: { children: ReactElement }) => {\n return (\n <Icon size={'sm'} className=\"shrink-0\">\n {children}\n </Icon>\n )\n}\n\nLeadingIcon.displayName = 'Dropdown.LeadingIcon'\n","import { cx } from 'class-variance-authority'\nimport { ComponentProps, useEffect } from 'react'\n\nimport { Popover as SparkPopover } from '../popover'\nimport { useDropdownContext } from './DropdownContext'\n\nexport const Popover = ({\n children,\n matchTriggerWidth = true,\n sideOffset = 4,\n className,\n elevation = 'dropdown',\n ref: forwardedRef,\n ...props\n}: ComponentProps<typeof SparkPopover.Content>) => {\n const ctx = useDropdownContext()\n\n useEffect(() => {\n ctx.setHasPopover(true)\n\n return () => ctx.setHasPopover(false)\n }, [])\n\n return (\n <SparkPopover.Content\n ref={forwardedRef}\n inset\n asChild\n matchTriggerWidth={matchTriggerWidth}\n elevation={elevation}\n className={cx('relative', className)}\n sideOffset={sideOffset}\n onOpenAutoFocus={e => {\n /**\n * With a combobox pattern, the focus should remain on the trigger at all times.\n * Passing the focus to the dropdown popover would break keyboard navigation.\n */\n e.preventDefault()\n }}\n {...props}\n data-spark-component=\"dropdown-popover\"\n >\n {children}\n </SparkPopover.Content>\n )\n}\n\nPopover.displayName = 'Dropdown.Popover'\n","import { ReactElement } from 'react'\n\nimport { Popover as SparkPopover } from '../popover'\n\nexport const Portal: typeof SparkPopover.Portal = ({ children, ...rest }): ReactElement => (\n <SparkPopover.Portal {...rest}>{children}</SparkPopover.Portal>\n)\n\nPortal.displayName = 'Dropdown.Portal'\n","import { useMergeRefs } from '@spark-ui/hooks/use-merge-refs'\nimport { ArrowHorizontalDown } from '@spark-ui/icons/ArrowHorizontalDown'\nimport { cx } from 'class-variance-authority'\nimport { Fragment, ReactNode, Ref } from 'react'\n\nimport { Icon } from '../icon'\nimport { Popover } from '../popover'\nimport { VisuallyHidden } from '../visually-hidden'\nimport { useDropdownContext } from './DropdownContext'\nimport { styles } from './DropdownTrigger.styles'\n\ninterface TriggerProps {\n 'aria-label'?: string\n children: ReactNode\n className?: string\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const Trigger = ({\n 'aria-label': ariaLabel,\n children,\n className,\n ref: forwardedRef,\n}: TriggerProps) => {\n const {\n getToggleButtonProps,\n getDropdownProps,\n getLabelProps,\n hasPopover,\n disabled,\n readOnly,\n state,\n setLastInteractionType,\n } = useDropdownContext()\n\n const [WrapperComponent, wrapperProps] = hasPopover\n ? [Popover.Trigger, { asChild: true }]\n : [Fragment, {}]\n\n const { ref: downshiftRef, ...downshiftTriggerProps } = getToggleButtonProps({\n ...getDropdownProps(),\n onKeyDown: () => {\n setLastInteractionType('keyboard')\n },\n })\n\n const isExpanded = downshiftTriggerProps['aria-expanded']\n\n const ref = useMergeRefs(forwardedRef, downshiftRef)\n\n return (\n <>\n {ariaLabel && (\n <VisuallyHidden>\n <label {...getLabelProps()}>{ariaLabel}</label>\n </VisuallyHidden>\n )}\n <WrapperComponent {...wrapperProps}>\n <button\n type=\"button\"\n ref={ref}\n disabled={disabled || readOnly}\n className={styles({ className, state, disabled, readOnly })}\n {...downshiftTriggerProps}\n data-spark-component=\"dropdown-trigger\"\n >\n <span className=\"gap-md flex items-center justify-start\">{children}</span>\n\n <Icon\n className={cx('ml-md shrink-0 rotate-0 transition duration-100 ease-in', {\n 'rotate-180': isExpanded,\n })}\n size=\"sm\"\n >\n <ArrowHorizontalDown />\n </Icon>\n </button>\n </WrapperComponent>\n </>\n )\n}\n\nTrigger.displayName = 'Dropdown.Trigger'\n","import { cva } from 'class-variance-authority'\n\nexport const styles = cva(\n [\n 'flex w-full items-center justify-between',\n 'min-h-sz-44 rounded-lg bg-surface text-on-surface px-lg',\n 'text-body-1',\n // outline styles\n 'ring-1 outline-hidden ring-inset focus:ring-2 focus:ring-focus',\n ],\n {\n variants: {\n state: {\n undefined: 'ring-outline',\n error: 'ring-error',\n alert: 'ring-alert',\n success: 'ring-success',\n },\n disabled: {\n true: 'disabled:bg-on-surface/dim-5 cursor-not-allowed text-on-surface/dim-3',\n },\n readOnly: {\n true: 'disabled:bg-on-surface/dim-5 cursor-not-allowed text-on-surface/dim-3',\n },\n },\n compoundVariants: [\n {\n disabled: false,\n state: undefined,\n class: 'default:hover:ring-outline-high',\n },\n ],\n }\n)\n","import { cx } from 'class-variance-authority'\nimport { ReactNode, Ref } from 'react'\n\nimport { useDropdownContext } from './DropdownContext'\n\nexport interface ValueProps {\n children?: ReactNode\n className?: string\n placeholder: string\n ref?: Ref<HTMLSpanElement>\n}\n\nexport const Value = ({ children, className, placeholder, ref: forwardedRef }: ValueProps) => {\n const { selectedItem, multiple, selectedItems } = useDropdownContext()\n\n const hasSelectedItems = !!(multiple ? selectedItems.length : selectedItem)\n const text = multiple ? selectedItems[0]?.text : selectedItem?.text\n const suffix = selectedItems.length > 1 ? `, +${selectedItems.length - 1}` : ''\n\n return (\n <span ref={forwardedRef} className={cx('flex shrink items-center text-left', className)}>\n <span\n className={cx(\n 'line-clamp-1 flex-1 overflow-hidden break-all text-ellipsis',\n !hasSelectedItems && 'text-on-surface/dim-1'\n )}\n >\n {!hasSelectedItems ? placeholder : children || text}\n </span>\n {suffix && <span>{suffix}</span>}\n </span>\n )\n}\n\nValue.displayName = 'Dropdown.Value'\n","import { Dropdown as Root } from './Dropdown'\nimport { DropdownProvider, useDropdownContext } from './DropdownContext'\nimport { Divider } from './DropdownDivider'\nimport { Group } from './DropdownGroup'\nimport { Item } from './DropdownItem'\nimport { ItemIndicator } from './DropdownItemIndicator'\nimport { Items } from './DropdownItems'\nimport { ItemText } from './DropdownItemText'\nimport { Label } from './DropdownLabel'\nimport { LeadingIcon } from './DropdownLeadingIcon'\nimport { Popover } from './DropdownPopover'\nimport { Portal } from './DropdownPortal'\nimport { Trigger } from './DropdownTrigger'\nimport { Value } from './DropdownValue'\n\nexport { useDropdownContext, DropdownProvider }\n\nexport const Dropdown: typeof Root & {\n Group: typeof Group\n Item: typeof Item\n Items: typeof Items\n ItemText: typeof ItemText\n ItemIndicator: typeof ItemIndicator\n Label: typeof Label\n Popover: typeof Popover\n Divider: typeof Divider\n Trigger: typeof Trigger\n Value: typeof Value\n LeadingIcon: typeof LeadingIcon\n Portal: typeof Portal\n} = Object.assign(Root, {\n Group,\n Item,\n Items,\n ItemText,\n ItemIndicator,\n Label,\n Popover,\n Divider,\n Trigger,\n Value,\n LeadingIcon,\n Portal,\n})\n\nDropdown.displayName = 'Dropdown'\nGroup.displayName = 'Dropdown.Group'\nItems.displayName = 'Dropdown.Items'\nItem.displayName = 'Dropdown.Item'\nItemText.displayName = 'Dropdown.ItemText'\nItemIndicator.displayName = 'Dropdown.ItemIndicator'\nLabel.displayName = 'Dropdown.Label'\nPopover.displayName = 'Dropdown.Popover'\nDivider.displayName = 'Dropdown.Divider'\nTrigger.displayName = 'Dropdown.Trigger'\nValue.displayName = 'Dropdown.Value'\nLeadingIcon.displayName = 'Dropdown.LeadingIcon'\nPortal.displayName = 'Dropdown.Portal'\n"],"mappings":"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","names":["jsx","jsx","cx","createContext","useContext","useId","jsx","createContext","useId","useContext","jsx","cx","cx","createContext","useContext","useState","jsx","createContext","useState","selectedItem","useContext","jsx","cx","cx","jsx","cx","useMergeRefs","cx","jsx","useMergeRefs","cx","cx","useEffect","useId","jsx","useId","useEffect","cx","cx","jsx","cx","jsx","cx","useEffect","jsx","Popover","useEffect","cx","jsx","useMergeRefs","cx","Fragment","cva","styles","Fragment","jsx","useMergeRefs","styles","cx","cx","jsx","jsxs","cx","Dropdown","Popover"]}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/dropdown/useDropdown.ts","../../src/dropdown/utils.ts","../../src/dropdown/DropdownContext.tsx","../../src/dropdown/Dropdown.tsx","../../src/dropdown/DropdownDivider.tsx","../../src/dropdown/DropdownItemsGroupContext.tsx","../../src/dropdown/DropdownGroup.tsx","../../src/dropdown/DropdownItemContext.tsx","../../src/dropdown/DropdownItem.tsx","../../src/dropdown/DropdownItemIndicator.tsx","../../src/dropdown/DropdownItems.tsx","../../src/dropdown/DropdownItemText.tsx","../../src/dropdown/DropdownLabel.tsx","../../src/dropdown/DropdownLeadingIcon.tsx","../../src/dropdown/DropdownPopover.tsx","../../src/dropdown/DropdownPortal.tsx","../../src/dropdown/DropdownTrigger.styles.tsx","../../src/dropdown/DropdownTrigger.tsx","../../src/dropdown/DropdownValue.tsx","../../src/dropdown/index.ts"],"sourcesContent":["import { useMultipleSelection, useSelect, UseSelectProps } from 'downshift'\n\nimport { type DropdownItem, type ItemsMap } from './types'\n\ntype OnChangeValueType = string & string[]\n\nexport interface DownshiftProps {\n itemsMap: ItemsMap\n value: string | string[] | undefined\n defaultValue: string | string[] | undefined\n onValueChange: ((value: string) => void) | ((value: string[]) => void) | undefined\n open: boolean | undefined\n onOpenChange: ((isOpen: boolean) => void) | undefined\n defaultOpen: boolean | undefined\n multiple: boolean | undefined\n id: string\n labelId: string\n}\n\n/**\n * This hook abstract the complexity of using downshift with both single and multiple selection.\n */\nexport const useDropdown = ({\n itemsMap,\n defaultValue,\n value,\n onValueChange,\n open,\n onOpenChange,\n defaultOpen,\n multiple,\n id,\n labelId,\n}: DownshiftProps) => {\n const items = [...itemsMap.values()]\n\n const downshiftMultipleSelection = useMultipleSelection<DropdownItem>({\n selectedItems:\n value != null && multiple\n ? items.filter(item =>\n multiple ? (value as string[]).includes(item.value) : value === item.value\n )\n : undefined,\n initialSelectedItems:\n defaultValue != null && multiple\n ? items.filter(item =>\n multiple ? (defaultValue as string[]).includes(item.value) : defaultValue === item.value\n )\n : undefined,\n\n onSelectedItemsChange: ({ selectedItems }) => {\n if (selectedItems != null && multiple) {\n onValueChange?.(selectedItems.map(item => item.value) as OnChangeValueType)\n }\n },\n })\n\n /**\n * Custom state reducer for multiple selection behaviour:\n * - keeps the component opened when the user selects an item\n * - preserves the higlighted index when the user select an item\n * - selected items can be unselected, even the last selected item (as opposed to single selection behaviour)\n */\n const stateReducer: UseSelectProps<DropdownItem>['stateReducer'] = (state, { changes, type }) => {\n if (!multiple) return changes\n\n const { selectedItems, removeSelectedItem, addSelectedItem } = downshiftMultipleSelection\n\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (type) {\n case useSelect.stateChangeTypes.ToggleButtonKeyDownEnter:\n case useSelect.stateChangeTypes.ToggleButtonKeyDownSpaceButton:\n case useSelect.stateChangeTypes.ItemClick:\n if (changes.selectedItem != null) {\n const isAlreadySelected = selectedItems.some(\n selectedItem => selectedItem.value === changes.selectedItem?.value\n )\n\n if (isAlreadySelected) removeSelectedItem(changes.selectedItem)\n else addSelectedItem(changes.selectedItem)\n }\n\n return {\n ...changes,\n isOpen: true, // keep the menu open after selection.\n highlightedIndex: state.highlightedIndex, // preserve highlighted index position\n }\n default:\n return changes\n }\n }\n\n const downshift = useSelect<DropdownItem>({\n items,\n isItemDisabled: item => item.disabled,\n itemToString: item => (item ? item.text : ''),\n // a11y attributes\n id,\n labelId,\n // Controlled open state\n isOpen: open, // undefined must be passed for stateful behaviour (uncontrolled)\n onIsOpenChange: ({ isOpen }) => {\n if (isOpen != null) onOpenChange?.(isOpen)\n },\n initialIsOpen: defaultOpen ?? false,\n stateReducer,\n // Controlled mode (single selection)\n selectedItem: value != null && !multiple ? itemsMap.get(value as string) || null : undefined,\n initialSelectedItem:\n (defaultValue != null || value != null) && !multiple\n ? itemsMap.get(defaultValue as string) || null\n : undefined,\n onSelectedItemChange: ({ selectedItem }) => {\n if (selectedItem?.value != null && !multiple) {\n onValueChange?.(selectedItem?.value as OnChangeValueType)\n }\n },\n /**\n * 1. 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.\n */\n scrollIntoView: node => {\n if (node) {\n node.scrollIntoView({ block: 'nearest' })\n }\n\n return undefined\n },\n })\n\n return {\n ...downshift,\n ...downshiftMultipleSelection,\n /** There is a Downshift bug in React 19, it duplicates some selectedItems */\n selectedItems: [...new Set(downshiftMultipleSelection.selectedItems)],\n }\n}\n","import { type FC, isValidElement, type ReactElement, type ReactNode, Children } from 'react'\n\nimport { type ItemProps } from './DropdownItem'\nimport { ItemTextProps } from './DropdownItemText'\nimport { type DropdownItem, type ItemsMap } from './types'\n\nexport function getIndexByKey(map: ItemsMap, targetKey: string) {\n let index = 0\n for (const [key] of map.entries()) {\n if (key === targetKey) {\n return index\n }\n index++\n }\n\n return -1\n}\n\nconst getKeyAtIndex = (map: ItemsMap, index: number) => {\n let i = 0\n for (const key of map.keys()) {\n if (i === index) return key\n i++\n }\n\n return undefined\n}\n\nexport const getElementByIndex = (map: ItemsMap, index: number) => {\n const key = getKeyAtIndex(map, index)\n\n return key !== undefined ? map.get(key) : undefined\n}\n\nconst getElementDisplayName = (element?: ReactElement) => {\n return element ? (element.type as FC & { displayName?: string }).displayName : ''\n}\n\nexport const getOrderedItems = (\n children: ReactNode,\n result: DropdownItem[] = []\n): DropdownItem[] => {\n Children.forEach(children, child => {\n if (!isValidElement(child)) return\n\n if (getElementDisplayName(child) === 'Dropdown.Item') {\n const childProps = child.props as ItemProps\n result.push({\n value: childProps.value,\n disabled: !!childProps.disabled,\n text: getItemText(childProps.children),\n })\n }\n\n if ((child.props as { children: ReactNode }).children) {\n getOrderedItems((child.props as { children: ReactNode }).children, result)\n }\n })\n\n return result\n}\n\n/**\n * If Dropdown.Item children:\n * - is a string, then the string is used.\n * - is JSX markup, then we look for Dropdown.ItemText to get its string value.\n */\nexport const getItemText = (children: ReactNode, itemText = ''): string => {\n if (typeof children === 'string') {\n return children\n }\n\n Children.forEach(children, child => {\n if (!isValidElement(child)) return\n\n if (getElementDisplayName(child) === 'Dropdown.ItemText') {\n itemText = (child.props as ItemTextProps).children\n }\n\n if ((child.props as { children: ReactNode }).children) {\n getItemText((child.props as { children: ReactNode }).children, itemText)\n }\n })\n\n return itemText\n}\n\nexport const getItemsFromChildren = (children: ReactNode): ItemsMap => {\n const newMap: ItemsMap = new Map()\n\n getOrderedItems(children).forEach(itemData => {\n newMap.set(itemData.value, itemData)\n })\n\n return newMap\n}\n\nexport const hasChildComponent = (children: ReactNode, displayName: string): boolean => {\n return Children.toArray(children).some(child => {\n if (!isValidElement(child)) return false\n\n if (getElementDisplayName(child) === displayName) {\n return true\n } else if ((child.props as { children: ReactNode }).children) {\n return hasChildComponent((child.props as { children: ReactNode }).children, displayName)\n }\n\n return false\n })\n}\n","import { useFormFieldControl } from '@spark-ui/components/form-field'\nimport {\n createContext,\n Dispatch,\n Fragment,\n PropsWithChildren,\n SetStateAction,\n useContext,\n useEffect,\n useId,\n useState,\n} from 'react'\n\nimport { Popover } from '../popover'\nimport { type DownshiftState, type DropdownItem, type ItemsMap } from './types'\nimport { useDropdown } from './useDropdown'\nimport { getElementByIndex, getItemsFromChildren, hasChildComponent } from './utils'\n\nexport interface DropdownContextState extends DownshiftState {\n itemsMap: ItemsMap\n highlightedItem: DropdownItem | undefined\n hasPopover: boolean\n setHasPopover: Dispatch<SetStateAction<boolean>>\n multiple: boolean\n disabled: boolean\n readOnly: boolean\n state?: 'error' | 'alert' | 'success'\n lastInteractionType: 'mouse' | 'keyboard'\n setLastInteractionType: (type: 'mouse' | 'keyboard') => void\n}\n\nexport type DropdownContextCommonProps = PropsWithChildren<{\n /**\n * The controlled open state of the select. Must be used in conjunction with `onOpenChange`.\n */\n open?: boolean\n /**\n * Event handler called when the open state of the select changes.\n */\n onOpenChange?: (isOpen: boolean) => void\n /**\n * The open state of the select when it is initially rendered. Use when you do not need to control its open state.\n */\n defaultOpen?: boolean\n /**\n * Use `state` prop to assign a specific state to the dropdown, choosing from: `error`, `alert` and `success`. By doing so, the outline styles will be updated.\n */\n state?: 'error' | 'alert' | 'success'\n /**\n * When true, prevents the user from interacting with the dropdown.\n */\n disabled?: boolean\n /**\n * Sets the dropdown as interactive or not.\n */\n readOnly?: boolean\n}>\n\ninterface DropdownPropsSingle {\n /**\n * Prop 'multiple' indicating whether multiple values are allowed.\n */\n multiple?: false\n /**\n * The value of the select when initially rendered. Use when you do not need to control the state of the select.\n */\n defaultValue?: string\n /**\n * The controlled value of the select. Should be used in conjunction with `onValueChange`.\n */\n value?: string\n /**\n * Event handler called when the value changes.\n */\n onValueChange?: (value: string) => void\n}\n\ninterface DropdownPropsMultiple {\n /**\n * Prop 'multiple' indicating whether multiple values are allowed.\n */\n multiple: true\n /**\n * The value of the select when initially rendered. Use when you do not need to control the state of the select.\n */\n defaultValue?: string[]\n /**\n * The controlled value of the select. Should be used in conjunction with `onValueChange`.\n */\n value?: string[]\n /**\n * Event handler called when the value changes.\n */\n onValueChange?: (value: string[]) => void\n}\n\nexport type DropdownContextProps = DropdownContextCommonProps &\n (DropdownPropsSingle | DropdownPropsMultiple)\n\nconst DropdownContext = createContext<DropdownContextState | null>(null)\n\nexport const ID_PREFIX = ':dropdown'\n\nexport const DropdownProvider = ({\n children,\n defaultValue,\n value,\n onValueChange,\n open,\n onOpenChange,\n defaultOpen,\n multiple = false,\n disabled: disabledProp = false,\n readOnly: readOnlyProp = false,\n state: stateProp,\n}: DropdownContextProps) => {\n const [itemsMap, setItemsMap] = useState<ItemsMap>(getItemsFromChildren(children))\n const [hasPopover, setHasPopover] = useState<boolean>(\n hasChildComponent(children, 'Dropdown.Popover')\n )\n const [lastInteractionType, setLastInteractionType] = useState<'mouse' | 'keyboard'>('mouse')\n\n const field = useFormFieldControl()\n\n const state = field.state || stateProp\n\n const internalFieldLabelID = `${ID_PREFIX}-label-${useId()}`\n const internalFieldID = `${ID_PREFIX}-input-${useId()}`\n const id = field.id || internalFieldID\n const labelId = field.labelId || internalFieldLabelID\n\n const disabled = field.disabled ?? disabledProp\n const readOnly = field.readOnly ?? readOnlyProp\n\n const dropdownState = useDropdown({\n itemsMap,\n defaultValue,\n value,\n onValueChange,\n open,\n onOpenChange,\n defaultOpen,\n multiple,\n id,\n labelId,\n })\n\n /**\n * Indices in a Map are set when an element is added to the Map.\n * If for some reason, in the Dropdown:\n * - items order changes\n * - items are added\n * - items are removed\n *\n * The Map must be rebuilt from the new children in order to preserve logical indices.\n *\n * Downshift is heavily indices based for keyboard navigation, so it it important.\n */\n useEffect(() => {\n const newMap = getItemsFromChildren(children)\n\n const previousItems = [...itemsMap.values()]\n const newItems = [...newMap.values()]\n\n const hasItemsChanges =\n previousItems.length !== newItems.length ||\n previousItems.some((item, index) => {\n const hasUpdatedValue = item.value !== newItems[index]?.value\n const hasUpdatedText = item.text !== newItems[index]?.text\n\n return hasUpdatedValue || hasUpdatedText\n })\n\n if (hasItemsChanges) {\n setItemsMap(newMap)\n }\n }, [children])\n\n /**\n * Warning:\n * Downshift is expecting the items list to always be rendered, as per a11y guidelines.\n * This is why the `Popover` is always opened in this component, but visually hidden instead from Dropdown.Popover.\n */\n const [WrapperComponent, wrapperProps] = hasPopover ? [Popover, { open: true }] : [Fragment, {}]\n\n return (\n <DropdownContext.Provider\n value={{\n multiple,\n disabled,\n readOnly,\n ...dropdownState,\n itemsMap,\n highlightedItem: getElementByIndex(itemsMap, dropdownState.highlightedIndex),\n hasPopover,\n setHasPopover,\n state,\n lastInteractionType,\n setLastInteractionType,\n }}\n >\n <WrapperComponent {...wrapperProps}>{children}</WrapperComponent>\n </DropdownContext.Provider>\n )\n}\n\nexport const useDropdownContext = () => {\n const context = useContext(DropdownContext)\n\n if (!context) {\n throw Error('useDropdownContext must be used within a Dropdown provider')\n }\n\n return context\n}\n","import { type DropdownContextProps, DropdownProvider } from './DropdownContext'\n\nexport type DropdownProps = DropdownContextProps\n\nexport const Dropdown = ({ children, ...props }: DropdownProps) => {\n return <DropdownProvider {...props}>{children}</DropdownProvider>\n}\n\nDropdown.displayName = 'Dropdown'\n","import { cx } from 'class-variance-authority'\nimport { Ref } from 'react'\n\ninterface DividerProps {\n className?: string\n ref?: Ref<HTMLDivElement>\n}\n\nexport const Divider = ({ className, ref: forwardedRef }: DividerProps) => {\n return <div ref={forwardedRef} className={cx('my-md border-b-sm border-outline', className)} />\n}\n\nDivider.displayName = 'Dropdown.Divider'\n","import { createContext, type PropsWithChildren, useContext, useId } from 'react'\n\nimport { ID_PREFIX } from './DropdownContext'\n\nexport interface DropdownContextState {\n labelId: string\n}\n\ntype DropdownContextProps = PropsWithChildren\n\nconst DropdownGroupContext = createContext<DropdownContextState | null>(null)\n\nexport const DropdownGroupProvider = ({ children }: DropdownContextProps) => {\n const labelId = `${ID_PREFIX}-group-label-${useId()}`\n\n return (\n <DropdownGroupContext.Provider value={{ labelId }}>{children}</DropdownGroupContext.Provider>\n )\n}\n\nexport const useDropdownGroupContext = () => {\n const context = useContext(DropdownGroupContext)\n\n if (!context) {\n throw Error('useDropdownGroupContext must be used within a DropdownGroup provider')\n }\n\n return context\n}\n","import { cx } from 'class-variance-authority'\nimport { ReactNode, Ref } from 'react'\n\nimport { DropdownGroupProvider, useDropdownGroupContext } from './DropdownItemsGroupContext'\n\ninterface GroupProps {\n children: ReactNode\n className?: string\n ref?: Ref<HTMLDivElement>\n}\n\nexport const Group = ({ children, ref: forwardedRef, ...props }: GroupProps) => {\n return (\n <DropdownGroupProvider>\n <GroupContent ref={forwardedRef} {...props}>\n {children}\n </GroupContent>\n </DropdownGroupProvider>\n )\n}\n\nconst GroupContent = ({ children, className, ref: forwardedRef }: GroupProps) => {\n const { labelId } = useDropdownGroupContext()\n\n return (\n <div ref={forwardedRef} role=\"group\" aria-labelledby={labelId} className={cx(className)}>\n {children}\n </div>\n )\n}\n\nGroup.displayName = 'Dropdown.Group'\n","import {\n createContext,\n Dispatch,\n type PropsWithChildren,\n SetStateAction,\n useContext,\n useState,\n} from 'react'\n\nimport { useDropdownContext } from './DropdownContext'\nimport { DropdownItem } from './types'\nimport { getIndexByKey, getItemText } from './utils'\n\ntype ItemTextId = string | undefined\n\ninterface DropdownItemContextState {\n textId: ItemTextId\n setTextId: Dispatch<SetStateAction<ItemTextId>>\n isSelected: boolean\n itemData: DropdownItem\n index: number\n disabled: boolean\n}\n\nconst DropdownItemContext = createContext<DropdownItemContextState | null>(null)\n\nexport const DropdownItemProvider = ({\n value,\n disabled = false,\n children,\n}: PropsWithChildren<{ value: string; disabled?: boolean }>) => {\n const { multiple, itemsMap, selectedItem, selectedItems } = useDropdownContext()\n\n const [textId, setTextId] = useState<ItemTextId>(undefined)\n\n const index = getIndexByKey(itemsMap, value)\n const itemData: DropdownItem = { disabled, value, text: getItemText(children) }\n\n const isSelected = multiple\n ? selectedItems.some(selectedItem => selectedItem.value === value)\n : selectedItem?.value === value\n\n return (\n <DropdownItemContext.Provider\n value={{ textId, setTextId, isSelected, itemData, index, disabled }}\n >\n {children}\n </DropdownItemContext.Provider>\n )\n}\n\nexport const useDropdownItemContext = () => {\n const context = useContext(DropdownItemContext)\n\n if (!context) {\n throw Error('useDropdownItemContext must be used within a DropdownItem provider')\n }\n\n return context\n}\n","import { useMergeRefs } from '@spark-ui/hooks/use-merge-refs'\nimport { cva, cx } from 'class-variance-authority'\nimport { type HTMLAttributes, type ReactNode, Ref } from 'react'\n\nimport { useDropdownContext } from './DropdownContext'\nimport { DropdownItemProvider, useDropdownItemContext } from './DropdownItemContext'\n\nexport interface ItemProps extends HTMLAttributes<HTMLLIElement> {\n disabled?: boolean\n value: string\n children: ReactNode\n className?: string\n ref?: Ref<HTMLLIElement>\n}\n\nexport const Item = ({ children, ref: forwardedRef, ...props }: ItemProps) => {\n const { value, disabled } = props\n\n return (\n <DropdownItemProvider value={value} disabled={disabled}>\n <ItemContent ref={forwardedRef} {...props}>\n {children}\n </ItemContent>\n </DropdownItemProvider>\n )\n}\n\nconst styles = cva('px-lg py-md text-body-1', {\n variants: {\n selected: {\n true: 'font-bold',\n },\n disabled: {\n true: 'opacity-dim-3 cursor-not-allowed',\n false: 'cursor-pointer',\n },\n highlighted: {\n true: '',\n },\n interactionType: {\n mouse: '',\n keyboard: '',\n },\n },\n compoundVariants: [\n {\n highlighted: true,\n interactionType: 'mouse',\n class: 'bg-surface-hovered',\n },\n {\n highlighted: true,\n interactionType: 'keyboard',\n class: 'u-outline',\n },\n ],\n})\n\nconst ItemContent = ({\n className,\n disabled = false,\n value,\n children,\n ref: forwardedRef,\n}: ItemProps) => {\n const { getItemProps, highlightedItem, lastInteractionType } = useDropdownContext()\n const { textId, index, itemData, isSelected } = useDropdownItemContext()\n\n const isHighlighted = highlightedItem?.value === value\n\n const { ref: downshiftRef, ...downshiftItemProps } = getItemProps({ item: itemData, index })\n const ref = useMergeRefs(forwardedRef, downshiftRef)\n\n return (\n <li\n ref={ref}\n className={cx(\n styles({\n selected: isSelected,\n disabled,\n highlighted: isHighlighted,\n interactionType: lastInteractionType,\n className,\n })\n )}\n key={value}\n {...downshiftItemProps}\n aria-selected={isSelected}\n aria-labelledby={textId}\n >\n {children}\n </li>\n )\n}\n\nItem.displayName = 'Dropdown.Item'\n","import { Check } from '@spark-ui/icons/Check'\nimport { cx } from 'class-variance-authority'\nimport { ReactNode, Ref } from 'react'\n\nimport { Icon } from '../icon'\nimport { useDropdownItemContext } from './DropdownItemContext'\n\nexport interface ItemIndicatorProps {\n children?: ReactNode\n className?: string\n label?: string\n ref?: Ref<HTMLSpanElement>\n}\n\nexport const ItemIndicator = ({\n className,\n children,\n label,\n ref: forwardedRef,\n}: ItemIndicatorProps) => {\n const { disabled, isSelected } = useDropdownItemContext()\n\n const childElement = children || (\n <Icon size=\"sm\">\n <Check aria-label={label} />\n </Icon>\n )\n\n return (\n <span\n ref={forwardedRef}\n className={cx('min-h-sz-16 min-w-sz-16 flex', disabled && 'opacity-dim-3', className)}\n >\n {isSelected && childElement}\n </span>\n )\n}\n\nItemIndicator.displayName = 'Dropdown.ItemIndicator'\n","import { useMergeRefs } from '@spark-ui/hooks/use-merge-refs'\nimport { cx } from 'class-variance-authority'\nimport { ReactNode, Ref, useLayoutEffect, useRef } from 'react'\n\nimport { useDropdownContext } from './DropdownContext'\n\ninterface ItemsProps {\n children: ReactNode\n className?: string\n ref?: Ref<HTMLUListElement>\n}\n\n/**\n * BUGFIX\n *\n * 1. The !pointer-events-auto class is needed to prevent a bug\n * which cannot be reproduced when running Storybook locally,\n * in scenarios such as when a Dropdown is nested within a Dialog,\n * the \"props\" object, containing styles computed by Radix\n * may erroneously contain \"pointerEvents = 'none'\", while the Dropdown is open,\n * making it impossible to select a value using a pointer device\n */\n\nexport const Items = ({ children, className, ref: forwardedRef, ...props }: ItemsProps) => {\n const { isOpen, getMenuProps, hasPopover, setLastInteractionType } = useDropdownContext()\n\n const { ref: downshiftRef, ...downshiftMenuProps } = getMenuProps({\n onMouseMove: () => {\n setLastInteractionType('mouse')\n },\n })\n\n const innerRef = useRef<HTMLElement>(null)\n\n const ref = useMergeRefs(forwardedRef, downshiftRef, innerRef)\n\n useLayoutEffect(() => {\n if (!hasPopover) return\n if (!innerRef.current) return\n\n if (innerRef.current.parentElement) {\n innerRef.current.parentElement.style.pointerEvents = isOpen ? '' : 'none'\n innerRef.current.style.pointerEvents = isOpen ? '' : 'none'\n }\n }, [isOpen, hasPopover])\n\n return (\n <ul\n ref={ref}\n className={cx(\n className,\n 'flex flex-col',\n isOpen\n ? 'pointer-events-auto! block' /* 1 */\n : 'pointer-events-none invisible absolute opacity-0',\n hasPopover && 'p-lg'\n )}\n {...props}\n {...downshiftMenuProps}\n /**\n * When used inside a Radix dialog/drawer, the focus trap behaviour of Radix prevent scrolling and hovering inside absolutely positioned elements in the dialog.\n * It does programatically in JS using the `style` attribute.\n *\n * Issue is known but there is no clear fix in sight: https://github.com/radix-ui/primitives/issues/1159\n *\n * A solution would be to make an abstraction of `Dialog.Overlay` instead of using the radix one, but that would mean managing body scroll freeze and scrollbar shifting ourselves.\n *\n */\n data-spark-component=\"dropdown-items\"\n >\n {children}\n </ul>\n )\n}\n\nItems.displayName = 'Dropdown.Items'\n","import { cx } from 'class-variance-authority'\nimport { Ref, useEffect, useId } from 'react'\n\nimport { ID_PREFIX } from './DropdownContext'\nimport { useDropdownItemContext } from './DropdownItemContext'\n\nexport interface ItemTextProps {\n children: string\n ref?: Ref<HTMLSpanElement>\n}\n\nexport const ItemText = ({ children, ref: forwardedRef }: ItemTextProps) => {\n const id = `${ID_PREFIX}-item-text-${useId()}`\n\n const { setTextId } = useDropdownItemContext()\n\n useEffect(() => {\n setTextId(id)\n\n return () => setTextId(undefined)\n })\n\n return (\n <span id={id} className={cx('inline')} ref={forwardedRef}>\n {children}\n </span>\n )\n}\n\nItemText.displayName = 'Dropdown.ItemText'\n","import { cx } from 'class-variance-authority'\nimport { Ref } from 'react'\n\nimport { useDropdownGroupContext } from './DropdownItemsGroupContext'\n\ninterface LabelProps {\n children: string\n className?: string\n ref?: Ref<HTMLDivElement>\n}\n\nexport const Label = ({ children, className, ref: forwardedRef }: LabelProps) => {\n const { labelId } = useDropdownGroupContext()\n\n return (\n <div\n ref={forwardedRef}\n id={labelId}\n className={cx('px-md py-sm text-body-2 text-neutral italic', className)}\n >\n {children}\n </div>\n )\n}\n\nLabel.displayName = 'Dropdown.Label'\n","import { ReactElement } from 'react'\n\nimport { Icon } from '../icon'\n\nexport const LeadingIcon = ({ children }: { children: ReactElement }) => {\n return (\n <Icon size={'sm'} className=\"shrink-0\">\n {children}\n </Icon>\n )\n}\n\nLeadingIcon.displayName = 'Dropdown.LeadingIcon'\n","import { cx } from 'class-variance-authority'\nimport { ComponentProps, useEffect } from 'react'\n\nimport { Popover as SparkPopover } from '../popover'\nimport { useDropdownContext } from './DropdownContext'\n\nexport const Popover = ({\n children,\n matchTriggerWidth = true,\n sideOffset = 4,\n className,\n elevation = 'dropdown',\n ref: forwardedRef,\n ...props\n}: ComponentProps<typeof SparkPopover.Content>) => {\n const ctx = useDropdownContext()\n\n useEffect(() => {\n ctx.setHasPopover(true)\n\n return () => ctx.setHasPopover(false)\n }, [])\n\n return (\n <SparkPopover.Content\n ref={forwardedRef}\n inset\n asChild\n matchTriggerWidth={matchTriggerWidth}\n elevation={elevation}\n className={cx('relative', className)}\n sideOffset={sideOffset}\n onOpenAutoFocus={e => {\n /**\n * With a combobox pattern, the focus should remain on the trigger at all times.\n * Passing the focus to the dropdown popover would break keyboard navigation.\n */\n e.preventDefault()\n }}\n {...props}\n data-spark-component=\"dropdown-popover\"\n >\n {children}\n </SparkPopover.Content>\n )\n}\n\nPopover.displayName = 'Dropdown.Popover'\n","import { ReactElement } from 'react'\n\nimport { Popover as SparkPopover } from '../popover'\n\nexport const Portal: typeof SparkPopover.Portal = ({ children, ...rest }): ReactElement => (\n <SparkPopover.Portal {...rest}>{children}</SparkPopover.Portal>\n)\n\nPortal.displayName = 'Dropdown.Portal'\n","import { cva } from 'class-variance-authority'\n\nexport const styles = cva(\n [\n 'flex w-full items-center justify-between',\n 'min-h-sz-44 rounded-lg bg-surface text-on-surface px-lg',\n 'text-body-1',\n // outline styles\n 'ring-1 outline-hidden ring-inset focus:ring-2 focus:ring-focus',\n ],\n {\n variants: {\n state: {\n undefined: 'ring-outline',\n error: 'ring-error',\n alert: 'ring-alert',\n success: 'ring-success',\n },\n disabled: {\n true: 'disabled:bg-on-surface/dim-5 cursor-not-allowed text-on-surface/dim-3',\n },\n readOnly: {\n true: 'disabled:bg-on-surface/dim-5 cursor-not-allowed text-on-surface/dim-3',\n },\n },\n compoundVariants: [\n {\n disabled: false,\n state: undefined,\n class: 'default:hover:ring-outline-high',\n },\n ],\n }\n)\n","import { useMergeRefs } from '@spark-ui/hooks/use-merge-refs'\nimport { ArrowHorizontalDown } from '@spark-ui/icons/ArrowHorizontalDown'\nimport { cx } from 'class-variance-authority'\nimport { Fragment, ReactNode, Ref } from 'react'\n\nimport { Icon } from '../icon'\nimport { Popover } from '../popover'\nimport { VisuallyHidden } from '../visually-hidden'\nimport { useDropdownContext } from './DropdownContext'\nimport { styles } from './DropdownTrigger.styles'\n\ninterface TriggerProps {\n 'aria-label'?: string\n children: ReactNode\n className?: string\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const Trigger = ({\n 'aria-label': ariaLabel,\n children,\n className,\n ref: forwardedRef,\n}: TriggerProps) => {\n const {\n getToggleButtonProps,\n getDropdownProps,\n getLabelProps,\n hasPopover,\n disabled,\n readOnly,\n state,\n setLastInteractionType,\n } = useDropdownContext()\n\n const [WrapperComponent, wrapperProps] = hasPopover\n ? [Popover.Trigger, { asChild: true }]\n : [Fragment, {}]\n\n const { ref: downshiftRef, ...downshiftTriggerProps } = getToggleButtonProps({\n ...getDropdownProps(),\n onKeyDown: () => {\n setLastInteractionType('keyboard')\n },\n })\n\n const isExpanded = downshiftTriggerProps['aria-expanded']\n\n const ref = useMergeRefs(forwardedRef, downshiftRef)\n\n return (\n <>\n {ariaLabel && (\n <VisuallyHidden>\n <label {...getLabelProps()}>{ariaLabel}</label>\n </VisuallyHidden>\n )}\n <WrapperComponent {...wrapperProps}>\n <button\n type=\"button\"\n ref={ref}\n disabled={disabled || readOnly}\n className={styles({ className, state, disabled, readOnly })}\n {...downshiftTriggerProps}\n data-spark-component=\"dropdown-trigger\"\n >\n <span className=\"gap-md flex items-center justify-start\">{children}</span>\n\n <Icon\n className={cx('ml-md shrink-0 rotate-0 transition duration-100 ease-in', {\n 'rotate-180': isExpanded,\n })}\n size=\"sm\"\n >\n <ArrowHorizontalDown />\n </Icon>\n </button>\n </WrapperComponent>\n </>\n )\n}\n\nTrigger.displayName = 'Dropdown.Trigger'\n","import { cx } from 'class-variance-authority'\nimport { ReactNode, Ref } from 'react'\n\nimport { useDropdownContext } from './DropdownContext'\n\nexport interface ValueProps {\n children?: ReactNode\n className?: string\n placeholder: string\n ref?: Ref<HTMLSpanElement>\n}\n\nexport const Value = ({ children, className, placeholder, ref: forwardedRef }: ValueProps) => {\n const { selectedItem, multiple, selectedItems } = useDropdownContext()\n\n const hasSelectedItems = !!(multiple ? selectedItems.length : selectedItem)\n const text = multiple ? selectedItems[0]?.text : selectedItem?.text\n const suffix = selectedItems.length > 1 ? `, +${selectedItems.length - 1}` : ''\n\n return (\n <span ref={forwardedRef} className={cx('flex shrink items-center text-left', className)}>\n <span\n className={cx(\n 'line-clamp-1 flex-1 overflow-hidden break-all text-ellipsis',\n !hasSelectedItems && 'text-on-surface/dim-1'\n )}\n >\n {!hasSelectedItems ? placeholder : children || text}\n </span>\n {suffix && <span>{suffix}</span>}\n </span>\n )\n}\n\nValue.displayName = 'Dropdown.Value'\n","import { Dropdown as Root } from './Dropdown'\nimport { DropdownProvider, useDropdownContext } from './DropdownContext'\nimport { Divider } from './DropdownDivider'\nimport { Group } from './DropdownGroup'\nimport { Item } from './DropdownItem'\nimport { ItemIndicator } from './DropdownItemIndicator'\nimport { Items } from './DropdownItems'\nimport { ItemText } from './DropdownItemText'\nimport { Label } from './DropdownLabel'\nimport { LeadingIcon } from './DropdownLeadingIcon'\nimport { Popover } from './DropdownPopover'\nimport { Portal } from './DropdownPortal'\nimport { Trigger } from './DropdownTrigger'\nimport { Value } from './DropdownValue'\n\nexport { useDropdownContext, DropdownProvider }\n\nexport const Dropdown: typeof Root & {\n Group: typeof Group\n Item: typeof Item\n Items: typeof Items\n ItemText: typeof ItemText\n ItemIndicator: typeof ItemIndicator\n Label: typeof Label\n Popover: typeof Popover\n Divider: typeof Divider\n Trigger: typeof Trigger\n Value: typeof Value\n LeadingIcon: typeof LeadingIcon\n Portal: typeof Portal\n} = Object.assign(Root, {\n Group,\n Item,\n Items,\n ItemText,\n ItemIndicator,\n Label,\n Popover,\n Divider,\n Trigger,\n Value,\n LeadingIcon,\n Portal,\n})\n\nDropdown.displayName = 'Dropdown'\nGroup.displayName = 'Dropdown.Group'\nItems.displayName = 'Dropdown.Items'\nItem.displayName = 'Dropdown.Item'\nItemText.displayName = 'Dropdown.ItemText'\nItemIndicator.displayName = 'Dropdown.ItemIndicator'\nLabel.displayName = 'Dropdown.Label'\nPopover.displayName = 'Dropdown.Popover'\nDivider.displayName = 'Dropdown.Divider'\nTrigger.displayName = 'Dropdown.Trigger'\nValue.displayName = 'Dropdown.Value'\nLeadingIcon.displayName = 'Dropdown.LeadingIcon'\nPortal.displayName = 'Dropdown.Portal'\n"],"names":["useDropdown","itemsMap","defaultValue","value","onValueChange","open","onOpenChange","defaultOpen","multiple","id","labelId","items","downshiftMultipleSelection","useMultipleSelection","item","selectedItems","useSelect","isOpen","state","changes","type","removeSelectedItem","addSelectedItem","selectedItem","node","getIndexByKey","map","targetKey","index","key","getKeyAtIndex","i","getElementByIndex","getElementDisplayName","element","getOrderedItems","children","result","Children","child","isValidElement","childProps","getItemText","itemText","getItemsFromChildren","newMap","itemData","hasChildComponent","displayName","DropdownContext","createContext","ID_PREFIX","DropdownProvider","disabledProp","readOnlyProp","stateProp","setItemsMap","useState","hasPopover","setHasPopover","lastInteractionType","setLastInteractionType","field","useFormFieldControl","internalFieldLabelID","useId","internalFieldID","disabled","readOnly","dropdownState","useEffect","previousItems","newItems","hasUpdatedValue","hasUpdatedText","WrapperComponent","wrapperProps","Popover","Fragment","jsx","useDropdownContext","context","useContext","Dropdown","props","Divider","className","forwardedRef","cx","DropdownGroupContext","DropdownGroupProvider","useDropdownGroupContext","Group","GroupContent","DropdownItemContext","DropdownItemProvider","textId","setTextId","isSelected","useDropdownItemContext","Item","ItemContent","styles","cva","getItemProps","highlightedItem","isHighlighted","downshiftRef","downshiftItemProps","ref","useMergeRefs","ItemIndicator","label","childElement","Icon","Check","Items","getMenuProps","downshiftMenuProps","innerRef","useRef","useLayoutEffect","ItemText","Label","LeadingIcon","matchTriggerWidth","sideOffset","elevation","ctx","SparkPopover","e","Portal","rest","Trigger","ariaLabel","getToggleButtonProps","getDropdownProps","getLabelProps","downshiftTriggerProps","isExpanded","jsxs","VisuallyHidden","ArrowHorizontalDown","Value","placeholder","hasSelectedItems","text","suffix","Root"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { UseMultipleSelectionReturnValue, UseSelectReturnValue } from 'downshift';
2
+ export interface DropdownItem {
3
+ disabled: boolean;
4
+ value: string;
5
+ text: string;
6
+ }
7
+ export type ItemsMap = Map<string, DropdownItem>;
8
+ export type DownshiftState = UseSelectReturnValue<DropdownItem> & UseMultipleSelectionReturnValue<DropdownItem>;
@@ -0,0 +1,41 @@
1
+ import { DropdownItem, ItemsMap } from './types';
2
+ export interface DownshiftProps {
3
+ itemsMap: ItemsMap;
4
+ value: string | string[] | undefined;
5
+ defaultValue: string | string[] | undefined;
6
+ onValueChange: ((value: string) => void) | ((value: string[]) => void) | undefined;
7
+ open: boolean | undefined;
8
+ onOpenChange: ((isOpen: boolean) => void) | undefined;
9
+ defaultOpen: boolean | undefined;
10
+ multiple: boolean | undefined;
11
+ id: string;
12
+ labelId: string;
13
+ }
14
+ /**
15
+ * This hook abstract the complexity of using downshift with both single and multiple selection.
16
+ */
17
+ export declare const useDropdown: ({ itemsMap, defaultValue, value, onValueChange, open, onOpenChange, defaultOpen, multiple, id, labelId, }: DownshiftProps) => {
18
+ /** There is a Downshift bug in React 19, it duplicates some selectedItems */
19
+ selectedItems: DropdownItem[];
20
+ activeIndex: number;
21
+ getDropdownProps: <Options>(options?: import('downshift').UseMultipleSelectionGetDropdownPropsOptions & Options, extraOptions?: import('downshift').GetPropsCommonOptions) => Omit<import('downshift').Overwrite<import('downshift').UseMultipleSelectionGetDropdownReturnValue, Options>, "preventKeyAction">;
22
+ getSelectedItemProps: <Options>(options: import('downshift').UseMultipleSelectionGetSelectedItemPropsOptions<DropdownItem> & Options) => Omit<import('downshift').Overwrite<import('downshift').UseMultipleSelectionGetSelectedItemReturnValue, Options>, "index" | "selectedItem">;
23
+ reset: () => void;
24
+ addSelectedItem: (item: DropdownItem) => void;
25
+ removeSelectedItem: (item: DropdownItem) => void;
26
+ setSelectedItems: (items: DropdownItem[]) => void;
27
+ setActiveIndex: (index: number) => void;
28
+ highlightedIndex: number;
29
+ selectedItem: DropdownItem | null;
30
+ isOpen: boolean;
31
+ inputValue: string;
32
+ getToggleButtonProps: <Options>(options?: import('downshift').UseSelectGetToggleButtonPropsOptions & Options, otherOptions?: import('downshift').GetPropsCommonOptions) => import('downshift').Overwrite<import('downshift').UseSelectGetToggleButtonReturnValue, Options>;
33
+ getLabelProps: <Options>(options?: import('downshift').UseSelectGetLabelPropsOptions & Options) => import('downshift').Overwrite<import('downshift').UseSelectGetLabelPropsReturnValue, Options>;
34
+ getMenuProps: <Options>(options?: import('downshift').UseSelectGetMenuPropsOptions & Options, otherOptions?: import('downshift').GetPropsCommonOptions) => import('downshift').Overwrite<import('downshift').UseSelectGetMenuReturnValue, Options>;
35
+ getItemProps: <Options>(options: import('downshift').UseSelectGetItemPropsOptions<DropdownItem> & Options) => Omit<import('downshift').Overwrite<import('downshift').UseSelectGetItemPropsReturnValue, Options>, "item" | "index">;
36
+ openMenu: () => void;
37
+ closeMenu: () => void;
38
+ toggleMenu: () => void;
39
+ selectItem: (item: DropdownItem | null) => void;
40
+ setHighlightedIndex: (index: number) => void;
41
+ };
@@ -0,0 +1,13 @@
1
+ import { ReactNode } from 'react';
2
+ import { DropdownItem, ItemsMap } from './types';
3
+ export declare function getIndexByKey(map: ItemsMap, targetKey: string): number;
4
+ export declare const getElementByIndex: (map: ItemsMap, index: number) => DropdownItem | undefined;
5
+ export declare const getOrderedItems: (children: ReactNode, result?: DropdownItem[]) => DropdownItem[];
6
+ /**
7
+ * If Dropdown.Item children:
8
+ * - is a string, then the string is used.
9
+ * - is JSX markup, then we look for Dropdown.ItemText to get its string value.
10
+ */
11
+ export declare const getItemText: (children: ReactNode, itemText?: string) => string;
12
+ export declare const getItemsFromChildren: (children: ReactNode) => ItemsMap;
13
+ export declare const hasChildComponent: (children: ReactNode, displayName: string) => boolean;
@@ -0,0 +1,130 @@
1
+ import { ReactNode, Ref } from 'react';
2
+ import { FileAcceptDetails, FileChangeDetails, FileRejectDetails, FileUploadFileError, RejectedFile } from './useFileUploadState';
3
+ export type { FileAcceptDetails, FileChangeDetails, FileRejectDetails, FileUploadFileError, RejectedFile, };
4
+ export interface FileUploadProps {
5
+ /**
6
+ * Change the default rendered element for the one passed as a child, merging their props and behavior.
7
+ */
8
+ asChild?: boolean;
9
+ ref?: Ref<HTMLDivElement>;
10
+ children: ReactNode;
11
+ className?: string;
12
+ /**
13
+ * Initial files to display when the component mounts (uncontrolled mode)
14
+ */
15
+ defaultValue?: File[];
16
+ /**
17
+ * Controlled files value (controlled mode)
18
+ * When provided, the component becomes controlled
19
+ */
20
+ value?: File[];
21
+ /**
22
+ * Callback when files are accepted
23
+ * @param details - Details about the accepted files
24
+ */
25
+ onFileAccept?: (details: FileAcceptDetails) => void;
26
+ /**
27
+ * Callback when files are rejected
28
+ * @param details - Details about the rejected files and their errors
29
+ */
30
+ onFileReject?: (details: FileRejectDetails) => void;
31
+ /**
32
+ * Callback when files change (both accepted and rejected)
33
+ * For controlled mode, use this to update the value prop by extracting details.acceptedFiles
34
+ * @param details - Details about both accepted and rejected files
35
+ */
36
+ onFileChange?: (details: FileChangeDetails) => void;
37
+ /**
38
+ * Whether multiple files can be selected
39
+ * @default true
40
+ */
41
+ multiple?: boolean;
42
+ /**
43
+ * Comma-separated list of accepted file types
44
+ * Supports MIME types (e.g., "image/*", "image/png", "application/pdf")
45
+ * and file extensions (e.g., ".pdf", ".doc", ".jpg")
46
+ * @example "image/*"
47
+ * @example ".pdf,.doc"
48
+ * @example "image/png,image/jpeg,.pdf"
49
+ */
50
+ accept?: string;
51
+ /**
52
+ * Maximum number of files that can be uploaded
53
+ * Files beyond this limit will be rejected
54
+ */
55
+ maxFiles?: number;
56
+ /**
57
+ * Maximum file size in bytes
58
+ * Files larger than this will be rejected
59
+ */
60
+ maxFileSize?: number;
61
+ /**
62
+ * Minimum file size in bytes
63
+ * Files smaller than this will be rejected
64
+ */
65
+ minFileSize?: number;
66
+ /**
67
+ * When `true`, prevents the user from interacting with the file upload
68
+ */
69
+ disabled?: boolean;
70
+ /**
71
+ * When `true`, sets the file upload to read-only mode
72
+ */
73
+ readOnly?: boolean;
74
+ /**
75
+ * The [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt) language code for the locale.
76
+ * Used for formatting file sizes and error messages.
77
+ * @default Browser locale or 'en' if not available
78
+ */
79
+ locale?: string;
80
+ }
81
+ export declare const FileUploadContext: import('react').Context<{
82
+ inputRef: React.RefObject<HTMLInputElement | null>;
83
+ files: File[];
84
+ rejectedFiles: RejectedFile[];
85
+ addFiles: (files: File[]) => void;
86
+ removeFile: (index: number) => void;
87
+ removeRejectedFile: (index: number) => void;
88
+ clearFiles: () => void;
89
+ clearRejectedFiles: () => void;
90
+ triggerRef: React.RefObject<HTMLElement | null>;
91
+ dropzoneRef: React.RefObject<HTMLElement | null>;
92
+ deleteButtonRefs: React.MutableRefObject<HTMLButtonElement[]>;
93
+ rejectedFileDeleteButtonRefs: React.MutableRefObject<HTMLButtonElement[]>;
94
+ multiple: boolean;
95
+ maxFiles?: number;
96
+ maxFilesReached: boolean;
97
+ disabled: boolean;
98
+ readOnly: boolean;
99
+ locale: string;
100
+ description?: string;
101
+ isInvalid?: boolean;
102
+ isRequired?: boolean;
103
+ } | null>;
104
+ export declare const FileUpload: {
105
+ ({ asChild: _asChild, children, defaultValue, value: controlledValue, onFileAccept, onFileReject, onFileChange, multiple, accept, maxFiles, maxFileSize, minFileSize, disabled: disabledProp, readOnly: readOnlyProp, locale, }: FileUploadProps): import("react/jsx-runtime").JSX.Element;
106
+ displayName: string;
107
+ };
108
+ export declare const useFileUploadContext: () => {
109
+ inputRef: React.RefObject<HTMLInputElement | null>;
110
+ files: File[];
111
+ rejectedFiles: RejectedFile[];
112
+ addFiles: (files: File[]) => void;
113
+ removeFile: (index: number) => void;
114
+ removeRejectedFile: (index: number) => void;
115
+ clearFiles: () => void;
116
+ clearRejectedFiles: () => void;
117
+ triggerRef: React.RefObject<HTMLElement | null>;
118
+ dropzoneRef: React.RefObject<HTMLElement | null>;
119
+ deleteButtonRefs: React.MutableRefObject<HTMLButtonElement[]>;
120
+ rejectedFileDeleteButtonRefs: React.MutableRefObject<HTMLButtonElement[]>;
121
+ multiple: boolean;
122
+ maxFiles?: number;
123
+ maxFilesReached: boolean;
124
+ disabled: boolean;
125
+ readOnly: boolean;
126
+ locale: string;
127
+ description?: string;
128
+ isInvalid?: boolean;
129
+ isRequired?: boolean;
130
+ };
@@ -0,0 +1,25 @@
1
+ import { ComponentPropsWithoutRef, Ref } from 'react';
2
+ export interface FileUploadAcceptedFileProps extends ComponentPropsWithoutRef<'li'> {
3
+ ref?: Ref<HTMLLIElement>;
4
+ /**
5
+ * The file to display
6
+ */
7
+ file: File;
8
+ /**
9
+ * Upload progress value (0-100). When provided, displays a progress bar at the bottom of the file item.
10
+ */
11
+ uploadProgress?: number;
12
+ /**
13
+ * Accessible label for the delete button
14
+ */
15
+ deleteButtonAriaLabel: string;
16
+ /**
17
+ * Accessible label for the progress bar. Required when uploadProgress is provided.
18
+ */
19
+ progressAriaLabel?: string;
20
+ className?: string;
21
+ }
22
+ export declare const AcceptedFile: {
23
+ ({ className, file, uploadProgress, deleteButtonAriaLabel, progressAriaLabel, ...props }: FileUploadAcceptedFileProps): import("react/jsx-runtime").JSX.Element;
24
+ displayName: string;
25
+ };
@@ -0,0 +1,17 @@
1
+ import { ReactNode } from 'react';
2
+ import { RejectedFile } from './FileUpload';
3
+ export interface FileUploadContextProps {
4
+ /**
5
+ * Render prop that receives acceptedFiles, rejectedFiles, formatFileSize, and locale
6
+ */
7
+ children: (props: {
8
+ acceptedFiles: File[];
9
+ rejectedFiles: RejectedFile[];
10
+ formatFileSize: (bytes: number, locale?: string) => string;
11
+ locale?: string;
12
+ }) => ReactNode;
13
+ }
14
+ export declare const Context: {
15
+ ({ children }: FileUploadContextProps): import("react/jsx-runtime").JSX.Element;
16
+ displayName: string;
17
+ };
@@ -0,0 +1,10 @@
1
+ export declare const DropzoneContext: import('react').Context<boolean>;
2
+ export declare const useDropzoneContext: () => boolean;
3
+ export declare function Dropzone({ children, className, unstyled, }: {
4
+ children?: React.ReactNode;
5
+ className?: string;
6
+ unstyled?: boolean;
7
+ }): import("react/jsx-runtime").JSX.Element;
8
+ export declare namespace Dropzone {
9
+ var displayName: string;
10
+ }
@@ -0,0 +1,11 @@
1
+ import { IconButton } from '../icon-button';
2
+ export interface FileUploadItemDeleteTriggerProps extends React.ComponentProps<typeof IconButton> {
3
+ /**
4
+ * The file to delete
5
+ */
6
+ file: File;
7
+ }
8
+ export declare const ItemDeleteTrigger: {
9
+ ({ className, file, onClick, ...props }: FileUploadItemDeleteTriggerProps): import("react/jsx-runtime").JSX.Element;
10
+ displayName: string;
11
+ };
@@ -0,0 +1,17 @@
1
+ import { ComponentPropsWithoutRef, Ref } from 'react';
2
+ export interface FileUploadPreviewImageProps extends ComponentPropsWithoutRef<'div'> {
3
+ ref?: Ref<HTMLDivElement>;
4
+ className?: string;
5
+ /**
6
+ * The file to preview
7
+ */
8
+ file: File;
9
+ /**
10
+ * Fallback content when file is not an image or preview fails
11
+ */
12
+ fallback?: React.ReactNode;
13
+ }
14
+ export declare const PreviewImage: {
15
+ ({ className, file, fallback, ...props }: FileUploadPreviewImageProps): import("react/jsx-runtime").JSX.Element;
16
+ displayName: string;
17
+ };
@@ -0,0 +1,24 @@
1
+ import { ComponentPropsWithoutRef, Ref } from 'react';
2
+ import { FileUploadFileError, RejectedFile as RejectedFileType } from './FileUpload';
3
+ export interface FileUploadRejectedFileProps extends ComponentPropsWithoutRef<'li'> {
4
+ ref?: Ref<HTMLLIElement>;
5
+ /**
6
+ * The rejected file to display
7
+ */
8
+ rejectedFile: RejectedFileType;
9
+ /**
10
+ * Function to render the error message for each error code
11
+ * @param error - The error code
12
+ * @returns The error message to display
13
+ */
14
+ renderError: (error: FileUploadFileError) => string;
15
+ /**
16
+ * Accessible label for the delete button
17
+ */
18
+ deleteButtonAriaLabel: string;
19
+ className?: string;
20
+ }
21
+ export declare const RejectedFile: {
22
+ ({ className, rejectedFile, renderError, deleteButtonAriaLabel, ...props }: FileUploadRejectedFileProps): import("react/jsx-runtime").JSX.Element;
23
+ displayName: string;
24
+ };
@@ -0,0 +1,12 @@
1
+ import { IconButton } from '../icon-button';
2
+ import { RejectedFile as RejectedFileType } from './FileUpload';
3
+ export interface FileUploadRejectedFileDeleteTriggerProps extends React.ComponentProps<typeof IconButton> {
4
+ /**
5
+ * The rejected file to remove
6
+ */
7
+ rejectedFile: RejectedFileType;
8
+ }
9
+ export declare const RejectedFileDeleteTrigger: {
10
+ ({ className, rejectedFile, onClick, ...props }: FileUploadRejectedFileDeleteTriggerProps): import("react/jsx-runtime").JSX.Element;
11
+ displayName: string;
12
+ };
@@ -0,0 +1,12 @@
1
+ import { ReactNode, Ref } from 'react';
2
+ import { ButtonProps } from '../button';
3
+ export interface FileUploadTriggerProps extends Omit<ButtonProps, 'children' | 'disabled'> {
4
+ ref?: Ref<HTMLButtonElement>;
5
+ className?: string;
6
+ children: ReactNode;
7
+ unstyled?: boolean;
8
+ }
9
+ export declare const Trigger: {
10
+ ({ className, children, asChild, unstyled, design, intent, size, shape, ref, ...props }: FileUploadTriggerProps): import("react/jsx-runtime").JSX.Element;
11
+ displayName: string;
12
+ };
@@ -0,0 +1,29 @@
1
+ /**
2
+ * File upload error codes
3
+ */
4
+ export declare const FILE_UPLOAD_ERRORS: {
5
+ /**
6
+ * Exceeds the maxFiles limit
7
+ */
8
+ readonly TOO_MANY_FILES: "TOO_MANY_FILES";
9
+ /**
10
+ * File type not in the accept list
11
+ */
12
+ readonly FILE_INVALID_TYPE: "FILE_INVALID_TYPE";
13
+ /**
14
+ * File size exceeds maxFileSize
15
+ */
16
+ readonly FILE_TOO_LARGE: "FILE_TOO_LARGE";
17
+ /**
18
+ * File size below minFileSize
19
+ */
20
+ readonly FILE_TOO_SMALL: "FILE_TOO_SMALL";
21
+ /**
22
+ * Generic validation failure
23
+ */
24
+ readonly FILE_INVALID: "FILE_INVALID";
25
+ /**
26
+ * Duplicate file detected
27
+ */
28
+ readonly FILE_EXISTS: "FILE_EXISTS";
29
+ };