@docyrus/shadcn 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (767) hide show
  1. package/README.md +12 -3
  2. package/dist/base-lyra/accordion.js.map +1 -1
  3. package/dist/base-lyra/alert-dialog.js.map +1 -1
  4. package/dist/base-lyra/alert.js.map +1 -1
  5. package/dist/base-lyra/aspect-ratio.js.map +1 -1
  6. package/dist/base-lyra/avatar.js.map +1 -1
  7. package/dist/base-lyra/badge.js.map +1 -1
  8. package/dist/base-lyra/breadcrumb.js.map +1 -1
  9. package/dist/base-lyra/button-group.js.map +1 -1
  10. package/dist/base-lyra/button.js.map +1 -1
  11. package/dist/base-lyra/calendar.js.map +1 -1
  12. package/dist/base-lyra/card.js.map +1 -1
  13. package/dist/base-lyra/carousel.js.map +1 -1
  14. package/dist/base-lyra/chart.js.map +1 -1
  15. package/dist/base-lyra/checkbox.js.map +1 -1
  16. package/dist/base-lyra/combobox.js.map +1 -1
  17. package/dist/base-lyra/command.js.map +1 -1
  18. package/dist/base-lyra/context-menu.js.map +1 -1
  19. package/dist/base-lyra/dialog.js.map +1 -1
  20. package/dist/base-lyra/drawer.js.map +1 -1
  21. package/dist/base-lyra/dropdown-menu.js.map +1 -1
  22. package/dist/base-lyra/empty.js.map +1 -1
  23. package/dist/base-lyra/field.js.map +1 -1
  24. package/dist/base-lyra/hover-card.js.map +1 -1
  25. package/dist/base-lyra/index.js +8 -6
  26. package/dist/base-lyra/index.js.map +1 -1
  27. package/dist/base-lyra/input-group.js.map +1 -1
  28. package/dist/base-lyra/input-otp.js.map +1 -1
  29. package/dist/base-lyra/input.js.map +1 -1
  30. package/dist/base-lyra/item.js.map +1 -1
  31. package/dist/base-lyra/kbd.js.map +1 -1
  32. package/dist/base-lyra/label.js.map +1 -1
  33. package/dist/base-lyra/menubar.js.map +1 -1
  34. package/dist/base-lyra/native-select.js.map +1 -1
  35. package/dist/base-lyra/navigation-menu.js.map +1 -1
  36. package/dist/base-lyra/pagination.js.map +1 -1
  37. package/dist/base-lyra/popover.js.map +1 -1
  38. package/dist/base-lyra/progress.js.map +1 -1
  39. package/dist/base-lyra/radio-group.js.map +1 -1
  40. package/dist/base-lyra/resizable.js.map +1 -1
  41. package/dist/base-lyra/scroll-area.js.map +1 -1
  42. package/dist/base-lyra/select.js.map +1 -1
  43. package/dist/base-lyra/separator.js.map +1 -1
  44. package/dist/base-lyra/sheet.js.map +1 -1
  45. package/dist/base-lyra/sidebar.js +8 -6
  46. package/dist/base-lyra/sidebar.js.map +1 -1
  47. package/dist/base-lyra/skeleton.js.map +1 -1
  48. package/dist/base-lyra/slider.js.map +1 -1
  49. package/dist/base-lyra/spinner.js.map +1 -1
  50. package/dist/base-lyra/switch.js.map +1 -1
  51. package/dist/base-lyra/table.js.map +1 -1
  52. package/dist/base-lyra/tabs.js.map +1 -1
  53. package/dist/base-lyra/textarea.js.map +1 -1
  54. package/dist/base-lyra/toggle-group.js.map +1 -1
  55. package/dist/base-lyra/toggle.js.map +1 -1
  56. package/dist/base-lyra/tooltip.js.map +1 -1
  57. package/dist/base-maia/accordion.js.map +1 -1
  58. package/dist/base-maia/alert-dialog.js.map +1 -1
  59. package/dist/base-maia/alert.js.map +1 -1
  60. package/dist/base-maia/aspect-ratio.js.map +1 -1
  61. package/dist/base-maia/avatar.js.map +1 -1
  62. package/dist/base-maia/badge.js.map +1 -1
  63. package/dist/base-maia/breadcrumb.js.map +1 -1
  64. package/dist/base-maia/button-group.js.map +1 -1
  65. package/dist/base-maia/button.js.map +1 -1
  66. package/dist/base-maia/calendar.js.map +1 -1
  67. package/dist/base-maia/card.js.map +1 -1
  68. package/dist/base-maia/carousel.js.map +1 -1
  69. package/dist/base-maia/chart.js.map +1 -1
  70. package/dist/base-maia/checkbox.js.map +1 -1
  71. package/dist/base-maia/combobox.js.map +1 -1
  72. package/dist/base-maia/command.js.map +1 -1
  73. package/dist/base-maia/context-menu.js.map +1 -1
  74. package/dist/base-maia/dialog.js.map +1 -1
  75. package/dist/base-maia/drawer.js.map +1 -1
  76. package/dist/base-maia/dropdown-menu.js.map +1 -1
  77. package/dist/base-maia/empty.js.map +1 -1
  78. package/dist/base-maia/field.js.map +1 -1
  79. package/dist/base-maia/hover-card.js.map +1 -1
  80. package/dist/base-maia/index.js +8 -6
  81. package/dist/base-maia/index.js.map +1 -1
  82. package/dist/base-maia/input-group.js.map +1 -1
  83. package/dist/base-maia/input-otp.js.map +1 -1
  84. package/dist/base-maia/input.js.map +1 -1
  85. package/dist/base-maia/item.js.map +1 -1
  86. package/dist/base-maia/kbd.js.map +1 -1
  87. package/dist/base-maia/label.js.map +1 -1
  88. package/dist/base-maia/menubar.js.map +1 -1
  89. package/dist/base-maia/native-select.js.map +1 -1
  90. package/dist/base-maia/navigation-menu.js.map +1 -1
  91. package/dist/base-maia/pagination.js.map +1 -1
  92. package/dist/base-maia/popover.js.map +1 -1
  93. package/dist/base-maia/progress.js.map +1 -1
  94. package/dist/base-maia/radio-group.js.map +1 -1
  95. package/dist/base-maia/resizable.js.map +1 -1
  96. package/dist/base-maia/scroll-area.js.map +1 -1
  97. package/dist/base-maia/select.js.map +1 -1
  98. package/dist/base-maia/separator.js.map +1 -1
  99. package/dist/base-maia/sheet.js.map +1 -1
  100. package/dist/base-maia/sidebar.js +8 -6
  101. package/dist/base-maia/sidebar.js.map +1 -1
  102. package/dist/base-maia/skeleton.js.map +1 -1
  103. package/dist/base-maia/slider.js.map +1 -1
  104. package/dist/base-maia/spinner.js.map +1 -1
  105. package/dist/base-maia/switch.js.map +1 -1
  106. package/dist/base-maia/table.js.map +1 -1
  107. package/dist/base-maia/tabs.js.map +1 -1
  108. package/dist/base-maia/textarea.js.map +1 -1
  109. package/dist/base-maia/toggle-group.js.map +1 -1
  110. package/dist/base-maia/toggle.js.map +1 -1
  111. package/dist/base-maia/tooltip.js.map +1 -1
  112. package/dist/base-mira/accordion.js.map +1 -1
  113. package/dist/base-mira/alert-dialog.js.map +1 -1
  114. package/dist/base-mira/alert.js.map +1 -1
  115. package/dist/base-mira/aspect-ratio.js.map +1 -1
  116. package/dist/base-mira/avatar.js.map +1 -1
  117. package/dist/base-mira/badge.js.map +1 -1
  118. package/dist/base-mira/breadcrumb.js.map +1 -1
  119. package/dist/base-mira/button-group.js.map +1 -1
  120. package/dist/base-mira/button.js.map +1 -1
  121. package/dist/base-mira/calendar.js.map +1 -1
  122. package/dist/base-mira/card.js.map +1 -1
  123. package/dist/base-mira/carousel.js.map +1 -1
  124. package/dist/base-mira/chart.js.map +1 -1
  125. package/dist/base-mira/checkbox.js.map +1 -1
  126. package/dist/base-mira/combobox.js.map +1 -1
  127. package/dist/base-mira/command.js.map +1 -1
  128. package/dist/base-mira/context-menu.js.map +1 -1
  129. package/dist/base-mira/dialog.js.map +1 -1
  130. package/dist/base-mira/drawer.js.map +1 -1
  131. package/dist/base-mira/dropdown-menu.js.map +1 -1
  132. package/dist/base-mira/empty.js.map +1 -1
  133. package/dist/base-mira/field.js.map +1 -1
  134. package/dist/base-mira/hover-card.js.map +1 -1
  135. package/dist/base-mira/index.js +8 -6
  136. package/dist/base-mira/index.js.map +1 -1
  137. package/dist/base-mira/input-group.js.map +1 -1
  138. package/dist/base-mira/input-otp.js.map +1 -1
  139. package/dist/base-mira/input.js.map +1 -1
  140. package/dist/base-mira/item.js.map +1 -1
  141. package/dist/base-mira/kbd.js.map +1 -1
  142. package/dist/base-mira/label.js.map +1 -1
  143. package/dist/base-mira/menubar.js.map +1 -1
  144. package/dist/base-mira/native-select.js.map +1 -1
  145. package/dist/base-mira/navigation-menu.js.map +1 -1
  146. package/dist/base-mira/pagination.js.map +1 -1
  147. package/dist/base-mira/popover.js.map +1 -1
  148. package/dist/base-mira/progress.js.map +1 -1
  149. package/dist/base-mira/radio-group.js.map +1 -1
  150. package/dist/base-mira/resizable.js.map +1 -1
  151. package/dist/base-mira/scroll-area.js.map +1 -1
  152. package/dist/base-mira/select.js.map +1 -1
  153. package/dist/base-mira/separator.js.map +1 -1
  154. package/dist/base-mira/sheet.js.map +1 -1
  155. package/dist/base-mira/sidebar.js +8 -6
  156. package/dist/base-mira/sidebar.js.map +1 -1
  157. package/dist/base-mira/skeleton.js.map +1 -1
  158. package/dist/base-mira/slider.js.map +1 -1
  159. package/dist/base-mira/spinner.js.map +1 -1
  160. package/dist/base-mira/switch.js.map +1 -1
  161. package/dist/base-mira/table.js.map +1 -1
  162. package/dist/base-mira/tabs.js.map +1 -1
  163. package/dist/base-mira/textarea.js.map +1 -1
  164. package/dist/base-mira/toggle-group.js.map +1 -1
  165. package/dist/base-mira/toggle.js.map +1 -1
  166. package/dist/base-mira/tooltip.js.map +1 -1
  167. package/dist/base-nova/accordion.js.map +1 -1
  168. package/dist/base-nova/alert-dialog.js.map +1 -1
  169. package/dist/base-nova/alert.js.map +1 -1
  170. package/dist/base-nova/aspect-ratio.js.map +1 -1
  171. package/dist/base-nova/avatar.js.map +1 -1
  172. package/dist/base-nova/badge.js.map +1 -1
  173. package/dist/base-nova/breadcrumb.js.map +1 -1
  174. package/dist/base-nova/button-group.js.map +1 -1
  175. package/dist/base-nova/button.js.map +1 -1
  176. package/dist/base-nova/calendar.js.map +1 -1
  177. package/dist/base-nova/card.js.map +1 -1
  178. package/dist/base-nova/carousel.js.map +1 -1
  179. package/dist/base-nova/chart.js.map +1 -1
  180. package/dist/base-nova/checkbox.js.map +1 -1
  181. package/dist/base-nova/combobox.js.map +1 -1
  182. package/dist/base-nova/command.js.map +1 -1
  183. package/dist/base-nova/context-menu.js.map +1 -1
  184. package/dist/base-nova/dialog.js.map +1 -1
  185. package/dist/base-nova/drawer.js.map +1 -1
  186. package/dist/base-nova/dropdown-menu.js.map +1 -1
  187. package/dist/base-nova/empty.js.map +1 -1
  188. package/dist/base-nova/field.js.map +1 -1
  189. package/dist/base-nova/hover-card.js.map +1 -1
  190. package/dist/base-nova/index.js +8 -6
  191. package/dist/base-nova/index.js.map +1 -1
  192. package/dist/base-nova/input-group.js.map +1 -1
  193. package/dist/base-nova/input-otp.js.map +1 -1
  194. package/dist/base-nova/input.js.map +1 -1
  195. package/dist/base-nova/item.js.map +1 -1
  196. package/dist/base-nova/kbd.js.map +1 -1
  197. package/dist/base-nova/label.js.map +1 -1
  198. package/dist/base-nova/menubar.js.map +1 -1
  199. package/dist/base-nova/native-select.js.map +1 -1
  200. package/dist/base-nova/navigation-menu.js.map +1 -1
  201. package/dist/base-nova/pagination.js.map +1 -1
  202. package/dist/base-nova/popover.js.map +1 -1
  203. package/dist/base-nova/progress.js.map +1 -1
  204. package/dist/base-nova/radio-group.js.map +1 -1
  205. package/dist/base-nova/resizable.js.map +1 -1
  206. package/dist/base-nova/scroll-area.js.map +1 -1
  207. package/dist/base-nova/select.js.map +1 -1
  208. package/dist/base-nova/separator.js.map +1 -1
  209. package/dist/base-nova/sheet.js.map +1 -1
  210. package/dist/base-nova/sidebar.js +8 -6
  211. package/dist/base-nova/sidebar.js.map +1 -1
  212. package/dist/base-nova/skeleton.js.map +1 -1
  213. package/dist/base-nova/slider.js.map +1 -1
  214. package/dist/base-nova/spinner.js.map +1 -1
  215. package/dist/base-nova/switch.js.map +1 -1
  216. package/dist/base-nova/table.js.map +1 -1
  217. package/dist/base-nova/tabs.js.map +1 -1
  218. package/dist/base-nova/textarea.js.map +1 -1
  219. package/dist/base-nova/toggle-group.js.map +1 -1
  220. package/dist/base-nova/toggle.js.map +1 -1
  221. package/dist/base-nova/tooltip.js.map +1 -1
  222. package/dist/base-vega/accordion.js.map +1 -1
  223. package/dist/base-vega/alert-dialog.js.map +1 -1
  224. package/dist/base-vega/alert.js.map +1 -1
  225. package/dist/base-vega/aspect-ratio.js.map +1 -1
  226. package/dist/base-vega/avatar.js.map +1 -1
  227. package/dist/base-vega/badge.js.map +1 -1
  228. package/dist/base-vega/breadcrumb.js.map +1 -1
  229. package/dist/base-vega/button-group.js.map +1 -1
  230. package/dist/base-vega/button.js.map +1 -1
  231. package/dist/base-vega/calendar.js.map +1 -1
  232. package/dist/base-vega/card.js.map +1 -1
  233. package/dist/base-vega/carousel.js.map +1 -1
  234. package/dist/base-vega/chart.js.map +1 -1
  235. package/dist/base-vega/checkbox.js.map +1 -1
  236. package/dist/base-vega/combobox.js.map +1 -1
  237. package/dist/base-vega/command.js.map +1 -1
  238. package/dist/base-vega/context-menu.js.map +1 -1
  239. package/dist/base-vega/dialog.js.map +1 -1
  240. package/dist/base-vega/drawer.js.map +1 -1
  241. package/dist/base-vega/dropdown-menu.js.map +1 -1
  242. package/dist/base-vega/empty.js.map +1 -1
  243. package/dist/base-vega/field.js.map +1 -1
  244. package/dist/base-vega/hover-card.js.map +1 -1
  245. package/dist/base-vega/index.js +8 -6
  246. package/dist/base-vega/index.js.map +1 -1
  247. package/dist/base-vega/input-group.js.map +1 -1
  248. package/dist/base-vega/input-otp.js.map +1 -1
  249. package/dist/base-vega/input.js.map +1 -1
  250. package/dist/base-vega/item.js.map +1 -1
  251. package/dist/base-vega/kbd.js.map +1 -1
  252. package/dist/base-vega/label.js.map +1 -1
  253. package/dist/base-vega/menubar.js.map +1 -1
  254. package/dist/base-vega/native-select.js.map +1 -1
  255. package/dist/base-vega/navigation-menu.js.map +1 -1
  256. package/dist/base-vega/pagination.js.map +1 -1
  257. package/dist/base-vega/popover.js.map +1 -1
  258. package/dist/base-vega/progress.js.map +1 -1
  259. package/dist/base-vega/radio-group.js.map +1 -1
  260. package/dist/base-vega/resizable.js.map +1 -1
  261. package/dist/base-vega/scroll-area.js.map +1 -1
  262. package/dist/base-vega/select.js.map +1 -1
  263. package/dist/base-vega/separator.js.map +1 -1
  264. package/dist/base-vega/sheet.js.map +1 -1
  265. package/dist/base-vega/sidebar.js +8 -6
  266. package/dist/base-vega/sidebar.js.map +1 -1
  267. package/dist/base-vega/skeleton.js.map +1 -1
  268. package/dist/base-vega/slider.js.map +1 -1
  269. package/dist/base-vega/spinner.js.map +1 -1
  270. package/dist/base-vega/switch.js.map +1 -1
  271. package/dist/base-vega/table.js.map +1 -1
  272. package/dist/base-vega/tabs.js.map +1 -1
  273. package/dist/base-vega/textarea.js.map +1 -1
  274. package/dist/base-vega/toggle-group.js.map +1 -1
  275. package/dist/base-vega/toggle.js.map +1 -1
  276. package/dist/base-vega/tooltip.js.map +1 -1
  277. package/dist/hooks/index.d.ts +7 -0
  278. package/dist/hooks/index.js +181 -10
  279. package/dist/hooks/index.js.map +1 -1
  280. package/dist/hooks/use-as-ref.d.ts +5 -0
  281. package/dist/hooks/use-as-ref.js +17 -0
  282. package/dist/hooks/use-as-ref.js.map +1 -0
  283. package/dist/hooks/use-badge-overflow.d.ts +24 -0
  284. package/dist/hooks/use-badge-overflow.js +130 -0
  285. package/dist/hooks/use-badge-overflow.js.map +1 -0
  286. package/dist/hooks/use-callback-ref.d.ts +10 -0
  287. package/dist/hooks/use-callback-ref.js +17 -0
  288. package/dist/hooks/use-callback-ref.js.map +1 -0
  289. package/dist/hooks/use-debounced-callback.d.ts +3 -0
  290. package/dist/hooks/use-debounced-callback.js +38 -0
  291. package/dist/hooks/use-debounced-callback.js.map +1 -0
  292. package/dist/hooks/use-file-upload.d.ts +48 -0
  293. package/dist/hooks/use-file-upload.js +279 -0
  294. package/dist/hooks/use-file-upload.js.map +1 -0
  295. package/dist/hooks/use-isomorphic-layout-effect.d.ts +5 -0
  296. package/dist/hooks/use-isomorphic-layout-effect.js +8 -0
  297. package/dist/hooks/use-isomorphic-layout-effect.js.map +1 -0
  298. package/dist/hooks/use-lazy-ref.d.ts +5 -0
  299. package/dist/hooks/use-lazy-ref.js +14 -0
  300. package/dist/hooks/use-lazy-ref.js.map +1 -0
  301. package/dist/hooks/use-mobile.d.ts +1 -1
  302. package/dist/hooks/use-mobile.js +8 -6
  303. package/dist/hooks/use-mobile.js.map +1 -1
  304. package/dist/index.d.ts +1622 -106
  305. package/dist/index.js +23260 -2932
  306. package/dist/index.js.map +1 -1
  307. package/dist/lib/compose-refs.d.ts +15 -0
  308. package/dist/lib/compose-refs.js +42 -0
  309. package/dist/lib/compose-refs.js.map +1 -0
  310. package/dist/lib/format.d.ts +3 -0
  311. package/dist/lib/format.js +18 -0
  312. package/dist/lib/format.js.map +1 -0
  313. package/dist/lib/index.d.ts +3 -0
  314. package/dist/lib/index.js +53 -2
  315. package/dist/lib/index.js.map +1 -1
  316. package/dist/lib/utils.d.ts +6 -0
  317. package/dist/lib/utils.js.map +1 -1
  318. package/dist/new-york/accordion.js.map +1 -1
  319. package/dist/new-york/alert-dialog.js.map +1 -1
  320. package/dist/new-york/alert.js.map +1 -1
  321. package/dist/new-york/avatar.js.map +1 -1
  322. package/dist/new-york/badge.js.map +1 -1
  323. package/dist/new-york/breadcrumb.js.map +1 -1
  324. package/dist/new-york/button-group.js.map +1 -1
  325. package/dist/new-york/button.js.map +1 -1
  326. package/dist/new-york/calendar.js.map +1 -1
  327. package/dist/new-york/card.js.map +1 -1
  328. package/dist/new-york/carousel.js.map +1 -1
  329. package/dist/new-york/chart.js.map +1 -1
  330. package/dist/new-york/checkbox.js.map +1 -1
  331. package/dist/new-york/combobox.js.map +1 -1
  332. package/dist/new-york/command.js.map +1 -1
  333. package/dist/new-york/context-menu.js.map +1 -1
  334. package/dist/new-york/dialog.js.map +1 -1
  335. package/dist/new-york/drawer.js.map +1 -1
  336. package/dist/new-york/dropdown-menu.js.map +1 -1
  337. package/dist/new-york/empty.js.map +1 -1
  338. package/dist/new-york/field.js.map +1 -1
  339. package/dist/new-york/form.js.map +1 -1
  340. package/dist/new-york/hover-card.js.map +1 -1
  341. package/dist/new-york/index.js +8 -6
  342. package/dist/new-york/index.js.map +1 -1
  343. package/dist/new-york/input-group.js.map +1 -1
  344. package/dist/new-york/input-otp.js.map +1 -1
  345. package/dist/new-york/input.js.map +1 -1
  346. package/dist/new-york/item.js.map +1 -1
  347. package/dist/new-york/kbd.js.map +1 -1
  348. package/dist/new-york/label.js.map +1 -1
  349. package/dist/new-york/menubar.js.map +1 -1
  350. package/dist/new-york/native-select.js.map +1 -1
  351. package/dist/new-york/navigation-menu.js.map +1 -1
  352. package/dist/new-york/pagination.js.map +1 -1
  353. package/dist/new-york/popover.js.map +1 -1
  354. package/dist/new-york/progress.js.map +1 -1
  355. package/dist/new-york/radio-group.js.map +1 -1
  356. package/dist/new-york/resizable.js.map +1 -1
  357. package/dist/new-york/scroll-area.js.map +1 -1
  358. package/dist/new-york/select.js.map +1 -1
  359. package/dist/new-york/separator.js.map +1 -1
  360. package/dist/new-york/sheet.js.map +1 -1
  361. package/dist/new-york/sidebar.js +8 -6
  362. package/dist/new-york/sidebar.js.map +1 -1
  363. package/dist/new-york/skeleton.js.map +1 -1
  364. package/dist/new-york/slider.js.map +1 -1
  365. package/dist/new-york/spinner.js.map +1 -1
  366. package/dist/new-york/switch.js.map +1 -1
  367. package/dist/new-york/table.js.map +1 -1
  368. package/dist/new-york/tabs.js.map +1 -1
  369. package/dist/new-york/textarea.js.map +1 -1
  370. package/dist/new-york/toggle-group.js.map +1 -1
  371. package/dist/new-york/toggle.js.map +1 -1
  372. package/dist/new-york/tooltip.js.map +1 -1
  373. package/dist/radix-lyra/accordion.js.map +1 -1
  374. package/dist/radix-lyra/alert-dialog.js.map +1 -1
  375. package/dist/radix-lyra/alert.js.map +1 -1
  376. package/dist/radix-lyra/avatar.js.map +1 -1
  377. package/dist/radix-lyra/badge.js.map +1 -1
  378. package/dist/radix-lyra/breadcrumb.js.map +1 -1
  379. package/dist/radix-lyra/button-group.js.map +1 -1
  380. package/dist/radix-lyra/button.js.map +1 -1
  381. package/dist/radix-lyra/calendar.js.map +1 -1
  382. package/dist/radix-lyra/card.js.map +1 -1
  383. package/dist/radix-lyra/carousel.js.map +1 -1
  384. package/dist/radix-lyra/chart.js.map +1 -1
  385. package/dist/radix-lyra/checkbox.js.map +1 -1
  386. package/dist/radix-lyra/combobox.js.map +1 -1
  387. package/dist/radix-lyra/command.js.map +1 -1
  388. package/dist/radix-lyra/context-menu.js.map +1 -1
  389. package/dist/radix-lyra/dialog.js.map +1 -1
  390. package/dist/radix-lyra/drawer.js.map +1 -1
  391. package/dist/radix-lyra/dropdown-menu.js.map +1 -1
  392. package/dist/radix-lyra/empty.js.map +1 -1
  393. package/dist/radix-lyra/field.js.map +1 -1
  394. package/dist/radix-lyra/hover-card.js.map +1 -1
  395. package/dist/radix-lyra/index.js +8 -6
  396. package/dist/radix-lyra/index.js.map +1 -1
  397. package/dist/radix-lyra/input-group.js.map +1 -1
  398. package/dist/radix-lyra/input-otp.js.map +1 -1
  399. package/dist/radix-lyra/input.js.map +1 -1
  400. package/dist/radix-lyra/item.js.map +1 -1
  401. package/dist/radix-lyra/kbd.js.map +1 -1
  402. package/dist/radix-lyra/label.js.map +1 -1
  403. package/dist/radix-lyra/menubar.js.map +1 -1
  404. package/dist/radix-lyra/native-select.js.map +1 -1
  405. package/dist/radix-lyra/navigation-menu.js.map +1 -1
  406. package/dist/radix-lyra/pagination.js.map +1 -1
  407. package/dist/radix-lyra/popover.js.map +1 -1
  408. package/dist/radix-lyra/progress.js.map +1 -1
  409. package/dist/radix-lyra/radio-group.js.map +1 -1
  410. package/dist/radix-lyra/resizable.js.map +1 -1
  411. package/dist/radix-lyra/scroll-area.js.map +1 -1
  412. package/dist/radix-lyra/select.js.map +1 -1
  413. package/dist/radix-lyra/separator.js.map +1 -1
  414. package/dist/radix-lyra/sheet.js.map +1 -1
  415. package/dist/radix-lyra/sidebar.js +8 -6
  416. package/dist/radix-lyra/sidebar.js.map +1 -1
  417. package/dist/radix-lyra/skeleton.js.map +1 -1
  418. package/dist/radix-lyra/slider.js.map +1 -1
  419. package/dist/radix-lyra/spinner.js.map +1 -1
  420. package/dist/radix-lyra/switch.js.map +1 -1
  421. package/dist/radix-lyra/table.js.map +1 -1
  422. package/dist/radix-lyra/tabs.js.map +1 -1
  423. package/dist/radix-lyra/textarea.js.map +1 -1
  424. package/dist/radix-lyra/toggle-group.js.map +1 -1
  425. package/dist/radix-lyra/toggle.js.map +1 -1
  426. package/dist/radix-lyra/tooltip.js.map +1 -1
  427. package/dist/radix-maia/accordion.js.map +1 -1
  428. package/dist/radix-maia/alert-dialog.js.map +1 -1
  429. package/dist/radix-maia/alert.js.map +1 -1
  430. package/dist/radix-maia/avatar.js.map +1 -1
  431. package/dist/radix-maia/badge.js.map +1 -1
  432. package/dist/radix-maia/breadcrumb.js.map +1 -1
  433. package/dist/radix-maia/button-group.js.map +1 -1
  434. package/dist/radix-maia/button.js.map +1 -1
  435. package/dist/radix-maia/calendar.js.map +1 -1
  436. package/dist/radix-maia/card.js.map +1 -1
  437. package/dist/radix-maia/carousel.js.map +1 -1
  438. package/dist/radix-maia/chart.js.map +1 -1
  439. package/dist/radix-maia/checkbox.js.map +1 -1
  440. package/dist/radix-maia/combobox.js.map +1 -1
  441. package/dist/radix-maia/command.js.map +1 -1
  442. package/dist/radix-maia/context-menu.js.map +1 -1
  443. package/dist/radix-maia/dialog.js.map +1 -1
  444. package/dist/radix-maia/drawer.js.map +1 -1
  445. package/dist/radix-maia/dropdown-menu.js.map +1 -1
  446. package/dist/radix-maia/empty.js.map +1 -1
  447. package/dist/radix-maia/field.js.map +1 -1
  448. package/dist/radix-maia/hover-card.js.map +1 -1
  449. package/dist/radix-maia/index.js +8 -6
  450. package/dist/radix-maia/index.js.map +1 -1
  451. package/dist/radix-maia/input-group.js.map +1 -1
  452. package/dist/radix-maia/input-otp.js.map +1 -1
  453. package/dist/radix-maia/input.js.map +1 -1
  454. package/dist/radix-maia/item.js.map +1 -1
  455. package/dist/radix-maia/kbd.js.map +1 -1
  456. package/dist/radix-maia/label.js.map +1 -1
  457. package/dist/radix-maia/menubar.js.map +1 -1
  458. package/dist/radix-maia/native-select.js.map +1 -1
  459. package/dist/radix-maia/navigation-menu.js.map +1 -1
  460. package/dist/radix-maia/pagination.js.map +1 -1
  461. package/dist/radix-maia/popover.js.map +1 -1
  462. package/dist/radix-maia/progress.js.map +1 -1
  463. package/dist/radix-maia/radio-group.js.map +1 -1
  464. package/dist/radix-maia/resizable.js.map +1 -1
  465. package/dist/radix-maia/scroll-area.js.map +1 -1
  466. package/dist/radix-maia/select.js.map +1 -1
  467. package/dist/radix-maia/separator.js.map +1 -1
  468. package/dist/radix-maia/sheet.js.map +1 -1
  469. package/dist/radix-maia/sidebar.js +8 -6
  470. package/dist/radix-maia/sidebar.js.map +1 -1
  471. package/dist/radix-maia/skeleton.js.map +1 -1
  472. package/dist/radix-maia/slider.js.map +1 -1
  473. package/dist/radix-maia/spinner.js.map +1 -1
  474. package/dist/radix-maia/switch.js.map +1 -1
  475. package/dist/radix-maia/table.js.map +1 -1
  476. package/dist/radix-maia/tabs.js.map +1 -1
  477. package/dist/radix-maia/textarea.js.map +1 -1
  478. package/dist/radix-maia/toggle-group.js.map +1 -1
  479. package/dist/radix-maia/toggle.js.map +1 -1
  480. package/dist/radix-maia/tooltip.js.map +1 -1
  481. package/dist/radix-mira/accordion.js.map +1 -1
  482. package/dist/radix-mira/alert-dialog.js.map +1 -1
  483. package/dist/radix-mira/alert.js.map +1 -1
  484. package/dist/radix-mira/avatar.js.map +1 -1
  485. package/dist/radix-mira/badge.js.map +1 -1
  486. package/dist/radix-mira/breadcrumb.js.map +1 -1
  487. package/dist/radix-mira/button-group.js.map +1 -1
  488. package/dist/radix-mira/button.js.map +1 -1
  489. package/dist/radix-mira/calendar.js.map +1 -1
  490. package/dist/radix-mira/card.js.map +1 -1
  491. package/dist/radix-mira/carousel.js.map +1 -1
  492. package/dist/radix-mira/chart.js.map +1 -1
  493. package/dist/radix-mira/checkbox.js.map +1 -1
  494. package/dist/radix-mira/combobox.js.map +1 -1
  495. package/dist/radix-mira/command.js.map +1 -1
  496. package/dist/radix-mira/context-menu.js.map +1 -1
  497. package/dist/radix-mira/dialog.js.map +1 -1
  498. package/dist/radix-mira/drawer.js.map +1 -1
  499. package/dist/radix-mira/dropdown-menu.js.map +1 -1
  500. package/dist/radix-mira/empty.js.map +1 -1
  501. package/dist/radix-mira/field.js.map +1 -1
  502. package/dist/radix-mira/hover-card.js.map +1 -1
  503. package/dist/radix-mira/index.js +8 -6
  504. package/dist/radix-mira/index.js.map +1 -1
  505. package/dist/radix-mira/input-group.js.map +1 -1
  506. package/dist/radix-mira/input-otp.js.map +1 -1
  507. package/dist/radix-mira/input.js.map +1 -1
  508. package/dist/radix-mira/item.js.map +1 -1
  509. package/dist/radix-mira/kbd.js.map +1 -1
  510. package/dist/radix-mira/label.js.map +1 -1
  511. package/dist/radix-mira/menubar.js.map +1 -1
  512. package/dist/radix-mira/native-select.js.map +1 -1
  513. package/dist/radix-mira/navigation-menu.js.map +1 -1
  514. package/dist/radix-mira/pagination.js.map +1 -1
  515. package/dist/radix-mira/popover.js.map +1 -1
  516. package/dist/radix-mira/progress.js.map +1 -1
  517. package/dist/radix-mira/radio-group.js.map +1 -1
  518. package/dist/radix-mira/resizable.js.map +1 -1
  519. package/dist/radix-mira/scroll-area.js.map +1 -1
  520. package/dist/radix-mira/select.js.map +1 -1
  521. package/dist/radix-mira/separator.js.map +1 -1
  522. package/dist/radix-mira/sheet.js.map +1 -1
  523. package/dist/radix-mira/sidebar.js +8 -6
  524. package/dist/radix-mira/sidebar.js.map +1 -1
  525. package/dist/radix-mira/skeleton.js.map +1 -1
  526. package/dist/radix-mira/slider.js.map +1 -1
  527. package/dist/radix-mira/spinner.js.map +1 -1
  528. package/dist/radix-mira/switch.js.map +1 -1
  529. package/dist/radix-mira/table.js.map +1 -1
  530. package/dist/radix-mira/tabs.js.map +1 -1
  531. package/dist/radix-mira/textarea.js.map +1 -1
  532. package/dist/radix-mira/toggle-group.js.map +1 -1
  533. package/dist/radix-mira/toggle.js.map +1 -1
  534. package/dist/radix-mira/tooltip.js.map +1 -1
  535. package/dist/radix-nova/accordion.js.map +1 -1
  536. package/dist/radix-nova/alert-dialog.js.map +1 -1
  537. package/dist/radix-nova/alert.js.map +1 -1
  538. package/dist/radix-nova/avatar.js.map +1 -1
  539. package/dist/radix-nova/badge.js.map +1 -1
  540. package/dist/radix-nova/breadcrumb.js.map +1 -1
  541. package/dist/radix-nova/button-group.js.map +1 -1
  542. package/dist/radix-nova/button.js.map +1 -1
  543. package/dist/radix-nova/calendar.js.map +1 -1
  544. package/dist/radix-nova/card.js.map +1 -1
  545. package/dist/radix-nova/carousel.js.map +1 -1
  546. package/dist/radix-nova/chart.js.map +1 -1
  547. package/dist/radix-nova/checkbox.js.map +1 -1
  548. package/dist/radix-nova/combobox.js.map +1 -1
  549. package/dist/radix-nova/command.js.map +1 -1
  550. package/dist/radix-nova/context-menu.js.map +1 -1
  551. package/dist/radix-nova/dialog.js.map +1 -1
  552. package/dist/radix-nova/drawer.js.map +1 -1
  553. package/dist/radix-nova/dropdown-menu.js.map +1 -1
  554. package/dist/radix-nova/empty.js.map +1 -1
  555. package/dist/radix-nova/field.js.map +1 -1
  556. package/dist/radix-nova/hover-card.js.map +1 -1
  557. package/dist/radix-nova/index.js +8 -6
  558. package/dist/radix-nova/index.js.map +1 -1
  559. package/dist/radix-nova/input-group.js.map +1 -1
  560. package/dist/radix-nova/input-otp.js.map +1 -1
  561. package/dist/radix-nova/input.js.map +1 -1
  562. package/dist/radix-nova/item.js.map +1 -1
  563. package/dist/radix-nova/kbd.js.map +1 -1
  564. package/dist/radix-nova/label.js.map +1 -1
  565. package/dist/radix-nova/menubar.js.map +1 -1
  566. package/dist/radix-nova/native-select.js.map +1 -1
  567. package/dist/radix-nova/navigation-menu.js.map +1 -1
  568. package/dist/radix-nova/pagination.js.map +1 -1
  569. package/dist/radix-nova/popover.js.map +1 -1
  570. package/dist/radix-nova/progress.js.map +1 -1
  571. package/dist/radix-nova/radio-group.js.map +1 -1
  572. package/dist/radix-nova/resizable.js.map +1 -1
  573. package/dist/radix-nova/scroll-area.js.map +1 -1
  574. package/dist/radix-nova/select.js.map +1 -1
  575. package/dist/radix-nova/separator.js.map +1 -1
  576. package/dist/radix-nova/sheet.js.map +1 -1
  577. package/dist/radix-nova/sidebar.js +8 -6
  578. package/dist/radix-nova/sidebar.js.map +1 -1
  579. package/dist/radix-nova/skeleton.js.map +1 -1
  580. package/dist/radix-nova/slider.js.map +1 -1
  581. package/dist/radix-nova/spinner.js.map +1 -1
  582. package/dist/radix-nova/switch.js.map +1 -1
  583. package/dist/radix-nova/table.js.map +1 -1
  584. package/dist/radix-nova/tabs.js.map +1 -1
  585. package/dist/radix-nova/textarea.js.map +1 -1
  586. package/dist/radix-nova/toggle-group.js.map +1 -1
  587. package/dist/radix-nova/toggle.js.map +1 -1
  588. package/dist/radix-nova/tooltip.js.map +1 -1
  589. package/dist/radix-vega/accordion.js.map +1 -1
  590. package/dist/radix-vega/action-bar.d.ts +41 -0
  591. package/dist/radix-vega/action-bar.js +589 -0
  592. package/dist/radix-vega/action-bar.js.map +1 -0
  593. package/dist/radix-vega/alert-dialog.js.map +1 -1
  594. package/dist/radix-vega/alert.js.map +1 -1
  595. package/dist/radix-vega/avatar-group.d.ts +19 -0
  596. package/dist/radix-vega/avatar-group.js +193 -0
  597. package/dist/radix-vega/avatar-group.js.map +1 -0
  598. package/dist/radix-vega/avatar.d.ts +1 -3
  599. package/dist/radix-vega/avatar.js +1 -27
  600. package/dist/radix-vega/avatar.js.map +1 -1
  601. package/dist/radix-vega/badge-overflow.d.ts +21 -0
  602. package/dist/radix-vega/badge-overflow.js +223 -0
  603. package/dist/radix-vega/badge-overflow.js.map +1 -0
  604. package/dist/radix-vega/badge.d.ts +1 -1
  605. package/dist/radix-vega/badge.js.map +1 -1
  606. package/dist/radix-vega/breadcrumb.js.map +1 -1
  607. package/dist/radix-vega/button-group.js.map +1 -1
  608. package/dist/radix-vega/button.d.ts +2 -2
  609. package/dist/radix-vega/button.js.map +1 -1
  610. package/dist/radix-vega/calendar.js.map +1 -1
  611. package/dist/radix-vega/card.js.map +1 -1
  612. package/dist/radix-vega/carousel.js.map +1 -1
  613. package/dist/radix-vega/chart.js.map +1 -1
  614. package/dist/radix-vega/checkbox-group.d.ts +12 -0
  615. package/dist/radix-vega/checkbox-group.js +119 -0
  616. package/dist/radix-vega/checkbox-group.js.map +1 -0
  617. package/dist/radix-vega/checkbox.js.map +1 -1
  618. package/dist/radix-vega/circular-progress.d.ts +27 -0
  619. package/dist/radix-vega/circular-progress.js +252 -0
  620. package/dist/radix-vega/circular-progress.js.map +1 -0
  621. package/dist/radix-vega/color-picker.d.ts +85 -0
  622. package/dist/radix-vega/color-picker.js +1683 -0
  623. package/dist/radix-vega/color-picker.js.map +1 -0
  624. package/dist/radix-vega/color-swatch.d.ts +17 -0
  625. package/dist/radix-vega/color-swatch.js +95 -0
  626. package/dist/radix-vega/color-swatch.js.map +1 -0
  627. package/dist/radix-vega/combobox.d.ts +18 -22
  628. package/dist/radix-vega/combobox.js +118 -276
  629. package/dist/radix-vega/combobox.js.map +1 -1
  630. package/dist/radix-vega/command.js.map +1 -1
  631. package/dist/radix-vega/compare-slider.d.ts +32 -0
  632. package/dist/radix-vega/compare-slider.js +393 -0
  633. package/dist/radix-vega/compare-slider.js.map +1 -0
  634. package/dist/radix-vega/context-menu.js.map +1 -1
  635. package/dist/radix-vega/cropper.d.ts +89 -0
  636. package/dist/radix-vega/cropper.js +1396 -0
  637. package/dist/radix-vega/cropper.js.map +1 -0
  638. package/dist/radix-vega/dialog.js.map +1 -1
  639. package/dist/radix-vega/drawer.js.map +1 -1
  640. package/dist/radix-vega/dropdown-menu.js.map +1 -1
  641. package/dist/radix-vega/editable.d.ts +100 -0
  642. package/dist/radix-vega/editable.js +684 -0
  643. package/dist/radix-vega/editable.js.map +1 -0
  644. package/dist/radix-vega/empty.js.map +1 -1
  645. package/dist/radix-vega/field.js.map +1 -1
  646. package/dist/radix-vega/file-upload.d.ts +89 -0
  647. package/dist/radix-vega/file-upload.js +1089 -0
  648. package/dist/radix-vega/file-upload.js.map +1 -0
  649. package/dist/radix-vega/gauge.d.ts +27 -0
  650. package/dist/radix-vega/gauge.js +359 -0
  651. package/dist/radix-vega/gauge.js.map +1 -0
  652. package/dist/radix-vega/hover-card.js.map +1 -1
  653. package/dist/radix-vega/index.d.ts +50 -3
  654. package/dist/radix-vega/index.js +23001 -2667
  655. package/dist/radix-vega/index.js.map +1 -1
  656. package/dist/radix-vega/input-group.d.ts +1 -1
  657. package/dist/radix-vega/input-group.js.map +1 -1
  658. package/dist/radix-vega/input-otp.js.map +1 -1
  659. package/dist/radix-vega/input.js.map +1 -1
  660. package/dist/radix-vega/item.d.ts +2 -2
  661. package/dist/radix-vega/item.js.map +1 -1
  662. package/dist/radix-vega/kanban.d.ts +62 -0
  663. package/dist/radix-vega/kanban.js +831 -0
  664. package/dist/radix-vega/kanban.js.map +1 -0
  665. package/dist/radix-vega/kbd.js.map +1 -1
  666. package/dist/radix-vega/key-value.d.ts +82 -0
  667. package/dist/radix-vega/key-value.js +765 -0
  668. package/dist/radix-vega/key-value.js.map +1 -0
  669. package/dist/radix-vega/label.js.map +1 -1
  670. package/dist/radix-vega/listbox.d.ts +11 -0
  671. package/dist/radix-vega/listbox.js +90 -0
  672. package/dist/radix-vega/listbox.js.map +1 -0
  673. package/dist/radix-vega/mask-input.d.ts +64 -0
  674. package/dist/radix-vega/mask-input.js +1186 -0
  675. package/dist/radix-vega/mask-input.js.map +1 -0
  676. package/dist/radix-vega/media-player.d.ts +127 -0
  677. package/dist/radix-vega/media-player.js +2696 -0
  678. package/dist/radix-vega/media-player.js.map +1 -0
  679. package/dist/radix-vega/mention.d.ts +11 -0
  680. package/dist/radix-vega/mention.js +94 -0
  681. package/dist/radix-vega/mention.js.map +1 -0
  682. package/dist/radix-vega/menubar.js.map +1 -1
  683. package/dist/radix-vega/native-select.js.map +1 -1
  684. package/dist/radix-vega/navigation-menu.js.map +1 -1
  685. package/dist/radix-vega/pagination.js.map +1 -1
  686. package/dist/radix-vega/phone-input.d.ts +48 -0
  687. package/dist/radix-vega/phone-input.js +957 -0
  688. package/dist/radix-vega/phone-input.js.map +1 -0
  689. package/dist/radix-vega/popover.js.map +1 -1
  690. package/dist/radix-vega/progress.js.map +1 -1
  691. package/dist/radix-vega/qr-code.d.ts +53 -0
  692. package/dist/radix-vega/qr-code.js +396 -0
  693. package/dist/radix-vega/qr-code.js.map +1 -0
  694. package/dist/radix-vega/radio-group.js.map +1 -1
  695. package/dist/radix-vega/rating.d.ts +47 -0
  696. package/dist/radix-vega/rating.js +749 -0
  697. package/dist/radix-vega/rating.js.map +1 -0
  698. package/dist/radix-vega/relative-time-card.d.ts +22 -0
  699. package/dist/radix-vega/relative-time-card.js +236 -0
  700. package/dist/radix-vega/relative-time-card.js.map +1 -0
  701. package/dist/radix-vega/resizable.js.map +1 -1
  702. package/dist/radix-vega/responsive-dialog.d.ts +20 -0
  703. package/dist/radix-vega/responsive-dialog.js +483 -0
  704. package/dist/radix-vega/responsive-dialog.js.map +1 -0
  705. package/dist/radix-vega/scroll-area.js.map +1 -1
  706. package/dist/radix-vega/scroll-spy.d.ts +39 -0
  707. package/dist/radix-vega/scroll-spy.js +372 -0
  708. package/dist/radix-vega/scroll-spy.js.map +1 -0
  709. package/dist/radix-vega/scroller.d.ts +20 -0
  710. package/dist/radix-vega/scroller.js +352 -0
  711. package/dist/radix-vega/scroller.js.map +1 -0
  712. package/dist/radix-vega/segmented-input.d.ts +29 -0
  713. package/dist/radix-vega/segmented-input.js +178 -0
  714. package/dist/radix-vega/segmented-input.js.map +1 -0
  715. package/dist/radix-vega/select.js.map +1 -1
  716. package/dist/radix-vega/separator.js.map +1 -1
  717. package/dist/radix-vega/sheet.js.map +1 -1
  718. package/dist/radix-vega/sidebar.js +8 -6
  719. package/dist/radix-vega/sidebar.js.map +1 -1
  720. package/dist/radix-vega/skeleton.js.map +1 -1
  721. package/dist/radix-vega/slider.js.map +1 -1
  722. package/dist/radix-vega/sortable.d.ts +51 -0
  723. package/dist/radix-vega/sortable.js +444 -0
  724. package/dist/radix-vega/sortable.js.map +1 -0
  725. package/dist/radix-vega/speed-dial.d.ts +46 -0
  726. package/dist/radix-vega/speed-dial.js +898 -0
  727. package/dist/radix-vega/speed-dial.js.map +1 -0
  728. package/dist/radix-vega/spinner.js.map +1 -1
  729. package/dist/radix-vega/stack.d.ts +21 -0
  730. package/dist/radix-vega/stack.js +268 -0
  731. package/dist/radix-vega/stack.js.map +1 -0
  732. package/dist/radix-vega/stat.d.ts +24 -0
  733. package/dist/radix-vega/stat.js +147 -0
  734. package/dist/radix-vega/stat.js.map +1 -0
  735. package/dist/radix-vega/status.d.ts +18 -0
  736. package/dist/radix-vega/status.js +71 -0
  737. package/dist/radix-vega/status.js.map +1 -0
  738. package/dist/radix-vega/stepper.d.ts +73 -0
  739. package/dist/radix-vega/stepper.js +973 -0
  740. package/dist/radix-vega/stepper.js.map +1 -0
  741. package/dist/radix-vega/swap.d.ts +29 -0
  742. package/dist/radix-vega/swap.js +214 -0
  743. package/dist/radix-vega/swap.js.map +1 -0
  744. package/dist/radix-vega/switch.js.map +1 -1
  745. package/dist/radix-vega/table.js.map +1 -1
  746. package/dist/radix-vega/tabs.d.ts +1 -1
  747. package/dist/radix-vega/tabs.js.map +1 -1
  748. package/dist/radix-vega/tags-input.d.ts +12 -0
  749. package/dist/radix-vega/tags-input.js +98 -0
  750. package/dist/radix-vega/tags-input.js.map +1 -0
  751. package/dist/radix-vega/textarea.js.map +1 -1
  752. package/dist/radix-vega/time-picker.d.ts +88 -0
  753. package/dist/radix-vega/time-picker.js +1750 -0
  754. package/dist/radix-vega/time-picker.js.map +1 -0
  755. package/dist/radix-vega/timeline.d.ts +32 -0
  756. package/dist/radix-vega/timeline.js +611 -0
  757. package/dist/radix-vega/timeline.js.map +1 -0
  758. package/dist/radix-vega/toggle-group.js.map +1 -1
  759. package/dist/radix-vega/toggle.js.map +1 -1
  760. package/dist/radix-vega/tooltip.js.map +1 -1
  761. package/dist/radix-vega/tour.d.ts +109 -0
  762. package/dist/radix-vega/tour.js +1314 -0
  763. package/dist/radix-vega/tour.js.map +1 -0
  764. package/dist/radix-vega/visually-hidden-input.d.ts +8 -0
  765. package/dist/radix-vega/visually-hidden-input.js +33 -0
  766. package/dist/radix-vega/visually-hidden-input.js.map +1 -0
  767. package/package.json +53 -14
@@ -0,0 +1,749 @@
1
+ import { useDirection } from '@radix-ui/react-direction';
2
+ import { Slot } from '@radix-ui/react-slot';
3
+ import { Star } from 'lucide-react';
4
+ import * as React6 from 'react';
5
+ import { clsx } from 'clsx';
6
+ import { twMerge } from 'tailwind-merge';
7
+ import * as ReactDOM from 'react-dom';
8
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
9
+
10
+ function setRef(ref, value) {
11
+ if (typeof ref === "function") {
12
+ return ref(value);
13
+ }
14
+ if (ref !== null && ref !== void 0) {
15
+ ref.current = value;
16
+ }
17
+ }
18
+ function composeRefs(...refs) {
19
+ return (node) => {
20
+ let hasCleanup = false;
21
+ const cleanups = refs.map((ref) => {
22
+ const cleanup = setRef(ref, node);
23
+ if (!hasCleanup && typeof cleanup === "function") {
24
+ hasCleanup = true;
25
+ }
26
+ return cleanup;
27
+ });
28
+ if (hasCleanup) {
29
+ return () => {
30
+ for (let i = 0; i < cleanups.length; i++) {
31
+ const cleanup = cleanups[i];
32
+ if (typeof cleanup === "function") {
33
+ cleanup();
34
+ } else {
35
+ setRef(refs[i], null);
36
+ }
37
+ }
38
+ };
39
+ }
40
+ };
41
+ }
42
+ function useComposedRefs(...refs) {
43
+ return React6.useCallback(composeRefs(...refs), refs);
44
+ }
45
+ function cn(...inputs) {
46
+ return twMerge(clsx(inputs));
47
+ }
48
+ var VisuallyHiddenInput = React6.forwardRef(({ className, control, ...props }, ref) => {
49
+ const input = /* @__PURE__ */ jsx(
50
+ "input",
51
+ {
52
+ ref,
53
+ className: cn(
54
+ "absolute h-px w-px overflow-hidden whitespace-nowrap border-0 p-0",
55
+ "[clip:rect(0,0,0,0)]",
56
+ className
57
+ ),
58
+ ...props
59
+ }
60
+ );
61
+ if (control) {
62
+ return ReactDOM.createPortal(input, control);
63
+ }
64
+ return input;
65
+ });
66
+ VisuallyHiddenInput.displayName = "VisuallyHiddenInput";
67
+ var useIsomorphicLayoutEffect = typeof window !== "undefined" ? React6.useLayoutEffect : React6.useEffect;
68
+
69
+ // src/hooks/use-as-ref.ts
70
+ function useAsRef(props) {
71
+ const ref = React6.useRef(props);
72
+ useIsomorphicLayoutEffect(() => {
73
+ ref.current = props;
74
+ });
75
+ return ref;
76
+ }
77
+ function useLazyRef(fn) {
78
+ const ref = React6.useRef(null);
79
+ if (ref.current === null) {
80
+ ref.current = fn();
81
+ }
82
+ return ref;
83
+ }
84
+ var ROOT_NAME = "Rating";
85
+ var ITEM_NAME = "RatingItem";
86
+ var ENTRY_FOCUS = "ratingFocusGroup.onEntryFocus";
87
+ var EVENT_OPTIONS = { bubbles: false, cancelable: true };
88
+ function getItemId(id, value) {
89
+ return `${id}-item-${value}`;
90
+ }
91
+ function getPartialFillGradientId(id, step) {
92
+ return `partial-fill-gradient-${id}-${step}`;
93
+ }
94
+ var MAP_KEY_TO_FOCUS_INTENT = {
95
+ ArrowLeft: "prev",
96
+ ArrowUp: "prev",
97
+ ArrowRight: "next",
98
+ ArrowDown: "next",
99
+ Home: "first",
100
+ End: "last"
101
+ };
102
+ function getDirectionAwareKey(key, dir) {
103
+ if (dir !== "rtl") return key;
104
+ return key === "ArrowLeft" ? "ArrowRight" : key === "ArrowRight" ? "ArrowLeft" : key;
105
+ }
106
+ function getFocusIntent(event, dir, orientation) {
107
+ const key = getDirectionAwareKey(event.key, dir);
108
+ if (orientation === "horizontal" && ["ArrowUp", "ArrowDown"].includes(key))
109
+ return void 0;
110
+ if (orientation === "vertical" && ["ArrowLeft", "ArrowRight"].includes(key))
111
+ return void 0;
112
+ return MAP_KEY_TO_FOCUS_INTENT[key];
113
+ }
114
+ function focusFirst(candidates, preventScroll = false) {
115
+ const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;
116
+ for (const candidateRef of candidates) {
117
+ const candidate = candidateRef.current;
118
+ if (!candidate) continue;
119
+ if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;
120
+ candidate.focus({ preventScroll });
121
+ if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;
122
+ }
123
+ }
124
+ var StoreContext = React6.createContext(null);
125
+ function useStoreContext(consumerName) {
126
+ const context = React6.useContext(StoreContext);
127
+ if (!context) {
128
+ throw new Error(`\`${consumerName}\` must be used within \`${ROOT_NAME}\``);
129
+ }
130
+ return context;
131
+ }
132
+ function useStore(selector, ogStore) {
133
+ const contextStore = React6.useContext(StoreContext);
134
+ const store = ogStore ?? contextStore;
135
+ if (!store) {
136
+ throw new Error(`\`useStore\` must be used within \`${ROOT_NAME}\``);
137
+ }
138
+ const getSnapshot = React6.useCallback(
139
+ () => selector(store.getState()),
140
+ [store, selector]
141
+ );
142
+ return React6.useSyncExternalStore(store.subscribe, getSnapshot, getSnapshot);
143
+ }
144
+ var RatingContext = React6.createContext(null);
145
+ function useRatingContext(consumerName) {
146
+ const context = React6.useContext(RatingContext);
147
+ if (!context) {
148
+ throw new Error(`\`${consumerName}\` must be used within \`${ROOT_NAME}\``);
149
+ }
150
+ return context;
151
+ }
152
+ var FocusContext = React6.createContext(null);
153
+ function useFocusContext(consumerName) {
154
+ const context = React6.useContext(FocusContext);
155
+ if (!context) {
156
+ throw new Error(
157
+ `\`${consumerName}\` must be used within \`FocusProvider\``
158
+ );
159
+ }
160
+ return context;
161
+ }
162
+ function Rating(props) {
163
+ const {
164
+ value: valueProp,
165
+ defaultValue = 0,
166
+ onValueChange,
167
+ onHover,
168
+ onFocus: onFocusProp,
169
+ onMouseDown: onMouseDownProp,
170
+ dir: dirProp,
171
+ orientation = "horizontal",
172
+ activationMode = "automatic",
173
+ size = "default",
174
+ max = 5,
175
+ step = 1,
176
+ clearable = false,
177
+ asChild,
178
+ disabled = false,
179
+ readOnly = false,
180
+ required = false,
181
+ className,
182
+ id,
183
+ name,
184
+ ref,
185
+ ...rootProps
186
+ } = props;
187
+ const dir = useDirection(dirProp);
188
+ const instanceId = React6.useId();
189
+ const rootId = id ?? instanceId;
190
+ const listenersRef = useLazyRef(() => /* @__PURE__ */ new Set());
191
+ const stateRef = useLazyRef(() => ({
192
+ value: valueProp ?? defaultValue,
193
+ hoveredValue: null
194
+ }));
195
+ const propsRef = useAsRef({
196
+ onValueChange,
197
+ onHover,
198
+ onFocus: onFocusProp,
199
+ onMouseDown: onMouseDownProp,
200
+ step
201
+ });
202
+ const store = React6.useMemo(() => {
203
+ return {
204
+ subscribe: (cb) => {
205
+ listenersRef.current.add(cb);
206
+ return () => listenersRef.current.delete(cb);
207
+ },
208
+ getState: () => stateRef.current,
209
+ setState: (key, value2) => {
210
+ if (Object.is(stateRef.current[key], value2)) return;
211
+ if (key === "value" && typeof value2 === "number") {
212
+ stateRef.current.value = value2;
213
+ propsRef.current.onValueChange?.(value2);
214
+ } else if (key === "hoveredValue") {
215
+ stateRef.current.hoveredValue = value2;
216
+ propsRef.current.onHover?.(value2);
217
+ } else {
218
+ stateRef.current[key] = value2;
219
+ }
220
+ store.notify();
221
+ },
222
+ notify: () => {
223
+ for (const cb of listenersRef.current) {
224
+ cb();
225
+ }
226
+ }
227
+ };
228
+ }, [listenersRef, stateRef, propsRef]);
229
+ useIsomorphicLayoutEffect(() => {
230
+ if (valueProp !== void 0) {
231
+ store.setState("value", valueProp);
232
+ }
233
+ }, [valueProp]);
234
+ const value = useStore((state) => state.value, store);
235
+ const [formTrigger, setFormTrigger] = React6.useState(
236
+ null
237
+ );
238
+ const composedRef = useComposedRefs(ref, (node) => setFormTrigger(node));
239
+ const isFormControl = formTrigger ? !!formTrigger.closest("form") : true;
240
+ const [tabStopId, setTabStopId] = React6.useState(null);
241
+ const [isTabbingBackOut, setIsTabbingBackOut] = React6.useState(false);
242
+ const [focusableItemCount, setFocusableItemCount] = React6.useState(0);
243
+ const isClickFocusRef = React6.useRef(false);
244
+ const itemsRef = React6.useRef(/* @__PURE__ */ new Map());
245
+ const autoIndexMapRef = React6.useRef(/* @__PURE__ */ new Map());
246
+ const nextAutoIndexRef = React6.useRef(0);
247
+ const getAutoIndex = React6.useCallback((instanceId2) => {
248
+ const existingIndex = autoIndexMapRef.current.get(instanceId2);
249
+ if (existingIndex !== void 0) {
250
+ return existingIndex;
251
+ }
252
+ const newIndex = nextAutoIndexRef.current++;
253
+ autoIndexMapRef.current.set(instanceId2, newIndex);
254
+ return newIndex;
255
+ }, []);
256
+ const onItemFocus = React6.useCallback((tabStopId2) => {
257
+ setTabStopId(tabStopId2);
258
+ }, []);
259
+ const onItemShiftTab = React6.useCallback(() => {
260
+ setIsTabbingBackOut(true);
261
+ }, []);
262
+ const onFocusableItemAdd = React6.useCallback(() => {
263
+ setFocusableItemCount((prevCount) => prevCount + 1);
264
+ }, []);
265
+ const onFocusableItemRemove = React6.useCallback(() => {
266
+ setFocusableItemCount((prevCount) => prevCount - 1);
267
+ }, []);
268
+ const onItemRegister = React6.useCallback((item) => {
269
+ itemsRef.current.set(item.id, item);
270
+ }, []);
271
+ const onItemUnregister = React6.useCallback((id2) => {
272
+ itemsRef.current.delete(id2);
273
+ }, []);
274
+ const getItems = React6.useCallback(() => {
275
+ return Array.from(itemsRef.current.values()).filter((item) => item.ref.current).sort((a, b) => {
276
+ const elementA = a.ref.current;
277
+ const elementB = b.ref.current;
278
+ if (!elementA || !elementB) return 0;
279
+ const position = elementA.compareDocumentPosition(elementB);
280
+ if (position & Node.DOCUMENT_POSITION_FOLLOWING) {
281
+ return -1;
282
+ }
283
+ if (position & Node.DOCUMENT_POSITION_PRECEDING) {
284
+ return 1;
285
+ }
286
+ return 0;
287
+ });
288
+ }, []);
289
+ const onBlur = React6.useCallback(
290
+ (event) => {
291
+ rootProps.onBlur?.(event);
292
+ if (event.defaultPrevented) return;
293
+ setIsTabbingBackOut(false);
294
+ },
295
+ [rootProps.onBlur]
296
+ );
297
+ const onFocus = React6.useCallback(
298
+ (event) => {
299
+ propsRef.current.onFocus?.(event);
300
+ if (event.defaultPrevented) return;
301
+ const isKeyboardFocus = !isClickFocusRef.current;
302
+ if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {
303
+ const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);
304
+ event.currentTarget.dispatchEvent(entryFocusEvent);
305
+ if (!entryFocusEvent.defaultPrevented) {
306
+ const items = Array.from(itemsRef.current.values()).filter(
307
+ (item) => !item.disabled
308
+ );
309
+ const selectedItem = propsRef.current.step < 1 ? items.find((item) => item.value === Math.ceil(value)) : items.find((item) => item.value === value);
310
+ const currentItem = items.find((item) => item.id === tabStopId);
311
+ const candidateItems = [selectedItem, currentItem, ...items].filter(
312
+ Boolean
313
+ );
314
+ const candidateRefs = candidateItems.map((item) => item.ref);
315
+ focusFirst(candidateRefs, false);
316
+ }
317
+ }
318
+ isClickFocusRef.current = false;
319
+ },
320
+ [propsRef, isTabbingBackOut, value, tabStopId]
321
+ );
322
+ const onMouseDown = React6.useCallback(
323
+ (event) => {
324
+ propsRef.current.onMouseDown?.(event);
325
+ if (event.defaultPrevented) return;
326
+ isClickFocusRef.current = true;
327
+ },
328
+ [propsRef]
329
+ );
330
+ const contextValue = React6.useMemo(
331
+ () => ({
332
+ rootId,
333
+ dir,
334
+ orientation,
335
+ activationMode,
336
+ disabled,
337
+ readOnly,
338
+ size,
339
+ max,
340
+ step,
341
+ clearable,
342
+ getAutoIndex
343
+ }),
344
+ [
345
+ rootId,
346
+ dir,
347
+ orientation,
348
+ activationMode,
349
+ disabled,
350
+ readOnly,
351
+ size,
352
+ max,
353
+ step,
354
+ clearable,
355
+ getAutoIndex
356
+ ]
357
+ );
358
+ const focusContextValue = React6.useMemo(
359
+ () => ({
360
+ tabStopId,
361
+ onItemFocus,
362
+ onItemShiftTab,
363
+ onFocusableItemAdd,
364
+ onFocusableItemRemove,
365
+ onItemRegister,
366
+ onItemUnregister,
367
+ getItems
368
+ }),
369
+ [
370
+ tabStopId,
371
+ onItemFocus,
372
+ onItemShiftTab,
373
+ onFocusableItemAdd,
374
+ onFocusableItemRemove,
375
+ onItemRegister,
376
+ onItemUnregister,
377
+ getItems
378
+ ]
379
+ );
380
+ const RootPrimitive = asChild ? Slot : "div";
381
+ return /* @__PURE__ */ jsx(StoreContext.Provider, { value: store, children: /* @__PURE__ */ jsx(RatingContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxs(FocusContext.Provider, { value: focusContextValue, children: [
382
+ /* @__PURE__ */ jsx(
383
+ RootPrimitive,
384
+ {
385
+ id: rootId,
386
+ role: "radiogroup",
387
+ "aria-orientation": orientation,
388
+ "data-disabled": disabled ? "" : void 0,
389
+ "data-readonly": readOnly ? "" : void 0,
390
+ "data-orientation": orientation,
391
+ "data-slot": "rating",
392
+ dir,
393
+ tabIndex: isTabbingBackOut || focusableItemCount === 0 ? -1 : 0,
394
+ ...rootProps,
395
+ ref: composedRef,
396
+ className: cn(
397
+ "flex gap-1 text-primary outline-none",
398
+ orientation === "horizontal" ? "flex-row items-center" : "flex-col items-start",
399
+ className
400
+ ),
401
+ onBlur,
402
+ onFocus,
403
+ onMouseDown
404
+ }
405
+ ),
406
+ /* @__PURE__ */ jsx("svg", { width: "0", height: "0", style: { position: "absolute" }, children: /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("linearGradient", { id: getPartialFillGradientId(rootId, step), children: dir === "rtl" ? /* @__PURE__ */ jsxs(Fragment, { children: [
407
+ /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: "transparent" }),
408
+ /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: "currentColor" })
409
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
410
+ /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: "currentColor" }),
411
+ /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: "transparent" })
412
+ ] }) }) }) }),
413
+ isFormControl && /* @__PURE__ */ jsx(
414
+ VisuallyHiddenInput,
415
+ {
416
+ type: "hidden",
417
+ control: formTrigger,
418
+ name,
419
+ value,
420
+ disabled,
421
+ readOnly,
422
+ required
423
+ }
424
+ )
425
+ ] }) }) });
426
+ }
427
+ function RatingItem(props) {
428
+ const {
429
+ index,
430
+ asChild,
431
+ onClick: onClickProp,
432
+ onFocus: onFocusProp,
433
+ onKeyDown: onKeyDownProp,
434
+ onMouseDown: onMouseDownProp,
435
+ onMouseEnter: onMouseEnterProp,
436
+ onMouseMove: onMouseMoveProp,
437
+ onMouseLeave: onMouseLeaveProp,
438
+ disabled,
439
+ className,
440
+ children,
441
+ ref,
442
+ ...itemProps
443
+ } = props;
444
+ const itemRef = React6.useRef(null);
445
+ const composedRef = useComposedRefs(ref, itemRef);
446
+ const context = useRatingContext(ITEM_NAME);
447
+ const instanceId = React6.useId();
448
+ const actualIndex = React6.useMemo(() => {
449
+ if (index !== void 0) {
450
+ return index;
451
+ }
452
+ return context.getAutoIndex(instanceId);
453
+ }, [index, context, instanceId]);
454
+ const itemValue = actualIndex + 1;
455
+ const store = useStoreContext(ITEM_NAME);
456
+ const focusContext = useFocusContext(ITEM_NAME);
457
+ const value = useStore((state) => state.value);
458
+ const hoveredValue = useStore((state) => state.hoveredValue);
459
+ const clearable = context.clearable;
460
+ const step = context.step;
461
+ const activationMode = context.activationMode;
462
+ const itemId = getItemId(context.rootId, itemValue);
463
+ const isDisabled = context.disabled || disabled;
464
+ const isReadOnly = context.readOnly;
465
+ const isTabStop = focusContext.tabStopId === itemId;
466
+ const displayValue = hoveredValue ?? value;
467
+ const isFilled = displayValue >= itemValue;
468
+ const isPartiallyFilled = step < 1 && displayValue >= itemValue - step && displayValue < itemValue;
469
+ const isHovered = hoveredValue !== null && hoveredValue < itemValue;
470
+ const isMouseClickRef = React6.useRef(false);
471
+ const propsRef = useAsRef({
472
+ onClick: onClickProp,
473
+ onFocus: onFocusProp,
474
+ onKeyDown: onKeyDownProp,
475
+ onMouseDown: onMouseDownProp,
476
+ onMouseEnter: onMouseEnterProp,
477
+ onMouseMove: onMouseMoveProp,
478
+ onMouseLeave: onMouseLeaveProp
479
+ });
480
+ useIsomorphicLayoutEffect(() => {
481
+ focusContext.onItemRegister({
482
+ id: itemId,
483
+ ref: itemRef,
484
+ value: itemValue,
485
+ disabled: !!isDisabled
486
+ });
487
+ if (!isDisabled) {
488
+ focusContext.onFocusableItemAdd();
489
+ }
490
+ return () => {
491
+ focusContext.onItemUnregister(itemId);
492
+ if (!isDisabled) {
493
+ focusContext.onFocusableItemRemove();
494
+ }
495
+ };
496
+ }, [focusContext, itemId, itemValue, isDisabled]);
497
+ const onClick = React6.useCallback(
498
+ (event) => {
499
+ propsRef.current.onClick?.(event);
500
+ if (event.defaultPrevented) return;
501
+ if (!isDisabled && !isReadOnly) {
502
+ let newValue = itemValue;
503
+ if (step < 1) {
504
+ const rect = event.currentTarget.getBoundingClientRect();
505
+ const clickX = event.clientX - rect.left;
506
+ const isLeftHalf = clickX < rect.width / 2;
507
+ if (context.dir === "rtl") {
508
+ if (!isLeftHalf) {
509
+ newValue = itemValue - step;
510
+ }
511
+ } else {
512
+ if (isLeftHalf) {
513
+ newValue = itemValue - step;
514
+ }
515
+ }
516
+ }
517
+ if (clearable && value === newValue) {
518
+ newValue = 0;
519
+ }
520
+ store.setState("value", newValue);
521
+ }
522
+ },
523
+ [
524
+ isDisabled,
525
+ isReadOnly,
526
+ clearable,
527
+ step,
528
+ value,
529
+ itemValue,
530
+ store,
531
+ context.dir,
532
+ propsRef
533
+ ]
534
+ );
535
+ const onFocus = React6.useCallback(
536
+ (event) => {
537
+ propsRef.current.onFocus?.(event);
538
+ if (event.defaultPrevented) return;
539
+ focusContext.onItemFocus(itemId);
540
+ const isKeyboardFocus = !isMouseClickRef.current;
541
+ if (!isDisabled && !isReadOnly && activationMode !== "manual" && isKeyboardFocus) {
542
+ const isHalfStepValue = step < 1 && value === itemValue - step;
543
+ if (!isHalfStepValue) {
544
+ const newValue = clearable && value === itemValue ? 0 : itemValue;
545
+ store.setState("value", newValue);
546
+ }
547
+ }
548
+ isMouseClickRef.current = false;
549
+ },
550
+ [
551
+ focusContext,
552
+ itemId,
553
+ activationMode,
554
+ isDisabled,
555
+ isReadOnly,
556
+ clearable,
557
+ value,
558
+ itemValue,
559
+ step,
560
+ store,
561
+ propsRef
562
+ ]
563
+ );
564
+ const onKeyDown = React6.useCallback(
565
+ (event) => {
566
+ propsRef.current.onKeyDown?.(event);
567
+ if (event.defaultPrevented) return;
568
+ if ((event.key === "Enter" || event.key === " ") && activationMode === "manual") {
569
+ event.preventDefault();
570
+ if (!isDisabled && !isReadOnly && itemRef.current) {
571
+ itemRef.current.click();
572
+ }
573
+ return;
574
+ }
575
+ if (event.key === "Tab" && event.shiftKey) {
576
+ focusContext.onItemShiftTab();
577
+ return;
578
+ }
579
+ if (event.target !== event.currentTarget) return;
580
+ const focusIntent = getFocusIntent(
581
+ event,
582
+ context.dir,
583
+ context.orientation
584
+ );
585
+ if (focusIntent !== void 0) {
586
+ if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey)
587
+ return;
588
+ event.preventDefault();
589
+ if (step < 1 && (focusIntent === "prev" || focusIntent === "next")) {
590
+ if (!isDisabled && !isReadOnly) {
591
+ let newValue = value;
592
+ if (focusIntent === "next") {
593
+ newValue = Math.min(value + step, context.max);
594
+ } else {
595
+ newValue = Math.max(value - step, 0);
596
+ }
597
+ store.setState("value", newValue);
598
+ const items2 = focusContext.getItems().filter((item) => !item.disabled);
599
+ const targetItem = items2.find(
600
+ (item) => item.value === Math.ceil(newValue)
601
+ );
602
+ if (targetItem?.ref.current) {
603
+ queueMicrotask(() => targetItem.ref.current?.focus());
604
+ }
605
+ }
606
+ return;
607
+ }
608
+ const items = focusContext.getItems().filter((item) => !item.disabled);
609
+ let candidateRefs = items.map((item) => item.ref);
610
+ if (focusIntent === "last") {
611
+ candidateRefs.reverse();
612
+ } else if (focusIntent === "prev" || focusIntent === "next") {
613
+ if (focusIntent === "prev") candidateRefs.reverse();
614
+ const currentIndex = candidateRefs.findIndex(
615
+ (ref2) => ref2.current === event.currentTarget
616
+ );
617
+ candidateRefs = candidateRefs.slice(currentIndex + 1);
618
+ }
619
+ queueMicrotask(() => focusFirst(candidateRefs));
620
+ }
621
+ },
622
+ [
623
+ focusContext,
624
+ context.dir,
625
+ context.orientation,
626
+ activationMode,
627
+ isDisabled,
628
+ isReadOnly,
629
+ step,
630
+ value,
631
+ context.max,
632
+ store,
633
+ propsRef
634
+ ]
635
+ );
636
+ const onMouseDown = React6.useCallback(
637
+ (event) => {
638
+ propsRef.current.onMouseDown?.(event);
639
+ if (event.defaultPrevented) return;
640
+ isMouseClickRef.current = true;
641
+ if (isDisabled) {
642
+ event.preventDefault();
643
+ } else {
644
+ focusContext.onItemFocus(itemId);
645
+ }
646
+ },
647
+ [focusContext, itemId, isDisabled, propsRef]
648
+ );
649
+ const onMouseEnter = React6.useCallback(
650
+ (event) => {
651
+ propsRef.current.onMouseEnter?.(event);
652
+ if (event.defaultPrevented) return;
653
+ if (!isDisabled && !isReadOnly) {
654
+ let hoverValue = itemValue;
655
+ if (step < 1) {
656
+ const rect = event.currentTarget.getBoundingClientRect();
657
+ const mouseX = event.clientX - rect.left;
658
+ const isLeftHalf = mouseX < rect.width / 2;
659
+ if (context.dir === "rtl") {
660
+ if (!isLeftHalf) {
661
+ hoverValue = itemValue - step;
662
+ }
663
+ } else {
664
+ if (isLeftHalf) {
665
+ hoverValue = itemValue - step;
666
+ }
667
+ }
668
+ }
669
+ store.setState("hoveredValue", hoverValue);
670
+ }
671
+ },
672
+ [isDisabled, isReadOnly, step, itemValue, store, context.dir, propsRef]
673
+ );
674
+ const onMouseLeave = React6.useCallback(
675
+ (event) => {
676
+ propsRef.current.onMouseLeave?.(event);
677
+ if (event.defaultPrevented) return;
678
+ if (!isDisabled && !isReadOnly) {
679
+ store.setState("hoveredValue", null);
680
+ }
681
+ },
682
+ [isDisabled, isReadOnly, store, propsRef]
683
+ );
684
+ const onMouseMove = React6.useCallback(
685
+ (event) => {
686
+ propsRef.current.onMouseMove?.(event);
687
+ if (event.defaultPrevented) return;
688
+ if (!isDisabled && !isReadOnly && step < 1) {
689
+ const rect = event.currentTarget.getBoundingClientRect();
690
+ const mouseX = event.clientX - rect.left;
691
+ const isLeftHalf = mouseX < rect.width / 2;
692
+ let hoverValue = itemValue;
693
+ if (context.dir === "rtl") {
694
+ hoverValue = !isLeftHalf ? itemValue - step : itemValue;
695
+ } else {
696
+ hoverValue = isLeftHalf ? itemValue - step : itemValue;
697
+ }
698
+ store.setState("hoveredValue", hoverValue);
699
+ }
700
+ },
701
+ [isDisabled, isReadOnly, step, itemValue, store, context.dir, propsRef]
702
+ );
703
+ const dataState = isFilled ? "full" : isPartiallyFilled ? "partial" : "empty";
704
+ const ItemPrimitive = asChild ? Slot : "button";
705
+ return /* @__PURE__ */ jsx(
706
+ ItemPrimitive,
707
+ {
708
+ role: "radio",
709
+ type: "button",
710
+ id: itemId,
711
+ "aria-checked": isFilled,
712
+ "aria-posinset": itemValue,
713
+ "aria-setsize": context.max,
714
+ "data-disabled": isDisabled ? "" : void 0,
715
+ "data-readonly": isReadOnly ? "" : void 0,
716
+ "data-state": isFilled ? "full" : isPartiallyFilled ? "partial" : "empty",
717
+ "data-hovered": isHovered ? "" : void 0,
718
+ "data-slot": "rating-item",
719
+ disabled: isDisabled,
720
+ tabIndex: isTabStop ? 0 : -1,
721
+ ...itemProps,
722
+ ref: composedRef,
723
+ style: {
724
+ ...itemProps.style,
725
+ ...isPartiallyFilled && {
726
+ "--partial-fill": `url(#${getPartialFillGradientId(context.rootId, step)})`
727
+ }
728
+ },
729
+ className: cn(
730
+ "inline-flex items-center justify-center rounded transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50",
731
+ "[&_svg:not([class*='size-'])]:size-full [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:transition-colors [&_svg]:duration-200 data-[state=empty]:[&_svg]:fill-transparent data-[state=full]:[&_svg]:fill-current data-[state=partial]:[&_svg]:fill-(--partial-fill)",
732
+ context.size === "sm" ? "size-4" : context.size === "lg" ? "size-6" : "size-5",
733
+ className
734
+ ),
735
+ onClick,
736
+ onFocus,
737
+ onKeyDown,
738
+ onMouseDown,
739
+ onMouseEnter,
740
+ onMouseMove,
741
+ onMouseLeave,
742
+ children: typeof children === "function" ? children(dataState) : children ?? /* @__PURE__ */ jsx(Star, {})
743
+ }
744
+ );
745
+ }
746
+
747
+ export { Rating, RatingItem, useStore as useRating };
748
+ //# sourceMappingURL=rating.js.map
749
+ //# sourceMappingURL=rating.js.map