@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 @@
1
+ {"version":3,"sources":["../../src/lib/compose-refs.ts","../../src/lib/utils.ts","../../src/radix-vega/mask-input.tsx"],"names":["React","result"],"mappings":"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","file":"mask-input.js","sourcesContent":["import * as React from \"react\";\n\ntype PossibleRef<T> = React.Ref<T> | undefined;\n\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */\nfunction setRef<T>(ref: PossibleRef<T>, value: T) {\n if (typeof ref === \"function\") {\n return ref(value);\n }\n\n if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n}\n\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */\nfunction composeRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T> {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup === \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n\n // React <19 will log an error to the console if a callback ref returns a\n // value. We don't use ref cleanups internally so this will only happen if a\n // user's ref callback returns a value, which we only expect if they are\n // using the cleanup functionality added in React 19.\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup === \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\n\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */\nfunction useComposedRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T> {\n // biome-ignore lint/correctness/useExhaustiveDependencies: we want to memoize by all values\n return React.useCallback(composeRefs(...refs), refs);\n}\n\nexport { composeRefs, useComposedRefs };\n","import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\n/**\n * Merges Tailwind class names, resolving any conflicts.\n *\n * @param inputs - An array of class names to merge.\n * @returns A string of merged and optimized class names.\n */\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport { Slot } from \"@radix-ui/react-slot\";\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@/lib/compose-refs\";\nimport { cn } from \"@/lib/utils\";\n\nconst PAST_YEARS_LIMIT = 120;\nconst FUTURE_YEARS_LIMIT = 10;\nconst DEFAULT_CURRENCY = \"USD\";\nconst DEFAULT_LOCALE = \"en-US\";\n\nconst NUMERIC_MASK_PATTERNS =\n /^(phone|zipCode|zipCodeExtended|ssn|ein|time|date|creditCard|creditCardExpiry)$/;\nconst CURRENCY_PERCENTAGE_SYMBOLS = /[€$%]/;\n\ninterface CurrencySymbols {\n currency: string;\n decimal: string;\n group: string;\n}\n\nconst formattersCache = new Map<string, Intl.NumberFormat>();\nconst currencyAtEndCache = new Map<string, boolean>();\nconst currencySymbolsCache = new Map<string, CurrencySymbols>();\nconst daysInMonthCache = [\n 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n] as const;\n\nconst REGEX_CACHE = {\n digitsOnly: /^\\d+$/,\n nonDigits: /\\D/g,\n nonAlphaNumeric: /[^A-Z0-9]/gi,\n nonNumericDot: /[^0-9.]/g,\n nonCurrencyChars: /[^\\d.,]/g,\n hashPattern: /#/g,\n currencyAtEnd: /\\d\\s*[^\\d\\s]+$/,\n percentageChars: /[^\\d.]/g,\n phone: /^\\d{10}$/,\n ssn: /^\\d{9}$/,\n zipCode: /^\\d{5}$/,\n zipCodeExtended: /^\\d{9}$/,\n isbn: /^\\d{13}$/,\n ein: /^\\d{9}$/,\n time: /^\\d{4}$/,\n creditCard: /^\\d{13,19}$/,\n creditCardExpiry: /^\\d{4}$/,\n licensePlate: /^[A-Z0-9]{6}$/,\n macAddress: /^[A-F0-9]{12}$/,\n currencyValidation: /^\\d+(\\.\\d{1,2})?$/,\n ipv4Segment: /^\\d{1,3}$/,\n} as const;\n\nfunction getCachedFormatter(\n locale: string | undefined,\n opts: Intl.NumberFormatOptions,\n): Intl.NumberFormat {\n const {\n currency,\n minimumFractionDigits = 0,\n maximumFractionDigits = 2,\n } = opts;\n\n const key = `${locale}|${currency}|${minimumFractionDigits}|${maximumFractionDigits}`;\n\n if (!formattersCache.has(key)) {\n try {\n formattersCache.set(\n key,\n new Intl.NumberFormat(locale, {\n style: \"currency\",\n currency,\n ...opts,\n }),\n );\n } catch {\n formattersCache.set(\n key,\n new Intl.NumberFormat(DEFAULT_LOCALE, {\n style: \"currency\",\n currency: DEFAULT_CURRENCY,\n ...opts,\n }),\n );\n }\n }\n\n const formatter = formattersCache.get(key);\n if (!formatter) {\n throw new Error(`Failed to create formatter for ${key}`);\n }\n return formatter;\n}\n\nfunction getCachedCurrencySymbols(opts: TransformOptions): CurrencySymbols {\n const { locale, currency } = opts;\n\n const key = `${locale}|${currency}`;\n const cached = currencySymbolsCache.get(key);\n if (cached) {\n return cached;\n }\n\n let currencySymbol = \"$\";\n let decimalSeparator = \".\";\n let groupSeparator = \",\";\n\n try {\n const formatter = getCachedFormatter(locale, {\n currency,\n minimumFractionDigits: 0,\n maximumFractionDigits: 2,\n });\n const parts = formatter.formatToParts(1234.5);\n const currencyPart = parts.find((part) => part.type === \"currency\");\n const decimalPart = parts.find((part) => part.type === \"decimal\");\n const groupPart = parts.find((part) => part.type === \"group\");\n\n if (currencyPart) currencySymbol = currencyPart.value;\n if (decimalPart) decimalSeparator = decimalPart.value;\n if (groupPart) groupSeparator = groupPart.value;\n } catch {\n // Keep defaults\n }\n\n const symbols: CurrencySymbols = {\n currency: currencySymbol,\n decimal: decimalSeparator,\n group: groupSeparator,\n };\n currencySymbolsCache.set(key, symbols);\n return symbols;\n}\n\nfunction isCurrencyAtEnd(opts: TransformOptions): boolean {\n const { locale, currency } = opts;\n\n const key = `${locale}|${currency}`;\n const cached = currencyAtEndCache.get(key);\n if (cached !== undefined) {\n return cached;\n }\n\n try {\n const formatter = getCachedFormatter(locale, {\n currency,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n });\n const sample = formatter.format(123);\n const result = REGEX_CACHE.currencyAtEnd.test(sample);\n currencyAtEndCache.set(key, result);\n return result;\n } catch {\n currencyAtEndCache.set(key, false);\n return false;\n }\n}\n\nfunction isCurrencyMask(opts: {\n mask: MaskPatternKey | MaskPattern | undefined;\n pattern?: string;\n}): boolean {\n const { mask, pattern } = opts;\n\n return (\n mask === \"currency\" ||\n Boolean(pattern && (pattern.includes(\"$\") || pattern.includes(\"€\")))\n );\n}\n\ninterface TransformOptions {\n currency?: string;\n locale?: string;\n}\n\ninterface ValidateOptions {\n min?: number;\n max?: number;\n}\n\ninterface MaskPattern {\n pattern: string;\n transform?: (value: string, opts?: TransformOptions) => string;\n validate?: (value: string, opts?: ValidateOptions) => boolean;\n}\n\ntype MaskPatternKey =\n | \"phone\"\n | \"ssn\"\n | \"date\"\n | \"time\"\n | \"creditCard\"\n | \"creditCardExpiry\"\n | \"zipCode\"\n | \"zipCodeExtended\"\n | \"currency\"\n | \"percentage\"\n | \"licensePlate\"\n | \"ipv4\"\n | \"macAddress\"\n | \"isbn\"\n | \"ein\";\n\nconst MASK_PATTERNS: Record<MaskPatternKey, MaskPattern> = {\n phone: {\n pattern: \"(###) ###-####\",\n transform: (value) => value.replace(REGEX_CACHE.nonDigits, \"\"),\n validate: (value) =>\n REGEX_CACHE.phone.test(value.replace(REGEX_CACHE.nonDigits, \"\")),\n },\n ssn: {\n pattern: \"###-##-####\",\n transform: (value) => value.replace(REGEX_CACHE.nonDigits, \"\"),\n validate: (value) =>\n REGEX_CACHE.ssn.test(value.replace(REGEX_CACHE.nonDigits, \"\")),\n },\n date: {\n pattern: \"##/##/####\",\n transform: (value) => value.replace(REGEX_CACHE.nonDigits, \"\"),\n validate: (value) => {\n const cleaned = value.replace(REGEX_CACHE.nonDigits, \"\");\n if (cleaned.length !== 8) return false;\n const month = parseInt(cleaned.substring(0, 2), 10);\n const day = parseInt(cleaned.substring(2, 4), 10);\n const year = parseInt(cleaned.substring(4, 8), 10);\n\n const currentYear = new Date().getFullYear();\n const minYear = currentYear - PAST_YEARS_LIMIT;\n const maxYear = currentYear + FUTURE_YEARS_LIMIT;\n if (\n month < 1 ||\n month > 12 ||\n day < 1 ||\n year < minYear ||\n year > maxYear\n )\n return false;\n\n const maxDays =\n month === 2 &&\n ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0)\n ? 29\n : (daysInMonthCache[month - 1] ?? 31);\n\n return day <= maxDays;\n },\n },\n time: {\n pattern: \"##:##\",\n transform: (value) => value.replace(REGEX_CACHE.nonDigits, \"\"),\n validate: (value) => {\n const cleaned = value.replace(REGEX_CACHE.nonDigits, \"\");\n if (!REGEX_CACHE.time.test(cleaned)) return false;\n const hours = parseInt(cleaned.substring(0, 2), 10);\n const minutes = parseInt(cleaned.substring(2, 4), 10);\n return hours <= 23 && minutes <= 59;\n },\n },\n creditCard: {\n pattern: \"#### #### #### ####\",\n transform: (value) => value.replace(REGEX_CACHE.nonDigits, \"\"),\n validate: (value) => {\n const cleaned = value.replace(REGEX_CACHE.nonDigits, \"\");\n if (!REGEX_CACHE.creditCard.test(cleaned)) return false;\n\n let sum = 0;\n let isEven = false;\n for (let i = cleaned.length - 1; i >= 0; i--) {\n const digitChar = cleaned[i];\n if (!digitChar) continue;\n let digit = parseInt(digitChar, 10);\n if (isEven) {\n digit *= 2;\n if (digit > 9) {\n digit -= 9;\n }\n }\n sum += digit;\n isEven = !isEven;\n }\n return sum % 10 === 0;\n },\n },\n creditCardExpiry: {\n pattern: \"##/##\",\n transform: (value) => value.replace(REGEX_CACHE.nonDigits, \"\"),\n validate: (value) => {\n const cleaned = value.replace(REGEX_CACHE.nonDigits, \"\");\n if (!REGEX_CACHE.creditCardExpiry.test(cleaned)) return false;\n\n const month = parseInt(cleaned.substring(0, 2), 10);\n const year = parseInt(cleaned.substring(2, 4), 10);\n\n if (month < 1 || month > 12) return false;\n\n const now = new Date();\n const currentYear = now.getFullYear();\n const currentMonth = now.getMonth() + 1;\n\n const fullYear = year <= 75 ? 2000 + year : 1900 + year;\n\n if (\n fullYear < currentYear ||\n (fullYear === currentYear && month < currentMonth)\n ) {\n return false;\n }\n\n const maxYear = currentYear + 50;\n if (fullYear > maxYear) {\n return false;\n }\n\n return true;\n },\n },\n zipCode: {\n pattern: \"#####\",\n transform: (value) => value.replace(REGEX_CACHE.nonDigits, \"\"),\n validate: (value) =>\n REGEX_CACHE.zipCode.test(value.replace(REGEX_CACHE.nonDigits, \"\")),\n },\n zipCodeExtended: {\n pattern: \"#####-####\",\n transform: (value) => value.replace(REGEX_CACHE.nonDigits, \"\"),\n validate: (value) =>\n REGEX_CACHE.zipCodeExtended.test(\n value.replace(REGEX_CACHE.nonDigits, \"\"),\n ),\n },\n currency: {\n pattern: \"$###,###.##\",\n transform: (\n value,\n { currency = DEFAULT_CURRENCY, locale = DEFAULT_LOCALE } = {},\n ) => {\n let localeDecimalSeparator = \".\";\n\n try {\n const formatter = getCachedFormatter(locale, {\n currency,\n minimumFractionDigits: 0,\n maximumFractionDigits: 2,\n });\n const parts = formatter.formatToParts(1234.5);\n const decimalPart = parts.find((part) => part.type === \"decimal\");\n\n if (decimalPart) localeDecimalSeparator = decimalPart.value;\n } catch {\n // Keep defaults\n }\n\n const cleaned = value.replace(REGEX_CACHE.nonCurrencyChars, \"\");\n\n const dotIndex = cleaned.indexOf(\".\");\n const commaIndex = cleaned.indexOf(\",\");\n\n let hasDecimalSeparator = false;\n let decimalIndex = -1;\n\n if (localeDecimalSeparator === \",\") {\n const lastCommaIndex = cleaned.lastIndexOf(\",\");\n if (lastCommaIndex !== -1) {\n const afterComma = cleaned.substring(lastCommaIndex + 1);\n if (afterComma.length <= 2 && /^\\d*$/.test(afterComma)) {\n hasDecimalSeparator = true;\n decimalIndex = lastCommaIndex;\n }\n }\n\n if (!hasDecimalSeparator && dotIndex !== -1) {\n const afterDot = cleaned.substring(dotIndex + 1);\n if (afterDot.length <= 2 && /^\\d*$/.test(afterDot)) {\n hasDecimalSeparator = true;\n decimalIndex = dotIndex;\n }\n }\n\n if (!hasDecimalSeparator && cleaned.length >= 4) {\n const match = cleaned.match(/^(\\d+)\\.(\\d{3})(\\d{1,2})$/);\n if (match) {\n const [, beforeDot, thousandsPart, decimalPart] = match;\n const integerPart = (beforeDot ?? \"\") + (thousandsPart ?? \"\");\n const result = `${integerPart}.${decimalPart}`;\n return result;\n }\n }\n } else {\n const lastDotIndex = cleaned.lastIndexOf(\".\");\n if (lastDotIndex !== -1) {\n const afterDot = cleaned.substring(lastDotIndex + 1);\n if (afterDot.length <= 2 && /^\\d*$/.test(afterDot)) {\n hasDecimalSeparator = true;\n decimalIndex = lastDotIndex;\n }\n }\n\n if (!hasDecimalSeparator && commaIndex !== -1) {\n const afterComma = cleaned.substring(commaIndex + 1);\n const looksLikeThousands = commaIndex <= 3 && afterComma.length >= 3;\n if (\n !looksLikeThousands &&\n afterComma.length <= 2 &&\n /^\\d*$/.test(afterComma)\n ) {\n hasDecimalSeparator = true;\n decimalIndex = commaIndex;\n }\n }\n }\n\n if (hasDecimalSeparator && decimalIndex !== -1) {\n const beforeDecimal = cleaned\n .substring(0, decimalIndex)\n .replace(/[.,]/g, \"\");\n const afterDecimal = cleaned\n .substring(decimalIndex + 1)\n .replace(/[.,]/g, \"\");\n\n if (afterDecimal === \"\") {\n const result = `${beforeDecimal}.`;\n return result;\n }\n\n const result = `${beforeDecimal}.${afterDecimal.substring(0, 2)}`;\n return result;\n }\n\n const digitsOnly = cleaned.replace(/[.,]/g, \"\");\n return digitsOnly;\n },\n validate: (value) => {\n if (!REGEX_CACHE.currencyValidation.test(value)) return false;\n const num = parseFloat(value);\n return !Number.isNaN(num) && num >= 0;\n },\n },\n percentage: {\n pattern: \"##.##%\",\n transform: (value) => {\n const cleaned = value.replace(REGEX_CACHE.percentageChars, \"\");\n const parts = cleaned.split(\".\");\n if (parts.length > 2) {\n return `${parts[0]}.${parts.slice(1).join(\"\")}`;\n }\n if (parts[1] && parts[1].length > 2) {\n return `${parts[0]}.${parts[1].substring(0, 2)}`;\n }\n return cleaned;\n },\n validate: (value, opts = {}) => {\n const num = parseFloat(value);\n const min = opts.min ?? 0;\n const max = opts.max ?? 100;\n return !Number.isNaN(num) && num >= min && num <= max;\n },\n },\n licensePlate: {\n pattern: \"###-###\",\n transform: (value) =>\n value.replace(REGEX_CACHE.nonAlphaNumeric, \"\").toUpperCase(),\n validate: (value) => REGEX_CACHE.licensePlate.test(value),\n },\n ipv4: {\n pattern: \"###.###.###.###\",\n transform: (value) => value.replace(REGEX_CACHE.nonNumericDot, \"\"),\n validate: (value) => {\n if (value.includes(\".\")) {\n const segments = value.split(\".\");\n if (segments.length > 4) return false;\n\n return segments.every((segment) => {\n if (segment === \"\") return true;\n if (!REGEX_CACHE.ipv4Segment.test(segment)) return false;\n const num = parseInt(segment, 10);\n return num <= 255;\n });\n } else {\n if (!REGEX_CACHE.digitsOnly.test(value)) return false;\n if (value.length > 12) return false;\n\n const chunks = [];\n for (let i = 0; i < value.length; i += 3) {\n chunks.push(value.substring(i, i + 3));\n }\n\n if (chunks.length > 4) return false;\n\n return chunks.every((chunk) => {\n const num = parseInt(chunk, 10);\n return num >= 0 && num <= 255;\n });\n }\n },\n },\n macAddress: {\n pattern: \"##:##:##:##:##:##\",\n transform: (value) =>\n value.replace(REGEX_CACHE.nonAlphaNumeric, \"\").toUpperCase(),\n validate: (value) => REGEX_CACHE.macAddress.test(value),\n },\n isbn: {\n pattern: \"###-#-###-#####-#\",\n transform: (value) => value.replace(REGEX_CACHE.nonDigits, \"\"),\n validate: (value) =>\n REGEX_CACHE.isbn.test(value.replace(REGEX_CACHE.nonDigits, \"\")),\n },\n ein: {\n pattern: \"##-#######\",\n transform: (value) => value.replace(REGEX_CACHE.nonDigits, \"\"),\n validate: (value) =>\n REGEX_CACHE.ein.test(value.replace(REGEX_CACHE.nonDigits, \"\")),\n },\n};\n\nfunction applyMask(opts: {\n value: string;\n pattern: string;\n currency?: string;\n locale?: string;\n mask?: MaskPatternKey | MaskPattern;\n}): string {\n const { value, pattern, currency, locale, mask } = opts;\n\n const cleanValue = value;\n\n if (pattern.includes(\"$\") || pattern.includes(\"€\") || mask === \"currency\") {\n return applyCurrencyMask({\n value: cleanValue,\n currency: currency ?? DEFAULT_CURRENCY,\n locale: locale ?? DEFAULT_LOCALE,\n });\n }\n\n if (pattern.includes(\"%\")) {\n return applyPercentageMask(cleanValue);\n }\n\n if (mask === \"ipv4\") {\n return cleanValue;\n }\n\n const maskedChars: string[] = [];\n let valueIndex = 0;\n\n for (let i = 0; i < pattern.length && valueIndex < cleanValue.length; i++) {\n const patternChar = pattern[i];\n const valueChar = cleanValue[valueIndex];\n\n if (patternChar === \"#\" && valueChar) {\n maskedChars.push(valueChar);\n valueIndex++;\n } else if (patternChar) {\n maskedChars.push(patternChar);\n }\n }\n\n return maskedChars.join(\"\");\n}\n\nfunction applyCurrencyMask(opts: {\n value: string;\n currency?: string;\n locale?: string;\n}): string {\n const { value, currency = DEFAULT_CURRENCY, locale = DEFAULT_LOCALE } = opts;\n\n if (!value) return \"\";\n\n const {\n currency: currencySymbol,\n decimal: decimalSeparator,\n group: groupSeparator,\n } = getCachedCurrencySymbols({ locale, currency });\n\n const normalizedValue = value\n .replace(\n new RegExp(\n `\\\\${groupSeparator.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")}`,\n \"g\",\n ),\n \"\",\n )\n .replace(decimalSeparator, \".\");\n\n const parts = normalizedValue.split(\".\");\n const integerPart = parts[0] ?? \"\";\n const fractionalPart = parts[1] ?? \"\";\n\n if (!integerPart && !fractionalPart) return \"\";\n\n const intValue = integerPart ?? \"0\";\n const fracValue = fractionalPart.slice(0, 2);\n\n const num = Number(`${intValue}.${fracValue ?? \"\"}`);\n\n if (Number.isNaN(num)) {\n const cleanedDigits = value.replace(/[^\\d]/g, \"\");\n if (!cleanedDigits) return \"\";\n return `${currencySymbol}${cleanedDigits}`;\n }\n\n const hasExplicitDecimal =\n value.includes(\".\") || value.includes(decimalSeparator);\n\n try {\n const formatter = getCachedFormatter(locale, {\n currency,\n minimumFractionDigits: fracValue ? fracValue.length : 0,\n maximumFractionDigits: 2,\n });\n const result = formatter.format(num);\n\n if (hasExplicitDecimal && !fracValue) {\n if (result.match(/^[^\\d\\s]+/)) {\n const finalResult = result.replace(/(\\d)$/, `$1${decimalSeparator}`);\n return finalResult;\n } else {\n const finalResult = result.replace(\n /(\\d)(\\s*)([^\\d\\s]+)$/,\n `$1${decimalSeparator}$2$3`,\n );\n return finalResult;\n }\n }\n\n return result;\n } catch {\n const formattedInt = intValue.replace(\n /\\B(?=(\\d{3})+(?!\\d))/g,\n groupSeparator,\n );\n let result = `${currencySymbol}${formattedInt}`;\n if (hasExplicitDecimal) {\n result += `${decimalSeparator}${fracValue}`;\n }\n\n return result;\n }\n}\n\nfunction applyPercentageMask(value: string): string {\n if (!value) return \"\";\n\n const parts = value.split(\".\");\n let result = parts[0] ?? \"0\";\n\n if (value.includes(\".\")) {\n result += `.${(parts[1] ?? \"\").substring(0, 2)}`;\n }\n\n return `${result}%`;\n}\n\nfunction getUnmaskedValue(opts: {\n value: string;\n currency?: string;\n locale?: string;\n transform?: (value: string, opts?: TransformOptions) => string;\n}): string {\n const { value, transform, currency, locale } = opts;\n\n return transform\n ? transform(value, { currency, locale })\n : value.replace(REGEX_CACHE.nonDigits, \"\");\n}\n\nfunction toUnmaskedIndex(opts: {\n masked: string;\n pattern: string;\n caret: number;\n}): number {\n const { masked, pattern, caret } = opts;\n\n let idx = 0;\n for (let i = 0; i < caret && i < masked.length && i < pattern.length; i++) {\n if (pattern[i] === \"#\") {\n idx++;\n }\n }\n\n return idx;\n}\n\nfunction fromUnmaskedIndex(opts: {\n masked: string;\n pattern: string;\n unmaskedIndex: number;\n}): number {\n const { masked, pattern, unmaskedIndex } = opts;\n\n let seen = 0;\n for (let i = 0; i < masked.length && i < pattern.length; i++) {\n if (pattern[i] === \"#\") {\n seen++;\n if (seen === unmaskedIndex) {\n return i + 1;\n }\n }\n }\n\n return masked.length;\n}\n\nfunction getCurrencyCaretPosition(opts: {\n newValue: string;\n mask: MaskPatternKey | MaskPattern | undefined;\n transformOpts: TransformOptions;\n oldCursorPosition?: number;\n oldValue?: string;\n previousUnmasked?: string;\n}): number {\n const {\n newValue,\n mask,\n transformOpts,\n oldCursorPosition,\n oldValue,\n previousUnmasked,\n } = opts;\n\n if (\n oldCursorPosition !== undefined &&\n oldValue &&\n previousUnmasked !== undefined\n ) {\n if (oldCursorPosition < oldValue.length) {\n const digitsBeforeCursor = oldValue\n .substring(0, oldCursorPosition)\n .replace(/\\D/g, \"\").length;\n\n let digitCount = 0;\n for (let i = 0; i < newValue.length; i++) {\n if (/\\d/.test(newValue[i] ?? \"\")) {\n digitCount++;\n if (digitCount === digitsBeforeCursor) {\n return i + 1;\n }\n }\n }\n }\n }\n\n if (mask === \"currency\") {\n const currencyAtEnd = isCurrencyAtEnd(transformOpts);\n if (currencyAtEnd) {\n const match = newValue.match(/(\\d)\\s*([^\\d\\s]+)$/);\n if (match?.[1]) {\n return newValue.lastIndexOf(match[1]) + 1;\n } else {\n return newValue.length;\n }\n } else {\n return newValue.length;\n }\n } else {\n return newValue.length;\n }\n}\n\nfunction getPatternCaretPosition(opts: {\n newValue: string;\n maskPattern: MaskPattern;\n currentUnmasked: string;\n oldCursorPosition?: number;\n oldValue?: string;\n previousUnmasked?: string;\n}): number {\n const {\n newValue,\n maskPattern,\n currentUnmasked,\n oldCursorPosition,\n oldValue,\n previousUnmasked,\n } = opts;\n let position = 0;\n let unmaskedCount = 0;\n\n if (\n oldCursorPosition !== undefined &&\n oldValue &&\n previousUnmasked !== undefined\n ) {\n const oldUnmaskedIndex = toUnmaskedIndex({\n masked: oldValue,\n pattern: maskPattern.pattern,\n caret: oldCursorPosition,\n });\n\n if (oldCursorPosition < oldValue.length) {\n const targetUnmaskedIndex = Math.min(\n oldUnmaskedIndex,\n currentUnmasked.length,\n );\n\n for (\n let i = 0;\n i < maskPattern.pattern.length && i < newValue.length;\n i++\n ) {\n if (maskPattern.pattern[i] === \"#\") {\n unmaskedCount++;\n if (unmaskedCount <= targetUnmaskedIndex) {\n position = i + 1;\n }\n }\n }\n\n return position;\n }\n }\n\n for (let i = 0; i < maskPattern.pattern.length && i < newValue.length; i++) {\n if (maskPattern.pattern[i] === \"#\") {\n unmaskedCount++;\n if (unmaskedCount <= currentUnmasked.length) {\n position = i + 1;\n }\n }\n }\n\n return position;\n}\n\ntype InputElement = React.ComponentRef<\"input\">;\n\ninterface MaskInputProps extends React.ComponentProps<\"input\"> {\n value?: string;\n defaultValue?: string;\n onValueChange?: (maskedValue: string, unmaskedValue: string) => void;\n onValidate?: (isValid: boolean, unmaskedValue: string) => void;\n validationMode?: \"onChange\" | \"onBlur\" | \"onSubmit\" | \"onTouched\" | \"all\";\n mask?: MaskPatternKey | MaskPattern;\n maskPlaceholder?: string;\n currency?: string;\n locale?: string;\n asChild?: boolean;\n invalid?: boolean;\n withoutMask?: boolean;\n}\n\nfunction MaskInput(props: MaskInputProps) {\n const {\n value: valueProp,\n defaultValue,\n onValueChange: onValueChangeProp,\n onValidate,\n onBlur: onBlurProp,\n onFocus: onFocusProp,\n onKeyDown: onKeyDownProp,\n onPaste: onPasteProp,\n onCompositionStart: onCompositionStartProp,\n onCompositionEnd: onCompositionEndProp,\n validationMode = \"onChange\",\n mask,\n maskPlaceholder,\n currency = DEFAULT_CURRENCY,\n locale = DEFAULT_LOCALE,\n placeholder,\n inputMode,\n min,\n max,\n maxLength,\n asChild = false,\n disabled = false,\n invalid = false,\n readOnly = false,\n required = false,\n withoutMask = false,\n className,\n ref,\n ...inputProps\n } = props;\n\n const [internalValue, setInternalValue] = React.useState(defaultValue ?? \"\");\n const [focused, setFocused] = React.useState(false);\n const [composing, setComposing] = React.useState(false);\n const [touched, setTouched] = React.useState(false);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const composedRef = useComposedRefs(ref, inputRef);\n\n const isControlled = valueProp !== undefined;\n const value = isControlled ? valueProp : internalValue;\n\n const maskPattern = React.useMemo(() => {\n if (typeof mask === \"string\") {\n return MASK_PATTERNS[mask];\n }\n return mask;\n }, [mask]);\n\n const transformOpts = React.useMemo(\n () => ({\n currency,\n locale,\n }),\n [currency, locale],\n );\n\n const placeholderValue = React.useMemo(() => {\n if (withoutMask) return placeholder;\n\n if (placeholder && maskPlaceholder) {\n return focused ? maskPlaceholder : placeholder;\n }\n\n if (maskPlaceholder) {\n return focused ? maskPlaceholder : undefined;\n }\n\n return placeholder;\n }, [placeholder, maskPlaceholder, focused, withoutMask]);\n\n const displayValue = React.useMemo(() => {\n if (withoutMask || !maskPattern || !value) return value ?? \"\";\n const unmasked = getUnmaskedValue({\n value,\n transform: maskPattern.transform,\n ...transformOpts,\n });\n return applyMask({\n value: unmasked,\n pattern: maskPattern.pattern,\n ...transformOpts,\n mask,\n });\n }, [value, maskPattern, withoutMask, transformOpts, mask]);\n\n const tokenCount = React.useMemo(() => {\n if (!maskPattern || CURRENCY_PERCENTAGE_SYMBOLS.test(maskPattern.pattern))\n return undefined;\n return maskPattern.pattern.match(REGEX_CACHE.hashPattern)?.length ?? 0;\n }, [maskPattern]);\n\n const calculatedMaxLength = tokenCount\n ? maskPattern?.pattern.length\n : maxLength;\n\n const calculatedInputMode = React.useMemo(() => {\n if (inputMode) return inputMode;\n if (!maskPattern) return undefined;\n\n if (mask === \"currency\" || mask === \"percentage\" || mask === \"ipv4\") {\n return \"decimal\";\n }\n\n if (typeof mask === \"string\" && NUMERIC_MASK_PATTERNS.test(mask)) {\n return \"numeric\";\n }\n return undefined;\n }, [maskPattern, mask, inputMode]);\n\n const shouldValidate = React.useCallback(\n (trigger: \"change\" | \"blur\") => {\n if (!onValidate || !maskPattern?.validate) return false;\n\n switch (validationMode) {\n case \"onChange\":\n return trigger === \"change\";\n case \"onBlur\":\n return trigger === \"blur\";\n case \"onSubmit\":\n return false;\n case \"onTouched\":\n return touched ? trigger === \"change\" : trigger === \"blur\";\n case \"all\":\n return true;\n default:\n return trigger === \"change\";\n }\n },\n [onValidate, maskPattern, validationMode, touched],\n );\n\n const validationOpts = React.useMemo(\n () => ({\n min: typeof min === \"string\" ? parseFloat(min) : min,\n max: typeof max === \"string\" ? parseFloat(max) : max,\n }),\n [min, max],\n );\n\n const onInputValidate = React.useCallback(\n (unmaskedValue: string) => {\n if (onValidate && maskPattern?.validate) {\n const isValid = maskPattern.validate(unmaskedValue, validationOpts);\n onValidate(isValid, unmaskedValue);\n }\n },\n [onValidate, maskPattern?.validate, validationOpts],\n );\n\n const onValueChange = React.useCallback(\n (event: React.ChangeEvent<InputElement>) => {\n const inputValue = event.target.value;\n let newValue = inputValue;\n let unmaskedValue = inputValue;\n\n if (composing) {\n if (!isControlled) setInternalValue(inputValue);\n return;\n }\n\n if (withoutMask || !maskPattern) {\n if (!isControlled) setInternalValue(inputValue);\n if (shouldValidate(\"change\")) onValidate?.(true, inputValue);\n onValueChangeProp?.(inputValue, inputValue);\n return;\n }\n\n if (maskPattern) {\n unmaskedValue = getUnmaskedValue({\n value: inputValue,\n transform: maskPattern.transform,\n ...transformOpts,\n });\n newValue = applyMask({\n value: unmaskedValue,\n pattern: maskPattern.pattern,\n ...transformOpts,\n mask,\n });\n\n if (inputRef.current && newValue !== inputValue) {\n const inputElement = inputRef.current;\n if (!(inputElement instanceof HTMLInputElement)) return;\n\n const oldCursorPosition = inputElement.selectionStart ?? 0;\n\n inputElement.value = newValue;\n\n const currentUnmasked = getUnmaskedValue({\n value: newValue,\n transform: maskPattern.transform,\n ...transformOpts,\n });\n\n let newCursorPosition: number;\n\n const previousUnmasked = getUnmaskedValue({\n value,\n transform: maskPattern.transform,\n ...transformOpts,\n });\n\n if (CURRENCY_PERCENTAGE_SYMBOLS.test(maskPattern.pattern)) {\n newCursorPosition = getCurrencyCaretPosition({\n newValue,\n mask,\n transformOpts,\n oldCursorPosition,\n oldValue: inputValue,\n previousUnmasked,\n });\n } else {\n newCursorPosition = getPatternCaretPosition({\n newValue,\n maskPattern,\n currentUnmasked,\n oldCursorPosition,\n oldValue: inputValue,\n previousUnmasked,\n });\n }\n\n if (isCurrencyMask({ mask, pattern: maskPattern.pattern })) {\n if (mask === \"currency\") {\n const currencyAtEnd = isCurrencyAtEnd(transformOpts);\n if (!currencyAtEnd) {\n newCursorPosition = Math.max(1, newCursorPosition);\n }\n } else {\n newCursorPosition = Math.max(1, newCursorPosition);\n }\n } else if (maskPattern.pattern.includes(\"%\")) {\n newCursorPosition = Math.min(\n newValue.length - 1,\n newCursorPosition,\n );\n }\n\n newCursorPosition = Math.min(newCursorPosition, newValue.length);\n\n inputElement.setSelectionRange(newCursorPosition, newCursorPosition);\n }\n }\n\n if (!isControlled) {\n setInternalValue(newValue);\n }\n\n if (shouldValidate(\"change\")) {\n onInputValidate(unmaskedValue);\n }\n\n onValueChangeProp?.(newValue, unmaskedValue);\n },\n [\n maskPattern,\n isControlled,\n onValueChangeProp,\n onValidate,\n onInputValidate,\n composing,\n shouldValidate,\n withoutMask,\n transformOpts,\n mask,\n value,\n ],\n );\n\n const onFocus = React.useCallback(\n (event: React.FocusEvent<InputElement>) => {\n onFocusProp?.(event);\n if (event.defaultPrevented) return;\n\n setFocused(true);\n },\n [onFocusProp],\n );\n\n const onBlur = React.useCallback(\n (event: React.FocusEvent<InputElement>) => {\n onBlurProp?.(event);\n if (event.defaultPrevented) return;\n\n setFocused(false);\n\n if (!touched) {\n setTouched(true);\n }\n\n if (shouldValidate(\"blur\")) {\n const currentValue = event.target.value;\n const unmaskedValue = maskPattern\n ? getUnmaskedValue({\n value: currentValue,\n transform: maskPattern.transform,\n ...transformOpts,\n })\n : currentValue;\n onInputValidate(unmaskedValue);\n }\n },\n [\n onBlurProp,\n touched,\n shouldValidate,\n onInputValidate,\n maskPattern,\n transformOpts,\n ],\n );\n\n const onCompositionStart = React.useCallback(\n (event: React.CompositionEvent<InputElement>) => {\n onCompositionStartProp?.(event);\n if (event.defaultPrevented) return;\n\n setComposing(true);\n },\n [onCompositionStartProp],\n );\n\n const onCompositionEnd = React.useCallback(\n (event: React.CompositionEvent<InputElement>) => {\n onCompositionEndProp?.(event);\n if (event.defaultPrevented) return;\n\n setComposing(false);\n\n const inputElement = inputRef.current;\n if (!inputElement) return;\n if (!(inputElement instanceof HTMLInputElement)) return;\n const inputValue = inputElement.value;\n\n if (!maskPattern || withoutMask) {\n if (!isControlled) setInternalValue(inputValue);\n if (shouldValidate(\"change\")) onValidate?.(true, inputValue);\n onValueChangeProp?.(inputValue, inputValue);\n return;\n }\n\n const unmasked = getUnmaskedValue({\n value: inputValue,\n transform: maskPattern.transform,\n ...transformOpts,\n });\n const masked = applyMask({\n value: unmasked,\n pattern: maskPattern.pattern,\n ...transformOpts,\n mask,\n });\n\n if (!isControlled) setInternalValue(masked);\n if (shouldValidate(\"change\")) onInputValidate(unmasked);\n onValueChangeProp?.(masked, unmasked);\n },\n [\n onCompositionEndProp,\n maskPattern,\n withoutMask,\n isControlled,\n shouldValidate,\n onValidate,\n onValueChangeProp,\n transformOpts,\n mask,\n onInputValidate,\n ],\n );\n\n const onPaste = React.useCallback(\n (event: React.ClipboardEvent<InputElement>) => {\n onPasteProp?.(event);\n if (event.defaultPrevented) return;\n\n if (withoutMask || !maskPattern) return;\n\n if (mask === \"ipv4\") return;\n\n const target = event.target as InputElement;\n if (!(target instanceof HTMLInputElement)) return;\n\n const pastedData = event.clipboardData.getData(\"text\");\n if (!pastedData) return;\n\n event.preventDefault();\n\n const currentValue = target.value;\n const selectionStart = target.selectionStart ?? 0;\n const selectionEnd = target.selectionEnd ?? 0;\n\n const beforeSelection = currentValue.slice(0, selectionStart);\n const afterSelection = currentValue.slice(selectionEnd);\n const newInputValue = beforeSelection + pastedData + afterSelection;\n\n const unmasked = getUnmaskedValue({\n value: newInputValue,\n transform: maskPattern.transform,\n ...transformOpts,\n });\n const newMaskedValue = applyMask({\n value: unmasked,\n pattern: maskPattern.pattern,\n ...transformOpts,\n mask,\n });\n\n target.value = newMaskedValue;\n\n if (isCurrencyMask({ mask, pattern: maskPattern.pattern })) {\n const currencyAtEnd = isCurrencyAtEnd(transformOpts);\n const caret = currencyAtEnd\n ? newMaskedValue.search(/\\s*[^\\d\\s]+$/)\n : newMaskedValue.length;\n target.setSelectionRange(caret, caret);\n return;\n }\n\n if (maskPattern.pattern.includes(\"%\")) {\n target.setSelectionRange(\n newMaskedValue.length - 1,\n newMaskedValue.length - 1,\n );\n return;\n }\n\n let newCursorPosition = newMaskedValue.length;\n try {\n const unmaskedCount = unmasked.length;\n let position = 0;\n let count = 0;\n\n for (\n let i = 0;\n i < maskPattern.pattern.length && i < newMaskedValue.length;\n i++\n ) {\n if (maskPattern.pattern[i] === \"#\") {\n count++;\n if (count <= unmaskedCount) {\n position = i + 1;\n }\n }\n }\n newCursorPosition = position;\n } catch {\n // fallback to end\n }\n\n target.setSelectionRange(newCursorPosition, newCursorPosition);\n\n if (!isControlled) setInternalValue(newMaskedValue);\n if (shouldValidate(\"change\")) onInputValidate(unmasked);\n onValueChangeProp?.(newMaskedValue, unmasked);\n },\n [\n onPasteProp,\n withoutMask,\n maskPattern,\n mask,\n transformOpts,\n isControlled,\n shouldValidate,\n onInputValidate,\n onValueChangeProp,\n ],\n );\n\n const onKeyDown = React.useCallback(\n (event: React.KeyboardEvent<InputElement>) => {\n onKeyDownProp?.(event);\n if (event.defaultPrevented) return;\n\n if (withoutMask || !maskPattern) return;\n\n if (mask === \"ipv4\") return;\n\n if (event.key === \"Backspace\") {\n const target = event.target as InputElement;\n if (!(target instanceof HTMLInputElement)) return;\n const cursorPosition = target.selectionStart ?? 0;\n const selectionEnd = target.selectionEnd ?? 0;\n const currentValue = target.value;\n\n if (\n mask === \"currency\" ||\n mask === \"percentage\" ||\n maskPattern.pattern.includes(\"$\") ||\n maskPattern.pattern.includes(\"€\") ||\n maskPattern.pattern.includes(\"%\")\n ) {\n return;\n }\n\n if (cursorPosition !== selectionEnd) {\n return;\n }\n\n if (cursorPosition > 0) {\n const charBeforeCursor = currentValue[cursorPosition - 1];\n\n if (charBeforeCursor) {\n event.preventDefault();\n\n const unmaskedIndex = toUnmaskedIndex({\n masked: currentValue,\n pattern: maskPattern.pattern,\n caret: cursorPosition,\n });\n\n if (unmaskedIndex > 0) {\n const currentUnmasked = getUnmaskedValue({\n value: currentValue,\n transform: maskPattern.transform,\n ...transformOpts,\n });\n const nextUnmasked =\n currentUnmasked.slice(0, unmaskedIndex - 1) +\n currentUnmasked.slice(unmaskedIndex);\n const nextMasked = applyMask({\n value: nextUnmasked,\n pattern: maskPattern.pattern,\n ...transformOpts,\n mask,\n });\n\n target.value = nextMasked;\n const nextCaret = fromUnmaskedIndex({\n masked: nextMasked,\n pattern: maskPattern.pattern,\n unmaskedIndex: unmaskedIndex - 1,\n });\n\n target.setSelectionRange(nextCaret, nextCaret);\n\n onValueChangeProp?.(nextMasked, nextUnmasked);\n }\n return;\n }\n }\n }\n\n if (event.key === \"Delete\") {\n const target = event.target as InputElement;\n if (!(target instanceof HTMLInputElement)) return;\n const cursorPosition = target.selectionStart ?? 0;\n const selectionEnd = target.selectionEnd ?? 0;\n const currentValue = target.value;\n\n if (\n mask === \"currency\" ||\n mask === \"percentage\" ||\n maskPattern.pattern.includes(\"$\") ||\n maskPattern.pattern.includes(\"€\") ||\n maskPattern.pattern.includes(\"%\")\n ) {\n return;\n }\n\n if (cursorPosition !== selectionEnd) {\n return;\n }\n\n if (cursorPosition < currentValue.length) {\n const charAtCursor = currentValue[cursorPosition];\n\n if (charAtCursor) {\n event.preventDefault();\n\n const unmaskedIndex = toUnmaskedIndex({\n masked: currentValue,\n pattern: maskPattern.pattern,\n caret: cursorPosition,\n });\n\n const currentUnmasked = getUnmaskedValue({\n value: currentValue,\n transform: maskPattern.transform,\n ...transformOpts,\n });\n\n if (unmaskedIndex < currentUnmasked.length) {\n const nextUnmasked =\n currentUnmasked.slice(0, unmaskedIndex) +\n currentUnmasked.slice(unmaskedIndex + 1);\n const nextMasked = applyMask({\n value: nextUnmasked,\n pattern: maskPattern.pattern,\n ...transformOpts,\n mask,\n });\n\n target.value = nextMasked;\n const nextCaret = fromUnmaskedIndex({\n masked: nextMasked,\n pattern: maskPattern.pattern,\n unmaskedIndex: unmaskedIndex,\n });\n\n target.setSelectionRange(nextCaret, nextCaret);\n\n onValueChangeProp?.(nextMasked, nextUnmasked);\n }\n return;\n }\n }\n }\n },\n [\n maskPattern,\n onKeyDownProp,\n onValueChangeProp,\n transformOpts,\n mask,\n withoutMask,\n ],\n );\n\n const InputPrimitive = asChild ? Slot : \"input\";\n\n return (\n <InputPrimitive\n aria-invalid={invalid}\n data-disabled={disabled ? \"\" : undefined}\n data-invalid={invalid ? \"\" : undefined}\n data-readonly={readOnly ? \"\" : undefined}\n data-required={required ? \"\" : undefined}\n data-slot=\"mask-input\"\n {...inputProps}\n className={cn(\n \"flex h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs outline-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30\",\n \"focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50\",\n \"aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40\",\n className,\n )}\n placeholder={placeholderValue}\n ref={composedRef}\n value={displayValue}\n disabled={disabled}\n maxLength={calculatedMaxLength}\n readOnly={readOnly}\n required={required}\n inputMode={calculatedInputMode}\n min={min}\n max={max}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n onPaste={onPaste}\n onChange={onValueChange}\n onCompositionStart={onCompositionStart}\n onCompositionEnd={onCompositionEnd}\n />\n );\n}\n\nexport {\n MaskInput,\n //\n MASK_PATTERNS,\n //\n applyMask,\n applyCurrencyMask,\n applyPercentageMask,\n getUnmaskedValue,\n toUnmaskedIndex,\n fromUnmaskedIndex,\n //\n type MaskPattern,\n type MaskInputProps,\n};\n"]}
@@ -0,0 +1,127 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as SliderPrimitive from '@radix-ui/react-slider';
3
+ export { useMediaSelector as useMediaPlayer } from 'media-chrome/react/media-store';
4
+ import * as React from 'react';
5
+ import { Button } from './button.js';
6
+ import { DropdownMenuTrigger, DropdownMenu, DropdownMenuContent } from './dropdown-menu.js';
7
+ import { Tooltip, TooltipContent } from './tooltip.js';
8
+ import 'class-variance-authority/types';
9
+ import 'class-variance-authority';
10
+ import 'radix-ui';
11
+
12
+ interface DivProps extends React.ComponentProps<"div"> {
13
+ asChild?: boolean;
14
+ }
15
+ type Direction = "ltr" | "rtl";
16
+ interface StoreState {
17
+ controlsVisible: boolean;
18
+ dragging: boolean;
19
+ menuOpen: boolean;
20
+ volumeIndicatorVisible: boolean;
21
+ }
22
+ declare function useStore<T>(selector: (state: StoreState) => T): T;
23
+ interface MediaPlayerProps extends Omit<DivProps, "onTimeUpdate" | "onVolumeChange"> {
24
+ onPlay?: () => void;
25
+ onPause?: () => void;
26
+ onEnded?: () => void;
27
+ onTimeUpdate?: (time: number) => void;
28
+ onVolumeChange?: (volume: number) => void;
29
+ onMuted?: (muted: boolean) => void;
30
+ onMediaError?: (error: MediaError | null) => void;
31
+ onPipError?: (error: unknown, state: "enter" | "exit") => void;
32
+ onFullscreenChange?: (fullscreen: boolean) => void;
33
+ dir?: Direction;
34
+ label?: string;
35
+ tooltipDelayDuration?: number;
36
+ tooltipSideOffset?: number;
37
+ autoHide?: boolean;
38
+ disabled?: boolean;
39
+ withoutTooltip?: boolean;
40
+ }
41
+ declare function MediaPlayer(props: MediaPlayerProps): react_jsx_runtime.JSX.Element;
42
+ interface MediaPlayerVideoProps extends React.ComponentProps<"video"> {
43
+ asChild?: boolean;
44
+ }
45
+ declare function MediaPlayerVideo(props: MediaPlayerVideoProps): react_jsx_runtime.JSX.Element;
46
+ interface MediaPlayerAudioProps extends React.ComponentProps<"audio"> {
47
+ asChild?: boolean;
48
+ }
49
+ declare function MediaPlayerAudio(props: MediaPlayerAudioProps): react_jsx_runtime.JSX.Element;
50
+ declare function MediaPlayerControls(props: DivProps): react_jsx_runtime.JSX.Element;
51
+ interface MediaPlayerLoadingProps extends DivProps {
52
+ delayMs?: number;
53
+ }
54
+ declare function MediaPlayerLoading(props: MediaPlayerLoadingProps): react_jsx_runtime.JSX.Element | null;
55
+ interface MediaPlayerErrorProps extends DivProps {
56
+ error?: MediaError | null;
57
+ label?: string;
58
+ description?: string;
59
+ onRetry?: () => void;
60
+ onReload?: () => void;
61
+ asChild?: boolean;
62
+ }
63
+ declare function MediaPlayerError(props: MediaPlayerErrorProps): react_jsx_runtime.JSX.Element | null;
64
+ declare function MediaPlayerVolumeIndicator(props: DivProps): react_jsx_runtime.JSX.Element | null;
65
+ declare function MediaPlayerControlsOverlay(props: DivProps): react_jsx_runtime.JSX.Element;
66
+ declare function MediaPlayerPlay(props: React.ComponentProps<typeof Button>): react_jsx_runtime.JSX.Element;
67
+ interface MediaPlayerSeekBackwardProps extends React.ComponentProps<typeof Button> {
68
+ seconds?: number;
69
+ }
70
+ declare function MediaPlayerSeekBackward(props: MediaPlayerSeekBackwardProps): react_jsx_runtime.JSX.Element;
71
+ interface MediaPlayerSeekForwardProps extends React.ComponentProps<typeof Button> {
72
+ seconds?: number;
73
+ }
74
+ declare function MediaPlayerSeekForward(props: MediaPlayerSeekForwardProps): react_jsx_runtime.JSX.Element;
75
+ interface MediaPlayerSeekProps extends React.ComponentProps<typeof SliderPrimitive.Root> {
76
+ withTime?: boolean;
77
+ withoutChapter?: boolean;
78
+ withoutTooltip?: boolean;
79
+ tooltipThumbnailSrc?: string | ((time: number) => string);
80
+ tooltipTimeVariant?: "current" | "progress";
81
+ tooltipSideOffset?: number;
82
+ tooltipCollisionBoundary?: Element | Element[];
83
+ tooltipCollisionPadding?: number | Partial<Record<"top" | "right" | "bottom" | "left", number>>;
84
+ }
85
+ declare function MediaPlayerSeek(props: MediaPlayerSeekProps): react_jsx_runtime.JSX.Element;
86
+ interface MediaPlayerVolumeProps extends React.ComponentProps<typeof SliderPrimitive.Root> {
87
+ asChild?: boolean;
88
+ expandable?: boolean;
89
+ }
90
+ declare function MediaPlayerVolume(props: MediaPlayerVolumeProps): react_jsx_runtime.JSX.Element;
91
+ interface MediaPlayerTimeProps extends React.ComponentProps<"div"> {
92
+ variant?: "progress" | "remaining" | "duration";
93
+ asChild?: boolean;
94
+ }
95
+ declare function MediaPlayerTime(props: MediaPlayerTimeProps): react_jsx_runtime.JSX.Element;
96
+ interface MediaPlayerPlaybackSpeedProps extends React.ComponentProps<typeof DropdownMenuTrigger>, React.ComponentProps<typeof Button>, Omit<React.ComponentProps<typeof DropdownMenu>, "dir">, Pick<React.ComponentProps<typeof DropdownMenuContent>, "sideOffset"> {
97
+ speeds?: number[];
98
+ }
99
+ declare function MediaPlayerPlaybackSpeed(props: MediaPlayerPlaybackSpeedProps): react_jsx_runtime.JSX.Element;
100
+ interface MediaPlayerLoopProps extends React.ComponentProps<typeof Button> {
101
+ }
102
+ declare function MediaPlayerLoop(props: MediaPlayerLoopProps): react_jsx_runtime.JSX.Element;
103
+ interface MediaPlayerFullscreenProps extends React.ComponentProps<typeof Button> {
104
+ }
105
+ declare function MediaPlayerFullscreen(props: MediaPlayerFullscreenProps): react_jsx_runtime.JSX.Element;
106
+ interface MediaPlayerPiPProps extends Omit<React.ComponentProps<typeof Button>, "children"> {
107
+ children?: React.ReactNode | ((isPictureInPicture: boolean) => React.ReactNode);
108
+ onPipError?: (error: unknown, state: "enter" | "exit") => void;
109
+ }
110
+ declare function MediaPlayerPiP(props: MediaPlayerPiPProps): react_jsx_runtime.JSX.Element;
111
+ declare function MediaPlayerCaptions(props: React.ComponentProps<typeof Button>): react_jsx_runtime.JSX.Element;
112
+ declare function MediaPlayerDownload(props: React.ComponentProps<typeof Button>): react_jsx_runtime.JSX.Element;
113
+ interface MediaPlayerSettingsProps extends MediaPlayerPlaybackSpeedProps {
114
+ }
115
+ declare function MediaPlayerSettings(props: MediaPlayerSettingsProps): react_jsx_runtime.JSX.Element;
116
+ interface MediaPlayerPortalProps {
117
+ container?: Element | DocumentFragment | null;
118
+ children?: React.ReactNode;
119
+ }
120
+ declare function MediaPlayerPortal(props: MediaPlayerPortalProps): React.ReactPortal | null;
121
+ interface MediaPlayerTooltipProps extends React.ComponentProps<typeof Tooltip>, Pick<React.ComponentProps<typeof TooltipContent>, "sideOffset"> {
122
+ tooltip?: string;
123
+ shortcut?: string | string[];
124
+ }
125
+ declare function MediaPlayerTooltip(props: MediaPlayerTooltipProps): react_jsx_runtime.JSX.Element;
126
+
127
+ export { MediaPlayer, MediaPlayerAudio, MediaPlayerCaptions, MediaPlayerControls, MediaPlayerControlsOverlay, MediaPlayerDownload, MediaPlayerError, MediaPlayerFullscreen, MediaPlayerLoading, MediaPlayerLoop, MediaPlayerPiP, MediaPlayerPlay, MediaPlayerPlaybackSpeed, MediaPlayerPortal, type MediaPlayerProps, MediaPlayerSeek, MediaPlayerSeekBackward, MediaPlayerSeekForward, MediaPlayerSettings, MediaPlayerTime, MediaPlayerTooltip, MediaPlayerVideo, MediaPlayerVolume, MediaPlayerVolumeIndicator, useStore as useMediaPlayerStore };