@docyrus/shadcn 1.1.0 → 1.2.1

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 (766) hide show
  1. package/dist/base-lyra/accordion.js.map +1 -1
  2. package/dist/base-lyra/alert-dialog.js.map +1 -1
  3. package/dist/base-lyra/alert.js.map +1 -1
  4. package/dist/base-lyra/aspect-ratio.js.map +1 -1
  5. package/dist/base-lyra/avatar.js.map +1 -1
  6. package/dist/base-lyra/badge.js.map +1 -1
  7. package/dist/base-lyra/breadcrumb.js.map +1 -1
  8. package/dist/base-lyra/button-group.js.map +1 -1
  9. package/dist/base-lyra/button.js.map +1 -1
  10. package/dist/base-lyra/calendar.js.map +1 -1
  11. package/dist/base-lyra/card.js.map +1 -1
  12. package/dist/base-lyra/carousel.js.map +1 -1
  13. package/dist/base-lyra/chart.js.map +1 -1
  14. package/dist/base-lyra/checkbox.js.map +1 -1
  15. package/dist/base-lyra/combobox.js.map +1 -1
  16. package/dist/base-lyra/command.js.map +1 -1
  17. package/dist/base-lyra/context-menu.js.map +1 -1
  18. package/dist/base-lyra/dialog.js.map +1 -1
  19. package/dist/base-lyra/drawer.js.map +1 -1
  20. package/dist/base-lyra/dropdown-menu.js.map +1 -1
  21. package/dist/base-lyra/empty.js.map +1 -1
  22. package/dist/base-lyra/field.js.map +1 -1
  23. package/dist/base-lyra/hover-card.js.map +1 -1
  24. package/dist/base-lyra/index.js +8 -6
  25. package/dist/base-lyra/index.js.map +1 -1
  26. package/dist/base-lyra/input-group.js.map +1 -1
  27. package/dist/base-lyra/input-otp.js.map +1 -1
  28. package/dist/base-lyra/input.js.map +1 -1
  29. package/dist/base-lyra/item.js.map +1 -1
  30. package/dist/base-lyra/kbd.js.map +1 -1
  31. package/dist/base-lyra/label.js.map +1 -1
  32. package/dist/base-lyra/menubar.js.map +1 -1
  33. package/dist/base-lyra/native-select.js.map +1 -1
  34. package/dist/base-lyra/navigation-menu.js.map +1 -1
  35. package/dist/base-lyra/pagination.js.map +1 -1
  36. package/dist/base-lyra/popover.js.map +1 -1
  37. package/dist/base-lyra/progress.js.map +1 -1
  38. package/dist/base-lyra/radio-group.js.map +1 -1
  39. package/dist/base-lyra/resizable.js.map +1 -1
  40. package/dist/base-lyra/scroll-area.js.map +1 -1
  41. package/dist/base-lyra/select.js.map +1 -1
  42. package/dist/base-lyra/separator.js.map +1 -1
  43. package/dist/base-lyra/sheet.js.map +1 -1
  44. package/dist/base-lyra/sidebar.js +8 -6
  45. package/dist/base-lyra/sidebar.js.map +1 -1
  46. package/dist/base-lyra/skeleton.js.map +1 -1
  47. package/dist/base-lyra/slider.js.map +1 -1
  48. package/dist/base-lyra/spinner.js.map +1 -1
  49. package/dist/base-lyra/switch.js.map +1 -1
  50. package/dist/base-lyra/table.js.map +1 -1
  51. package/dist/base-lyra/tabs.js.map +1 -1
  52. package/dist/base-lyra/textarea.js.map +1 -1
  53. package/dist/base-lyra/toggle-group.js.map +1 -1
  54. package/dist/base-lyra/toggle.js.map +1 -1
  55. package/dist/base-lyra/tooltip.js.map +1 -1
  56. package/dist/base-maia/accordion.js.map +1 -1
  57. package/dist/base-maia/alert-dialog.js.map +1 -1
  58. package/dist/base-maia/alert.js.map +1 -1
  59. package/dist/base-maia/aspect-ratio.js.map +1 -1
  60. package/dist/base-maia/avatar.js.map +1 -1
  61. package/dist/base-maia/badge.js.map +1 -1
  62. package/dist/base-maia/breadcrumb.js.map +1 -1
  63. package/dist/base-maia/button-group.js.map +1 -1
  64. package/dist/base-maia/button.js.map +1 -1
  65. package/dist/base-maia/calendar.js.map +1 -1
  66. package/dist/base-maia/card.js.map +1 -1
  67. package/dist/base-maia/carousel.js.map +1 -1
  68. package/dist/base-maia/chart.js.map +1 -1
  69. package/dist/base-maia/checkbox.js.map +1 -1
  70. package/dist/base-maia/combobox.js.map +1 -1
  71. package/dist/base-maia/command.js.map +1 -1
  72. package/dist/base-maia/context-menu.js.map +1 -1
  73. package/dist/base-maia/dialog.js.map +1 -1
  74. package/dist/base-maia/drawer.js.map +1 -1
  75. package/dist/base-maia/dropdown-menu.js.map +1 -1
  76. package/dist/base-maia/empty.js.map +1 -1
  77. package/dist/base-maia/field.js.map +1 -1
  78. package/dist/base-maia/hover-card.js.map +1 -1
  79. package/dist/base-maia/index.js +8 -6
  80. package/dist/base-maia/index.js.map +1 -1
  81. package/dist/base-maia/input-group.js.map +1 -1
  82. package/dist/base-maia/input-otp.js.map +1 -1
  83. package/dist/base-maia/input.js.map +1 -1
  84. package/dist/base-maia/item.js.map +1 -1
  85. package/dist/base-maia/kbd.js.map +1 -1
  86. package/dist/base-maia/label.js.map +1 -1
  87. package/dist/base-maia/menubar.js.map +1 -1
  88. package/dist/base-maia/native-select.js.map +1 -1
  89. package/dist/base-maia/navigation-menu.js.map +1 -1
  90. package/dist/base-maia/pagination.js.map +1 -1
  91. package/dist/base-maia/popover.js.map +1 -1
  92. package/dist/base-maia/progress.js.map +1 -1
  93. package/dist/base-maia/radio-group.js.map +1 -1
  94. package/dist/base-maia/resizable.js.map +1 -1
  95. package/dist/base-maia/scroll-area.js.map +1 -1
  96. package/dist/base-maia/select.js.map +1 -1
  97. package/dist/base-maia/separator.js.map +1 -1
  98. package/dist/base-maia/sheet.js.map +1 -1
  99. package/dist/base-maia/sidebar.js +8 -6
  100. package/dist/base-maia/sidebar.js.map +1 -1
  101. package/dist/base-maia/skeleton.js.map +1 -1
  102. package/dist/base-maia/slider.js.map +1 -1
  103. package/dist/base-maia/spinner.js.map +1 -1
  104. package/dist/base-maia/switch.js.map +1 -1
  105. package/dist/base-maia/table.js.map +1 -1
  106. package/dist/base-maia/tabs.js.map +1 -1
  107. package/dist/base-maia/textarea.js.map +1 -1
  108. package/dist/base-maia/toggle-group.js.map +1 -1
  109. package/dist/base-maia/toggle.js.map +1 -1
  110. package/dist/base-maia/tooltip.js.map +1 -1
  111. package/dist/base-mira/accordion.js.map +1 -1
  112. package/dist/base-mira/alert-dialog.js.map +1 -1
  113. package/dist/base-mira/alert.js.map +1 -1
  114. package/dist/base-mira/aspect-ratio.js.map +1 -1
  115. package/dist/base-mira/avatar.js.map +1 -1
  116. package/dist/base-mira/badge.js.map +1 -1
  117. package/dist/base-mira/breadcrumb.js.map +1 -1
  118. package/dist/base-mira/button-group.js.map +1 -1
  119. package/dist/base-mira/button.js.map +1 -1
  120. package/dist/base-mira/calendar.js.map +1 -1
  121. package/dist/base-mira/card.js.map +1 -1
  122. package/dist/base-mira/carousel.js.map +1 -1
  123. package/dist/base-mira/chart.js.map +1 -1
  124. package/dist/base-mira/checkbox.js.map +1 -1
  125. package/dist/base-mira/combobox.js.map +1 -1
  126. package/dist/base-mira/command.js.map +1 -1
  127. package/dist/base-mira/context-menu.js.map +1 -1
  128. package/dist/base-mira/dialog.js.map +1 -1
  129. package/dist/base-mira/drawer.js.map +1 -1
  130. package/dist/base-mira/dropdown-menu.js.map +1 -1
  131. package/dist/base-mira/empty.js.map +1 -1
  132. package/dist/base-mira/field.js.map +1 -1
  133. package/dist/base-mira/hover-card.js.map +1 -1
  134. package/dist/base-mira/index.js +8 -6
  135. package/dist/base-mira/index.js.map +1 -1
  136. package/dist/base-mira/input-group.js.map +1 -1
  137. package/dist/base-mira/input-otp.js.map +1 -1
  138. package/dist/base-mira/input.js.map +1 -1
  139. package/dist/base-mira/item.js.map +1 -1
  140. package/dist/base-mira/kbd.js.map +1 -1
  141. package/dist/base-mira/label.js.map +1 -1
  142. package/dist/base-mira/menubar.js.map +1 -1
  143. package/dist/base-mira/native-select.js.map +1 -1
  144. package/dist/base-mira/navigation-menu.js.map +1 -1
  145. package/dist/base-mira/pagination.js.map +1 -1
  146. package/dist/base-mira/popover.js.map +1 -1
  147. package/dist/base-mira/progress.js.map +1 -1
  148. package/dist/base-mira/radio-group.js.map +1 -1
  149. package/dist/base-mira/resizable.js.map +1 -1
  150. package/dist/base-mira/scroll-area.js.map +1 -1
  151. package/dist/base-mira/select.js.map +1 -1
  152. package/dist/base-mira/separator.js.map +1 -1
  153. package/dist/base-mira/sheet.js.map +1 -1
  154. package/dist/base-mira/sidebar.js +8 -6
  155. package/dist/base-mira/sidebar.js.map +1 -1
  156. package/dist/base-mira/skeleton.js.map +1 -1
  157. package/dist/base-mira/slider.js.map +1 -1
  158. package/dist/base-mira/spinner.js.map +1 -1
  159. package/dist/base-mira/switch.js.map +1 -1
  160. package/dist/base-mira/table.js.map +1 -1
  161. package/dist/base-mira/tabs.js.map +1 -1
  162. package/dist/base-mira/textarea.js.map +1 -1
  163. package/dist/base-mira/toggle-group.js.map +1 -1
  164. package/dist/base-mira/toggle.js.map +1 -1
  165. package/dist/base-mira/tooltip.js.map +1 -1
  166. package/dist/base-nova/accordion.js.map +1 -1
  167. package/dist/base-nova/alert-dialog.js.map +1 -1
  168. package/dist/base-nova/alert.js.map +1 -1
  169. package/dist/base-nova/aspect-ratio.js.map +1 -1
  170. package/dist/base-nova/avatar.js.map +1 -1
  171. package/dist/base-nova/badge.js.map +1 -1
  172. package/dist/base-nova/breadcrumb.js.map +1 -1
  173. package/dist/base-nova/button-group.js.map +1 -1
  174. package/dist/base-nova/button.js.map +1 -1
  175. package/dist/base-nova/calendar.js.map +1 -1
  176. package/dist/base-nova/card.js.map +1 -1
  177. package/dist/base-nova/carousel.js.map +1 -1
  178. package/dist/base-nova/chart.js.map +1 -1
  179. package/dist/base-nova/checkbox.js.map +1 -1
  180. package/dist/base-nova/combobox.js.map +1 -1
  181. package/dist/base-nova/command.js.map +1 -1
  182. package/dist/base-nova/context-menu.js.map +1 -1
  183. package/dist/base-nova/dialog.js.map +1 -1
  184. package/dist/base-nova/drawer.js.map +1 -1
  185. package/dist/base-nova/dropdown-menu.js.map +1 -1
  186. package/dist/base-nova/empty.js.map +1 -1
  187. package/dist/base-nova/field.js.map +1 -1
  188. package/dist/base-nova/hover-card.js.map +1 -1
  189. package/dist/base-nova/index.js +8 -6
  190. package/dist/base-nova/index.js.map +1 -1
  191. package/dist/base-nova/input-group.js.map +1 -1
  192. package/dist/base-nova/input-otp.js.map +1 -1
  193. package/dist/base-nova/input.js.map +1 -1
  194. package/dist/base-nova/item.js.map +1 -1
  195. package/dist/base-nova/kbd.js.map +1 -1
  196. package/dist/base-nova/label.js.map +1 -1
  197. package/dist/base-nova/menubar.js.map +1 -1
  198. package/dist/base-nova/native-select.js.map +1 -1
  199. package/dist/base-nova/navigation-menu.js.map +1 -1
  200. package/dist/base-nova/pagination.js.map +1 -1
  201. package/dist/base-nova/popover.js.map +1 -1
  202. package/dist/base-nova/progress.js.map +1 -1
  203. package/dist/base-nova/radio-group.js.map +1 -1
  204. package/dist/base-nova/resizable.js.map +1 -1
  205. package/dist/base-nova/scroll-area.js.map +1 -1
  206. package/dist/base-nova/select.js.map +1 -1
  207. package/dist/base-nova/separator.js.map +1 -1
  208. package/dist/base-nova/sheet.js.map +1 -1
  209. package/dist/base-nova/sidebar.js +8 -6
  210. package/dist/base-nova/sidebar.js.map +1 -1
  211. package/dist/base-nova/skeleton.js.map +1 -1
  212. package/dist/base-nova/slider.js.map +1 -1
  213. package/dist/base-nova/spinner.js.map +1 -1
  214. package/dist/base-nova/switch.js.map +1 -1
  215. package/dist/base-nova/table.js.map +1 -1
  216. package/dist/base-nova/tabs.js.map +1 -1
  217. package/dist/base-nova/textarea.js.map +1 -1
  218. package/dist/base-nova/toggle-group.js.map +1 -1
  219. package/dist/base-nova/toggle.js.map +1 -1
  220. package/dist/base-nova/tooltip.js.map +1 -1
  221. package/dist/base-vega/accordion.js.map +1 -1
  222. package/dist/base-vega/alert-dialog.js.map +1 -1
  223. package/dist/base-vega/alert.js.map +1 -1
  224. package/dist/base-vega/aspect-ratio.js.map +1 -1
  225. package/dist/base-vega/avatar.js.map +1 -1
  226. package/dist/base-vega/badge.js.map +1 -1
  227. package/dist/base-vega/breadcrumb.js.map +1 -1
  228. package/dist/base-vega/button-group.js.map +1 -1
  229. package/dist/base-vega/button.js.map +1 -1
  230. package/dist/base-vega/calendar.js.map +1 -1
  231. package/dist/base-vega/card.js.map +1 -1
  232. package/dist/base-vega/carousel.js.map +1 -1
  233. package/dist/base-vega/chart.js.map +1 -1
  234. package/dist/base-vega/checkbox.js.map +1 -1
  235. package/dist/base-vega/combobox.js.map +1 -1
  236. package/dist/base-vega/command.js.map +1 -1
  237. package/dist/base-vega/context-menu.js.map +1 -1
  238. package/dist/base-vega/dialog.js.map +1 -1
  239. package/dist/base-vega/drawer.js.map +1 -1
  240. package/dist/base-vega/dropdown-menu.js.map +1 -1
  241. package/dist/base-vega/empty.js.map +1 -1
  242. package/dist/base-vega/field.js.map +1 -1
  243. package/dist/base-vega/hover-card.js.map +1 -1
  244. package/dist/base-vega/index.js +8 -6
  245. package/dist/base-vega/index.js.map +1 -1
  246. package/dist/base-vega/input-group.js.map +1 -1
  247. package/dist/base-vega/input-otp.js.map +1 -1
  248. package/dist/base-vega/input.js.map +1 -1
  249. package/dist/base-vega/item.js.map +1 -1
  250. package/dist/base-vega/kbd.js.map +1 -1
  251. package/dist/base-vega/label.js.map +1 -1
  252. package/dist/base-vega/menubar.js.map +1 -1
  253. package/dist/base-vega/native-select.js.map +1 -1
  254. package/dist/base-vega/navigation-menu.js.map +1 -1
  255. package/dist/base-vega/pagination.js.map +1 -1
  256. package/dist/base-vega/popover.js.map +1 -1
  257. package/dist/base-vega/progress.js.map +1 -1
  258. package/dist/base-vega/radio-group.js.map +1 -1
  259. package/dist/base-vega/resizable.js.map +1 -1
  260. package/dist/base-vega/scroll-area.js.map +1 -1
  261. package/dist/base-vega/select.js.map +1 -1
  262. package/dist/base-vega/separator.js.map +1 -1
  263. package/dist/base-vega/sheet.js.map +1 -1
  264. package/dist/base-vega/sidebar.js +8 -6
  265. package/dist/base-vega/sidebar.js.map +1 -1
  266. package/dist/base-vega/skeleton.js.map +1 -1
  267. package/dist/base-vega/slider.js.map +1 -1
  268. package/dist/base-vega/spinner.js.map +1 -1
  269. package/dist/base-vega/switch.js.map +1 -1
  270. package/dist/base-vega/table.js.map +1 -1
  271. package/dist/base-vega/tabs.js.map +1 -1
  272. package/dist/base-vega/textarea.js.map +1 -1
  273. package/dist/base-vega/toggle-group.js.map +1 -1
  274. package/dist/base-vega/toggle.js.map +1 -1
  275. package/dist/base-vega/tooltip.js.map +1 -1
  276. package/dist/hooks/index.d.ts +7 -0
  277. package/dist/hooks/index.js +181 -10
  278. package/dist/hooks/index.js.map +1 -1
  279. package/dist/hooks/use-as-ref.d.ts +5 -0
  280. package/dist/hooks/use-as-ref.js +17 -0
  281. package/dist/hooks/use-as-ref.js.map +1 -0
  282. package/dist/hooks/use-badge-overflow.d.ts +24 -0
  283. package/dist/hooks/use-badge-overflow.js +130 -0
  284. package/dist/hooks/use-badge-overflow.js.map +1 -0
  285. package/dist/hooks/use-callback-ref.d.ts +10 -0
  286. package/dist/hooks/use-callback-ref.js +17 -0
  287. package/dist/hooks/use-callback-ref.js.map +1 -0
  288. package/dist/hooks/use-debounced-callback.d.ts +3 -0
  289. package/dist/hooks/use-debounced-callback.js +38 -0
  290. package/dist/hooks/use-debounced-callback.js.map +1 -0
  291. package/dist/hooks/use-file-upload.d.ts +48 -0
  292. package/dist/hooks/use-file-upload.js +279 -0
  293. package/dist/hooks/use-file-upload.js.map +1 -0
  294. package/dist/hooks/use-isomorphic-layout-effect.d.ts +5 -0
  295. package/dist/hooks/use-isomorphic-layout-effect.js +8 -0
  296. package/dist/hooks/use-isomorphic-layout-effect.js.map +1 -0
  297. package/dist/hooks/use-lazy-ref.d.ts +5 -0
  298. package/dist/hooks/use-lazy-ref.js +14 -0
  299. package/dist/hooks/use-lazy-ref.js.map +1 -0
  300. package/dist/hooks/use-mobile.d.ts +1 -1
  301. package/dist/hooks/use-mobile.js +8 -6
  302. package/dist/hooks/use-mobile.js.map +1 -1
  303. package/dist/index.d.ts +1561 -57
  304. package/dist/index.js +23035 -2534
  305. package/dist/index.js.map +1 -1
  306. package/dist/lib/compose-refs.d.ts +15 -0
  307. package/dist/lib/compose-refs.js +42 -0
  308. package/dist/lib/compose-refs.js.map +1 -0
  309. package/dist/lib/format.d.ts +3 -0
  310. package/dist/lib/format.js +18 -0
  311. package/dist/lib/format.js.map +1 -0
  312. package/dist/lib/index.d.ts +3 -0
  313. package/dist/lib/index.js +53 -2
  314. package/dist/lib/index.js.map +1 -1
  315. package/dist/lib/utils.d.ts +6 -0
  316. package/dist/lib/utils.js.map +1 -1
  317. package/dist/new-york/accordion.js.map +1 -1
  318. package/dist/new-york/alert-dialog.js.map +1 -1
  319. package/dist/new-york/alert.js.map +1 -1
  320. package/dist/new-york/avatar.js.map +1 -1
  321. package/dist/new-york/badge.js.map +1 -1
  322. package/dist/new-york/breadcrumb.js.map +1 -1
  323. package/dist/new-york/button-group.js.map +1 -1
  324. package/dist/new-york/button.js.map +1 -1
  325. package/dist/new-york/calendar.js.map +1 -1
  326. package/dist/new-york/card.js.map +1 -1
  327. package/dist/new-york/carousel.js.map +1 -1
  328. package/dist/new-york/chart.js.map +1 -1
  329. package/dist/new-york/checkbox.js.map +1 -1
  330. package/dist/new-york/combobox.js.map +1 -1
  331. package/dist/new-york/command.js.map +1 -1
  332. package/dist/new-york/context-menu.js.map +1 -1
  333. package/dist/new-york/dialog.js.map +1 -1
  334. package/dist/new-york/drawer.js.map +1 -1
  335. package/dist/new-york/dropdown-menu.js.map +1 -1
  336. package/dist/new-york/empty.js.map +1 -1
  337. package/dist/new-york/field.js.map +1 -1
  338. package/dist/new-york/form.js.map +1 -1
  339. package/dist/new-york/hover-card.js.map +1 -1
  340. package/dist/new-york/index.js +8 -6
  341. package/dist/new-york/index.js.map +1 -1
  342. package/dist/new-york/input-group.js.map +1 -1
  343. package/dist/new-york/input-otp.js.map +1 -1
  344. package/dist/new-york/input.js.map +1 -1
  345. package/dist/new-york/item.js.map +1 -1
  346. package/dist/new-york/kbd.js.map +1 -1
  347. package/dist/new-york/label.js.map +1 -1
  348. package/dist/new-york/menubar.js.map +1 -1
  349. package/dist/new-york/native-select.js.map +1 -1
  350. package/dist/new-york/navigation-menu.js.map +1 -1
  351. package/dist/new-york/pagination.js.map +1 -1
  352. package/dist/new-york/popover.js.map +1 -1
  353. package/dist/new-york/progress.js.map +1 -1
  354. package/dist/new-york/radio-group.js.map +1 -1
  355. package/dist/new-york/resizable.js.map +1 -1
  356. package/dist/new-york/scroll-area.js.map +1 -1
  357. package/dist/new-york/select.js.map +1 -1
  358. package/dist/new-york/separator.js.map +1 -1
  359. package/dist/new-york/sheet.js.map +1 -1
  360. package/dist/new-york/sidebar.js +8 -6
  361. package/dist/new-york/sidebar.js.map +1 -1
  362. package/dist/new-york/skeleton.js.map +1 -1
  363. package/dist/new-york/slider.js.map +1 -1
  364. package/dist/new-york/spinner.js.map +1 -1
  365. package/dist/new-york/switch.js.map +1 -1
  366. package/dist/new-york/table.js.map +1 -1
  367. package/dist/new-york/tabs.js.map +1 -1
  368. package/dist/new-york/textarea.js.map +1 -1
  369. package/dist/new-york/toggle-group.js.map +1 -1
  370. package/dist/new-york/toggle.js.map +1 -1
  371. package/dist/new-york/tooltip.js.map +1 -1
  372. package/dist/radix-lyra/accordion.js.map +1 -1
  373. package/dist/radix-lyra/alert-dialog.js.map +1 -1
  374. package/dist/radix-lyra/alert.js.map +1 -1
  375. package/dist/radix-lyra/avatar.js.map +1 -1
  376. package/dist/radix-lyra/badge.js.map +1 -1
  377. package/dist/radix-lyra/breadcrumb.js.map +1 -1
  378. package/dist/radix-lyra/button-group.js.map +1 -1
  379. package/dist/radix-lyra/button.js.map +1 -1
  380. package/dist/radix-lyra/calendar.js.map +1 -1
  381. package/dist/radix-lyra/card.js.map +1 -1
  382. package/dist/radix-lyra/carousel.js.map +1 -1
  383. package/dist/radix-lyra/chart.js.map +1 -1
  384. package/dist/radix-lyra/checkbox.js.map +1 -1
  385. package/dist/radix-lyra/combobox.js.map +1 -1
  386. package/dist/radix-lyra/command.js.map +1 -1
  387. package/dist/radix-lyra/context-menu.js.map +1 -1
  388. package/dist/radix-lyra/dialog.js.map +1 -1
  389. package/dist/radix-lyra/drawer.js.map +1 -1
  390. package/dist/radix-lyra/dropdown-menu.js.map +1 -1
  391. package/dist/radix-lyra/empty.js.map +1 -1
  392. package/dist/radix-lyra/field.js.map +1 -1
  393. package/dist/radix-lyra/hover-card.js.map +1 -1
  394. package/dist/radix-lyra/index.js +8 -6
  395. package/dist/radix-lyra/index.js.map +1 -1
  396. package/dist/radix-lyra/input-group.js.map +1 -1
  397. package/dist/radix-lyra/input-otp.js.map +1 -1
  398. package/dist/radix-lyra/input.js.map +1 -1
  399. package/dist/radix-lyra/item.js.map +1 -1
  400. package/dist/radix-lyra/kbd.js.map +1 -1
  401. package/dist/radix-lyra/label.js.map +1 -1
  402. package/dist/radix-lyra/menubar.js.map +1 -1
  403. package/dist/radix-lyra/native-select.js.map +1 -1
  404. package/dist/radix-lyra/navigation-menu.js.map +1 -1
  405. package/dist/radix-lyra/pagination.js.map +1 -1
  406. package/dist/radix-lyra/popover.js.map +1 -1
  407. package/dist/radix-lyra/progress.js.map +1 -1
  408. package/dist/radix-lyra/radio-group.js.map +1 -1
  409. package/dist/radix-lyra/resizable.js.map +1 -1
  410. package/dist/radix-lyra/scroll-area.js.map +1 -1
  411. package/dist/radix-lyra/select.js.map +1 -1
  412. package/dist/radix-lyra/separator.js.map +1 -1
  413. package/dist/radix-lyra/sheet.js.map +1 -1
  414. package/dist/radix-lyra/sidebar.js +8 -6
  415. package/dist/radix-lyra/sidebar.js.map +1 -1
  416. package/dist/radix-lyra/skeleton.js.map +1 -1
  417. package/dist/radix-lyra/slider.js.map +1 -1
  418. package/dist/radix-lyra/spinner.js.map +1 -1
  419. package/dist/radix-lyra/switch.js.map +1 -1
  420. package/dist/radix-lyra/table.js.map +1 -1
  421. package/dist/radix-lyra/tabs.js.map +1 -1
  422. package/dist/radix-lyra/textarea.js.map +1 -1
  423. package/dist/radix-lyra/toggle-group.js.map +1 -1
  424. package/dist/radix-lyra/toggle.js.map +1 -1
  425. package/dist/radix-lyra/tooltip.js.map +1 -1
  426. package/dist/radix-maia/accordion.js.map +1 -1
  427. package/dist/radix-maia/alert-dialog.js.map +1 -1
  428. package/dist/radix-maia/alert.js.map +1 -1
  429. package/dist/radix-maia/avatar.js.map +1 -1
  430. package/dist/radix-maia/badge.js.map +1 -1
  431. package/dist/radix-maia/breadcrumb.js.map +1 -1
  432. package/dist/radix-maia/button-group.js.map +1 -1
  433. package/dist/radix-maia/button.js.map +1 -1
  434. package/dist/radix-maia/calendar.js.map +1 -1
  435. package/dist/radix-maia/card.js.map +1 -1
  436. package/dist/radix-maia/carousel.js.map +1 -1
  437. package/dist/radix-maia/chart.js.map +1 -1
  438. package/dist/radix-maia/checkbox.js.map +1 -1
  439. package/dist/radix-maia/combobox.js.map +1 -1
  440. package/dist/radix-maia/command.js.map +1 -1
  441. package/dist/radix-maia/context-menu.js.map +1 -1
  442. package/dist/radix-maia/dialog.js.map +1 -1
  443. package/dist/radix-maia/drawer.js.map +1 -1
  444. package/dist/radix-maia/dropdown-menu.js.map +1 -1
  445. package/dist/radix-maia/empty.js.map +1 -1
  446. package/dist/radix-maia/field.js.map +1 -1
  447. package/dist/radix-maia/hover-card.js.map +1 -1
  448. package/dist/radix-maia/index.js +8 -6
  449. package/dist/radix-maia/index.js.map +1 -1
  450. package/dist/radix-maia/input-group.js.map +1 -1
  451. package/dist/radix-maia/input-otp.js.map +1 -1
  452. package/dist/radix-maia/input.js.map +1 -1
  453. package/dist/radix-maia/item.js.map +1 -1
  454. package/dist/radix-maia/kbd.js.map +1 -1
  455. package/dist/radix-maia/label.js.map +1 -1
  456. package/dist/radix-maia/menubar.js.map +1 -1
  457. package/dist/radix-maia/native-select.js.map +1 -1
  458. package/dist/radix-maia/navigation-menu.js.map +1 -1
  459. package/dist/radix-maia/pagination.js.map +1 -1
  460. package/dist/radix-maia/popover.js.map +1 -1
  461. package/dist/radix-maia/progress.js.map +1 -1
  462. package/dist/radix-maia/radio-group.js.map +1 -1
  463. package/dist/radix-maia/resizable.js.map +1 -1
  464. package/dist/radix-maia/scroll-area.js.map +1 -1
  465. package/dist/radix-maia/select.js.map +1 -1
  466. package/dist/radix-maia/separator.js.map +1 -1
  467. package/dist/radix-maia/sheet.js.map +1 -1
  468. package/dist/radix-maia/sidebar.js +8 -6
  469. package/dist/radix-maia/sidebar.js.map +1 -1
  470. package/dist/radix-maia/skeleton.js.map +1 -1
  471. package/dist/radix-maia/slider.js.map +1 -1
  472. package/dist/radix-maia/spinner.js.map +1 -1
  473. package/dist/radix-maia/switch.js.map +1 -1
  474. package/dist/radix-maia/table.js.map +1 -1
  475. package/dist/radix-maia/tabs.js.map +1 -1
  476. package/dist/radix-maia/textarea.js.map +1 -1
  477. package/dist/radix-maia/toggle-group.js.map +1 -1
  478. package/dist/radix-maia/toggle.js.map +1 -1
  479. package/dist/radix-maia/tooltip.js.map +1 -1
  480. package/dist/radix-mira/accordion.js.map +1 -1
  481. package/dist/radix-mira/alert-dialog.js.map +1 -1
  482. package/dist/radix-mira/alert.js.map +1 -1
  483. package/dist/radix-mira/avatar.js.map +1 -1
  484. package/dist/radix-mira/badge.js.map +1 -1
  485. package/dist/radix-mira/breadcrumb.js.map +1 -1
  486. package/dist/radix-mira/button-group.js.map +1 -1
  487. package/dist/radix-mira/button.js.map +1 -1
  488. package/dist/radix-mira/calendar.js.map +1 -1
  489. package/dist/radix-mira/card.js.map +1 -1
  490. package/dist/radix-mira/carousel.js.map +1 -1
  491. package/dist/radix-mira/chart.js.map +1 -1
  492. package/dist/radix-mira/checkbox.js.map +1 -1
  493. package/dist/radix-mira/combobox.js.map +1 -1
  494. package/dist/radix-mira/command.js.map +1 -1
  495. package/dist/radix-mira/context-menu.js.map +1 -1
  496. package/dist/radix-mira/dialog.js.map +1 -1
  497. package/dist/radix-mira/drawer.js.map +1 -1
  498. package/dist/radix-mira/dropdown-menu.js.map +1 -1
  499. package/dist/radix-mira/empty.js.map +1 -1
  500. package/dist/radix-mira/field.js.map +1 -1
  501. package/dist/radix-mira/hover-card.js.map +1 -1
  502. package/dist/radix-mira/index.js +8 -6
  503. package/dist/radix-mira/index.js.map +1 -1
  504. package/dist/radix-mira/input-group.js.map +1 -1
  505. package/dist/radix-mira/input-otp.js.map +1 -1
  506. package/dist/radix-mira/input.js.map +1 -1
  507. package/dist/radix-mira/item.js.map +1 -1
  508. package/dist/radix-mira/kbd.js.map +1 -1
  509. package/dist/radix-mira/label.js.map +1 -1
  510. package/dist/radix-mira/menubar.js.map +1 -1
  511. package/dist/radix-mira/native-select.js.map +1 -1
  512. package/dist/radix-mira/navigation-menu.js.map +1 -1
  513. package/dist/radix-mira/pagination.js.map +1 -1
  514. package/dist/radix-mira/popover.js.map +1 -1
  515. package/dist/radix-mira/progress.js.map +1 -1
  516. package/dist/radix-mira/radio-group.js.map +1 -1
  517. package/dist/radix-mira/resizable.js.map +1 -1
  518. package/dist/radix-mira/scroll-area.js.map +1 -1
  519. package/dist/radix-mira/select.js.map +1 -1
  520. package/dist/radix-mira/separator.js.map +1 -1
  521. package/dist/radix-mira/sheet.js.map +1 -1
  522. package/dist/radix-mira/sidebar.js +8 -6
  523. package/dist/radix-mira/sidebar.js.map +1 -1
  524. package/dist/radix-mira/skeleton.js.map +1 -1
  525. package/dist/radix-mira/slider.js.map +1 -1
  526. package/dist/radix-mira/spinner.js.map +1 -1
  527. package/dist/radix-mira/switch.js.map +1 -1
  528. package/dist/radix-mira/table.js.map +1 -1
  529. package/dist/radix-mira/tabs.js.map +1 -1
  530. package/dist/radix-mira/textarea.js.map +1 -1
  531. package/dist/radix-mira/toggle-group.js.map +1 -1
  532. package/dist/radix-mira/toggle.js.map +1 -1
  533. package/dist/radix-mira/tooltip.js.map +1 -1
  534. package/dist/radix-nova/accordion.js.map +1 -1
  535. package/dist/radix-nova/alert-dialog.js.map +1 -1
  536. package/dist/radix-nova/alert.js.map +1 -1
  537. package/dist/radix-nova/avatar.js.map +1 -1
  538. package/dist/radix-nova/badge.js.map +1 -1
  539. package/dist/radix-nova/breadcrumb.js.map +1 -1
  540. package/dist/radix-nova/button-group.js.map +1 -1
  541. package/dist/radix-nova/button.js.map +1 -1
  542. package/dist/radix-nova/calendar.js.map +1 -1
  543. package/dist/radix-nova/card.js.map +1 -1
  544. package/dist/radix-nova/carousel.js.map +1 -1
  545. package/dist/radix-nova/chart.js.map +1 -1
  546. package/dist/radix-nova/checkbox.js.map +1 -1
  547. package/dist/radix-nova/combobox.js.map +1 -1
  548. package/dist/radix-nova/command.js.map +1 -1
  549. package/dist/radix-nova/context-menu.js.map +1 -1
  550. package/dist/radix-nova/dialog.js.map +1 -1
  551. package/dist/radix-nova/drawer.js.map +1 -1
  552. package/dist/radix-nova/dropdown-menu.js.map +1 -1
  553. package/dist/radix-nova/empty.js.map +1 -1
  554. package/dist/radix-nova/field.js.map +1 -1
  555. package/dist/radix-nova/hover-card.js.map +1 -1
  556. package/dist/radix-nova/index.js +8 -6
  557. package/dist/radix-nova/index.js.map +1 -1
  558. package/dist/radix-nova/input-group.js.map +1 -1
  559. package/dist/radix-nova/input-otp.js.map +1 -1
  560. package/dist/radix-nova/input.js.map +1 -1
  561. package/dist/radix-nova/item.js.map +1 -1
  562. package/dist/radix-nova/kbd.js.map +1 -1
  563. package/dist/radix-nova/label.js.map +1 -1
  564. package/dist/radix-nova/menubar.js.map +1 -1
  565. package/dist/radix-nova/native-select.js.map +1 -1
  566. package/dist/radix-nova/navigation-menu.js.map +1 -1
  567. package/dist/radix-nova/pagination.js.map +1 -1
  568. package/dist/radix-nova/popover.js.map +1 -1
  569. package/dist/radix-nova/progress.js.map +1 -1
  570. package/dist/radix-nova/radio-group.js.map +1 -1
  571. package/dist/radix-nova/resizable.js.map +1 -1
  572. package/dist/radix-nova/scroll-area.js.map +1 -1
  573. package/dist/radix-nova/select.js.map +1 -1
  574. package/dist/radix-nova/separator.js.map +1 -1
  575. package/dist/radix-nova/sheet.js.map +1 -1
  576. package/dist/radix-nova/sidebar.js +8 -6
  577. package/dist/radix-nova/sidebar.js.map +1 -1
  578. package/dist/radix-nova/skeleton.js.map +1 -1
  579. package/dist/radix-nova/slider.js.map +1 -1
  580. package/dist/radix-nova/spinner.js.map +1 -1
  581. package/dist/radix-nova/switch.js.map +1 -1
  582. package/dist/radix-nova/table.js.map +1 -1
  583. package/dist/radix-nova/tabs.js.map +1 -1
  584. package/dist/radix-nova/textarea.js.map +1 -1
  585. package/dist/radix-nova/toggle-group.js.map +1 -1
  586. package/dist/radix-nova/toggle.js.map +1 -1
  587. package/dist/radix-nova/tooltip.js.map +1 -1
  588. package/dist/radix-vega/accordion.js.map +1 -1
  589. package/dist/radix-vega/action-bar.d.ts +41 -0
  590. package/dist/radix-vega/action-bar.js +589 -0
  591. package/dist/radix-vega/action-bar.js.map +1 -0
  592. package/dist/radix-vega/alert-dialog.js.map +1 -1
  593. package/dist/radix-vega/alert.js.map +1 -1
  594. package/dist/radix-vega/avatar-group.d.ts +19 -0
  595. package/dist/radix-vega/avatar-group.js +193 -0
  596. package/dist/radix-vega/avatar-group.js.map +1 -0
  597. package/dist/radix-vega/avatar.d.ts +1 -3
  598. package/dist/radix-vega/avatar.js +1 -27
  599. package/dist/radix-vega/avatar.js.map +1 -1
  600. package/dist/radix-vega/badge-overflow.d.ts +21 -0
  601. package/dist/radix-vega/badge-overflow.js +223 -0
  602. package/dist/radix-vega/badge-overflow.js.map +1 -0
  603. package/dist/radix-vega/badge.d.ts +1 -1
  604. package/dist/radix-vega/badge.js.map +1 -1
  605. package/dist/radix-vega/breadcrumb.js.map +1 -1
  606. package/dist/radix-vega/button-group.js.map +1 -1
  607. package/dist/radix-vega/button.d.ts +2 -2
  608. package/dist/radix-vega/button.js.map +1 -1
  609. package/dist/radix-vega/calendar.js.map +1 -1
  610. package/dist/radix-vega/card.js.map +1 -1
  611. package/dist/radix-vega/carousel.js.map +1 -1
  612. package/dist/radix-vega/chart.js.map +1 -1
  613. package/dist/radix-vega/checkbox-group.d.ts +12 -0
  614. package/dist/radix-vega/checkbox-group.js +119 -0
  615. package/dist/radix-vega/checkbox-group.js.map +1 -0
  616. package/dist/radix-vega/checkbox.js.map +1 -1
  617. package/dist/radix-vega/circular-progress.d.ts +27 -0
  618. package/dist/radix-vega/circular-progress.js +252 -0
  619. package/dist/radix-vega/circular-progress.js.map +1 -0
  620. package/dist/radix-vega/color-picker.d.ts +85 -0
  621. package/dist/radix-vega/color-picker.js +1683 -0
  622. package/dist/radix-vega/color-picker.js.map +1 -0
  623. package/dist/radix-vega/color-swatch.d.ts +17 -0
  624. package/dist/radix-vega/color-swatch.js +95 -0
  625. package/dist/radix-vega/color-swatch.js.map +1 -0
  626. package/dist/radix-vega/combobox.d.ts +18 -22
  627. package/dist/radix-vega/combobox.js +118 -276
  628. package/dist/radix-vega/combobox.js.map +1 -1
  629. package/dist/radix-vega/command.js.map +1 -1
  630. package/dist/radix-vega/compare-slider.d.ts +32 -0
  631. package/dist/radix-vega/compare-slider.js +393 -0
  632. package/dist/radix-vega/compare-slider.js.map +1 -0
  633. package/dist/radix-vega/context-menu.js.map +1 -1
  634. package/dist/radix-vega/cropper.d.ts +89 -0
  635. package/dist/radix-vega/cropper.js +1396 -0
  636. package/dist/radix-vega/cropper.js.map +1 -0
  637. package/dist/radix-vega/dialog.js.map +1 -1
  638. package/dist/radix-vega/drawer.js.map +1 -1
  639. package/dist/radix-vega/dropdown-menu.js.map +1 -1
  640. package/dist/radix-vega/editable.d.ts +100 -0
  641. package/dist/radix-vega/editable.js +684 -0
  642. package/dist/radix-vega/editable.js.map +1 -0
  643. package/dist/radix-vega/empty.js.map +1 -1
  644. package/dist/radix-vega/field.js.map +1 -1
  645. package/dist/radix-vega/file-upload.d.ts +89 -0
  646. package/dist/radix-vega/file-upload.js +1089 -0
  647. package/dist/radix-vega/file-upload.js.map +1 -0
  648. package/dist/radix-vega/gauge.d.ts +27 -0
  649. package/dist/radix-vega/gauge.js +359 -0
  650. package/dist/radix-vega/gauge.js.map +1 -0
  651. package/dist/radix-vega/hover-card.js.map +1 -1
  652. package/dist/radix-vega/index.d.ts +50 -3
  653. package/dist/radix-vega/index.js +23001 -2667
  654. package/dist/radix-vega/index.js.map +1 -1
  655. package/dist/radix-vega/input-group.d.ts +1 -1
  656. package/dist/radix-vega/input-group.js.map +1 -1
  657. package/dist/radix-vega/input-otp.js.map +1 -1
  658. package/dist/radix-vega/input.js.map +1 -1
  659. package/dist/radix-vega/item.d.ts +2 -2
  660. package/dist/radix-vega/item.js.map +1 -1
  661. package/dist/radix-vega/kanban.d.ts +62 -0
  662. package/dist/radix-vega/kanban.js +831 -0
  663. package/dist/radix-vega/kanban.js.map +1 -0
  664. package/dist/radix-vega/kbd.js.map +1 -1
  665. package/dist/radix-vega/key-value.d.ts +82 -0
  666. package/dist/radix-vega/key-value.js +765 -0
  667. package/dist/radix-vega/key-value.js.map +1 -0
  668. package/dist/radix-vega/label.js.map +1 -1
  669. package/dist/radix-vega/listbox.d.ts +11 -0
  670. package/dist/radix-vega/listbox.js +90 -0
  671. package/dist/radix-vega/listbox.js.map +1 -0
  672. package/dist/radix-vega/mask-input.d.ts +64 -0
  673. package/dist/radix-vega/mask-input.js +1186 -0
  674. package/dist/radix-vega/mask-input.js.map +1 -0
  675. package/dist/radix-vega/media-player.d.ts +127 -0
  676. package/dist/radix-vega/media-player.js +2696 -0
  677. package/dist/radix-vega/media-player.js.map +1 -0
  678. package/dist/radix-vega/mention.d.ts +11 -0
  679. package/dist/radix-vega/mention.js +94 -0
  680. package/dist/radix-vega/mention.js.map +1 -0
  681. package/dist/radix-vega/menubar.js.map +1 -1
  682. package/dist/radix-vega/native-select.js.map +1 -1
  683. package/dist/radix-vega/navigation-menu.js.map +1 -1
  684. package/dist/radix-vega/pagination.js.map +1 -1
  685. package/dist/radix-vega/phone-input.d.ts +48 -0
  686. package/dist/radix-vega/phone-input.js +957 -0
  687. package/dist/radix-vega/phone-input.js.map +1 -0
  688. package/dist/radix-vega/popover.js.map +1 -1
  689. package/dist/radix-vega/progress.js.map +1 -1
  690. package/dist/radix-vega/qr-code.d.ts +53 -0
  691. package/dist/radix-vega/qr-code.js +396 -0
  692. package/dist/radix-vega/qr-code.js.map +1 -0
  693. package/dist/radix-vega/radio-group.js.map +1 -1
  694. package/dist/radix-vega/rating.d.ts +47 -0
  695. package/dist/radix-vega/rating.js +749 -0
  696. package/dist/radix-vega/rating.js.map +1 -0
  697. package/dist/radix-vega/relative-time-card.d.ts +22 -0
  698. package/dist/radix-vega/relative-time-card.js +236 -0
  699. package/dist/radix-vega/relative-time-card.js.map +1 -0
  700. package/dist/radix-vega/resizable.js.map +1 -1
  701. package/dist/radix-vega/responsive-dialog.d.ts +20 -0
  702. package/dist/radix-vega/responsive-dialog.js +483 -0
  703. package/dist/radix-vega/responsive-dialog.js.map +1 -0
  704. package/dist/radix-vega/scroll-area.js.map +1 -1
  705. package/dist/radix-vega/scroll-spy.d.ts +39 -0
  706. package/dist/radix-vega/scroll-spy.js +372 -0
  707. package/dist/radix-vega/scroll-spy.js.map +1 -0
  708. package/dist/radix-vega/scroller.d.ts +20 -0
  709. package/dist/radix-vega/scroller.js +352 -0
  710. package/dist/radix-vega/scroller.js.map +1 -0
  711. package/dist/radix-vega/segmented-input.d.ts +29 -0
  712. package/dist/radix-vega/segmented-input.js +178 -0
  713. package/dist/radix-vega/segmented-input.js.map +1 -0
  714. package/dist/radix-vega/select.js.map +1 -1
  715. package/dist/radix-vega/separator.js.map +1 -1
  716. package/dist/radix-vega/sheet.js.map +1 -1
  717. package/dist/radix-vega/sidebar.js +8 -6
  718. package/dist/radix-vega/sidebar.js.map +1 -1
  719. package/dist/radix-vega/skeleton.js.map +1 -1
  720. package/dist/radix-vega/slider.js.map +1 -1
  721. package/dist/radix-vega/sortable.d.ts +51 -0
  722. package/dist/radix-vega/sortable.js +444 -0
  723. package/dist/radix-vega/sortable.js.map +1 -0
  724. package/dist/radix-vega/speed-dial.d.ts +46 -0
  725. package/dist/radix-vega/speed-dial.js +898 -0
  726. package/dist/radix-vega/speed-dial.js.map +1 -0
  727. package/dist/radix-vega/spinner.js.map +1 -1
  728. package/dist/radix-vega/stack.d.ts +21 -0
  729. package/dist/radix-vega/stack.js +268 -0
  730. package/dist/radix-vega/stack.js.map +1 -0
  731. package/dist/radix-vega/stat.d.ts +24 -0
  732. package/dist/radix-vega/stat.js +147 -0
  733. package/dist/radix-vega/stat.js.map +1 -0
  734. package/dist/radix-vega/status.d.ts +18 -0
  735. package/dist/radix-vega/status.js +71 -0
  736. package/dist/radix-vega/status.js.map +1 -0
  737. package/dist/radix-vega/stepper.d.ts +73 -0
  738. package/dist/radix-vega/stepper.js +973 -0
  739. package/dist/radix-vega/stepper.js.map +1 -0
  740. package/dist/radix-vega/swap.d.ts +29 -0
  741. package/dist/radix-vega/swap.js +214 -0
  742. package/dist/radix-vega/swap.js.map +1 -0
  743. package/dist/radix-vega/switch.js.map +1 -1
  744. package/dist/radix-vega/table.js.map +1 -1
  745. package/dist/radix-vega/tabs.d.ts +1 -1
  746. package/dist/radix-vega/tabs.js.map +1 -1
  747. package/dist/radix-vega/tags-input.d.ts +12 -0
  748. package/dist/radix-vega/tags-input.js +98 -0
  749. package/dist/radix-vega/tags-input.js.map +1 -0
  750. package/dist/radix-vega/textarea.js.map +1 -1
  751. package/dist/radix-vega/time-picker.d.ts +88 -0
  752. package/dist/radix-vega/time-picker.js +1750 -0
  753. package/dist/radix-vega/time-picker.js.map +1 -0
  754. package/dist/radix-vega/timeline.d.ts +32 -0
  755. package/dist/radix-vega/timeline.js +611 -0
  756. package/dist/radix-vega/timeline.js.map +1 -0
  757. package/dist/radix-vega/toggle-group.js.map +1 -1
  758. package/dist/radix-vega/toggle.js.map +1 -1
  759. package/dist/radix-vega/tooltip.js.map +1 -1
  760. package/dist/radix-vega/tour.d.ts +109 -0
  761. package/dist/radix-vega/tour.js +1314 -0
  762. package/dist/radix-vega/tour.js.map +1 -0
  763. package/dist/radix-vega/visually-hidden-input.d.ts +8 -0
  764. package/dist/radix-vega/visually-hidden-input.js +33 -0
  765. package/dist/radix-vega/visually-hidden-input.js.map +1 -0
  766. package/package.json +40 -7
@@ -0,0 +1,48 @@
1
+ import React__default, { DragEvent, ChangeEvent, InputHTMLAttributes } from 'react';
2
+
3
+ type FileMetadata = {
4
+ name: string;
5
+ size: number;
6
+ type: string;
7
+ url: string;
8
+ id: string;
9
+ };
10
+ type FileWithPreview = {
11
+ file: File | FileMetadata;
12
+ id: string;
13
+ preview?: string;
14
+ };
15
+ type FileUploadOptions = {
16
+ maxFiles?: number;
17
+ maxSize?: number;
18
+ accept?: string;
19
+ multiple?: boolean;
20
+ initialFiles?: FileMetadata[];
21
+ onFilesChange?: (files: FileWithPreview[]) => void;
22
+ onFilesAdded?: (addedFiles: FileWithPreview[]) => void;
23
+ onError?: (errors: string[]) => void;
24
+ };
25
+ type FileUploadState = {
26
+ files: FileWithPreview[];
27
+ isDragging: boolean;
28
+ errors: string[];
29
+ };
30
+ type FileUploadActions = {
31
+ addFiles: (files: FileList | File[]) => void;
32
+ removeFile: (id: string) => void;
33
+ clearFiles: () => void;
34
+ clearErrors: () => void;
35
+ handleDragEnter: (e: DragEvent<HTMLElement>) => void;
36
+ handleDragLeave: (e: DragEvent<HTMLElement>) => void;
37
+ handleDragOver: (e: DragEvent<HTMLElement>) => void;
38
+ handleDrop: (e: DragEvent<HTMLElement>) => void;
39
+ handleFileChange: (e: ChangeEvent<HTMLInputElement>) => void;
40
+ openFileDialog: () => void;
41
+ getInputProps: (props?: InputHTMLAttributes<HTMLInputElement>) => InputHTMLAttributes<HTMLInputElement> & {
42
+ ref: React__default.Ref<HTMLInputElement>;
43
+ };
44
+ };
45
+ declare const useFileUpload: (options?: FileUploadOptions) => [FileUploadState, FileUploadActions];
46
+ declare const formatBytes: (bytes: number, decimals?: number) => string;
47
+
48
+ export { type FileMetadata, type FileUploadActions, type FileUploadOptions, type FileUploadState, type FileWithPreview, formatBytes, useFileUpload };
@@ -0,0 +1,279 @@
1
+ import { useState, useRef, useCallback } from 'react';
2
+
3
+ var useFileUpload = (options = {}) => {
4
+ const {
5
+ maxFiles = Number.POSITIVE_INFINITY,
6
+ maxSize = Number.POSITIVE_INFINITY,
7
+ accept = "*",
8
+ multiple = false,
9
+ initialFiles = [],
10
+ onFilesChange,
11
+ onFilesAdded,
12
+ onError
13
+ } = options;
14
+ const [state, setState] = useState({
15
+ files: initialFiles.map((file) => ({
16
+ file,
17
+ id: file.id,
18
+ preview: file.url
19
+ })),
20
+ isDragging: false,
21
+ errors: []
22
+ });
23
+ const inputRef = useRef(null);
24
+ const validateFile = useCallback(
25
+ (file) => {
26
+ if (file instanceof File) {
27
+ if (file.size > maxSize) {
28
+ return `File "${file.name}" exceeds the maximum size of ${formatBytes(maxSize)}.`;
29
+ }
30
+ } else {
31
+ if (file.size > maxSize) {
32
+ return `File "${file.name}" exceeds the maximum size of ${formatBytes(maxSize)}.`;
33
+ }
34
+ }
35
+ if (accept !== "*") {
36
+ const acceptedTypes = accept.split(",").map((type) => type.trim());
37
+ const fileType = file instanceof File ? file.type || "" : file.type;
38
+ const fileExtension = `.${file instanceof File ? file.name.split(".").pop() : file.name.split(".").pop()}`;
39
+ const isAccepted = acceptedTypes.some((type) => {
40
+ if (type.startsWith(".")) {
41
+ return fileExtension.toLowerCase() === type.toLowerCase();
42
+ }
43
+ if (type.endsWith("/*")) {
44
+ const baseType = type.split("/")[0];
45
+ return fileType.startsWith(`${baseType}/`);
46
+ }
47
+ return fileType === type;
48
+ });
49
+ if (!isAccepted) {
50
+ return `File "${file instanceof File ? file.name : file.name}" is not an accepted file type.`;
51
+ }
52
+ }
53
+ return null;
54
+ },
55
+ [accept, maxSize]
56
+ );
57
+ const createPreview = useCallback((file) => {
58
+ if (file instanceof File) {
59
+ return URL.createObjectURL(file);
60
+ }
61
+ return file.url;
62
+ }, []);
63
+ const generateUniqueId = useCallback((file) => {
64
+ if (file instanceof File) {
65
+ return `${file.name}-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
66
+ }
67
+ return file.id;
68
+ }, []);
69
+ const clearFiles = useCallback(() => {
70
+ setState((prev) => {
71
+ for (const file of prev.files) {
72
+ if (file.preview && file.file instanceof File && file.file.type.startsWith("image/")) {
73
+ URL.revokeObjectURL(file.preview);
74
+ }
75
+ }
76
+ if (inputRef.current) {
77
+ inputRef.current.value = "";
78
+ }
79
+ const newState = {
80
+ ...prev,
81
+ files: [],
82
+ errors: []
83
+ };
84
+ onFilesChange?.(newState.files);
85
+ return newState;
86
+ });
87
+ }, [onFilesChange]);
88
+ const addFiles = useCallback(
89
+ (newFiles) => {
90
+ if (!newFiles || newFiles.length === 0) return;
91
+ const newFilesArray = Array.from(newFiles);
92
+ const errors = [];
93
+ setState((prev) => ({ ...prev, errors: [] }));
94
+ if (!multiple) {
95
+ clearFiles();
96
+ }
97
+ if (multiple && maxFiles !== Number.POSITIVE_INFINITY && state.files.length + newFilesArray.length > maxFiles) {
98
+ errors.push(`You can only upload a maximum of ${maxFiles} files.`);
99
+ onError?.(errors);
100
+ setState((prev) => ({ ...prev, errors }));
101
+ return;
102
+ }
103
+ const validFiles = [];
104
+ for (const file of newFilesArray) {
105
+ if (multiple) {
106
+ const isDuplicate = state.files.some(
107
+ (existingFile) => existingFile.file.name === file.name && existingFile.file.size === file.size
108
+ );
109
+ if (isDuplicate) {
110
+ return;
111
+ }
112
+ }
113
+ if (file.size > maxSize) {
114
+ errors.push(
115
+ multiple ? `Some files exceed the maximum size of ${formatBytes(maxSize)}.` : `File exceeds the maximum size of ${formatBytes(maxSize)}.`
116
+ );
117
+ continue;
118
+ }
119
+ const error = validateFile(file);
120
+ if (error) {
121
+ errors.push(error);
122
+ } else {
123
+ validFiles.push({
124
+ file,
125
+ id: generateUniqueId(file),
126
+ preview: createPreview(file)
127
+ });
128
+ }
129
+ }
130
+ if (validFiles.length > 0) {
131
+ onFilesAdded?.(validFiles);
132
+ setState((prev) => {
133
+ const newFiles2 = !multiple ? validFiles : [...prev.files, ...validFiles];
134
+ onFilesChange?.(newFiles2);
135
+ return {
136
+ ...prev,
137
+ files: newFiles2,
138
+ errors
139
+ };
140
+ });
141
+ } else if (errors.length > 0) {
142
+ onError?.(errors);
143
+ setState((prev) => ({
144
+ ...prev,
145
+ errors
146
+ }));
147
+ }
148
+ if (inputRef.current) {
149
+ inputRef.current.value = "";
150
+ }
151
+ },
152
+ [
153
+ state.files,
154
+ maxFiles,
155
+ multiple,
156
+ maxSize,
157
+ validateFile,
158
+ createPreview,
159
+ generateUniqueId,
160
+ clearFiles,
161
+ onFilesChange,
162
+ onFilesAdded
163
+ ]
164
+ );
165
+ const removeFile = useCallback(
166
+ (id) => {
167
+ setState((prev) => {
168
+ const fileToRemove = prev.files.find((file) => file.id === id);
169
+ if (fileToRemove && fileToRemove.preview && fileToRemove.file instanceof File && fileToRemove.file.type.startsWith("image/")) {
170
+ URL.revokeObjectURL(fileToRemove.preview);
171
+ }
172
+ const newFiles = prev.files.filter((file) => file.id !== id);
173
+ onFilesChange?.(newFiles);
174
+ return {
175
+ ...prev,
176
+ files: newFiles,
177
+ errors: []
178
+ };
179
+ });
180
+ },
181
+ [onFilesChange]
182
+ );
183
+ const clearErrors = useCallback(() => {
184
+ setState((prev) => ({
185
+ ...prev,
186
+ errors: []
187
+ }));
188
+ }, []);
189
+ const handleDragEnter = useCallback((e) => {
190
+ e.preventDefault();
191
+ e.stopPropagation();
192
+ setState((prev) => ({ ...prev, isDragging: true }));
193
+ }, []);
194
+ const handleDragLeave = useCallback((e) => {
195
+ e.preventDefault();
196
+ e.stopPropagation();
197
+ if (e.currentTarget.contains(e.relatedTarget)) {
198
+ return;
199
+ }
200
+ setState((prev) => ({ ...prev, isDragging: false }));
201
+ }, []);
202
+ const handleDragOver = useCallback((e) => {
203
+ e.preventDefault();
204
+ e.stopPropagation();
205
+ }, []);
206
+ const handleDrop = useCallback(
207
+ (e) => {
208
+ e.preventDefault();
209
+ e.stopPropagation();
210
+ setState((prev) => ({ ...prev, isDragging: false }));
211
+ if (inputRef.current?.disabled) {
212
+ return;
213
+ }
214
+ if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {
215
+ if (!multiple) {
216
+ const file = e.dataTransfer.files[0];
217
+ addFiles([file]);
218
+ } else {
219
+ addFiles(e.dataTransfer.files);
220
+ }
221
+ }
222
+ },
223
+ [addFiles, multiple]
224
+ );
225
+ const handleFileChange = useCallback(
226
+ (e) => {
227
+ if (e.target.files && e.target.files.length > 0) {
228
+ addFiles(e.target.files);
229
+ }
230
+ },
231
+ [addFiles]
232
+ );
233
+ const openFileDialog = useCallback(() => {
234
+ if (inputRef.current) {
235
+ inputRef.current.click();
236
+ }
237
+ }, []);
238
+ const getInputProps = useCallback(
239
+ (props = {}) => {
240
+ return {
241
+ ...props,
242
+ type: "file",
243
+ onChange: handleFileChange,
244
+ accept: props.accept || accept,
245
+ multiple: props.multiple !== void 0 ? props.multiple : multiple,
246
+ ref: inputRef
247
+ };
248
+ },
249
+ [accept, multiple, handleFileChange]
250
+ );
251
+ return [
252
+ state,
253
+ {
254
+ addFiles,
255
+ removeFile,
256
+ clearFiles,
257
+ clearErrors,
258
+ handleDragEnter,
259
+ handleDragLeave,
260
+ handleDragOver,
261
+ handleDrop,
262
+ handleFileChange,
263
+ openFileDialog,
264
+ getInputProps
265
+ }
266
+ ];
267
+ };
268
+ var formatBytes = (bytes, decimals = 2) => {
269
+ if (bytes === 0) return "0 Bytes";
270
+ const k = 1024;
271
+ const dm = decimals < 0 ? 0 : decimals;
272
+ const sizes = ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
273
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
274
+ return Number.parseFloat((bytes / k ** i).toFixed(dm)) + sizes[i];
275
+ };
276
+
277
+ export { formatBytes, useFileUpload };
278
+ //# sourceMappingURL=use-file-upload.js.map
279
+ //# sourceMappingURL=use-file-upload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/hooks/use-file-upload.ts"],"names":["newFiles"],"mappings":"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","file":"use-file-upload.js","sourcesContent":["'use client';\n\nimport type React from 'react';\nimport { useCallback, useRef, useState, type ChangeEvent, type DragEvent, type InputHTMLAttributes } from 'react';\n\nexport type FileMetadata = {\n name: string;\n size: number;\n type: string;\n url: string;\n id: string;\n};\n\nexport type FileWithPreview = {\n file: File | FileMetadata;\n id: string;\n preview?: string;\n};\n\nexport type FileUploadOptions = {\n maxFiles?: number; // Only used when multiple is true, defaults to Infinity\n maxSize?: number; // in bytes\n accept?: string;\n multiple?: boolean; // Defaults to false\n initialFiles?: FileMetadata[];\n onFilesChange?: (files: FileWithPreview[]) => void; // Callback when files change\n onFilesAdded?: (addedFiles: FileWithPreview[]) => void; // Callback when new files are added\n onError?: (errors: string[]) => void;\n};\n\nexport type FileUploadState = {\n files: FileWithPreview[];\n isDragging: boolean;\n errors: string[];\n};\n\nexport type FileUploadActions = {\n addFiles: (files: FileList | File[]) => void;\n removeFile: (id: string) => void;\n clearFiles: () => void;\n clearErrors: () => void;\n handleDragEnter: (e: DragEvent<HTMLElement>) => void;\n handleDragLeave: (e: DragEvent<HTMLElement>) => void;\n handleDragOver: (e: DragEvent<HTMLElement>) => void;\n handleDrop: (e: DragEvent<HTMLElement>) => void;\n handleFileChange: (e: ChangeEvent<HTMLInputElement>) => void;\n openFileDialog: () => void;\n getInputProps: (props?: InputHTMLAttributes<HTMLInputElement>) => InputHTMLAttributes<HTMLInputElement> & {\n ref: React.Ref<HTMLInputElement>;\n };\n};\n\nexport const useFileUpload = (options: FileUploadOptions = {}): [FileUploadState, FileUploadActions] => {\n const {\n maxFiles = Number.POSITIVE_INFINITY,\n maxSize = Number.POSITIVE_INFINITY,\n accept = '*',\n multiple = false,\n initialFiles = [],\n onFilesChange,\n onFilesAdded,\n onError,\n } = options;\n\n const [state, setState] = useState<FileUploadState>({\n files: initialFiles.map((file) => ({\n file,\n id: file.id,\n preview: file.url,\n })),\n isDragging: false,\n errors: [],\n });\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const validateFile = useCallback(\n (file: File | FileMetadata): string | null => {\n if (file instanceof File) {\n if (file.size > maxSize) {\n return `File \"${file.name}\" exceeds the maximum size of ${formatBytes(maxSize)}.`;\n }\n } else {\n if (file.size > maxSize) {\n return `File \"${file.name}\" exceeds the maximum size of ${formatBytes(maxSize)}.`;\n }\n }\n\n if (accept !== '*') {\n const acceptedTypes = accept.split(',').map((type) => type.trim());\n const fileType = file instanceof File ? file.type || '' : file.type;\n const fileExtension = `.${file instanceof File ? file.name.split('.').pop() : file.name.split('.').pop()}`;\n\n const isAccepted = acceptedTypes.some((type) => {\n if (type.startsWith('.')) {\n return fileExtension.toLowerCase() === type.toLowerCase();\n }\n if (type.endsWith('/*')) {\n const baseType = type.split('/')[0];\n return fileType.startsWith(`${baseType}/`);\n }\n return fileType === type;\n });\n\n if (!isAccepted) {\n return `File \"${file instanceof File ? file.name : file.name}\" is not an accepted file type.`;\n }\n }\n\n return null;\n },\n [accept, maxSize],\n );\n\n const createPreview = useCallback((file: File | FileMetadata): string | undefined => {\n if (file instanceof File) {\n return URL.createObjectURL(file);\n }\n return file.url;\n }, []);\n\n const generateUniqueId = useCallback((file: File | FileMetadata): string => {\n if (file instanceof File) {\n return `${file.name}-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;\n }\n return file.id;\n }, []);\n\n const clearFiles = useCallback(() => {\n setState((prev) => {\n // Clean up object URLs\n for (const file of prev.files) {\n if (file.preview && file.file instanceof File && file.file.type.startsWith('image/')) {\n URL.revokeObjectURL(file.preview);\n }\n }\n\n if (inputRef.current) {\n inputRef.current.value = '';\n }\n\n const newState = {\n ...prev,\n files: [],\n errors: [],\n };\n\n onFilesChange?.(newState.files);\n return newState;\n });\n }, [onFilesChange]);\n\n const addFiles = useCallback(\n (newFiles: FileList | File[]) => {\n if (!newFiles || newFiles.length === 0) return;\n\n const newFilesArray = Array.from(newFiles);\n const errors: string[] = [];\n\n // Clear existing errors when new files are uploaded\n setState((prev) => ({ ...prev, errors: [] }));\n\n // In single file mode, clear existing files first\n if (!multiple) {\n clearFiles();\n }\n\n // Check if adding these files would exceed maxFiles (only in multiple mode)\n if (multiple && maxFiles !== Number.POSITIVE_INFINITY && state.files.length + newFilesArray.length > maxFiles) {\n errors.push(`You can only upload a maximum of ${maxFiles} files.`);\n onError?.(errors);\n setState((prev) => ({ ...prev, errors }));\n return;\n }\n\n const validFiles: FileWithPreview[] = [];\n\n for (const file of newFilesArray) {\n // Only check for duplicates if multiple files are allowed\n if (multiple) {\n const isDuplicate = state.files.some(\n (existingFile) => existingFile.file.name === file.name && existingFile.file.size === file.size,\n );\n\n // Skip duplicate files silently\n if (isDuplicate) {\n return;\n }\n }\n\n // Check file size\n if (file.size > maxSize) {\n errors.push(\n multiple\n ? `Some files exceed the maximum size of ${formatBytes(maxSize)}.`\n : `File exceeds the maximum size of ${formatBytes(maxSize)}.`,\n );\n continue;\n }\n\n const error = validateFile(file);\n if (error) {\n errors.push(error);\n } else {\n validFiles.push({\n file,\n id: generateUniqueId(file),\n preview: createPreview(file),\n });\n }\n }\n\n // Only update state if we have valid files to add\n if (validFiles.length > 0) {\n // Call the onFilesAdded callback with the newly added valid files\n onFilesAdded?.(validFiles);\n\n setState((prev) => {\n const newFiles = !multiple ? validFiles : [...prev.files, ...validFiles];\n onFilesChange?.(newFiles);\n return {\n ...prev,\n files: newFiles,\n errors,\n };\n });\n } else if (errors.length > 0) {\n onError?.(errors);\n setState((prev) => ({\n ...prev,\n errors,\n }));\n }\n\n // Reset input value after handling files\n if (inputRef.current) {\n inputRef.current.value = '';\n }\n },\n [\n state.files,\n maxFiles,\n multiple,\n maxSize,\n validateFile,\n createPreview,\n generateUniqueId,\n clearFiles,\n onFilesChange,\n onFilesAdded,\n ],\n );\n\n const removeFile = useCallback(\n (id: string) => {\n setState((prev) => {\n const fileToRemove = prev.files.find((file) => file.id === id);\n if (\n fileToRemove &&\n fileToRemove.preview &&\n fileToRemove.file instanceof File &&\n fileToRemove.file.type.startsWith('image/')\n ) {\n URL.revokeObjectURL(fileToRemove.preview);\n }\n\n const newFiles = prev.files.filter((file) => file.id !== id);\n onFilesChange?.(newFiles);\n\n return {\n ...prev,\n files: newFiles,\n errors: [],\n };\n });\n },\n [onFilesChange],\n );\n\n const clearErrors = useCallback(() => {\n setState((prev) => ({\n ...prev,\n errors: [],\n }));\n }, []);\n\n const handleDragEnter = useCallback((e: DragEvent<HTMLElement>) => {\n e.preventDefault();\n e.stopPropagation();\n setState((prev) => ({ ...prev, isDragging: true }));\n }, []);\n\n const handleDragLeave = useCallback((e: DragEvent<HTMLElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (e.currentTarget.contains(e.relatedTarget as Node)) {\n return;\n }\n\n setState((prev) => ({ ...prev, isDragging: false }));\n }, []);\n\n const handleDragOver = useCallback((e: DragEvent<HTMLElement>) => {\n e.preventDefault();\n e.stopPropagation();\n }, []);\n\n const handleDrop = useCallback(\n (e: DragEvent<HTMLElement>) => {\n e.preventDefault();\n e.stopPropagation();\n setState((prev) => ({ ...prev, isDragging: false }));\n\n // Don't process files if the input is disabled\n if (inputRef.current?.disabled) {\n return;\n }\n\n if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {\n // In single file mode, only use the first file\n if (!multiple) {\n const file = e.dataTransfer.files[0];\n addFiles([file]);\n } else {\n addFiles(e.dataTransfer.files);\n }\n }\n },\n [addFiles, multiple],\n );\n\n const handleFileChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n if (e.target.files && e.target.files.length > 0) {\n addFiles(e.target.files);\n }\n },\n [addFiles],\n );\n\n const openFileDialog = useCallback(() => {\n if (inputRef.current) {\n inputRef.current.click();\n }\n }, []);\n\n const getInputProps = useCallback(\n (props: InputHTMLAttributes<HTMLInputElement> = {}) => {\n return {\n ...props,\n type: 'file' as const,\n onChange: handleFileChange,\n accept: props.accept || accept,\n multiple: props.multiple !== undefined ? props.multiple : multiple,\n ref: inputRef,\n };\n },\n [accept, multiple, handleFileChange],\n );\n\n return [\n state,\n {\n addFiles,\n removeFile,\n clearFiles,\n clearErrors,\n handleDragEnter,\n handleDragLeave,\n handleDragOver,\n handleDrop,\n handleFileChange,\n openFileDialog,\n getInputProps,\n },\n ];\n};\n\n// Helper function to format bytes to human-readable format\nexport const formatBytes = (bytes: number, decimals = 2): string => {\n if (bytes === 0) return '0 Bytes';\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return Number.parseFloat((bytes / k ** i).toFixed(dm)) + sizes[i];\n};\n"]}
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+
3
+ declare const useIsomorphicLayoutEffect: typeof React.useLayoutEffect;
4
+
5
+ export { useIsomorphicLayoutEffect };
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+
3
+ // src/hooks/use-isomorphic-layout-effect.ts
4
+ var useIsomorphicLayoutEffect = typeof window !== "undefined" ? React.useLayoutEffect : React.useEffect;
5
+
6
+ export { useIsomorphicLayoutEffect };
7
+ //# sourceMappingURL=use-isomorphic-layout-effect.js.map
8
+ //# sourceMappingURL=use-isomorphic-layout-effect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/hooks/use-isomorphic-layout-effect.ts"],"names":[],"mappings":";;;AAEA,IAAM,yBAAA,GACJ,OAAO,MAAA,KAAW,WAAA,GAAoB,KAAA,CAAA,eAAA,GAAwB,KAAA,CAAA","file":"use-isomorphic-layout-effect.js","sourcesContent":["import * as React from \"react\";\n\nconst useIsomorphicLayoutEffect =\n typeof window !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\n\nexport { useIsomorphicLayoutEffect };\n"]}
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+
3
+ declare function useLazyRef<T>(fn: () => T): React.RefObject<T>;
4
+
5
+ export { useLazyRef };
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+
3
+ // src/hooks/use-lazy-ref.ts
4
+ function useLazyRef(fn) {
5
+ const ref = React.useRef(null);
6
+ if (ref.current === null) {
7
+ ref.current = fn();
8
+ }
9
+ return ref;
10
+ }
11
+
12
+ export { useLazyRef };
13
+ //# sourceMappingURL=use-lazy-ref.js.map
14
+ //# sourceMappingURL=use-lazy-ref.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/hooks/use-lazy-ref.ts"],"names":[],"mappings":";;;AAEA,SAAS,WAAc,EAAA,EAAa;AAClC,EAAA,MAAM,GAAA,GAAY,aAAiB,IAAI,CAAA;AAEvC,EAAA,IAAI,GAAA,CAAI,YAAY,IAAA,EAAM;AACxB,IAAA,GAAA,CAAI,UAAU,EAAA,EAAG;AAAA,EACnB;AAEA,EAAA,OAAO,GAAA;AACT","file":"use-lazy-ref.js","sourcesContent":["import * as React from \"react\";\n\nfunction useLazyRef<T>(fn: () => T) {\n const ref = React.useRef<T | null>(null);\n\n if (ref.current === null) {\n ref.current = fn();\n }\n\n return ref as React.RefObject<T>;\n}\n\nexport { useLazyRef };\n"]}
@@ -1,3 +1,3 @@
1
- declare function useIsMobile(): boolean;
1
+ declare function useIsMobile(breakpoint?: number): boolean;
2
2
 
3
3
  export { useIsMobile };
@@ -2,17 +2,19 @@ import * as React from 'react';
2
2
 
3
3
  // src/hooks/use-mobile.ts
4
4
  var MOBILE_BREAKPOINT = 768;
5
- function useIsMobile() {
6
- const [isMobile, setIsMobile] = React.useState(void 0);
5
+ function useIsMobile(breakpoint = MOBILE_BREAKPOINT) {
6
+ const [isMobile, setIsMobile] = React.useState(
7
+ void 0
8
+ );
7
9
  React.useEffect(() => {
8
- const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
10
+ const mql = window.matchMedia(`(max-width: ${breakpoint - 1}px)`);
9
11
  const onChange = () => {
10
- setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
12
+ setIsMobile(window.innerWidth < breakpoint);
11
13
  };
12
14
  mql.addEventListener("change", onChange);
13
- setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
15
+ setIsMobile(window.innerWidth < breakpoint);
14
16
  return () => mql.removeEventListener("change", onChange);
15
- }, []);
17
+ }, [breakpoint]);
16
18
  return !!isMobile;
17
19
  }
18
20
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/use-mobile.ts"],"names":[],"mappings":";;;AAEA,IAAM,iBAAA,GAAoB,GAAA;AAEnB,SAAS,WAAA,GAAc;AAC5B,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAU,eAA8B,MAAS,CAAA;AAE7E,EAAM,gBAAU,MAAM;AACpB,IAAA,MAAM,MAAM,MAAA,CAAO,UAAA,CAAW,CAAA,YAAA,EAAe,iBAAA,GAAoB,CAAC,CAAA,GAAA,CAAK,CAAA;AACvE,IAAA,MAAM,WAAW,MAAM;AACrB,MAAA,WAAA,CAAY,MAAA,CAAO,aAAa,iBAAiB,CAAA;AAAA,IACnD,CAAA;AACA,IAAA,GAAA,CAAI,gBAAA,CAAiB,UAAU,QAAQ,CAAA;AACvC,IAAA,WAAA,CAAY,MAAA,CAAO,aAAa,iBAAiB,CAAA;AACjD,IAAA,OAAO,MAAM,GAAA,CAAI,mBAAA,CAAoB,QAAA,EAAU,QAAQ,CAAA;AAAA,EACzD,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,OAAO,CAAC,CAAC,QAAA;AACX","file":"use-mobile.js","sourcesContent":["import * as React from \"react\"\n\nconst MOBILE_BREAKPOINT = 768\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined)\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n }\n mql.addEventListener(\"change\", onChange)\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n return () => mql.removeEventListener(\"change\", onChange)\n }, [])\n\n return !!isMobile\n}\n"]}
1
+ {"version":3,"sources":["../../src/hooks/use-mobile.ts"],"names":[],"mappings":";;;AAEA,IAAM,iBAAA,GAAoB,GAAA;AAE1B,SAAS,WAAA,CAAY,aAAa,iBAAA,EAAmB;AACnD,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAU,KAAA,CAAA,QAAA;AAAA,IACpC;AAAA,GACF;AAEA,EAAM,gBAAU,MAAM;AACpB,IAAA,MAAM,MAAM,MAAA,CAAO,UAAA,CAAW,CAAA,YAAA,EAAe,UAAA,GAAa,CAAC,CAAA,GAAA,CAAK,CAAA;AAChE,IAAA,MAAM,WAAW,MAAM;AACrB,MAAA,WAAA,CAAY,MAAA,CAAO,aAAa,UAAU,CAAA;AAAA,IAC5C,CAAA;AACA,IAAA,GAAA,CAAI,gBAAA,CAAiB,UAAU,QAAQ,CAAA;AACvC,IAAA,WAAA,CAAY,MAAA,CAAO,aAAa,UAAU,CAAA;AAC1C,IAAA,OAAO,MAAM,GAAA,CAAI,mBAAA,CAAoB,QAAA,EAAU,QAAQ,CAAA;AAAA,EACzD,CAAA,EAAG,CAAC,UAAU,CAAC,CAAA;AAEf,EAAA,OAAO,CAAC,CAAC,QAAA;AACX","file":"use-mobile.js","sourcesContent":["import * as React from \"react\";\r\n\r\nconst MOBILE_BREAKPOINT = 768;\r\n\r\nfunction useIsMobile(breakpoint = MOBILE_BREAKPOINT) {\r\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(\r\n undefined,\r\n );\r\n\r\n React.useEffect(() => {\r\n const mql = window.matchMedia(`(max-width: ${breakpoint - 1}px)`);\r\n const onChange = () => {\r\n setIsMobile(window.innerWidth < breakpoint);\r\n };\r\n mql.addEventListener(\"change\", onChange);\r\n setIsMobile(window.innerWidth < breakpoint);\r\n return () => mql.removeEventListener(\"change\", onChange);\r\n }, [breakpoint]);\r\n\r\n return !!isMobile;\r\n}\r\n\r\nexport { useIsMobile };\r\n"]}