@kuzenbo/core 0.0.3 → 0.0.5

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 (342) hide show
  1. package/dist/avatar-CXhwmJgG.js +65 -0
  2. package/dist/avatar-CXhwmJgG.js.map +1 -0
  3. package/dist/{avatar-image-Ce26D2fb.d.ts → avatar-DpiupAAM.d.ts} +35 -2
  4. package/dist/avatar-DpiupAAM.d.ts.map +1 -0
  5. package/dist/badge-BKRm6jL7.js +58 -0
  6. package/dist/badge-BKRm6jL7.js.map +1 -0
  7. package/dist/button-nAbTNrxA.d.ts +78 -0
  8. package/dist/button-nAbTNrxA.d.ts.map +1 -0
  9. package/dist/{dialog-trigger-BUF3elAP.js → dialog-CD5lfQA9.js} +33 -10
  10. package/dist/dialog-CD5lfQA9.js.map +1 -0
  11. package/dist/{dialog-viewport-Ce1huyAI.d.ts → dialog-DEkdr-9K.d.ts} +64 -2
  12. package/dist/dialog-DEkdr-9K.d.ts.map +1 -0
  13. package/dist/{dropdown-menu-trigger-COnFGfDa.js → dropdown-menu-BJi-V71O.js} +137 -101
  14. package/dist/dropdown-menu-BJi-V71O.js.map +1 -0
  15. package/dist/{dropdown-menu-trigger-BpgtLUvf.d.ts → dropdown-menu-Bpj576m0.d.ts} +259 -123
  16. package/dist/dropdown-menu-Bpj576m0.d.ts.map +1 -0
  17. package/dist/input-Ex9ZRqbo.js +38 -0
  18. package/dist/input-Ex9ZRqbo.js.map +1 -0
  19. package/dist/input-WWoBCgxe.d.ts +46 -0
  20. package/dist/input-WWoBCgxe.d.ts.map +1 -0
  21. package/dist/{input-group-textarea-B-rP98r5.js → input-group-CjcHP0L4.js} +50 -31
  22. package/dist/input-group-CjcHP0L4.js.map +1 -0
  23. package/dist/provider.js +4 -2
  24. package/dist/scroll-bar-C4qEUKlT.js.map +1 -1
  25. package/dist/separator-C8Qw2ADs.d.ts +13 -0
  26. package/dist/separator-C8Qw2ADs.d.ts.map +1 -0
  27. package/dist/{sheet-trigger-D7neoTF5.js → sheet-imSHXfFH.js} +29 -10
  28. package/dist/sheet-imSHXfFH.js.map +1 -0
  29. package/dist/{size-context-BjRwqlSg.js → size-context-CvLl3pMC.js} +3 -3
  30. package/dist/size-context-CvLl3pMC.js.map +1 -0
  31. package/dist/size-context-DXfCAlWF.d.ts.map +1 -1
  32. package/dist/size-provider-18EvJgDT.js.map +1 -1
  33. package/dist/size-provider-Bd2C6gKd.d.ts.map +1 -1
  34. package/dist/size-system-BTsMqZRQ.js +99 -0
  35. package/dist/size-system-BTsMqZRQ.js.map +1 -0
  36. package/dist/size-system-wzOLSuax.d.ts.map +1 -1
  37. package/dist/size.js +4 -2
  38. package/dist/{slider-root-presentation-ChJHPMIV.js → slider-root-presentation-B6OO_iCT.js} +19 -19
  39. package/dist/slider-root-presentation-B6OO_iCT.js.map +1 -0
  40. package/dist/{slider-value-Db8SCu0c.d.ts → slider-style-tokens-CZezJilZ.d.ts} +55 -55
  41. package/dist/slider-style-tokens-CZezJilZ.d.ts.map +1 -0
  42. package/dist/textarea-C8dsnn8D.d.ts +37 -0
  43. package/dist/textarea-C8dsnn8D.d.ts.map +1 -0
  44. package/dist/textarea-CkiM1N_I.js +39 -0
  45. package/dist/textarea-CkiM1N_I.js.map +1 -0
  46. package/dist/toggle-CxkIncmZ.d.ts +53 -0
  47. package/dist/toggle-CxkIncmZ.d.ts.map +1 -0
  48. package/dist/{tooltip-trigger-qXw-_nbh.js → tooltip-D0BEpCQx.js} +38 -13
  49. package/dist/tooltip-D0BEpCQx.js.map +1 -0
  50. package/dist/{tooltip-viewport-csA6luqI.d.ts → tooltip-DbJxt69l.d.ts} +61 -13
  51. package/dist/tooltip-DbJxt69l.d.ts.map +1 -0
  52. package/dist/ui/accordion.d.ts +4 -4
  53. package/dist/ui/accordion.d.ts.map +1 -1
  54. package/dist/ui/accordion.js +53 -52
  55. package/dist/ui/accordion.js.map +1 -1
  56. package/dist/ui/affix.d.ts +3 -2
  57. package/dist/ui/affix.d.ts.map +1 -1
  58. package/dist/ui/affix.js +8 -7
  59. package/dist/ui/affix.js.map +1 -1
  60. package/dist/ui/alert-dialog.d.ts +3 -1
  61. package/dist/ui/alert-dialog.d.ts.map +1 -1
  62. package/dist/ui/alert-dialog.js +12 -9
  63. package/dist/ui/alert-dialog.js.map +1 -1
  64. package/dist/ui/alert.d.ts +32 -32
  65. package/dist/ui/alert.d.ts.map +1 -1
  66. package/dist/ui/alert.js +88 -86
  67. package/dist/ui/alert.js.map +1 -1
  68. package/dist/ui/announcement.d.ts.map +1 -1
  69. package/dist/ui/announcement.js +5 -3
  70. package/dist/ui/announcement.js.map +1 -1
  71. package/dist/ui/aspect-ratio.d.ts.map +1 -1
  72. package/dist/ui/aspect-ratio.js.map +1 -1
  73. package/dist/ui/autocomplete.d.ts +74 -74
  74. package/dist/ui/autocomplete.d.ts.map +1 -1
  75. package/dist/ui/autocomplete.js +57 -53
  76. package/dist/ui/autocomplete.js.map +1 -1
  77. package/dist/ui/avatar.d.ts +2 -39
  78. package/dist/ui/avatar.js +2 -24
  79. package/dist/ui/badge.d.ts +28 -28
  80. package/dist/ui/badge.d.ts.map +1 -1
  81. package/dist/ui/badge.js +3 -53
  82. package/dist/ui/breadcrumb.d.ts +64 -64
  83. package/dist/ui/breadcrumb.d.ts.map +1 -1
  84. package/dist/ui/breadcrumb.js +49 -45
  85. package/dist/ui/breadcrumb.js.map +1 -1
  86. package/dist/ui/button-group.d.ts +34 -34
  87. package/dist/ui/button-group.d.ts.map +1 -1
  88. package/dist/ui/button-group.js +31 -28
  89. package/dist/ui/button-group.js.map +1 -1
  90. package/dist/ui/button.d.ts +2 -78
  91. package/dist/ui/button.js +42 -42
  92. package/dist/ui/button.js.map +1 -1
  93. package/dist/ui/card.d.ts.map +1 -1
  94. package/dist/ui/card.js +8 -6
  95. package/dist/ui/card.js.map +1 -1
  96. package/dist/ui/carousel.d.ts +1 -1
  97. package/dist/ui/carousel.d.ts.map +1 -1
  98. package/dist/ui/carousel.js +36 -17
  99. package/dist/ui/carousel.js.map +1 -1
  100. package/dist/ui/checkbox-group.d.ts.map +1 -1
  101. package/dist/ui/checkbox-group.js +2 -0
  102. package/dist/ui/checkbox-group.js.map +1 -1
  103. package/dist/ui/checkbox.d.ts +20 -20
  104. package/dist/ui/checkbox.d.ts.map +1 -1
  105. package/dist/ui/checkbox.js +15 -13
  106. package/dist/ui/checkbox.js.map +1 -1
  107. package/dist/ui/code.d.ts.map +1 -1
  108. package/dist/ui/code.js +5 -5
  109. package/dist/ui/code.js.map +1 -1
  110. package/dist/ui/collapsible.js +1 -1
  111. package/dist/ui/collapsible.js.map +1 -1
  112. package/dist/ui/combobox.d.ts +107 -107
  113. package/dist/ui/combobox.d.ts.map +1 -1
  114. package/dist/ui/combobox.js +88 -87
  115. package/dist/ui/combobox.js.map +1 -1
  116. package/dist/ui/command.d.ts +57 -58
  117. package/dist/ui/command.d.ts.map +1 -1
  118. package/dist/ui/command.js +54 -64
  119. package/dist/ui/command.js.map +1 -1
  120. package/dist/ui/container.d.ts.map +1 -1
  121. package/dist/ui/container.js.map +1 -1
  122. package/dist/ui/context-menu.d.ts +132 -132
  123. package/dist/ui/context-menu.d.ts.map +1 -1
  124. package/dist/ui/context-menu.js +102 -98
  125. package/dist/ui/context-menu.js.map +1 -1
  126. package/dist/ui/copy-button.d.ts +1 -3
  127. package/dist/ui/copy-button.d.ts.map +1 -1
  128. package/dist/ui/copy-button.js +12 -13
  129. package/dist/ui/copy-button.js.map +1 -1
  130. package/dist/ui/dialog.d.ts +2 -66
  131. package/dist/ui/dialog.js +2 -24
  132. package/dist/ui/drawer.d.ts +91 -91
  133. package/dist/ui/drawer.d.ts.map +1 -1
  134. package/dist/ui/drawer.js +68 -66
  135. package/dist/ui/drawer.js.map +1 -1
  136. package/dist/ui/dropdown-menu.d.ts +3 -144
  137. package/dist/ui/dropdown-menu.js +3 -38
  138. package/dist/ui/dropzone.d.ts +55 -55
  139. package/dist/ui/dropzone.d.ts.map +1 -1
  140. package/dist/ui/dropzone.js +77 -72
  141. package/dist/ui/dropzone.js.map +1 -1
  142. package/dist/ui/emoji-picker.d.ts +79 -79
  143. package/dist/ui/emoji-picker.d.ts.map +1 -1
  144. package/dist/ui/emoji-picker.js +92 -87
  145. package/dist/ui/emoji-picker.js.map +1 -1
  146. package/dist/ui/empty.d.ts +61 -59
  147. package/dist/ui/empty.d.ts.map +1 -1
  148. package/dist/ui/empty.js +49 -44
  149. package/dist/ui/empty.js.map +1 -1
  150. package/dist/ui/field.d.ts +11 -11
  151. package/dist/ui/field.d.ts.map +1 -1
  152. package/dist/ui/field.js +9 -7
  153. package/dist/ui/field.js.map +1 -1
  154. package/dist/ui/fieldset.d.ts.map +1 -1
  155. package/dist/ui/fieldset.js.map +1 -1
  156. package/dist/ui/form.d.ts +8 -8
  157. package/dist/ui/form.d.ts.map +1 -1
  158. package/dist/ui/form.js +2 -0
  159. package/dist/ui/form.js.map +1 -1
  160. package/dist/ui/input-group.d.ts +35 -35
  161. package/dist/ui/input-group.d.ts.map +1 -1
  162. package/dist/ui/input-group.js +2 -28
  163. package/dist/ui/input-otp.d.ts +36 -36
  164. package/dist/ui/input-otp.d.ts.map +1 -1
  165. package/dist/ui/input-otp.js +29 -28
  166. package/dist/ui/input-otp.js.map +1 -1
  167. package/dist/ui/input.d.ts +2 -46
  168. package/dist/ui/input.js +2 -34
  169. package/dist/ui/item.d.ts +20 -20
  170. package/dist/ui/item.d.ts.map +1 -1
  171. package/dist/ui/item.js +24 -22
  172. package/dist/ui/item.js.map +1 -1
  173. package/dist/ui/kbd.d.ts.map +1 -1
  174. package/dist/ui/kbd.js +10 -8
  175. package/dist/ui/kbd.js.map +1 -1
  176. package/dist/ui/label.d.ts.map +1 -1
  177. package/dist/ui/label.js.map +1 -1
  178. package/dist/ui/marquee.d.ts.map +1 -1
  179. package/dist/ui/marquee.js +1 -1
  180. package/dist/ui/marquee.js.map +1 -1
  181. package/dist/ui/menubar.d.ts +133 -134
  182. package/dist/ui/menubar.d.ts.map +1 -1
  183. package/dist/ui/menubar.js +84 -81
  184. package/dist/ui/menubar.js.map +1 -1
  185. package/dist/ui/meter.d.ts.map +1 -1
  186. package/dist/ui/meter.js +2 -0
  187. package/dist/ui/meter.js.map +1 -1
  188. package/dist/ui/navigation-list.d.ts +226 -226
  189. package/dist/ui/navigation-list.d.ts.map +1 -1
  190. package/dist/ui/navigation-list.js +242 -235
  191. package/dist/ui/navigation-list.js.map +1 -1
  192. package/dist/ui/navigation-menu.d.ts +82 -82
  193. package/dist/ui/navigation-menu.d.ts.map +1 -1
  194. package/dist/ui/navigation-menu.js +72 -67
  195. package/dist/ui/navigation-menu.js.map +1 -1
  196. package/dist/ui/number-field.d.ts +34 -34
  197. package/dist/ui/number-field.d.ts.map +1 -1
  198. package/dist/ui/number-field.js +26 -23
  199. package/dist/ui/number-field.js.map +1 -1
  200. package/dist/ui/pagination.d.ts +42 -42
  201. package/dist/ui/pagination.d.ts.map +1 -1
  202. package/dist/ui/pagination.js +45 -41
  203. package/dist/ui/pagination.js.map +1 -1
  204. package/dist/ui/pill.d.ts +2 -3
  205. package/dist/ui/pill.d.ts.map +1 -1
  206. package/dist/ui/pill.js +34 -23
  207. package/dist/ui/pill.js.map +1 -1
  208. package/dist/ui/popover.d.ts +13 -11
  209. package/dist/ui/popover.d.ts.map +1 -1
  210. package/dist/ui/popover.js +17 -14
  211. package/dist/ui/popover.js.map +1 -1
  212. package/dist/ui/portal.d.ts.map +1 -1
  213. package/dist/ui/portal.js +52 -11
  214. package/dist/ui/portal.js.map +1 -1
  215. package/dist/ui/preview-card.js +5 -5
  216. package/dist/ui/preview-card.js.map +1 -1
  217. package/dist/ui/progress.js.map +1 -1
  218. package/dist/ui/qr-code.d.ts.map +1 -1
  219. package/dist/ui/qr-code.js +7 -7
  220. package/dist/ui/qr-code.js.map +1 -1
  221. package/dist/ui/radio-group.d.ts +22 -22
  222. package/dist/ui/radio-group.d.ts.map +1 -1
  223. package/dist/ui/radio-group.js +17 -15
  224. package/dist/ui/radio-group.js.map +1 -1
  225. package/dist/ui/range-slider.d.ts +1 -1
  226. package/dist/ui/range-slider.d.ts.map +1 -1
  227. package/dist/ui/range-slider.js +4 -7
  228. package/dist/ui/range-slider.js.map +1 -1
  229. package/dist/ui/rating.d.ts +35 -35
  230. package/dist/ui/rating.d.ts.map +1 -1
  231. package/dist/ui/rating.js +55 -46
  232. package/dist/ui/rating.js.map +1 -1
  233. package/dist/ui/resizable.d.ts.map +1 -1
  234. package/dist/ui/resizable.js +2 -2
  235. package/dist/ui/resizable.js.map +1 -1
  236. package/dist/ui/scroll-area.d.ts.map +1 -1
  237. package/dist/ui/scroll-area.js +2 -0
  238. package/dist/ui/scroll-area.js.map +1 -1
  239. package/dist/ui/select.d.ts +87 -87
  240. package/dist/ui/select.d.ts.map +1 -1
  241. package/dist/ui/select.js +85 -84
  242. package/dist/ui/select.js.map +1 -1
  243. package/dist/ui/separator.d.ts +2 -13
  244. package/dist/ui/separator.js +2 -0
  245. package/dist/ui/separator.js.map +1 -1
  246. package/dist/ui/sheet.d.ts.map +1 -1
  247. package/dist/ui/sheet.js +2 -24
  248. package/dist/ui/sidebar.d.ts +73 -74
  249. package/dist/ui/sidebar.d.ts.map +1 -1
  250. package/dist/ui/sidebar.js +87 -84
  251. package/dist/ui/sidebar.js.map +1 -1
  252. package/dist/ui/skeleton.d.ts.map +1 -1
  253. package/dist/ui/skeleton.js +1 -1
  254. package/dist/ui/skeleton.js.map +1 -1
  255. package/dist/ui/slider.d.ts +1 -1
  256. package/dist/ui/slider.d.ts.map +1 -1
  257. package/dist/ui/slider.js +3 -1
  258. package/dist/ui/slider.js.map +1 -1
  259. package/dist/ui/spacer.d.ts.map +1 -1
  260. package/dist/ui/spacer.js +2 -2
  261. package/dist/ui/spacer.js.map +1 -1
  262. package/dist/ui/spinner.js +4 -2
  263. package/dist/ui/spinner.js.map +1 -1
  264. package/dist/ui/switch.d.ts +11 -11
  265. package/dist/ui/switch.js +7 -7
  266. package/dist/ui/switch.js.map +1 -1
  267. package/dist/ui/table.d.ts +60 -60
  268. package/dist/ui/table.d.ts.map +1 -1
  269. package/dist/ui/table.js +54 -46
  270. package/dist/ui/table.js.map +1 -1
  271. package/dist/ui/tabs.d.ts +25 -25
  272. package/dist/ui/tabs.d.ts.map +1 -1
  273. package/dist/ui/tabs.js +75 -68
  274. package/dist/ui/tabs.js.map +1 -1
  275. package/dist/ui/textarea.d.ts +2 -37
  276. package/dist/ui/textarea.js +3 -34
  277. package/dist/ui/theme-icon.d.ts +30 -30
  278. package/dist/ui/theme-icon.d.ts.map +1 -1
  279. package/dist/ui/theme-icon.js +22 -22
  280. package/dist/ui/theme-icon.js.map +1 -1
  281. package/dist/ui/timeline.d.ts +6 -6
  282. package/dist/ui/timeline.d.ts.map +1 -1
  283. package/dist/ui/timeline.js +165 -163
  284. package/dist/ui/timeline.js.map +1 -1
  285. package/dist/ui/toggle-group.d.ts +32 -32
  286. package/dist/ui/toggle-group.d.ts.map +1 -1
  287. package/dist/ui/toggle-group.js +22 -16
  288. package/dist/ui/toggle-group.js.map +1 -1
  289. package/dist/ui/toggle.d.ts +2 -53
  290. package/dist/ui/toggle.js +17 -15
  291. package/dist/ui/toggle.js.map +1 -1
  292. package/dist/ui/toolbar.d.ts +54 -54
  293. package/dist/ui/toolbar.d.ts.map +1 -1
  294. package/dist/ui/toolbar.js +45 -40
  295. package/dist/ui/toolbar.js.map +1 -1
  296. package/dist/ui/tooltip.d.ts +2 -54
  297. package/dist/ui/tooltip.js +2 -28
  298. package/dist/ui/typography.d.ts +50 -36
  299. package/dist/ui/typography.d.ts.map +1 -1
  300. package/dist/ui/typography.js +28 -17
  301. package/dist/ui/typography.js.map +1 -1
  302. package/package.json +15 -15
  303. package/dist/avatar-image-BQ_NEKH4.js +0 -47
  304. package/dist/avatar-image-BQ_NEKH4.js.map +0 -1
  305. package/dist/avatar-image-Ce26D2fb.d.ts.map +0 -1
  306. package/dist/dialog-trigger-BUF3elAP.js.map +0 -1
  307. package/dist/dialog-viewport-Ce1huyAI.d.ts.map +0 -1
  308. package/dist/dropdown-menu-trigger-BpgtLUvf.d.ts.map +0 -1
  309. package/dist/dropdown-menu-trigger-COnFGfDa.js.map +0 -1
  310. package/dist/input-group-textarea-B-rP98r5.js.map +0 -1
  311. package/dist/sheet-trigger-D7neoTF5.js.map +0 -1
  312. package/dist/size-context-BjRwqlSg.js.map +0 -1
  313. package/dist/size-system-DTXmtQXw.js +0 -47
  314. package/dist/size-system-DTXmtQXw.js.map +0 -1
  315. package/dist/slider-root-presentation-ChJHPMIV.js.map +0 -1
  316. package/dist/slider-value-Db8SCu0c.d.ts.map +0 -1
  317. package/dist/tooltip-trigger-qXw-_nbh.js.map +0 -1
  318. package/dist/tooltip-viewport-csA6luqI.d.ts.map +0 -1
  319. package/dist/ui/avatar.d.ts.map +0 -1
  320. package/dist/ui/avatar.js.map +0 -1
  321. package/dist/ui/badge.js.map +0 -1
  322. package/dist/ui/button.d.ts.map +0 -1
  323. package/dist/ui/dialog.d.ts.map +0 -1
  324. package/dist/ui/dialog.js.map +0 -1
  325. package/dist/ui/dropdown-menu.d.ts.map +0 -1
  326. package/dist/ui/dropdown-menu.js.map +0 -1
  327. package/dist/ui/input-group.js.map +0 -1
  328. package/dist/ui/input.d.ts.map +0 -1
  329. package/dist/ui/input.js.map +0 -1
  330. package/dist/ui/separator.d.ts.map +0 -1
  331. package/dist/ui/sheet.js.map +0 -1
  332. package/dist/ui/textarea.d.ts.map +0 -1
  333. package/dist/ui/textarea.js.map +0 -1
  334. package/dist/ui/toggle.d.ts.map +0 -1
  335. package/dist/ui/tooltip.d.ts.map +0 -1
  336. package/dist/ui/tooltip.js.map +0 -1
  337. package/dist/use-badge-default-props-8d9wPL0k.js +0 -8
  338. package/dist/use-badge-default-props-8d9wPL0k.js.map +0 -1
  339. package/dist/use-input-default-props-B6VgKXGM.js +0 -8
  340. package/dist/use-input-default-props-B6VgKXGM.js.map +0 -1
  341. package/dist/use-textarea-default-props-7MlOxkDO.js +0 -8
  342. package/dist/use-textarea-default-props-7MlOxkDO.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"qr-code.js","names":[],"sources":["../../src/ui/qr-code/qr-code.tsx"],"sourcesContent":["\"use client\";\n\nimport type { ComponentProps } from \"react\";\n\nimport { formatHex, oklch } from \"culori\";\nimport QR from \"qrcode\";\nimport { useEffect, useState } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nexport type QRCodeProps = ComponentProps<\"div\"> & {\n data: string;\n foreground?: string;\n background?: string;\n robustness?: \"L\" | \"M\" | \"Q\" | \"H\";\n};\n\nconst oklchRegex = /oklch\\(([0-9.]+)\\s+([0-9.]+)\\s+([0-9.]+)\\)/;\n\nconst getOklch = (color: string, fallback: [number, number, number]) => {\n const oklchMatch = color.match(oklchRegex);\n\n if (!oklchMatch) {\n return { l: fallback[0], c: fallback[1], h: fallback[2] };\n }\n\n return {\n l: Number.parseFloat(oklchMatch[1] ?? \"0\"),\n c: Number.parseFloat(oklchMatch[2] ?? \"0\"),\n h: Number.parseFloat(oklchMatch[3] ?? \"0\"),\n };\n};\n\nexport const QRCode = ({\n data,\n foreground,\n background,\n robustness = \"M\",\n className,\n ...props\n}: QRCodeProps) => {\n const [svg, setSVG] = useState<string | null>(null);\n\n useEffect(() => {\n const generateQR = async () => {\n try {\n const styles = getComputedStyle(document.documentElement);\n const foregroundColor =\n foreground ?? (styles.getPropertyValue(\"--kb-foreground\") || \"\");\n const backgroundColor =\n background ?? (styles.getPropertyValue(\"--kb-background\") || \"\");\n\n const foregroundOklch = getOklch(\n foregroundColor,\n [0.21, 0.006, 285.885]\n );\n const backgroundOklch = getOklch(backgroundColor, [0.985, 0, 0]);\n\n const newSvg = await QR.toString(data, {\n type: \"svg\",\n color: {\n dark: formatHex(oklch({ mode: \"oklch\", ...foregroundOklch })),\n light: formatHex(oklch({ mode: \"oklch\", ...backgroundOklch })),\n },\n width: 200,\n errorCorrectionLevel: robustness,\n margin: 0,\n });\n\n setSVG(newSvg);\n } catch (error) {\n console.error(error);\n }\n };\n\n generateQR();\n }, [data, foreground, background, robustness]);\n\n if (!svg) {\n return null;\n }\n\n return (\n <div\n className={cn(\"size-full\", \"[&_svg]:size-full\", className)}\n // oxlint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{ __html: svg }}\n {...props}\n />\n );\n};\n"],"mappings":";;;;;;;;;AAgBA,MAAM,aAAa;AAEnB,MAAM,YAAY,OAAe,aAAuC;CACtE,MAAM,aAAa,MAAM,MAAM,WAAW;AAE1C,KAAI,CAAC,WACH,QAAO;EAAE,GAAG,SAAS;EAAI,GAAG,SAAS;EAAI,GAAG,SAAS;EAAI;AAG3D,QAAO;EACL,GAAG,OAAO,WAAW,WAAW,MAAM,IAAI;EAC1C,GAAG,OAAO,WAAW,WAAW,MAAM,IAAI;EAC1C,GAAG,OAAO,WAAW,WAAW,MAAM,IAAI;EAC3C;;AAGH,MAAa,UAAU,EACrB,MACA,YACA,YACA,aAAa,KACb,WACA,GAAG,YACc;CACjB,MAAM,CAAC,KAAK,UAAU,SAAwB,KAAK;AAEnD,iBAAgB;EACd,MAAM,aAAa,YAAY;AAC7B,OAAI;IACF,MAAM,SAAS,iBAAiB,SAAS,gBAAgB;IACzD,MAAM,kBACJ,eAAe,OAAO,iBAAiB,kBAAkB,IAAI;IAC/D,MAAM,kBACJ,eAAe,OAAO,iBAAiB,kBAAkB,IAAI;IAE/D,MAAM,kBAAkB,SACtB,iBACA;KAAC;KAAM;KAAO;KAAQ,CACvB;IACD,MAAM,kBAAkB,SAAS,iBAAiB;KAAC;KAAO;KAAG;KAAE,CAAC;AAahE,WAXe,MAAM,GAAG,SAAS,MAAM;KACrC,MAAM;KACN,OAAO;MACL,MAAM,UAAU,MAAM;OAAE,MAAM;OAAS,GAAG;OAAiB,CAAC,CAAC;MAC7D,OAAO,UAAU,MAAM;OAAE,MAAM;OAAS,GAAG;OAAiB,CAAC,CAAC;MAC/D;KACD,OAAO;KACP,sBAAsB;KACtB,QAAQ;KACT,CAAC,CAEY;YACP,OAAO;AACd,YAAQ,MAAM,MAAM;;;AAIxB,cAAY;IACX;EAAC;EAAM;EAAY;EAAY;EAAW,CAAC;AAE9C,KAAI,CAAC,IACH,QAAO;AAGT,QACE,oBAAC;EACC,WAAW,GAAG,aAAa,qBAAqB,UAAU;EAE1D,yBAAyB,EAAE,QAAQ,KAAK;EACxC,GAAI;GACJ"}
1
+ {"version":3,"file":"qr-code.js","names":[],"sources":["../../src/ui/qr-code/qr-code.tsx"],"sourcesContent":["\"use client\";\n\nimport { formatHex, oklch } from \"culori\";\nimport QR from \"qrcode\";\nimport type { ComponentProps } from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nexport type QRCodeProps = ComponentProps<\"div\"> & {\n data: string;\n foreground?: string;\n background?: string;\n robustness?: \"L\" | \"M\" | \"Q\" | \"H\";\n};\n\nconst oklchRegex = /oklch\\(([0-9.]+)\\s+([0-9.]+)\\s+([0-9.]+)\\)/;\n\nconst getOklch = (color: string, fallback: [number, number, number]) => {\n const oklchMatch = color.match(oklchRegex);\n\n if (!oklchMatch) {\n return { c: fallback[1], h: fallback[2], l: fallback[0] };\n }\n\n return {\n c: Number.parseFloat(oklchMatch[2] ?? \"0\"),\n h: Number.parseFloat(oklchMatch[3] ?? \"0\"),\n l: Number.parseFloat(oklchMatch[1] ?? \"0\"),\n };\n};\n\nexport const QRCode = ({\n data,\n foreground,\n background,\n robustness = \"M\",\n className,\n ...props\n}: QRCodeProps) => {\n const [svg, setSVG] = useState<string | null>(null);\n\n useEffect(() => {\n const generateQR = async () => {\n try {\n const styles = getComputedStyle(document.documentElement);\n const foregroundColor =\n foreground ?? (styles.getPropertyValue(\"--kb-foreground\") || \"\");\n const backgroundColor =\n background ?? (styles.getPropertyValue(\"--kb-background\") || \"\");\n\n const foregroundOklch = getOklch(\n foregroundColor,\n [0.21, 0.006, 285.885]\n );\n const backgroundOklch = getOklch(backgroundColor, [0.985, 0, 0]);\n\n const newSvg = await QR.toString(data, {\n color: {\n dark: formatHex(oklch({ mode: \"oklch\", ...foregroundOklch })),\n light: formatHex(oklch({ mode: \"oklch\", ...backgroundOklch })),\n },\n errorCorrectionLevel: robustness,\n margin: 0,\n type: \"svg\",\n width: 200,\n });\n\n setSVG(newSvg);\n } catch (error) {\n console.error(error);\n }\n };\n\n generateQR();\n }, [data, foreground, background, robustness]);\n\n if (!svg) {\n return null;\n }\n\n return (\n <div\n className={cn(\"size-full\", \"[&_svg]:size-full\", className)}\n // oxlint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{ __html: svg }}\n {...props}\n />\n );\n};\n"],"mappings":";;;;;;;;;AAeA,MAAM,aAAa;AAEnB,MAAM,YAAY,OAAe,aAAuC;CACtE,MAAM,aAAa,MAAM,MAAM,WAAW;AAE1C,KAAI,CAAC,WACH,QAAO;EAAE,GAAG,SAAS;EAAI,GAAG,SAAS;EAAI,GAAG,SAAS;EAAI;AAG3D,QAAO;EACL,GAAG,OAAO,WAAW,WAAW,MAAM,IAAI;EAC1C,GAAG,OAAO,WAAW,WAAW,MAAM,IAAI;EAC1C,GAAG,OAAO,WAAW,WAAW,MAAM,IAAI;EAC3C;;AAGH,MAAa,UAAU,EACrB,MACA,YACA,YACA,aAAa,KACb,WACA,GAAG,YACc;CACjB,MAAM,CAAC,KAAK,UAAU,SAAwB,KAAK;AAEnD,iBAAgB;EACd,MAAM,aAAa,YAAY;AAC7B,OAAI;IACF,MAAM,SAAS,iBAAiB,SAAS,gBAAgB;IACzD,MAAM,kBACJ,eAAe,OAAO,iBAAiB,kBAAkB,IAAI;IAC/D,MAAM,kBACJ,eAAe,OAAO,iBAAiB,kBAAkB,IAAI;IAE/D,MAAM,kBAAkB,SACtB,iBACA;KAAC;KAAM;KAAO;KAAQ,CACvB;IACD,MAAM,kBAAkB,SAAS,iBAAiB;KAAC;KAAO;KAAG;KAAE,CAAC;AAahE,WAXe,MAAM,GAAG,SAAS,MAAM;KACrC,OAAO;MACL,MAAM,UAAU,MAAM;OAAE,MAAM;OAAS,GAAG;OAAiB,CAAC,CAAC;MAC7D,OAAO,UAAU,MAAM;OAAE,MAAM;OAAS,GAAG;OAAiB,CAAC,CAAC;MAC/D;KACD,sBAAsB;KACtB,QAAQ;KACR,MAAM;KACN,OAAO;KACR,CAAC,CAEY;YACP,OAAO;AACd,YAAQ,MAAM,MAAM;;;AAIxB,cAAY;IACX;EAAC;EAAM;EAAY;EAAY;EAAW,CAAC;AAE9C,KAAI,CAAC,IACH,QAAO;AAGT,QACE,oBAAC,OAAD;EACE,WAAW,GAAG,aAAa,qBAAqB,UAAU;EAE1D,yBAAyB,EAAE,QAAQ,KAAK;EACxC,GAAI;EACJ"}
@@ -8,29 +8,29 @@ import { Radio } from "@base-ui/react/radio";
8
8
  //#region src/ui/radio-group/radio-group-indicator.d.ts
9
9
  declare const radioGroupIndicatorVariants: tailwind_variants0.TVReturnType<{
10
10
  size: {
11
- xs: string;
12
- sm: string;
13
- md: string;
14
11
  lg: string;
12
+ md: string;
13
+ sm: string;
15
14
  xl: string;
15
+ xs: string;
16
16
  };
17
- }, undefined, "flex items-center justify-center text-primary group-aria-invalid/radio-group-item:text-danger", {
17
+ }, undefined, "text-primary group-aria-invalid/radio-group-item:text-danger flex items-center justify-center", {
18
18
  size: {
19
- xs: string;
20
- sm: string;
21
- md: string;
22
19
  lg: string;
20
+ md: string;
21
+ sm: string;
23
22
  xl: string;
23
+ xs: string;
24
24
  };
25
25
  }, undefined, tailwind_variants0.TVReturnType<{
26
26
  size: {
27
- xs: string;
28
- sm: string;
29
- md: string;
30
27
  lg: string;
28
+ md: string;
29
+ sm: string;
31
30
  xl: string;
31
+ xs: string;
32
32
  };
33
- }, undefined, "flex items-center justify-center text-primary group-aria-invalid/radio-group-item:text-danger", unknown, unknown, undefined>>;
33
+ }, undefined, "text-primary group-aria-invalid/radio-group-item:text-danger flex items-center justify-center", unknown, unknown, undefined>>;
34
34
  type RadioGroupIndicatorVariantProps = Omit<VariantProps<typeof radioGroupIndicatorVariants>, "size"> & {
35
35
  size?: UISize;
36
36
  };
@@ -44,29 +44,29 @@ declare const RadioGroupIndicator: ({
44
44
  //#region src/ui/radio-group/radio-group-item.d.ts
45
45
  declare const radioGroupItemVariants: tailwind_variants0.TVReturnType<{
46
46
  size: {
47
- xs: string;
48
- sm: string;
49
- md: string;
50
47
  lg: string;
48
+ md: string;
49
+ sm: string;
51
50
  xl: string;
51
+ xs: string;
52
52
  };
53
- }, undefined, "group/radio-group-item peer relative flex shrink-0 cursor-pointer rounded-full border border-input text-primary-foreground shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-danger-foreground aria-invalid:ring-[3px] aria-invalid:ring-danger-foreground/20 dark:bg-input/30 dark:aria-invalid:border-danger-foreground/50 dark:aria-invalid:ring-danger-foreground/40", {
53
+ }, undefined, "group/radio-group-item peer cursor-clickable border-input text-primary-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-danger-foreground aria-invalid:ring-danger-foreground/20 dark:bg-input/30 dark:aria-invalid:border-danger-foreground/50 dark:aria-invalid:ring-danger-foreground/40 relative flex shrink-0 rounded-full border shadow-xs outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-[3px]", {
54
54
  size: {
55
- xs: string;
56
- sm: string;
57
- md: string;
58
55
  lg: string;
56
+ md: string;
57
+ sm: string;
59
58
  xl: string;
59
+ xs: string;
60
60
  };
61
61
  }, undefined, tailwind_variants0.TVReturnType<{
62
62
  size: {
63
- xs: string;
64
- sm: string;
65
- md: string;
66
63
  lg: string;
64
+ md: string;
65
+ sm: string;
67
66
  xl: string;
67
+ xs: string;
68
68
  };
69
- }, undefined, "group/radio-group-item peer relative flex shrink-0 cursor-pointer rounded-full border border-input text-primary-foreground shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-danger-foreground aria-invalid:ring-[3px] aria-invalid:ring-danger-foreground/20 dark:bg-input/30 dark:aria-invalid:border-danger-foreground/50 dark:aria-invalid:ring-danger-foreground/40", unknown, unknown, undefined>>;
69
+ }, undefined, "group/radio-group-item peer cursor-clickable border-input text-primary-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-danger-foreground aria-invalid:ring-danger-foreground/20 dark:bg-input/30 dark:aria-invalid:border-danger-foreground/50 dark:aria-invalid:ring-danger-foreground/40 relative flex shrink-0 rounded-full border shadow-xs outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-[3px]", unknown, unknown, undefined>>;
70
70
  type RadioGroupItemVariantProps = Omit<VariantProps<typeof radioGroupItemVariants>, "size"> & {
71
71
  size?: UISize;
72
72
  };
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group.d.ts","names":[],"sources":["../../src/ui/radio-group/radio-group-indicator.tsx","../../src/ui/radio-group/radio-group-item.tsx","../../src/ui/radio-group/radio-group.tsx"],"mappings":";;;;;;;;cAQM,2BAAA,EAcJ,kBAAA,CAd+B,YAAA;;;;;;;;;;;;;;;;cAc/B,kBAAA,CAAA,YAAA;;;;;;;;;KAEG,+BAAA,GAAkC,IAAA,CACrC,YAAA,QAAoB,2BAAA;EAGpB,IAAA,GAAO,MAAA;AAAA;AAAA,KAGG,wBAAA,GAA2B,KAAA,CAAe,SAAA,CAAU,KAAA,GAC9D,+BAAA;AAAA,cAEI,mBAAA;EAAuB,SAAA;EAAA,IAAA,EAAA,YAAA;EAAA,GAAA;AAAA,GAI1B,wBAAA,KAAwB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;cC3BrB,sBAAA,EAcJ,kBAAA,CAd0B,YAAA;;;;;;;;;;;;;;;;cAc1B,kBAAA,CAAA,YAAA;;;;;;;;;KAEG,0BAAA,GAA6B,IAAA,CAChC,YAAA,QAAoB,sBAAA;EAGpB,IAAA,GAAO,MAAA;AAAA;AAAA,KAGG,mBAAA,GAAsB,KAAA,CAAe,IAAA,CAAK,KAAA,GACpD,0BAAA;AAAA,cAEI,cAAA;EAAkB,SAAA;EAAA,QAAA;EAAA,IAAA,EAAA,YAAA;EAAA,GAAA;AAAA,GAKrB,mBAAA,KAAmB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCpCV,eAAA,oBAAmC,YAAA,CAAoB,KAAA,CAAM,KAAA;AAAA,cAEnE,UAAA;EAAA;;;KAAuC,eAAA,GAAe,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"radio-group.d.ts","names":[],"sources":["../../src/ui/radio-group/radio-group-indicator.tsx","../../src/ui/radio-group/radio-group-item.tsx","../../src/ui/radio-group/radio-group.tsx"],"mappings":";;;;;;;;cAQM,2BAAA,EAcJ,kBAAA,CAd+B,YAAA;;;;;;;;;;;;;;;;cAc/B,kBAAA,CAAA,YAAA;;;;;;;;;KAEG,+BAAA,GAAkC,IAAA,CACrC,YAAA,QAAoB,2BAAA;EAGpB,IAAA,GAAO,MAAA;AAAA;AAAA,KAGG,wBAAA,GAA2B,KAAA,CAAe,SAAA,CAAU,KAAA,GAC9D,+BAAA;AAAA,cAEI,mBAAA;EAAuB,SAAA;EAAA,IAAA,EAAA,YAAA;EAAA,GAAA;AAAA,GAI1B,wBAAA,KAAwB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;cC3BrB,sBAAA,EAcJ,kBAAA,CAd0B,YAAA;;;;;;;;;;;;;;;;cAc1B,kBAAA,CAAA,YAAA;;;;;;;;;KAEG,0BAAA,GAA6B,IAAA,CAChC,YAAA,QAAoB,sBAAA;EAGpB,IAAA,GAAO,MAAA;AAAA;AAAA,KAGG,mBAAA,GAAsB,KAAA,CAAe,IAAA,CAAK,KAAA,GACpD,0BAAA;AAAA,cAEI,cAAA;EAAkB,SAAA;EAAA,QAAA;EAAA,IAAA,EAAA,YAAA;EAAA,GAAA;AAAA,GAKrB,mBAAA,KAAmB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KClCV,eAAA,oBAAmC,YAAA,CAAoB,KAAA,CAAM,KAAA;AAAA,cAEnE,UAAA;EAAA;;;KAAuC,eAAA,GAAe,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  import { a as useComponentSize } from "../size-provider-18EvJgDT.js";
2
4
  import { t as mergeBaseUIClassName } from "../merge-base-ui-class-name-HKsgjcXj.js";
3
5
  import { jsx } from "react/jsx-runtime";
@@ -9,15 +11,15 @@ import { Radio } from "@base-ui/react/radio";
9
11
 
10
12
  //#region src/ui/radio-group/radio-group-indicator.tsx
11
13
  const radioGroupIndicatorVariants = tv({
12
- base: "flex items-center justify-center text-primary group-aria-invalid/radio-group-item:text-danger",
14
+ base: "text-primary group-aria-invalid/radio-group-item:text-danger flex items-center justify-center",
15
+ defaultVariants: { size: "md" },
13
16
  variants: { size: {
14
- xs: "size-3",
15
- sm: "size-3.5",
16
- md: "size-4",
17
17
  lg: "size-[18px]",
18
- xl: "size-5"
19
- } },
20
- defaultVariants: { size: "md" }
18
+ md: "size-4",
19
+ sm: "size-3.5",
20
+ xl: "size-5",
21
+ xs: "size-3"
22
+ } }
21
23
  });
22
24
  const RadioGroupIndicator = ({ className, size: providedSize, ...props }) => {
23
25
  const size = useComponentSize(providedSize);
@@ -32,15 +34,15 @@ const RadioGroupIndicator = ({ className, size: providedSize, ...props }) => {
32
34
  //#endregion
33
35
  //#region src/ui/radio-group/radio-group-item.tsx
34
36
  const radioGroupItemVariants = tv({
35
- base: "group/radio-group-item peer relative flex shrink-0 cursor-pointer rounded-full border border-input text-primary-foreground shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-danger-foreground aria-invalid:ring-[3px] aria-invalid:ring-danger-foreground/20 dark:bg-input/30 dark:aria-invalid:border-danger-foreground/50 dark:aria-invalid:ring-danger-foreground/40",
37
+ base: "group/radio-group-item peer cursor-clickable border-input text-primary-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-danger-foreground aria-invalid:ring-danger-foreground/20 dark:bg-input/30 dark:aria-invalid:border-danger-foreground/50 dark:aria-invalid:ring-danger-foreground/40 relative flex shrink-0 rounded-full border shadow-xs outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-[3px]",
38
+ defaultVariants: { size: "md" },
36
39
  variants: { size: {
37
- xs: "aspect-square size-3 after:absolute after:-inset-1.5",
38
- sm: "aspect-square size-3.5 after:absolute after:-inset-2",
39
- md: "aspect-square size-4 after:absolute after:-inset-2.5",
40
40
  lg: "aspect-square size-[18px] after:absolute after:-inset-3",
41
- xl: "aspect-square size-5 after:absolute after:-inset-3.5"
42
- } },
43
- defaultVariants: { size: "md" }
41
+ md: "aspect-square size-4 after:absolute after:-inset-2.5",
42
+ sm: "aspect-square size-3.5 after:absolute after:-inset-2",
43
+ xl: "aspect-square size-5 after:absolute after:-inset-3.5",
44
+ xs: "aspect-square size-3 after:absolute after:-inset-1.5"
45
+ } }
44
46
  });
45
47
  const RadioGroupItem = ({ className, children, size: providedSize, ...props }) => {
46
48
  const size = useComponentSize(providedSize);
@@ -52,7 +54,7 @@ const RadioGroupItem = ({ className, children, size: providedSize, ...props }) =
52
54
  children: children ?? /* @__PURE__ */ jsx(RadioGroupIndicator, {
53
55
  size,
54
56
  children: /* @__PURE__ */ jsx(HugeiconsIcon, {
55
- className: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 fill-current data-[size=xs]:size-1.5 data-[size=sm]:size-1.5 data-[size=md]:size-2 data-[size=lg]:size-2 data-[size=xl]:size-2.5",
57
+ className: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 fill-current data-[size=lg]:size-2 data-[size=md]:size-2 data-[size=sm]:size-1.5 data-[size=xl]:size-2.5 data-[size=xs]:size-1.5",
56
58
  "data-size": size,
57
59
  icon: CircleIcon,
58
60
  strokeWidth: 2
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group.js","names":["RadioPrimitive","RadioPrimitive","RadioGroupPrimitive"],"sources":["../../src/ui/radio-group/radio-group-indicator.tsx","../../src/ui/radio-group/radio-group-item.tsx","../../src/ui/radio-group/radio-group.tsx"],"sourcesContent":["import { Radio as RadioPrimitive } from \"@base-ui/react/radio\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { UISize } from \"../shared/size/size-system\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { useComponentSize } from \"../shared/size/size-provider\";\n\nconst radioGroupIndicatorVariants = tv({\n base: \"flex items-center justify-center text-primary group-aria-invalid/radio-group-item:text-danger\",\n variants: {\n size: {\n xs: \"size-3\",\n sm: \"size-3.5\",\n md: \"size-4\",\n lg: \"size-[18px]\",\n xl: \"size-5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\ntype RadioGroupIndicatorVariantProps = Omit<\n VariantProps<typeof radioGroupIndicatorVariants>,\n \"size\"\n> & {\n size?: UISize;\n};\n\nexport type RadioGroupIndicatorProps = RadioPrimitive.Indicator.Props &\n RadioGroupIndicatorVariantProps;\n\nconst RadioGroupIndicator = ({\n className,\n size: providedSize,\n ...props\n}: RadioGroupIndicatorProps) => {\n const size = useComponentSize(providedSize);\n\n return (\n <RadioPrimitive.Indicator\n className={mergeBaseUIClassName<RadioPrimitive.Indicator.State>(\n radioGroupIndicatorVariants({ size }),\n className\n )}\n data-size={size}\n data-slot=\"radio-group-indicator\"\n {...props}\n />\n );\n};\n\nexport { RadioGroupIndicator };\n","import { Radio as RadioPrimitive } from \"@base-ui/react/radio\";\nimport { CircleIcon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { UISize } from \"../shared/size/size-system\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { useComponentSize } from \"../shared/size/size-provider\";\nimport { RadioGroupIndicator } from \"./radio-group-indicator\";\n\nconst radioGroupItemVariants = tv({\n base: \"group/radio-group-item peer relative flex shrink-0 cursor-pointer rounded-full border border-input text-primary-foreground shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-danger-foreground aria-invalid:ring-[3px] aria-invalid:ring-danger-foreground/20 dark:bg-input/30 dark:aria-invalid:border-danger-foreground/50 dark:aria-invalid:ring-danger-foreground/40\",\n variants: {\n size: {\n xs: \"aspect-square size-3 after:absolute after:-inset-1.5\",\n sm: \"aspect-square size-3.5 after:absolute after:-inset-2\",\n md: \"aspect-square size-4 after:absolute after:-inset-2.5\",\n lg: \"aspect-square size-[18px] after:absolute after:-inset-3\",\n xl: \"aspect-square size-5 after:absolute after:-inset-3.5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\ntype RadioGroupItemVariantProps = Omit<\n VariantProps<typeof radioGroupItemVariants>,\n \"size\"\n> & {\n size?: UISize;\n};\n\nexport type RadioGroupItemProps = RadioPrimitive.Root.Props &\n RadioGroupItemVariantProps;\n\nconst RadioGroupItem = ({\n className,\n children,\n size: providedSize,\n ...props\n}: RadioGroupItemProps) => {\n const size = useComponentSize(providedSize);\n\n return (\n <RadioPrimitive.Root\n className={mergeBaseUIClassName<RadioPrimitive.Root.State>(\n radioGroupItemVariants({ size }),\n className\n )}\n data-size={size}\n data-slot=\"radio-group-item\"\n {...props}\n >\n {children ?? (\n <RadioGroupIndicator size={size}>\n <HugeiconsIcon\n className=\"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 fill-current data-[size=xs]:size-1.5 data-[size=sm]:size-1.5 data-[size=md]:size-2 data-[size=lg]:size-2 data-[size=xl]:size-2.5\"\n data-size={size}\n icon={CircleIcon}\n strokeWidth={2}\n />\n </RadioGroupIndicator>\n )}\n </RadioPrimitive.Root>\n );\n};\n\nexport { RadioGroupItem };\n","import { RadioGroup as RadioGroupPrimitive } from \"@base-ui/react/radio-group\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { RadioGroupIndicator } from \"./radio-group-indicator\";\nimport { RadioGroupItem } from \"./radio-group-item\";\n\nexport type RadioGroupProps<Value = unknown> = RadioGroupPrimitive.Props<Value>;\n\nconst RadioGroup = ({ className, ...props }: RadioGroupProps) => (\n <RadioGroupPrimitive\n className={mergeBaseUIClassName<RadioGroupPrimitive.State>(\n \"grid w-full gap-2\",\n className\n )}\n data-slot=\"radio-group\"\n {...props}\n />\n);\n\nRadioGroup.Indicator = RadioGroupIndicator;\nRadioGroup.Item = RadioGroupItem;\n\nexport type { RadioGroupIndicatorProps } from \"./radio-group-indicator\";\nexport type { RadioGroupItemProps } from \"./radio-group-item\";\n\nexport { RadioGroup, RadioGroupIndicator, RadioGroupItem };\n"],"mappings":";;;;;;;;;;AAQA,MAAM,8BAA8B,GAAG;CACrC,MAAM;CACN,UAAU,EACR,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACL,EACF;CACD,iBAAiB,EACf,MAAM,MACP;CACF,CAAC;AAYF,MAAM,uBAAuB,EAC3B,WACA,MAAM,cACN,GAAG,YAC2B;CAC9B,MAAM,OAAO,iBAAiB,aAAa;AAE3C,QACE,oBAACA,MAAe;EACd,WAAW,qBACT,4BAA4B,EAAE,MAAM,CAAC,EACrC,UACD;EACD,aAAW;EACX,aAAU;EACV,GAAI;GACJ;;;;;ACvCN,MAAM,yBAAyB,GAAG;CAChC,MAAM;CACN,UAAU,EACR,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACL,EACF;CACD,iBAAiB,EACf,MAAM,MACP;CACF,CAAC;AAYF,MAAM,kBAAkB,EACtB,WACA,UACA,MAAM,cACN,GAAG,YACsB;CACzB,MAAM,OAAO,iBAAiB,aAAa;AAE3C,QACE,oBAACC,MAAe;EACd,WAAW,qBACT,uBAAuB,EAAE,MAAM,CAAC,EAChC,UACD;EACD,aAAW;EACX,aAAU;EACV,GAAI;YAEH,YACC,oBAAC;GAA0B;aACzB,oBAAC;IACC,WAAU;IACV,aAAW;IACX,MAAM;IACN,aAAa;KACb;IACkB;GAEJ;;;;;ACzD1B,MAAM,cAAc,EAAE,WAAW,GAAG,YAClC,oBAACC;CACC,WAAW,qBACT,qBACA,UACD;CACD,aAAU;CACV,GAAI;EACJ;AAGJ,WAAW,YAAY;AACvB,WAAW,OAAO"}
1
+ {"version":3,"file":"radio-group.js","names":["RadioPrimitive","RadioPrimitive","RadioGroupPrimitive"],"sources":["../../src/ui/radio-group/radio-group-indicator.tsx","../../src/ui/radio-group/radio-group-item.tsx","../../src/ui/radio-group/radio-group.tsx"],"sourcesContent":["import { Radio as RadioPrimitive } from \"@base-ui/react/radio\";\nimport { tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { useComponentSize } from \"../shared/size/size-provider\";\nimport type { UISize } from \"../shared/size/size-system\";\n\nconst radioGroupIndicatorVariants = tv({\n base: \"text-primary group-aria-invalid/radio-group-item:text-danger flex items-center justify-center\",\n defaultVariants: {\n size: \"md\",\n },\n variants: {\n size: {\n lg: \"size-[18px]\",\n md: \"size-4\",\n sm: \"size-3.5\",\n xl: \"size-5\",\n xs: \"size-3\",\n },\n },\n});\n\ntype RadioGroupIndicatorVariantProps = Omit<\n VariantProps<typeof radioGroupIndicatorVariants>,\n \"size\"\n> & {\n size?: UISize;\n};\n\nexport type RadioGroupIndicatorProps = RadioPrimitive.Indicator.Props &\n RadioGroupIndicatorVariantProps;\n\nconst RadioGroupIndicator = ({\n className,\n size: providedSize,\n ...props\n}: RadioGroupIndicatorProps) => {\n const size = useComponentSize(providedSize);\n\n return (\n <RadioPrimitive.Indicator\n className={mergeBaseUIClassName<RadioPrimitive.Indicator.State>(\n radioGroupIndicatorVariants({ size }),\n className\n )}\n data-size={size}\n data-slot=\"radio-group-indicator\"\n {...props}\n />\n );\n};\n\nexport { RadioGroupIndicator };\n","import { Radio as RadioPrimitive } from \"@base-ui/react/radio\";\nimport { CircleIcon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport { tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { useComponentSize } from \"../shared/size/size-provider\";\nimport type { UISize } from \"../shared/size/size-system\";\nimport { RadioGroupIndicator } from \"./radio-group-indicator\";\n\nconst radioGroupItemVariants = tv({\n base: \"group/radio-group-item peer cursor-clickable border-input text-primary-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-danger-foreground aria-invalid:ring-danger-foreground/20 dark:bg-input/30 dark:aria-invalid:border-danger-foreground/50 dark:aria-invalid:ring-danger-foreground/40 relative flex shrink-0 rounded-full border shadow-xs outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-[3px]\",\n defaultVariants: {\n size: \"md\",\n },\n variants: {\n size: {\n lg: \"aspect-square size-[18px] after:absolute after:-inset-3\",\n md: \"aspect-square size-4 after:absolute after:-inset-2.5\",\n sm: \"aspect-square size-3.5 after:absolute after:-inset-2\",\n xl: \"aspect-square size-5 after:absolute after:-inset-3.5\",\n xs: \"aspect-square size-3 after:absolute after:-inset-1.5\",\n },\n },\n});\n\ntype RadioGroupItemVariantProps = Omit<\n VariantProps<typeof radioGroupItemVariants>,\n \"size\"\n> & {\n size?: UISize;\n};\n\nexport type RadioGroupItemProps = RadioPrimitive.Root.Props &\n RadioGroupItemVariantProps;\n\nconst RadioGroupItem = ({\n className,\n children,\n size: providedSize,\n ...props\n}: RadioGroupItemProps) => {\n const size = useComponentSize(providedSize);\n\n return (\n <RadioPrimitive.Root\n className={mergeBaseUIClassName<RadioPrimitive.Root.State>(\n radioGroupItemVariants({ size }),\n className\n )}\n data-size={size}\n data-slot=\"radio-group-item\"\n {...props}\n >\n {children ?? (\n <RadioGroupIndicator size={size}>\n <HugeiconsIcon\n className=\"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 fill-current data-[size=lg]:size-2 data-[size=md]:size-2 data-[size=sm]:size-1.5 data-[size=xl]:size-2.5 data-[size=xs]:size-1.5\"\n data-size={size}\n icon={CircleIcon}\n strokeWidth={2}\n />\n </RadioGroupIndicator>\n )}\n </RadioPrimitive.Root>\n );\n};\n\nexport { RadioGroupItem };\n","\"use client\";\n\nimport { RadioGroup as RadioGroupPrimitive } from \"@base-ui/react/radio-group\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { RadioGroupIndicator } from \"./radio-group-indicator\";\nimport { RadioGroupItem } from \"./radio-group-item\";\n\nexport type RadioGroupProps<Value = unknown> = RadioGroupPrimitive.Props<Value>;\n\nconst RadioGroup = ({ className, ...props }: RadioGroupProps) => (\n <RadioGroupPrimitive\n className={mergeBaseUIClassName<RadioGroupPrimitive.State>(\n \"grid w-full gap-2\",\n className\n )}\n data-slot=\"radio-group\"\n {...props}\n />\n);\n\nRadioGroup.Indicator = RadioGroupIndicator;\nRadioGroup.Item = RadioGroupItem;\n\nexport type { RadioGroupIndicatorProps } from \"./radio-group-indicator\";\nexport type { RadioGroupItemProps } from \"./radio-group-item\";\n\nexport { RadioGroup, RadioGroupIndicator, RadioGroupItem };\n"],"mappings":";;;;;;;;;;;;AAQA,MAAM,8BAA8B,GAAG;CACrC,MAAM;CACN,iBAAiB,EACf,MAAM,MACP;CACD,UAAU,EACR,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACL,EACF;CACF,CAAC;AAYF,MAAM,uBAAuB,EAC3B,WACA,MAAM,cACN,GAAG,YAC2B;CAC9B,MAAM,OAAO,iBAAiB,aAAa;AAE3C,QACE,oBAACA,MAAe,WAAhB;EACE,WAAW,qBACT,4BAA4B,EAAE,MAAM,CAAC,EACrC,UACD;EACD,aAAW;EACX,aAAU;EACV,GAAI;EACJ;;;;;ACvCN,MAAM,yBAAyB,GAAG;CAChC,MAAM;CACN,iBAAiB,EACf,MAAM,MACP;CACD,UAAU,EACR,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACL,EACF;CACF,CAAC;AAYF,MAAM,kBAAkB,EACtB,WACA,UACA,MAAM,cACN,GAAG,YACsB;CACzB,MAAM,OAAO,iBAAiB,aAAa;AAE3C,QACE,oBAACC,MAAe,MAAhB;EACE,WAAW,qBACT,uBAAuB,EAAE,MAAM,CAAC,EAChC,UACD;EACD,aAAW;EACX,aAAU;EACV,GAAI;YAEH,YACC,oBAAC,qBAAD;GAA2B;aACzB,oBAAC,eAAD;IACE,WAAU;IACV,aAAW;IACX,MAAM;IACN,aAAa;IACb;GACkB;EAEJ;;;;;ACvD1B,MAAM,cAAc,EAAE,WAAW,GAAG,YAClC,oBAACC,cAAD;CACE,WAAW,qBACT,qBACA,UACD;CACD,aAAU;CACV,GAAI;CACJ;AAGJ,WAAW,YAAY;AACvB,WAAW,OAAO"}
@@ -1,5 +1,5 @@
1
1
  import { RangeSliderValue } from "./range-slider/range-slider-types.js";
2
- import { _ as SliderLabel, a as SliderThumbLabel, b as SliderLabelTransitionProps, c as SliderThumbProps, d as SliderMark$1, h as SliderControl, l as SliderMarks, p as SliderIndicator, r as SliderTrack, s as SliderThumb, t as SliderValue, v as SliderMark, w as SliderSize, x as SliderRadius } from "../slider-value-Db8SCu0c.js";
2
+ import { C as SliderControl, _ as SliderMark, a as SliderValue, d as SliderLabelTransitionProps, f as SliderThumb, g as SliderLabel, i as SliderSize, l as SliderThumbLabel, m as SliderMarks, p as SliderThumbProps, s as SliderTrack, t as SliderRadius, x as SliderIndicator, y as SliderMark$1 } from "../slider-style-tokens-CZezJilZ.js";
3
3
  import { ComponentPropsWithoutRef, ReactNode } from "react";
4
4
  import { Slider } from "@base-ui/react/slider";
5
5
 
@@ -1 +1 @@
1
- {"version":3,"file":"range-slider.d.ts","names":[],"sources":["../../src/ui/range-slider/range-slider.tsx"],"mappings":";;;;;;KAyCK,oBAAA,GAAuB,IAAA,CAC1B,MAAA,CAAgB,IAAA,CAAK,KAAA;AAAA,UAcN,gBAAA,SAAyB,oBAAA;EACxC,KAAA;EACA,YAAA,GAAe,gBAAA;EACf,MAAA;EACA,gBAAA,GAAmB,IAAA,CACjB,wBAAA;EAGF,QAAA;EACA,KAAA,GAAQ,WAAA;EACR,aAAA;EACA,oBAAA,GAAuB,0BAAA;EACvB,KAAA,YAAiB,UAAA;EACjB,GAAA;EACA,QAAA;EACA,GAAA;EACA,QAAA;EACA,IAAA;EACA,QAAA,KAAa,KAAA,EAAO,gBAAA;EACpB,WAAA,KAAgB,KAAA,EAAO,gBAAA;EACvB,SAAA;EACA,aAAA;EACA,MAAA,GAAS,YAAA;EACT,eAAA;EACA,KAAA,KAAU,KAAA;EACV,IAAA,GAAO,UAAA;EACP,gBAAA;EACA,IAAA;EACA,aAAA,GAAgB,SAAA,IAAa,SAAA,EAAW,SAAA;EACxC,cAAA;EACA,gBAAA;EACA,wBAAA;EACA,UAAA,KAEM,KAAA,YACG,IAAA,CAAK,gBAAA;EAEd,SAAA;EACA,YAAA;EACA,SAAA;EACA,QAAA;EACA,KAAA,GAAQ,gBAAA;AAAA;AAAA,KAGL,oBAAA,KAAyB,KAAA,EAAO,gBAAA,KAAqB,SAAA;EACxD,OAAA,SAAgB,aAAA;EAChB,SAAA,SAAkB,eAAA;EAClB,IAAA,SAAa,YAAA;EACb,KAAA,SAAc,WAAA;EACd,KAAA,SAAc,WAAA;EACd,UAAA,SAAmB,gBAAA;EACnB,KAAA,SAAc,WAAA;EACd,KAAA,SAAc,WAAA;AAAA;AAAA,cAGV,WAAA,EAgLA,oBAAA"}
1
+ {"version":3,"file":"range-slider.d.ts","names":[],"sources":["../../src/ui/range-slider/range-slider.tsx"],"mappings":";;;;;;KAqCK,oBAAA,GAAuB,IAAA,CAC1B,MAAA,CAAgB,IAAA,CAAK,KAAA;AAAA,UAcN,gBAAA,SAAyB,oBAAA;EACxC,KAAA;EACA,YAAA,GAAe,gBAAA;EACf,MAAA;EACA,gBAAA,GAAmB,IAAA,CACjB,wBAAA;EAGF,QAAA;EACA,KAAA,GAAQ,WAAA;EACR,aAAA;EACA,oBAAA,GAAuB,0BAAA;EACvB,KAAA,YAAiB,UAAA;EACjB,GAAA;EACA,QAAA;EACA,GAAA;EACA,QAAA;EACA,IAAA;EACA,QAAA,KAAa,KAAA,EAAO,gBAAA;EACpB,WAAA,KAAgB,KAAA,EAAO,gBAAA;EACvB,SAAA;EACA,aAAA;EACA,MAAA,GAAS,YAAA;EACT,eAAA;EACA,KAAA,KAAU,KAAA;EACV,IAAA,GAAO,UAAA;EACP,gBAAA;EACA,IAAA;EACA,aAAA,GAAgB,SAAA,IAAa,SAAA,EAAW,SAAA;EACxC,cAAA;EACA,gBAAA;EACA,wBAAA;EACA,UAAA,KAEM,KAAA,YACG,IAAA,CAAK,gBAAA;EAEd,SAAA;EACA,YAAA;EACA,SAAA;EACA,QAAA;EACA,KAAA,GAAQ,gBAAA;AAAA;AAAA,KAGL,oBAAA,KAAyB,KAAA,EAAO,gBAAA,KAAqB,SAAA;EACxD,OAAA,SAAgB,aAAA;EAChB,SAAA,SAAkB,eAAA;EAClB,IAAA,SAAa,YAAA;EACb,KAAA,SAAc,WAAA;EACd,KAAA,SAAc,WAAA;EACd,UAAA,SAAmB,gBAAA;EACnB,KAAA,SAAc,WAAA;EACd,KAAA,SAAc,WAAA;AAAA;AAAA,cAGV,WAAA,EAgLA,oBAAA"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
 
3
- import { _ as getNextMarkValue, a as SliderValue, b as isKeyboardLikeReason, c as SliderThumb, d as SliderIndicator, f as SliderControl, g as getNearestMarkValue, h as getLastMarkValue, i as resolveSliderBounds, l as SliderMarks, m as getFirstMarkValue, n as resolveSliderRootClassName, o as SliderTrack, p as clampNumber, r as resolveSliderLabel, s as SliderThumbLabel, t as mergeSliderRootStyle, u as SliderMark, v as getPreviousMarkValue, x as toFloatingValue, y as getSortedSelectableMarks } from "../slider-root-presentation-ChJHPMIV.js";
3
+ import { _ as getNextMarkValue, a as SliderValue, b as isKeyboardLikeReason, c as SliderThumb, d as SliderIndicator, f as SliderControl, g as getNearestMarkValue, h as getLastMarkValue, i as resolveSliderBounds, l as SliderMarks, m as getFirstMarkValue, n as resolveSliderRootClassName, o as SliderTrack, p as clampNumber, r as resolveSliderLabel, s as SliderThumbLabel, t as mergeSliderRootStyle, u as SliderMark, v as getPreviousMarkValue, x as toFloatingValue, y as getSortedSelectableMarks } from "../slider-root-presentation-B6OO_iCT.js";
4
4
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
5
5
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
6
  import { Slider } from "@base-ui/react/slider";
@@ -54,8 +54,7 @@ const normalizeRangeSliderValue = ({ activeThumbIndex, current, domainMax, domai
54
54
  else clone[index] = getNearestMarkValue(rawAtIndex, selectableMarks);
55
55
  if (clone[index] === lastMarkValue && clone[otherIndex] === lastMarkValue) clone[index] = currentAtIndex;
56
56
  else if (clone[index] === firstMarkValue && clone[otherIndex] === firstMarkValue) clone[index] = currentAtIndex;
57
- else if (clone[index] === clone[otherIndex]) if (currentAtIndex > clone[otherIndex]) clone[otherIndex] = getPreviousMarkValue(clone[index], selectableMarks);
58
- else clone[otherIndex] = getNextMarkValue(clone[index], selectableMarks);
57
+ else if (clone[index] === clone[otherIndex]) clone[otherIndex] = currentAtIndex > clone[otherIndex] ? getPreviousMarkValue(clone[index], selectableMarks) : getNextMarkValue(clone[index], selectableMarks);
59
58
  }
60
59
  } else {
61
60
  const safeMinRange = Number.isFinite(minRange) ? Math.max(minRange, 0) : 0;
@@ -64,8 +63,7 @@ const normalizeRangeSliderValue = ({ activeThumbIndex, current, domainMax, domai
64
63
  const [clamped] = clone;
65
64
  if (clamped > clone[1] - (safeMinRange - 1e-9)) if (pushOnOverlap) clone[1] = Math.min(clamped + safeMinRange, max);
66
65
  else clone[0] = currentFrom;
67
- if (clamped > clone[1] - (safeMinRange - 1e-9)) if (pushOnOverlap) clone[0] = clone[1] - safeMinRange;
68
- else clone[0] = currentFrom;
66
+ if (clamped > clone[1] - (safeMinRange - 1e-9)) clone[0] = pushOnOverlap ? clone[1] - safeMinRange : currentFrom;
69
67
  if (clone[1] - clamped > safeMaxRange) if (pushOnOverlap) clone[1] = clamped + safeMaxRange;
70
68
  else clone[0] = currentFrom;
71
69
  }
@@ -73,8 +71,7 @@ const normalizeRangeSliderValue = ({ activeThumbIndex, current, domainMax, domai
73
71
  const [, clamped] = clone;
74
72
  if (clamped < clone[0] + safeMinRange) if (pushOnOverlap) clone[0] = Math.max(clamped - safeMinRange, min);
75
73
  else clone[1] = currentTo;
76
- if (clamped < clone[0] + safeMinRange) if (pushOnOverlap) clone[1] = clone[0] + safeMinRange;
77
- else clone[1] = currentTo;
74
+ if (clamped < clone[0] + safeMinRange) clone[1] = pushOnOverlap ? clone[0] + safeMinRange : currentTo;
78
75
  if (clamped - clone[0] > safeMaxRange) if (pushOnOverlap) clone[0] = clamped - safeMaxRange;
79
76
  else clone[1] = currentTo;
80
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"range-slider.js","names":["SliderPrimitive","SliderValuePrimitive"],"sources":["../../src/ui/range-slider/range-slider-helpers.ts","../../src/ui/range-slider/math/normalize-range-slider-value.ts","../../src/ui/range-slider/use-range-slider-state.ts","../../src/ui/range-slider/range-slider.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\n\nconst MIN_STEP_TOLERANCE_MULTIPLIER = 10;\n\nexport const getMinStepsBetweenValues = ({\n minRange,\n restrictToMarks,\n step,\n}: {\n minRange: number;\n restrictToMarks: boolean;\n step: number;\n}) => {\n if (restrictToMarks || step <= 0 || !Number.isFinite(minRange)) {\n return;\n }\n\n const steps = minRange / step;\n if (!Number.isFinite(steps) || steps < 0) {\n return;\n }\n\n const roundedSteps = Math.round(steps);\n return Math.abs(steps - roundedSteps) <\n Number.EPSILON * MIN_STEP_TOLERANCE_MULTIPLIER\n ? roundedSteps\n : undefined;\n};\n\nexport const getThumbChildrenByIndex = (\n thumbChildren: ReactNode | [ReactNode, ReactNode] | undefined,\n index: 0 | 1\n) => {\n if (!Array.isArray(thumbChildren)) {\n return thumbChildren;\n }\n\n return thumbChildren[index];\n};\n","import type { SliderMark } from \"../../slider/shared/slider-types\";\n\nimport {\n clampNumber,\n getFirstMarkValue,\n getLastMarkValue,\n getNearestMarkValue,\n getNextMarkValue,\n getPreviousMarkValue,\n getSortedSelectableMarks,\n isKeyboardLikeReason,\n toFloatingValue,\n} from \"../../slider/math/slider-math-utils\";\n\ninterface NormalizeRangeSliderValueOptions {\n activeThumbIndex?: number;\n current: readonly number[];\n domainMax: number;\n domainMin: number;\n marks?: readonly SliderMark[];\n max: number;\n maxRange: number;\n min: number;\n minRange: number;\n precision: number;\n pushOnOverlap: boolean;\n raw: readonly number[];\n reason?: string;\n restrictToMarks?: boolean;\n}\n\nconst getResolvedActiveThumbIndex = (\n current: readonly number[],\n raw: readonly number[],\n activeThumbIndex?: number\n) => {\n if (activeThumbIndex === 0 || activeThumbIndex === 1) {\n return activeThumbIndex;\n }\n\n const currentFrom = current[0] ?? 0;\n const currentTo = current[1] ?? 0;\n const rawFrom = raw[0] ?? currentFrom;\n const rawTo = raw[1] ?? currentTo;\n\n return Math.abs(rawFrom - currentFrom) >= Math.abs(rawTo - currentTo) ? 0 : 1;\n};\n\nexport const normalizeRangeSliderValue = ({\n activeThumbIndex,\n current,\n domainMax,\n domainMin,\n marks,\n max,\n maxRange,\n min,\n minRange,\n precision,\n pushOnOverlap,\n raw,\n reason,\n restrictToMarks,\n}: NormalizeRangeSliderValueOptions): [number, number] => {\n const currentFrom = clampNumber(current[0] ?? min, min, max);\n const currentTo = clampNumber(current[1] ?? max, min, max);\n const currentValues: [number, number] = [currentFrom, currentTo];\n\n const clampedRawFrom = clampNumber(\n raw[0] ?? currentFrom,\n domainMin,\n domainMax\n );\n const clampedRawTo = clampNumber(raw[1] ?? currentTo, domainMin, domainMax);\n\n const resolvedActiveIndex = getResolvedActiveThumbIndex(\n [currentFrom, currentTo],\n [clampedRawFrom, clampedRawTo],\n activeThumbIndex\n );\n\n const clone: [number, number] = [\n clampNumber(clampedRawFrom, min, max),\n clampNumber(clampedRawTo, min, max),\n ];\n\n if (restrictToMarks) {\n const selectableMarks = getSortedSelectableMarks(marks, min, max);\n if (selectableMarks.length) {\n const firstMarkValue = getFirstMarkValue(selectableMarks, min);\n const lastMarkValue = getLastMarkValue(selectableMarks, max);\n const index = resolvedActiveIndex;\n const otherIndex = index === 0 ? 1 : 0;\n const currentAtIndex = currentValues[index];\n const rawAtIndex = index === 0 ? clampedRawFrom : clampedRawTo;\n\n if (isKeyboardLikeReason(reason)) {\n if (rawAtIndex <= min) {\n clone[index] = firstMarkValue;\n } else if (rawAtIndex >= max) {\n clone[index] = lastMarkValue;\n } else if (rawAtIndex > currentAtIndex) {\n clone[index] = getNextMarkValue(currentAtIndex, selectableMarks);\n } else if (rawAtIndex < currentAtIndex) {\n clone[index] = getPreviousMarkValue(currentAtIndex, selectableMarks);\n } else {\n clone[index] = getNearestMarkValue(rawAtIndex, selectableMarks);\n }\n } else {\n clone[index] = getNearestMarkValue(rawAtIndex, selectableMarks);\n }\n\n if (\n clone[index] === lastMarkValue &&\n clone[otherIndex] === lastMarkValue\n ) {\n clone[index] = currentAtIndex;\n } else if (\n clone[index] === firstMarkValue &&\n clone[otherIndex] === firstMarkValue\n ) {\n clone[index] = currentAtIndex;\n } else if (clone[index] === clone[otherIndex]) {\n if (currentAtIndex > clone[otherIndex]) {\n clone[otherIndex] = getPreviousMarkValue(\n clone[index],\n selectableMarks\n );\n } else {\n clone[otherIndex] = getNextMarkValue(clone[index], selectableMarks);\n }\n }\n }\n } else {\n const safeMinRange = Number.isFinite(minRange) ? Math.max(minRange, 0) : 0;\n const safeMaxRange = Number.isFinite(maxRange)\n ? Math.max(maxRange, safeMinRange)\n : Number.POSITIVE_INFINITY;\n\n if (resolvedActiveIndex === 0) {\n const [clamped] = clone;\n\n if (clamped > clone[1] - (safeMinRange - 1e-9)) {\n if (pushOnOverlap) {\n clone[1] = Math.min(clamped + safeMinRange, max);\n } else {\n clone[0] = currentFrom;\n }\n }\n\n if (clamped > clone[1] - (safeMinRange - 1e-9)) {\n if (pushOnOverlap) {\n clone[0] = clone[1] - safeMinRange;\n } else {\n clone[0] = currentFrom;\n }\n }\n\n if (clone[1] - clamped > safeMaxRange) {\n if (pushOnOverlap) {\n clone[1] = clamped + safeMaxRange;\n } else {\n clone[0] = currentFrom;\n }\n }\n }\n\n if (resolvedActiveIndex === 1) {\n const [, clamped] = clone;\n\n if (clamped < clone[0] + safeMinRange) {\n if (pushOnOverlap) {\n clone[0] = Math.max(clamped - safeMinRange, min);\n } else {\n clone[1] = currentTo;\n }\n }\n\n if (clamped < clone[0] + safeMinRange) {\n if (pushOnOverlap) {\n clone[1] = clone[0] + safeMinRange;\n } else {\n clone[1] = currentTo;\n }\n }\n\n if (clamped - clone[0] > safeMaxRange) {\n if (pushOnOverlap) {\n clone[0] = clamped - safeMaxRange;\n } else {\n clone[1] = currentTo;\n }\n }\n }\n }\n\n const rounded: [number, number] = [\n toFloatingValue(clampNumber(clone[0], min, max), precision),\n toFloatingValue(clampNumber(clone[1], min, max), precision),\n ];\n\n if (rounded[0] > rounded[1]) {\n return [rounded[1], rounded[0]];\n }\n\n return rounded;\n};\n","\"use client\";\n\nimport type { Slider as SliderPrimitive } from \"@base-ui/react/slider\";\n\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\n\nimport type { SliderMark } from \"../slider/shared/slider-types\";\nimport type { RangeSliderValue } from \"./range-slider-types\";\n\nimport { normalizeRangeSliderValue } from \"./math/normalize-range-slider-value\";\n\ninterface UseRangeSliderStateOptions {\n defaultValue?: RangeSliderValue;\n domainMax: number;\n domainMin: number;\n marks?: readonly SliderMark[];\n max: number;\n maxRange: number;\n min: number;\n minRange: number;\n onChange?: ((value: RangeSliderValue) => void) | undefined;\n onChangeEnd?: ((value: RangeSliderValue) => void) | undefined;\n precision: number;\n pushOnOverlap: boolean;\n restrictToMarks: boolean;\n value?: RangeSliderValue;\n}\n\nexport const useRangeSliderState = ({\n defaultValue,\n domainMax,\n domainMin,\n marks,\n max,\n maxRange,\n min,\n minRange,\n onChange,\n onChangeEnd,\n precision,\n pushOnOverlap,\n restrictToMarks,\n value,\n}: UseRangeSliderStateOptions) => {\n const initialValue = useMemo(\n () =>\n normalizeRangeSliderValue({\n current: [min, max],\n domainMax,\n domainMin,\n marks,\n max,\n maxRange,\n min,\n minRange,\n precision,\n pushOnOverlap,\n raw: defaultValue ?? [min, max],\n restrictToMarks,\n }),\n [\n defaultValue,\n domainMax,\n domainMin,\n marks,\n max,\n maxRange,\n min,\n minRange,\n precision,\n pushOnOverlap,\n restrictToMarks,\n ]\n );\n\n const [uncontrolledValue, setUncontrolledValue] =\n useState<RangeSliderValue>(initialValue);\n\n const controlledValue = useMemo(() => {\n if (value === undefined) {\n return;\n }\n\n return normalizeRangeSliderValue({\n current: uncontrolledValue,\n domainMax,\n domainMin,\n marks,\n max,\n maxRange,\n min,\n minRange,\n precision,\n pushOnOverlap,\n raw: value,\n restrictToMarks,\n });\n }, [\n domainMax,\n domainMin,\n marks,\n max,\n maxRange,\n min,\n minRange,\n precision,\n pushOnOverlap,\n restrictToMarks,\n uncontrolledValue,\n value,\n ]);\n\n const rangeValue = controlledValue ?? uncontrolledValue;\n const valueRef = useRef<RangeSliderValue>(rangeValue);\n\n useEffect(() => {\n valueRef.current = rangeValue;\n }, [rangeValue]);\n\n useEffect(() => {\n if (value !== undefined) {\n return;\n }\n\n setUncontrolledValue((previous) =>\n normalizeRangeSliderValue({\n current: previous,\n domainMax,\n domainMin,\n marks,\n max,\n maxRange,\n min,\n minRange,\n precision,\n pushOnOverlap,\n raw: previous,\n restrictToMarks,\n })\n );\n }, [\n domainMax,\n domainMin,\n marks,\n max,\n maxRange,\n min,\n minRange,\n precision,\n pushOnOverlap,\n restrictToMarks,\n value,\n ]);\n\n const handleValueChange = useCallback(\n (\n nextValue: number | number[],\n eventDetails: SliderPrimitive.Root.ChangeEventDetails\n ) => {\n const rawValues = Array.isArray(nextValue)\n ? [\n nextValue[0] ?? valueRef.current[0],\n nextValue[1] ?? valueRef.current[1],\n ]\n : [nextValue, valueRef.current[1]];\n\n const normalizedValue = normalizeRangeSliderValue({\n activeThumbIndex: eventDetails.activeThumbIndex,\n current: valueRef.current,\n domainMax,\n domainMin,\n marks,\n max,\n maxRange,\n min,\n minRange,\n precision,\n pushOnOverlap,\n raw: rawValues,\n reason: eventDetails.reason,\n restrictToMarks,\n });\n\n valueRef.current = normalizedValue;\n\n if (value === undefined) {\n setUncontrolledValue(normalizedValue);\n }\n\n onChange?.(normalizedValue);\n },\n [\n domainMax,\n domainMin,\n marks,\n max,\n maxRange,\n min,\n minRange,\n onChange,\n precision,\n pushOnOverlap,\n restrictToMarks,\n value,\n ]\n );\n\n const handleValueCommitted = useCallback(() => {\n onChangeEnd?.(valueRef.current);\n }, [onChangeEnd]);\n\n return {\n handleValueChange,\n handleValueCommitted,\n rangeValue,\n };\n};\n","\"use client\";\n\nimport type { ComponentPropsWithoutRef, ReactNode } from \"react\";\n\nimport { Slider as SliderPrimitive } from \"@base-ui/react/slider\";\n\nimport type {\n SliderRadius,\n SliderSize,\n} from \"../slider/shared/slider-style-tokens\";\nimport type { SliderLabelTransitionProps } from \"../slider/shared/slider-transition\";\nimport type {\n SliderLabel,\n SliderMark as SliderMarkType,\n} from \"../slider/shared/slider-types\";\nimport type { RangeSliderValue } from \"./range-slider-types\";\n\nimport { toFloatingValue } from \"../slider/math/slider-math-utils\";\nimport { SliderControl } from \"../slider/primitives/slider-control\";\nimport { SliderIndicator } from \"../slider/primitives/slider-indicator\";\nimport { SliderMark } from \"../slider/primitives/slider-mark\";\nimport { SliderMarks } from \"../slider/primitives/slider-marks\";\nimport {\n SliderThumb,\n type SliderThumbProps,\n} from \"../slider/primitives/slider-thumb\";\nimport { SliderThumbLabel } from \"../slider/primitives/slider-thumb-label\";\nimport { SliderTrack } from \"../slider/primitives/slider-track\";\nimport { SliderValue as SliderValuePrimitive } from \"../slider/primitives/slider-value\";\nimport { resolveSliderBounds } from \"../slider/shared/slider-bounds\";\nimport { resolveSliderLabel } from \"../slider/shared/slider-label\";\nimport {\n mergeSliderRootStyle,\n resolveSliderRootClassName,\n} from \"../slider/shared/slider-root-presentation\";\nimport {\n getMinStepsBetweenValues,\n getThumbChildrenByIndex,\n} from \"./range-slider-helpers\";\nimport { useRangeSliderState } from \"./use-range-slider-state\";\n\ntype RangeSliderRootProps = Omit<\n SliderPrimitive.Root.Props<number[]>,\n | \"defaultValue\"\n | \"max\"\n | \"min\"\n | \"minStepsBetweenValues\"\n | \"name\"\n | \"onChange\"\n | \"onValueChange\"\n | \"onValueCommitted\"\n | \"thumbAlignment\"\n | \"thumbCollisionBehavior\"\n | \"value\"\n>;\n\nexport interface RangeSliderProps extends RangeSliderRootProps {\n color?: string;\n defaultValue?: RangeSliderValue;\n domain?: [number, number];\n hiddenInputProps?: Omit<\n ComponentPropsWithoutRef<\"input\">,\n \"name\" | \"type\" | \"value\"\n >;\n inverted?: boolean;\n label?: SliderLabel;\n labelAlwaysOn?: boolean;\n labelTransitionProps?: SliderLabelTransitionProps;\n marks?: readonly SliderMarkType[];\n max?: number;\n maxRange?: number;\n min?: number;\n minRange?: number;\n name?: string;\n onChange?: ((value: RangeSliderValue) => void) | undefined;\n onChangeEnd?: ((value: RangeSliderValue) => void) | undefined;\n precision?: number;\n pushOnOverlap?: boolean;\n radius?: SliderRadius;\n restrictToMarks?: boolean;\n scale?: ((value: number) => number) | undefined;\n size?: SliderSize;\n showLabelOnHover?: boolean;\n step?: number;\n thumbChildren?: ReactNode | [ReactNode, ReactNode];\n thumbFromLabel?: string;\n thumbLabelOffset?: number | string;\n thumbLabelOffsetVertical?: number | string;\n thumbProps?:\n | ((\n index: 0 | 1\n ) => Omit<SliderThumbProps, \"aria-label\" | \"children\" | \"index\">)\n | undefined;\n thumbSize?: number | string;\n thumbToLabel?: string;\n trackSize?: number | string;\n markSize?: number | string;\n value?: RangeSliderValue;\n}\n\ntype RangeSliderComponent = ((props: RangeSliderProps) => ReactNode) & {\n Control: typeof SliderControl;\n Indicator: typeof SliderIndicator;\n Mark: typeof SliderMark;\n Marks: typeof SliderMarks;\n Thumb: typeof SliderThumb;\n ThumbLabel: typeof SliderThumbLabel;\n Track: typeof SliderTrack;\n Value: typeof SliderValuePrimitive;\n};\n\nconst RangeSlider = (({\n className,\n children,\n color,\n defaultValue,\n domain,\n hiddenInputProps,\n inverted = false,\n label = (value) => value,\n labelAlwaysOn = false,\n labelTransitionProps,\n marks,\n max = 100,\n maxRange = Number.POSITIVE_INFINITY,\n min = 0,\n minRange = 10,\n name,\n onChange,\n onChangeEnd,\n precision: precisionProp,\n pushOnOverlap = true,\n radius,\n restrictToMarks = false,\n scale = (value) => value,\n size,\n showLabelOnHover = true,\n step = 1,\n style,\n thumbChildren,\n thumbFromLabel,\n thumbLabelOffset,\n thumbLabelOffsetVertical,\n thumbProps,\n thumbSize,\n thumbToLabel,\n trackSize,\n markSize,\n value,\n ...props\n}: RangeSliderProps) => {\n const resolvedBounds = resolveSliderBounds({\n domain,\n max,\n min,\n precision: precisionProp,\n step,\n });\n\n const {\n domainMax,\n domainMin,\n max: normalizedMax,\n min: normalizedMin,\n precision,\n } = resolvedBounds;\n\n const { handleValueChange, handleValueCommitted, rangeValue } =\n useRangeSliderState({\n defaultValue,\n domainMax,\n domainMin,\n marks,\n max: normalizedMax,\n maxRange,\n min: normalizedMin,\n minRange,\n onChange,\n onChangeEnd,\n precision,\n pushOnOverlap,\n restrictToMarks,\n value,\n });\n\n const firstThumbProps = thumbProps?.(0) ?? {};\n const secondThumbProps = thumbProps?.(1) ?? {};\n\n const minStepsBetweenValues = getMinStepsBetweenValues({\n minRange,\n restrictToMarks,\n step,\n });\n\n const displayedFromValue = toFloatingValue(scale(rangeValue[0]), precision);\n const displayedToValue = toFloatingValue(scale(rangeValue[1]), precision);\n\n return (\n <SliderPrimitive.Root\n {...props}\n className={resolveSliderRootClassName(className, inverted)}\n data-slot=\"slider\"\n max={domainMax}\n min={domainMin}\n minStepsBetweenValues={minStepsBetweenValues}\n onValueChange={handleValueChange}\n onValueCommitted={handleValueCommitted}\n step={step}\n style={mergeSliderRootStyle(\n {\n color,\n markSize,\n radius,\n size,\n thumbLabelOffset,\n thumbLabelOffsetVertical,\n thumbSize,\n trackSize,\n },\n style\n )}\n thumbAlignment=\"center\"\n thumbCollisionBehavior={pushOnOverlap ? \"push\" : \"none\"}\n value={rangeValue}\n >\n {children ?? (\n <SliderControl>\n <SliderTrack>\n <SliderIndicator />\n <SliderMarks\n disabled={props.disabled}\n inverted={inverted}\n marks={marks}\n max={domainMax}\n min={domainMin}\n orientation={props.orientation}\n values={rangeValue}\n />\n </SliderTrack>\n <SliderThumb\n {...firstThumbProps}\n aria-label={thumbFromLabel}\n index={0}\n >\n {getThumbChildrenByIndex(thumbChildren, 0)}\n <SliderThumbLabel\n label={resolveSliderLabel(label, displayedFromValue)}\n labelAlwaysOn={labelAlwaysOn}\n orientation={props.orientation}\n showLabelOnHover={showLabelOnHover}\n transitionProps={labelTransitionProps}\n />\n </SliderThumb>\n <SliderThumb\n {...secondThumbProps}\n aria-label={thumbToLabel}\n index={1}\n >\n {getThumbChildrenByIndex(thumbChildren, 1)}\n <SliderThumbLabel\n label={resolveSliderLabel(label, displayedToValue)}\n labelAlwaysOn={labelAlwaysOn}\n orientation={props.orientation}\n showLabelOnHover={showLabelOnHover}\n transitionProps={labelTransitionProps}\n />\n </SliderThumb>\n </SliderControl>\n )}\n {name ? (\n <>\n <input\n {...hiddenInputProps}\n name={`${name}_from`}\n type=\"hidden\"\n value={String(displayedFromValue)}\n />\n <input\n {...hiddenInputProps}\n name={`${name}_to`}\n type=\"hidden\"\n value={String(displayedToValue)}\n />\n </>\n ) : null}\n </SliderPrimitive.Root>\n );\n}) as RangeSliderComponent;\n\nRangeSlider.Control = SliderControl;\nRangeSlider.Indicator = SliderIndicator;\nRangeSlider.Mark = SliderMark;\nRangeSlider.Marks = SliderMarks;\nRangeSlider.Thumb = SliderThumb;\nRangeSlider.ThumbLabel = SliderThumbLabel;\nRangeSlider.Track = SliderTrack;\nRangeSlider.Value = SliderValuePrimitive;\n\nexport { RangeSlider };\n"],"mappings":"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"}
1
+ {"version":3,"file":"range-slider.js","names":["SliderPrimitive","SliderValuePrimitive"],"sources":["../../src/ui/range-slider/range-slider-helpers.ts","../../src/ui/range-slider/math/normalize-range-slider-value.ts","../../src/ui/range-slider/use-range-slider-state.ts","../../src/ui/range-slider/range-slider.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\n\nconst MIN_STEP_TOLERANCE_MULTIPLIER = 10;\n\nexport const getMinStepsBetweenValues = ({\n minRange,\n restrictToMarks,\n step,\n}: {\n minRange: number;\n restrictToMarks: boolean;\n step: number;\n}) => {\n if (restrictToMarks || step <= 0 || !Number.isFinite(minRange)) {\n return;\n }\n\n const steps = minRange / step;\n if (!Number.isFinite(steps) || steps < 0) {\n return;\n }\n\n const roundedSteps = Math.round(steps);\n return Math.abs(steps - roundedSteps) <\n Number.EPSILON * MIN_STEP_TOLERANCE_MULTIPLIER\n ? roundedSteps\n : undefined;\n};\n\nexport const getThumbChildrenByIndex = (\n thumbChildren: ReactNode | [ReactNode, ReactNode] | undefined,\n index: 0 | 1\n) => {\n if (!Array.isArray(thumbChildren)) {\n return thumbChildren;\n }\n\n return thumbChildren[index];\n};\n","import {\n clampNumber,\n getFirstMarkValue,\n getLastMarkValue,\n getNearestMarkValue,\n getNextMarkValue,\n getPreviousMarkValue,\n getSortedSelectableMarks,\n isKeyboardLikeReason,\n toFloatingValue,\n} from \"../../slider/math/slider-math-utils\";\nimport type { SliderMark } from \"../../slider/shared/slider-types\";\n\ninterface NormalizeRangeSliderValueOptions {\n activeThumbIndex?: number;\n current: readonly number[];\n domainMax: number;\n domainMin: number;\n marks?: readonly SliderMark[];\n max: number;\n maxRange: number;\n min: number;\n minRange: number;\n precision: number;\n pushOnOverlap: boolean;\n raw: readonly number[];\n reason?: string;\n restrictToMarks?: boolean;\n}\n\nconst getResolvedActiveThumbIndex = (\n current: readonly number[],\n raw: readonly number[],\n activeThumbIndex?: number\n) => {\n if (activeThumbIndex === 0 || activeThumbIndex === 1) {\n return activeThumbIndex;\n }\n\n const currentFrom = current[0] ?? 0;\n const currentTo = current[1] ?? 0;\n const rawFrom = raw[0] ?? currentFrom;\n const rawTo = raw[1] ?? currentTo;\n\n return Math.abs(rawFrom - currentFrom) >= Math.abs(rawTo - currentTo) ? 0 : 1;\n};\n\nexport const normalizeRangeSliderValue = ({\n activeThumbIndex,\n current,\n domainMax,\n domainMin,\n marks,\n max,\n maxRange,\n min,\n minRange,\n precision,\n pushOnOverlap,\n raw,\n reason,\n restrictToMarks,\n}: NormalizeRangeSliderValueOptions): [number, number] => {\n const currentFrom = clampNumber(current[0] ?? min, min, max);\n const currentTo = clampNumber(current[1] ?? max, min, max);\n const currentValues: [number, number] = [currentFrom, currentTo];\n\n const clampedRawFrom = clampNumber(\n raw[0] ?? currentFrom,\n domainMin,\n domainMax\n );\n const clampedRawTo = clampNumber(raw[1] ?? currentTo, domainMin, domainMax);\n\n const resolvedActiveIndex = getResolvedActiveThumbIndex(\n [currentFrom, currentTo],\n [clampedRawFrom, clampedRawTo],\n activeThumbIndex\n );\n\n const clone: [number, number] = [\n clampNumber(clampedRawFrom, min, max),\n clampNumber(clampedRawTo, min, max),\n ];\n\n if (restrictToMarks) {\n const selectableMarks = getSortedSelectableMarks(marks, min, max);\n if (selectableMarks.length) {\n const firstMarkValue = getFirstMarkValue(selectableMarks, min);\n const lastMarkValue = getLastMarkValue(selectableMarks, max);\n const index = resolvedActiveIndex;\n const otherIndex = index === 0 ? 1 : 0;\n const currentAtIndex = currentValues[index];\n const rawAtIndex = index === 0 ? clampedRawFrom : clampedRawTo;\n\n if (isKeyboardLikeReason(reason)) {\n if (rawAtIndex <= min) {\n clone[index] = firstMarkValue;\n } else if (rawAtIndex >= max) {\n clone[index] = lastMarkValue;\n } else if (rawAtIndex > currentAtIndex) {\n clone[index] = getNextMarkValue(currentAtIndex, selectableMarks);\n } else if (rawAtIndex < currentAtIndex) {\n clone[index] = getPreviousMarkValue(currentAtIndex, selectableMarks);\n } else {\n clone[index] = getNearestMarkValue(rawAtIndex, selectableMarks);\n }\n } else {\n clone[index] = getNearestMarkValue(rawAtIndex, selectableMarks);\n }\n\n if (\n clone[index] === lastMarkValue &&\n clone[otherIndex] === lastMarkValue\n ) {\n clone[index] = currentAtIndex;\n } else if (\n clone[index] === firstMarkValue &&\n clone[otherIndex] === firstMarkValue\n ) {\n clone[index] = currentAtIndex;\n } else if (clone[index] === clone[otherIndex]) {\n clone[otherIndex] =\n currentAtIndex > clone[otherIndex]\n ? getPreviousMarkValue(clone[index], selectableMarks)\n : getNextMarkValue(clone[index], selectableMarks);\n }\n }\n } else {\n const safeMinRange = Number.isFinite(minRange) ? Math.max(minRange, 0) : 0;\n const safeMaxRange = Number.isFinite(maxRange)\n ? Math.max(maxRange, safeMinRange)\n : Number.POSITIVE_INFINITY;\n\n if (resolvedActiveIndex === 0) {\n const [clamped] = clone;\n\n if (clamped > clone[1] - (safeMinRange - 1e-9)) {\n if (pushOnOverlap) {\n clone[1] = Math.min(clamped + safeMinRange, max);\n } else {\n clone[0] = currentFrom;\n }\n }\n\n if (clamped > clone[1] - (safeMinRange - 1e-9)) {\n clone[0] = pushOnOverlap ? clone[1] - safeMinRange : currentFrom;\n }\n\n if (clone[1] - clamped > safeMaxRange) {\n if (pushOnOverlap) {\n clone[1] = clamped + safeMaxRange;\n } else {\n clone[0] = currentFrom;\n }\n }\n }\n\n if (resolvedActiveIndex === 1) {\n const [, clamped] = clone;\n\n if (clamped < clone[0] + safeMinRange) {\n if (pushOnOverlap) {\n clone[0] = Math.max(clamped - safeMinRange, min);\n } else {\n clone[1] = currentTo;\n }\n }\n\n if (clamped < clone[0] + safeMinRange) {\n clone[1] = pushOnOverlap ? clone[0] + safeMinRange : currentTo;\n }\n\n if (clamped - clone[0] > safeMaxRange) {\n if (pushOnOverlap) {\n clone[0] = clamped - safeMaxRange;\n } else {\n clone[1] = currentTo;\n }\n }\n }\n }\n\n const rounded: [number, number] = [\n toFloatingValue(clampNumber(clone[0], min, max), precision),\n toFloatingValue(clampNumber(clone[1], min, max), precision),\n ];\n\n if (rounded[0] > rounded[1]) {\n return [rounded[1], rounded[0]];\n }\n\n return rounded;\n};\n","\"use client\";\n\nimport type { Slider as SliderPrimitive } from \"@base-ui/react/slider\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\n\nimport type { SliderMark } from \"../slider/shared/slider-types\";\nimport { normalizeRangeSliderValue } from \"./math/normalize-range-slider-value\";\nimport type { RangeSliderValue } from \"./range-slider-types\";\n\ninterface UseRangeSliderStateOptions {\n defaultValue?: RangeSliderValue;\n domainMax: number;\n domainMin: number;\n marks?: readonly SliderMark[];\n max: number;\n maxRange: number;\n min: number;\n minRange: number;\n onChange?: ((value: RangeSliderValue) => void) | undefined;\n onChangeEnd?: ((value: RangeSliderValue) => void) | undefined;\n precision: number;\n pushOnOverlap: boolean;\n restrictToMarks: boolean;\n value?: RangeSliderValue;\n}\n\nexport const useRangeSliderState = ({\n defaultValue,\n domainMax,\n domainMin,\n marks,\n max,\n maxRange,\n min,\n minRange,\n onChange,\n onChangeEnd,\n precision,\n pushOnOverlap,\n restrictToMarks,\n value,\n}: UseRangeSliderStateOptions) => {\n const initialValue = useMemo(\n () =>\n normalizeRangeSliderValue({\n current: [min, max],\n domainMax,\n domainMin,\n marks,\n max,\n maxRange,\n min,\n minRange,\n precision,\n pushOnOverlap,\n raw: defaultValue ?? [min, max],\n restrictToMarks,\n }),\n [\n defaultValue,\n domainMax,\n domainMin,\n marks,\n max,\n maxRange,\n min,\n minRange,\n precision,\n pushOnOverlap,\n restrictToMarks,\n ]\n );\n\n const [uncontrolledValue, setUncontrolledValue] =\n useState<RangeSliderValue>(initialValue);\n\n const controlledValue = useMemo(() => {\n if (value === undefined) {\n return;\n }\n\n return normalizeRangeSliderValue({\n current: uncontrolledValue,\n domainMax,\n domainMin,\n marks,\n max,\n maxRange,\n min,\n minRange,\n precision,\n pushOnOverlap,\n raw: value,\n restrictToMarks,\n });\n }, [\n domainMax,\n domainMin,\n marks,\n max,\n maxRange,\n min,\n minRange,\n precision,\n pushOnOverlap,\n restrictToMarks,\n uncontrolledValue,\n value,\n ]);\n\n const rangeValue = controlledValue ?? uncontrolledValue;\n const valueRef = useRef<RangeSliderValue>(rangeValue);\n\n useEffect(() => {\n valueRef.current = rangeValue;\n }, [rangeValue]);\n\n useEffect(() => {\n if (value !== undefined) {\n return;\n }\n\n setUncontrolledValue((previous) =>\n normalizeRangeSliderValue({\n current: previous,\n domainMax,\n domainMin,\n marks,\n max,\n maxRange,\n min,\n minRange,\n precision,\n pushOnOverlap,\n raw: previous,\n restrictToMarks,\n })\n );\n }, [\n domainMax,\n domainMin,\n marks,\n max,\n maxRange,\n min,\n minRange,\n precision,\n pushOnOverlap,\n restrictToMarks,\n value,\n ]);\n\n const handleValueChange = useCallback(\n (\n nextValue: number | number[],\n eventDetails: SliderPrimitive.Root.ChangeEventDetails\n ) => {\n const rawValues = Array.isArray(nextValue)\n ? [\n nextValue[0] ?? valueRef.current[0],\n nextValue[1] ?? valueRef.current[1],\n ]\n : [nextValue, valueRef.current[1]];\n\n const normalizedValue = normalizeRangeSliderValue({\n activeThumbIndex: eventDetails.activeThumbIndex,\n current: valueRef.current,\n domainMax,\n domainMin,\n marks,\n max,\n maxRange,\n min,\n minRange,\n precision,\n pushOnOverlap,\n raw: rawValues,\n reason: eventDetails.reason,\n restrictToMarks,\n });\n\n valueRef.current = normalizedValue;\n\n if (value === undefined) {\n setUncontrolledValue(normalizedValue);\n }\n\n onChange?.(normalizedValue);\n },\n [\n domainMax,\n domainMin,\n marks,\n max,\n maxRange,\n min,\n minRange,\n onChange,\n precision,\n pushOnOverlap,\n restrictToMarks,\n value,\n ]\n );\n\n const handleValueCommitted = useCallback(() => {\n onChangeEnd?.(valueRef.current);\n }, [onChangeEnd]);\n\n return {\n handleValueChange,\n handleValueCommitted,\n rangeValue,\n };\n};\n","\"use client\";\n\nimport { Slider as SliderPrimitive } from \"@base-ui/react/slider\";\nimport type { ComponentPropsWithoutRef, ReactNode } from \"react\";\n\nimport { toFloatingValue } from \"../slider/math/slider-math-utils\";\nimport { SliderControl } from \"../slider/primitives/slider-control\";\nimport { SliderIndicator } from \"../slider/primitives/slider-indicator\";\nimport { SliderMark } from \"../slider/primitives/slider-mark\";\nimport { SliderMarks } from \"../slider/primitives/slider-marks\";\nimport { SliderThumb } from \"../slider/primitives/slider-thumb\";\nimport type { SliderThumbProps } from \"../slider/primitives/slider-thumb\";\nimport { SliderThumbLabel } from \"../slider/primitives/slider-thumb-label\";\nimport { SliderTrack } from \"../slider/primitives/slider-track\";\nimport { SliderValue as SliderValuePrimitive } from \"../slider/primitives/slider-value\";\nimport { resolveSliderBounds } from \"../slider/shared/slider-bounds\";\nimport { resolveSliderLabel } from \"../slider/shared/slider-label\";\nimport {\n mergeSliderRootStyle,\n resolveSliderRootClassName,\n} from \"../slider/shared/slider-root-presentation\";\nimport type {\n SliderRadius,\n SliderSize,\n} from \"../slider/shared/slider-style-tokens\";\nimport type { SliderLabelTransitionProps } from \"../slider/shared/slider-transition\";\nimport type {\n SliderLabel,\n SliderMark as SliderMarkType,\n} from \"../slider/shared/slider-types\";\nimport {\n getMinStepsBetweenValues,\n getThumbChildrenByIndex,\n} from \"./range-slider-helpers\";\nimport type { RangeSliderValue } from \"./range-slider-types\";\nimport { useRangeSliderState } from \"./use-range-slider-state\";\n\ntype RangeSliderRootProps = Omit<\n SliderPrimitive.Root.Props<number[]>,\n | \"defaultValue\"\n | \"max\"\n | \"min\"\n | \"minStepsBetweenValues\"\n | \"name\"\n | \"onChange\"\n | \"onValueChange\"\n | \"onValueCommitted\"\n | \"thumbAlignment\"\n | \"thumbCollisionBehavior\"\n | \"value\"\n>;\n\nexport interface RangeSliderProps extends RangeSliderRootProps {\n color?: string;\n defaultValue?: RangeSliderValue;\n domain?: [number, number];\n hiddenInputProps?: Omit<\n ComponentPropsWithoutRef<\"input\">,\n \"name\" | \"type\" | \"value\"\n >;\n inverted?: boolean;\n label?: SliderLabel;\n labelAlwaysOn?: boolean;\n labelTransitionProps?: SliderLabelTransitionProps;\n marks?: readonly SliderMarkType[];\n max?: number;\n maxRange?: number;\n min?: number;\n minRange?: number;\n name?: string;\n onChange?: ((value: RangeSliderValue) => void) | undefined;\n onChangeEnd?: ((value: RangeSliderValue) => void) | undefined;\n precision?: number;\n pushOnOverlap?: boolean;\n radius?: SliderRadius;\n restrictToMarks?: boolean;\n scale?: ((value: number) => number) | undefined;\n size?: SliderSize;\n showLabelOnHover?: boolean;\n step?: number;\n thumbChildren?: ReactNode | [ReactNode, ReactNode];\n thumbFromLabel?: string;\n thumbLabelOffset?: number | string;\n thumbLabelOffsetVertical?: number | string;\n thumbProps?:\n | ((\n index: 0 | 1\n ) => Omit<SliderThumbProps, \"aria-label\" | \"children\" | \"index\">)\n | undefined;\n thumbSize?: number | string;\n thumbToLabel?: string;\n trackSize?: number | string;\n markSize?: number | string;\n value?: RangeSliderValue;\n}\n\ntype RangeSliderComponent = ((props: RangeSliderProps) => ReactNode) & {\n Control: typeof SliderControl;\n Indicator: typeof SliderIndicator;\n Mark: typeof SliderMark;\n Marks: typeof SliderMarks;\n Thumb: typeof SliderThumb;\n ThumbLabel: typeof SliderThumbLabel;\n Track: typeof SliderTrack;\n Value: typeof SliderValuePrimitive;\n};\n\nconst RangeSlider = (({\n className,\n children,\n color,\n defaultValue,\n domain,\n hiddenInputProps,\n inverted = false,\n label = (value) => value,\n labelAlwaysOn = false,\n labelTransitionProps,\n marks,\n max = 100,\n maxRange = Number.POSITIVE_INFINITY,\n min = 0,\n minRange = 10,\n name,\n onChange,\n onChangeEnd,\n precision: precisionProp,\n pushOnOverlap = true,\n radius,\n restrictToMarks = false,\n scale = (value) => value,\n size,\n showLabelOnHover = true,\n step = 1,\n style,\n thumbChildren,\n thumbFromLabel,\n thumbLabelOffset,\n thumbLabelOffsetVertical,\n thumbProps,\n thumbSize,\n thumbToLabel,\n trackSize,\n markSize,\n value,\n ...props\n}: RangeSliderProps) => {\n const resolvedBounds = resolveSliderBounds({\n domain,\n max,\n min,\n precision: precisionProp,\n step,\n });\n\n const {\n domainMax,\n domainMin,\n max: normalizedMax,\n min: normalizedMin,\n precision,\n } = resolvedBounds;\n\n const { handleValueChange, handleValueCommitted, rangeValue } =\n useRangeSliderState({\n defaultValue,\n domainMax,\n domainMin,\n marks,\n max: normalizedMax,\n maxRange,\n min: normalizedMin,\n minRange,\n onChange,\n onChangeEnd,\n precision,\n pushOnOverlap,\n restrictToMarks,\n value,\n });\n\n const firstThumbProps = thumbProps?.(0) ?? {};\n const secondThumbProps = thumbProps?.(1) ?? {};\n\n const minStepsBetweenValues = getMinStepsBetweenValues({\n minRange,\n restrictToMarks,\n step,\n });\n\n const displayedFromValue = toFloatingValue(scale(rangeValue[0]), precision);\n const displayedToValue = toFloatingValue(scale(rangeValue[1]), precision);\n\n return (\n <SliderPrimitive.Root\n {...props}\n className={resolveSliderRootClassName(className, inverted)}\n data-slot=\"slider\"\n max={domainMax}\n min={domainMin}\n minStepsBetweenValues={minStepsBetweenValues}\n onValueChange={handleValueChange}\n onValueCommitted={handleValueCommitted}\n step={step}\n style={mergeSliderRootStyle(\n {\n color,\n markSize,\n radius,\n size,\n thumbLabelOffset,\n thumbLabelOffsetVertical,\n thumbSize,\n trackSize,\n },\n style\n )}\n thumbAlignment=\"center\"\n thumbCollisionBehavior={pushOnOverlap ? \"push\" : \"none\"}\n value={rangeValue}\n >\n {children ?? (\n <SliderControl>\n <SliderTrack>\n <SliderIndicator />\n <SliderMarks\n disabled={props.disabled}\n inverted={inverted}\n marks={marks}\n max={domainMax}\n min={domainMin}\n orientation={props.orientation}\n values={rangeValue}\n />\n </SliderTrack>\n <SliderThumb\n {...firstThumbProps}\n aria-label={thumbFromLabel}\n index={0}\n >\n {getThumbChildrenByIndex(thumbChildren, 0)}\n <SliderThumbLabel\n label={resolveSliderLabel(label, displayedFromValue)}\n labelAlwaysOn={labelAlwaysOn}\n orientation={props.orientation}\n showLabelOnHover={showLabelOnHover}\n transitionProps={labelTransitionProps}\n />\n </SliderThumb>\n <SliderThumb\n {...secondThumbProps}\n aria-label={thumbToLabel}\n index={1}\n >\n {getThumbChildrenByIndex(thumbChildren, 1)}\n <SliderThumbLabel\n label={resolveSliderLabel(label, displayedToValue)}\n labelAlwaysOn={labelAlwaysOn}\n orientation={props.orientation}\n showLabelOnHover={showLabelOnHover}\n transitionProps={labelTransitionProps}\n />\n </SliderThumb>\n </SliderControl>\n )}\n {name ? (\n <>\n <input\n {...hiddenInputProps}\n name={`${name}_from`}\n type=\"hidden\"\n value={String(displayedFromValue)}\n />\n <input\n {...hiddenInputProps}\n name={`${name}_to`}\n type=\"hidden\"\n value={String(displayedToValue)}\n />\n </>\n ) : null}\n </SliderPrimitive.Root>\n );\n}) as RangeSliderComponent;\n\nRangeSlider.Control = SliderControl;\nRangeSlider.Indicator = SliderIndicator;\nRangeSlider.Mark = SliderMark;\nRangeSlider.Marks = SliderMarks;\nRangeSlider.Thumb = SliderThumb;\nRangeSlider.ThumbLabel = SliderThumbLabel;\nRangeSlider.Track = SliderTrack;\nRangeSlider.Value = SliderValuePrimitive;\n\nexport { RangeSlider };\n"],"mappings":"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"}
@@ -5,40 +5,40 @@ import { VariantProps } from "tailwind-variants";
5
5
 
6
6
  //#region src/ui/rating/rating-star.d.ts
7
7
  declare const ratingStarVariants: tailwind_variants0.TVReturnType<{
8
+ editable: {
9
+ false: string[];
10
+ true: string[];
11
+ };
8
12
  size: {
9
- xs: string[];
10
- sm: string[];
11
- md: string[];
12
13
  lg: string[];
14
+ md: string[];
15
+ sm: string[];
13
16
  xl: string[];
17
+ xs: string[];
14
18
  };
19
+ }, undefined, string[], {
15
20
  editable: {
16
- true: string[];
17
21
  false: string[];
22
+ true: string[];
18
23
  };
19
- }, undefined, string[], {
20
24
  size: {
21
- xs: string[];
22
- sm: string[];
23
- md: string[];
24
25
  lg: string[];
26
+ md: string[];
27
+ sm: string[];
25
28
  xl: string[];
29
+ xs: string[];
26
30
  };
31
+ }, undefined, tailwind_variants0.TVReturnType<{
27
32
  editable: {
28
- true: string[];
29
33
  false: string[];
34
+ true: string[];
30
35
  };
31
- }, undefined, tailwind_variants0.TVReturnType<{
32
36
  size: {
33
- xs: string[];
34
- sm: string[];
35
- md: string[];
36
37
  lg: string[];
38
+ md: string[];
39
+ sm: string[];
37
40
  xl: string[];
38
- };
39
- editable: {
40
- true: string[];
41
- false: string[];
41
+ xs: string[];
42
42
  };
43
43
  }, undefined, string[], unknown, unknown, undefined>>;
44
44
  type RatingStarVariants = VariantProps<typeof ratingStarVariants>;
@@ -63,52 +63,52 @@ declare const RatingStar: ({
63
63
  //#region src/ui/rating/rating.d.ts
64
64
  declare const ratingVariants: tailwind_variants0.TVReturnType<{
65
65
  size: {
66
- xs: string[];
67
- sm: string[];
68
- md: string[];
69
66
  lg: string[];
67
+ md: string[];
68
+ sm: string[];
70
69
  xl: string[];
70
+ xs: string[];
71
71
  };
72
72
  }, undefined, string[], {
73
73
  size: {
74
- xs: string[];
75
- sm: string[];
76
- md: string[];
77
74
  lg: string[];
75
+ md: string[];
76
+ sm: string[];
78
77
  xl: string[];
78
+ xs: string[];
79
79
  };
80
80
  }, undefined, tailwind_variants0.TVReturnType<{
81
81
  size: {
82
- xs: string[];
83
- sm: string[];
84
- md: string[];
85
82
  lg: string[];
83
+ md: string[];
84
+ sm: string[];
86
85
  xl: string[];
86
+ xs: string[];
87
87
  };
88
88
  }, undefined, string[], unknown, unknown, undefined>>;
89
89
  declare const ratingValueVariants: tailwind_variants0.TVReturnType<{
90
90
  size: {
91
- xs: string[];
92
- sm: string[];
93
- md: string[];
94
91
  lg: string[];
92
+ md: string[];
93
+ sm: string[];
95
94
  xl: string[];
95
+ xs: string[];
96
96
  };
97
97
  }, undefined, string[], {
98
98
  size: {
99
- xs: string[];
100
- sm: string[];
101
- md: string[];
102
99
  lg: string[];
100
+ md: string[];
101
+ sm: string[];
103
102
  xl: string[];
103
+ xs: string[];
104
104
  };
105
105
  }, undefined, tailwind_variants0.TVReturnType<{
106
106
  size: {
107
- xs: string[];
108
- sm: string[];
109
- md: string[];
110
107
  lg: string[];
108
+ md: string[];
109
+ sm: string[];
111
110
  xl: string[];
111
+ xs: string[];
112
112
  };
113
113
  }, undefined, string[], unknown, unknown, undefined>>;
114
114
  type RatingVariants = VariantProps<typeof ratingVariants>;
@@ -1 +1 @@
1
- {"version":3,"file":"rating.d.ts","names":[],"sources":["../../src/ui/rating/rating-star.tsx","../../src/ui/rating/rating.tsx"],"mappings":";;;;;;cAQa,kBAAA,EA+CX,kBAAA,CA/C6B,YAAA;;;;;;;;;;;;;;;;;;;;;;;;cA+C7B,kBAAA,CAAA,YAAA;;;;;;;;;;;;;KA0EG,kBAAA,GAAqB,YAAA,QAAoB,kBAAA;AAAA,KAElC,eAAA,GAAkB,kBAAA,GAC5B,cAAA;EACE,MAAA;EACA,UAAA;EACA,MAAA;EACA,aAAA;AAAA;AAAA,cAGS,UAAA;EAAc,SAAA;EAAA,IAAA;EAAA,MAAA;EAAA,UAAA;EAAA,MAAA;EAAA,QAAA;EAAA,aAAA;EAAA,OAAA;EAAA,GAAA;AAAA,GAUxB,eAAA,KAAe,kBAAA,CAAA,GAAA,CAAA,OAAA;;;cC5IL,cAAA,EAgCX,kBAAA,CAhCyB,YAAA;;;;;;;;;;;;;;;;cAgCzB,kBAAA,CAAA,YAAA;;;;;;;;;cAEW,mBAAA,EAgCX,kBAAA,CAhC8B,YAAA;;;;;;;;;;;;;;;;cAgC9B,kBAAA,CAAA,YAAA;;;;;;;;;KAEG,cAAA,GAAiB,YAAA,QAAoB,cAAA;AAAA,KAE9B,WAAA,GAAc,cAAA,GACxB,IAAA,CAAK,cAAA;EACH,MAAA;EACA,SAAA;EACA,SAAA;EACA,QAAA;EACA,cAAA,IAAkB,MAAA;EAClB,aAAA;AAAA;AAAA,cAGE,MAAA;EAAA;;;;;;;;;;KAUH,WAAA,GAAW,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"rating.d.ts","names":[],"sources":["../../src/ui/rating/rating-star.tsx","../../src/ui/rating/rating.tsx"],"mappings":";;;;;;cAUa,kBAAA,EA+CX,kBAAA,CA/C6B,YAAA;;;;;;;;;;;;;;;;;;;;;;;;cA+C7B,kBAAA,CAAA,YAAA;;;;;;;;;;;;;KA0EG,kBAAA,GAAqB,YAAA,QAAoB,kBAAA;AAAA,KAElC,eAAA,GAAkB,kBAAA,GAC5B,cAAA;EACE,MAAA;EACA,UAAA;EACA,MAAA;EACA,aAAA;AAAA;AAAA,cAGS,UAAA;EAAc,SAAA;EAAA,IAAA;EAAA,MAAA;EAAA,UAAA;EAAA,MAAA;EAAA,QAAA;EAAA,aAAA;EAAA,OAAA;EAAA,GAAA;AAAA,GAUxB,eAAA,KAAe,kBAAA,CAAA,GAAA,CAAA,OAAA;;;cC1IL,cAAA,EAgCX,kBAAA,CAhCyB,YAAA;;;;;;;;;;;;;;;;cAgCzB,kBAAA,CAAA,YAAA;;;;;;;;;cAEW,mBAAA,EAgCX,kBAAA,CAhC8B,YAAA;;;;;;;;;;;;;;;;cAgC9B,kBAAA,CAAA,YAAA;;;;;;;;;KAEG,cAAA,GAAiB,YAAA,QAAoB,cAAA;AAAA,KAE9B,WAAA,GAAc,cAAA,GACxB,IAAA,CAAK,cAAA;EACH,MAAA;EACA,SAAA;EACA,SAAA;EACA,QAAA;EACA,cAAA,IAAkB,MAAA;EAClB,aAAA;AAAA;AAAA,cAGE,MAAA;EAAA;;;;;;;;;;KAUH,WAAA,GAAW,kBAAA,CAAA,GAAA,CAAA,OAAA"}