@spark-ui/components 14.0.0-beta.1 → 14.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (382) hide show
  1. package/dist/Button-B6rA3-e5.js +2 -0
  2. package/dist/{Button-C3xHNaGl.js.map → Button-B6rA3-e5.js.map} +1 -1
  3. package/dist/{Button-D32Avk2j.mjs → Button-C3C0aixy.mjs} +4 -4
  4. package/dist/{Button-D32Avk2j.mjs.map → Button-C3C0aixy.mjs.map} +1 -1
  5. package/dist/DialogContent.styles-BSfXHt21.mjs +61 -0
  6. package/dist/DialogContent.styles-BSfXHt21.mjs.map +1 -0
  7. package/dist/DialogContent.styles-bBs6l8Cy.js +2 -0
  8. package/dist/DialogContent.styles-bBs6l8Cy.js.map +1 -0
  9. package/dist/Icon-CF0W0LKr.js +2 -0
  10. package/dist/{Icon-Bf0XrmiR.js.map → Icon-CF0W0LKr.js.map} +1 -1
  11. package/dist/{Icon-D1RueiPY.mjs → Icon-Ck-dhfLd.mjs} +6 -6
  12. package/dist/{Icon-D1RueiPY.mjs.map → Icon-Ck-dhfLd.mjs.map} +1 -1
  13. package/dist/{IconButton-BY3gYXtU.mjs → IconButton-C62-axzv.mjs} +6 -6
  14. package/dist/{IconButton-BY3gYXtU.mjs.map → IconButton-C62-axzv.mjs.map} +1 -1
  15. package/dist/IconButton-D3g86WpZ.js +2 -0
  16. package/dist/{IconButton-Bf-EDzpI.js.map → IconButton-D3g86WpZ.js.map} +1 -1
  17. package/dist/Slot-D2Bbf8Gw.mjs +14 -0
  18. package/dist/{Slot-C98rL4yy.mjs.map → Slot-D2Bbf8Gw.mjs.map} +1 -1
  19. package/dist/Slot-DQ8z2zsy.js +2 -0
  20. package/dist/{Slot-ghrohQLA.js.map → Slot-DQ8z2zsy.js.map} +1 -1
  21. package/dist/Spinner-_Kffli3B.js +2 -0
  22. package/dist/{Spinner-DK8VEsaR.js.map → Spinner-_Kffli3B.js.map} +1 -1
  23. package/dist/{Spinner-CYL5kyzM.mjs → Spinner-jF3-zoh_.mjs} +3 -3
  24. package/dist/{Spinner-CYL5kyzM.mjs.map → Spinner-jF3-zoh_.mjs.map} +1 -1
  25. package/dist/{TextLink-3MEVs3No.mjs → TextLink-BuzFRWO6.mjs} +3 -3
  26. package/dist/{TextLink-3MEVs3No.mjs.map → TextLink-BuzFRWO6.mjs.map} +1 -1
  27. package/dist/TextLink-C3xDLsbC.js +2 -0
  28. package/dist/{TextLink-DD0VO37q.js.map → TextLink-C3xDLsbC.js.map} +1 -1
  29. package/dist/{VisuallyHidden-AoRh4WRK.js → VisuallyHidden-CB6Nx76j.js} +2 -2
  30. package/dist/{VisuallyHidden-AoRh4WRK.js.map → VisuallyHidden-CB6Nx76j.js.map} +1 -1
  31. package/dist/{VisuallyHidden-ByNP7ZUI.mjs → VisuallyHidden-KH1biLx-.mjs} +2 -2
  32. package/dist/{VisuallyHidden-ByNP7ZUI.mjs.map → VisuallyHidden-KH1biLx-.mjs.map} +1 -1
  33. package/dist/accordion/index.d.mts +15 -0
  34. package/dist/accordion/index.js +1 -1
  35. package/dist/accordion/index.js.map +1 -1
  36. package/dist/accordion/index.mjs +90 -608
  37. package/dist/accordion/index.mjs.map +1 -1
  38. package/dist/alert-dialog/AlertDialogPortal.d.ts +1 -1
  39. package/dist/alert-dialog/index.d.mts +38 -0
  40. package/dist/alert-dialog/index.js +1 -34
  41. package/dist/alert-dialog/index.js.map +1 -1
  42. package/dist/alert-dialog/index.mjs +139 -2475
  43. package/dist/alert-dialog/index.mjs.map +1 -1
  44. package/dist/avatar/index.d.mts +15 -0
  45. package/dist/avatar/index.js +1 -1
  46. package/dist/avatar/index.js.map +1 -1
  47. package/dist/avatar/index.mjs +4 -4
  48. package/dist/badge/index.d.mts +1 -0
  49. package/dist/badge/index.js +1 -1
  50. package/dist/badge/index.js.map +1 -1
  51. package/dist/badge/index.mjs +6 -6
  52. package/dist/breadcrumb/index.d.mts +12 -0
  53. package/dist/breadcrumb/index.js +1 -1
  54. package/dist/breadcrumb/index.js.map +1 -1
  55. package/dist/breadcrumb/index.mjs +21 -21
  56. package/dist/button/Button.d.ts +1 -1
  57. package/dist/button/index.d.mts +1 -0
  58. package/dist/button/index.js +1 -1
  59. package/dist/button/index.mjs +1 -1
  60. package/dist/button/variants/index.d.mts +5 -0
  61. package/dist/card/index.d.mts +8 -0
  62. package/dist/card/index.js +1 -1
  63. package/dist/card/index.js.map +1 -1
  64. package/dist/card/index.mjs +2 -2
  65. package/dist/carousel/index.d.mts +19 -0
  66. package/dist/carousel/index.js +1 -1
  67. package/dist/carousel/index.js.map +1 -1
  68. package/dist/carousel/index.mjs +3 -3
  69. package/dist/checkbox/index.d.mts +2 -0
  70. package/dist/checkbox/index.js +1 -1
  71. package/dist/checkbox/index.js.map +1 -1
  72. package/dist/checkbox/index.mjs +128 -364
  73. package/dist/checkbox/index.mjs.map +1 -1
  74. package/dist/chip/index.d.mts +15 -0
  75. package/dist/chip/index.js +1 -1
  76. package/dist/chip/index.js.map +1 -1
  77. package/dist/chip/index.mjs +196 -370
  78. package/dist/chip/index.mjs.map +1 -1
  79. package/dist/chip/variants/index.d.mts +3 -0
  80. package/dist/collapsible/index.d.mts +7 -0
  81. package/dist/collapsible/index.js +1 -1
  82. package/dist/collapsible/index.js.map +1 -1
  83. package/dist/collapsible/index.mjs +38 -213
  84. package/dist/collapsible/index.mjs.map +1 -1
  85. package/dist/combobox/index.d.mts +35 -0
  86. package/dist/combobox/index.js +1 -1
  87. package/dist/combobox/index.js.map +1 -1
  88. package/dist/combobox/index.mjs +7 -7
  89. package/dist/combobox/utils/index.d.mts +14 -0
  90. package/dist/dialog/Dialog.d.ts +13 -13
  91. package/dist/dialog/DialogClose.d.ts +9 -8
  92. package/dist/dialog/DialogContent.d.ts +4 -4
  93. package/dist/dialog/DialogDescription.d.ts +3 -3
  94. package/dist/dialog/DialogOverlay.d.ts +5 -5
  95. package/dist/dialog/DialogPortal.d.ts +4 -4
  96. package/dist/dialog/DialogTitle.d.ts +3 -3
  97. package/dist/dialog/DialogTrigger.d.ts +5 -9
  98. package/dist/dialog/index.d.mts +37 -0
  99. package/dist/dialog/index.js +1 -1
  100. package/dist/dialog/index.js.map +1 -1
  101. package/dist/dialog/index.mjs +149 -159
  102. package/dist/dialog/index.mjs.map +1 -1
  103. package/dist/divider/index.d.mts +6 -0
  104. package/dist/divider/index.js +1 -1
  105. package/dist/divider/index.js.map +1 -1
  106. package/dist/divider/index.mjs +58 -76
  107. package/dist/divider/index.mjs.map +1 -1
  108. package/dist/drawer/Drawer.d.ts +12 -19
  109. package/dist/drawer/DrawerClose.d.ts +9 -5
  110. package/dist/drawer/DrawerContent.d.ts +5 -5
  111. package/dist/drawer/DrawerDescription.d.ts +4 -4
  112. package/dist/drawer/DrawerOverlay.d.ts +5 -5
  113. package/dist/drawer/DrawerPortal.d.ts +4 -4
  114. package/dist/drawer/DrawerTitle.d.ts +5 -5
  115. package/dist/drawer/DrawerTrigger.d.ts +5 -5
  116. package/dist/drawer/index.d.mts +37 -0
  117. package/dist/drawer/index.d.ts +2 -0
  118. package/dist/drawer/index.js +1 -1
  119. package/dist/drawer/index.js.map +1 -1
  120. package/dist/drawer/index.mjs +143 -114
  121. package/dist/drawer/index.mjs.map +1 -1
  122. package/dist/drawer/useRenderSlot.d.ts +3 -0
  123. package/dist/dropdown/index.d.mts +29 -0
  124. package/dist/dropdown/index.js +1 -1
  125. package/dist/dropdown/index.js.map +1 -1
  126. package/dist/dropdown/index.mjs +5 -5
  127. package/dist/file-upload/index.d.mts +22 -0
  128. package/dist/file-upload/index.js +1 -1
  129. package/dist/file-upload/index.js.map +1 -1
  130. package/dist/file-upload/index.mjs +6 -6
  131. package/dist/form-field/index.d.mts +31 -0
  132. package/dist/form-field/index.js +1 -1
  133. package/dist/form-field/index.js.map +1 -1
  134. package/dist/form-field/index.mjs +47 -47
  135. package/dist/icon/index.d.mts +1 -0
  136. package/dist/icon/index.js +1 -1
  137. package/dist/icon/index.mjs +1 -1
  138. package/dist/icon-button/index.d.mts +1 -0
  139. package/dist/icon-button/index.js +1 -1
  140. package/dist/icon-button/index.mjs +1 -1
  141. package/dist/input/index.d.mts +21 -0
  142. package/dist/input/index.js +1 -1
  143. package/dist/input/index.js.map +1 -1
  144. package/dist/input/index.mjs +4 -4
  145. package/dist/input-otp/index.d.mts +14 -0
  146. package/dist/input-otp/index.js +1 -1
  147. package/dist/input-otp/index.js.map +1 -1
  148. package/dist/input-otp/index.mjs +139 -137
  149. package/dist/input-otp/index.mjs.map +1 -1
  150. package/dist/kbd/index.d.mts +1 -0
  151. package/dist/label/index.d.mts +7 -0
  152. package/dist/label/index.js +1 -1
  153. package/dist/label/index.js.map +1 -1
  154. package/dist/label/index.mjs +37 -2
  155. package/dist/label/index.mjs.map +1 -1
  156. package/dist/link-box/index.d.mts +9 -0
  157. package/dist/link-box/index.js +1 -1
  158. package/dist/link-box/index.js.map +1 -1
  159. package/dist/link-box/index.mjs +7 -7
  160. package/dist/pagination/index.d.mts +18 -0
  161. package/dist/pagination/index.js +1 -1
  162. package/dist/pagination/index.js.map +1 -1
  163. package/dist/pagination/index.mjs +126 -844
  164. package/dist/pagination/index.mjs.map +1 -1
  165. package/dist/popover/index.d.mts +17 -0
  166. package/dist/popover/index.js +1 -1
  167. package/dist/popover/index.js.map +1 -1
  168. package/dist/popover/index.mjs +119 -1748
  169. package/dist/popover/index.mjs.map +1 -1
  170. package/dist/portal/index.d.mts +1 -0
  171. package/dist/portal/index.js +1 -1
  172. package/dist/portal/index.js.map +1 -1
  173. package/dist/portal/index.mjs +3 -3
  174. package/dist/portal/index.mjs.map +1 -1
  175. package/dist/progress/index.d.mts +13 -0
  176. package/dist/progress/index.js +1 -6
  177. package/dist/progress/index.js.map +1 -1
  178. package/dist/progress/index.mjs +87 -162
  179. package/dist/progress/index.mjs.map +1 -1
  180. package/dist/progress-tracker/index.d.mts +10 -0
  181. package/dist/progress-tracker/index.js +1 -1
  182. package/dist/progress-tracker/index.js.map +1 -1
  183. package/dist/progress-tracker/index.mjs +14 -14
  184. package/dist/radio-group/index.d.mts +7 -0
  185. package/dist/radio-group/index.js +1 -1
  186. package/dist/radio-group/index.js.map +1 -1
  187. package/dist/radio-group/index.mjs +85 -312
  188. package/dist/radio-group/index.mjs.map +1 -1
  189. package/dist/rating/index.d.mts +1 -0
  190. package/dist/rating/index.js +1 -1
  191. package/dist/rating/index.js.map +1 -1
  192. package/dist/rating/index.mjs +11 -11
  193. package/dist/scrolling-list/index.d.mts +15 -0
  194. package/dist/scrolling-list/index.js +1 -1
  195. package/dist/scrolling-list/index.js.map +1 -1
  196. package/dist/scrolling-list/index.mjs +168 -333
  197. package/dist/scrolling-list/index.mjs.map +1 -1
  198. package/dist/segmented-gauge/index.d.mts +13 -0
  199. package/dist/segmented-gauge/index.js +1 -1
  200. package/dist/segmented-gauge/index.js.map +1 -1
  201. package/dist/segmented-gauge/index.mjs +1 -1
  202. package/dist/select/index.d.mts +21 -0
  203. package/dist/select/index.js +1 -1
  204. package/dist/select/index.js.map +1 -1
  205. package/dist/select/index.mjs +21 -21
  206. package/dist/skeleton/index.d.mts +8 -0
  207. package/dist/skeleton/index.js +1 -1
  208. package/dist/skeleton/index.js.map +1 -1
  209. package/dist/skeleton/index.mjs +2 -2
  210. package/dist/slider/Slider.d.ts +6 -1
  211. package/dist/slider/SliderContext.d.ts +4 -1
  212. package/dist/slider/index.d.mts +8 -0
  213. package/dist/slider/index.js +1 -1
  214. package/dist/slider/index.js.map +1 -1
  215. package/dist/slider/index.mjs +96 -496
  216. package/dist/slider/index.mjs.map +1 -1
  217. package/dist/slot/index.d.mts +1 -0
  218. package/dist/slot/index.js +1 -1
  219. package/dist/slot/index.mjs +1 -1
  220. package/dist/snackbar/index.d.mts +13 -0
  221. package/dist/snackbar/index.js +1 -1
  222. package/dist/snackbar/index.js.map +1 -1
  223. package/dist/snackbar/index.mjs +189 -1105
  224. package/dist/snackbar/index.mjs.map +1 -1
  225. package/dist/spinner/index.d.mts +1 -0
  226. package/dist/spinner/index.js +1 -1
  227. package/dist/spinner/index.mjs +1 -1
  228. package/dist/stepper/index.d.mts +9 -0
  229. package/dist/stepper/index.js +1 -7
  230. package/dist/stepper/index.js.map +1 -1
  231. package/dist/stepper/index.mjs +137 -2317
  232. package/dist/stepper/index.mjs.map +1 -1
  233. package/dist/switch/index.d.mts +1 -0
  234. package/dist/switch/index.js +1 -1
  235. package/dist/switch/index.js.map +1 -1
  236. package/dist/switch/index.mjs +85 -208
  237. package/dist/switch/index.mjs.map +1 -1
  238. package/dist/tabs/index.d.mts +13 -0
  239. package/dist/tabs/index.js +1 -1
  240. package/dist/tabs/index.js.map +1 -1
  241. package/dist/tabs/index.mjs +179 -329
  242. package/dist/tabs/index.mjs.map +1 -1
  243. package/dist/tag/index.d.mts +1 -0
  244. package/dist/tag/index.js +1 -1
  245. package/dist/tag/index.js.map +1 -1
  246. package/dist/tag/index.mjs +2 -2
  247. package/dist/tag/variants/index.d.mts +3 -0
  248. package/dist/text-link/index.d.mts +1 -0
  249. package/dist/text-link/index.js +1 -1
  250. package/dist/text-link/index.mjs +1 -1
  251. package/dist/textarea/index.d.mts +14 -0
  252. package/dist/textarea/index.js +1 -1
  253. package/dist/textarea/index.js.map +1 -1
  254. package/dist/textarea/index.mjs +6 -6
  255. package/dist/toast/index.d.mts +20 -0
  256. package/dist/toast/index.js +1 -1
  257. package/dist/toast/index.js.map +1 -1
  258. package/dist/toast/index.mjs +146 -1008
  259. package/dist/toast/index.mjs.map +1 -1
  260. package/dist/useRenderSlot-DATwjgpo.js +2 -0
  261. package/dist/useRenderSlot-DATwjgpo.js.map +1 -0
  262. package/dist/useRenderSlot-LwWj8QbC.mjs +10 -0
  263. package/dist/useRenderSlot-LwWj8QbC.mjs.map +1 -0
  264. package/dist/visually-hidden/index.d.mts +1 -0
  265. package/dist/visually-hidden/index.js +1 -1
  266. package/dist/visually-hidden/index.mjs +1 -1
  267. package/package.json +7 -6
  268. package/dist/Button-C3xHNaGl.js +0 -2
  269. package/dist/DialogContent.styles-BrhKaHc_.js +0 -2
  270. package/dist/DialogContent.styles-BrhKaHc_.js.map +0 -1
  271. package/dist/DialogContent.styles-WGWJS9dj.mjs +0 -48
  272. package/dist/DialogContent.styles-WGWJS9dj.mjs.map +0 -1
  273. package/dist/Icon-Bf0XrmiR.js +0 -2
  274. package/dist/IconButton-Bf-EDzpI.js +0 -2
  275. package/dist/Slot-C98rL4yy.mjs +0 -14
  276. package/dist/Slot-ghrohQLA.js +0 -2
  277. package/dist/Spinner-DK8VEsaR.js +0 -2
  278. package/dist/TextLink-DD0VO37q.js +0 -2
  279. package/dist/composite-Br3kM5N9.mjs +0 -40
  280. package/dist/composite-Br3kM5N9.mjs.map +0 -1
  281. package/dist/composite-fJD9R7R0.js +0 -2
  282. package/dist/composite-fJD9R7R0.js.map +0 -1
  283. package/dist/detectBrowser-Bc7rk5fI.mjs +0 -44
  284. package/dist/detectBrowser-Bc7rk5fI.mjs.map +0 -1
  285. package/dist/detectBrowser-DTbs_30X.js +0 -2
  286. package/dist/detectBrowser-DTbs_30X.js.map +0 -1
  287. package/dist/downshift.esm-Ncwetv0s.mjs +0 -3038
  288. package/dist/downshift.esm-Ncwetv0s.mjs.map +0 -1
  289. package/dist/downshift.esm-PfCOUbxq.js +0 -37
  290. package/dist/downshift.esm-PfCOUbxq.js.map +0 -1
  291. package/dist/floating-ui.utils.dom-CCN4I08l.js +0 -2
  292. package/dist/floating-ui.utils.dom-CCN4I08l.js.map +0 -1
  293. package/dist/floating-ui.utils.dom-uiDUZc_y.mjs +0 -136
  294. package/dist/floating-ui.utils.dom-uiDUZc_y.mjs.map +0 -1
  295. package/dist/index-0KYGKeVg.js +0 -2
  296. package/dist/index-0KYGKeVg.js.map +0 -1
  297. package/dist/index-1WIgmEZh.js +0 -2
  298. package/dist/index-1WIgmEZh.js.map +0 -1
  299. package/dist/index-BRi38DTc.mjs +0 -21
  300. package/dist/index-BRi38DTc.mjs.map +0 -1
  301. package/dist/index-BZAtNKwE.mjs +0 -71
  302. package/dist/index-BZAtNKwE.mjs.map +0 -1
  303. package/dist/index-BZPx6jYI.mjs +0 -9
  304. package/dist/index-BZPx6jYI.mjs.map +0 -1
  305. package/dist/index-BlkdpEIe.mjs +0 -55
  306. package/dist/index-BlkdpEIe.mjs.map +0 -1
  307. package/dist/index-BmAFn37q.mjs +0 -49
  308. package/dist/index-BmAFn37q.mjs.map +0 -1
  309. package/dist/index-C-J_tHdS.js +0 -6
  310. package/dist/index-C-J_tHdS.js.map +0 -1
  311. package/dist/index-C1qb0595.mjs +0 -28
  312. package/dist/index-C1qb0595.mjs.map +0 -1
  313. package/dist/index-C34GgsKQ.mjs +0 -54
  314. package/dist/index-C34GgsKQ.mjs.map +0 -1
  315. package/dist/index-CCKe-Mpx.mjs +0 -7
  316. package/dist/index-CCKe-Mpx.mjs.map +0 -1
  317. package/dist/index-CDBBjNXc.js +0 -2
  318. package/dist/index-CDBBjNXc.js.map +0 -1
  319. package/dist/index-CYjGhVvU.mjs +0 -243
  320. package/dist/index-CYjGhVvU.mjs.map +0 -1
  321. package/dist/index-ChLwd62c.js +0 -2
  322. package/dist/index-ChLwd62c.js.map +0 -1
  323. package/dist/index-Cjj_rUPu.js +0 -2
  324. package/dist/index-Cjj_rUPu.js.map +0 -1
  325. package/dist/index-CyMbLkj0.js +0 -2
  326. package/dist/index-CyMbLkj0.js.map +0 -1
  327. package/dist/index-DFZozV_h.mjs +0 -69
  328. package/dist/index-DFZozV_h.mjs.map +0 -1
  329. package/dist/index-DKuHkHFX.js +0 -2
  330. package/dist/index-DKuHkHFX.js.map +0 -1
  331. package/dist/index-DLHLIYPI.mjs +0 -16
  332. package/dist/index-DLHLIYPI.mjs.map +0 -1
  333. package/dist/index-DO-atGp-.js +0 -2
  334. package/dist/index-DO-atGp-.js.map +0 -1
  335. package/dist/index-DWlg8lkk.mjs +0 -179
  336. package/dist/index-DWlg8lkk.mjs.map +0 -1
  337. package/dist/index-DYxWvftI.js +0 -2
  338. package/dist/index-DYxWvftI.js.map +0 -1
  339. package/dist/index-D_lWkK39.mjs +0 -803
  340. package/dist/index-D_lWkK39.mjs.map +0 -1
  341. package/dist/index-DdkVj7D0.js +0 -18
  342. package/dist/index-DdkVj7D0.js.map +0 -1
  343. package/dist/index-De-6atSi.js +0 -2
  344. package/dist/index-De-6atSi.js.map +0 -1
  345. package/dist/index-DhGWNzsz.mjs +0 -83
  346. package/dist/index-DhGWNzsz.mjs.map +0 -1
  347. package/dist/index-Dkj4QRX8.js +0 -2
  348. package/dist/index-Dkj4QRX8.js.map +0 -1
  349. package/dist/index-DlIFg0Eu.mjs +0 -60
  350. package/dist/index-DlIFg0Eu.mjs.map +0 -1
  351. package/dist/index-DnaHaH_0.js +0 -2
  352. package/dist/index-DnaHaH_0.js.map +0 -1
  353. package/dist/index-MHF2-CYX.js +0 -2
  354. package/dist/index-MHF2-CYX.js.map +0 -1
  355. package/dist/index-MQ0c3ZX_.js +0 -2
  356. package/dist/index-MQ0c3ZX_.js.map +0 -1
  357. package/dist/index-MSR-vgWR.mjs +0 -37
  358. package/dist/index-MSR-vgWR.mjs.map +0 -1
  359. package/dist/index-VL0YEmOW.mjs +0 -125
  360. package/dist/index-VL0YEmOW.mjs.map +0 -1
  361. package/dist/index-tXqxYME3.js +0 -42
  362. package/dist/index-tXqxYME3.js.map +0 -1
  363. package/dist/inertValue-Bif5Sqs6.mjs +0 -522
  364. package/dist/inertValue-Bif5Sqs6.mjs.map +0 -1
  365. package/dist/inertValue-ShwihJSN.js +0 -5
  366. package/dist/inertValue-ShwihJSN.js.map +0 -1
  367. package/dist/useCollapsiblePanel-D1dCo0lf.js +0 -4
  368. package/dist/useCollapsiblePanel-D1dCo0lf.js.map +0 -1
  369. package/dist/useCollapsiblePanel-kbMNl4Z4.mjs +0 -287
  370. package/dist/useCollapsiblePanel-kbMNl4Z4.mjs.map +0 -1
  371. package/dist/useFocusWithin-CFNEka2I.js +0 -2
  372. package/dist/useFocusWithin-CFNEka2I.js.map +0 -1
  373. package/dist/useFocusWithin-CoL4390f.mjs +0 -796
  374. package/dist/useFocusWithin-CoL4390f.mjs.map +0 -1
  375. package/dist/useOpenChangeComplete-Dk-u_f2y.js +0 -2
  376. package/dist/useOpenChangeComplete-Dk-u_f2y.js.map +0 -1
  377. package/dist/useOpenChangeComplete-RUbg6RBw.mjs +0 -582
  378. package/dist/useOpenChangeComplete-RUbg6RBw.mjs.map +0 -1
  379. package/dist/useTransitionStatus-CktVVKxz.mjs +0 -46
  380. package/dist/useTransitionStatus-CktVVKxz.mjs.map +0 -1
  381. package/dist/useTransitionStatus-CqbEyvIj.js +0 -2
  382. package/dist/useTransitionStatus-CqbEyvIj.js.map +0 -1
@@ -1,242 +1,15 @@
1
- import { jsx as i, jsxs as I, Fragment as x } from "react/jsx-runtime";
2
- import { c as g, a as J } from "../index-BmAFn37q.mjs";
3
- import * as R from "react";
4
- import { createContext as Q, useContext as Z, useId as E, useMemo as ee } from "react";
5
- import { useFormFieldControl as _ } from "../form-field/index.mjs";
6
- import { makeVariants as S } from "@spark-ui/internal-utils";
7
- import { u as re, c as G } from "../index-DlIFg0Eu.mjs";
8
- import { u as w } from "../index-DhGWNzsz.mjs";
9
- import { c as A } from "../index-DFZozV_h.mjs";
10
- import { P as y } from "../index-MSR-vgWR.mjs";
11
- import { c as D, R as oe, I as te } from "../index-DWlg8lkk.mjs";
12
- import { u as ae } from "../index-BlkdpEIe.mjs";
13
- import { u as ne } from "../index-C1qb0595.mjs";
14
- import { u as ie } from "../index-BZPx6jYI.mjs";
15
- import { P as se } from "../index-BZAtNKwE.mjs";
16
- import { R as de } from "../index-C34GgsKQ.mjs";
17
- var C = "Radio", [ce, F] = A(C), [ue, le] = ce(C), L = R.forwardRef(
18
- (e, t) => {
19
- const {
20
- __scopeRadio: r,
21
- name: a,
22
- checked: o = !1,
23
- required: n,
24
- disabled: s,
25
- value: u = "on",
26
- onCheck: p,
27
- form: f,
28
- ...m
29
- } = e, [c, b] = R.useState(null), d = w(t, (h) => b(h)), l = R.useRef(!1), v = c ? f || !!c.closest("form") : !0;
30
- return /* @__PURE__ */ I(ue, { scope: r, checked: o, disabled: s, children: [
31
- /* @__PURE__ */ i(
32
- y.button,
33
- {
34
- type: "button",
35
- role: "radio",
36
- "aria-checked": o,
37
- "data-state": O(o),
38
- "data-disabled": s ? "" : void 0,
39
- disabled: s,
40
- value: u,
41
- ...m,
42
- ref: d,
43
- onClick: G(e.onClick, (h) => {
44
- o || p?.(), v && (l.current = h.isPropagationStopped(), l.current || h.stopPropagation());
45
- })
46
- }
47
- ),
48
- v && /* @__PURE__ */ i(
49
- $,
50
- {
51
- control: c,
52
- bubbles: !l.current,
53
- name: a,
54
- value: u,
55
- checked: o,
56
- required: n,
57
- disabled: s,
58
- form: f,
59
- style: { transform: "translateX(-100%)" }
60
- }
61
- )
62
- ] });
63
- }
64
- );
65
- L.displayName = C;
66
- var M = "RadioIndicator", V = R.forwardRef(
67
- (e, t) => {
68
- const { __scopeRadio: r, forceMount: a, ...o } = e, n = le(M, r);
69
- return /* @__PURE__ */ i(se, { present: a || n.checked, children: /* @__PURE__ */ i(
70
- y.span,
71
- {
72
- "data-state": O(n.checked),
73
- "data-disabled": n.disabled ? "" : void 0,
74
- ...o,
75
- ref: t
76
- }
77
- ) });
78
- }
79
- );
80
- V.displayName = M;
81
- var pe = "RadioBubbleInput", $ = R.forwardRef(
82
- ({
83
- __scopeRadio: e,
84
- control: t,
85
- checked: r,
86
- bubbles: a = !0,
87
- ...o
88
- }, n) => {
89
- const s = R.useRef(null), u = w(s, n), p = ie(r), f = ne(t);
90
- return R.useEffect(() => {
91
- const m = s.current;
92
- if (!m) return;
93
- const c = window.HTMLInputElement.prototype, d = Object.getOwnPropertyDescriptor(
94
- c,
95
- "checked"
96
- ).set;
97
- if (p !== r && d) {
98
- const l = new Event("click", { bubbles: a });
99
- d.call(m, r), m.dispatchEvent(l);
100
- }
101
- }, [p, r, a]), /* @__PURE__ */ i(
102
- y.input,
103
- {
104
- type: "radio",
105
- "aria-hidden": !0,
106
- defaultChecked: r,
107
- ...o,
108
- tabIndex: -1,
109
- ref: u,
110
- style: {
111
- ...o.style,
112
- ...f,
113
- position: "absolute",
114
- pointerEvents: "none",
115
- opacity: 0,
116
- margin: 0
117
- }
118
- }
119
- );
120
- }
121
- );
122
- $.displayName = pe;
123
- function O(e) {
124
- return e ? "checked" : "unchecked";
125
- }
126
- var fe = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"], k = "RadioGroup", [me] = A(k, [
127
- D,
128
- F
129
- ]), q = D(), z = F(), [be, Re] = me(k), B = R.forwardRef(
130
- (e, t) => {
131
- const {
132
- __scopeRadioGroup: r,
133
- name: a,
134
- defaultValue: o,
135
- value: n,
136
- required: s = !1,
137
- disabled: u = !1,
138
- orientation: p,
139
- dir: f,
140
- loop: m = !0,
141
- onValueChange: c,
142
- ...b
143
- } = e, d = q(r), l = ae(f), [v, h] = re({
144
- prop: n,
145
- defaultProp: o ?? null,
146
- onChange: c,
147
- caller: k
148
- });
149
- return /* @__PURE__ */ i(
150
- be,
151
- {
152
- scope: r,
153
- name: a,
154
- required: s,
155
- disabled: u,
156
- value: v,
157
- onValueChange: h,
158
- children: /* @__PURE__ */ i(
159
- oe,
160
- {
161
- asChild: !0,
162
- ...d,
163
- orientation: p,
164
- dir: l,
165
- loop: m,
166
- children: /* @__PURE__ */ i(
167
- y.div,
168
- {
169
- role: "radiogroup",
170
- "aria-required": s,
171
- "aria-orientation": p,
172
- "data-disabled": u ? "" : void 0,
173
- dir: l,
174
- ...b,
175
- ref: t
176
- }
177
- )
178
- }
179
- )
180
- }
181
- );
182
- }
183
- );
184
- B.displayName = k;
185
- var j = "RadioGroupItem", K = R.forwardRef(
186
- (e, t) => {
187
- const { __scopeRadioGroup: r, disabled: a, ...o } = e, n = Re(j, r), s = n.disabled || a, u = q(r), p = z(r), f = R.useRef(null), m = w(t, f), c = n.value === o.value, b = R.useRef(!1);
188
- return R.useEffect(() => {
189
- const d = (v) => {
190
- fe.includes(v.key) && (b.current = !0);
191
- }, l = () => b.current = !1;
192
- return document.addEventListener("keydown", d), document.addEventListener("keyup", l), () => {
193
- document.removeEventListener("keydown", d), document.removeEventListener("keyup", l);
194
- };
195
- }, []), /* @__PURE__ */ i(
196
- te,
197
- {
198
- asChild: !0,
199
- ...u,
200
- focusable: !s,
201
- active: c,
202
- children: /* @__PURE__ */ i(
203
- L,
204
- {
205
- disabled: s,
206
- required: n.required,
207
- checked: c,
208
- ...p,
209
- ...o,
210
- name: n.name,
211
- ref: m,
212
- onCheck: () => n.onValueChange(o.value),
213
- onKeyDown: G((d) => {
214
- d.key === "Enter" && d.preventDefault();
215
- }),
216
- onFocus: G(o.onFocus, () => {
217
- b.current && f.current?.click();
218
- })
219
- }
220
- )
221
- }
222
- );
223
- }
224
- );
225
- K.displayName = j;
226
- var ve = "RadioGroupIndicator", T = R.forwardRef(
227
- (e, t) => {
228
- const { __scopeRadioGroup: r, ...a } = e, o = z(r);
229
- return /* @__PURE__ */ i(V, { ...o, ...a, ref: t });
230
- }
231
- );
232
- T.displayName = ve;
233
- var he = T;
234
- const U = Q(null), ge = () => {
235
- const e = Z(U);
1
+ import { jsx as o, jsxs as g, Fragment as G } from "react/jsx-runtime";
2
+ import { cva as u, cx as F } from "class-variance-authority";
3
+ import { createContext as V, useContext as j, useId as k, useMemo as C } from "react";
4
+ import { useFormFieldControl as y } from "@spark-ui/components/form-field";
5
+ import { RadioGroup as h, Label as q } from "radix-ui";
6
+ import { makeVariants as I } from "@spark-ui/internal-utils";
7
+ const N = V(null), S = () => {
8
+ const e = j(N);
236
9
  if (!e)
237
10
  throw Error("useRadioGroup must be used within a RadioGroup provider");
238
11
  return e;
239
- }, ye = g(
12
+ }, E = u(
240
13
  [
241
14
  "relative block",
242
15
  "size-3/5",
@@ -252,7 +25,7 @@ const U = Q(null), ge = () => {
252
25
  ],
253
26
  {
254
27
  variants: {
255
- intent: S({
28
+ intent: I({
256
29
  main: ["after:bg-main"],
257
30
  support: ["after:bg-support"],
258
31
  accent: ["after:bg-accent"],
@@ -268,16 +41,16 @@ const U = Q(null), ge = () => {
268
41
  intent: "basic"
269
42
  }
270
43
  }
271
- ), H = ({ intent: e, className: t, ref: r, ...a }) => /* @__PURE__ */ i(
272
- he,
44
+ ), w = ({ intent: e, className: r, ref: a, ...t }) => /* @__PURE__ */ o(
45
+ h.Indicator,
273
46
  {
274
- ref: r,
275
- className: ye({ intent: e, className: t }),
276
- ...a
47
+ ref: a,
48
+ className: E({ intent: e, className: r }),
49
+ ...t
277
50
  }
278
51
  );
279
- H.displayName = "RadioGroup.RadioIndicator";
280
- const ke = g(
52
+ w.displayName = "RadioGroup.RadioIndicator";
53
+ const M = u(
281
54
  [
282
55
  "flex shrink-0 items-center justify-center",
283
56
  "rounded-full",
@@ -294,7 +67,7 @@ const ke = g(
294
67
  /**
295
68
  * Color scheme of the radio input.
296
69
  */
297
- intent: S({
70
+ intent: I({
298
71
  main: ["border-outline", "data-[state=checked]:border-main", "hover:ring-main-container"],
299
72
  support: [
300
73
  "border-outline",
@@ -330,21 +103,21 @@ const ke = g(
330
103
  intent: "basic"
331
104
  }
332
105
  }
333
- ), X = ({ intent: e, className: t, ref: r, ...a }) => {
334
- const { state: o } = _(), n = o ?? e;
335
- return /* @__PURE__ */ i(
336
- K,
106
+ ), L = ({ intent: e, className: r, ref: a, ...t }) => {
107
+ const { state: i } = y(), n = i ?? e;
108
+ return /* @__PURE__ */ o(
109
+ h.RadioGroupItem,
337
110
  {
338
111
  "data-spark-component": "radio-input",
339
- ref: r,
340
- className: ke({ intent: n, className: t }),
341
- ...a,
342
- children: /* @__PURE__ */ i(H, { intent: n, forceMount: !0 })
112
+ ref: a,
113
+ className: M({ intent: n, className: r }),
114
+ ...t,
115
+ children: /* @__PURE__ */ o(w, { intent: n, forceMount: !0 })
343
116
  }
344
117
  );
345
118
  };
346
- X.displayName = "RadioGroup.RadioInput";
347
- const Ie = g("grow", {
119
+ L.displayName = "RadioGroup.RadioInput";
120
+ const D = u("grow", {
348
121
  variants: {
349
122
  disabled: {
350
123
  true: ["text-neutral/dim-2", "cursor-not-allowed"],
@@ -354,96 +127,96 @@ const Ie = g("grow", {
354
127
  defaultVariants: {
355
128
  disabled: !1
356
129
  }
357
- }), W = ({ disabled: e, ...t }) => /* @__PURE__ */ i(
358
- de,
130
+ }), $ = ({ disabled: e, ...r }) => /* @__PURE__ */ o(
131
+ q.Root,
359
132
  {
360
133
  "data-spark-component": "radio-label",
361
- className: Ie({ disabled: e }),
362
- ...t
134
+ className: D({ disabled: e }),
135
+ ...r
363
136
  }
364
137
  );
365
- W.displayName = "RadioGroup.RadioLabel";
366
- const P = ":radio", N = ({
138
+ $.displayName = "RadioGroup.RadioLabel";
139
+ const x = ":radio", R = ({
367
140
  className: e,
368
- children: t,
369
- id: r,
370
- disabled: a,
371
- ref: o,
141
+ children: r,
142
+ id: a,
143
+ disabled: t,
144
+ ref: i,
372
145
  ...n
373
146
  }) => {
374
- const s = `${P}-input-${E()}`, u = `${P}-label-${E()}`, { intent: p, disabled: f, reverse: m } = ge(), c = t && /* @__PURE__ */ i(W, { disabled: a || f, htmlFor: r || s, id: u, children: t }), b = /* @__PURE__ */ i(
375
- X,
147
+ const s = `${x}-input-${k()}`, d = `${x}-label-${k()}`, { intent: b, disabled: p, reverse: f } = S(), c = r && /* @__PURE__ */ o($, { disabled: t || p, htmlFor: a || s, id: d, children: r }), l = /* @__PURE__ */ o(
148
+ L,
376
149
  {
377
- ref: o,
378
- id: r || s,
379
- intent: p,
380
- "aria-labelledby": t ? u : void 0,
150
+ ref: i,
151
+ id: a || s,
152
+ intent: b,
153
+ "aria-labelledby": r ? d : void 0,
381
154
  ...n,
382
- disabled: a
155
+ disabled: t
383
156
  }
384
- ), d = m ? /* @__PURE__ */ I(x, { children: [
157
+ ), m = f ? /* @__PURE__ */ g(G, { children: [
385
158
  c,
386
- b
387
- ] }) : /* @__PURE__ */ I(x, { children: [
388
- b,
159
+ l
160
+ ] }) : /* @__PURE__ */ g(G, { children: [
161
+ l,
389
162
  c
390
163
  ] });
391
- return /* @__PURE__ */ i("div", { className: J("gap-md text-body-1 flex items-start", e), children: d });
164
+ return /* @__PURE__ */ o("div", { className: F("gap-md text-body-1 flex items-start", e), children: m });
392
165
  };
393
- N.displayName = "RadioGroup.Radio";
394
- const Ge = g(["flex"], {
166
+ R.displayName = "RadioGroup.Radio";
167
+ const O = u(["flex"], {
395
168
  variants: {
396
169
  orientation: {
397
170
  vertical: ["flex-col", "gap-lg"],
398
171
  horizontal: ["flex-row", "gap-xl"]
399
172
  }
400
173
  }
401
- }), we = ({
174
+ }), P = ({
402
175
  intent: e,
403
- disabled: t,
404
- reverse: r,
405
- children: a
176
+ disabled: r,
177
+ reverse: a,
178
+ children: t
406
179
  }) => {
407
- const o = ee(() => ({ intent: e, disabled: t, reverse: r }), [e, t, r]);
408
- return /* @__PURE__ */ i(U.Provider, { value: o, children: a });
409
- }, Y = ({
180
+ const i = C(() => ({ intent: e, disabled: r, reverse: a }), [e, r, a]);
181
+ return /* @__PURE__ */ o(N.Provider, { value: i, children: t });
182
+ }, z = ({
410
183
  orientation: e = "vertical",
411
- loop: t = !0,
412
- intent: r = "basic",
413
- disabled: a,
414
- className: o,
184
+ loop: r = !0,
185
+ intent: a = "basic",
186
+ disabled: t,
187
+ className: i,
415
188
  required: n,
416
189
  reverse: s = !1,
417
- ref: u,
418
- ...p
190
+ ref: d,
191
+ ...b
419
192
  }) => {
420
- const { labelId: f, isInvalid: m, isRequired: c, description: b, name: d } = _(), l = n !== void 0 ? n : c;
421
- return /* @__PURE__ */ i(we, { reverse: s, intent: r, disabled: a, children: /* @__PURE__ */ i(
422
- B,
193
+ const { labelId: p, isInvalid: f, isRequired: c, description: l, name: m } = y(), v = n !== void 0 ? n : c;
194
+ return /* @__PURE__ */ o(P, { reverse: s, intent: a, disabled: t, children: /* @__PURE__ */ o(
195
+ h.RadioGroup,
423
196
  {
424
197
  "data-spark-component": "radio-group",
425
- className: Ge({ orientation: e, className: o }),
426
- name: d,
427
- ref: u,
428
- disabled: a,
198
+ className: O({ orientation: e, className: i }),
199
+ name: m,
200
+ ref: d,
201
+ disabled: t,
429
202
  orientation: e,
430
- loop: t,
431
- required: l,
432
- "aria-labelledby": f,
433
- "aria-invalid": m,
434
- "aria-required": l,
435
- "aria-describedby": b,
436
- ...p
203
+ loop: r,
204
+ required: v,
205
+ "aria-labelledby": p,
206
+ "aria-invalid": f,
207
+ "aria-required": v,
208
+ "aria-describedby": l,
209
+ ...b
437
210
  }
438
211
  ) });
439
212
  };
440
- Y.displayName = "RadioGroup";
441
- const Ce = Object.assign(Y, {
442
- Radio: N
213
+ z.displayName = "RadioGroup";
214
+ const X = Object.assign(z, {
215
+ Radio: R
443
216
  });
444
- Ce.displayName = "RadioGroup";
445
- N.displayName = "RadioGroup.Radio";
217
+ X.displayName = "RadioGroup";
218
+ R.displayName = "RadioGroup.Radio";
446
219
  export {
447
- Ce as RadioGroup
220
+ X as RadioGroup
448
221
  };
449
222
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../node_modules/@radix-ui/react-radio-group/dist/index.mjs","../../src/radio-group/RadioGroupContext.tsx","../../src/radio-group/RadioIndicator.styles.ts","../../src/radio-group/RadioIndicator.tsx","../../src/radio-group/RadioInput.styles.ts","../../src/radio-group/RadioInput.tsx","../../src/radio-group/RadioLabel.styles.tsx","../../src/radio-group/RadioLabel.tsx","../../src/radio-group/Radio.tsx","../../src/radio-group/RadioGroup.styles.ts","../../src/radio-group/RadioGroupProvider.tsx","../../src/radio-group/RadioGroup.tsx","../../src/radio-group/index.ts"],"sourcesContent":["\"use client\";\n\n// src/radio-group.tsx\nimport * as React2 from \"react\";\nimport { composeEventHandlers as composeEventHandlers2 } from \"@radix-ui/primitive\";\nimport { useComposedRefs as useComposedRefs2 } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope as createContextScope2 } from \"@radix-ui/react-context\";\nimport { Primitive as Primitive2 } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\n\n// src/radio.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar RADIO_NAME = \"Radio\";\nvar [createRadioContext, createRadioScope] = createContextScope(RADIO_NAME);\nvar [RadioProvider, useRadioContext] = createRadioContext(RADIO_NAME);\nvar Radio = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRadio,\n name,\n checked = false,\n required,\n disabled,\n value = \"on\",\n onCheck,\n form,\n ...radioProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n return /* @__PURE__ */ jsxs(RadioProvider, { scope: __scopeRadio, checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"radio\",\n \"aria-checked\": checked,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...radioProps,\n ref: composedRefs,\n onClick: composeEventHandlers(props.onClick, (event) => {\n if (!checked) onCheck?.();\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n RadioBubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" }\n }\n )\n ] });\n }\n);\nRadio.displayName = RADIO_NAME;\nvar INDICATOR_NAME = \"RadioIndicator\";\nvar RadioIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadio, forceMount, ...indicatorProps } = props;\n const context = useRadioContext(INDICATOR_NAME, __scopeRadio);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.checked, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef\n }\n ) });\n }\n);\nRadioIndicator.displayName = INDICATOR_NAME;\nvar BUBBLE_INPUT_NAME = \"RadioBubbleInput\";\nvar RadioBubbleInput = React.forwardRef(\n ({\n __scopeRadio,\n control,\n checked,\n bubbles = true,\n ...props\n }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"radio\",\n \"aria-hidden\": true,\n defaultChecked: checked,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n }\n);\nRadioBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\n\n// src/radio-group.tsx\nimport { jsx as jsx2 } from \"react/jsx-runtime\";\nvar ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar RADIO_GROUP_NAME = \"RadioGroup\";\nvar [createRadioGroupContext, createRadioGroupScope] = createContextScope2(RADIO_GROUP_NAME, [\n createRovingFocusGroupScope,\n createRadioScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar useRadioScope = createRadioScope();\nvar [RadioGroupProvider, useRadioGroupContext] = createRadioGroupContext(RADIO_GROUP_NAME);\nvar RadioGroup = React2.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRadioGroup,\n name,\n defaultValue,\n value: valueProp,\n required = false,\n disabled = false,\n orientation,\n dir,\n loop = true,\n onValueChange,\n ...groupProps\n } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? null,\n onChange: onValueChange,\n caller: RADIO_GROUP_NAME\n });\n return /* @__PURE__ */ jsx2(\n RadioGroupProvider,\n {\n scope: __scopeRadioGroup,\n name,\n required,\n disabled,\n value,\n onValueChange: setValue,\n children: /* @__PURE__ */ jsx2(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation,\n dir: direction,\n loop,\n children: /* @__PURE__ */ jsx2(\n Primitive2.div,\n {\n role: \"radiogroup\",\n \"aria-required\": required,\n \"aria-orientation\": orientation,\n \"data-disabled\": disabled ? \"\" : void 0,\n dir: direction,\n ...groupProps,\n ref: forwardedRef\n }\n )\n }\n )\n }\n );\n }\n);\nRadioGroup.displayName = RADIO_GROUP_NAME;\nvar ITEM_NAME = \"RadioGroupItem\";\nvar RadioGroupItem = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadioGroup, disabled, ...itemProps } = props;\n const context = useRadioGroupContext(ITEM_NAME, __scopeRadioGroup);\n const isDisabled = context.disabled || disabled;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const radioScope = useRadioScope(__scopeRadioGroup);\n const ref = React2.useRef(null);\n const composedRefs = useComposedRefs2(forwardedRef, ref);\n const checked = context.value === itemProps.value;\n const isArrowKeyPressedRef = React2.useRef(false);\n React2.useEffect(() => {\n const handleKeyDown = (event) => {\n if (ARROW_KEYS.includes(event.key)) {\n isArrowKeyPressedRef.current = true;\n }\n };\n const handleKeyUp = () => isArrowKeyPressedRef.current = false;\n document.addEventListener(\"keydown\", handleKeyDown);\n document.addEventListener(\"keyup\", handleKeyUp);\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n document.removeEventListener(\"keyup\", handleKeyUp);\n };\n }, []);\n return /* @__PURE__ */ jsx2(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !isDisabled,\n active: checked,\n children: /* @__PURE__ */ jsx2(\n Radio,\n {\n disabled: isDisabled,\n required: context.required,\n checked,\n ...radioScope,\n ...itemProps,\n name: context.name,\n ref: composedRefs,\n onCheck: () => context.onValueChange(itemProps.value),\n onKeyDown: composeEventHandlers2((event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onFocus: composeEventHandlers2(itemProps.onFocus, () => {\n if (isArrowKeyPressedRef.current) ref.current?.click();\n })\n }\n )\n }\n );\n }\n);\nRadioGroupItem.displayName = ITEM_NAME;\nvar INDICATOR_NAME2 = \"RadioGroupIndicator\";\nvar RadioGroupIndicator = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadioGroup, ...indicatorProps } = props;\n const radioScope = useRadioScope(__scopeRadioGroup);\n return /* @__PURE__ */ jsx2(RadioIndicator, { ...radioScope, ...indicatorProps, ref: forwardedRef });\n }\n);\nRadioGroupIndicator.displayName = INDICATOR_NAME2;\nvar Root2 = RadioGroup;\nvar Item2 = RadioGroupItem;\nvar Indicator = RadioGroupIndicator;\nexport {\n Indicator,\n Item2 as Item,\n RadioGroup,\n RadioGroupIndicator,\n RadioGroupItem,\n Root2 as Root,\n createRadioGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","import { createContext, useContext } from 'react'\n\nimport type { RadioGroupProps } from './RadioGroup'\nimport type { RadioInputProps } from './RadioInput'\n\nexport type RadioGroupContextState = Pick<RadioInputProps, 'intent' | 'disabled'> &\n Pick<RadioGroupProps, 'reverse'>\n\nexport const RadioGroupContext = createContext<RadioGroupContextState | null>(null)\n\nexport const useRadioGroup = () => {\n const context = useContext(RadioGroupContext)\n\n if (!context) {\n throw Error('useRadioGroup must be used within a RadioGroup provider')\n }\n\n return context\n}\n","import { makeVariants } from '@spark-ui/internal-utils'\nimport { cva, VariantProps } from 'class-variance-authority'\n\nexport const radioIndicatorStyles = cva(\n [\n 'relative block',\n 'size-3/5',\n 'after:absolute',\n 'after:left-1/2 after:top-1/2 after:-translate-x-1/2 after:-translate-y-1/2',\n 'after:h-0',\n 'after:w-0',\n 'after:block',\n 'after:rounded-[50%]',\n \"after:content-['']\",\n 'after:transition-all',\n 'data-[state=checked]:after:size-full',\n ],\n {\n variants: {\n intent: makeVariants<\n 'intent',\n ['main', 'support', 'accent', 'basic', 'success', 'alert', 'error', 'info', 'neutral']\n >({\n main: ['after:bg-main'],\n support: ['after:bg-support'],\n accent: ['after:bg-accent'],\n basic: ['after:bg-basic'],\n neutral: ['after:bg-neutral'],\n success: ['after:bg-success'],\n alert: ['after:bg-alert'],\n error: ['after:bg-error'],\n info: ['after:bg-info'],\n }),\n },\n defaultVariants: {\n intent: 'basic',\n },\n }\n)\n\nexport type RadioIndicatorStylesProps = VariantProps<typeof radioIndicatorStyles>\n","import { RadioGroup as RadixRadioGroup } from 'radix-ui'\nimport { Ref } from 'react'\n\nimport { radioIndicatorStyles, RadioIndicatorStylesProps } from './RadioIndicator.styles'\n\nexport interface RadioIndicatorProps extends RadioIndicatorStylesProps {\n className?: string\n /**\n * Change the component to the HTML tag or custom component of the only child.\n */\n asChild?: boolean\n /**\n * Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries.\n */\n forceMount?: true | undefined\n ref?: Ref<HTMLSpanElement>\n}\n\nexport const RadioIndicator = ({ intent, className, ref, ...others }: RadioIndicatorProps) => {\n return (\n <RadixRadioGroup.Indicator\n ref={ref}\n className={radioIndicatorStyles({ intent, className })}\n {...others}\n />\n )\n}\n\nRadioIndicator.displayName = 'RadioGroup.RadioIndicator'\n","import { makeVariants } from '@spark-ui/internal-utils'\nimport { cva, VariantProps } from 'class-variance-authority'\n\nexport const radioInputVariants = cva(\n [\n 'flex shrink-0 items-center justify-center',\n 'rounded-full',\n 'border-md',\n 'outline-hidden',\n 'hover:ring-4',\n 'focus-visible:u-outline',\n 'disabled:cursor-not-allowed disabled:border-outline/dim-2 disabled:hover:ring-transparent',\n 'u-shadow-border-transition',\n 'size-sz-24',\n ],\n {\n variants: {\n /**\n * Color scheme of the radio input.\n */\n intent: makeVariants<\n 'intent',\n ['main', 'support', 'accent', 'basic', 'success', 'alert', 'error', 'info', 'neutral']\n >({\n main: ['border-outline', 'data-[state=checked]:border-main', 'hover:ring-main-container'],\n support: [\n 'border-outline',\n 'data-[state=checked]:border-support',\n 'hover:ring-support-container',\n ],\n accent: [\n 'border-outline',\n 'data-[state=checked]:border-accent',\n 'hover:ring-accent-container',\n ],\n basic: [\n 'border-outline',\n 'data-[state=checked]:border-basic',\n 'hover:ring-basic-container',\n ],\n neutral: [\n 'border-outline',\n 'data-[state=checked]:border-neutral',\n 'hover:ring-neutral-container',\n ],\n info: ['border-info', 'data-[state=checked]:border-info', 'hover:ring-info-container'],\n success: [\n 'border-success',\n 'data-[state=checked]:border-success',\n 'hover:ring-success-container',\n ],\n alert: ['border-alert', 'data-[state=checked]:border-alert', 'hover:ring-alert-container'],\n error: ['border-error', 'data-[state=checked]:border-error', 'hover:ring-error-container'],\n }),\n },\n defaultVariants: {\n intent: 'basic',\n },\n }\n)\n\nexport type RadioInputVariantsProps = VariantProps<typeof radioInputVariants>\n","import { useFormFieldControl } from '@spark-ui/components/form-field'\nimport { RadioGroup as RadixRadioGroup } from 'radix-ui'\nimport { ButtonHTMLAttributes, Ref } from 'react'\n\nimport { RadioIndicator } from './RadioIndicator'\nimport { radioInputVariants, RadioInputVariantsProps } from './RadioInput.styles'\n\nexport interface RadioInputProps\n extends RadioInputVariantsProps,\n Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'value' | 'onChange'> {\n /**\n * Change the component to the HTML tag or custom component of the only child.\n */\n asChild?: boolean\n /**\n * The value given as data when submitted with a name.\n */\n value: string\n /**\n * When true, prevents the user from interacting with the radio item.\n */\n disabled?: boolean\n /**\n * When true, indicates that the user must check the radio item before the owning form can be submitted.\n */\n required?: boolean\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const RadioInput = ({ intent: intentProp, className, ref, ...others }: RadioInputProps) => {\n const { state } = useFormFieldControl()\n\n const intent = state ?? intentProp\n\n return (\n <RadixRadioGroup.RadioGroupItem\n data-spark-component=\"radio-input\"\n ref={ref}\n className={radioInputVariants({ intent, className })}\n {...others}\n >\n <RadioIndicator intent={intent} forceMount />\n </RadixRadioGroup.RadioGroupItem>\n )\n}\n\nRadioInput.displayName = 'RadioGroup.RadioInput'\n","import { cva, VariantProps } from 'class-variance-authority'\n\nexport const radioLabelStyles = cva('grow', {\n variants: {\n disabled: {\n true: ['text-neutral/dim-2', 'cursor-not-allowed'],\n false: ['cursor-pointer'],\n },\n },\n defaultVariants: {\n disabled: false,\n },\n})\n\nexport type RadioLabelStylesProps = VariantProps<typeof radioLabelStyles>\n","import { Label } from 'radix-ui'\nimport type { HTMLAttributes, PropsWithChildren } from 'react'\n\nimport { radioLabelStyles, RadioLabelStylesProps } from './RadioLabel.styles'\n\nexport interface RadioLabelProps\n extends RadioLabelStylesProps,\n PropsWithChildren<HTMLAttributes<HTMLLabelElement>> {\n /**\n * Change the component to the HTML tag or custom component of the only child.\n */\n asChild?: boolean\n /**\n * The id of the element the label is associated with.\n */\n htmlFor?: string\n /**\n * When true, prevents the user from interacting with the radio item.\n */\n disabled?: boolean\n}\n\nexport const RadioLabel = ({ disabled, ...others }: RadioLabelProps) => {\n return (\n <Label.Root\n data-spark-component=\"radio-label\"\n className={radioLabelStyles({ disabled })}\n {...others}\n />\n )\n}\n\nRadioLabel.displayName = 'RadioGroup.RadioLabel'\n","import { cx } from 'class-variance-authority'\nimport { Ref, useId } from 'react'\n\nimport { useRadioGroup } from './RadioGroupContext'\nimport { RadioInput, RadioInputProps } from './RadioInput'\nimport { RadioLabel } from './RadioLabel'\n\nexport type RadioProps = RadioInputProps & {\n ref?: Ref<HTMLButtonElement>\n}\n\nconst ID_PREFIX = ':radio'\n\nexport const Radio = ({\n className,\n children,\n id,\n disabled: disabledProp,\n ref,\n ...others\n}: RadioProps) => {\n const innerId = `${ID_PREFIX}-input-${useId()}`\n const innerLabelId = `${ID_PREFIX}-label-${useId()}`\n\n const { intent, disabled, reverse } = useRadioGroup()\n\n const radioLabel = children && (\n <RadioLabel disabled={disabledProp || disabled} htmlFor={id || innerId} id={innerLabelId}>\n {children}\n </RadioLabel>\n )\n\n const radioInput = (\n <RadioInput\n ref={ref}\n id={id || innerId}\n intent={intent}\n aria-labelledby={children ? innerLabelId : undefined}\n {...others}\n disabled={disabledProp}\n />\n )\n\n const content = reverse ? (\n <>\n {radioLabel}\n {radioInput}\n </>\n ) : (\n <>\n {radioInput}\n {radioLabel}\n </>\n )\n\n return <div className={cx('gap-md text-body-1 flex items-start', className)}>{content}</div>\n}\n\nRadio.displayName = 'RadioGroup.Radio'\n","import { cva, VariantProps } from 'class-variance-authority'\n\nexport const radioGroupStyles = cva(['flex'], {\n variants: {\n orientation: {\n vertical: ['flex-col', 'gap-lg'],\n horizontal: ['flex-row', 'gap-xl'],\n },\n },\n})\n\nexport type RadioGroupVariantsProps = VariantProps<typeof radioGroupStyles>\n","import { ReactNode, useMemo } from 'react'\n\nimport type { RadioGroupProps } from './RadioGroup'\nimport { RadioGroupContext } from './RadioGroupContext'\nimport type { RadioInputProps } from './RadioInput'\n\nexport interface RadioGroupProviderProps\n extends Pick<RadioInputProps, 'intent' | 'disabled'>,\n Pick<RadioGroupProps, 'reverse'> {\n children: ReactNode\n}\n\nexport const RadioGroupProvider = ({\n intent,\n disabled,\n reverse,\n children,\n}: RadioGroupProviderProps) => {\n const value = useMemo(() => ({ intent, disabled, reverse }), [intent, disabled, reverse])\n\n return <RadioGroupContext.Provider value={value}>{children}</RadioGroupContext.Provider>\n}\n","import { useFormFieldControl } from '@spark-ui/components/form-field'\nimport { RadioGroup as RadixRadioGroup } from 'radix-ui'\nimport { HTMLAttributes, Ref } from 'react'\n\nimport { radioGroupStyles, RadioGroupVariantsProps } from './RadioGroup.styles'\nimport { RadioGroupProvider } from './RadioGroupProvider'\nimport { RadioInputVariantsProps } from './RadioInput.styles'\n\nexport interface RadioGroupProps\n extends RadioGroupVariantsProps,\n Pick<RadioInputVariantsProps, 'intent'>,\n Omit<HTMLAttributes<HTMLDivElement>, 'value' | 'defaultValue' | 'dir' | 'onChange'> {\n /**\n * Change the component to the HTML tag or custom component of the only child.\n */\n asChild?: boolean\n /**\n * The value of the radio item that should be checked when initially rendered. Use when you do not need to control the state of the radio items.\n */\n defaultValue?: string\n /**\n * The controlled value of the radio item to check. Should be used in conjunction with onValueChange.\n */\n value?: string\n /**\n * Event handler called when the value changes.\n */\n onValueChange?: (value: string) => void\n /**\n * When true, prevents the user from interacting with radio items.\n */\n disabled?: boolean\n /**\n * The name of the group. Submitted with its owning form as part of a name/value pair.\n */\n name?: string\n /**\n * When true, indicates that the user must check a radio item before the owning form can be submitted.\n */\n required?: boolean\n /**\n * The orientation of the component.\n */\n orientation?: 'horizontal' | 'vertical'\n /**\n * The reading direction of the radio group.\n */\n dir?: 'ltr' | 'rtl'\n /**\n * When true, keyboard navigation will loop from last item to first, and vice versa.\n */\n loop?: boolean\n /**\n * When true, the label will be placed on the left side of the Radio\n */\n reverse?: boolean\n ref?: Ref<HTMLDivElement>\n}\n\nexport const RadioGroup = ({\n orientation = 'vertical',\n loop = true,\n intent = 'basic',\n disabled,\n className,\n required: requiredProp,\n reverse = false,\n ref,\n ...others\n}: RadioGroupProps) => {\n const { labelId, isInvalid, isRequired, description, name } = useFormFieldControl()\n const required = requiredProp !== undefined ? requiredProp : isRequired\n\n return (\n <RadioGroupProvider reverse={reverse} intent={intent} disabled={disabled}>\n <RadixRadioGroup.RadioGroup\n data-spark-component=\"radio-group\"\n className={radioGroupStyles({ orientation, className })}\n name={name}\n ref={ref}\n disabled={disabled}\n orientation={orientation}\n loop={loop}\n required={required}\n aria-labelledby={labelId}\n aria-invalid={isInvalid}\n aria-required={required}\n aria-describedby={description}\n {...others}\n />\n </RadioGroupProvider>\n )\n}\n\nRadioGroup.displayName = 'RadioGroup'\n","import { Radio } from './Radio'\nimport { RadioGroup as Root } from './RadioGroup'\n\nexport const RadioGroup: typeof Root & {\n Radio: typeof Radio\n} = Object.assign(Root, {\n Radio,\n})\n\nRadioGroup.displayName = 'RadioGroup'\nRadio.displayName = 'RadioGroup.Radio'\n\nexport { type RadioGroupProps } from './RadioGroup'\nexport { type RadioProps } from './Radio'\n"],"names":["RADIO_NAME","createRadioContext","createRadioScope","createContextScope","RadioProvider","useRadioContext","Radio","React","props","forwardedRef","__scopeRadio","name","checked","required","disabled","value","onCheck","form","radioProps","button","setButton","composedRefs","useComposedRefs","node","hasConsumerStoppedPropagationRef","isFormControl","jsxs","jsx","Primitive","getState","composeEventHandlers","event","RadioBubbleInput","INDICATOR_NAME","RadioIndicator","forceMount","indicatorProps","context","Presence","BUBBLE_INPUT_NAME","control","bubbles","ref","prevChecked","usePrevious","controlSize","useSize","input","inputProto","setChecked","ARROW_KEYS","RADIO_GROUP_NAME","createRadioGroupContext","createContextScope2","createRovingFocusGroupScope","useRovingFocusGroupScope","useRadioScope","RadioGroupProvider","useRadioGroupContext","RadioGroup","React2","__scopeRadioGroup","defaultValue","valueProp","orientation","dir","loop","onValueChange","groupProps","rovingFocusGroupScope","direction","useDirection","setValue","useControllableState","jsx2","RovingFocusGroup.Root","Primitive2","ITEM_NAME","RadioGroupItem","itemProps","isDisabled","radioScope","useComposedRefs2","isArrowKeyPressedRef","handleKeyDown","handleKeyUp","RovingFocusGroup.Item","composeEventHandlers2","INDICATOR_NAME2","RadioGroupIndicator","Indicator","RadioGroupContext","createContext","useRadioGroup","useContext","radioIndicatorStyles","cva","makeVariants","intent","className","others","RadixRadioGroup.Indicator","radioInputVariants","RadioInput","intentProp","state","useFormFieldControl","RadixRadioGroup.RadioGroupItem","radioLabelStyles","RadioLabel","Label.Root","ID_PREFIX","children","id","disabledProp","innerId","useId","innerLabelId","reverse","radioLabel","radioInput","content","Fragment","cx","radioGroupStyles","useMemo","requiredProp","labelId","isInvalid","isRequired","description","RadixRadioGroup.RadioGroup","Root"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/radio-group/RadioGroupContext.tsx","../../src/radio-group/RadioIndicator.styles.ts","../../src/radio-group/RadioIndicator.tsx","../../src/radio-group/RadioInput.styles.ts","../../src/radio-group/RadioInput.tsx","../../src/radio-group/RadioLabel.styles.tsx","../../src/radio-group/RadioLabel.tsx","../../src/radio-group/Radio.tsx","../../src/radio-group/RadioGroup.styles.ts","../../src/radio-group/RadioGroupProvider.tsx","../../src/radio-group/RadioGroup.tsx","../../src/radio-group/index.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\n\nimport type { RadioGroupProps } from './RadioGroup'\nimport type { RadioInputProps } from './RadioInput'\n\nexport type RadioGroupContextState = Pick<RadioInputProps, 'intent' | 'disabled'> &\n Pick<RadioGroupProps, 'reverse'>\n\nexport const RadioGroupContext = createContext<RadioGroupContextState | null>(null)\n\nexport const useRadioGroup = () => {\n const context = useContext(RadioGroupContext)\n\n if (!context) {\n throw Error('useRadioGroup must be used within a RadioGroup provider')\n }\n\n return context\n}\n","import { makeVariants } from '@spark-ui/internal-utils'\nimport { cva, VariantProps } from 'class-variance-authority'\n\nexport const radioIndicatorStyles = cva(\n [\n 'relative block',\n 'size-3/5',\n 'after:absolute',\n 'after:left-1/2 after:top-1/2 after:-translate-x-1/2 after:-translate-y-1/2',\n 'after:h-0',\n 'after:w-0',\n 'after:block',\n 'after:rounded-[50%]',\n \"after:content-['']\",\n 'after:transition-all',\n 'data-[state=checked]:after:size-full',\n ],\n {\n variants: {\n intent: makeVariants<\n 'intent',\n ['main', 'support', 'accent', 'basic', 'success', 'alert', 'error', 'info', 'neutral']\n >({\n main: ['after:bg-main'],\n support: ['after:bg-support'],\n accent: ['after:bg-accent'],\n basic: ['after:bg-basic'],\n neutral: ['after:bg-neutral'],\n success: ['after:bg-success'],\n alert: ['after:bg-alert'],\n error: ['after:bg-error'],\n info: ['after:bg-info'],\n }),\n },\n defaultVariants: {\n intent: 'basic',\n },\n }\n)\n\nexport type RadioIndicatorStylesProps = VariantProps<typeof radioIndicatorStyles>\n","import { RadioGroup as RadixRadioGroup } from 'radix-ui'\nimport { Ref } from 'react'\n\nimport { radioIndicatorStyles, RadioIndicatorStylesProps } from './RadioIndicator.styles'\n\nexport interface RadioIndicatorProps extends RadioIndicatorStylesProps {\n className?: string\n /**\n * Change the component to the HTML tag or custom component of the only child.\n */\n asChild?: boolean\n /**\n * Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries.\n */\n forceMount?: true | undefined\n ref?: Ref<HTMLSpanElement>\n}\n\nexport const RadioIndicator = ({ intent, className, ref, ...others }: RadioIndicatorProps) => {\n return (\n <RadixRadioGroup.Indicator\n ref={ref}\n className={radioIndicatorStyles({ intent, className })}\n {...others}\n />\n )\n}\n\nRadioIndicator.displayName = 'RadioGroup.RadioIndicator'\n","import { makeVariants } from '@spark-ui/internal-utils'\nimport { cva, VariantProps } from 'class-variance-authority'\n\nexport const radioInputVariants = cva(\n [\n 'flex shrink-0 items-center justify-center',\n 'rounded-full',\n 'border-md',\n 'outline-hidden',\n 'hover:ring-4',\n 'focus-visible:u-outline',\n 'disabled:cursor-not-allowed disabled:border-outline/dim-2 disabled:hover:ring-transparent',\n 'u-shadow-border-transition',\n 'size-sz-24',\n ],\n {\n variants: {\n /**\n * Color scheme of the radio input.\n */\n intent: makeVariants<\n 'intent',\n ['main', 'support', 'accent', 'basic', 'success', 'alert', 'error', 'info', 'neutral']\n >({\n main: ['border-outline', 'data-[state=checked]:border-main', 'hover:ring-main-container'],\n support: [\n 'border-outline',\n 'data-[state=checked]:border-support',\n 'hover:ring-support-container',\n ],\n accent: [\n 'border-outline',\n 'data-[state=checked]:border-accent',\n 'hover:ring-accent-container',\n ],\n basic: [\n 'border-outline',\n 'data-[state=checked]:border-basic',\n 'hover:ring-basic-container',\n ],\n neutral: [\n 'border-outline',\n 'data-[state=checked]:border-neutral',\n 'hover:ring-neutral-container',\n ],\n info: ['border-info', 'data-[state=checked]:border-info', 'hover:ring-info-container'],\n success: [\n 'border-success',\n 'data-[state=checked]:border-success',\n 'hover:ring-success-container',\n ],\n alert: ['border-alert', 'data-[state=checked]:border-alert', 'hover:ring-alert-container'],\n error: ['border-error', 'data-[state=checked]:border-error', 'hover:ring-error-container'],\n }),\n },\n defaultVariants: {\n intent: 'basic',\n },\n }\n)\n\nexport type RadioInputVariantsProps = VariantProps<typeof radioInputVariants>\n","import { useFormFieldControl } from '@spark-ui/components/form-field'\nimport { RadioGroup as RadixRadioGroup } from 'radix-ui'\nimport { ButtonHTMLAttributes, Ref } from 'react'\n\nimport { RadioIndicator } from './RadioIndicator'\nimport { radioInputVariants, RadioInputVariantsProps } from './RadioInput.styles'\n\nexport interface RadioInputProps\n extends RadioInputVariantsProps,\n Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'value' | 'onChange'> {\n /**\n * Change the component to the HTML tag or custom component of the only child.\n */\n asChild?: boolean\n /**\n * The value given as data when submitted with a name.\n */\n value: string\n /**\n * When true, prevents the user from interacting with the radio item.\n */\n disabled?: boolean\n /**\n * When true, indicates that the user must check the radio item before the owning form can be submitted.\n */\n required?: boolean\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const RadioInput = ({ intent: intentProp, className, ref, ...others }: RadioInputProps) => {\n const { state } = useFormFieldControl()\n\n const intent = state ?? intentProp\n\n return (\n <RadixRadioGroup.RadioGroupItem\n data-spark-component=\"radio-input\"\n ref={ref}\n className={radioInputVariants({ intent, className })}\n {...others}\n >\n <RadioIndicator intent={intent} forceMount />\n </RadixRadioGroup.RadioGroupItem>\n )\n}\n\nRadioInput.displayName = 'RadioGroup.RadioInput'\n","import { cva, VariantProps } from 'class-variance-authority'\n\nexport const radioLabelStyles = cva('grow', {\n variants: {\n disabled: {\n true: ['text-neutral/dim-2', 'cursor-not-allowed'],\n false: ['cursor-pointer'],\n },\n },\n defaultVariants: {\n disabled: false,\n },\n})\n\nexport type RadioLabelStylesProps = VariantProps<typeof radioLabelStyles>\n","import { Label } from 'radix-ui'\nimport type { HTMLAttributes, PropsWithChildren } from 'react'\n\nimport { radioLabelStyles, RadioLabelStylesProps } from './RadioLabel.styles'\n\nexport interface RadioLabelProps\n extends RadioLabelStylesProps,\n PropsWithChildren<HTMLAttributes<HTMLLabelElement>> {\n /**\n * Change the component to the HTML tag or custom component of the only child.\n */\n asChild?: boolean\n /**\n * The id of the element the label is associated with.\n */\n htmlFor?: string\n /**\n * When true, prevents the user from interacting with the radio item.\n */\n disabled?: boolean\n}\n\nexport const RadioLabel = ({ disabled, ...others }: RadioLabelProps) => {\n return (\n <Label.Root\n data-spark-component=\"radio-label\"\n className={radioLabelStyles({ disabled })}\n {...others}\n />\n )\n}\n\nRadioLabel.displayName = 'RadioGroup.RadioLabel'\n","import { cx } from 'class-variance-authority'\nimport { Ref, useId } from 'react'\n\nimport { useRadioGroup } from './RadioGroupContext'\nimport { RadioInput, RadioInputProps } from './RadioInput'\nimport { RadioLabel } from './RadioLabel'\n\nexport type RadioProps = RadioInputProps & {\n ref?: Ref<HTMLButtonElement>\n}\n\nconst ID_PREFIX = ':radio'\n\nexport const Radio = ({\n className,\n children,\n id,\n disabled: disabledProp,\n ref,\n ...others\n}: RadioProps) => {\n const innerId = `${ID_PREFIX}-input-${useId()}`\n const innerLabelId = `${ID_PREFIX}-label-${useId()}`\n\n const { intent, disabled, reverse } = useRadioGroup()\n\n const radioLabel = children && (\n <RadioLabel disabled={disabledProp || disabled} htmlFor={id || innerId} id={innerLabelId}>\n {children}\n </RadioLabel>\n )\n\n const radioInput = (\n <RadioInput\n ref={ref}\n id={id || innerId}\n intent={intent}\n aria-labelledby={children ? innerLabelId : undefined}\n {...others}\n disabled={disabledProp}\n />\n )\n\n const content = reverse ? (\n <>\n {radioLabel}\n {radioInput}\n </>\n ) : (\n <>\n {radioInput}\n {radioLabel}\n </>\n )\n\n return <div className={cx('gap-md text-body-1 flex items-start', className)}>{content}</div>\n}\n\nRadio.displayName = 'RadioGroup.Radio'\n","import { cva, VariantProps } from 'class-variance-authority'\n\nexport const radioGroupStyles = cva(['flex'], {\n variants: {\n orientation: {\n vertical: ['flex-col', 'gap-lg'],\n horizontal: ['flex-row', 'gap-xl'],\n },\n },\n})\n\nexport type RadioGroupVariantsProps = VariantProps<typeof radioGroupStyles>\n","import { ReactNode, useMemo } from 'react'\n\nimport type { RadioGroupProps } from './RadioGroup'\nimport { RadioGroupContext } from './RadioGroupContext'\nimport type { RadioInputProps } from './RadioInput'\n\nexport interface RadioGroupProviderProps\n extends Pick<RadioInputProps, 'intent' | 'disabled'>,\n Pick<RadioGroupProps, 'reverse'> {\n children: ReactNode\n}\n\nexport const RadioGroupProvider = ({\n intent,\n disabled,\n reverse,\n children,\n}: RadioGroupProviderProps) => {\n const value = useMemo(() => ({ intent, disabled, reverse }), [intent, disabled, reverse])\n\n return <RadioGroupContext.Provider value={value}>{children}</RadioGroupContext.Provider>\n}\n","import { useFormFieldControl } from '@spark-ui/components/form-field'\nimport { RadioGroup as RadixRadioGroup } from 'radix-ui'\nimport { HTMLAttributes, Ref } from 'react'\n\nimport { radioGroupStyles, RadioGroupVariantsProps } from './RadioGroup.styles'\nimport { RadioGroupProvider } from './RadioGroupProvider'\nimport { RadioInputVariantsProps } from './RadioInput.styles'\n\nexport interface RadioGroupProps\n extends RadioGroupVariantsProps,\n Pick<RadioInputVariantsProps, 'intent'>,\n Omit<HTMLAttributes<HTMLDivElement>, 'value' | 'defaultValue' | 'dir' | 'onChange'> {\n /**\n * Change the component to the HTML tag or custom component of the only child.\n */\n asChild?: boolean\n /**\n * The value of the radio item that should be checked when initially rendered. Use when you do not need to control the state of the radio items.\n */\n defaultValue?: string\n /**\n * The controlled value of the radio item to check. Should be used in conjunction with onValueChange.\n */\n value?: string\n /**\n * Event handler called when the value changes.\n */\n onValueChange?: (value: string) => void\n /**\n * When true, prevents the user from interacting with radio items.\n */\n disabled?: boolean\n /**\n * The name of the group. Submitted with its owning form as part of a name/value pair.\n */\n name?: string\n /**\n * When true, indicates that the user must check a radio item before the owning form can be submitted.\n */\n required?: boolean\n /**\n * The orientation of the component.\n */\n orientation?: 'horizontal' | 'vertical'\n /**\n * The reading direction of the radio group.\n */\n dir?: 'ltr' | 'rtl'\n /**\n * When true, keyboard navigation will loop from last item to first, and vice versa.\n */\n loop?: boolean\n /**\n * When true, the label will be placed on the left side of the Radio\n */\n reverse?: boolean\n ref?: Ref<HTMLDivElement>\n}\n\nexport const RadioGroup = ({\n orientation = 'vertical',\n loop = true,\n intent = 'basic',\n disabled,\n className,\n required: requiredProp,\n reverse = false,\n ref,\n ...others\n}: RadioGroupProps) => {\n const { labelId, isInvalid, isRequired, description, name } = useFormFieldControl()\n const required = requiredProp !== undefined ? requiredProp : isRequired\n\n return (\n <RadioGroupProvider reverse={reverse} intent={intent} disabled={disabled}>\n <RadixRadioGroup.RadioGroup\n data-spark-component=\"radio-group\"\n className={radioGroupStyles({ orientation, className })}\n name={name}\n ref={ref}\n disabled={disabled}\n orientation={orientation}\n loop={loop}\n required={required}\n aria-labelledby={labelId}\n aria-invalid={isInvalid}\n aria-required={required}\n aria-describedby={description}\n {...others}\n />\n </RadioGroupProvider>\n )\n}\n\nRadioGroup.displayName = 'RadioGroup'\n","import { Radio } from './Radio'\nimport { RadioGroup as Root } from './RadioGroup'\n\nexport const RadioGroup: typeof Root & {\n Radio: typeof Radio\n} = Object.assign(Root, {\n Radio,\n})\n\nRadioGroup.displayName = 'RadioGroup'\nRadio.displayName = 'RadioGroup.Radio'\n\nexport { type RadioGroupProps } from './RadioGroup'\nexport { type RadioProps } from './Radio'\n"],"names":["RadioGroupContext","createContext","useRadioGroup","context","useContext","radioIndicatorStyles","cva","makeVariants","RadioIndicator","intent","className","ref","others","jsx","RadixRadioGroup","radioInputVariants","RadioInput","intentProp","state","useFormFieldControl","radioLabelStyles","RadioLabel","disabled","Label","ID_PREFIX","Radio","children","id","disabledProp","innerId","useId","innerLabelId","reverse","radioLabel","radioInput","content","jsxs","Fragment","cx","radioGroupStyles","RadioGroupProvider","value","useMemo","RadioGroup","orientation","loop","requiredProp","labelId","isInvalid","isRequired","description","name","required","Root"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { Rating, type RatingProps } from './Rating';
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),O=require("@spark-ui/hooks/use-combined-state"),o=require("../index-DnaHaH_0.js"),p=require("react"),P=require("@spark-ui/icons/StarFill"),D=require("@spark-ui/icons/StarOutline"),S=require("../Icon-Bf0XrmiR.js"),_=o.cx("[&_>_div]:peer-hover:w-0!"),F=o.cva(["peer","after:inset-0","group","relative","after:block after:absolute"],{variants:{disabled:{true:"opacity-dim-3",false:""},readOnly:{true:"",false:""},gap:{sm:["after:w-[calc(100%+(var(--spacing-sm)))]","last-of-type:after:content-none"],md:["after:w-[calc(100%+(var(--spacing-md)))]","last-of-type:after:content-none"]}},compoundVariants:[{readOnly:!1,disabled:!1,className:o.cx(_,"cursor-pointer")}],defaultVariants:{disabled:!1,readOnly:!1,gap:"sm"}}),y=o.cva("",{variants:{size:{sm:"text-caption-link",md:"text-body-1",lg:"text-display-1"},design:{filled:["text-main-variant","group-[[data-part=star][data-hovered]]:text-main-variant-hovered"],outlined:["text-on-surface/dim-3"]}}}),H=({value:e,size:a,disabled:s,readOnly:n,onClick:c,onMouseEnter:i,ref:m})=>r.jsxs("div",{"data-spark-component":"rating-star",ref:m,onMouseEnter:i,className:F({gap:a==="lg"?"md":"sm",disabled:s,readOnly:n}),"data-part":"star",onClick:c,children:[r.jsx("div",{className:o.cx("z-raised absolute overflow-hidden","group-[[data-part=star][data-hovered]]:overflow-visible"),style:{width:e*100+"%"},children:r.jsx(S.Icon,{className:y({size:a,design:"filled"}),children:r.jsx(P.StarFill,{})})}),r.jsx(S.Icon,{className:y({size:a,design:"outlined"}),children:r.jsx(D.StarOutline,{})})]});function R(e){return Math.round(e/.5)*.5}function L({value:e,index:a}){if(e===void 0)return 0;const s=a+1,n=R(e);return Math.ceil(n)<s?0:n>=s?1:.5}function B(e,a){const s=e.slice(0,a),n=e.slice(a);return[s,n]}const T=({defaultValue:e,value:a,onValueChange:s,size:n="md",disabled:c,readOnly:i,name:m,id:N,"aria-label":j,ref:k,...A})=>{const u=p.useRef(null),f=p.useRef([]),[v,b]=O.useCombinedState(a,e,s),g=p.useRef(v),h=!(c||i);function I(t){u.current&&(b(t+1),g.current=t+1,u.current.focus(),u.current.setAttribute("data-clicked",""))}function w(t){g.current===Number(t.target.value)||Number(t.target.value)===0||(g.current=Number(t.target.value),b(Number(t.target.value)))}function C({currentTarget:t}){const l=f.current.findIndex(d=>d===t),[x,V]=B(f.current,l+1);x.forEach(d=>d.setAttribute("data-hovered","")),V.forEach(d=>d.removeAttribute("data-hovered"))}const q=p.useCallback(t=>{t&&f.current.push(t)},[]);function M(){u.current?.removeAttribute("data-clicked")}function E(){f.current.forEach(t=>t.removeAttribute("data-hovered"))}return r.jsxs("div",{className:"relative inline-flex",ref:k,"data-spark-component":"rating",...A,onMouseLeave:E,children:[r.jsx("input",{name:m,id:N,"aria-label":j,ref:u,"data-part":"input",className:"peer absolute inset-0 opacity-0",type:"range",min:"0",max:"5",step:i?.5:1,disabled:c,readOnly:i,value:R(v??0),onChange:t=>h&&w(t),onBlur:M}),r.jsx("div",{className:o.cx(n==="lg"?"gap-x-md":"gap-x-sm","flex","peer-focus-visible:u-outline peer-[[data-part=input][data-clicked]]:shadow-none"),children:Array.from({length:5}).map((t,l)=>r.jsx(H,{disabled:c,readOnly:i,size:n,onClick:()=>h&&I(l),onMouseEnter:x=>h&&C(x),ref:q,value:L({index:l,value:v})},l))})]})};exports.Rating=T;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),O=require("@spark-ui/hooks/use-combined-state"),o=require("class-variance-authority"),p=require("react"),P=require("@spark-ui/icons/StarFill"),D=require("@spark-ui/icons/StarOutline"),S=require("../Icon-CF0W0LKr.js"),_=o.cx("[&_>_div]:peer-hover:w-0!"),F=o.cva(["peer","after:inset-0","group","relative","after:block after:absolute"],{variants:{disabled:{true:"opacity-dim-3",false:""},readOnly:{true:"",false:""},gap:{sm:["after:w-[calc(100%+(var(--spacing-sm)))]","last-of-type:after:content-none"],md:["after:w-[calc(100%+(var(--spacing-md)))]","last-of-type:after:content-none"]}},compoundVariants:[{readOnly:!1,disabled:!1,className:o.cx(_,"cursor-pointer")}],defaultVariants:{disabled:!1,readOnly:!1,gap:"sm"}}),y=o.cva("",{variants:{size:{sm:"text-caption-link",md:"text-body-1",lg:"text-display-1"},design:{filled:["text-main-variant","group-[[data-part=star][data-hovered]]:text-main-variant-hovered"],outlined:["text-on-surface/dim-3"]}}}),H=({value:e,size:a,disabled:s,readOnly:n,onClick:c,onMouseEnter:i,ref:m})=>r.jsxs("div",{"data-spark-component":"rating-star",ref:m,onMouseEnter:i,className:F({gap:a==="lg"?"md":"sm",disabled:s,readOnly:n}),"data-part":"star",onClick:c,children:[r.jsx("div",{className:o.cx("z-raised absolute overflow-hidden","group-[[data-part=star][data-hovered]]:overflow-visible"),style:{width:e*100+"%"},children:r.jsx(S.Icon,{className:y({size:a,design:"filled"}),children:r.jsx(P.StarFill,{})})}),r.jsx(S.Icon,{className:y({size:a,design:"outlined"}),children:r.jsx(D.StarOutline,{})})]});function R(e){return Math.round(e/.5)*.5}function L({value:e,index:a}){if(e===void 0)return 0;const s=a+1,n=R(e);return Math.ceil(n)<s?0:n>=s?1:.5}function B(e,a){const s=e.slice(0,a),n=e.slice(a);return[s,n]}const T=({defaultValue:e,value:a,onValueChange:s,size:n="md",disabled:c,readOnly:i,name:m,id:N,"aria-label":j,ref:k,...A})=>{const u=p.useRef(null),f=p.useRef([]),[v,b]=O.useCombinedState(a,e,s),g=p.useRef(v),h=!(c||i);function I(t){u.current&&(b(t+1),g.current=t+1,u.current.focus(),u.current.setAttribute("data-clicked",""))}function w(t){g.current===Number(t.target.value)||Number(t.target.value)===0||(g.current=Number(t.target.value),b(Number(t.target.value)))}function C({currentTarget:t}){const l=f.current.findIndex(d=>d===t),[x,E]=B(f.current,l+1);x.forEach(d=>d.setAttribute("data-hovered","")),E.forEach(d=>d.removeAttribute("data-hovered"))}const q=p.useCallback(t=>{t&&f.current.push(t)},[]);function M(){u.current?.removeAttribute("data-clicked")}function V(){f.current.forEach(t=>t.removeAttribute("data-hovered"))}return r.jsxs("div",{className:"relative inline-flex",ref:k,"data-spark-component":"rating",...A,onMouseLeave:V,children:[r.jsx("input",{name:m,id:N,"aria-label":j,ref:u,"data-part":"input",className:"peer absolute inset-0 opacity-0",type:"range",min:"0",max:"5",step:i?.5:1,disabled:c,readOnly:i,value:R(v??0),onChange:t=>h&&w(t),onBlur:M}),r.jsx("div",{className:o.cx(n==="lg"?"gap-x-md":"gap-x-sm","flex","peer-focus-visible:u-outline peer-[[data-part=input][data-clicked]]:shadow-none"),children:Array.from({length:5}).map((t,l)=>r.jsx(H,{disabled:c,readOnly:i,size:n,onClick:()=>h&&I(l),onMouseEnter:x=>h&&C(x),ref:q,value:L({index:l,value:v})},l))})]})};exports.Rating=T;
2
2
  //# sourceMappingURL=index.js.map