@spark-ui/components 13.1.3 → 13.1.4

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 (826) hide show
  1. package/dist/Input-N8AWWSmt.d.mts +41 -0
  2. package/dist/Input-N8AWWSmt.d.ts +41 -0
  3. package/dist/InputTrailingIcon-BBp7sE6D.d.mts +20 -0
  4. package/dist/InputTrailingIcon-ZZx8PoJy.d.ts +20 -0
  5. package/dist/LabelRequiredIndicator-DRnCzHMU.d.mts +19 -0
  6. package/dist/LabelRequiredIndicator-DRnCzHMU.d.ts +19 -0
  7. package/dist/accordion/index.d.mts +73 -0
  8. package/dist/accordion/index.d.ts +68 -10
  9. package/dist/accordion/index.js +325 -2
  10. package/dist/accordion/index.js.map +1 -1
  11. package/dist/accordion/index.mjs +154 -632
  12. package/dist/accordion/index.mjs.map +1 -1
  13. package/dist/alert-dialog/index.d.mts +159 -0
  14. package/dist/alert-dialog/index.d.ts +147 -26
  15. package/dist/alert-dialog/index.js +405 -35
  16. package/dist/alert-dialog/index.js.map +1 -1
  17. package/dist/alert-dialog/index.mjs +258 -2513
  18. package/dist/alert-dialog/index.mjs.map +1 -1
  19. package/dist/avatar/index.d.mts +66 -0
  20. package/dist/avatar/index.d.ts +59 -8
  21. package/dist/avatar/index.js +1323 -2
  22. package/dist/avatar/index.js.map +1 -1
  23. package/dist/avatar/index.mjs +207 -149
  24. package/dist/avatar/index.mjs.map +1 -1
  25. package/dist/badge/index.d.mts +47 -0
  26. package/dist/badge/index.d.ts +47 -1
  27. package/dist/badge/index.js +122 -2
  28. package/dist/badge/index.js.map +1 -1
  29. package/dist/badge/index.mjs +44 -32
  30. package/dist/badge/index.mjs.map +1 -1
  31. package/dist/breadcrumb/index.d.mts +64 -0
  32. package/dist/breadcrumb/index.d.ts +59 -7
  33. package/dist/breadcrumb/index.js +327 -2
  34. package/dist/breadcrumb/index.js.map +1 -1
  35. package/dist/breadcrumb/index.mjs +146 -106
  36. package/dist/breadcrumb/index.mjs.map +1 -1
  37. package/dist/button/index.d.mts +41 -0
  38. package/dist/button/index.d.ts +41 -1
  39. package/dist/button/index.js +935 -2
  40. package/dist/button/index.js.map +1 -1
  41. package/dist/button/index.mjs +8 -3
  42. package/dist/button/index.mjs.map +1 -1
  43. package/dist/card/index.d.mts +61 -0
  44. package/dist/card/index.d.ts +58 -5
  45. package/dist/card/index.js +502 -2
  46. package/dist/card/index.js.map +1 -1
  47. package/dist/card/index.mjs +178 -125
  48. package/dist/card/index.mjs.map +1 -1
  49. package/dist/carousel/{types.d.ts → index.d.mts} +112 -13
  50. package/dist/carousel/index.d.ts +263 -18
  51. package/dist/carousel/index.js +1882 -2
  52. package/dist/carousel/index.js.map +1 -1
  53. package/dist/carousel/index.mjs +650 -428
  54. package/dist/carousel/index.mjs.map +1 -1
  55. package/dist/checkbox/index.d.mts +120 -0
  56. package/dist/checkbox/index.d.ts +120 -2
  57. package/dist/checkbox/index.js +511 -2
  58. package/dist/checkbox/index.js.map +1 -1
  59. package/dist/checkbox/index.mjs +226 -371
  60. package/dist/checkbox/index.mjs.map +1 -1
  61. package/dist/chip/index.d.mts +97 -0
  62. package/dist/chip/index.d.ts +92 -10
  63. package/dist/chip/index.js +908 -2
  64. package/dist/chip/index.js.map +1 -1
  65. package/dist/chip/index.mjs +322 -390
  66. package/dist/chip/index.mjs.map +1 -1
  67. package/dist/{Button-D32Avk2j.mjs → chunk-2YM6GKWW.mjs} +173 -130
  68. package/dist/chunk-2YM6GKWW.mjs.map +1 -0
  69. package/dist/chunk-6QCEPQ3U.mjs +26 -0
  70. package/dist/chunk-6QCEPQ3U.mjs.map +1 -0
  71. package/dist/chunk-7EWSMIZU.mjs +214 -0
  72. package/dist/chunk-7EWSMIZU.mjs.map +1 -0
  73. package/dist/chunk-DCXWGQVZ.mjs +53 -0
  74. package/dist/chunk-DCXWGQVZ.mjs.map +1 -0
  75. package/dist/{Spinner-CYL5kyzM.mjs → chunk-GAK4SC2F.mjs} +40 -29
  76. package/dist/chunk-GAK4SC2F.mjs.map +1 -0
  77. package/dist/chunk-GPJMLIHC.mjs +308 -0
  78. package/dist/chunk-GPJMLIHC.mjs.map +1 -0
  79. package/dist/chunk-HLXYG643.mjs +52 -0
  80. package/dist/chunk-HLXYG643.mjs.map +1 -0
  81. package/dist/chunk-KEGAAGJW.mjs +36 -0
  82. package/dist/chunk-KEGAAGJW.mjs.map +1 -0
  83. package/dist/{TextLink-3MEVs3No.mjs → chunk-RKPP7ZOK.mjs} +36 -27
  84. package/dist/chunk-RKPP7ZOK.mjs.map +1 -0
  85. package/dist/chunk-UMUMFMFB.mjs +68 -0
  86. package/dist/chunk-UMUMFMFB.mjs.map +1 -0
  87. package/dist/chunk-VBX7BTNU.mjs +614 -0
  88. package/dist/chunk-VBX7BTNU.mjs.map +1 -0
  89. package/dist/{DialogContent.styles-WGWJS9dj.mjs → chunk-XZ47F6TP.mjs} +8 -6
  90. package/dist/chunk-XZ47F6TP.mjs.map +1 -0
  91. package/dist/collapsible/index.d.mts +43 -0
  92. package/dist/collapsible/index.d.ts +40 -4
  93. package/dist/collapsible/index.js +109 -2
  94. package/dist/collapsible/index.js.map +1 -1
  95. package/dist/collapsible/index.mjs +58 -214
  96. package/dist/collapsible/index.mjs.map +1 -1
  97. package/dist/combobox/index.d.mts +287 -0
  98. package/dist/combobox/index.d.ts +271 -19
  99. package/dist/combobox/index.js +2588 -2
  100. package/dist/combobox/index.js.map +1 -1
  101. package/dist/combobox/index.mjs +1017 -623
  102. package/dist/combobox/index.mjs.map +1 -1
  103. package/dist/dialog/index.d.mts +166 -0
  104. package/dist/dialog/index.d.ts +154 -25
  105. package/dist/dialog/index.js +1389 -2
  106. package/dist/dialog/index.js.map +1 -1
  107. package/dist/dialog/index.mjs +258 -163
  108. package/dist/dialog/index.mjs.map +1 -1
  109. package/dist/divider/index.d.mts +61 -0
  110. package/dist/divider/index.d.ts +59 -4
  111. package/dist/divider/index.js +224 -2
  112. package/dist/divider/index.js.map +1 -1
  113. package/dist/divider/index.mjs +100 -97
  114. package/dist/divider/index.mjs.map +1 -1
  115. package/dist/drawer/index.d.mts +152 -0
  116. package/dist/drawer/index.d.ts +141 -24
  117. package/dist/drawer/index.js +1400 -2
  118. package/dist/drawer/index.js.map +1 -1
  119. package/dist/drawer/index.mjs +230 -141
  120. package/dist/drawer/index.mjs.map +1 -1
  121. package/dist/dropdown/index.d.mts +233 -0
  122. package/dist/dropdown/index.d.ts +220 -16
  123. package/dist/dropdown/index.js +2051 -2
  124. package/dist/dropdown/index.js.map +1 -1
  125. package/dist/dropdown/index.mjs +584 -352
  126. package/dist/dropdown/index.mjs.map +1 -1
  127. package/dist/file-upload/index.d.mts +270 -0
  128. package/dist/file-upload/index.d.ts +262 -14
  129. package/dist/file-upload/index.js +2255 -2
  130. package/dist/file-upload/index.js.map +1 -1
  131. package/dist/file-upload/index.mjs +834 -506
  132. package/dist/file-upload/index.mjs.map +1 -1
  133. package/dist/form-field/index.d.mts +186 -0
  134. package/dist/form-field/index.d.ts +176 -21
  135. package/dist/form-field/index.js +553 -2
  136. package/dist/form-field/index.js.map +1 -1
  137. package/dist/form-field/index.mjs +349 -246
  138. package/dist/form-field/index.mjs.map +1 -1
  139. package/dist/icon/index.d.mts +28 -0
  140. package/dist/icon/index.d.ts +28 -1
  141. package/dist/icon/index.js +127 -2
  142. package/dist/icon/index.js.map +1 -1
  143. package/dist/icon/index.mjs +7 -3
  144. package/dist/icon/index.mjs.map +1 -1
  145. package/dist/icon-button/index.d.mts +16 -0
  146. package/dist/icon-button/index.d.ts +16 -1
  147. package/dist/icon-button/index.js +980 -2
  148. package/dist/icon-button/index.js.map +1 -1
  149. package/dist/icon-button/index.mjs +9 -3
  150. package/dist/icon-button/index.mjs.map +1 -1
  151. package/dist/index-Cno_GFuW.d.mts +93 -0
  152. package/dist/index-Cno_GFuW.d.ts +93 -0
  153. package/dist/input/index.d.mts +78 -0
  154. package/dist/input/index.d.ts +72 -15
  155. package/dist/input/index.js +724 -2
  156. package/dist/input/index.js.map +1 -1
  157. package/dist/input/index.mjs +12 -453
  158. package/dist/input/index.mjs.map +1 -1
  159. package/dist/input-otp/{InputOTP.d.ts → index.d.mts} +50 -3
  160. package/dist/input-otp/index.d.ts +128 -10
  161. package/dist/input-otp/index.js +668 -2
  162. package/dist/input-otp/index.js.map +1 -1
  163. package/dist/input-otp/index.mjs +463 -294
  164. package/dist/input-otp/index.mjs.map +1 -1
  165. package/dist/kbd/index.d.mts +9 -0
  166. package/dist/kbd/index.d.ts +9 -1
  167. package/dist/kbd/index.js +47 -2
  168. package/dist/kbd/index.js.map +1 -1
  169. package/dist/kbd/index.mjs +18 -15
  170. package/dist/kbd/index.mjs.map +1 -1
  171. package/dist/label/index.d.mts +11 -0
  172. package/dist/label/index.d.ts +9 -5
  173. package/dist/label/index.js +78 -2
  174. package/dist/label/index.js.map +1 -1
  175. package/dist/label/index.mjs +5 -3
  176. package/dist/label/index.mjs.map +1 -1
  177. package/dist/link-box/index.d.mts +34 -0
  178. package/dist/link-box/index.d.ts +31 -6
  179. package/dist/link-box/index.js +92 -2
  180. package/dist/link-box/index.js.map +1 -1
  181. package/dist/link-box/index.mjs +56 -34
  182. package/dist/link-box/index.mjs.map +1 -1
  183. package/dist/pagination/index.d.mts +143 -0
  184. package/dist/pagination/index.d.ts +135 -10
  185. package/dist/pagination/index.js +1353 -2
  186. package/dist/pagination/index.js.map +1 -1
  187. package/dist/pagination/index.mjs +268 -833
  188. package/dist/pagination/index.mjs.map +1 -1
  189. package/dist/popover/index.d.mts +6 -0
  190. package/dist/popover/index.d.ts +6 -17
  191. package/dist/popover/index.js +1339 -2
  192. package/dist/popover/index.js.map +1 -1
  193. package/dist/popover/index.mjs +11 -1868
  194. package/dist/popover/index.mjs.map +1 -1
  195. package/dist/portal/{Portal.d.ts → index.d.mts} +5 -2
  196. package/dist/portal/index.d.ts +13 -1
  197. package/dist/portal/index.js +37 -2
  198. package/dist/portal/index.js.map +1 -1
  199. package/dist/portal/index.mjs +8 -5
  200. package/dist/portal/index.mjs.map +1 -1
  201. package/dist/progress/index.d.mts +52 -0
  202. package/dist/progress/index.d.ts +48 -9
  203. package/dist/progress/index.js +239 -6
  204. package/dist/progress/index.js.map +1 -1
  205. package/dist/progress/index.mjs +5 -241
  206. package/dist/progress/index.mjs.map +1 -1
  207. package/dist/progress-tracker/index.d.mts +80 -0
  208. package/dist/progress-tracker/index.d.ts +80 -10
  209. package/dist/progress-tracker/index.js +571 -2
  210. package/dist/progress-tracker/index.js.map +1 -1
  211. package/dist/progress-tracker/index.mjs +183 -115
  212. package/dist/progress-tracker/index.mjs.map +1 -1
  213. package/dist/radio-group/index.d.mts +100 -0
  214. package/dist/radio-group/index.d.ts +98 -5
  215. package/dist/radio-group/index.js +318 -2
  216. package/dist/radio-group/index.js.map +1 -1
  217. package/dist/radio-group/index.mjs +174 -332
  218. package/dist/radio-group/index.mjs.map +1 -1
  219. package/dist/rating/index.d.mts +78 -0
  220. package/dist/rating/index.d.ts +78 -1
  221. package/dist/rating/index.js +363 -2
  222. package/dist/rating/index.js.map +1 -1
  223. package/dist/rating/index.mjs +170 -125
  224. package/dist/rating/index.mjs.map +1 -1
  225. package/dist/scrolling-list/index.d.mts +118 -0
  226. package/dist/scrolling-list/index.d.ts +117 -14
  227. package/dist/scrolling-list/index.js +1428 -2
  228. package/dist/scrolling-list/index.js.map +1 -1
  229. package/dist/scrolling-list/index.mjs +325 -358
  230. package/dist/scrolling-list/index.mjs.map +1 -1
  231. package/dist/segmented-gauge/{SegmentedGauge.d.ts → index.d.mts} +43 -4
  232. package/dist/segmented-gauge/index.d.ts +101 -9
  233. package/dist/segmented-gauge/index.js +274 -2
  234. package/dist/segmented-gauge/index.js.map +1 -1
  235. package/dist/segmented-gauge/index.mjs +178 -132
  236. package/dist/segmented-gauge/index.mjs.map +1 -1
  237. package/dist/select/index.d.mts +167 -0
  238. package/dist/select/index.d.ts +158 -12
  239. package/dist/select/index.js +581 -2
  240. package/dist/select/index.js.map +1 -1
  241. package/dist/select/index.mjs +339 -207
  242. package/dist/select/index.mjs.map +1 -1
  243. package/dist/skeleton/index.d.mts +67 -0
  244. package/dist/skeleton/index.d.ts +67 -8
  245. package/dist/skeleton/index.js +206 -2
  246. package/dist/skeleton/index.js.map +1 -1
  247. package/dist/skeleton/index.mjs +96 -64
  248. package/dist/skeleton/index.mjs.map +1 -1
  249. package/dist/slider/index.d.mts +97 -0
  250. package/dist/slider/index.d.ts +97 -8
  251. package/dist/slider/index.js +220 -2
  252. package/dist/slider/index.js.map +1 -1
  253. package/dist/slider/index.mjs +107 -490
  254. package/dist/slider/index.mjs.map +1 -1
  255. package/dist/slot/index.d.mts +16 -0
  256. package/dist/slot/index.d.ts +16 -1
  257. package/dist/slot/index.js +51 -2
  258. package/dist/slot/index.js.map +1 -1
  259. package/dist/slot/index.mjs +9 -5
  260. package/dist/slot/index.mjs.map +1 -1
  261. package/dist/snackbar/index.d.mts +158 -0
  262. package/dist/snackbar/index.d.ts +158 -13
  263. package/dist/snackbar/index.js +1756 -2
  264. package/dist/snackbar/index.js.map +1 -1
  265. package/dist/snackbar/index.mjs +429 -1153
  266. package/dist/snackbar/index.mjs.map +1 -1
  267. package/dist/spinner/index.d.mts +21 -0
  268. package/dist/spinner/index.d.ts +21 -1
  269. package/dist/spinner/index.js +139 -2
  270. package/dist/spinner/index.js.map +1 -1
  271. package/dist/spinner/index.mjs +7 -3
  272. package/dist/spinner/index.mjs.map +1 -1
  273. package/dist/stepper/index.d.mts +81 -0
  274. package/dist/stepper/index.d.ts +81 -9
  275. package/dist/stepper/index.js +1847 -8
  276. package/dist/stepper/index.js.map +1 -1
  277. package/dist/stepper/index.mjs +197 -2325
  278. package/dist/stepper/index.mjs.map +1 -1
  279. package/dist/switch/{SwitchInput.d.ts → index.d.mts} +17 -4
  280. package/dist/switch/index.d.ts +64 -1
  281. package/dist/switch/index.js +327 -2
  282. package/dist/switch/index.js.map +1 -1
  283. package/dist/switch/index.mjs +130 -213
  284. package/dist/switch/index.mjs.map +1 -1
  285. package/dist/tabs/index.d.mts +137 -0
  286. package/dist/tabs/index.d.ts +137 -13
  287. package/dist/tabs/index.js +1830 -2
  288. package/dist/tabs/index.js.map +1 -1
  289. package/dist/tabs/index.mjs +350 -374
  290. package/dist/tabs/index.mjs.map +1 -1
  291. package/dist/tag/index.d.mts +29 -0
  292. package/dist/tag/index.d.ts +29 -1
  293. package/dist/tag/index.js +283 -2
  294. package/dist/tag/index.js.map +1 -1
  295. package/dist/tag/index.mjs +90 -66
  296. package/dist/tag/index.mjs.map +1 -1
  297. package/dist/text-link/index.d.mts +20 -0
  298. package/dist/text-link/index.d.ts +20 -1
  299. package/dist/text-link/index.js +100 -2
  300. package/dist/text-link/index.js.map +1 -1
  301. package/dist/text-link/index.mjs +6 -3
  302. package/dist/text-link/index.mjs.map +1 -1
  303. package/dist/textarea/index.d.mts +57 -0
  304. package/dist/textarea/index.d.ts +53 -10
  305. package/dist/textarea/index.js +797 -2
  306. package/dist/textarea/index.js.map +1 -1
  307. package/dist/textarea/index.mjs +83 -50
  308. package/dist/textarea/index.mjs.map +1 -1
  309. package/dist/toast/index.d.mts +63 -0
  310. package/dist/toast/index.d.ts +53 -10
  311. package/dist/toast/index.js +1454 -2
  312. package/dist/toast/index.js.map +1 -1
  313. package/dist/toast/index.mjs +208 -1016
  314. package/dist/toast/index.mjs.map +1 -1
  315. package/dist/visually-hidden/index.d.mts +16 -0
  316. package/dist/visually-hidden/index.d.ts +16 -1
  317. package/dist/visually-hidden/index.js +67 -2
  318. package/dist/visually-hidden/index.js.map +1 -1
  319. package/dist/visually-hidden/index.mjs +6 -3
  320. package/dist/visually-hidden/index.mjs.map +1 -1
  321. package/package.json +6 -5
  322. package/dist/Button-C3xHNaGl.js +0 -2
  323. package/dist/Button-C3xHNaGl.js.map +0 -1
  324. package/dist/Button-D32Avk2j.mjs.map +0 -1
  325. package/dist/DialogContent.styles-BrhKaHc_.js +0 -2
  326. package/dist/DialogContent.styles-BrhKaHc_.js.map +0 -1
  327. package/dist/DialogContent.styles-WGWJS9dj.mjs.map +0 -1
  328. package/dist/Icon-Bf0XrmiR.js +0 -2
  329. package/dist/Icon-Bf0XrmiR.js.map +0 -1
  330. package/dist/Icon-D1RueiPY.mjs +0 -58
  331. package/dist/Icon-D1RueiPY.mjs.map +0 -1
  332. package/dist/IconButton-BY3gYXtU.mjs +0 -43
  333. package/dist/IconButton-BY3gYXtU.mjs.map +0 -1
  334. package/dist/IconButton-Bf-EDzpI.js +0 -2
  335. package/dist/IconButton-Bf-EDzpI.js.map +0 -1
  336. package/dist/Slot-C98rL4yy.mjs +0 -14
  337. package/dist/Slot-C98rL4yy.mjs.map +0 -1
  338. package/dist/Slot-ghrohQLA.js +0 -2
  339. package/dist/Slot-ghrohQLA.js.map +0 -1
  340. package/dist/Spinner-CYL5kyzM.mjs.map +0 -1
  341. package/dist/Spinner-DK8VEsaR.js +0 -2
  342. package/dist/Spinner-DK8VEsaR.js.map +0 -1
  343. package/dist/TextLink-3MEVs3No.mjs.map +0 -1
  344. package/dist/TextLink-DD0VO37q.js +0 -2
  345. package/dist/TextLink-DD0VO37q.js.map +0 -1
  346. package/dist/VisuallyHidden-AoRh4WRK.js +0 -2
  347. package/dist/VisuallyHidden-AoRh4WRK.js.map +0 -1
  348. package/dist/VisuallyHidden-ByNP7ZUI.mjs +0 -28
  349. package/dist/VisuallyHidden-ByNP7ZUI.mjs.map +0 -1
  350. package/dist/accordion/Accordion.d.ts +0 -27
  351. package/dist/accordion/AccordionItem.d.ts +0 -12
  352. package/dist/accordion/AccordionItemContent.d.ts +0 -12
  353. package/dist/accordion/AccordionItemHeader.d.ts +0 -9
  354. package/dist/accordion/AccordionItemTrigger.d.ts +0 -12
  355. package/dist/accordion/useRenderSlot.d.ts +0 -3
  356. package/dist/alert-dialog/AlertDialog.d.ts +0 -29
  357. package/dist/alert-dialog/AlertDialogAction.d.ts +0 -13
  358. package/dist/alert-dialog/AlertDialogBody.d.ts +0 -12
  359. package/dist/alert-dialog/AlertDialogCancel.d.ts +0 -13
  360. package/dist/alert-dialog/AlertDialogContent.d.ts +0 -9
  361. package/dist/alert-dialog/AlertDialogContext.d.ts +0 -12
  362. package/dist/alert-dialog/AlertDialogDescription.d.ts +0 -9
  363. package/dist/alert-dialog/AlertDialogFooter.d.ts +0 -10
  364. package/dist/alert-dialog/AlertDialogHeader.d.ts +0 -10
  365. package/dist/alert-dialog/AlertDialogOverlay.d.ts +0 -9
  366. package/dist/alert-dialog/AlertDialogPortal.d.ts +0 -7
  367. package/dist/alert-dialog/AlertDialogTitle.d.ts +0 -9
  368. package/dist/alert-dialog/AlertDialogTrigger.d.ts +0 -13
  369. package/dist/alert-dialog/useRenderSlot.d.ts +0 -3
  370. package/dist/avatar/Avatar.d.ts +0 -3
  371. package/dist/avatar/AvatarAction.d.ts +0 -9
  372. package/dist/avatar/AvatarImage.d.ts +0 -7
  373. package/dist/avatar/AvatarOnlineBadge.d.ts +0 -9
  374. package/dist/avatar/AvatarPlaceholder.d.ts +0 -8
  375. package/dist/avatar/AvatarUser.d.ts +0 -7
  376. package/dist/avatar/context.d.ts +0 -5
  377. package/dist/avatar/types.d.ts +0 -24
  378. package/dist/badge/Badge.d.ts +0 -9
  379. package/dist/badge/BadgeItem.d.ts +0 -31
  380. package/dist/badge/BadgeItem.styles.d.ts +0 -7
  381. package/dist/breadcrumb/Breadcrumb.d.ts +0 -10
  382. package/dist/breadcrumb/Breadcrumb.styles.d.ts +0 -0
  383. package/dist/breadcrumb/BreadcrumbCurrentPage.d.ts +0 -11
  384. package/dist/breadcrumb/BreadcrumbItem.d.ts +0 -9
  385. package/dist/breadcrumb/BreadcrumbLink.d.ts +0 -12
  386. package/dist/breadcrumb/BreadcrumbSeparator.d.ts +0 -10
  387. package/dist/button/Button.d.ts +0 -26
  388. package/dist/button/Button.styles.d.ts +0 -10
  389. package/dist/button/variants/contrast.d.ts +0 -45
  390. package/dist/button/variants/filled.d.ts +0 -45
  391. package/dist/button/variants/ghost.d.ts +0 -45
  392. package/dist/button/variants/index.d.ts +0 -5
  393. package/dist/button/variants/outlined.d.ts +0 -45
  394. package/dist/button/variants/tinted.d.ts +0 -45
  395. package/dist/card/Backdrop.d.ts +0 -14
  396. package/dist/card/Card.d.ts +0 -16
  397. package/dist/card/Card.styles.d.ts +0 -7
  398. package/dist/card/Content.d.ts +0 -15
  399. package/dist/card/Content.styles.d.ts +0 -8
  400. package/dist/card/context.d.ts +0 -11
  401. package/dist/card/utils.d.ts +0 -3
  402. package/dist/carousel/Carousel.d.ts +0 -12
  403. package/dist/carousel/CarouselControls.d.ts +0 -9
  404. package/dist/carousel/CarouselNextButton.d.ts +0 -5
  405. package/dist/carousel/CarouselPageIndicator.d.ts +0 -14
  406. package/dist/carousel/CarouselPagePicker.d.ts +0 -14
  407. package/dist/carousel/CarouselPrevButton.d.ts +0 -5
  408. package/dist/carousel/CarouselSlide.d.ts +0 -12
  409. package/dist/carousel/CarouselSlides.d.ts +0 -10
  410. package/dist/carousel/CarouselViewport.d.ts +0 -9
  411. package/dist/carousel/useCarousel.d.ts +0 -2
  412. package/dist/carousel/useCarouselVisibility.d.ts +0 -13
  413. package/dist/carousel/useEvent.d.ts +0 -7
  414. package/dist/carousel/useIsMounted.d.ts +0 -1
  415. package/dist/carousel/useIsVisible.d.ts +0 -6
  416. package/dist/carousel/useResizeObserver.d.ts +0 -2
  417. package/dist/carousel/useScrollEnd.d.ts +0 -3
  418. package/dist/carousel/useSnapPoints.d.ts +0 -10
  419. package/dist/carousel/utils.d.ts +0 -24
  420. package/dist/checkbox/Checkbox.d.ts +0 -10
  421. package/dist/checkbox/CheckboxGroup.d.ts +0 -18
  422. package/dist/checkbox/CheckboxGroup.styles.d.ts +0 -5
  423. package/dist/checkbox/CheckboxGroupContext.d.ts +0 -41
  424. package/dist/checkbox/CheckboxIndicator.d.ts +0 -9
  425. package/dist/checkbox/CheckboxInput.d.ts +0 -47
  426. package/dist/checkbox/CheckboxInput.styles.d.ts +0 -5
  427. package/dist/checkbox/CheckboxLabel.d.ts +0 -12
  428. package/dist/checkbox/CheckboxLabel.styles.d.ts +0 -5
  429. package/dist/chip/Chip.d.ts +0 -34
  430. package/dist/chip/Chip.styles.d.ts +0 -8
  431. package/dist/chip/ChipClearButton.d.ts +0 -10
  432. package/dist/chip/ChipClearButton.styles.d.ts +0 -10
  433. package/dist/chip/ChipContent.d.ts +0 -8
  434. package/dist/chip/ChipIcon.d.ts +0 -8
  435. package/dist/chip/ChipLeadingIcon.d.ts +0 -9
  436. package/dist/chip/ChipTrailingIcon.d.ts +0 -9
  437. package/dist/chip/useChipContext.d.ts +0 -4
  438. package/dist/chip/useChipElement.d.ts +0 -41
  439. package/dist/chip/variants/dashed.d.ts +0 -49
  440. package/dist/chip/variants/index.d.ts +0 -3
  441. package/dist/chip/variants/outlined.d.ts +0 -49
  442. package/dist/chip/variants/tinted.d.ts +0 -49
  443. package/dist/collapsible/Content.d.ts +0 -12
  444. package/dist/collapsible/Root.d.ts +0 -12
  445. package/dist/collapsible/Trigger.d.ts +0 -11
  446. package/dist/collapsible/useRenderSlot.d.ts +0 -3
  447. package/dist/combobox/Combobox.d.ts +0 -6
  448. package/dist/combobox/ComboboxClearButton.d.ts +0 -9
  449. package/dist/combobox/ComboboxContext.d.ts +0 -108
  450. package/dist/combobox/ComboboxDisclosure.d.ts +0 -13
  451. package/dist/combobox/ComboboxEmpty.d.ts +0 -11
  452. package/dist/combobox/ComboboxGroup.d.ts +0 -11
  453. package/dist/combobox/ComboboxInput.d.ts +0 -15
  454. package/dist/combobox/ComboboxItem.d.ts +0 -12
  455. package/dist/combobox/ComboboxItemContext.d.ts +0 -17
  456. package/dist/combobox/ComboboxItemIndicator.d.ts +0 -11
  457. package/dist/combobox/ComboboxItemText.d.ts +0 -10
  458. package/dist/combobox/ComboboxItems.d.ts +0 -11
  459. package/dist/combobox/ComboboxItemsGroupContext.d.ts +0 -8
  460. package/dist/combobox/ComboboxLabel.d.ts +0 -11
  461. package/dist/combobox/ComboboxLeadingIcon.d.ts +0 -7
  462. package/dist/combobox/ComboboxPopover.d.ts +0 -10
  463. package/dist/combobox/ComboboxPortal.d.ts +0 -2
  464. package/dist/combobox/ComboboxSelectedItems.d.ts +0 -4
  465. package/dist/combobox/ComboboxTrigger.d.ts +0 -11
  466. package/dist/combobox/ComboboxTrigger.styles.d.ts +0 -6
  467. package/dist/combobox/tests/test-utils.d.ts +0 -8
  468. package/dist/combobox/types.d.ts +0 -8
  469. package/dist/combobox/useCombobox/multipleSelectionReducer.d.ts +0 -13
  470. package/dist/combobox/useCombobox/singleSelectionReducer.d.ts +0 -8
  471. package/dist/combobox/utils/index.d.ts +0 -14
  472. package/dist/combobox/utils/useWidthIncreaseCallback.d.ts +0 -2
  473. package/dist/composite-Br3kM5N9.mjs +0 -40
  474. package/dist/composite-Br3kM5N9.mjs.map +0 -1
  475. package/dist/composite-fJD9R7R0.js +0 -2
  476. package/dist/composite-fJD9R7R0.js.map +0 -1
  477. package/dist/detectBrowser-Bc7rk5fI.mjs +0 -44
  478. package/dist/detectBrowser-Bc7rk5fI.mjs.map +0 -1
  479. package/dist/detectBrowser-DTbs_30X.js +0 -2
  480. package/dist/detectBrowser-DTbs_30X.js.map +0 -1
  481. package/dist/dialog/Dialog.d.ts +0 -32
  482. package/dist/dialog/DialogBody.d.ts +0 -12
  483. package/dist/dialog/DialogClose.d.ts +0 -9
  484. package/dist/dialog/DialogCloseButton.d.ts +0 -9
  485. package/dist/dialog/DialogContent.d.ts +0 -14
  486. package/dist/dialog/DialogContent.styles.d.ts +0 -6
  487. package/dist/dialog/DialogContext.d.ts +0 -11
  488. package/dist/dialog/DialogDescription.d.ts +0 -9
  489. package/dist/dialog/DialogFooter.d.ts +0 -10
  490. package/dist/dialog/DialogHeader.d.ts +0 -10
  491. package/dist/dialog/DialogOverlay.d.ts +0 -9
  492. package/dist/dialog/DialogPortal.d.ts +0 -7
  493. package/dist/dialog/DialogTitle.d.ts +0 -9
  494. package/dist/dialog/DialogTrigger.d.ts +0 -17
  495. package/dist/divider/Divider.d.ts +0 -30
  496. package/dist/divider/Divider.styles.d.ts +0 -9
  497. package/dist/divider/DividerContent.d.ts +0 -13
  498. package/dist/divider/variants/intents.d.ts +0 -17
  499. package/dist/downshift.esm-Ncwetv0s.mjs +0 -3038
  500. package/dist/downshift.esm-Ncwetv0s.mjs.map +0 -1
  501. package/dist/downshift.esm-PfCOUbxq.js +0 -37
  502. package/dist/downshift.esm-PfCOUbxq.js.map +0 -1
  503. package/dist/drawer/Drawer.d.ts +0 -39
  504. package/dist/drawer/DrawerBody.d.ts +0 -11
  505. package/dist/drawer/DrawerBody.styles.d.ts +0 -5
  506. package/dist/drawer/DrawerClose.d.ts +0 -9
  507. package/dist/drawer/DrawerCloseButton.d.ts +0 -7
  508. package/dist/drawer/DrawerContent.d.ts +0 -10
  509. package/dist/drawer/DrawerContent.styles.d.ts +0 -6
  510. package/dist/drawer/DrawerContext.d.ts +0 -9
  511. package/dist/drawer/DrawerDescription.d.ts +0 -9
  512. package/dist/drawer/DrawerFooter.d.ts +0 -8
  513. package/dist/drawer/DrawerHeader.d.ts +0 -10
  514. package/dist/drawer/DrawerOverlay.d.ts +0 -9
  515. package/dist/drawer/DrawerPortal.d.ts +0 -7
  516. package/dist/drawer/DrawerTitle.d.ts +0 -9
  517. package/dist/drawer/DrawerTrigger.d.ts +0 -13
  518. package/dist/dropdown/Dropdown.d.ts +0 -6
  519. package/dist/dropdown/DropdownContext.d.ts +0 -81
  520. package/dist/dropdown/DropdownDivider.d.ts +0 -10
  521. package/dist/dropdown/DropdownGroup.d.ts +0 -11
  522. package/dist/dropdown/DropdownItem.d.ts +0 -12
  523. package/dist/dropdown/DropdownItemContext.d.ts +0 -17
  524. package/dist/dropdown/DropdownItemIndicator.d.ts +0 -11
  525. package/dist/dropdown/DropdownItemText.d.ts +0 -9
  526. package/dist/dropdown/DropdownItems.d.ts +0 -21
  527. package/dist/dropdown/DropdownItemsGroupContext.d.ts +0 -8
  528. package/dist/dropdown/DropdownLabel.d.ts +0 -11
  529. package/dist/dropdown/DropdownLeadingIcon.d.ts +0 -7
  530. package/dist/dropdown/DropdownPopover.d.ts +0 -6
  531. package/dist/dropdown/DropdownPortal.d.ts +0 -2
  532. package/dist/dropdown/DropdownTrigger.d.ts +0 -12
  533. package/dist/dropdown/DropdownTrigger.styles.d.ts +0 -5
  534. package/dist/dropdown/DropdownValue.d.ts +0 -11
  535. package/dist/dropdown/types.d.ts +0 -8
  536. package/dist/dropdown/useDropdown.d.ts +0 -41
  537. package/dist/dropdown/utils.d.ts +0 -13
  538. package/dist/file-upload/FileUpload.d.ts +0 -130
  539. package/dist/file-upload/FileUploadAcceptedFile.d.ts +0 -25
  540. package/dist/file-upload/FileUploadContext.d.ts +0 -17
  541. package/dist/file-upload/FileUploadDropzone.d.ts +0 -10
  542. package/dist/file-upload/FileUploadItemDeleteTrigger.d.ts +0 -11
  543. package/dist/file-upload/FileUploadPreviewImage.d.ts +0 -17
  544. package/dist/file-upload/FileUploadRejectedFile.d.ts +0 -24
  545. package/dist/file-upload/FileUploadRejectedFileDeleteTrigger.d.ts +0 -12
  546. package/dist/file-upload/FileUploadTrigger.d.ts +0 -12
  547. package/dist/file-upload/constants.d.ts +0 -29
  548. package/dist/file-upload/test-utils.d.ts +0 -9
  549. package/dist/file-upload/useFileUploadState.d.ts +0 -88
  550. package/dist/file-upload/utils.d.ts +0 -40
  551. package/dist/floating-ui.utils.dom-CCN4I08l.js +0 -2
  552. package/dist/floating-ui.utils.dom-CCN4I08l.js.map +0 -1
  553. package/dist/floating-ui.utils.dom-uiDUZc_y.mjs +0 -136
  554. package/dist/floating-ui.utils.dom-uiDUZc_y.mjs.map +0 -1
  555. package/dist/form-field/FormField.d.ts +0 -21
  556. package/dist/form-field/FormFieldAlertMessage.d.ts +0 -9
  557. package/dist/form-field/FormFieldCharactersCount.d.ts +0 -26
  558. package/dist/form-field/FormFieldContext.d.ts +0 -49
  559. package/dist/form-field/FormFieldControl.d.ts +0 -12
  560. package/dist/form-field/FormFieldErrorMessage.d.ts +0 -9
  561. package/dist/form-field/FormFieldHelperMessage.d.ts +0 -9
  562. package/dist/form-field/FormFieldLabel.d.ts +0 -13
  563. package/dist/form-field/FormFieldMessage.d.ts +0 -8
  564. package/dist/form-field/FormFieldProvider.d.ts +0 -9
  565. package/dist/form-field/FormFieldRequiredIndicator.d.ts +0 -9
  566. package/dist/form-field/FormFieldStateMessage.d.ts +0 -10
  567. package/dist/form-field/FormFieldSuccessMessage.d.ts +0 -9
  568. package/dist/icon/Icon.d.ts +0 -17
  569. package/dist/icon/Icon.styles.d.ts +0 -6
  570. package/dist/icon-button/IconButton.d.ts +0 -10
  571. package/dist/icon-button/IconButton.styles.d.ts +0 -5
  572. package/dist/index-0KYGKeVg.js +0 -2
  573. package/dist/index-0KYGKeVg.js.map +0 -1
  574. package/dist/index-1WIgmEZh.js +0 -2
  575. package/dist/index-1WIgmEZh.js.map +0 -1
  576. package/dist/index-BRi38DTc.mjs +0 -21
  577. package/dist/index-BRi38DTc.mjs.map +0 -1
  578. package/dist/index-BZAtNKwE.mjs +0 -71
  579. package/dist/index-BZAtNKwE.mjs.map +0 -1
  580. package/dist/index-BZPx6jYI.mjs +0 -9
  581. package/dist/index-BZPx6jYI.mjs.map +0 -1
  582. package/dist/index-BlkdpEIe.mjs +0 -55
  583. package/dist/index-BlkdpEIe.mjs.map +0 -1
  584. package/dist/index-BmAFn37q.mjs +0 -49
  585. package/dist/index-BmAFn37q.mjs.map +0 -1
  586. package/dist/index-C-J_tHdS.js +0 -6
  587. package/dist/index-C-J_tHdS.js.map +0 -1
  588. package/dist/index-C1qb0595.mjs +0 -28
  589. package/dist/index-C1qb0595.mjs.map +0 -1
  590. package/dist/index-C34GgsKQ.mjs +0 -54
  591. package/dist/index-C34GgsKQ.mjs.map +0 -1
  592. package/dist/index-CCKe-Mpx.mjs +0 -7
  593. package/dist/index-CCKe-Mpx.mjs.map +0 -1
  594. package/dist/index-CDBBjNXc.js +0 -2
  595. package/dist/index-CDBBjNXc.js.map +0 -1
  596. package/dist/index-CYjGhVvU.mjs +0 -243
  597. package/dist/index-CYjGhVvU.mjs.map +0 -1
  598. package/dist/index-ChLwd62c.js +0 -2
  599. package/dist/index-ChLwd62c.js.map +0 -1
  600. package/dist/index-Cjj_rUPu.js +0 -2
  601. package/dist/index-Cjj_rUPu.js.map +0 -1
  602. package/dist/index-CyMbLkj0.js +0 -2
  603. package/dist/index-CyMbLkj0.js.map +0 -1
  604. package/dist/index-DFZozV_h.mjs +0 -69
  605. package/dist/index-DFZozV_h.mjs.map +0 -1
  606. package/dist/index-DKuHkHFX.js +0 -2
  607. package/dist/index-DKuHkHFX.js.map +0 -1
  608. package/dist/index-DLHLIYPI.mjs +0 -16
  609. package/dist/index-DLHLIYPI.mjs.map +0 -1
  610. package/dist/index-DO-atGp-.js +0 -2
  611. package/dist/index-DO-atGp-.js.map +0 -1
  612. package/dist/index-DWlg8lkk.mjs +0 -179
  613. package/dist/index-DWlg8lkk.mjs.map +0 -1
  614. package/dist/index-DYxWvftI.js +0 -2
  615. package/dist/index-DYxWvftI.js.map +0 -1
  616. package/dist/index-D_lWkK39.mjs +0 -803
  617. package/dist/index-D_lWkK39.mjs.map +0 -1
  618. package/dist/index-DdkVj7D0.js +0 -18
  619. package/dist/index-DdkVj7D0.js.map +0 -1
  620. package/dist/index-De-6atSi.js +0 -2
  621. package/dist/index-De-6atSi.js.map +0 -1
  622. package/dist/index-DhGWNzsz.mjs +0 -83
  623. package/dist/index-DhGWNzsz.mjs.map +0 -1
  624. package/dist/index-Dkj4QRX8.js +0 -2
  625. package/dist/index-Dkj4QRX8.js.map +0 -1
  626. package/dist/index-DlIFg0Eu.mjs +0 -60
  627. package/dist/index-DlIFg0Eu.mjs.map +0 -1
  628. package/dist/index-DnaHaH_0.js +0 -2
  629. package/dist/index-DnaHaH_0.js.map +0 -1
  630. package/dist/index-MHF2-CYX.js +0 -2
  631. package/dist/index-MHF2-CYX.js.map +0 -1
  632. package/dist/index-MQ0c3ZX_.js +0 -2
  633. package/dist/index-MQ0c3ZX_.js.map +0 -1
  634. package/dist/index-MSR-vgWR.mjs +0 -37
  635. package/dist/index-MSR-vgWR.mjs.map +0 -1
  636. package/dist/index-VL0YEmOW.mjs +0 -125
  637. package/dist/index-VL0YEmOW.mjs.map +0 -1
  638. package/dist/index-tXqxYME3.js +0 -42
  639. package/dist/index-tXqxYME3.js.map +0 -1
  640. package/dist/inertValue-Bif5Sqs6.mjs +0 -522
  641. package/dist/inertValue-Bif5Sqs6.mjs.map +0 -1
  642. package/dist/inertValue-ShwihJSN.js +0 -5
  643. package/dist/inertValue-ShwihJSN.js.map +0 -1
  644. package/dist/input/Input.d.ts +0 -14
  645. package/dist/input/Input.styles.d.ts +0 -11
  646. package/dist/input/InputAddon.d.ts +0 -9
  647. package/dist/input/InputAddon.styles.d.ts +0 -9
  648. package/dist/input/InputClearButton.d.ts +0 -12
  649. package/dist/input/InputGroup.d.ts +0 -17
  650. package/dist/input/InputGroup.styles.d.ts +0 -6
  651. package/dist/input/InputGroupContext.d.ts +0 -14
  652. package/dist/input/InputIcon.d.ts +0 -6
  653. package/dist/input/InputLeadingAddon.d.ts +0 -11
  654. package/dist/input/InputLeadingIcon.d.ts +0 -7
  655. package/dist/input/InputTrailingAddon.d.ts +0 -11
  656. package/dist/input/InputTrailingIcon.d.ts +0 -7
  657. package/dist/input-otp/InputOTP.styles.d.ts +0 -10
  658. package/dist/input-otp/InputOTPContext.d.ts +0 -16
  659. package/dist/input-otp/InputOTPGroup.d.ts +0 -7
  660. package/dist/input-otp/InputOTPSeparator.d.ts +0 -7
  661. package/dist/input-otp/InputOTPSlot.d.ts +0 -12
  662. package/dist/input-otp/useInputOTP.d.ts +0 -45
  663. package/dist/kbd/Kbd.d.ts +0 -5
  664. package/dist/label/Label.d.ts +0 -9
  665. package/dist/label/LabelRequiredIndicator.d.ts +0 -6
  666. package/dist/link-box/LinkBox.d.ts +0 -8
  667. package/dist/link-box/LinkBoxLink.d.ts +0 -8
  668. package/dist/link-box/LinkBoxRaised.d.ts +0 -9
  669. package/dist/pagination/Pagination.d.ts +0 -8
  670. package/dist/pagination/PaginationContext.d.ts +0 -43
  671. package/dist/pagination/PaginationEllipsis.d.ts +0 -9
  672. package/dist/pagination/PaginationFirstPageTrigger.d.ts +0 -16
  673. package/dist/pagination/PaginationItem.d.ts +0 -17
  674. package/dist/pagination/PaginationLastPageTrigger.d.ts +0 -16
  675. package/dist/pagination/PaginationNextTrigger.d.ts +0 -16
  676. package/dist/pagination/PaginationPages.d.ts +0 -16
  677. package/dist/pagination/PaginationPrevTrigger.d.ts +0 -16
  678. package/dist/pagination/utils.d.ts +0 -1
  679. package/dist/popover/Popover.d.ts +0 -9
  680. package/dist/popover/PopoverAnchor.d.ts +0 -9
  681. package/dist/popover/PopoverArrow.d.ts +0 -9
  682. package/dist/popover/PopoverCloseButton.d.ts +0 -10
  683. package/dist/popover/PopoverContent.d.ts +0 -10
  684. package/dist/popover/PopoverContent.styles.d.ts +0 -9
  685. package/dist/popover/PopoverContext.d.ts +0 -15
  686. package/dist/popover/PopoverHeader.d.ts +0 -10
  687. package/dist/popover/PopoverPortal.d.ts +0 -7
  688. package/dist/popover/PopoverTrigger.d.ts +0 -9
  689. package/dist/progress/Progress.d.ts +0 -16
  690. package/dist/progress/ProgressBar.d.ts +0 -6
  691. package/dist/progress/ProgressBar.styles.d.ts +0 -5
  692. package/dist/progress/ProgressContext.d.ts +0 -13
  693. package/dist/progress/ProgressIndicator.d.ts +0 -6
  694. package/dist/progress/ProgressIndicator.styles.d.ts +0 -7
  695. package/dist/progress/ProgressLabel.d.ts +0 -6
  696. package/dist/progress-tracker/ProgressTracker.d.ts +0 -27
  697. package/dist/progress-tracker/ProgressTracker.styles.d.ts +0 -1
  698. package/dist/progress-tracker/ProgressTrackerContext.d.ts +0 -15
  699. package/dist/progress-tracker/ProgressTrackerStep.d.ts +0 -12
  700. package/dist/progress-tracker/ProgressTrackerStep.styles.d.ts +0 -10
  701. package/dist/progress-tracker/ProgressTrackerStepIndicator.d.ts +0 -15
  702. package/dist/progress-tracker/ProgressTrackerStepIndicator.styles.d.ts +0 -7
  703. package/dist/progress-tracker/ProgressTrackerStepLabel.d.ts +0 -9
  704. package/dist/radio-group/Radio.d.ts +0 -9
  705. package/dist/radio-group/RadioGroup.d.ts +0 -54
  706. package/dist/radio-group/RadioGroup.styles.d.ts +0 -5
  707. package/dist/radio-group/RadioGroupContext.d.ts +0 -5
  708. package/dist/radio-group/RadioGroupProvider.d.ts +0 -7
  709. package/dist/radio-group/RadioIndicator.d.ts +0 -18
  710. package/dist/radio-group/RadioIndicator.styles.d.ts +0 -5
  711. package/dist/radio-group/RadioInput.d.ts +0 -25
  712. package/dist/radio-group/RadioInput.styles.d.ts +0 -5
  713. package/dist/radio-group/RadioLabel.d.ts +0 -20
  714. package/dist/radio-group/RadioLabel.styles.d.ts +0 -5
  715. package/dist/rating/Rating.d.ts +0 -52
  716. package/dist/rating/RatingStar.d.ts +0 -10
  717. package/dist/rating/RatingStar.styles.d.ts +0 -14
  718. package/dist/rating/types.d.ts +0 -1
  719. package/dist/rating/utils.d.ts +0 -8
  720. package/dist/scrolling-list/ScrollingList.d.ts +0 -57
  721. package/dist/scrolling-list/ScrollingListControls.d.ts +0 -18
  722. package/dist/scrolling-list/ScrollingListItem.d.ts +0 -17
  723. package/dist/scrolling-list/ScrollingListItems.d.ts +0 -11
  724. package/dist/scrolling-list/ScrollingListNextButton.d.ts +0 -5
  725. package/dist/scrolling-list/ScrollingListPrevButton.d.ts +0 -5
  726. package/dist/scrolling-list/ScrollingListSkipButton.d.ts +0 -9
  727. package/dist/scrolling-list/useFocusWithinScroll.d.ts +0 -3
  728. package/dist/segmented-gauge/SegmentedGaugeContext.d.ts +0 -14
  729. package/dist/segmented-gauge/SegmentedGaugeLabel.d.ts +0 -9
  730. package/dist/segmented-gauge/SegmentedGaugeSegment.d.ts +0 -12
  731. package/dist/segmented-gauge/SegmentedGaugeTrack.d.ts +0 -8
  732. package/dist/select/Select.d.ts +0 -6
  733. package/dist/select/SelectContext.d.ts +0 -59
  734. package/dist/select/SelectGroup.d.ts +0 -11
  735. package/dist/select/SelectItem.d.ts +0 -11
  736. package/dist/select/SelectItems.d.ts +0 -10
  737. package/dist/select/SelectItemsGroupContext.d.ts +0 -9
  738. package/dist/select/SelectLabel.d.ts +0 -8
  739. package/dist/select/SelectLeadingIcon.d.ts +0 -7
  740. package/dist/select/SelectPlaceholder.d.ts +0 -10
  741. package/dist/select/SelectTrigger.d.ts +0 -16
  742. package/dist/select/SelectTrigger.styles.d.ts +0 -5
  743. package/dist/select/SelectValue.d.ts +0 -15
  744. package/dist/select/types.d.ts +0 -6
  745. package/dist/select/utils.d.ts +0 -4
  746. package/dist/skeleton/Skeleton.d.ts +0 -17
  747. package/dist/skeleton/Skeleton.styles.d.ts +0 -5
  748. package/dist/skeleton/SkeletonItem.d.ts +0 -31
  749. package/dist/skeleton/SkeletonItem.styles.d.ts +0 -8
  750. package/dist/slider/Slider.d.ts +0 -55
  751. package/dist/slider/Slider.styles.d.ts +0 -1
  752. package/dist/slider/SliderContext.d.ts +0 -4
  753. package/dist/slider/SliderThumb.d.ts +0 -14
  754. package/dist/slider/SliderThumb.styles.d.ts +0 -5
  755. package/dist/slider/SliderTrack.d.ts +0 -14
  756. package/dist/slider/SliderTrack.styles.d.ts +0 -9
  757. package/dist/slot/Slot.d.ts +0 -12
  758. package/dist/snackbar/Snackbar.d.ts +0 -29
  759. package/dist/snackbar/SnackbarItem.d.ts +0 -49
  760. package/dist/snackbar/SnackbarItem.styles.d.ts +0 -10
  761. package/dist/snackbar/SnackbarItemAction.d.ts +0 -10
  762. package/dist/snackbar/SnackbarItemClose.d.ts +0 -9
  763. package/dist/snackbar/SnackbarItemContext.d.ts +0 -8
  764. package/dist/snackbar/SnackbarItemIcon.d.ts +0 -7
  765. package/dist/snackbar/SnackbarRegion.d.ts +0 -30
  766. package/dist/snackbar/SnackbarRegion.styles.d.ts +0 -5
  767. package/dist/snackbar/snackbarVariants.d.ts +0 -82
  768. package/dist/snackbar/useSnackbarGlobalStore.d.ts +0 -18
  769. package/dist/snackbar/useSwipe.d.ts +0 -15
  770. package/dist/spinner/Spinner.d.ts +0 -9
  771. package/dist/spinner/Spinner.styles.d.ts +0 -7
  772. package/dist/stepper/Stepper.d.ts +0 -9
  773. package/dist/stepper/StepperButton.d.ts +0 -14
  774. package/dist/stepper/StepperInput.d.ts +0 -7
  775. package/dist/stepper/types.d.ts +0 -46
  776. package/dist/stepper/useStepper.d.ts +0 -2
  777. package/dist/switch/Switch.d.ts +0 -6
  778. package/dist/switch/SwitchInput.styles.d.ts +0 -16
  779. package/dist/switch/SwitchLabel.d.ts +0 -17
  780. package/dist/switch/SwitchLabel.styles.d.ts +0 -5
  781. package/dist/tabs/Tabs.d.ts +0 -24
  782. package/dist/tabs/TabsContent.d.ts +0 -22
  783. package/dist/tabs/TabsContent.styles.d.ts +0 -3
  784. package/dist/tabs/TabsContext.d.ts +0 -7
  785. package/dist/tabs/TabsList.d.ts +0 -20
  786. package/dist/tabs/TabsList.styles.d.ts +0 -3
  787. package/dist/tabs/TabsPopover.d.ts +0 -29
  788. package/dist/tabs/TabsPopoverAbstraction.d.ts +0 -27
  789. package/dist/tabs/TabsRoot.styles.d.ts +0 -1
  790. package/dist/tabs/TabsTrigger.d.ts +0 -41
  791. package/dist/tabs/TabsTrigger.styles.d.ts +0 -8
  792. package/dist/tabs/useResizeObserver.d.ts +0 -8
  793. package/dist/tag/Tag.d.ts +0 -17
  794. package/dist/tag/Tag.styles.d.ts +0 -8
  795. package/dist/tag/variants/filled.d.ts +0 -41
  796. package/dist/tag/variants/index.d.ts +0 -3
  797. package/dist/tag/variants/outlined.d.ts +0 -37
  798. package/dist/tag/variants/tinted.d.ts +0 -37
  799. package/dist/text-link/TextLink.d.ts +0 -16
  800. package/dist/textarea/Textarea.d.ts +0 -14
  801. package/dist/textarea/TextareaClearButton.d.ts +0 -10
  802. package/dist/textarea/TextareaGroup.d.ts +0 -6
  803. package/dist/textarea/TextareaLeadingIcon.d.ts +0 -7
  804. package/dist/textarea/TextareaTrailingIcon.d.ts +0 -7
  805. package/dist/toast/Toast.d.ts +0 -4
  806. package/dist/toast/Toast.styles.d.ts +0 -10
  807. package/dist/toast/types.d.ts +0 -41
  808. package/dist/toast/useRenderSlot.d.ts +0 -3
  809. package/dist/toast/useToastManager.d.ts +0 -2
  810. package/dist/useCollapsiblePanel-D1dCo0lf.js +0 -4
  811. package/dist/useCollapsiblePanel-D1dCo0lf.js.map +0 -1
  812. package/dist/useCollapsiblePanel-kbMNl4Z4.mjs +0 -287
  813. package/dist/useCollapsiblePanel-kbMNl4Z4.mjs.map +0 -1
  814. package/dist/useFocusWithin-CFNEka2I.js +0 -2
  815. package/dist/useFocusWithin-CFNEka2I.js.map +0 -1
  816. package/dist/useFocusWithin-CoL4390f.mjs +0 -796
  817. package/dist/useFocusWithin-CoL4390f.mjs.map +0 -1
  818. package/dist/useOpenChangeComplete-Dk-u_f2y.js +0 -2
  819. package/dist/useOpenChangeComplete-Dk-u_f2y.js.map +0 -1
  820. package/dist/useOpenChangeComplete-RUbg6RBw.mjs +0 -582
  821. package/dist/useOpenChangeComplete-RUbg6RBw.mjs.map +0 -1
  822. package/dist/useTransitionStatus-CktVVKxz.mjs +0 -46
  823. package/dist/useTransitionStatus-CktVVKxz.mjs.map +0 -1
  824. package/dist/useTransitionStatus-CqbEyvIj.js +0 -2
  825. package/dist/useTransitionStatus-CqbEyvIj.js.map +0 -1
  826. package/dist/visually-hidden/VisuallyHidden.d.ts +0 -12
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/carousel/useCarouselVisibility.ts","../../src/carousel/useEvent.ts","../../src/carousel/useIsMounted.ts","../../src/carousel/useScrollEnd.ts","../../src/carousel/useResizeObserver.ts","../../src/carousel/utils.ts","../../src/carousel/useSnapPoints.ts","../../src/carousel/useCarousel.ts","../../src/carousel/Carousel.tsx","../../src/carousel/CarouselControls.tsx","../../src/carousel/CarouselNextButton.tsx","../../src/carousel/CarouselPageIndicator.tsx","../../src/carousel/CarouselPagePicker.tsx","../../src/carousel/CarouselPrevButton.tsx","../../src/carousel/useIsVisible.ts","../../src/carousel/CarouselSlide.tsx","../../src/carousel/CarouselSlides.tsx","../../src/carousel/CarouselViewport.tsx","../../src/carousel/index.ts"],"sourcesContent":["import { RefObject, useCallback, useEffect, useRef } from 'react'\n\n/**\n * Hook to manage slide visibility using a centralized IntersectionObserver.\n * This optimizes performance by using a single observer per carousel instead of one per slide.\n *\n * @param carouselRef - Reference to the carousel container element\n * @returns Object with functions to register/unregister slides and check visibility\n */\nexport function useCarouselVisibility(carouselRef: RefObject<HTMLDivElement | null>) {\n const slideVisibilityMap = useRef<Map<HTMLElement, boolean>>(new Map())\n const visibilityObserverRef = useRef<IntersectionObserver | null>(null)\n const visibilityCallbacksRef = useRef<Map<HTMLElement, (isVisible: boolean) => void>>(new Map())\n\n // Create the shared IntersectionObserver callback\n const createObserverCallback = useCallback(() => {\n return (entries: IntersectionObserverEntry[]) => {\n // Batch all visibility updates to minimize re-renders\n entries.forEach(entry => {\n const isVisible = entry.isIntersecting\n const element = entry.target as HTMLElement\n slideVisibilityMap.current.set(element, isVisible)\n\n // Notify the callback if it exists\n const callback = visibilityCallbacksRef.current.get(element)\n if (callback) {\n callback(isVisible)\n }\n })\n }\n }, [])\n\n // Initialize or get the shared IntersectionObserver\n const getOrCreateObserver = useCallback(() => {\n if (visibilityObserverRef.current) {\n return visibilityObserverRef.current\n }\n\n const container = carouselRef.current\n if (!container) return null\n\n const observer = new IntersectionObserver(createObserverCallback(), {\n root: container,\n threshold: 0.2,\n })\n\n visibilityObserverRef.current = observer\n\n return observer\n }, [carouselRef, createObserverCallback])\n\n // Initialize the shared IntersectionObserver when container is ready\n useEffect(() => {\n const observer = getOrCreateObserver()\n // Capture ref values to avoid stale closure warnings\n const visibilityMap = slideVisibilityMap.current\n const callbacksMap = visibilityCallbacksRef.current\n\n return () => {\n if (observer) {\n observer.disconnect()\n visibilityMap.clear()\n callbacksMap.clear()\n visibilityObserverRef.current = null\n }\n }\n }, [getOrCreateObserver])\n\n // Register a slide element with the observer\n const registerSlide = useCallback(\n (element: HTMLElement | null, callback: (isVisible: boolean) => void) => {\n if (!element) return\n\n const observer = getOrCreateObserver()\n if (!observer) {\n // If container is not ready yet, retry on next tick\n setTimeout(() => registerSlide(element, callback), 0)\n\n return\n }\n\n // Check initial visibility (default to true for slides that are already in view)\n const initialVisible = slideVisibilityMap.current.get(element) ?? true\n slideVisibilityMap.current.set(element, initialVisible)\n visibilityCallbacksRef.current.set(element, callback)\n observer.observe(element)\n\n // Call callback with initial state\n callback(initialVisible)\n },\n [getOrCreateObserver]\n )\n\n // Unregister a slide element from the observer\n const unregisterSlide = useCallback((element: HTMLElement | null) => {\n if (!element) return\n\n const observer = visibilityObserverRef.current\n if (observer) {\n observer.unobserve(element)\n }\n slideVisibilityMap.current.delete(element)\n visibilityCallbacksRef.current.delete(element)\n }, [])\n\n // Get current visibility state for a slide\n const isSlideVisible = useCallback((element: HTMLElement | null): boolean => {\n if (!element) return true\n\n return slideVisibilityMap.current.get(element) ?? true\n }, [])\n\n return {\n registerSlide,\n unregisterSlide,\n isSlideVisible,\n }\n}\n","import { useCallback, useLayoutEffect, useRef } from 'react'\n\ntype AnyFunction = (...args: any[]) => any\n\n/**\n * Directly from this gist: https://gist.github.com/diegohaz/695097a06f038a707c3a1b11e4e40195\n * Until React releases a native `useEvent` hook.\n */\nexport function useEvent<T extends AnyFunction>(callback?: T) {\n const ref = useRef<AnyFunction | undefined>(() => {\n throw new Error('Cannot call an event handler while rendering.')\n })\n\n useLayoutEffect(() => {\n ref.current = callback\n })\n\n return useCallback<AnyFunction>((...args) => ref.current?.(...args), []) as T\n}\n","import { useEffect, useRef } from 'react'\n\nexport const useIsMounted = () => {\n const isMounted = useRef(false)\n\n useEffect(() => {\n isMounted.current = true\n\n return () => {\n isMounted.current = false\n }\n }, [])\n\n return isMounted\n}\n","import { useEffect, useRef, RefObject } from 'react'\n\nexport function useScrollEnd(scrollRef: RefObject<HTMLDivElement | null>, callback: () => void) {\n const scrollLeft = useRef(0)\n\n /**\n * Safari (and some smaller browsers) to not yet support the `scrollend` event.\n * For those we must rely on the `scroll` event and and an idle state delay to trigger the \"scroll end\".\n *\n * Caveats:\n * - when using a trackpad or your fingers on a touch device, scrolling then holding the position might trigger the \"scrollend\" callback too early.\n */\n const safariTimeout = useRef<NodeJS.Timeout | null>(null)\n\n useEffect(() => {\n const element = scrollRef.current\n if (!element) return\n\n const supportsScrollend = 'onscrollend' in window\n\n const handleScrollEnd = () => {\n callback()\n }\n\n const handleSafariScroll = () => {\n if (safariTimeout.current) {\n clearTimeout(safariTimeout.current)\n }\n\n if (scrollRef.current) {\n scrollLeft.current = scrollRef.current.scrollLeft\n\n safariTimeout.current = setTimeout(() => {\n if (scrollRef.current) {\n handleScrollEnd()\n }\n }, 150)\n }\n }\n\n if (supportsScrollend) {\n element.addEventListener('scrollend', handleScrollEnd)\n } else {\n element.addEventListener('scroll', handleSafariScroll)\n }\n\n return () => {\n if (safariTimeout.current) {\n clearTimeout(safariTimeout.current)\n }\n\n if (supportsScrollend) {\n element.removeEventListener('scrollend', handleScrollEnd)\n } else {\n element.removeEventListener('scroll', handleSafariScroll)\n }\n }\n }, [callback, scrollRef])\n}\n\nexport default useScrollEnd\n","import { useLayoutEffect, RefObject } from 'react'\n\nexport function useResizeObserver<T extends HTMLElement | null>(\n ref: RefObject<T>,\n callback: (width: number) => void\n) {\n useLayoutEffect(() => {\n const element = ref.current\n if (!element) return\n\n const observer = new ResizeObserver(entries => {\n for (const entry of entries) {\n callback(entry.contentRect.width)\n }\n })\n\n observer.observe(element)\n\n return () => observer.disconnect() // Cleanup on unmount\n }, [ref, callback])\n}\n","/**\n * Get the indices of each slides that serves as the start of a page\n * @returns number[] (ex: [0, 2, 4])\n */\nfunction getSnapIndices({\n totalSlides,\n slidesPerMove,\n slidesPerPage,\n}: {\n totalSlides: number\n slidesPerMove: number | 'auto'\n slidesPerPage: number\n}) {\n const slideBy = slidesPerMove === 'auto' ? slidesPerPage : slidesPerMove\n const snapPoints: number[] = []\n\n const lastSnapIndex = Math.floor((totalSlides - slidesPerPage) / slideBy) * slideBy\n\n for (let i = 0; i <= lastSnapIndex; i += slideBy) {\n snapPoints.push(i)\n }\n\n // Adding final snap point if necessary\n if (snapPoints[snapPoints.length - 1] !== totalSlides - slidesPerPage) {\n snapPoints.push(totalSlides - slidesPerPage)\n }\n\n return snapPoints\n}\n\nexport function getSlideElements(container: HTMLDivElement | null): Element[] {\n return container ? Array.from(container.querySelectorAll('[data-part=\"item\"]')) : []\n}\n\nexport function isSnapPoint(\n slideIndex: number,\n {\n container,\n slidesPerMove,\n slidesPerPage,\n }: {\n container: HTMLDivElement | null\n slidesPerMove: number | 'auto'\n slidesPerPage: number\n }\n) {\n return getSnapIndices({\n totalSlides: getSlideElements(container).length,\n slidesPerPage,\n slidesPerMove,\n }).includes(slideIndex)\n}\n\n/**\n * Get the scroll value of each slides that serves as the start of a page\n * @returns number[] (ex for a 400px carousel with no gap: [400, 800, 1200])\n */\nexport function getSnapPositions({\n container,\n slidesPerMove,\n slidesPerPage,\n}: {\n container: HTMLDivElement | null\n slidesPerMove: number | 'auto'\n slidesPerPage: number\n}) {\n if (!container) return []\n\n return getSlideElements(container)\n .filter((_, index) => {\n return isSnapPoint(index, {\n slidesPerMove,\n slidesPerPage,\n container,\n })\n })\n .map(slide => (slide as HTMLElement).offsetLeft)\n}\n\n/**\n * Calculate the state of a dot indicator of a carousel depending on the current page and the total number of pages.\n */\nexport function computeDotState({\n dotIndex,\n pageState,\n totalPages,\n maxDots = 5,\n}: {\n dotIndex: number\n pageState: number\n totalPages: number\n maxDots?: number\n}): 'active' | 'edge' | 'idle' | 'hidden' {\n if (totalPages <= maxDots) {\n return dotIndex === pageState ? 'active' : 'idle'\n }\n\n if (pageState <= Math.floor(maxDots / 2)) {\n if (dotIndex > maxDots - 1) return 'hidden'\n if (dotIndex === pageState) return 'active'\n if (dotIndex === maxDots - 1) return 'edge'\n\n return 'idle'\n }\n\n if (pageState >= totalPages - Math.ceil(maxDots / 2)) {\n const startIndex = totalPages - maxDots\n if (dotIndex < startIndex) return 'hidden'\n if (dotIndex === pageState) return 'active'\n if (dotIndex === startIndex) return 'edge'\n\n return 'idle'\n }\n\n const startIndex = pageState - Math.floor(maxDots / 2)\n const endIndex = pageState + Math.floor(maxDots / 2)\n if (dotIndex < startIndex || dotIndex > endIndex) return 'hidden'\n if (dotIndex === pageState) return 'active'\n if (dotIndex === startIndex || dotIndex === endIndex) return 'edge'\n\n return 'idle'\n}\n","import { useMemo, useState, RefObject } from 'react'\n\nimport { useResizeObserver } from './useResizeObserver'\nimport { getSnapPositions } from './utils'\n\n/**\n * Get the scroll value of each slides that serves as the start of a page\n * The array is updated when resize event are caught in the carousel.\n */\nexport function useSnapPoints<T extends HTMLDivElement | null>(\n initialSnapPoints: number[] = [],\n {\n carouselRef,\n slidesPerMove,\n slidesPerPage,\n }: {\n carouselRef: RefObject<T>\n slidesPerMove: 'auto' | number\n slidesPerPage: number\n }\n) {\n const [pageSnapPoints, setPageSnapPoints] = useState(initialSnapPoints)\n\n const stableSnapPoints = useMemo(() => pageSnapPoints, [pageSnapPoints])\n\n /**\n * On resize, dimensions of the carousel might changes, which requires to update the snap points positions in the state.\n */\n useResizeObserver(carouselRef, () => {\n const newSnapPoints = getSnapPositions({\n slidesPerMove,\n slidesPerPage,\n container: carouselRef.current,\n })\n\n if (JSON.stringify(pageSnapPoints) !== JSON.stringify(newSnapPoints)) {\n setPageSnapPoints(newSnapPoints)\n }\n })\n\n return [stableSnapPoints, setPageSnapPoints] as const\n}\n","/* eslint-disable max-lines-per-function */\nimport {\n KeyboardEvent,\n useCallback,\n useEffect,\n useId,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react'\n\nimport {\n CarouselAPI,\n ComputedControlProps,\n ComputedIndicatorGroupProps,\n ComputedIndicatorProps,\n ComputedRootProps,\n ComputedSlideGroupProps,\n ComputedSlideProps,\n ComputedTriggerProps,\n UseCarouselProps,\n} from './types'\nimport { useCarouselVisibility } from './useCarouselVisibility'\nimport { useEvent } from './useEvent'\nimport { useIsMounted } from './useIsMounted'\nimport { useScrollEnd } from './useScrollEnd'\nimport { useSnapPoints } from './useSnapPoints'\nimport { computeDotState, getSnapPositions, isSnapPoint } from './utils'\n\nconst DATA_SCOPE = 'carousel' as const\nconst DIRECTION = 'ltr' as const\n\nexport const useCarousel = ({\n defaultPage,\n gap = 16,\n snapType = 'mandatory',\n snapStop = 'always',\n scrollPadding = 0,\n slidesPerPage = 1,\n slidesPerMove = 'auto',\n scrollBehavior = 'smooth',\n loop = false,\n pagePickerInset = false,\n maxDots = 5,\n // state control\n page: controlledPage,\n onPageChange: onPageChangeProp,\n}: UseCarouselProps): CarouselAPI => {\n const carouselId = useId()\n const [pageState, setPageState] = useState(defaultPage || controlledPage || 0)\n\n const carouselRef = useRef<HTMLDivElement>(null)\n const pageIndicatorsRefs = useRef<(HTMLElement | null)[]>([])\n const isMountedRef = useIsMounted()\n const isMounted = isMountedRef.current\n const onPageChange = useEvent(onPageChangeProp)\n\n // Centralized visibility management with a single IntersectionObserver per carousel\n const { registerSlide, unregisterSlide, isSlideVisible } = useCarouselVisibility(carouselRef)\n\n const [pageSnapPoints] = useSnapPoints([], {\n carouselRef,\n slidesPerMove,\n slidesPerPage,\n })\n\n const canScrollPrev = useRef(loop || pageState > 0)\n const canScrollNext = useRef(loop || pageState < pageSnapPoints.length - 1)\n canScrollPrev.current = loop || pageState > 0\n canScrollNext.current = loop || pageState < pageSnapPoints.length - 1\n\n const handlePageChange = useCallback(\n (page: number) => {\n if (page !== pageState) {\n setPageState(page)\n onPageChange?.(page)\n }\n },\n [onPageChange, pageState]\n )\n\n const scrollTo = useCallback(\n (page: number, behavior: 'instant' | 'smooth') => {\n if (carouselRef.current) {\n carouselRef.current.scrollTo({\n left: pageSnapPoints[page],\n behavior: behavior === 'instant' ? 'auto' : 'smooth',\n })\n handlePageChange(page)\n }\n },\n [handlePageChange, pageSnapPoints]\n )\n\n const scrollPrev = useCallback(\n (cb?: (pageIndex: number) => void) => {\n if (canScrollPrev) {\n const targetPage =\n loop && pageState === 0 ? pageSnapPoints.length - 1 : Math.max(pageState - 1, 0)\n\n scrollTo(targetPage, scrollBehavior)\n cb?.(targetPage)\n }\n },\n [loop, pageSnapPoints, pageState, scrollBehavior, scrollTo]\n )\n\n const scrollNext = useCallback(\n (cb?: (pageIndex: number) => void) => {\n if (canScrollNext) {\n const targetPage =\n loop && pageState === pageSnapPoints.length - 1\n ? 0\n : Math.min(pageState + 1, pageSnapPoints.length - 1)\n\n scrollTo(targetPage, scrollBehavior)\n cb?.(targetPage)\n }\n },\n [loop, pageSnapPoints, pageState, scrollBehavior, scrollTo]\n )\n\n useEffect(() => {\n if (controlledPage != null) {\n scrollTo(controlledPage, scrollBehavior)\n }\n }, [controlledPage, scrollBehavior, scrollTo])\n\n /**\n * Set the default scroll position of the carousel based on `defaultPage`.\n * As this operation is done before the snap points are set in the state, we have to get them from the ref directly.\n */\n useLayoutEffect(() => {\n if (defaultPage != null && !isMounted && carouselRef.current) {\n const snapPositions = getSnapPositions({\n container: carouselRef.current,\n slidesPerMove,\n slidesPerPage,\n })\n\n carouselRef.current.scrollTo({\n left: snapPositions[defaultPage],\n behavior: 'instant',\n })\n }\n }, [defaultPage, isMounted, slidesPerMove, slidesPerPage])\n\n /**\n * Monitoring scrollend events inside the scrollable area to sync the carousel active page with current scroll position.\n * Scrollend has been chosen over \"scroll\" for performance reason.\n */\n const syncPageStateWithScrollPosition = useCallback(() => {\n if (!carouselRef.current || pageSnapPoints.length === 0) return\n\n const { scrollLeft } = carouselRef.current\n\n const distances = pageSnapPoints.map(pagePosition => Math.abs(scrollLeft - pagePosition))\n const pageInViewport = distances.indexOf(Math.min(...distances))\n\n if (pageInViewport !== -1) {\n handlePageChange(pageInViewport)\n }\n }, [pageSnapPoints, handlePageChange])\n\n useScrollEnd(carouselRef, syncPageStateWithScrollPosition)\n\n const contextValue: CarouselAPI = {\n ref: carouselRef,\n pageIndicatorsRefs,\n // props\n gap,\n snapType,\n snapStop,\n scrollPadding,\n slidesPerPage,\n slidesPerMove,\n scrollBehavior,\n loop,\n pagePickerInset,\n maxDots,\n // computed state\n page: pageState,\n pageSnapPoints,\n canScrollNext: canScrollNext.current,\n canScrollPrev: canScrollPrev.current,\n scrollTo,\n scrollPrev,\n scrollNext,\n // visibility management\n registerSlide,\n unregisterSlide,\n isSlideVisible,\n // anatomy\n getRootProps: (): ComputedRootProps => ({\n id: `carousel::${carouselId}:`,\n role: 'region',\n 'aria-roledescription': 'carousel',\n 'data-scope': DATA_SCOPE,\n 'data-part': 'root',\n 'data-orientation': 'horizontal',\n dir: DIRECTION,\n style: {\n '--slides-per-page': slidesPerPage,\n '--slide-spacing': `${gap}px`,\n '--slide-item-size':\n 'calc(100% / var(--slides-per-page) - var(--slide-spacing) * (var(--slides-per-page) - 1) / var(--slides-per-page))',\n },\n }),\n\n getControlProps: (): ComputedControlProps => ({\n 'data-scope': DATA_SCOPE,\n 'data-part': 'control',\n 'data-orientation': 'horizontal',\n }),\n\n getPrevTriggerProps: (): ComputedTriggerProps<'prev-trigger'> => ({\n id: `carousel::${carouselId}::prev-trigger`,\n 'aria-controls': `carousel::${carouselId}::item-group`,\n 'data-scope': DATA_SCOPE,\n 'data-part': 'prev-trigger',\n 'data-orientation': 'horizontal',\n type: 'button',\n dir: DIRECTION,\n disabled: !canScrollPrev.current,\n onClick: () => scrollPrev(),\n }),\n\n getNextTriggerProps: (): ComputedTriggerProps<'next-trigger'> => ({\n id: `carousel::${carouselId}::next-trigger`,\n 'aria-controls': `carousel::${carouselId}::item-group`,\n 'data-scope': DATA_SCOPE,\n 'data-part': 'next-trigger',\n 'data-orientation': 'horizontal',\n type: 'button',\n dir: DIRECTION,\n disabled: !canScrollNext.current,\n onClick: () => scrollNext(),\n }),\n\n getSlidesContainerProps: (): ComputedSlideGroupProps => ({\n id: `carousel::${carouselId}::item-group`,\n /**\n * The carousel pattern was originally designed for a single slide.\n * When there is more than one slide, the aria-live region is set to off to avoid announcing the whole list of slides.\n * This is not ideal but we keep it for backwards compatibility.\n *\n * @see https://www.w3.org/WAI/ARIA/apg/patterns/carousel/#wai-aria-attributes\n */\n 'aria-live': slidesPerPage > 1 ? 'off' : 'polite',\n 'data-scope': DATA_SCOPE,\n 'data-part': 'item-group',\n 'data-orientation': 'horizontal',\n dir: DIRECTION,\n tabIndex: 0,\n style: {\n display: 'grid',\n gap: 'var(--slide-spacing)',\n scrollSnapType: `x ${snapType}`,\n gridAutoFlow: 'column',\n scrollbarWidth: 'none',\n gridAutoColumns: 'var(--slide-item-size)',\n overflowX: 'auto',\n },\n ref: carouselRef,\n }),\n\n getSlideProps: ({ index }): ComputedSlideProps => {\n const isStopPoint = isSnapPoint(index, {\n container: carouselRef.current,\n slidesPerMove,\n slidesPerPage,\n })\n\n return {\n id: `carousel::${carouselId}::item:${index}`,\n role: 'group',\n 'aria-roledescription': 'slide',\n 'data-scope': DATA_SCOPE,\n 'data-part': 'item',\n 'data-index': index,\n 'data-orientation': 'horizontal',\n dir: DIRECTION,\n style: {\n ...(isStopPoint && {\n scrollSnapAlign: 'start',\n scrollSnapStop: snapStop,\n }),\n },\n }\n },\n\n getIndicatorGroupProps: (): ComputedIndicatorGroupProps => ({\n role: 'radiogroup',\n id: `carousel::${carouselId}::indicator-group`,\n 'data-scope': DATA_SCOPE,\n 'data-part': 'indicator-group',\n 'data-orientation': 'horizontal',\n dir: DIRECTION,\n }),\n\n getIndicatorProps: ({ index }): ComputedIndicatorProps => {\n const dotState = computeDotState({\n dotIndex: index,\n pageState,\n totalPages: pageSnapPoints.length,\n maxDots,\n })\n\n return {\n role: 'radio',\n id: `carousel::${carouselId}::indicator:${index}`,\n 'aria-checked': index === pageState,\n 'data-scope': DATA_SCOPE,\n 'data-part': 'indicator',\n 'data-orientation': 'horizontal',\n 'data-index': index,\n 'data-state': dotState,\n tabIndex: index === pageState ? 0 : -1,\n onClick: () => {\n scrollTo(index, scrollBehavior)\n },\n onKeyDown: (event: KeyboardEvent) => {\n const focusActiveIndicator = (page: number) => {\n pageIndicatorsRefs.current[page]?.focus()\n }\n\n if (event.key === 'ArrowRight' && canScrollNext) {\n scrollNext(focusActiveIndicator)\n } else if (event.key === 'ArrowLeft' && canScrollPrev) {\n scrollPrev(focusActiveIndicator)\n }\n },\n }\n },\n }\n\n return contextValue\n}\n","import { cx } from 'class-variance-authority'\nimport { ComponentProps, createContext, ReactNode, useContext } from 'react'\n\nimport { CarouselAPI, UseCarouselProps } from './types'\nimport { useCarousel } from './useCarousel'\n\ninterface Props extends UseCarouselProps, ComponentProps<'div'> {\n children?: ReactNode\n className?: string\n}\n\nconst CarouselContext = createContext<CarouselAPI | null>(null)\n\nexport const Carousel = ({\n className,\n snapType = 'mandatory',\n snapStop = 'always',\n scrollBehavior = 'smooth',\n slidesPerMove = 'auto',\n pagePickerInset = false,\n slidesPerPage = 1,\n loop = false,\n children,\n gap = 16,\n defaultPage,\n page,\n onPageChange,\n maxDots = 5,\n ...props\n}: Props) => {\n const carouselApi = useCarousel({\n defaultPage,\n slidesPerPage,\n slidesPerMove,\n loop,\n gap,\n scrollBehavior,\n snapStop,\n snapType,\n page,\n pagePickerInset,\n onPageChange,\n maxDots,\n })\n\n return (\n <CarouselContext.Provider\n value={{\n ...carouselApi,\n scrollBehavior,\n }}\n >\n <div\n data-spark-component=\"carousel\"\n className={cx('gap-lg relative box-border flex flex-col', className)}\n {...carouselApi.getRootProps()}\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n )\n}\n\nCarousel.displayName = 'Carousel'\n\nexport const useCarouselContext = () => {\n const context = useContext(CarouselContext)\n\n if (!context) {\n throw Error('useCarouselContext must be used within a Carousel provider')\n }\n\n return context\n}\n","import { cx } from 'class-variance-authority'\nimport { HTMLAttributes, ReactNode } from 'react'\n\nimport { useCarouselContext } from './Carousel'\n\ninterface ControlsProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode\n}\n\nexport const CarouselControls = ({ children, className, ...props }: ControlsProps) => {\n const ctx = useCarouselContext()\n\n return (\n <div\n data-spark-component=\"carousel-controls\"\n className={cx(\n 'default:px-lg pointer-events-none absolute inset-0 flex flex-row items-center justify-between',\n className\n )}\n {...ctx.getControlProps()}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nCarouselControls.displayName = 'Carousel.Controls'\n","import { ArrowVerticalRight } from '@spark-ui/icons/ArrowVerticalRight'\n\nimport { Icon } from '../icon'\nimport { IconButton, IconButtonProps } from '../icon-button'\nimport { useCarouselContext } from './Carousel'\n\nexport const CarouselNextButton = ({\n 'aria-label': ariaLabel,\n ...buttonProps\n}: IconButtonProps) => {\n const ctx = useCarouselContext()\n\n return (\n <IconButton\n data-spark-component=\"carousel-next-button\"\n {...ctx.getNextTriggerProps()}\n intent=\"surface\"\n design=\"filled\"\n className=\"pointer-events-auto cursor-pointer shadow-sm disabled:invisible\"\n aria-label={ariaLabel}\n {...buttonProps}\n >\n <Icon>\n <ArrowVerticalRight />\n </Icon>\n </IconButton>\n )\n}\n\nCarouselNextButton.displayName = 'Carousel.NextButton'\n","import { cx } from 'class-variance-authority'\nimport { ReactNode, useEffect, useRef } from 'react'\n\nimport { useCarouselContext } from './Carousel'\n\ninterface Props {\n children?: ReactNode\n 'aria-label': string\n index: number\n className?: string\n unstyled?: boolean\n intent?: 'basic' | 'surface'\n}\n\nexport const CarouselPageIndicator = ({\n children,\n unstyled = false,\n index,\n 'aria-label': ariaLabel,\n className,\n intent = 'basic',\n}: Props) => {\n const ctx = useCarouselContext()\n\n const ref = useRef<HTMLButtonElement | null>(null)\n\n useEffect(() => {\n if (ctx.pageIndicatorsRefs.current) {\n ctx.pageIndicatorsRefs.current[index] = ref.current\n }\n })\n\n const indicatorProps = ctx.getIndicatorProps({ index })\n\n return (\n <button\n data-spark-component=\"carousel-page-indicator\"\n ref={ref}\n key={index}\n {...indicatorProps}\n aria-label={ariaLabel}\n className={cx(\n {\n [cx(\n 'border-outline group relative flex justify-center border-0 hover:cursor-pointer',\n 'm-sm rounded-sm transition-all duration-[200ms] ease-linear',\n 'w-sz-8 h-sz-8',\n 'data-[state=active]:w-sz-32 data-[state=active]:h-sz-8',\n 'data-[state=edge]:w-sz-4 data-[state=edge]:h-sz-4',\n 'data-[state=hidden]:m-0 data-[state=hidden]:size-0',\n intent === 'surface'\n ? 'data-[state=active]:bg-surface bg-surface/dim-2'\n : 'data-[state=active]:bg-basic bg-on-surface/dim-2'\n )]: !unstyled,\n // [dotsStyles]: !unstyled,\n },\n className\n )}\n >\n {children}\n </button>\n )\n}\n\nCarouselPageIndicator.displayName = 'Carousel.PageIndicator'\n","import { cx } from 'class-variance-authority'\nimport { ReactNode } from 'react'\n\nimport { useCarouselContext } from './Carousel'\nimport { CarouselAPI } from './types'\n\ninterface RenderProps extends CarouselAPI {\n pages: number[]\n}\n\ninterface Props {\n children: (renderProps: RenderProps) => ReactNode\n className?: string\n}\n\nexport const CarouselPagePicker = ({ children, className }: Props) => {\n const ctx = useCarouselContext()\n\n return (\n <>\n <div\n data-spark-component=\"carousel-page-picker\"\n {...ctx.getIndicatorGroupProps()}\n className={cx(\n 'flex-wrap items-center justify-center',\n 'default:min-h-sz-16 flex',\n ctx.pagePickerInset && 'bottom-sz-12 absolute inset-x-0',\n className\n )}\n >\n {ctx.pageSnapPoints.length <= 1\n ? null\n : children({\n ...ctx,\n pages: Array.from({ length: ctx.pageSnapPoints.length }, (_, i) => i),\n })}\n </div>\n </>\n )\n}\n\nCarouselPagePicker.displayName = 'Carousel.PagePicker'\n","import { ArrowVerticalLeft } from '@spark-ui/icons/ArrowVerticalLeft'\n\nimport { Icon } from '../icon'\nimport { IconButton, IconButtonProps } from '../icon-button'\nimport { useCarouselContext } from './Carousel'\n\nexport const CarouselPrevButton = ({\n 'aria-label': ariaLabel,\n ...buttonProps\n}: IconButtonProps) => {\n const ctx = useCarouselContext()\n\n return (\n <IconButton\n data-spark-component=\"carousel-prev-button\"\n {...ctx.getPrevTriggerProps()}\n intent=\"surface\"\n design=\"filled\"\n className=\"pointer-events-auto cursor-pointer shadow-sm disabled:invisible\"\n aria-label={ariaLabel}\n {...buttonProps}\n >\n <Icon>\n <ArrowVerticalLeft />\n </Icon>\n </IconButton>\n )\n}\n\nCarouselPrevButton.displayName = 'Carousel.PrevButton'\n","import { RefObject, useEffect, useState } from 'react'\n\nimport { useCarouselContext } from './Carousel'\n\n/**\n * Hook to track slide visibility using the centralized IntersectionObserver.\n * This optimizes performance by using a single observer per carousel instead of one per slide.\n */\nexport function useIsVisible(\n elementRef: RefObject<HTMLElement | null>,\n _parentRef: RefObject<HTMLElement | null>\n) {\n const [isVisible, setIsVisible] = useState(true)\n const ctx = useCarouselContext()\n\n useEffect(() => {\n const el = elementRef.current\n if (!el) return\n\n // Extract stable functions from context to avoid unnecessary re-renders\n const { registerSlide, unregisterSlide } = ctx\n\n // Register the slide with the centralized observer\n registerSlide(el, setIsVisible)\n\n // Cleanup: unregister when the component unmounts\n return () => {\n unregisterSlide(el)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [elementRef]) // Only depend on elementRef, registerSlide/unregisterSlide are stable callbacks\n\n return isVisible\n}\n","import { cx } from 'class-variance-authority'\nimport { ComponentProps, ReactNode, useRef } from 'react'\n\nimport { useCarouselContext } from './Carousel'\nimport { useIsVisible } from './useIsVisible'\n\nexport interface CarouselSlideProps extends ComponentProps<'div'> {\n isSnapPoint?: boolean\n children?: ReactNode\n index?: number\n totalSlides?: number\n className?: string\n}\n\nexport const CarouselSlide = ({\n children,\n index = 0,\n totalSlides,\n className = '',\n ...props\n}: CarouselSlideProps) => {\n const itemRef = useRef<HTMLDivElement>(null)\n const ctx = useCarouselContext()\n\n const isVisible = useIsVisible(itemRef, ctx.ref)\n\n return (\n <div\n data-spark-component=\"carousel-slide\"\n ref={itemRef}\n {...ctx.getSlideProps({ index, totalSlides: totalSlides as number })}\n className={cx('default:bg-surface relative overflow-hidden', className)}\n aria-hidden={!isVisible}\n inert={!isVisible}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nCarouselSlide.displayName = 'Carousel.Slide'\n","import { cx } from 'class-variance-authority'\nimport { Children, cloneElement, ComponentProps, isValidElement, ReactNode } from 'react'\n\nimport { useCarouselContext } from './Carousel'\nimport { CarouselSlideProps } from './CarouselSlide'\n\ninterface Props extends ComponentProps<'div'> {\n children?: ReactNode\n className?: string\n}\n\nexport const CarouselSlides = ({ children, className = '' }: Props) => {\n const ctx = useCarouselContext()\n\n const childrenElements = Children.toArray(children)\n\n return (\n <div\n data-spark-component=\"carousel-slides\"\n {...ctx.getSlidesContainerProps()}\n className={cx(\n 'focus-visible:u-outline relative w-full',\n '[-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden',\n className\n )}\n >\n {childrenElements.map((child, index) =>\n isValidElement<CarouselSlideProps>(child)\n ? cloneElement(child, {\n index,\n totalSlides: childrenElements.length,\n })\n : child\n )}\n </div>\n )\n}\n\nCarouselSlides.displayName = 'Carousel.Slides'\n","import { ReactNode } from 'react'\n\ninterface Props {\n children: ReactNode\n}\n\nexport const CarouselViewport = ({ children }: Props) => {\n return <div className=\"relative flex items-center justify-around p-0\">{children}</div>\n}\n\nCarouselViewport.displayName = 'Carousel.Viewport'\n","import { Carousel as Root } from './Carousel'\nimport { CarouselControls as Controls } from './CarouselControls'\nimport { CarouselNextButton as NextButton } from './CarouselNextButton'\nimport { CarouselPageIndicator as PageIndicator } from './CarouselPageIndicator'\nimport { CarouselPagePicker as PagePicker } from './CarouselPagePicker'\nimport { CarouselPrevButton as PrevButton } from './CarouselPrevButton'\nimport { CarouselSlide as Slide } from './CarouselSlide'\nimport { CarouselSlides as Slides } from './CarouselSlides'\nimport { CarouselViewport as Viewport } from './CarouselViewport'\n\nexport const Carousel: typeof Root & {\n Controls: typeof Controls\n NextButton: typeof NextButton\n PrevButton: typeof PrevButton\n Slide: typeof Slide\n Slides: typeof Slides\n Viewport: typeof Viewport\n PagePicker: typeof PagePicker\n PageIndicator: typeof PageIndicator\n} = Object.assign(Root, {\n Controls,\n NextButton,\n PrevButton,\n Slide,\n Slides,\n Viewport,\n PagePicker,\n PageIndicator,\n})\n\nCarousel.displayName = 'Carousel'\n"],"names":["useCarouselVisibility","carouselRef","slideVisibilityMap","useRef","visibilityObserverRef","visibilityCallbacksRef","createObserverCallback","useCallback","entries","entry","isVisible","element","callback","getOrCreateObserver","container","observer","useEffect","visibilityMap","callbacksMap","registerSlide","initialVisible","unregisterSlide","isSlideVisible","useEvent","ref","useLayoutEffect","args","useIsMounted","isMounted","useScrollEnd","scrollRef","scrollLeft","safariTimeout","supportsScrollend","handleScrollEnd","handleSafariScroll","useResizeObserver","getSnapIndices","totalSlides","slidesPerMove","slidesPerPage","slideBy","snapPoints","lastSnapIndex","getSlideElements","isSnapPoint","slideIndex","getSnapPositions","_","index","slide","computeDotState","dotIndex","pageState","totalPages","maxDots","startIndex","endIndex","useSnapPoints","initialSnapPoints","pageSnapPoints","setPageSnapPoints","useState","stableSnapPoints","useMemo","newSnapPoints","DATA_SCOPE","DIRECTION","useCarousel","defaultPage","gap","snapType","snapStop","scrollPadding","scrollBehavior","loop","pagePickerInset","controlledPage","onPageChangeProp","carouselId","useId","setPageState","pageIndicatorsRefs","onPageChange","canScrollPrev","canScrollNext","handlePageChange","page","scrollTo","behavior","scrollPrev","cb","targetPage","scrollNext","snapPositions","syncPageStateWithScrollPosition","distances","pagePosition","pageInViewport","isStopPoint","dotState","event","focusActiveIndicator","CarouselContext","createContext","Carousel","className","children","props","carouselApi","jsx","cx","useCarouselContext","context","useContext","CarouselControls","ctx","CarouselNextButton","ariaLabel","buttonProps","IconButton","Icon","ArrowVerticalRight","CarouselPageIndicator","unstyled","intent","indicatorProps","CarouselPagePicker","Fragment","i","CarouselPrevButton","ArrowVerticalLeft","useIsVisible","elementRef","_parentRef","setIsVisible","el","CarouselSlide","itemRef","CarouselSlides","childrenElements","Children","child","isValidElement","cloneElement","CarouselViewport","Root","Controls","NextButton","PrevButton","Slide","Slides","Viewport","PagePicker","PageIndicator"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/carousel/index.ts","../../src/carousel/Carousel.tsx","../../src/carousel/useCarousel.ts","../../src/carousel/useCarouselVisibility.ts","../../src/carousel/useEvent.ts","../../src/carousel/useIsMounted.ts","../../src/carousel/useScrollEnd.ts","../../src/carousel/useSnapPoints.ts","../../src/carousel/useResizeObserver.ts","../../src/carousel/utils.ts","../../src/carousel/CarouselControls.tsx","../../src/carousel/CarouselNextButton.tsx","../../src/icon/Icon.tsx","../../src/slot/Slot.tsx","../../src/visually-hidden/VisuallyHidden.tsx","../../src/icon/Icon.styles.tsx","../../src/button/Button.tsx","../../src/spinner/Spinner.styles.tsx","../../src/spinner/Spinner.tsx","../../src/button/Button.styles.tsx","../../src/button/variants/filled.ts","../../src/button/variants/ghost.ts","../../src/button/variants/outlined.ts","../../src/button/variants/tinted.ts","../../src/button/variants/contrast.ts","../../src/icon-button/IconButton.styles.tsx","../../src/icon-button/IconButton.tsx","../../src/carousel/CarouselPageIndicator.tsx","../../src/carousel/CarouselPagePicker.tsx","../../src/carousel/CarouselPrevButton.tsx","../../src/carousel/CarouselSlide.tsx","../../src/carousel/useIsVisible.ts","../../src/carousel/CarouselSlides.tsx","../../src/carousel/CarouselViewport.tsx"],"sourcesContent":["import { Carousel as Root } from './Carousel'\nimport { CarouselControls as Controls } from './CarouselControls'\nimport { CarouselNextButton as NextButton } from './CarouselNextButton'\nimport { CarouselPageIndicator as PageIndicator } from './CarouselPageIndicator'\nimport { CarouselPagePicker as PagePicker } from './CarouselPagePicker'\nimport { CarouselPrevButton as PrevButton } from './CarouselPrevButton'\nimport { CarouselSlide as Slide } from './CarouselSlide'\nimport { CarouselSlides as Slides } from './CarouselSlides'\nimport { CarouselViewport as Viewport } from './CarouselViewport'\n\nexport const Carousel: typeof Root & {\n Controls: typeof Controls\n NextButton: typeof NextButton\n PrevButton: typeof PrevButton\n Slide: typeof Slide\n Slides: typeof Slides\n Viewport: typeof Viewport\n PagePicker: typeof PagePicker\n PageIndicator: typeof PageIndicator\n} = Object.assign(Root, {\n Controls,\n NextButton,\n PrevButton,\n Slide,\n Slides,\n Viewport,\n PagePicker,\n PageIndicator,\n})\n\nCarousel.displayName = 'Carousel'\n","import { cx } from 'class-variance-authority'\nimport { ComponentProps, createContext, ReactNode, useContext } from 'react'\n\nimport { CarouselAPI, UseCarouselProps } from './types'\nimport { useCarousel } from './useCarousel'\n\ninterface Props extends UseCarouselProps, ComponentProps<'div'> {\n children?: ReactNode\n className?: string\n}\n\nconst CarouselContext = createContext<CarouselAPI | null>(null)\n\nexport const Carousel = ({\n className,\n snapType = 'mandatory',\n snapStop = 'always',\n scrollBehavior = 'smooth',\n slidesPerMove = 'auto',\n pagePickerInset = false,\n slidesPerPage = 1,\n loop = false,\n children,\n gap = 16,\n defaultPage,\n page,\n onPageChange,\n maxDots = 5,\n ...props\n}: Props) => {\n const carouselApi = useCarousel({\n defaultPage,\n slidesPerPage,\n slidesPerMove,\n loop,\n gap,\n scrollBehavior,\n snapStop,\n snapType,\n page,\n pagePickerInset,\n onPageChange,\n maxDots,\n })\n\n return (\n <CarouselContext.Provider\n value={{\n ...carouselApi,\n scrollBehavior,\n }}\n >\n <div\n data-spark-component=\"carousel\"\n className={cx('gap-lg relative box-border flex flex-col', className)}\n {...carouselApi.getRootProps()}\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n )\n}\n\nCarousel.displayName = 'Carousel'\n\nexport const useCarouselContext = () => {\n const context = useContext(CarouselContext)\n\n if (!context) {\n throw Error('useCarouselContext must be used within a Carousel provider')\n }\n\n return context\n}\n","/* eslint-disable max-lines-per-function */\nimport {\n KeyboardEvent,\n useCallback,\n useEffect,\n useId,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react'\n\nimport {\n CarouselAPI,\n ComputedControlProps,\n ComputedIndicatorGroupProps,\n ComputedIndicatorProps,\n ComputedRootProps,\n ComputedSlideGroupProps,\n ComputedSlideProps,\n ComputedTriggerProps,\n UseCarouselProps,\n} from './types'\nimport { useCarouselVisibility } from './useCarouselVisibility'\nimport { useEvent } from './useEvent'\nimport { useIsMounted } from './useIsMounted'\nimport { useScrollEnd } from './useScrollEnd'\nimport { useSnapPoints } from './useSnapPoints'\nimport { computeDotState, getSnapPositions, isSnapPoint } from './utils'\n\nconst DATA_SCOPE = 'carousel' as const\nconst DIRECTION = 'ltr' as const\n\nexport const useCarousel = ({\n defaultPage,\n gap = 16,\n snapType = 'mandatory',\n snapStop = 'always',\n scrollPadding = 0,\n slidesPerPage = 1,\n slidesPerMove = 'auto',\n scrollBehavior = 'smooth',\n loop = false,\n pagePickerInset = false,\n maxDots = 5,\n // state control\n page: controlledPage,\n onPageChange: onPageChangeProp,\n}: UseCarouselProps): CarouselAPI => {\n const carouselId = useId()\n const [pageState, setPageState] = useState(defaultPage || controlledPage || 0)\n\n const carouselRef = useRef<HTMLDivElement>(null)\n const pageIndicatorsRefs = useRef<(HTMLElement | null)[]>([])\n const isMountedRef = useIsMounted()\n const isMounted = isMountedRef.current\n const onPageChange = useEvent(onPageChangeProp)\n\n // Centralized visibility management with a single IntersectionObserver per carousel\n const { registerSlide, unregisterSlide, isSlideVisible } = useCarouselVisibility(carouselRef)\n\n const [pageSnapPoints] = useSnapPoints([], {\n carouselRef,\n slidesPerMove,\n slidesPerPage,\n })\n\n const canScrollPrev = useRef(loop || pageState > 0)\n const canScrollNext = useRef(loop || pageState < pageSnapPoints.length - 1)\n canScrollPrev.current = loop || pageState > 0\n canScrollNext.current = loop || pageState < pageSnapPoints.length - 1\n\n const handlePageChange = useCallback(\n (page: number) => {\n if (page !== pageState) {\n setPageState(page)\n onPageChange?.(page)\n }\n },\n [onPageChange, pageState]\n )\n\n const scrollTo = useCallback(\n (page: number, behavior: 'instant' | 'smooth') => {\n if (carouselRef.current) {\n carouselRef.current.scrollTo({\n left: pageSnapPoints[page],\n behavior: behavior === 'instant' ? 'auto' : 'smooth',\n })\n handlePageChange(page)\n }\n },\n [handlePageChange, pageSnapPoints]\n )\n\n const scrollPrev = useCallback(\n (cb?: (pageIndex: number) => void) => {\n if (canScrollPrev) {\n const targetPage =\n loop && pageState === 0 ? pageSnapPoints.length - 1 : Math.max(pageState - 1, 0)\n\n scrollTo(targetPage, scrollBehavior)\n cb?.(targetPage)\n }\n },\n [loop, pageSnapPoints, pageState, scrollBehavior, scrollTo]\n )\n\n const scrollNext = useCallback(\n (cb?: (pageIndex: number) => void) => {\n if (canScrollNext) {\n const targetPage =\n loop && pageState === pageSnapPoints.length - 1\n ? 0\n : Math.min(pageState + 1, pageSnapPoints.length - 1)\n\n scrollTo(targetPage, scrollBehavior)\n cb?.(targetPage)\n }\n },\n [loop, pageSnapPoints, pageState, scrollBehavior, scrollTo]\n )\n\n useEffect(() => {\n if (controlledPage != null) {\n scrollTo(controlledPage, scrollBehavior)\n }\n }, [controlledPage, scrollBehavior, scrollTo])\n\n /**\n * Set the default scroll position of the carousel based on `defaultPage`.\n * As this operation is done before the snap points are set in the state, we have to get them from the ref directly.\n */\n useLayoutEffect(() => {\n if (defaultPage != null && !isMounted && carouselRef.current) {\n const snapPositions = getSnapPositions({\n container: carouselRef.current,\n slidesPerMove,\n slidesPerPage,\n })\n\n carouselRef.current.scrollTo({\n left: snapPositions[defaultPage],\n behavior: 'instant',\n })\n }\n }, [defaultPage, isMounted, slidesPerMove, slidesPerPage])\n\n /**\n * Monitoring scrollend events inside the scrollable area to sync the carousel active page with current scroll position.\n * Scrollend has been chosen over \"scroll\" for performance reason.\n */\n const syncPageStateWithScrollPosition = useCallback(() => {\n if (!carouselRef.current || pageSnapPoints.length === 0) return\n\n const { scrollLeft } = carouselRef.current\n\n const distances = pageSnapPoints.map(pagePosition => Math.abs(scrollLeft - pagePosition))\n const pageInViewport = distances.indexOf(Math.min(...distances))\n\n if (pageInViewport !== -1) {\n handlePageChange(pageInViewport)\n }\n }, [pageSnapPoints, handlePageChange])\n\n useScrollEnd(carouselRef, syncPageStateWithScrollPosition)\n\n const contextValue: CarouselAPI = {\n ref: carouselRef,\n pageIndicatorsRefs,\n // props\n gap,\n snapType,\n snapStop,\n scrollPadding,\n slidesPerPage,\n slidesPerMove,\n scrollBehavior,\n loop,\n pagePickerInset,\n maxDots,\n // computed state\n page: pageState,\n pageSnapPoints,\n canScrollNext: canScrollNext.current,\n canScrollPrev: canScrollPrev.current,\n scrollTo,\n scrollPrev,\n scrollNext,\n // visibility management\n registerSlide,\n unregisterSlide,\n isSlideVisible,\n // anatomy\n getRootProps: (): ComputedRootProps => ({\n id: `carousel::${carouselId}:`,\n role: 'region',\n 'aria-roledescription': 'carousel',\n 'data-scope': DATA_SCOPE,\n 'data-part': 'root',\n 'data-orientation': 'horizontal',\n dir: DIRECTION,\n style: {\n '--slides-per-page': slidesPerPage,\n '--slide-spacing': `${gap}px`,\n '--slide-item-size':\n 'calc(100% / var(--slides-per-page) - var(--slide-spacing) * (var(--slides-per-page) - 1) / var(--slides-per-page))',\n },\n }),\n\n getControlProps: (): ComputedControlProps => ({\n 'data-scope': DATA_SCOPE,\n 'data-part': 'control',\n 'data-orientation': 'horizontal',\n }),\n\n getPrevTriggerProps: (): ComputedTriggerProps<'prev-trigger'> => ({\n id: `carousel::${carouselId}::prev-trigger`,\n 'aria-controls': `carousel::${carouselId}::item-group`,\n 'data-scope': DATA_SCOPE,\n 'data-part': 'prev-trigger',\n 'data-orientation': 'horizontal',\n type: 'button',\n dir: DIRECTION,\n disabled: !canScrollPrev.current,\n onClick: () => scrollPrev(),\n }),\n\n getNextTriggerProps: (): ComputedTriggerProps<'next-trigger'> => ({\n id: `carousel::${carouselId}::next-trigger`,\n 'aria-controls': `carousel::${carouselId}::item-group`,\n 'data-scope': DATA_SCOPE,\n 'data-part': 'next-trigger',\n 'data-orientation': 'horizontal',\n type: 'button',\n dir: DIRECTION,\n disabled: !canScrollNext.current,\n onClick: () => scrollNext(),\n }),\n\n getSlidesContainerProps: (): ComputedSlideGroupProps => ({\n id: `carousel::${carouselId}::item-group`,\n /**\n * The carousel pattern was originally designed for a single slide.\n * When there is more than one slide, the aria-live region is set to off to avoid announcing the whole list of slides.\n * This is not ideal but we keep it for backwards compatibility.\n *\n * @see https://www.w3.org/WAI/ARIA/apg/patterns/carousel/#wai-aria-attributes\n */\n 'aria-live': slidesPerPage > 1 ? 'off' : 'polite',\n 'data-scope': DATA_SCOPE,\n 'data-part': 'item-group',\n 'data-orientation': 'horizontal',\n dir: DIRECTION,\n tabIndex: 0,\n style: {\n display: 'grid',\n gap: 'var(--slide-spacing)',\n scrollSnapType: `x ${snapType}`,\n gridAutoFlow: 'column',\n scrollbarWidth: 'none',\n gridAutoColumns: 'var(--slide-item-size)',\n overflowX: 'auto',\n },\n ref: carouselRef,\n }),\n\n getSlideProps: ({ index }): ComputedSlideProps => {\n const isStopPoint = isSnapPoint(index, {\n container: carouselRef.current,\n slidesPerMove,\n slidesPerPage,\n })\n\n return {\n id: `carousel::${carouselId}::item:${index}`,\n role: 'group',\n 'aria-roledescription': 'slide',\n 'data-scope': DATA_SCOPE,\n 'data-part': 'item',\n 'data-index': index,\n 'data-orientation': 'horizontal',\n dir: DIRECTION,\n style: {\n ...(isStopPoint && {\n scrollSnapAlign: 'start',\n scrollSnapStop: snapStop,\n }),\n },\n }\n },\n\n getIndicatorGroupProps: (): ComputedIndicatorGroupProps => ({\n role: 'radiogroup',\n id: `carousel::${carouselId}::indicator-group`,\n 'data-scope': DATA_SCOPE,\n 'data-part': 'indicator-group',\n 'data-orientation': 'horizontal',\n dir: DIRECTION,\n }),\n\n getIndicatorProps: ({ index }): ComputedIndicatorProps => {\n const dotState = computeDotState({\n dotIndex: index,\n pageState,\n totalPages: pageSnapPoints.length,\n maxDots,\n })\n\n return {\n role: 'radio',\n id: `carousel::${carouselId}::indicator:${index}`,\n 'aria-checked': index === pageState,\n 'data-scope': DATA_SCOPE,\n 'data-part': 'indicator',\n 'data-orientation': 'horizontal',\n 'data-index': index,\n 'data-state': dotState,\n tabIndex: index === pageState ? 0 : -1,\n onClick: () => {\n scrollTo(index, scrollBehavior)\n },\n onKeyDown: (event: KeyboardEvent) => {\n const focusActiveIndicator = (page: number) => {\n pageIndicatorsRefs.current[page]?.focus()\n }\n\n if (event.key === 'ArrowRight' && canScrollNext) {\n scrollNext(focusActiveIndicator)\n } else if (event.key === 'ArrowLeft' && canScrollPrev) {\n scrollPrev(focusActiveIndicator)\n }\n },\n }\n },\n }\n\n return contextValue\n}\n","import { RefObject, useCallback, useEffect, useRef } from 'react'\n\n/**\n * Hook to manage slide visibility using a centralized IntersectionObserver.\n * This optimizes performance by using a single observer per carousel instead of one per slide.\n *\n * @param carouselRef - Reference to the carousel container element\n * @returns Object with functions to register/unregister slides and check visibility\n */\nexport function useCarouselVisibility(carouselRef: RefObject<HTMLDivElement | null>) {\n const slideVisibilityMap = useRef<Map<HTMLElement, boolean>>(new Map())\n const visibilityObserverRef = useRef<IntersectionObserver | null>(null)\n const visibilityCallbacksRef = useRef<Map<HTMLElement, (isVisible: boolean) => void>>(new Map())\n\n // Create the shared IntersectionObserver callback\n const createObserverCallback = useCallback(() => {\n return (entries: IntersectionObserverEntry[]) => {\n // Batch all visibility updates to minimize re-renders\n entries.forEach(entry => {\n const isVisible = entry.isIntersecting\n const element = entry.target as HTMLElement\n slideVisibilityMap.current.set(element, isVisible)\n\n // Notify the callback if it exists\n const callback = visibilityCallbacksRef.current.get(element)\n if (callback) {\n callback(isVisible)\n }\n })\n }\n }, [])\n\n // Initialize or get the shared IntersectionObserver\n const getOrCreateObserver = useCallback(() => {\n if (visibilityObserverRef.current) {\n return visibilityObserverRef.current\n }\n\n const container = carouselRef.current\n if (!container) return null\n\n const observer = new IntersectionObserver(createObserverCallback(), {\n root: container,\n threshold: 0.2,\n })\n\n visibilityObserverRef.current = observer\n\n return observer\n }, [carouselRef, createObserverCallback])\n\n // Initialize the shared IntersectionObserver when container is ready\n useEffect(() => {\n const observer = getOrCreateObserver()\n // Capture ref values to avoid stale closure warnings\n const visibilityMap = slideVisibilityMap.current\n const callbacksMap = visibilityCallbacksRef.current\n\n return () => {\n if (observer) {\n observer.disconnect()\n visibilityMap.clear()\n callbacksMap.clear()\n visibilityObserverRef.current = null\n }\n }\n }, [getOrCreateObserver])\n\n // Register a slide element with the observer\n const registerSlide = useCallback(\n (element: HTMLElement | null, callback: (isVisible: boolean) => void) => {\n if (!element) return\n\n const observer = getOrCreateObserver()\n if (!observer) {\n // If container is not ready yet, retry on next tick\n setTimeout(() => registerSlide(element, callback), 0)\n\n return\n }\n\n // Check initial visibility (default to true for slides that are already in view)\n const initialVisible = slideVisibilityMap.current.get(element) ?? true\n slideVisibilityMap.current.set(element, initialVisible)\n visibilityCallbacksRef.current.set(element, callback)\n observer.observe(element)\n\n // Call callback with initial state\n callback(initialVisible)\n },\n [getOrCreateObserver]\n )\n\n // Unregister a slide element from the observer\n const unregisterSlide = useCallback((element: HTMLElement | null) => {\n if (!element) return\n\n const observer = visibilityObserverRef.current\n if (observer) {\n observer.unobserve(element)\n }\n slideVisibilityMap.current.delete(element)\n visibilityCallbacksRef.current.delete(element)\n }, [])\n\n // Get current visibility state for a slide\n const isSlideVisible = useCallback((element: HTMLElement | null): boolean => {\n if (!element) return true\n\n return slideVisibilityMap.current.get(element) ?? true\n }, [])\n\n return {\n registerSlide,\n unregisterSlide,\n isSlideVisible,\n }\n}\n","import { useCallback, useLayoutEffect, useRef } from 'react'\n\ntype AnyFunction = (...args: any[]) => any\n\n/**\n * Directly from this gist: https://gist.github.com/diegohaz/695097a06f038a707c3a1b11e4e40195\n * Until React releases a native `useEvent` hook.\n */\nexport function useEvent<T extends AnyFunction>(callback?: T) {\n const ref = useRef<AnyFunction | undefined>(() => {\n throw new Error('Cannot call an event handler while rendering.')\n })\n\n useLayoutEffect(() => {\n ref.current = callback\n })\n\n return useCallback<AnyFunction>((...args) => ref.current?.(...args), []) as T\n}\n","import { useEffect, useRef } from 'react'\n\nexport const useIsMounted = () => {\n const isMounted = useRef(false)\n\n useEffect(() => {\n isMounted.current = true\n\n return () => {\n isMounted.current = false\n }\n }, [])\n\n return isMounted\n}\n","import { useEffect, useRef, RefObject } from 'react'\n\nexport function useScrollEnd(scrollRef: RefObject<HTMLDivElement | null>, callback: () => void) {\n const scrollLeft = useRef(0)\n\n /**\n * Safari (and some smaller browsers) to not yet support the `scrollend` event.\n * For those we must rely on the `scroll` event and and an idle state delay to trigger the \"scroll end\".\n *\n * Caveats:\n * - when using a trackpad or your fingers on a touch device, scrolling then holding the position might trigger the \"scrollend\" callback too early.\n */\n const safariTimeout = useRef<NodeJS.Timeout | null>(null)\n\n useEffect(() => {\n const element = scrollRef.current\n if (!element) return\n\n const supportsScrollend = 'onscrollend' in window\n\n const handleScrollEnd = () => {\n callback()\n }\n\n const handleSafariScroll = () => {\n if (safariTimeout.current) {\n clearTimeout(safariTimeout.current)\n }\n\n if (scrollRef.current) {\n scrollLeft.current = scrollRef.current.scrollLeft\n\n safariTimeout.current = setTimeout(() => {\n if (scrollRef.current) {\n handleScrollEnd()\n }\n }, 150)\n }\n }\n\n if (supportsScrollend) {\n element.addEventListener('scrollend', handleScrollEnd)\n } else {\n element.addEventListener('scroll', handleSafariScroll)\n }\n\n return () => {\n if (safariTimeout.current) {\n clearTimeout(safariTimeout.current)\n }\n\n if (supportsScrollend) {\n element.removeEventListener('scrollend', handleScrollEnd)\n } else {\n element.removeEventListener('scroll', handleSafariScroll)\n }\n }\n }, [callback, scrollRef])\n}\n\nexport default useScrollEnd\n","import { useMemo, useState, RefObject } from 'react'\n\nimport { useResizeObserver } from './useResizeObserver'\nimport { getSnapPositions } from './utils'\n\n/**\n * Get the scroll value of each slides that serves as the start of a page\n * The array is updated when resize event are caught in the carousel.\n */\nexport function useSnapPoints<T extends HTMLDivElement | null>(\n initialSnapPoints: number[] = [],\n {\n carouselRef,\n slidesPerMove,\n slidesPerPage,\n }: {\n carouselRef: RefObject<T>\n slidesPerMove: 'auto' | number\n slidesPerPage: number\n }\n) {\n const [pageSnapPoints, setPageSnapPoints] = useState(initialSnapPoints)\n\n const stableSnapPoints = useMemo(() => pageSnapPoints, [pageSnapPoints])\n\n /**\n * On resize, dimensions of the carousel might changes, which requires to update the snap points positions in the state.\n */\n useResizeObserver(carouselRef, () => {\n const newSnapPoints = getSnapPositions({\n slidesPerMove,\n slidesPerPage,\n container: carouselRef.current,\n })\n\n if (JSON.stringify(pageSnapPoints) !== JSON.stringify(newSnapPoints)) {\n setPageSnapPoints(newSnapPoints)\n }\n })\n\n return [stableSnapPoints, setPageSnapPoints] as const\n}\n","import { useLayoutEffect, RefObject } from 'react'\n\nexport function useResizeObserver<T extends HTMLElement | null>(\n ref: RefObject<T>,\n callback: (width: number) => void\n) {\n useLayoutEffect(() => {\n const element = ref.current\n if (!element) return\n\n const observer = new ResizeObserver(entries => {\n for (const entry of entries) {\n callback(entry.contentRect.width)\n }\n })\n\n observer.observe(element)\n\n return () => observer.disconnect() // Cleanup on unmount\n }, [ref, callback])\n}\n","/**\n * Get the indices of each slides that serves as the start of a page\n * @returns number[] (ex: [0, 2, 4])\n */\nfunction getSnapIndices({\n totalSlides,\n slidesPerMove,\n slidesPerPage,\n}: {\n totalSlides: number\n slidesPerMove: number | 'auto'\n slidesPerPage: number\n}) {\n const slideBy = slidesPerMove === 'auto' ? slidesPerPage : slidesPerMove\n const snapPoints: number[] = []\n\n const lastSnapIndex = Math.floor((totalSlides - slidesPerPage) / slideBy) * slideBy\n\n for (let i = 0; i <= lastSnapIndex; i += slideBy) {\n snapPoints.push(i)\n }\n\n // Adding final snap point if necessary\n if (snapPoints[snapPoints.length - 1] !== totalSlides - slidesPerPage) {\n snapPoints.push(totalSlides - slidesPerPage)\n }\n\n return snapPoints\n}\n\nexport function getSlideElements(container: HTMLDivElement | null): Element[] {\n return container ? Array.from(container.querySelectorAll('[data-part=\"item\"]')) : []\n}\n\nexport function isSnapPoint(\n slideIndex: number,\n {\n container,\n slidesPerMove,\n slidesPerPage,\n }: {\n container: HTMLDivElement | null\n slidesPerMove: number | 'auto'\n slidesPerPage: number\n }\n) {\n return getSnapIndices({\n totalSlides: getSlideElements(container).length,\n slidesPerPage,\n slidesPerMove,\n }).includes(slideIndex)\n}\n\n/**\n * Get the scroll value of each slides that serves as the start of a page\n * @returns number[] (ex for a 400px carousel with no gap: [400, 800, 1200])\n */\nexport function getSnapPositions({\n container,\n slidesPerMove,\n slidesPerPage,\n}: {\n container: HTMLDivElement | null\n slidesPerMove: number | 'auto'\n slidesPerPage: number\n}) {\n if (!container) return []\n\n return getSlideElements(container)\n .filter((_, index) => {\n return isSnapPoint(index, {\n slidesPerMove,\n slidesPerPage,\n container,\n })\n })\n .map(slide => (slide as HTMLElement).offsetLeft)\n}\n\n/**\n * Calculate the state of a dot indicator of a carousel depending on the current page and the total number of pages.\n */\nexport function computeDotState({\n dotIndex,\n pageState,\n totalPages,\n maxDots = 5,\n}: {\n dotIndex: number\n pageState: number\n totalPages: number\n maxDots?: number\n}): 'active' | 'edge' | 'idle' | 'hidden' {\n if (totalPages <= maxDots) {\n return dotIndex === pageState ? 'active' : 'idle'\n }\n\n if (pageState <= Math.floor(maxDots / 2)) {\n if (dotIndex > maxDots - 1) return 'hidden'\n if (dotIndex === pageState) return 'active'\n if (dotIndex === maxDots - 1) return 'edge'\n\n return 'idle'\n }\n\n if (pageState >= totalPages - Math.ceil(maxDots / 2)) {\n const startIndex = totalPages - maxDots\n if (dotIndex < startIndex) return 'hidden'\n if (dotIndex === pageState) return 'active'\n if (dotIndex === startIndex) return 'edge'\n\n return 'idle'\n }\n\n const startIndex = pageState - Math.floor(maxDots / 2)\n const endIndex = pageState + Math.floor(maxDots / 2)\n if (dotIndex < startIndex || dotIndex > endIndex) return 'hidden'\n if (dotIndex === pageState) return 'active'\n if (dotIndex === startIndex || dotIndex === endIndex) return 'edge'\n\n return 'idle'\n}\n","import { cx } from 'class-variance-authority'\nimport { HTMLAttributes, ReactNode } from 'react'\n\nimport { useCarouselContext } from './Carousel'\n\ninterface ControlsProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode\n}\n\nexport const CarouselControls = ({ children, className, ...props }: ControlsProps) => {\n const ctx = useCarouselContext()\n\n return (\n <div\n data-spark-component=\"carousel-controls\"\n className={cx(\n 'default:px-lg pointer-events-none absolute inset-0 flex flex-row items-center justify-between',\n className\n )}\n {...ctx.getControlProps()}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nCarouselControls.displayName = 'Carousel.Controls'\n","import { ArrowVerticalRight } from '@spark-ui/icons/ArrowVerticalRight'\n\nimport { Icon } from '../icon'\nimport { IconButton, IconButtonProps } from '../icon-button'\nimport { useCarouselContext } from './Carousel'\n\nexport const CarouselNextButton = ({\n 'aria-label': ariaLabel,\n ...buttonProps\n}: IconButtonProps) => {\n const ctx = useCarouselContext()\n\n return (\n <IconButton\n data-spark-component=\"carousel-next-button\"\n {...ctx.getNextTriggerProps()}\n intent=\"surface\"\n design=\"filled\"\n className=\"pointer-events-auto cursor-pointer shadow-sm disabled:invisible\"\n aria-label={ariaLabel}\n {...buttonProps}\n >\n <Icon>\n <ArrowVerticalRight />\n </Icon>\n </IconButton>\n )\n}\n\nCarouselNextButton.displayName = 'Carousel.NextButton'\n","import { Children, cloneElement, ComponentPropsWithoutRef, ReactElement, ReactNode } from 'react'\n\nimport { VisuallyHidden } from '../visually-hidden'\nimport { iconStyles, IconVariantsProps } from './Icon.styles'\n\nexport interface IconProps extends IconVariantsProps, ComponentPropsWithoutRef<'svg'> {\n /**\n * The svg icon that will be wrapped\n */\n children: ReactNode\n /**\n * The accessible label for the icon. This label will be visually hidden but announced to screen\n * reader users, similar to `alt` text for `img` tags.\n */\n label?: string\n}\n\nexport const Icon = ({\n label,\n className,\n size = 'current',\n intent = 'current',\n children,\n ...others\n}: IconProps) => {\n const child = Children.only(children)\n\n return (\n <>\n {cloneElement(child as ReactElement<Record<string, any>>, {\n className: iconStyles({ className, size, intent }),\n 'data-spark-component': 'icon',\n 'aria-hidden': 'true',\n focusable: 'false',\n ...others,\n })}\n\n {label && <VisuallyHidden>{label}</VisuallyHidden>}\n </>\n )\n}\n\nIcon.displayName = 'Icon'\n","import { Slot as RadixSlot } from 'radix-ui'\nimport {\n cloneElement,\n HTMLAttributes,\n isValidElement,\n PropsWithChildren,\n ReactNode,\n Ref,\n} from 'react'\n\nexport const Slottable: typeof RadixSlot.Slottable = RadixSlot.Slottable\n\nexport type SlotProps = PropsWithChildren<HTMLAttributes<HTMLElement>> & {\n ref?: Ref<HTMLElement>\n}\n\nexport const Slot = ({ ref, ...props }: SlotProps) => {\n return <RadixSlot.Root ref={ref} {...props} />\n}\n\n/**\n * When using Radix `Slot` component, it will consider its first child to merge its props with.\n * In some cases, you might need to wrap the top child with additional markup without breaking this behaviour.\n */\nexport const wrapPolymorphicSlot = (\n asChild: boolean | undefined,\n children: ReactNode,\n callback: (children: ReactNode) => ReactNode\n) => {\n if (!asChild) return callback(children) // If polymorphic behaviour is not used, we keep the original children\n\n return isValidElement(children)\n ? cloneElement(\n children,\n undefined,\n callback((children.props as { children: ReactNode }).children)\n )\n : null\n}\n","import { HTMLAttributes, PropsWithChildren, Ref } from 'react'\n\nimport { Slot } from '../slot'\n\nexport type VisuallyHiddenProps = PropsWithChildren<HTMLAttributes<HTMLElement>> & {\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n */\n asChild?: boolean\n ref?: Ref<HTMLElement>\n}\n\nexport const VisuallyHidden = ({ asChild = false, ref, ...props }: VisuallyHiddenProps) => {\n const Component = asChild ? Slot : 'span'\n\n return (\n <Component\n {...props}\n ref={ref}\n style={{\n // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss\n position: 'absolute',\n border: 0,\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n whiteSpace: 'nowrap',\n wordWrap: 'normal',\n ...props.style,\n }}\n />\n )\n}\n\nVisuallyHidden.displayName = 'VisuallyHidden'\n","import { makeVariants } from '@spark-ui/internal-utils'\nimport { cva, VariantProps } from 'class-variance-authority'\n\nexport const iconStyles = cva(['fill-current shrink-0'], {\n variants: {\n /**\n * Color scheme of the icon.\n */\n intent: makeVariants<\n 'intent',\n [\n 'current',\n 'main',\n 'support',\n 'accent',\n 'basic',\n 'success',\n 'alert',\n 'error',\n 'info',\n 'neutral',\n ]\n >({\n current: ['text-current'],\n main: ['text-main'],\n support: ['text-support'],\n accent: ['text-accent'],\n basic: ['text-basic'],\n success: ['text-success'],\n alert: ['text-alert'],\n error: ['text-error'],\n info: ['text-info'],\n neutral: ['text-neutral'],\n }),\n /**\n * Sets the size of the icon.\n */\n size: makeVariants<'size', ['current', 'sm', 'md', 'lg', 'xl']>({\n current: ['u-current-font-size'],\n sm: ['w-sz-16', 'h-sz-16'],\n md: ['w-sz-24', 'h-sz-24'],\n lg: ['w-sz-32', 'h-sz-32'],\n xl: ['w-sz-40', 'h-sz-40'],\n }),\n },\n})\n\nexport type IconVariantsProps = VariantProps<typeof iconStyles>\n","import { cx } from 'class-variance-authority'\nimport { ComponentPropsWithoutRef, type DOMAttributes, Ref, useMemo } from 'react'\n\nimport { Slot, wrapPolymorphicSlot } from '../slot'\nimport { Spinner, type SpinnerProps } from '../spinner'\nimport { buttonStyles, type ButtonStylesProps } from './Button.styles'\n\nexport interface ButtonProps\n extends Omit<ComponentPropsWithoutRef<'button'>, 'disabled'>,\n ButtonStylesProps {\n /**\n * Change the component to the HTML tag or custom component of the only child.\n */\n asChild?: boolean\n /**\n * Display a spinner to indicate to the user that the button is loading something after they interacted with it.\n */\n isLoading?: boolean\n /**\n * If your loading state should only display a spinner, it's better to specify a label for it (a11y).\n */\n loadingLabel?: string\n /**\n * If your loading state should also display a label, you can use this prop instead of `loadingLabel`.\n * **Please note that using this can result in layout shifting when the Button goes from loading state to normal state.**\n */\n loadingText?: string\n ref?: Ref<HTMLButtonElement>\n}\n\ntype DOMAttributesEventHandler = keyof Omit<\n DOMAttributes<HTMLButtonElement>,\n 'children' | 'dangerouslySetInnerHTML'\n>\n\nconst blockedEventHandlers: DOMAttributesEventHandler[] = [\n 'onClick',\n 'onMouseDown',\n 'onMouseUp',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseOver',\n 'onMouseOut',\n 'onKeyDown',\n 'onKeyPress',\n 'onKeyUp',\n 'onSubmit',\n]\n\nexport const Button = ({\n children,\n design = 'filled',\n disabled = false,\n intent = 'main',\n isLoading = false,\n loadingLabel,\n loadingText,\n shape = 'rounded',\n size = 'md',\n asChild,\n className,\n underline = false,\n ref,\n ...others\n}: ButtonProps) => {\n const Component = asChild ? Slot : 'button'\n\n const shouldNotInteract = !!disabled || isLoading\n\n const disabledEventHandlers = useMemo(() => {\n const result: Partial<Record<DOMAttributesEventHandler, () => void>> = {}\n\n if (shouldNotInteract) {\n blockedEventHandlers.forEach(eventHandler => (result[eventHandler] = undefined))\n }\n\n return result\n }, [shouldNotInteract])\n\n const spinnerProps = {\n size: 'current' as SpinnerProps['size'],\n className: loadingText ? 'inline-block' : 'absolute',\n ...(loadingLabel && { 'aria-label': loadingLabel }),\n }\n\n return (\n <Component\n data-spark-component=\"button\"\n {...(Component === 'button' && { type: 'button' })}\n ref={ref}\n className={buttonStyles({\n className,\n design,\n disabled: shouldNotInteract,\n intent,\n shape,\n size,\n underline,\n })}\n disabled={!!disabled}\n aria-busy={isLoading}\n aria-live={isLoading ? 'assertive' : 'off'}\n {...others}\n {...disabledEventHandlers}\n >\n {wrapPolymorphicSlot(asChild, children, slotted =>\n isLoading ? (\n <>\n <Spinner {...spinnerProps} />\n {loadingText && loadingText}\n\n <div\n aria-hidden\n className={cx('gap-md', loadingText ? 'hidden' : 'inline-flex opacity-0')}\n >\n {slotted}\n </div>\n </>\n ) : (\n slotted\n )\n )}\n </Component>\n )\n}\n\nButton.displayName = 'Button'\n","import { makeVariants } from '@spark-ui/internal-utils'\nimport { cva, VariantProps } from 'class-variance-authority'\n\nconst defaultVariants = {\n intent: 'current',\n size: 'current',\n isBackgroundVisible: false,\n} as const\n\nexport const spinnerStyles = cva(\n ['inline-block', 'border-solid', 'rounded-full', 'border-md', 'animate-spin'],\n {\n variants: {\n /**\n * Use `size` prop to set the size of the spinner. If you want to set the full size for the spinner, don't forget to add a wrapping container with its own size.\n */\n size: {\n current: ['u-current-font-size'],\n sm: ['w-sz-20', 'h-sz-20'],\n md: ['w-sz-28', 'h-sz-28'],\n full: ['w-full', 'h-full'],\n },\n /**\n * Color scheme of the spinner.\n */\n intent: makeVariants<\n 'intent',\n [\n 'current',\n 'main',\n 'support',\n 'accent',\n 'basic',\n 'success',\n 'alert',\n 'error',\n 'info',\n 'neutral',\n ]\n >({\n current: ['border-current'],\n main: ['border-main'],\n support: ['border-support'],\n accent: ['border-accent'],\n basic: ['border-basic'],\n success: ['border-success'],\n alert: ['border-alert'],\n error: ['border-error'],\n info: ['border-info'],\n neutral: ['border-neutral'],\n }),\n /**\n * Size of the button.\n */\n isBackgroundVisible: {\n true: ['border-b-neutral-container', 'border-l-neutral-container'],\n false: ['border-b-transparent', 'border-l-transparent'],\n },\n },\n defaultVariants,\n }\n)\n\nexport type SpinnerStylesProps = VariantProps<typeof spinnerStyles>\n","import { ComponentPropsWithRef, PropsWithChildren } from 'react'\n\nimport { VisuallyHidden } from '../visually-hidden'\nimport { spinnerStyles, SpinnerStylesProps } from './Spinner.styles'\n\nexport interface SpinnerProps extends ComponentPropsWithRef<'div'>, SpinnerStylesProps {\n /**\n * Use `label` prop for accessibility, it is important to add a fallback loading text. This text will be visible to screen readers.\n */\n label?: string\n}\n\nexport const Spinner = ({\n className,\n size = 'current',\n intent = 'current',\n label,\n isBackgroundVisible,\n ref,\n ...others\n}: PropsWithChildren<SpinnerProps>) => {\n return (\n <span\n role=\"status\"\n data-spark-component=\"spinner\"\n ref={ref}\n className={spinnerStyles({ className, size, intent, isBackgroundVisible })}\n {...others}\n >\n {label && <VisuallyHidden>{label}</VisuallyHidden>}\n </span>\n )\n}\n","import { makeVariants } from '@spark-ui/internal-utils'\nimport { cva, VariantProps } from 'class-variance-authority'\n\nimport {\n contrastVariants,\n filledVariants,\n ghostVariants,\n outlinedVariants,\n tintedVariants,\n} from './variants'\n\nexport const buttonStyles = cva(\n [\n 'u-shadow-border-transition',\n 'box-border inline-flex items-center justify-center gap-md whitespace-nowrap',\n 'default:px-lg',\n 'text-body-1 font-bold',\n 'focus-visible:u-outline',\n ],\n {\n variants: {\n /**\n * Main style of the button.\n *\n * - `filled`: Button will be plain.\n *\n * - `outlined`: Button will be transparent with an outline.\n *\n * - `tinted`: Button will be filled but using a lighter color scheme.\n *\n * - `ghost`: Button will look like a link. No borders, plain text.\n *\n * - `contrast`: Button will be surface filled. No borders, plain text.\n *\n */\n design: makeVariants<'design', ['filled', 'outlined', 'tinted', 'ghost', 'contrast']>({\n filled: [],\n outlined: ['bg-transparent', 'border-sm', 'border-current'],\n tinted: [],\n ghost: ['default:-mx-md px-md hover:bg-main/dim-5'],\n contrast: [],\n }),\n underline: {\n true: ['underline'],\n },\n /**\n * Color scheme of the button.\n */\n intent: makeVariants<\n 'intent',\n [\n 'main',\n 'support',\n 'accent',\n 'basic',\n 'success',\n 'alert',\n 'danger',\n 'info',\n 'neutral',\n 'surface',\n 'surfaceInverse',\n ]\n >({\n main: [],\n support: [],\n accent: [],\n basic: [],\n success: [],\n alert: [],\n danger: [],\n info: [],\n neutral: [],\n surface: [],\n surfaceInverse: [],\n }),\n /**\n * Size of the button.\n */\n size: makeVariants<'size', ['sm', 'md', 'lg']>({\n sm: ['min-w-sz-32', 'h-sz-32'],\n md: ['min-w-sz-44', 'h-sz-44'],\n lg: ['min-w-sz-56', 'h-sz-56'],\n }),\n /**\n * Shape of the button.\n */\n shape: makeVariants<'shape', ['rounded', 'square', 'pill']>({\n rounded: ['rounded-lg'],\n square: ['rounded-0'],\n pill: ['rounded-full'],\n }),\n /**\n * Disable the button, preventing user interaction and adding opacity.\n */\n disabled: {\n true: ['cursor-not-allowed', 'opacity-dim-3'],\n false: ['cursor-pointer'],\n },\n },\n compoundVariants: [\n ...filledVariants,\n ...outlinedVariants,\n ...tintedVariants,\n ...ghostVariants,\n ...contrastVariants,\n ],\n defaultVariants: {\n design: 'filled',\n intent: 'main',\n size: 'md',\n shape: 'rounded',\n },\n }\n)\n\nexport type ButtonStylesProps = VariantProps<typeof buttonStyles>\n","import { tw } from '@spark-ui/internal-utils'\n\nexport const filledVariants = [\n // Main\n {\n intent: 'main',\n design: 'filled',\n class: tw([\n 'bg-main',\n 'text-on-main',\n 'hover:bg-main-hovered',\n 'enabled:active:bg-main-hovered',\n 'focus-visible:bg-main-hovered',\n ]),\n },\n // Support\n {\n intent: 'support',\n design: 'filled',\n class: tw([\n 'bg-support',\n 'text-on-support',\n 'hover:bg-support-hovered',\n 'enabled:active:bg-support-hovered',\n 'focus-visible:bg-support-hovered',\n ]),\n },\n // Accent\n {\n intent: 'accent',\n design: 'filled',\n class: tw([\n 'bg-accent',\n 'text-on-accent',\n 'hover:bg-accent-hovered',\n 'enabled:active:bg-accent-hovered',\n 'focus-visible:bg-accent-hovered',\n ]),\n },\n // Basic\n {\n intent: 'basic',\n design: 'filled',\n class: tw([\n 'bg-basic',\n 'text-on-basic',\n 'hover:bg-basic-hovered',\n 'enabled:active:bg-basic-hovered',\n 'focus-visible:bg-basic-hovered',\n ]),\n },\n // Success\n {\n intent: 'success',\n design: 'filled',\n class: tw([\n 'bg-success',\n 'text-on-success',\n 'hover:bg-success-hovered',\n 'enabled:active:bg-success-hovered',\n 'focus-visible:bg-success-hovered',\n ]),\n },\n // Alert\n {\n intent: 'alert',\n design: 'filled',\n class: tw([\n 'bg-alert',\n 'text-on-alert',\n 'hover:bg-alert-hovered',\n 'enabled:active:bg-alert-hovered',\n 'focus-visible:bg-alert-hovered',\n ]),\n },\n // Danger\n {\n intent: 'danger',\n design: 'filled',\n class: tw([\n 'text-on-error bg-error',\n 'hover:bg-error-hovered enabled:active:bg-error-hovered',\n 'focus-visible:bg-error-hovered',\n ]),\n },\n // Info\n {\n intent: 'info',\n design: 'filled',\n class: tw([\n 'text-on-error bg-info',\n 'hover:bg-info-hovered enabled:active:bg-info-hovered',\n 'focus-visible:bg-info-hovered',\n ]),\n },\n // Neutral\n {\n intent: 'neutral',\n design: 'filled',\n class: tw([\n 'bg-neutral',\n 'text-on-neutral',\n 'hover:bg-neutral-hovered',\n 'enabled:active:bg-neutral-hovered',\n 'focus-visible:bg-neutral-hovered',\n ]),\n },\n // Surface\n {\n intent: 'surface',\n design: 'filled',\n class: tw([\n 'bg-surface',\n 'text-on-surface',\n 'hover:bg-surface-hovered',\n 'enabled:active:bg-surface-hovered',\n 'focus-visible:bg-surface-hovered',\n ]),\n },\n {\n intent: 'surfaceInverse',\n design: 'filled',\n class: tw([\n 'bg-surface-inverse',\n 'text-on-surface-inverse',\n 'hover:bg-surface-inverse-hovered',\n 'enabled:active:bg-surface-inverse-hovered',\n 'focus-visible:bg-surface-inverse-hovered',\n ]),\n },\n] as const\n","import { tw } from '@spark-ui/internal-utils'\n\nexport const ghostVariants = [\n {\n intent: 'main',\n design: 'ghost',\n class: tw([\n 'text-on-main-container',\n 'hover:bg-main/dim-5',\n 'enabled:active:bg-main/dim-5',\n 'focus-visible:bg-main/dim-5',\n ]),\n },\n {\n intent: 'support',\n design: 'ghost',\n class: tw([\n 'text-on-support-container',\n 'hover:bg-support/dim-5',\n 'enabled:active:bg-support/dim-5',\n 'focus-visible:bg-support/dim-5',\n ]),\n },\n {\n intent: 'accent',\n design: 'ghost',\n class: tw([\n 'text-on-accent-container',\n 'hover:bg-accent/dim-5',\n 'enabled:active:bg-accent/dim-5',\n 'focus-visible:bg-accent/dim-5',\n ]),\n },\n {\n intent: 'basic',\n design: 'ghost',\n class: tw([\n 'text-on-basic-container',\n 'hover:bg-basic/dim-5',\n 'enabled:active:bg-basic/dim-5',\n 'focus-visible:bg-basic/dim-5',\n ]),\n },\n {\n intent: 'success',\n design: 'ghost',\n class: tw([\n 'text-on-success-container',\n 'hover:bg-success/dim-5',\n 'enabled:active:bg-success/dim-5',\n 'focus-visible:bg-success/dim-5',\n ]),\n },\n {\n intent: 'alert',\n design: 'ghost',\n class: tw([\n 'text-on-alert-container',\n 'hover:bg-alert/dim-5',\n 'enabled:active:bg-alert/dim-5',\n 'focus-visible:bg-alert/dim-5',\n ]),\n },\n {\n intent: 'danger',\n design: 'ghost',\n class: tw([\n 'text-on-error-container',\n 'hover:bg-error/dim-5',\n 'enabled:active:bg-error/dim-5',\n 'focus-visible:bg-error/dim-5',\n ]),\n },\n {\n intent: 'info',\n design: 'ghost',\n class: tw([\n 'text-on-info-container',\n 'hover:bg-info/dim-5',\n 'enabled:active:bg-info/dim-5',\n 'focus-visible:bg-info/dim-5',\n ]),\n },\n {\n intent: 'neutral',\n design: 'ghost',\n class: tw([\n 'text-on-neutral-container',\n 'hover:bg-neutral/dim-5',\n 'enabled:active:bg-neutral/dim-5',\n 'focus-visible:bg-neutral/dim-5',\n ]),\n },\n {\n intent: 'surface',\n design: 'ghost',\n class: tw([\n 'text-surface',\n 'hover:bg-surface/dim-5',\n 'enabled:active:bg-surface/dim-5',\n 'focus-visible:bg-surface/dim-5',\n ]),\n },\n {\n intent: 'surfaceInverse',\n design: 'ghost',\n class: tw([\n 'text-surface-inverse',\n 'hover:bg-surface-inverse/dim-5',\n 'enabled:active:bg-surface-inverse/dim-5',\n 'focus-visible:bg-surface-inverse/dim-5',\n ]),\n },\n] as const\n","import { tw } from '@spark-ui/internal-utils'\n\nexport const outlinedVariants = [\n {\n intent: 'main',\n design: 'outlined',\n class: tw([\n 'hover:bg-main/dim-5',\n 'enabled:active:bg-main/dim-5',\n 'focus-visible:bg-main/dim-5',\n 'text-main',\n ]),\n },\n {\n intent: 'support',\n design: 'outlined',\n class: tw([\n 'hover:bg-support/dim-5',\n 'enabled:active:bg-support/dim-5',\n 'focus-visible:bg-support/dim-5',\n 'text-support',\n ]),\n },\n {\n intent: 'accent',\n design: 'outlined',\n class: tw([\n 'hover:bg-accent/dim-5',\n 'enabled:active:bg-accent/dim-5',\n 'focus-visible:bg-accent/dim-5',\n 'text-accent',\n ]),\n },\n {\n intent: 'basic',\n design: 'outlined',\n class: tw([\n 'hover:bg-basic/dim-5',\n 'enabled:active:bg-basic/dim-5',\n 'focus-visible:bg-basic/dim-5',\n 'text-basic',\n ]),\n },\n {\n intent: 'success',\n design: 'outlined',\n class: tw([\n 'hover:bg-success/dim-5',\n 'enabled:active:bg-success/dim-5',\n 'focus-visible:bg-success/dim-5',\n 'text-success',\n ]),\n },\n {\n intent: 'alert',\n design: 'outlined',\n class: tw([\n 'hover:bg-alert/dim-5',\n 'enabled:active:bg-alert/dim-5',\n 'focus-visible:bg-alert/dim-5',\n 'text-alert',\n ]),\n },\n {\n intent: 'danger',\n design: 'outlined',\n class: tw([\n 'hover:bg-error/dim-5',\n 'enabled:active:bg-error/dim-5',\n 'focus-visible:bg-error/dim-5',\n 'text-error',\n ]),\n },\n {\n intent: 'info',\n design: 'outlined',\n class: tw([\n 'hover:bg-info/dim-5',\n 'enabled:active:bg-info/dim-5',\n 'focus-visible:bg-info/dim-5',\n 'text-info',\n ]),\n },\n {\n intent: 'neutral',\n design: 'outlined',\n class: tw([\n 'hover:bg-neutral/dim-5',\n 'enabled:active:bg-neutral/dim-5',\n 'focus-visible:bg-neutral/dim-5',\n 'text-neutral',\n ]),\n },\n {\n intent: 'surface',\n design: 'outlined',\n class: tw([\n 'hover:bg-surface/dim-5',\n 'enabled:active:bg-surface/dim-5',\n 'focus-visible:bg-surface/dim-5',\n 'text-surface',\n ]),\n },\n {\n intent: 'surfaceInverse',\n design: 'outlined',\n class: tw([\n 'hover:bg-surface-inverse/dim-5',\n 'enabled:active:bg-surface-inverse/dim-5',\n 'focus-visible:bg-surface-inverse/dim-5',\n 'text-surface-inverse',\n ]),\n },\n] as const\n","import { tw } from '@spark-ui/internal-utils'\n\nexport const tintedVariants = [\n {\n intent: 'main',\n design: 'tinted',\n class: tw([\n 'bg-main-container',\n 'text-on-main-container',\n 'hover:bg-main-container-hovered',\n 'enabled:active:bg-main-container-hovered',\n 'focus-visible:bg-main-container-hovered',\n ]),\n },\n {\n intent: 'support',\n design: 'tinted',\n class: tw([\n 'bg-support-container',\n 'text-on-support-container',\n 'hover:bg-support-container-hovered',\n 'enabled:active:bg-support-container-hovered',\n 'focus-visible:bg-support-container-hovered',\n ]),\n },\n {\n intent: 'accent',\n design: 'tinted',\n class: tw([\n 'bg-accent-container',\n 'text-on-accent-container',\n 'hover:bg-accent-container-hovered',\n 'enabled:active:bg-accent-container-hovered',\n 'focus-visible:bg-accent-container-hovered',\n ]),\n },\n {\n intent: 'basic',\n design: 'tinted',\n class: tw([\n 'bg-basic-container',\n 'text-on-basic-container',\n 'hover:bg-basic-container-hovered',\n 'enabled:active:bg-basic-container-hovered',\n 'focus-visible:bg-basic-container-hovered',\n ]),\n },\n {\n intent: 'success',\n design: 'tinted',\n class: tw([\n 'bg-success-container',\n 'text-on-success-container',\n 'hover:bg-success-container-hovered',\n 'enabled:active:bg-success-container-hovered',\n 'focus-visible:bg-success-container-hovered',\n ]),\n },\n {\n intent: 'alert',\n design: 'tinted',\n class: tw([\n 'bg-alert-container',\n 'text-on-alert-container',\n 'hover:bg-alert-container-hovered',\n 'enabled:active:bg-alert-container-hovered',\n 'focus-visible:bg-alert-container-hovered',\n ]),\n },\n {\n intent: 'danger',\n design: 'tinted',\n class: tw([\n 'bg-error-container',\n 'text-on-error-container',\n 'hover:bg-error-container-hovered',\n 'enabled:active:bg-error-container-hovered',\n 'focus-visible:bg-error-container-hovered',\n ]),\n },\n {\n intent: 'info',\n design: 'tinted',\n class: tw([\n 'bg-info-container',\n 'text-on-info-container',\n 'hover:bg-info-container-hovered',\n 'enabled:active:bg-info-container-hovered',\n 'focus-visible:bg-info-container-hovered',\n ]),\n },\n {\n intent: 'neutral',\n design: 'tinted',\n class: tw([\n 'bg-neutral-container',\n 'text-on-neutral-container',\n 'hover:bg-neutral-container-hovered',\n 'enabled:active:bg-neutral-container-hovered',\n 'focus-visible:bg-neutral-container-hovered',\n ]),\n },\n {\n intent: 'surface',\n design: 'tinted',\n class: tw([\n 'bg-surface',\n 'text-on-surface',\n 'hover:bg-surface-hovered',\n 'enabled:active:bg-surface-hovered',\n 'focus-visible:bg-surface-hovered',\n ]),\n },\n {\n intent: 'surfaceInverse',\n design: 'tinted',\n class: tw([\n 'bg-surface-inverse',\n 'text-on-surface-inverse',\n 'hover:bg-surface-inverse-hovered',\n 'enabled:active:bg-surface-inverse-hovered',\n 'focus-visible:bg-surface-inverse-hovered',\n ]),\n },\n] as const\n","import { tw } from '@spark-ui/internal-utils'\n\nexport const contrastVariants = [\n {\n intent: 'main',\n design: 'contrast',\n class: tw([\n 'text-on-main-contaier bg-surface',\n 'hover:bg-main-container-hovered',\n 'enabled:active:bg-main-container-hovered',\n 'focus-visible:bg-main-container-hovered',\n ]),\n },\n {\n intent: 'support',\n design: 'contrast',\n class: tw([\n 'text-on-support-container bg-surface',\n 'hover:bg-support-container-hovered',\n 'enabled:active:bg-support-container-hovered',\n 'focus-visible:bg-support-container-hovered',\n ]),\n },\n {\n intent: 'accent',\n design: 'contrast',\n class: tw([\n 'text-on-accent-container bg-surface',\n 'hover:bg-accent-container-hovered',\n 'enabled:active:bg-accent-container-hovered',\n 'focus-visible:bg-accent-container-hovered',\n ]),\n },\n {\n intent: 'basic',\n design: 'contrast',\n class: tw([\n 'text-on-basic-container bg-surface',\n 'hover:bg-basic-container-hovered',\n 'enabled:active:bg-basic-container-hovered',\n 'focus-visible:bg-basic-container-hovered',\n ]),\n },\n {\n intent: 'success',\n design: 'contrast',\n class: tw([\n 'text-on-success-container bg-surface',\n 'hover:bg-success-container-hovered',\n 'enabled:active:bg-success-container-hovered',\n 'focus-visible:bg-success-container-hovered',\n ]),\n },\n {\n intent: 'alert',\n design: 'contrast',\n class: tw([\n 'text-on-alert-container bg-surface',\n 'hover:bg-alert-container-hovered',\n 'enabled:active:bg-alert-container-hovered',\n 'focus-visible:bg-alert-container-hovered',\n ]),\n },\n {\n intent: 'danger',\n design: 'contrast',\n class: tw([\n 'text-on-error-container bg-surface',\n 'hover:bg-error-container-hovered',\n 'enabled:active:bg-error-container-hovered',\n 'focus-visible:bg-error-container-hovered',\n ]),\n },\n {\n intent: 'info',\n design: 'contrast',\n class: tw([\n 'text-on-info-container bg-surface',\n 'hover:bg-info-container-hovered',\n 'enabled:active:bg-info-container-hovered',\n 'focus-visible:bg-info-container-hovered',\n ]),\n },\n {\n intent: 'neutral',\n design: 'contrast',\n class: tw([\n 'text-on-neutral-container bg-surface',\n 'hover:bg-neutral-container-hovered',\n 'enabled:active:bg-neutral-container-hovered',\n 'focus-visible:bg-neutral-container-hovered',\n ]),\n },\n {\n intent: 'surface',\n design: 'contrast',\n class: tw([\n 'text-on-surface bg-surface',\n 'hover:bg-surface-hovered',\n 'enabled:active:bg-surface-hovered',\n 'focus-visible:bg-surface-hovered',\n ]),\n },\n {\n intent: 'surfaceInverse',\n design: 'contrast',\n class: tw([\n 'text-on-surface-inverse bg-surface-inverse',\n 'hover:bg-surface-inverse-hovered',\n 'enabled:active:bg-surface-inverse-hovered',\n 'focus-visible:bg-surface-inverse-hovered',\n ]),\n },\n] as const\n","import { makeVariants } from '@spark-ui/internal-utils'\nimport { cva, VariantProps } from 'class-variance-authority'\n\n// override the Button component's px-lg padding by using a more specific class selector (pl-0 pr-0)\nexport const iconButtonStyles = cva(['pl-0 pr-0'], {\n variants: {\n /**\n * Sets the size of the icon.\n */\n size: makeVariants<'size', ['sm', 'md', 'lg']>({\n sm: ['text-body-1'],\n md: ['text-body-1'],\n lg: ['text-display-3'],\n }),\n },\n})\n\nexport type IconButtonStylesProps = VariantProps<typeof iconButtonStyles>\n","import { Ref } from 'react'\n\nimport { Button, ButtonProps } from '../button'\nimport { iconButtonStyles } from './IconButton.styles'\n\nexport interface IconButtonProps extends Omit<ButtonProps, 'loadingText'> {\n 'aria-label': string\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const IconButton = ({\n design = 'filled',\n disabled = false,\n intent = 'main',\n shape = 'rounded',\n size = 'md',\n className,\n ref,\n ...others\n}: IconButtonProps) => {\n return (\n <Button\n data-spark-component=\"icon-button\"\n ref={ref}\n className={iconButtonStyles({ size, className })}\n design={design}\n disabled={disabled}\n intent={intent}\n shape={shape}\n size={size}\n {...others}\n />\n )\n}\n\nIconButton.displayName = 'IconButton'\n","import { cx } from 'class-variance-authority'\nimport { ReactNode, useEffect, useRef } from 'react'\n\nimport { useCarouselContext } from './Carousel'\n\ninterface Props {\n children?: ReactNode\n 'aria-label': string\n index: number\n className?: string\n unstyled?: boolean\n intent?: 'basic' | 'surface'\n}\n\nexport const CarouselPageIndicator = ({\n children,\n unstyled = false,\n index,\n 'aria-label': ariaLabel,\n className,\n intent = 'basic',\n}: Props) => {\n const ctx = useCarouselContext()\n\n const ref = useRef<HTMLButtonElement | null>(null)\n\n useEffect(() => {\n if (ctx.pageIndicatorsRefs.current) {\n ctx.pageIndicatorsRefs.current[index] = ref.current\n }\n })\n\n const indicatorProps = ctx.getIndicatorProps({ index })\n\n return (\n <button\n data-spark-component=\"carousel-page-indicator\"\n ref={ref}\n key={index}\n {...indicatorProps}\n aria-label={ariaLabel}\n className={cx(\n {\n [cx(\n 'border-outline group relative flex justify-center border-0 hover:cursor-pointer',\n 'm-sm rounded-sm transition-all duration-[200ms] ease-linear',\n 'w-sz-8 h-sz-8',\n 'data-[state=active]:w-sz-32 data-[state=active]:h-sz-8',\n 'data-[state=edge]:w-sz-4 data-[state=edge]:h-sz-4',\n 'data-[state=hidden]:m-0 data-[state=hidden]:size-0',\n intent === 'surface'\n ? 'data-[state=active]:bg-surface bg-surface/dim-2'\n : 'data-[state=active]:bg-basic bg-on-surface/dim-2'\n )]: !unstyled,\n // [dotsStyles]: !unstyled,\n },\n className\n )}\n >\n {children}\n </button>\n )\n}\n\nCarouselPageIndicator.displayName = 'Carousel.PageIndicator'\n","import { cx } from 'class-variance-authority'\nimport { ReactNode } from 'react'\n\nimport { useCarouselContext } from './Carousel'\nimport { CarouselAPI } from './types'\n\ninterface RenderProps extends CarouselAPI {\n pages: number[]\n}\n\ninterface Props {\n children: (renderProps: RenderProps) => ReactNode\n className?: string\n}\n\nexport const CarouselPagePicker = ({ children, className }: Props) => {\n const ctx = useCarouselContext()\n\n return (\n <>\n <div\n data-spark-component=\"carousel-page-picker\"\n {...ctx.getIndicatorGroupProps()}\n className={cx(\n 'flex-wrap items-center justify-center',\n 'default:min-h-sz-16 flex',\n ctx.pagePickerInset && 'bottom-sz-12 absolute inset-x-0',\n className\n )}\n >\n {ctx.pageSnapPoints.length <= 1\n ? null\n : children({\n ...ctx,\n pages: Array.from({ length: ctx.pageSnapPoints.length }, (_, i) => i),\n })}\n </div>\n </>\n )\n}\n\nCarouselPagePicker.displayName = 'Carousel.PagePicker'\n","import { ArrowVerticalLeft } from '@spark-ui/icons/ArrowVerticalLeft'\n\nimport { Icon } from '../icon'\nimport { IconButton, IconButtonProps } from '../icon-button'\nimport { useCarouselContext } from './Carousel'\n\nexport const CarouselPrevButton = ({\n 'aria-label': ariaLabel,\n ...buttonProps\n}: IconButtonProps) => {\n const ctx = useCarouselContext()\n\n return (\n <IconButton\n data-spark-component=\"carousel-prev-button\"\n {...ctx.getPrevTriggerProps()}\n intent=\"surface\"\n design=\"filled\"\n className=\"pointer-events-auto cursor-pointer shadow-sm disabled:invisible\"\n aria-label={ariaLabel}\n {...buttonProps}\n >\n <Icon>\n <ArrowVerticalLeft />\n </Icon>\n </IconButton>\n )\n}\n\nCarouselPrevButton.displayName = 'Carousel.PrevButton'\n","import { cx } from 'class-variance-authority'\nimport { ComponentProps, ReactNode, useRef } from 'react'\n\nimport { useCarouselContext } from './Carousel'\nimport { useIsVisible } from './useIsVisible'\n\nexport interface CarouselSlideProps extends ComponentProps<'div'> {\n isSnapPoint?: boolean\n children?: ReactNode\n index?: number\n totalSlides?: number\n className?: string\n}\n\nexport const CarouselSlide = ({\n children,\n index = 0,\n totalSlides,\n className = '',\n ...props\n}: CarouselSlideProps) => {\n const itemRef = useRef<HTMLDivElement>(null)\n const ctx = useCarouselContext()\n\n const isVisible = useIsVisible(itemRef, ctx.ref)\n\n return (\n <div\n data-spark-component=\"carousel-slide\"\n ref={itemRef}\n {...ctx.getSlideProps({ index, totalSlides: totalSlides as number })}\n className={cx('default:bg-surface relative overflow-hidden', className)}\n aria-hidden={!isVisible}\n inert={!isVisible}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nCarouselSlide.displayName = 'Carousel.Slide'\n","import { RefObject, useEffect, useState } from 'react'\n\nimport { useCarouselContext } from './Carousel'\n\n/**\n * Hook to track slide visibility using the centralized IntersectionObserver.\n * This optimizes performance by using a single observer per carousel instead of one per slide.\n */\nexport function useIsVisible(\n elementRef: RefObject<HTMLElement | null>,\n _parentRef: RefObject<HTMLElement | null>\n) {\n const [isVisible, setIsVisible] = useState(true)\n const ctx = useCarouselContext()\n\n useEffect(() => {\n const el = elementRef.current\n if (!el) return\n\n // Extract stable functions from context to avoid unnecessary re-renders\n const { registerSlide, unregisterSlide } = ctx\n\n // Register the slide with the centralized observer\n registerSlide(el, setIsVisible)\n\n // Cleanup: unregister when the component unmounts\n return () => {\n unregisterSlide(el)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [elementRef]) // Only depend on elementRef, registerSlide/unregisterSlide are stable callbacks\n\n return isVisible\n}\n","import { cx } from 'class-variance-authority'\nimport { Children, cloneElement, ComponentProps, isValidElement, ReactNode } from 'react'\n\nimport { useCarouselContext } from './Carousel'\nimport { CarouselSlideProps } from './CarouselSlide'\n\ninterface Props extends ComponentProps<'div'> {\n children?: ReactNode\n className?: string\n}\n\nexport const CarouselSlides = ({ children, className = '' }: Props) => {\n const ctx = useCarouselContext()\n\n const childrenElements = Children.toArray(children)\n\n return (\n <div\n data-spark-component=\"carousel-slides\"\n {...ctx.getSlidesContainerProps()}\n className={cx(\n 'focus-visible:u-outline relative w-full',\n '[-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden',\n className\n )}\n >\n {childrenElements.map((child, index) =>\n isValidElement<CarouselSlideProps>(child)\n ? cloneElement(child, {\n index,\n totalSlides: childrenElements.length,\n })\n : child\n )}\n </div>\n )\n}\n\nCarouselSlides.displayName = 'Carousel.Slides'\n","import { ReactNode } from 'react'\n\ninterface Props {\n children: ReactNode\n}\n\nexport const CarouselViewport = ({ children }: Props) => {\n return <div className=\"relative flex items-center justify-around p-0\">{children}</div>\n}\n\nCarouselViewport.displayName = 'Carousel.Viewport'\n"],"mappings":"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","names":["Carousel","import_react","import_react","import_react","import_react","import_react","import_react","import_react","startIndex","import_class_variance_authority","import_jsx_runtime","import_react","import_react","import_jsx_runtime","RadixSlot","import_jsx_runtime","import_class_variance_authority","import_jsx_runtime","import_class_variance_authority","import_react","import_internal_utils","import_class_variance_authority","import_jsx_runtime","import_internal_utils","import_class_variance_authority","import_internal_utils","import_internal_utils","import_internal_utils","import_internal_utils","import_internal_utils","import_jsx_runtime","import_internal_utils","import_class_variance_authority","import_jsx_runtime","import_jsx_runtime","import_class_variance_authority","import_react","import_jsx_runtime","import_class_variance_authority","import_jsx_runtime","import_jsx_runtime","import_class_variance_authority","import_react","import_react","import_jsx_runtime","import_class_variance_authority","import_react","import_jsx_runtime","import_jsx_runtime","Carousel"]}