commerce-toolkit 0.6.0 → 0.8.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 (851) hide show
  1. package/README.md +4 -4
  2. package/dist/{accordion-trigger-DFuN29lS.js → accordion-trigger-BldJXbcx.js} +84 -77
  3. package/dist/accordion-trigger-BldJXbcx.js.map +1 -0
  4. package/dist/accordion-trigger-CTRtqYib.cjs +2 -0
  5. package/dist/{accordion-trigger-CpTcclGS.cjs.map → accordion-trigger-CTRtqYib.cjs.map} +1 -1
  6. package/dist/accordion.cjs +1 -1
  7. package/dist/accordion.js +1 -1
  8. package/dist/alert-dismiss-BjoD9zXP.js +130 -0
  9. package/dist/alert-dismiss-BjoD9zXP.js.map +1 -0
  10. package/dist/alert-dismiss-eEf1SmhO.cjs +2 -0
  11. package/dist/alert-dismiss-eEf1SmhO.cjs.map +1 -0
  12. package/dist/alert.cjs +1 -1
  13. package/dist/alert.js +1 -1
  14. package/dist/arrow-left-ANjqfZPv.js +16 -0
  15. package/dist/arrow-left-ANjqfZPv.js.map +1 -0
  16. package/dist/arrow-left-Dc7Mn1vO.cjs +7 -0
  17. package/dist/arrow-left-Dc7Mn1vO.cjs.map +1 -0
  18. package/dist/arrow-right-Dx01QsJW.cjs +7 -0
  19. package/dist/arrow-right-Dx01QsJW.cjs.map +1 -0
  20. package/dist/arrow-right-u33nJuCL.js +16 -0
  21. package/dist/arrow-right-u33nJuCL.js.map +1 -0
  22. package/dist/banner-dismiss-ByGLVUf4.cjs +2 -0
  23. package/dist/banner-dismiss-ByGLVUf4.cjs.map +1 -0
  24. package/dist/banner-dismiss-DC0spaA2.js +106 -0
  25. package/dist/banner-dismiss-DC0spaA2.js.map +1 -0
  26. package/dist/banner.cjs +1 -1
  27. package/dist/banner.js +2 -3
  28. package/dist/{blog-post-card-author-VkGle9g8.js → blog-post-card-author-DR_GIlFf.js} +56 -52
  29. package/dist/blog-post-card-author-DR_GIlFf.js.map +1 -0
  30. package/dist/blog-post-card-author-LoHfdwYY.cjs +2 -0
  31. package/dist/blog-post-card-author-LoHfdwYY.cjs.map +1 -0
  32. package/dist/blog-post-card.cjs +1 -1
  33. package/dist/blog-post-card.cjs.map +1 -1
  34. package/dist/blog-post-card.js +38 -30
  35. package/dist/blog-post-card.js.map +1 -1
  36. package/dist/breadcrumbs.cjs +2 -0
  37. package/dist/breadcrumbs.cjs.map +1 -0
  38. package/dist/breadcrumbs.js +90 -0
  39. package/dist/breadcrumbs.js.map +1 -0
  40. package/dist/button-D0viptzn.js +134 -0
  41. package/dist/button-D0viptzn.js.map +1 -0
  42. package/dist/button-bfAfHC_O.cjs +2 -0
  43. package/dist/button-bfAfHC_O.cjs.map +1 -0
  44. package/dist/button-link-DyOjXaM6.cjs +2 -0
  45. package/dist/button-link-DyOjXaM6.cjs.map +1 -0
  46. package/dist/button-link-KFt37w0p.js +32 -0
  47. package/dist/button-link-KFt37w0p.js.map +1 -0
  48. package/dist/button-loader-icon-BMHs6rYA.js +23 -0
  49. package/dist/button-loader-icon-BMHs6rYA.js.map +1 -0
  50. package/dist/button-loader-icon-C9L2M_EA.cjs +7 -0
  51. package/dist/button-loader-icon-C9L2M_EA.cjs.map +1 -0
  52. package/dist/button-radio-group.cjs +1 -1
  53. package/dist/button-radio-group.cjs.map +1 -1
  54. package/dist/button-radio-group.js +13 -31
  55. package/dist/button-radio-group.js.map +1 -1
  56. package/dist/button.cjs +2 -0
  57. package/dist/button.cjs.map +1 -0
  58. package/dist/button.js +5 -0
  59. package/dist/button.js.map +1 -0
  60. package/dist/calendar-CRD3qYHr.js +2886 -0
  61. package/dist/calendar-CRD3qYHr.js.map +1 -0
  62. package/dist/calendar-Db8gL2Eb.cjs +2 -0
  63. package/dist/calendar-Db8gL2Eb.cjs.map +1 -0
  64. package/dist/calendar-dropdown-icon-DUw1T2iH.js +58 -0
  65. package/dist/calendar-dropdown-icon-DUw1T2iH.js.map +1 -0
  66. package/dist/calendar-dropdown-icon-Vk-oA3CF.cjs +7 -0
  67. package/dist/calendar-dropdown-icon-Vk-oA3CF.cjs.map +1 -0
  68. package/dist/calendar.cjs +2 -0
  69. package/dist/calendar.cjs.map +1 -0
  70. package/dist/calendar.js +7 -0
  71. package/dist/calendar.js.map +1 -0
  72. package/dist/card-link-CS3zwUEd.cjs +2 -0
  73. package/dist/card-link-CS3zwUEd.cjs.map +1 -0
  74. package/dist/{card-link-C48N1y5C.js → card-link-D9mHN6-Z.js} +11 -8
  75. package/dist/card-link-D9mHN6-Z.js.map +1 -0
  76. package/dist/card-radio-group.cjs +1 -1
  77. package/dist/card-radio-group.cjs.map +1 -1
  78. package/dist/card-radio-group.js +49 -40
  79. package/dist/card-radio-group.js.map +1 -1
  80. package/dist/card.cjs +1 -1
  81. package/dist/card.cjs.map +1 -1
  82. package/dist/card.js +9 -9
  83. package/dist/card.js.map +1 -1
  84. package/dist/carousel-next-icon--YmTPwxE.js +1516 -0
  85. package/dist/carousel-next-icon--YmTPwxE.js.map +1 -0
  86. package/dist/carousel-next-icon-Bdjj_UKN.cjs +2 -0
  87. package/dist/carousel-next-icon-Bdjj_UKN.cjs.map +1 -0
  88. package/dist/carousel.cjs +1 -1
  89. package/dist/carousel.js +9 -7
  90. package/dist/{category-card-link-D85RfMpf.js → category-card-link-CdNA4PeK.js} +78 -65
  91. package/dist/category-card-link-CdNA4PeK.js.map +1 -0
  92. package/dist/category-card-link-CjIZ-qsb.cjs +7 -0
  93. package/dist/category-card-link-CjIZ-qsb.cjs.map +1 -0
  94. package/dist/category-card.cjs +1 -1
  95. package/dist/category-card.cjs.map +1 -1
  96. package/dist/category-card.js +4 -4
  97. package/dist/category-card.js.map +1 -1
  98. package/dist/checkbox-CsMLn53r.js +9 -0
  99. package/dist/checkbox-CsMLn53r.js.map +1 -0
  100. package/dist/checkbox-aVfjxtZs.cjs +2 -0
  101. package/dist/checkbox-aVfjxtZs.cjs.map +1 -0
  102. package/dist/checkbox-group.cjs +1 -1
  103. package/dist/checkbox-group.cjs.map +1 -1
  104. package/dist/checkbox-group.js +27 -11
  105. package/dist/checkbox-group.js.map +1 -1
  106. package/dist/checkbox-icon-C7n5s-1e.js +298 -0
  107. package/dist/checkbox-icon-C7n5s-1e.js.map +1 -0
  108. package/dist/checkbox-icon-iPH7tHCy.cjs +2 -0
  109. package/dist/checkbox-icon-iPH7tHCy.cjs.map +1 -0
  110. package/dist/checkbox.cjs +1 -1
  111. package/dist/checkbox.js +3 -2
  112. package/dist/chevron-right-D4mEt25m.cjs +7 -0
  113. package/dist/chevron-right-D4mEt25m.cjs.map +1 -0
  114. package/dist/chevron-right-DF8msc7r.js +13 -0
  115. package/dist/chevron-right-DF8msc7r.js.map +1 -0
  116. package/dist/chip-icon-BY7YKgGe.cjs +2 -0
  117. package/dist/chip-icon-BY7YKgGe.cjs.map +1 -0
  118. package/dist/chip-icon-y9Dl_zV2.js +46 -0
  119. package/dist/chip-icon-y9Dl_zV2.js.map +1 -0
  120. package/dist/chip.cjs +1 -1
  121. package/dist/chip.js +4 -3
  122. package/dist/circle-alert-BlXmMk3i.cjs +7 -0
  123. package/dist/circle-alert-BlXmMk3i.cjs.map +1 -0
  124. package/dist/circle-alert-DAoN8flz.js +17 -0
  125. package/dist/circle-alert-DAoN8flz.js.map +1 -0
  126. package/dist/compare-card-reveal-BJuFVrlm.cjs +2 -0
  127. package/dist/compare-card-reveal-BJuFVrlm.cjs.map +1 -0
  128. package/dist/compare-card-reveal-COfodCGj.js +277 -0
  129. package/dist/compare-card-reveal-COfodCGj.js.map +1 -0
  130. package/dist/compare-card.cjs +1 -1
  131. package/dist/compare-card.cjs.map +1 -1
  132. package/dist/compare-card.js +30 -37
  133. package/dist/compare-card.js.map +1 -1
  134. package/dist/compare-drawer-submit-BMx3dFzr.js +230 -0
  135. package/dist/compare-drawer-submit-BMx3dFzr.js.map +1 -0
  136. package/dist/compare-drawer-submit-CMjU9BdS.cjs +2 -0
  137. package/dist/compare-drawer-submit-CMjU9BdS.cjs.map +1 -0
  138. package/dist/compare-drawer.cjs +1 -1
  139. package/dist/compare-drawer.js +12 -9
  140. package/dist/components/accordion/accordion.d.ts +3 -4
  141. package/dist/components/accordion/accordion.d.ts.map +1 -1
  142. package/dist/components/accordion/primitives/accordion-chevron.d.ts.map +1 -1
  143. package/dist/components/accordion/primitives/accordion-item.d.ts.map +1 -1
  144. package/dist/components/accordion/primitives/accordion-title.d.ts.map +1 -1
  145. package/dist/components/alert/alert.d.ts +7 -7
  146. package/dist/components/alert/primitives/alert-actions.d.ts.map +1 -1
  147. package/dist/components/alert/primitives/alert-header.d.ts.map +1 -1
  148. package/dist/components/alert/primitives/alert-root.d.ts +5 -3
  149. package/dist/components/alert/primitives/alert-root.d.ts.map +1 -1
  150. package/dist/components/animated-underline/animated-underline.d.ts +2 -2
  151. package/dist/components/animated-underline/animated-underline.d.ts.map +1 -1
  152. package/dist/components/badge/badge.d.ts +14 -11
  153. package/dist/components/badge/badge.d.ts.map +1 -1
  154. package/dist/components/badge/index.d.ts +1 -1
  155. package/dist/components/badge/index.d.ts.map +1 -1
  156. package/dist/components/banner/banner.d.ts +7 -8
  157. package/dist/components/banner/banner.d.ts.map +1 -1
  158. package/dist/components/banner/primitives/banner-content.d.ts +1 -1
  159. package/dist/components/banner/primitives/banner-content.d.ts.map +1 -1
  160. package/dist/components/banner/primitives/banner-dismiss.d.ts.map +1 -1
  161. package/dist/components/banner/primitives/banner-root.d.ts +15 -2
  162. package/dist/components/banner/primitives/banner-root.d.ts.map +1 -1
  163. package/dist/components/banner/primitives.d.ts +1 -2
  164. package/dist/components/banner/primitives.d.ts.map +1 -1
  165. package/dist/components/blog-post-card/blog-post-card.d.ts +8 -8
  166. package/dist/components/blog-post-card/primitives/blog-post-card-author.d.ts.map +1 -1
  167. package/dist/components/blog-post-card/primitives/blog-post-card-fallback.d.ts.map +1 -1
  168. package/dist/components/blog-post-card/primitives/blog-post-card-image.d.ts.map +1 -1
  169. package/dist/components/blog-post-card/primitives/blog-post-card-link.d.ts.map +1 -1
  170. package/dist/components/blog-post-card/primitives/blog-post-card-skeleton.d.ts.map +1 -1
  171. package/dist/components/breadcrumbs/breadcrumbs.d.ts +32 -0
  172. package/dist/components/breadcrumbs/breadcrumbs.d.ts.map +1 -0
  173. package/dist/components/breadcrumbs/index.d.ts +3 -0
  174. package/dist/components/breadcrumbs/index.d.ts.map +1 -0
  175. package/dist/components/breadcrumbs/primitives/breadcrumbs-current.d.ts +4 -0
  176. package/dist/components/breadcrumbs/primitives/breadcrumbs-current.d.ts.map +1 -0
  177. package/dist/components/breadcrumbs/primitives/breadcrumbs-icon.d.ts +8 -0
  178. package/dist/components/breadcrumbs/primitives/breadcrumbs-icon.d.ts.map +1 -0
  179. package/dist/components/breadcrumbs/primitives/breadcrumbs-item.d.ts +4 -0
  180. package/dist/components/breadcrumbs/primitives/breadcrumbs-item.d.ts.map +1 -0
  181. package/dist/components/breadcrumbs/primitives/breadcrumbs-link.d.ts +6 -0
  182. package/dist/components/breadcrumbs/primitives/breadcrumbs-link.d.ts.map +1 -0
  183. package/dist/components/breadcrumbs/primitives/breadcrumbs-list.d.ts +4 -0
  184. package/dist/components/breadcrumbs/primitives/breadcrumbs-list.d.ts.map +1 -0
  185. package/dist/components/breadcrumbs/primitives/breadcrumbs-root.d.ts +4 -0
  186. package/dist/components/breadcrumbs/primitives/breadcrumbs-root.d.ts.map +1 -0
  187. package/dist/components/breadcrumbs/primitives.d.ts +7 -0
  188. package/dist/components/breadcrumbs/primitives.d.ts.map +1 -0
  189. package/dist/components/button/button.d.ts +38 -27
  190. package/dist/components/button/button.d.ts.map +1 -1
  191. package/dist/components/button/index.d.ts +2 -1
  192. package/dist/components/button/index.d.ts.map +1 -1
  193. package/dist/components/button/primitives/button-loader-icon.d.ts +8 -0
  194. package/dist/components/button/primitives/button-loader-icon.d.ts.map +1 -0
  195. package/dist/components/button/primitives.d.ts +2 -0
  196. package/dist/components/button/primitives.d.ts.map +1 -0
  197. package/dist/components/button-link/button-link.d.ts +6 -29
  198. package/dist/components/button-link/button-link.d.ts.map +1 -1
  199. package/dist/components/button-radio-group/button-radio-group.d.ts +1 -1
  200. package/dist/components/button-radio-group/primitives/button-radio-group-item.d.ts.map +1 -1
  201. package/dist/components/button-radio-group/primitives/button-radio-group-root.d.ts.map +1 -1
  202. package/dist/components/calendar/calendar.d.ts +24 -25
  203. package/dist/components/calendar/calendar.d.ts.map +1 -1
  204. package/dist/components/calendar/index.d.ts +1 -0
  205. package/dist/components/calendar/index.d.ts.map +1 -1
  206. package/dist/components/calendar/primitives/calendar-dropdown-icon.d.ts +8 -0
  207. package/dist/components/calendar/primitives/calendar-dropdown-icon.d.ts.map +1 -0
  208. package/dist/components/calendar/primitives/calendar-next-icon.d.ts +8 -0
  209. package/dist/components/calendar/primitives/calendar-next-icon.d.ts.map +1 -0
  210. package/dist/components/calendar/primitives/calendar-prev-icon.d.ts +8 -0
  211. package/dist/components/calendar/primitives/calendar-prev-icon.d.ts.map +1 -0
  212. package/dist/components/calendar/primitives.d.ts +4 -0
  213. package/dist/components/calendar/primitives.d.ts.map +1 -0
  214. package/dist/components/card/card.d.ts +13 -9
  215. package/dist/components/card/card.d.ts.map +1 -1
  216. package/dist/components/card/primitives/card-root.d.ts +2 -2
  217. package/dist/components/card/primitives/card-root.d.ts.map +1 -1
  218. package/dist/components/card-radio-group/card-radio-group.d.ts +4 -2
  219. package/dist/components/card-radio-group/card-radio-group.d.ts.map +1 -1
  220. package/dist/components/card-radio-group/primitives/card-radio-group-image.d.ts.map +1 -1
  221. package/dist/components/card-radio-group/primitives/card-radio-group-item.d.ts.map +1 -1
  222. package/dist/components/card-radio-group/primitives/card-radio-group-label.d.ts.map +1 -1
  223. package/dist/components/card-radio-group/primitives/card-radio-group-thumbnail.d.ts.map +1 -1
  224. package/dist/components/carousel/carousel.d.ts +14 -6
  225. package/dist/components/carousel/carousel.d.ts.map +1 -1
  226. package/dist/components/carousel/primitives/carousel-next-icon.d.ts +8 -0
  227. package/dist/components/carousel/primitives/carousel-next-icon.d.ts.map +1 -0
  228. package/dist/components/carousel/primitives/carousel-next.d.ts.map +1 -1
  229. package/dist/components/carousel/primitives/carousel-prev-icon.d.ts +8 -0
  230. package/dist/components/carousel/primitives/carousel-prev-icon.d.ts.map +1 -0
  231. package/dist/components/carousel/primitives/carousel-prev.d.ts.map +1 -1
  232. package/dist/components/carousel/primitives/carousel-scrollbar.d.ts +1 -1
  233. package/dist/components/carousel/primitives/carousel-scrollbar.d.ts.map +1 -1
  234. package/dist/components/carousel/primitives.d.ts +2 -0
  235. package/dist/components/carousel/primitives.d.ts.map +1 -1
  236. package/dist/components/category-card/category-card.d.ts +19 -10
  237. package/dist/components/category-card/category-card.d.ts.map +1 -1
  238. package/dist/components/category-card/primitives/category-card-fallback.d.ts.map +1 -1
  239. package/dist/components/category-card/primitives/category-card-icon.d.ts +7 -4
  240. package/dist/components/category-card/primitives/category-card-icon.d.ts.map +1 -1
  241. package/dist/components/category-card/primitives/category-card-link.d.ts.map +1 -1
  242. package/dist/components/category-card/primitives/category-card-thumbnail.d.ts.map +1 -1
  243. package/dist/components/checkbox/checkbox.d.ts +7 -5
  244. package/dist/components/checkbox/checkbox.d.ts.map +1 -1
  245. package/dist/components/checkbox/primitives/checkbox-icon.d.ts +8 -0
  246. package/dist/components/checkbox/primitives/checkbox-icon.d.ts.map +1 -0
  247. package/dist/components/checkbox/primitives/checkbox-root.d.ts.map +1 -1
  248. package/dist/components/checkbox/primitives.d.ts +1 -0
  249. package/dist/components/checkbox/primitives.d.ts.map +1 -1
  250. package/dist/components/checkbox-group/checkbox-group.d.ts +10 -1
  251. package/dist/components/checkbox-group/checkbox-group.d.ts.map +1 -1
  252. package/dist/components/checkbox-group/primitives/checkbox-group-checkbox.d.ts +5 -0
  253. package/dist/components/checkbox-group/primitives/checkbox-group-checkbox.d.ts.map +1 -0
  254. package/dist/components/checkbox-group/primitives/checkbox-group-field-item.d.ts +5 -0
  255. package/dist/components/checkbox-group/primitives/checkbox-group-field-item.d.ts.map +1 -0
  256. package/dist/components/checkbox-group/primitives/checkbox-group-label.d.ts +5 -0
  257. package/dist/components/checkbox-group/primitives/checkbox-group-label.d.ts.map +1 -0
  258. package/dist/components/checkbox-group/primitives.d.ts +3 -1
  259. package/dist/components/checkbox-group/primitives.d.ts.map +1 -1
  260. package/dist/components/chip/chip.d.ts +10 -6
  261. package/dist/components/chip/chip.d.ts.map +1 -1
  262. package/dist/components/chip/primitives/chip-button.d.ts +5 -3
  263. package/dist/components/chip/primitives/chip-button.d.ts.map +1 -1
  264. package/dist/components/chip/primitives/chip-icon.d.ts +8 -0
  265. package/dist/components/chip/primitives/chip-icon.d.ts.map +1 -0
  266. package/dist/components/chip/primitives/chip-root.d.ts.map +1 -1
  267. package/dist/components/chip/primitives.d.ts +1 -0
  268. package/dist/components/chip/primitives.d.ts.map +1 -1
  269. package/dist/components/compare-card/compare-card.d.ts +11 -25
  270. package/dist/components/compare-card/compare-card.d.ts.map +1 -1
  271. package/dist/components/compare-card/primitives/compare-card-product-card.d.ts +5 -0
  272. package/dist/components/compare-card/primitives/compare-card-product-card.d.ts.map +1 -0
  273. package/dist/components/compare-card/primitives/compare-card-reveal.d.ts +5 -0
  274. package/dist/components/compare-card/primitives/compare-card-reveal.d.ts.map +1 -0
  275. package/dist/components/compare-card/primitives.d.ts +3 -7
  276. package/dist/components/compare-card/primitives.d.ts.map +1 -1
  277. package/dist/components/compare-drawer/compare-drawer.d.ts +16 -3
  278. package/dist/components/compare-drawer/compare-drawer.d.ts.map +1 -1
  279. package/dist/components/compare-drawer/primitives/compare-drawer-fallback.d.ts +2 -2
  280. package/dist/components/compare-drawer/primitives/compare-drawer-fallback.d.ts.map +1 -1
  281. package/dist/components/compare-drawer/primitives/compare-drawer-image.d.ts +2 -2
  282. package/dist/components/compare-drawer/primitives/compare-drawer-image.d.ts.map +1 -1
  283. package/dist/components/compare-drawer/primitives/compare-drawer-item.d.ts.map +1 -1
  284. package/dist/components/compare-drawer/primitives/compare-drawer-link.d.ts.map +1 -1
  285. package/dist/components/compare-drawer/primitives/compare-drawer-remove-icon.d.ts +8 -0
  286. package/dist/components/compare-drawer/primitives/compare-drawer-remove-icon.d.ts.map +1 -0
  287. package/dist/components/compare-drawer/primitives/compare-drawer-remove.d.ts.map +1 -1
  288. package/dist/components/compare-drawer/primitives/compare-drawer-submit-icon.d.ts +9 -0
  289. package/dist/components/compare-drawer/primitives/compare-drawer-submit-icon.d.ts.map +1 -0
  290. package/dist/components/compare-drawer/primitives/compare-drawer-submit.d.ts +10 -0
  291. package/dist/components/compare-drawer/primitives/compare-drawer-submit.d.ts.map +1 -0
  292. package/dist/components/compare-drawer/primitives.d.ts +3 -0
  293. package/dist/components/compare-drawer/primitives.d.ts.map +1 -1
  294. package/dist/components/counter/counter.d.ts +19 -11
  295. package/dist/components/counter/counter.d.ts.map +1 -1
  296. package/dist/components/counter/primitives/counter-decrease-icon.d.ts +8 -0
  297. package/dist/components/counter/primitives/counter-decrease-icon.d.ts.map +1 -0
  298. package/dist/components/counter/primitives/counter-decrease.d.ts.map +1 -1
  299. package/dist/components/counter/primitives/counter-increase-icon.d.ts +8 -0
  300. package/dist/components/counter/primitives/counter-increase-icon.d.ts.map +1 -0
  301. package/dist/components/counter/primitives/counter-increase.d.ts.map +1 -1
  302. package/dist/components/counter/primitives/counter-input.d.ts.map +1 -1
  303. package/dist/components/counter/primitives/counter-root.d.ts.map +1 -1
  304. package/dist/components/counter/primitives.d.ts +2 -0
  305. package/dist/components/counter/primitives.d.ts.map +1 -1
  306. package/dist/components/cursor-pagination/cursor-pagination.d.ts +23 -6
  307. package/dist/components/cursor-pagination/cursor-pagination.d.ts.map +1 -1
  308. package/dist/components/cursor-pagination/primitives/cursor-pagination-link.d.ts.map +1 -1
  309. package/dist/components/cursor-pagination/primitives/cursor-pagination-next-icon.d.ts +8 -0
  310. package/dist/components/cursor-pagination/primitives/cursor-pagination-next-icon.d.ts.map +1 -0
  311. package/dist/components/cursor-pagination/primitives/cursor-pagination-previous-icon.d.ts +8 -0
  312. package/dist/components/cursor-pagination/primitives/cursor-pagination-previous-icon.d.ts.map +1 -0
  313. package/dist/components/cursor-pagination/primitives/cursor-pagination-root.d.ts +1 -1
  314. package/dist/components/cursor-pagination/primitives/cursor-pagination-root.d.ts.map +1 -1
  315. package/dist/components/cursor-pagination/primitives/cursor-pagination-skeleton.d.ts.map +1 -1
  316. package/dist/components/cursor-pagination/primitives.d.ts +2 -0
  317. package/dist/components/cursor-pagination/primitives.d.ts.map +1 -1
  318. package/dist/components/date-picker/date-picker.d.ts +12 -5
  319. package/dist/components/date-picker/date-picker.d.ts.map +1 -1
  320. package/dist/components/date-picker/primitives/date-picker-calendar.d.ts +4 -0
  321. package/dist/components/date-picker/primitives/date-picker-calendar.d.ts.map +1 -0
  322. package/dist/components/date-picker/primitives/date-picker-content.d.ts.map +1 -1
  323. package/dist/components/date-picker/primitives/date-picker-icon.d.ts +8 -0
  324. package/dist/components/date-picker/primitives/date-picker-icon.d.ts.map +1 -0
  325. package/dist/components/date-picker/primitives/date-picker-input.d.ts +9 -0
  326. package/dist/components/date-picker/primitives/date-picker-input.d.ts.map +1 -0
  327. package/dist/components/date-picker/primitives/date-picker-portal.d.ts.map +1 -1
  328. package/dist/components/date-picker/primitives/date-picker-root.d.ts.map +1 -1
  329. package/dist/components/date-picker/primitives/date-picker-trigger.d.ts.map +1 -1
  330. package/dist/components/date-picker/primitives.d.ts +3 -0
  331. package/dist/components/date-picker/primitives.d.ts.map +1 -1
  332. package/dist/components/dropdown-menu/dropdown-menu.d.ts +7 -3
  333. package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -1
  334. package/dist/components/dropdown-menu/primitives/dropdown-menu-checkbox-indicator.d.ts +8 -0
  335. package/dist/components/dropdown-menu/primitives/dropdown-menu-checkbox-indicator.d.ts.map +1 -0
  336. package/dist/components/dropdown-menu/primitives/dropdown-menu-checkbox-item.d.ts +6 -2
  337. package/dist/components/dropdown-menu/primitives/dropdown-menu-checkbox-item.d.ts.map +1 -1
  338. package/dist/components/dropdown-menu/primitives/dropdown-menu-root.d.ts.map +1 -1
  339. package/dist/components/dropdown-menu/primitives/dropdown-menu-sub-indicator.d.ts +8 -0
  340. package/dist/components/dropdown-menu/primitives/dropdown-menu-sub-indicator.d.ts.map +1 -0
  341. package/dist/components/dropdown-menu/primitives/dropdown-menu-sub-trigger.d.ts +6 -2
  342. package/dist/components/dropdown-menu/primitives/dropdown-menu-sub-trigger.d.ts.map +1 -1
  343. package/dist/components/dropdown-menu/primitives/dropdown-menu-trigger-icon.d.ts +8 -0
  344. package/dist/components/dropdown-menu/primitives/dropdown-menu-trigger-icon.d.ts.map +1 -0
  345. package/dist/components/dropdown-menu/primitives.d.ts +3 -0
  346. package/dist/components/dropdown-menu/primitives.d.ts.map +1 -1
  347. package/dist/components/favorite/favorite.d.ts +11 -6
  348. package/dist/components/favorite/favorite.d.ts.map +1 -1
  349. package/dist/components/favorite/primitives/favorite-heart.d.ts +6 -5
  350. package/dist/components/favorite/primitives/favorite-heart.d.ts.map +1 -1
  351. package/dist/components/favorite/primitives/favorite-root.d.ts.map +1 -1
  352. package/dist/components/field/primitives/field-error-icon.d.ts +8 -0
  353. package/dist/components/field/primitives/field-error-icon.d.ts.map +1 -0
  354. package/dist/components/field/primitives/field-error.d.ts +8 -3
  355. package/dist/components/field/primitives/field-error.d.ts.map +1 -1
  356. package/dist/components/field/primitives/field-separator.d.ts.map +1 -1
  357. package/dist/components/field/primitives.d.ts +1 -0
  358. package/dist/components/field/primitives.d.ts.map +1 -1
  359. package/dist/components/file-input/file-input.d.ts +10 -1
  360. package/dist/components/file-input/file-input.d.ts.map +1 -1
  361. package/dist/components/file-input/primitives/file-input-dropzone.d.ts.map +1 -1
  362. package/dist/components/file-input/primitives/file-input-label.d.ts +5 -0
  363. package/dist/components/file-input/primitives/file-input-label.d.ts.map +1 -0
  364. package/dist/components/file-input/primitives/file-input-name.d.ts.map +1 -1
  365. package/dist/components/file-input/primitives/file-input-progress.d.ts.map +1 -1
  366. package/dist/components/file-input/primitives/file-input-remove-icon.d.ts +8 -0
  367. package/dist/components/file-input/primitives/file-input-remove-icon.d.ts.map +1 -0
  368. package/dist/components/file-input/primitives/file-input-remove.d.ts.map +1 -1
  369. package/dist/components/file-input/primitives/file-input-root.d.ts.map +1 -1
  370. package/dist/components/file-input/primitives/file-input-trigger.d.ts.map +1 -1
  371. package/dist/components/file-input/primitives/file-input-upload-icon.d.ts +8 -0
  372. package/dist/components/file-input/primitives/file-input-upload-icon.d.ts.map +1 -0
  373. package/dist/components/file-input/primitives.d.ts +3 -0
  374. package/dist/components/file-input/primitives.d.ts.map +1 -1
  375. package/dist/components/form-status/form-status.d.ts +12 -6
  376. package/dist/components/form-status/form-status.d.ts.map +1 -1
  377. package/dist/components/form-status/primitives/form-status-error-icon.d.ts +8 -0
  378. package/dist/components/form-status/primitives/form-status-error-icon.d.ts.map +1 -0
  379. package/dist/components/form-status/primitives/form-status-root.d.ts +6 -3
  380. package/dist/components/form-status/primitives/form-status-root.d.ts.map +1 -1
  381. package/dist/components/form-status/primitives/form-status-success-icon.d.ts +8 -0
  382. package/dist/components/form-status/primitives/form-status-success-icon.d.ts.map +1 -0
  383. package/dist/components/form-status/primitives.d.ts +2 -0
  384. package/dist/components/form-status/primitives.d.ts.map +1 -1
  385. package/dist/components/icon/icon.d.ts +1 -1
  386. package/dist/components/icon/icon.d.ts.map +1 -1
  387. package/dist/components/icon/primitives/icon-skeleton.d.ts.map +1 -1
  388. package/dist/components/input/input.d.ts +7 -4
  389. package/dist/components/input/input.d.ts.map +1 -1
  390. package/dist/components/input/primitives/input-field.d.ts.map +1 -1
  391. package/dist/components/input/primitives/input-prepend-icon.d.ts +8 -0
  392. package/dist/components/input/primitives/input-prepend-icon.d.ts.map +1 -0
  393. package/dist/components/input/primitives/input-prepend.d.ts.map +1 -1
  394. package/dist/components/input/primitives/input-root.d.ts.map +1 -1
  395. package/dist/components/input/primitives.d.ts +1 -0
  396. package/dist/components/input/primitives.d.ts.map +1 -1
  397. package/dist/components/logo/primitives/logo-image.d.ts.map +1 -1
  398. package/dist/components/logo/primitives/logo-skeleton.d.ts.map +1 -1
  399. package/dist/components/logo/primitives/logo-text.d.ts.map +1 -1
  400. package/dist/components/modal/modal.d.ts +2 -2
  401. package/dist/components/modal/primitives/modal-overlay.d.ts.map +1 -1
  402. package/dist/components/modal/primitives/modal-portal.d.ts.map +1 -1
  403. package/dist/components/modal/primitives/modal-root.d.ts.map +1 -1
  404. package/dist/components/navigation-menu/navigation-menu.d.ts +5 -1
  405. package/dist/components/navigation-menu/navigation-menu.d.ts.map +1 -1
  406. package/dist/components/navigation-menu/primitives/navigation-menu-list.d.ts.map +1 -1
  407. package/dist/components/navigation-menu/primitives/navigation-menu-root.d.ts +2 -2
  408. package/dist/components/navigation-menu/primitives/navigation-menu-root.d.ts.map +1 -1
  409. package/dist/components/offset-pagination/offset-pagination.d.ts +7 -4
  410. package/dist/components/offset-pagination/offset-pagination.d.ts.map +1 -1
  411. package/dist/components/offset-pagination/primitives/offset-pagination-link.d.ts.map +1 -1
  412. package/dist/components/offset-pagination/primitives/offset-pagination-root.d.ts +1 -1
  413. package/dist/components/offset-pagination/primitives/offset-pagination-root.d.ts.map +1 -1
  414. package/dist/components/price/price.d.ts +4 -4
  415. package/dist/components/product-card/primitives/product-card-actions.d.ts +4 -0
  416. package/dist/components/product-card/primitives/{product-card-content.d.ts.map → product-card-actions.d.ts.map} +1 -1
  417. package/dist/components/product-card/primitives/product-card-cart-button.d.ts +5 -0
  418. package/dist/components/product-card/primitives/product-card-cart-button.d.ts.map +1 -0
  419. package/dist/components/product-card/primitives/product-card-cart-link.d.ts +5 -0
  420. package/dist/components/product-card/primitives/product-card-cart-link.d.ts.map +1 -0
  421. package/dist/components/product-card/primitives/product-card-compare.d.ts +5 -2
  422. package/dist/components/product-card/primitives/product-card-compare.d.ts.map +1 -1
  423. package/dist/components/product-card/primitives/product-card-details.d.ts.map +1 -1
  424. package/dist/components/product-card/primitives/product-card-form.d.ts +4 -0
  425. package/dist/components/product-card/primitives/product-card-form.d.ts.map +1 -0
  426. package/dist/components/product-card/primitives/product-card-image.d.ts.map +1 -1
  427. package/dist/components/product-card/primitives/product-card-input.d.ts +4 -0
  428. package/dist/components/product-card/primitives/product-card-input.d.ts.map +1 -0
  429. package/dist/components/product-card/primitives/product-card-price.d.ts.map +1 -1
  430. package/dist/components/product-card/primitives/product-card-rating.d.ts +5 -0
  431. package/dist/components/product-card/primitives/product-card-rating.d.ts.map +1 -0
  432. package/dist/components/product-card/primitives.d.ts +6 -3
  433. package/dist/components/product-card/primitives.d.ts.map +1 -1
  434. package/dist/components/product-card/product-card.d.ts +38 -7
  435. package/dist/components/product-card/product-card.d.ts.map +1 -1
  436. package/dist/components/radio-group/primitives/radio-group-field-item.d.ts +5 -0
  437. package/dist/components/radio-group/primitives/radio-group-field-item.d.ts.map +1 -0
  438. package/dist/components/radio-group/primitives/radio-group-indicator.d.ts.map +1 -1
  439. package/dist/components/radio-group/primitives/radio-group-item.d.ts.map +1 -1
  440. package/dist/components/radio-group/primitives/radio-group-label.d.ts +5 -0
  441. package/dist/components/radio-group/primitives/radio-group-label.d.ts.map +1 -0
  442. package/dist/components/radio-group/primitives/radio-group-root.d.ts.map +1 -1
  443. package/dist/components/radio-group/primitives.d.ts +2 -0
  444. package/dist/components/radio-group/primitives.d.ts.map +1 -1
  445. package/dist/components/radio-group/radio-group.d.ts +4 -4
  446. package/dist/components/radio-group/radio-group.d.ts.map +1 -1
  447. package/dist/components/range-input/primitives/range-input-button.d.ts +5 -0
  448. package/dist/components/range-input/primitives/range-input-button.d.ts.map +1 -0
  449. package/dist/components/range-input/primitives/range-input-field.d.ts +5 -0
  450. package/dist/components/range-input/primitives/range-input-field.d.ts.map +1 -0
  451. package/dist/components/range-input/primitives/range-input-icon.d.ts +8 -0
  452. package/dist/components/range-input/primitives/range-input-icon.d.ts.map +1 -0
  453. package/dist/components/range-input/primitives/range-input-root.d.ts.map +1 -1
  454. package/dist/components/range-input/primitives.d.ts +3 -0
  455. package/dist/components/range-input/primitives.d.ts.map +1 -1
  456. package/dist/components/range-input/range-input.d.ts +14 -6
  457. package/dist/components/range-input/range-input.d.ts.map +1 -1
  458. package/dist/components/rating/primitives/rating-root.d.ts.map +1 -1
  459. package/dist/components/rating/primitives/rating-stars.d.ts +3 -1
  460. package/dist/components/rating/primitives/rating-stars.d.ts.map +1 -1
  461. package/dist/components/rating/primitives.d.ts +1 -1
  462. package/dist/components/rating/primitives.d.ts.map +1 -1
  463. package/dist/components/rating/rating.d.ts +3 -3
  464. package/dist/components/reveal/primitives/reveal-controls.d.ts.map +1 -1
  465. package/dist/components/reveal/primitives/reveal-root.d.ts.map +1 -1
  466. package/dist/components/reveal/primitives/reveal-trigger.d.ts.map +1 -1
  467. package/dist/components/reveal/primitives/reveal-viewport.d.ts.map +1 -1
  468. package/dist/components/scroll-area/primitives/scroll-area-bar.d.ts.map +1 -1
  469. package/dist/components/scroll-area/primitives/scroll-area-thumb.d.ts.map +1 -1
  470. package/dist/components/scroll-area/primitives/scroll-area-viewport.d.ts.map +1 -1
  471. package/dist/components/scroll-area/scroll-area.d.ts +1 -1
  472. package/dist/components/select/primitives/select-content.d.ts.map +1 -1
  473. package/dist/components/select/primitives/select-icon.d.ts.map +1 -1
  474. package/dist/components/select/primitives/select-item-text.d.ts.map +1 -1
  475. package/dist/components/select/primitives/select-item.d.ts.map +1 -1
  476. package/dist/components/select/primitives/select-portal.d.ts.map +1 -1
  477. package/dist/components/select/primitives/select-scroll-down-button.d.ts.map +1 -1
  478. package/dist/components/select/primitives/select-scroll-down-icon.d.ts +8 -0
  479. package/dist/components/select/primitives/select-scroll-down-icon.d.ts.map +1 -0
  480. package/dist/components/select/primitives/select-scroll-up-button.d.ts.map +1 -1
  481. package/dist/components/select/primitives/select-scroll-up-icon.d.ts +8 -0
  482. package/dist/components/select/primitives/select-scroll-up-icon.d.ts.map +1 -0
  483. package/dist/components/select/primitives/select-trigger-icon.d.ts +8 -0
  484. package/dist/components/select/primitives/select-trigger-icon.d.ts.map +1 -0
  485. package/dist/components/select/primitives/select-trigger.d.ts.map +1 -1
  486. package/dist/components/select/primitives/select-value.d.ts.map +1 -1
  487. package/dist/components/select/primitives/select-viewport.d.ts.map +1 -1
  488. package/dist/components/select/primitives.d.ts +3 -0
  489. package/dist/components/select/primitives.d.ts.map +1 -1
  490. package/dist/components/select/select.d.ts +29 -18
  491. package/dist/components/select/select.d.ts.map +1 -1
  492. package/dist/components/side-panel/primitives/side-panel-body.d.ts.map +1 -1
  493. package/dist/components/side-panel/primitives/side-panel-close-button.d.ts +10 -0
  494. package/dist/components/side-panel/primitives/side-panel-close-button.d.ts.map +1 -0
  495. package/dist/components/side-panel/primitives/side-panel-close.d.ts.map +1 -1
  496. package/dist/components/side-panel/primitives/side-panel-content.d.ts.map +1 -1
  497. package/dist/components/side-panel/primitives/side-panel-overlay.d.ts.map +1 -1
  498. package/dist/components/side-panel/primitives/side-panel-root.d.ts.map +1 -1
  499. package/dist/components/side-panel/primitives/side-panel-scroll-area.d.ts +5 -0
  500. package/dist/components/side-panel/primitives/side-panel-scroll-area.d.ts.map +1 -0
  501. package/dist/components/side-panel/primitives/side-panel-title.d.ts.map +1 -1
  502. package/dist/components/side-panel/primitives/side-panel-trigger.d.ts.map +1 -1
  503. package/dist/components/side-panel/primitives.d.ts +2 -0
  504. package/dist/components/side-panel/primitives.d.ts.map +1 -1
  505. package/dist/components/side-panel/side-panel.d.ts.map +1 -1
  506. package/dist/components/skeleton/primitives/skeleton-box.d.ts +1 -1
  507. package/dist/components/skeleton/primitives/skeleton-box.d.ts.map +1 -1
  508. package/dist/components/spinner/spinner.d.ts +8 -5
  509. package/dist/components/spinner/spinner.d.ts.map +1 -1
  510. package/dist/components/swatch-radio-group/primitives/swatch-radio-group-color.d.ts.map +1 -1
  511. package/dist/components/swatch-radio-group/primitives/swatch-radio-group-indicator-icon.d.ts +8 -0
  512. package/dist/components/swatch-radio-group/primitives/swatch-radio-group-indicator-icon.d.ts.map +1 -0
  513. package/dist/components/swatch-radio-group/primitives/swatch-radio-group-item.d.ts.map +1 -1
  514. package/dist/components/swatch-radio-group/primitives/swatch-radio-group-thumbnail.d.ts.map +1 -1
  515. package/dist/components/swatch-radio-group/primitives.d.ts +1 -0
  516. package/dist/components/swatch-radio-group/primitives.d.ts.map +1 -1
  517. package/dist/components/swatch-radio-group/swatch-radio-group.d.ts +9 -3
  518. package/dist/components/swatch-radio-group/swatch-radio-group.d.ts.map +1 -1
  519. package/dist/components/tabs/primitives/tabs-content.d.ts.map +1 -1
  520. package/dist/components/tabs/primitives/tabs-trigger.d.ts.map +1 -1
  521. package/dist/components/tabs/tabs.d.ts +8 -8
  522. package/dist/components/textarea/textarea.d.ts.map +1 -1
  523. package/dist/components/toaster/toaster.d.ts +2 -3
  524. package/dist/components/toaster/toaster.d.ts.map +1 -1
  525. package/dist/components/toggle-group/primitives/toggle-group-item.d.ts.map +1 -1
  526. package/dist/components/toggle-group/toggle-group.d.ts +2 -2
  527. package/dist/components/toggle-group/toggle-group.d.ts.map +1 -1
  528. package/dist/counter-input-9RK1vA_J.cjs +12 -0
  529. package/dist/counter-input-9RK1vA_J.cjs.map +1 -0
  530. package/dist/counter-input-DVHLdLel.js +169 -0
  531. package/dist/counter-input-DVHLdLel.js.map +1 -0
  532. package/dist/counter.cjs +1 -1
  533. package/dist/counter.js +5 -3
  534. package/dist/cursor-pagination-next-icon-BEF2WwXW.cjs +2 -0
  535. package/dist/cursor-pagination-next-icon-BEF2WwXW.cjs.map +1 -0
  536. package/dist/cursor-pagination-next-icon-fbe6Vsf_.js +96 -0
  537. package/dist/cursor-pagination-next-icon-fbe6Vsf_.js.map +1 -0
  538. package/dist/cursor-pagination.cjs +1 -1
  539. package/dist/cursor-pagination.cjs.map +1 -1
  540. package/dist/cursor-pagination.js +23 -19
  541. package/dist/cursor-pagination.js.map +1 -1
  542. package/dist/date-picker.cjs +1 -1
  543. package/dist/date-picker.cjs.map +1 -1
  544. package/dist/date-picker.js +100 -67
  545. package/dist/date-picker.js.map +1 -1
  546. package/dist/dropdown-menu-trigger-icon-C7Y_Yvc3.js +1138 -0
  547. package/dist/dropdown-menu-trigger-icon-C7Y_Yvc3.js.map +1 -0
  548. package/dist/dropdown-menu-trigger-icon-Ct3A6NVj.cjs +7 -0
  549. package/dist/dropdown-menu-trigger-icon-Ct3A6NVj.cjs.map +1 -0
  550. package/dist/dropdown-menu.cjs +1 -1
  551. package/dist/dropdown-menu.js +16 -13
  552. package/dist/favorite-heart-BCoB2b6L.js +76 -0
  553. package/dist/favorite-heart-BCoB2b6L.js.map +1 -0
  554. package/dist/favorite-heart-D4GasQqr.cjs +2 -0
  555. package/dist/favorite-heart-D4GasQqr.cjs.map +1 -0
  556. package/dist/favorite.cjs +1 -1
  557. package/dist/favorite.js +1 -1
  558. package/dist/field-error-BXJy7xv9.js +120 -0
  559. package/dist/field-error-BXJy7xv9.js.map +1 -0
  560. package/dist/field-error-CxV_C7ld.cjs +2 -0
  561. package/dist/field-error-CxV_C7ld.cjs.map +1 -0
  562. package/dist/field-item-CeGEsbFj.cjs +2 -0
  563. package/dist/field-item-CeGEsbFj.cjs.map +1 -0
  564. package/dist/field-item-DY-IZNXs.js +31 -0
  565. package/dist/field-item-DY-IZNXs.js.map +1 -0
  566. package/dist/field-label-BKlrU6b5.js +10 -0
  567. package/dist/field-label-BKlrU6b5.js.map +1 -0
  568. package/dist/field-label-YLyRO4cQ.cjs +2 -0
  569. package/dist/field-label-YLyRO4cQ.cjs.map +1 -0
  570. package/dist/field.cjs +1 -1
  571. package/dist/field.js +13 -10
  572. package/dist/field.js.map +1 -1
  573. package/dist/file-input.cjs +1 -1
  574. package/dist/file-input.cjs.map +1 -1
  575. package/dist/file-input.js +292 -240
  576. package/dist/file-input.js.map +1 -1
  577. package/dist/form-status.cjs +1 -1
  578. package/dist/form-status.cjs.map +1 -1
  579. package/dist/form-status.js +57 -22
  580. package/dist/form-status.js.map +1 -1
  581. package/dist/icon.cjs +1 -1
  582. package/dist/icon.cjs.map +1 -1
  583. package/dist/icon.js +8 -7
  584. package/dist/icon.js.map +1 -1
  585. package/dist/index-CQhYMnjT.js +35 -0
  586. package/dist/index-CQhYMnjT.js.map +1 -0
  587. package/dist/index-iAvn1gzj.cjs +2 -0
  588. package/dist/index-iAvn1gzj.cjs.map +1 -0
  589. package/dist/index.cjs +2 -27
  590. package/dist/index.cjs.map +1 -1
  591. package/dist/index.js +990 -3822
  592. package/dist/index.js.map +1 -1
  593. package/dist/input-BFqWDVd1.cjs +2 -0
  594. package/dist/input-BFqWDVd1.cjs.map +1 -0
  595. package/dist/input-Cq1AD4gY.js +12 -0
  596. package/dist/input-Cq1AD4gY.js.map +1 -0
  597. package/dist/input-prepend-icon-BIeRiL1I.js +73 -0
  598. package/dist/input-prepend-icon-BIeRiL1I.js.map +1 -0
  599. package/dist/input-prepend-icon-Drre9QwU.cjs +2 -0
  600. package/dist/input-prepend-icon-Drre9QwU.cjs.map +1 -0
  601. package/dist/input.cjs +1 -1
  602. package/dist/input.cjs.map +1 -1
  603. package/dist/input.js +5 -69
  604. package/dist/input.js.map +1 -1
  605. package/dist/{label-C2HI4Bjj.js → label-B_fjofdS.js} +3 -3
  606. package/dist/label-B_fjofdS.js.map +1 -0
  607. package/dist/label-hiiJ-Jpk.cjs +2 -0
  608. package/dist/{label-CP55xclp.cjs.map → label-hiiJ-Jpk.cjs.map} +1 -1
  609. package/dist/logo-skeleton-BHQuIAfk.cjs +2 -0
  610. package/dist/logo-skeleton-BHQuIAfk.cjs.map +1 -0
  611. package/dist/logo-skeleton-D55dECso.js +60 -0
  612. package/dist/logo-skeleton-D55dECso.js.map +1 -0
  613. package/dist/logo.cjs +1 -1
  614. package/dist/logo.js +1 -1
  615. package/dist/{modal-title-DIVsr1XZ.js → modal-title-By9bKnO1.js} +16 -12
  616. package/dist/modal-title-By9bKnO1.js.map +1 -0
  617. package/dist/modal-title-DTBKYUPG.cjs +2 -0
  618. package/dist/modal-title-DTBKYUPG.cjs.map +1 -0
  619. package/dist/modal.cjs +1 -1
  620. package/dist/modal.js +1 -1
  621. package/dist/navigation-menu.cjs +1 -1
  622. package/dist/navigation-menu.cjs.map +1 -1
  623. package/dist/navigation-menu.js +190 -187
  624. package/dist/navigation-menu.js.map +1 -1
  625. package/dist/offset-pagination-ellipsis-BW8wKSNw.js +83 -0
  626. package/dist/offset-pagination-ellipsis-BW8wKSNw.js.map +1 -0
  627. package/dist/offset-pagination-ellipsis-ROg8OzaZ.cjs +2 -0
  628. package/dist/offset-pagination-ellipsis-ROg8OzaZ.cjs.map +1 -0
  629. package/dist/offset-pagination.cjs +1 -1
  630. package/dist/offset-pagination.js +1 -1
  631. package/dist/price-strike-BRr1He7V.cjs +2 -0
  632. package/dist/price-strike-BRr1He7V.cjs.map +1 -0
  633. package/dist/{price-strike-D9Pzzzkr.js → price-strike-Cl5R7dGy.js} +2 -2
  634. package/dist/price-strike-Cl5R7dGy.js.map +1 -0
  635. package/dist/price.cjs +1 -1
  636. package/dist/price.js +1 -1
  637. package/dist/product-card-compare-DSQIR2Ar.js +304 -0
  638. package/dist/product-card-compare-DSQIR2Ar.js.map +1 -0
  639. package/dist/product-card-compare-N3uL-k3l.cjs +2 -0
  640. package/dist/product-card-compare-N3uL-k3l.cjs.map +1 -0
  641. package/dist/{product-card-skeleton-BgN1OCwY.cjs → product-card-skeleton-DmwKohoQ.cjs} +2 -2
  642. package/dist/{product-card-skeleton-BgN1OCwY.cjs.map → product-card-skeleton-DmwKohoQ.cjs.map} +1 -1
  643. package/dist/{product-card-skeleton-C-xXJrKi.js → product-card-skeleton-RiYj3sBm.js} +3 -3
  644. package/dist/{product-card-skeleton-C-xXJrKi.js.map → product-card-skeleton-RiYj3sBm.js.map} +1 -1
  645. package/dist/product-card.cjs +1 -1
  646. package/dist/product-card.cjs.map +1 -1
  647. package/dist/product-card.js +22 -25
  648. package/dist/product-card.js.map +1 -1
  649. package/dist/radio-group.cjs +1 -1
  650. package/dist/radio-group.cjs.map +1 -1
  651. package/dist/radio-group.js +46 -41
  652. package/dist/radio-group.js.map +1 -1
  653. package/dist/range-input.cjs +1 -1
  654. package/dist/range-input.cjs.map +1 -1
  655. package/dist/range-input.js +35 -6
  656. package/dist/range-input.js.map +1 -1
  657. package/dist/rating-total-Ch9GsI-i.cjs +2 -0
  658. package/dist/rating-total-Ch9GsI-i.cjs.map +1 -0
  659. package/dist/rating-total-QaBpE1O6.js +152 -0
  660. package/dist/rating-total-QaBpE1O6.js.map +1 -0
  661. package/dist/rating.cjs +1 -1
  662. package/dist/rating.js +1 -1
  663. package/dist/reveal-trigger-DC3QWjji.cjs +2 -0
  664. package/dist/reveal-trigger-DC3QWjji.cjs.map +1 -0
  665. package/dist/reveal-trigger-DFJIq75n.js +153 -0
  666. package/dist/reveal-trigger-DFJIq75n.js.map +1 -0
  667. package/dist/reveal.cjs +1 -1
  668. package/dist/reveal.js +1 -1
  669. package/dist/scroll-area-BDOOgbuL.js +28 -0
  670. package/dist/scroll-area-BDOOgbuL.js.map +1 -0
  671. package/dist/scroll-area-Di_L0y2h.cjs +2 -0
  672. package/dist/scroll-area-Di_L0y2h.cjs.map +1 -0
  673. package/dist/{scroll-area-corner-Bc4E-OBW.cjs → scroll-area-corner-B50-Euv6.cjs} +2 -2
  674. package/dist/{scroll-area-corner-Bc4E-OBW.cjs.map → scroll-area-corner-B50-Euv6.cjs.map} +1 -1
  675. package/dist/{scroll-area-corner-DfIRArAE.js → scroll-area-corner-CLcng3tk.js} +56 -45
  676. package/dist/{scroll-area-corner-DfIRArAE.js.map → scroll-area-corner-CLcng3tk.js.map} +1 -1
  677. package/dist/scroll-area.cjs +1 -1
  678. package/dist/scroll-area.js +1 -1
  679. package/dist/select.cjs +1 -1
  680. package/dist/select.cjs.map +1 -1
  681. package/dist/select.js +445 -409
  682. package/dist/select.js.map +1 -1
  683. package/dist/side-panel-scroll-area-BjHd_8hw.js +120 -0
  684. package/dist/side-panel-scroll-area-BjHd_8hw.js.map +1 -0
  685. package/dist/side-panel-scroll-area-Ci_3i5ZK.cjs +2 -0
  686. package/dist/side-panel-scroll-area-Ci_3i5ZK.cjs.map +1 -0
  687. package/dist/side-panel.cjs +1 -1
  688. package/dist/side-panel.js +10 -8
  689. package/dist/skeleton-box-CcjaHRz4.cjs +2 -0
  690. package/dist/skeleton-box-CcjaHRz4.cjs.map +1 -0
  691. package/dist/{skeleton-box-D0XcgPLs.js → skeleton-box-EYvfbwBB.js} +4 -4
  692. package/dist/skeleton-box-EYvfbwBB.js.map +1 -0
  693. package/dist/{skeleton-icon-Cm6f9u-Z.js → skeleton-icon-B8EIcgT0.js} +4 -4
  694. package/dist/skeleton-icon-B8EIcgT0.js.map +1 -0
  695. package/dist/skeleton-icon-ChZY8Dj6.cjs +2 -0
  696. package/dist/skeleton-icon-ChZY8Dj6.cjs.map +1 -0
  697. package/dist/{skeleton-text-BCsnfhcU.js → skeleton-text-BKJtA5cd.js} +4 -4
  698. package/dist/skeleton-text-BKJtA5cd.js.map +1 -0
  699. package/dist/skeleton-text-CY7gaT4A.cjs +2 -0
  700. package/dist/skeleton-text-CY7gaT4A.cjs.map +1 -0
  701. package/dist/skeleton.cjs +1 -1
  702. package/dist/skeleton.js +3 -3
  703. package/dist/styles.css +2 -2
  704. package/dist/swatch-radio-group.cjs +1 -1
  705. package/dist/swatch-radio-group.cjs.map +1 -1
  706. package/dist/swatch-radio-group.js +84 -80
  707. package/dist/swatch-radio-group.js.map +1 -1
  708. package/dist/{tabs-root-BLHqpIyN.js → tabs-root-C3fY_qFs.js} +48 -37
  709. package/dist/tabs-root-C3fY_qFs.js.map +1 -0
  710. package/dist/tabs-root-DRJRMB7Y.cjs +2 -0
  711. package/dist/tabs-root-DRJRMB7Y.cjs.map +1 -0
  712. package/dist/tabs.cjs +1 -1
  713. package/dist/tabs.js +1 -1
  714. package/dist/toggle-group.cjs +1 -1
  715. package/dist/toggle-group.cjs.map +1 -1
  716. package/dist/toggle-group.js +31 -48
  717. package/dist/toggle-group.js.map +1 -1
  718. package/package.json +32 -1
  719. package/tailwind.preset.js +39 -139
  720. package/dist/accordion-trigger-CpTcclGS.cjs +0 -2
  721. package/dist/accordion-trigger-DFuN29lS.js.map +0 -1
  722. package/dist/alert-dismiss-EYWAId7r.js +0 -123
  723. package/dist/alert-dismiss-EYWAId7r.js.map +0 -1
  724. package/dist/alert-dismiss-m6lm9pLf.cjs +0 -2
  725. package/dist/alert-dismiss-m6lm9pLf.cjs.map +0 -1
  726. package/dist/banner-dismiss-0uh1GtF1.cjs +0 -2
  727. package/dist/banner-dismiss-0uh1GtF1.cjs.map +0 -1
  728. package/dist/banner-dismiss-B_j9wqx-.js +0 -100
  729. package/dist/banner-dismiss-B_j9wqx-.js.map +0 -1
  730. package/dist/blog-post-card-author-CBXo2FqS.cjs +0 -2
  731. package/dist/blog-post-card-author-CBXo2FqS.cjs.map +0 -1
  732. package/dist/blog-post-card-author-VkGle9g8.js.map +0 -1
  733. package/dist/button-W0_PtryU.js +0 -106
  734. package/dist/button-W0_PtryU.js.map +0 -1
  735. package/dist/button-ibzOCImJ.cjs +0 -7
  736. package/dist/button-ibzOCImJ.cjs.map +0 -1
  737. package/dist/card-link-C48N1y5C.js.map +0 -1
  738. package/dist/card-link-i_zrZjnx.cjs +0 -2
  739. package/dist/card-link-i_zrZjnx.cjs.map +0 -1
  740. package/dist/carousel-next-C6jpZTlN.js +0 -1480
  741. package/dist/carousel-next-C6jpZTlN.js.map +0 -1
  742. package/dist/carousel-next-DEHDO98_.cjs +0 -2
  743. package/dist/carousel-next-DEHDO98_.cjs.map +0 -1
  744. package/dist/category-card-link-BXoWFETv.cjs +0 -2
  745. package/dist/category-card-link-BXoWFETv.cjs.map +0 -1
  746. package/dist/category-card-link-D85RfMpf.js.map +0 -1
  747. package/dist/checkbox-indicator-DVkOzOV6.cjs +0 -2
  748. package/dist/checkbox-indicator-DVkOzOV6.cjs.map +0 -1
  749. package/dist/checkbox-indicator-sO8XNm-j.js +0 -296
  750. package/dist/checkbox-indicator-sO8XNm-j.js.map +0 -1
  751. package/dist/chip-button-BhdyJZ5U.js +0 -34
  752. package/dist/chip-button-BhdyJZ5U.js.map +0 -1
  753. package/dist/chip-button-DRroMV7K.cjs +0 -2
  754. package/dist/chip-button-DRroMV7K.cjs.map +0 -1
  755. package/dist/compare-card-specs-empty-D42h8BPm.cjs +0 -2
  756. package/dist/compare-card-specs-empty-D42h8BPm.cjs.map +0 -1
  757. package/dist/compare-card-specs-empty-n4gOqNXU.js +0 -285
  758. package/dist/compare-card-specs-empty-n4gOqNXU.js.map +0 -1
  759. package/dist/compare-drawer-remove-DqQAu7qC.js +0 -173
  760. package/dist/compare-drawer-remove-DqQAu7qC.js.map +0 -1
  761. package/dist/compare-drawer-remove-DxYGdJay.cjs +0 -2
  762. package/dist/compare-drawer-remove-DxYGdJay.cjs.map +0 -1
  763. package/dist/components/banner/primitives/banner-provider.d.ts +0 -17
  764. package/dist/components/banner/primitives/banner-provider.d.ts.map +0 -1
  765. package/dist/components/checkbox-group/primitives/checkbox-group-option.d.ts +0 -4
  766. package/dist/components/checkbox-group/primitives/checkbox-group-option.d.ts.map +0 -1
  767. package/dist/components/compare-card/primitives/compare-card-form-input.d.ts +0 -4
  768. package/dist/components/compare-card/primitives/compare-card-form-input.d.ts.map +0 -1
  769. package/dist/components/compare-card/primitives/compare-card-form.d.ts +0 -4
  770. package/dist/components/compare-card/primitives/compare-card-form.d.ts.map +0 -1
  771. package/dist/components/compare-card/primitives/compare-card-link.d.ts +0 -5
  772. package/dist/components/compare-card/primitives/compare-card-link.d.ts.map +0 -1
  773. package/dist/components/compare-card/primitives/compare-card-rating-empty.d.ts +0 -4
  774. package/dist/components/compare-card/primitives/compare-card-rating-empty.d.ts.map +0 -1
  775. package/dist/components/compare-card/primitives/compare-card-rating-label.d.ts +0 -4
  776. package/dist/components/compare-card/primitives/compare-card-rating-label.d.ts.map +0 -1
  777. package/dist/components/compare-card/primitives/compare-card-rating.d.ts +0 -4
  778. package/dist/components/compare-card/primitives/compare-card-rating.d.ts.map +0 -1
  779. package/dist/components/product-card/primitives/product-card-checkbox.d.ts +0 -5
  780. package/dist/components/product-card/primitives/product-card-checkbox.d.ts.map +0 -1
  781. package/dist/components/product-card/primitives/product-card-content.d.ts +0 -4
  782. package/dist/components/product-card/primitives/product-card-label.d.ts +0 -5
  783. package/dist/components/product-card/primitives/product-card-label.d.ts.map +0 -1
  784. package/dist/counter-input-60Nb59Nw.cjs +0 -2
  785. package/dist/counter-input-60Nb59Nw.cjs.map +0 -1
  786. package/dist/counter-input-staB16MG.js +0 -80
  787. package/dist/counter-input-staB16MG.js.map +0 -1
  788. package/dist/cursor-pagination-link-C6otmDIa.cjs +0 -12
  789. package/dist/cursor-pagination-link-C6otmDIa.cjs.map +0 -1
  790. package/dist/cursor-pagination-link-CWbshIOY.js +0 -87
  791. package/dist/cursor-pagination-link-CWbshIOY.js.map +0 -1
  792. package/dist/dropdown-menu-node-CAwgTGIA.cjs +0 -7
  793. package/dist/dropdown-menu-node-CAwgTGIA.cjs.map +0 -1
  794. package/dist/dropdown-menu-node-x6qIrxA6.js +0 -1101
  795. package/dist/dropdown-menu-node-x6qIrxA6.js.map +0 -1
  796. package/dist/favorite-heart-DM8QjcYe.js +0 -62
  797. package/dist/favorite-heart-DM8QjcYe.js.map +0 -1
  798. package/dist/favorite-heart-JHXkEZUQ.cjs +0 -2
  799. package/dist/favorite-heart-JHXkEZUQ.cjs.map +0 -1
  800. package/dist/field-error-D5NKv8wq.cjs +0 -7
  801. package/dist/field-error-D5NKv8wq.cjs.map +0 -1
  802. package/dist/field-error-DtlucLPM.js +0 -150
  803. package/dist/field-error-DtlucLPM.js.map +0 -1
  804. package/dist/label-C2HI4Bjj.js.map +0 -1
  805. package/dist/label-CP55xclp.cjs +0 -2
  806. package/dist/logo-skeleton-DPhYgp4v.cjs +0 -2
  807. package/dist/logo-skeleton-DPhYgp4v.cjs.map +0 -1
  808. package/dist/logo-skeleton-DSSJAa_5.js +0 -44
  809. package/dist/logo-skeleton-DSSJAa_5.js.map +0 -1
  810. package/dist/modal-title-D0y_YSeK.cjs +0 -2
  811. package/dist/modal-title-D0y_YSeK.cjs.map +0 -1
  812. package/dist/modal-title-DIVsr1XZ.js.map +0 -1
  813. package/dist/offset-pagination-ellipsis-BDbVGBuP.cjs +0 -2
  814. package/dist/offset-pagination-ellipsis-BDbVGBuP.cjs.map +0 -1
  815. package/dist/offset-pagination-ellipsis-bGa7YpkD.js +0 -79
  816. package/dist/offset-pagination-ellipsis-bGa7YpkD.js.map +0 -1
  817. package/dist/price-strike-D9Pzzzkr.js.map +0 -1
  818. package/dist/price-strike-DqOP577f.cjs +0 -2
  819. package/dist/price-strike-DqOP577f.cjs.map +0 -1
  820. package/dist/product-card-label-CP4yzMhB.js +0 -244
  821. package/dist/product-card-label-CP4yzMhB.js.map +0 -1
  822. package/dist/product-card-label-DHKOJFTo.cjs +0 -2
  823. package/dist/product-card-label-DHKOJFTo.cjs.map +0 -1
  824. package/dist/product-card-root-BnBOoYFY.js +0 -27
  825. package/dist/product-card-root-BnBOoYFY.js.map +0 -1
  826. package/dist/product-card-root-DNqlSx52.cjs +0 -2
  827. package/dist/product-card-root-DNqlSx52.cjs.map +0 -1
  828. package/dist/rating-total-BxVcB0gt.cjs +0 -2
  829. package/dist/rating-total-BxVcB0gt.cjs.map +0 -1
  830. package/dist/rating-total-C_vpBVPa.js +0 -144
  831. package/dist/rating-total-C_vpBVPa.js.map +0 -1
  832. package/dist/reveal-trigger-CCTnO9e2.cjs +0 -2
  833. package/dist/reveal-trigger-CCTnO9e2.cjs.map +0 -1
  834. package/dist/reveal-trigger-ScuufoFq.js +0 -122
  835. package/dist/reveal-trigger-ScuufoFq.js.map +0 -1
  836. package/dist/side-panel-close-BSEnX7wo.cjs +0 -2
  837. package/dist/side-panel-close-BSEnX7wo.cjs.map +0 -1
  838. package/dist/side-panel-close-CbsiwlUW.js +0 -86
  839. package/dist/side-panel-close-CbsiwlUW.js.map +0 -1
  840. package/dist/skeleton-box-BsY5q4RG.cjs +0 -2
  841. package/dist/skeleton-box-BsY5q4RG.cjs.map +0 -1
  842. package/dist/skeleton-box-D0XcgPLs.js.map +0 -1
  843. package/dist/skeleton-icon-Cm6f9u-Z.js.map +0 -1
  844. package/dist/skeleton-icon-o8gtDMoj.cjs +0 -2
  845. package/dist/skeleton-icon-o8gtDMoj.cjs.map +0 -1
  846. package/dist/skeleton-text-BCsnfhcU.js.map +0 -1
  847. package/dist/skeleton-text-BxefRRo2.cjs +0 -2
  848. package/dist/skeleton-text-BxefRRo2.cjs.map +0 -1
  849. package/dist/tabs-root-BLHqpIyN.js.map +0 -1
  850. package/dist/tabs-root-DzmRz2Up.cjs +0 -2
  851. package/dist/tabs-root-DzmRz2Up.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"file-input.js","sources":["../src/components/file-input/primitives/file-input-root.tsx","../src/components/file-input/primitives/file-input-dropzone.tsx","../src/components/file-input/primitives/file-input-trigger.tsx","../src/components/file-input/primitives/file-input-item.tsx","../src/components/file-input/primitives/file-input-list.tsx","../src/components/file-input/primitives/file-input-message.tsx","../src/components/file-input/primitives/file-input-dropzone-hint.tsx","../src/components/file-input/primitives/file-input-dropzone-error.tsx","../src/components/file-input/primitives/file-input-metadata.tsx","../src/components/file-input/primitives/file-input-details.tsx","../src/components/file-input/primitives/file-input-header.tsx","../src/components/file-input/primitives/file-input-name.tsx","../src/components/file-input/primitives/file-input-status.tsx","../src/components/file-input/primitives/file-input-error.tsx","../src/components/file-input/primitives/file-input-remove.tsx","../src/components/file-input/primitives/file-input-progress.tsx","../src/components/file-input/primitives/file-input-icon.tsx"],"sourcesContent":["'use client';\n\nimport { clsx } from 'clsx';\nimport {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react';\nimport type { ChangeEvent, ComponentPropsWithoutRef, ReactNode, RefObject } from 'react';\n\nexport interface FileState {\n file: File;\n progress: number;\n status: 'idle' | 'uploading' | 'success' | 'error';\n error?: string;\n}\n\ninterface FileInputState {\n files: Map<File, FileState>;\n}\n\ntype FileInputAction =\n | { type: 'ADD_FILES'; files: File[] }\n | { type: 'SET_PROGRESS'; file: File; progress: number }\n | { type: 'SET_SUCCESS'; file: File }\n | { type: 'SET_ERROR'; file: File; error: string }\n | { type: 'REMOVE_FILE'; file: File }\n | { type: 'CLEAR' };\n\nconst initialState: FileInputState = {\n files: new Map(),\n};\n\nfunction fileInputReducer(state: FileInputState, action: FileInputAction): FileInputState {\n switch (action.type) {\n case 'ADD_FILES': {\n const newFiles = new Map(state.files);\n\n action.files.forEach((file) => {\n if (!newFiles.has(file)) {\n newFiles.set(file, {\n file,\n progress: 0,\n status: 'idle',\n });\n }\n });\n\n return { ...state, files: newFiles };\n }\n\n case 'SET_PROGRESS': {\n const updatedFiles = new Map(state.files);\n const fileState = updatedFiles.get(action.file);\n\n if (fileState) {\n updatedFiles.set(action.file, {\n ...fileState,\n progress: action.progress,\n status: 'uploading',\n });\n }\n\n return { ...state, files: updatedFiles };\n }\n\n case 'SET_SUCCESS': {\n const successFiles = new Map(state.files);\n const fileState = successFiles.get(action.file);\n\n if (fileState) {\n successFiles.set(action.file, {\n ...fileState,\n status: 'success',\n progress: 100,\n });\n }\n\n return { ...state, files: successFiles };\n }\n\n case 'SET_ERROR': {\n const errorFiles = new Map(state.files);\n const fileState = errorFiles.get(action.file);\n\n if (fileState) {\n errorFiles.set(action.file, {\n ...fileState,\n status: 'error',\n error: action.error,\n });\n }\n\n return { ...state, files: errorFiles };\n }\n\n case 'REMOVE_FILE': {\n const removeFiles = new Map(state.files);\n\n removeFiles.delete(action.file);\n\n return { ...state, files: removeFiles };\n }\n\n case 'CLEAR':\n return initialState;\n\n default:\n return state;\n }\n}\n\ninterface FileInputContextValue {\n files: Map<File, FileState>;\n id: string;\n inputId: string;\n inputRef: RefObject<HTMLInputElement | null>;\n disabled?: boolean;\n invalid?: boolean;\n validationError?: string;\n addFiles: (files: File[]) => void;\n removeFile: (file: File) => void;\n openFilePicker: () => void;\n}\n\nconst FileInputContext = createContext<FileInputContextValue | null>(null);\n\nexport function useFileInput() {\n const context = useContext(FileInputContext);\n\n if (!context) {\n throw new Error('useFileInput must be used within a FileInputRoot');\n }\n\n return context;\n}\n\nexport interface FileInputRootProps\n extends Omit<ComponentPropsWithoutRef<'div'>, 'id' | 'onError'> {\n id: string;\n children: ReactNode;\n accept?: string;\n multiple?: boolean;\n disabled?: boolean;\n invalid?: boolean;\n name?: string;\n maxFiles?: number;\n maxSize?: number;\n onFileValidate?: (file: File) => string | null | undefined;\n onFileAccept?: (file: File) => void;\n onFileReject?: (file: File, reason: string) => void;\n onUploadFile?: (file: File, reportProgress: (progress: number) => void) => Promise<unknown>;\n onUploadSuccess?: (file: File, result: unknown) => void;\n onUploadError?: (file: File, error: Error) => void;\n}\n\nexport function FileInputRoot({\n id,\n children,\n className,\n accept,\n multiple,\n disabled,\n invalid,\n name,\n maxFiles,\n maxSize,\n onFileValidate,\n onFileAccept,\n onFileReject,\n onUploadFile,\n onUploadSuccess,\n onUploadError,\n ...props\n}: FileInputRootProps) {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const inputId = `${id}-input`;\n\n const [state, dispatch] = useReducer(fileInputReducer, initialState);\n const [validationError, setValidationError] = useState<string | undefined>(undefined);\n\n const setProgress = useCallback((file: File, progress: number) => {\n dispatch({ type: 'SET_PROGRESS', file, progress });\n }, []);\n\n const setSuccess = useCallback((file: File) => {\n dispatch({ type: 'SET_SUCCESS', file });\n }, []);\n\n const setError = useCallback((file: File, error: string) => {\n dispatch({ type: 'SET_ERROR', file, error });\n }, []);\n\n const addFilesToState = useCallback((files: File[]) => {\n dispatch({ type: 'ADD_FILES', files });\n }, []);\n\n const removeFile = useCallback((file: File) => {\n const input = inputRef.current;\n\n if (input?.files) {\n const dataTransfer = new DataTransfer();\n const currentFiles = Array.from(input.files);\n\n currentFiles.filter((f) => f !== file).forEach((f) => dataTransfer.items.add(f));\n\n input.files = dataTransfer.files;\n }\n\n dispatch({ type: 'REMOVE_FILE', file });\n }, []);\n\n const openFilePicker = useCallback(() => {\n inputRef.current?.click();\n }, []);\n\n const processFiles = useCallback(\n (newFiles: File[]) => {\n const filesToUpload: File[] = [];\n const acceptedFiles: File[] = [];\n\n newFiles.forEach((file) => {\n let rejected = false;\n let rejectionReason = '';\n\n if (onFileValidate) {\n const validationMessage = onFileValidate(file);\n\n if (validationMessage != null) {\n rejectionReason = validationMessage;\n rejected = true;\n }\n }\n\n if (!rejected && accept != null) {\n const acceptTypes = accept.split(',').map((t) => t.trim().toLowerCase());\n const fileType = file.type.toLowerCase();\n const fileExtension = `.${file.name.split('.').pop()?.toLowerCase()}`;\n\n const isAccepted = acceptTypes.some(\n (type) =>\n type === fileType ||\n type === fileExtension ||\n (type.endsWith('/*') && fileType.startsWith(type.slice(0, -1))),\n );\n\n if (!isAccepted) {\n rejectionReason = 'File type not accepted';\n rejected = true;\n }\n }\n\n if (!rejected && maxSize != null && file.size > maxSize) {\n rejectionReason = 'File size exceeds limit';\n rejected = true;\n }\n\n if (rejected) {\n setValidationError(rejectionReason);\n onFileReject?.(file, rejectionReason);\n } else {\n setValidationError(undefined);\n onFileAccept?.(file);\n filesToUpload.push(file);\n acceptedFiles.push(file);\n }\n });\n\n const input = inputRef.current;\n\n if (input) {\n const dataTransfer = new DataTransfer();\n const existingFiles = Array.from(state.files.keys());\n const allFiles = [...existingFiles, ...acceptedFiles];\n const limitedFiles = maxFiles != null ? allFiles.slice(0, maxFiles) : allFiles;\n\n limitedFiles.forEach((file) => dataTransfer.items.add(file));\n input.files = dataTransfer.files;\n\n addFilesToState(limitedFiles);\n }\n\n if (filesToUpload.length > 0) {\n if (onUploadFile) {\n filesToUpload.forEach((file) => {\n setProgress(file, 0);\n\n const reportProgress = (progress: number) => {\n setProgress(file, progress);\n };\n\n void Promise.resolve(onUploadFile(file, reportProgress))\n .then((result) => {\n setSuccess(file);\n onUploadSuccess?.(file, result);\n })\n .catch((error: unknown) => {\n const err = error instanceof Error ? error : new Error('Upload failed');\n\n setError(file, err.message);\n onUploadError?.(file, err);\n });\n });\n } else {\n filesToUpload.forEach((file) => {\n setSuccess(file);\n });\n }\n }\n },\n [\n accept,\n maxFiles,\n maxSize,\n state.files,\n onFileValidate,\n onFileAccept,\n onFileReject,\n onUploadFile,\n onUploadSuccess,\n onUploadError,\n addFilesToState,\n setProgress,\n setSuccess,\n setError,\n ],\n );\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const newFiles = Array.from(event.target.files ?? []);\n\n processFiles(newFiles);\n },\n [processFiles],\n );\n\n const contextValue = useMemo<FileInputContextValue>(\n () => ({\n files: state.files,\n id,\n inputId,\n inputRef,\n disabled,\n invalid,\n validationError,\n addFiles: processFiles,\n removeFile,\n openFilePicker,\n }),\n [\n state.files,\n id,\n inputId,\n disabled,\n invalid,\n validationError,\n processFiles,\n removeFile,\n openFilePicker,\n ],\n );\n\n return (\n <FileInputContext.Provider value={contextValue}>\n <div\n aria-disabled={disabled === true ? true : undefined}\n aria-invalid={invalid === true || validationError != null ? true : undefined}\n className={clsx('group', className, '@container')}\n {...props}\n >\n <input\n accept={accept}\n className=\"sr-only\"\n disabled={disabled}\n id={inputId}\n multiple={multiple}\n name={name}\n onChange={handleChange}\n ref={inputRef}\n tabIndex={-1}\n type=\"file\"\n />\n {children}\n </div>\n </FileInputContext.Provider>\n );\n}\n","'use client';\n\nimport { clsx } from 'clsx';\nimport { useCallback, useState } from 'react';\nimport type { ClipboardEvent, ComponentPropsWithoutRef, DragEvent, KeyboardEvent } from 'react';\n\nimport { useFileInput } from '@/components/file-input';\n\nexport type FileInputDropzoneProps = ComponentPropsWithoutRef<'div'>;\n\nexport function FileInputDropzone({ children, className, ...props }: FileInputDropzoneProps) {\n const { id, disabled, invalid, addFiles, openFilePicker } = useFileInput();\n const [isDragging, setIsDragging] = useState(false);\n\n const handleDrop = useCallback(\n (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n setIsDragging(false);\n\n const newFiles = Array.from(event.dataTransfer.files);\n\n addFiles(newFiles);\n },\n [addFiles],\n );\n\n const handleDragOver = useCallback((event: DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n setIsDragging(true);\n }, []);\n\n const handleDragEnter = useCallback((event: DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n setIsDragging(true);\n }, []);\n\n const handleDragLeave = useCallback((event: DragEvent<HTMLDivElement>) => {\n const relatedTarget = event.relatedTarget;\n\n if (\n relatedTarget &&\n relatedTarget instanceof Node &&\n event.currentTarget.contains(relatedTarget)\n ) {\n return;\n }\n\n event.preventDefault();\n setIsDragging(false);\n }, []);\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n openFilePicker();\n }\n },\n [openFilePicker],\n );\n\n const handlePaste = useCallback(\n (event: ClipboardEvent<HTMLDivElement>) => {\n event.preventDefault();\n setIsDragging(false);\n\n const items = event.clipboardData.items;\n\n if (items.length === 0) return;\n\n const pastedFiles: File[] = [];\n\n for (const item of Array.from(items)) {\n if (item.kind === 'file') {\n const file = item.getAsFile();\n\n if (file) {\n pastedFiles.push(file);\n }\n }\n }\n\n if (pastedFiles.length === 0) return;\n\n addFiles(pastedFiles);\n },\n [addFiles],\n );\n\n const handleClick = useCallback(() => {\n openFilePicker();\n }, [openFilePicker]);\n\n return (\n <div\n aria-controls={`${id}-input ${id}-list`}\n aria-disabled={disabled === true ? true : undefined}\n aria-invalid={invalid === true ? true : undefined}\n className={clsx(\n // Base layout\n 'min-h-19 flex flex-col items-center justify-center gap-1.5',\n // Spacing\n 'p-4',\n // Borders & Rounded\n 'rounded-lg border-[1.5px] border-dashed border-[var(--file-input-dropzone-border,hsl(var(--contrast-200)))]',\n // Background\n 'bg-[var(--file-input-dropzone-background,hsl(var(--background)))]',\n // Interaction\n 'cursor-pointer select-none',\n // Transitions\n 'transition-colors duration-300 ease-in-out',\n // Hover state\n 'hover:border-[var(--file-input-dropzone-border-hover,hsl(var(--foreground)))] hover:bg-[var(--file-input-dropzone-background-hover,hsl(var(--contrast-100)))]',\n // Focus-visible state\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--file-input-focus,hsl(var(--primary)))] focus-visible:ring-offset-2',\n // Disabled state\n 'group-aria-disabled:cursor-not-allowed group-aria-disabled:border-[var(--file-input-dropzone-border-disabled,color-mix(in_oklab,hsl(var(--contrast-200))_70%,transparent))] group-aria-disabled:bg-[var(--file-input-dropzone-background-disabled,hsl(var(--background)))]',\n 'group-aria-disabled:focus-visible:outline-none group-aria-disabled:focus-visible:ring-0 group-aria-disabled:focus-visible:ring-offset-0',\n // Invalid state\n 'group-aria-invalid:border-[var(--file-input-dropzone-border-error,hsl(var(--error)))]',\n // Dragging state\n 'data-[dragging]:border-[var(--file-input-dropzone-border-dragging,hsl(var(--foreground)))] data-[dragging]:bg-[var(--file-input-dropzone-background-dragging,color-mix(in_oklab,hsl(var(--success)),white_75%))]',\n // Container queries\n '@sm:flex-row',\n className,\n )}\n data-dragging={isDragging ? '' : undefined}\n onClick={handleClick}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n onKeyDown={handleKeyDown}\n onPaste={handlePaste}\n role=\"button\"\n tabIndex={disabled === true ? -1 : 0}\n {...props}\n >\n {children}\n </div>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { Button } from '@/components/button';\nimport { useFileInput } from '@/components/file-input';\n\nexport type FileInputTriggerProps = ComponentProps<typeof Button>;\n\nexport function FileInputTrigger({ children, disabled, ...props }: FileInputTriggerProps) {\n const { inputId, disabled: contextDisabled, openFilePicker } = useFileInput();\n\n const isDisabled = disabled ?? contextDisabled;\n\n return (\n <Button\n aria-controls={`${inputId}-input`}\n className=\"pointer-events-none\"\n disabled={isDisabled}\n onClick={openFilePicker}\n size=\"small\"\n tabIndex={-1}\n type=\"button\"\n variant=\"outline\"\n {...props}\n >\n {children}\n </Button>\n );\n}\n","'use client';\n\nimport type { ComponentProps, ReactNode } from 'react';\nimport { createContext, use, useCallback, useEffect, useId, useMemo, useRef } from 'react';\n\nimport type { FileState } from '@/components/file-input';\nimport { useFileInput } from '@/components/file-input';\nimport { cn } from '@/lib';\n\nexport interface FileInputItemRenderProps {\n file: File;\n fileState: FileState;\n generatedId: string;\n removeFile: () => void;\n}\n\nconst FileInputItemContext = createContext<FileInputItemRenderProps | undefined>(undefined);\n\nexport type FileInputItemProps = Omit<ComponentProps<'div'>, 'children'> & {\n file: File;\n children: ReactNode | ((props: FileInputItemRenderProps) => ReactNode);\n};\n\nexport function FileInputItem({ className, children, file, ...props }: FileInputItemProps) {\n const generatedId = useId();\n const { files, removeFile: removeFileFromRoot } = useFileInput();\n const hasAnimatedRef = useRef(false);\n\n const fileState = files.get(file);\n\n const removeFile = useCallback(() => removeFileFromRoot(file), [removeFileFromRoot, file]);\n\n if (!fileState) {\n return null;\n }\n\n const renderProps: FileInputItemRenderProps = useMemo(\n () => ({ file, fileState, generatedId, removeFile }),\n [file, fileState, generatedId, removeFile],\n );\n\n useEffect(() => {\n // Only animate the file item once since\n // re-rendering will reset the animation\n if (!hasAnimatedRef.current) {\n setTimeout(() => {\n hasAnimatedRef.current = true;\n }, 300);\n }\n }, [fileState]);\n\n const { status, error } = fileState;\n\n return (\n <FileInputItemContext.Provider value={renderProps}>\n <div\n aria-describedby={`${generatedId}-status${error != null ? ` ${generatedId}-error` : ''}`.trim()}\n aria-invalid={status === 'error'}\n aria-labelledby={`${generatedId}-name`}\n className={cn(\n 'relative flex items-center justify-between gap-2 overflow-hidden rounded-lg border-[1.5px] border-[var(--file-input-item-border,hsl(var(--contrast-200)))] p-4',\n // Start animation state\n 'data-[start-animation]:animate-in data-[start-animation]:fade-in-0 data-[start-animation]:slide-in-from-top-2',\n // Invalid state\n 'aria-invalid:border-[var(--file-input-item-border-error,hsl(var(--error)))]',\n className,\n )}\n data-slot=\"file-input-item\"\n data-start-animation={!hasAnimatedRef.current ? '' : undefined}\n role=\"listitem\"\n {...props}\n >\n {typeof children === 'function' ? children(renderProps) : children}\n </div>\n </FileInputItemContext.Provider>\n );\n}\n\nexport function useFileInputItem() {\n const context = use(FileInputItemContext);\n\n if (!context) {\n throw new Error('useFileInputItem must be used within a FileInputItem');\n }\n\n return context;\n}\n","'use client';\n\nimport type { ComponentProps, ReactNode } from 'react';\nimport { useMemo } from 'react';\n\nimport type { FileState } from '@/components/file-input';\nimport { useFileInput } from '@/components/file-input';\nimport { cn } from '@/lib/utils';\n\nexport interface FileInputListRenderProps {\n files: Map<File, FileState>;\n}\n\nexport type FileInputListProps = Omit<ComponentProps<'div'>, 'children'> & {\n children: ReactNode | ((props: FileInputListRenderProps) => ReactNode);\n};\n\nexport function FileInputList({ className, children, ...props }: FileInputListProps) {\n const { id, files } = useFileInput();\n\n if (files.size === 0) {\n return null;\n }\n\n const renderProps: FileInputListRenderProps = useMemo(() => ({ files }), [files]);\n\n return (\n <div\n className={cn('mt-3 grid gap-3', className)}\n data-slot=\"file-input-list\"\n id={`${id}-list`}\n role=\"list\"\n {...props}\n >\n {typeof children === 'function' ? children(renderProps) : children}\n </div>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useFileInput } from '@/components/file-input';\nimport { cn } from '@/lib/utils';\n\nexport type FileInputMessageProps = ComponentProps<'p'>;\n\nexport function FileInputMessage({ className, children, ...props }: FileInputMessageProps) {\n const { id } = useFileInput();\n\n return (\n <p\n className={cn(\n 'mt-2 font-[family-name:var(--file-input-message-font-family,var(--font-family-body))] text-sm font-normal text-[var(--file-input-message,hsl(var(--contrast-500)))]',\n className,\n )}\n data-slot=\"file-input-message\"\n id={`${id}-message`}\n {...props}\n >\n {children}\n </p>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useFileInput } from '@/components/file-input';\nimport { cn } from '@/lib/utils';\n\nexport type FileInputDropzoneHintProps = ComponentProps<'p'>;\n\nexport function FileInputDropzoneHint({\n className,\n children,\n ...props\n}: FileInputDropzoneHintProps) {\n const { id, validationError } = useFileInput();\n\n if (validationError != null) {\n return null;\n }\n\n return (\n <p\n className={cn(\n 'font-[family-name:var(--file-input-dropzone-message-font-family,var(--font-family-body))] text-sm font-normal text-[var(--file-input-dropzone-message,hsl(var(--contrast-500)))]',\n // Disabled styles\n 'group-aria-disabled:text-[var(--file-input-dropzone-message-disabled,color-mix(in_oklab,hsl(var(--contrast-500))_70%,transparent))]',\n className,\n )}\n data-slot=\"file-input-dropzone-hint\"\n id={`${id}-hint`}\n {...props}\n >\n {children}\n </p>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useFileInput } from '@/components/file-input';\nimport { cn } from '@/lib/utils';\n\nexport type FileInputDropzoneErrorProps = ComponentProps<'p'>;\n\nexport function FileInputDropzoneError({\n className,\n children,\n ...props\n}: FileInputDropzoneErrorProps) {\n const { id, validationError } = useFileInput();\n\n if (validationError == null) {\n return null;\n }\n\n return (\n <p\n className={cn(\n 'font-[family-name:var(--file-input-dropzone-message-font-family,var(--font-family-body))] text-sm font-normal text-[var(--file-input-dropzone-message-error,hsl(var(--error)))]',\n className,\n )}\n data-slot=\"file-input-dropzone-error\"\n id={`${id}-error`}\n role=\"alert\"\n {...props}\n >\n {children ?? validationError}\n </p>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type FileInputMetadataProps = ComponentProps<'div'>;\n\nexport function FileInputMetadata({ className, children, ...props }: FileInputMetadataProps) {\n return (\n <div\n className={cn('flex min-w-0 flex-1 flex-col', className)}\n data-slot=\"file-input-metadata\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type FileInputDetailsProps = ComponentProps<'div'>;\n\nexport function FileInputDetails({ className, children, ...props }: FileInputDetailsProps) {\n return (\n <div className={cn('flex-1', className)} data-slot=\"file-input-details\" {...props}>\n {children}\n </div>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type FileInputHeaderProps = ComponentProps<'div'>;\n\nexport function FileInputHeader({ className, children, ...props }: FileInputHeaderProps) {\n return (\n <div\n className={cn(\n 'flex items-center gap-1 font-[family-name:var(--file-input-item-name-font-family,var(--font-family-body))]',\n className,\n )}\n data-slot=\"file-input-header\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { useFileInputItem } from '@/components/file-input';\nimport { cn } from '@/lib';\n\nexport type FileInputNameProps = ComponentProps<'p'>;\n\nexport function FileInputName({ className, children, ...props }: FileInputNameProps) {\n const { generatedId } = useFileInputItem();\n\n return (\n <p\n className={cn(\n 'truncate text-sm font-semibold text-[var(--file-input-item-name,hsl(var(--foreground)))]',\n className,\n )}\n data-slot=\"file-input-name\"\n id={`${generatedId}-name`}\n {...props}\n >\n {children}\n </p>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useFileInputItem } from '@/components/file-input';\nimport { cn } from '@/lib';\n\nexport type FileInputStatusProps = ComponentProps<'p'>;\n\nexport function FileInputStatus({ className, children, ...props }: FileInputStatusProps) {\n const { generatedId } = useFileInputItem();\n\n return (\n <p\n className={cn(\n 'text-xs font-normal text-[var(--file-input-item-status,hsl(var(--contrast-500)))]',\n className,\n )}\n data-slot=\"file-input-status\"\n id={`${generatedId}-status`}\n {...props}\n >\n {children}\n </p>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useFileInputItem } from '@/components/file-input';\nimport { cn } from '@/lib';\n\nexport type FileInputErrorProps = ComponentProps<'p'>;\n\nexport function FileInputError({ className, children, ...props }: FileInputErrorProps) {\n const { generatedId } = useFileInputItem();\n\n return (\n <p\n className={cn(\n 'text-xs font-normal text-[var(--file-input-item-status-error,hsl(var(--error)))]',\n className,\n )}\n data-slot=\"file-input-error\"\n id={`${generatedId}-error`}\n {...props}\n >\n {children}\n </p>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { useFileInputItem } from '@/components/file-input';\nimport { cn } from '@/lib';\n\nexport type FileInputRemoveProps = ComponentProps<'button'>;\n\nexport function FileInputRemove({ className, children, ...props }: FileInputRemoveProps) {\n const {\n fileState: {\n file: { name },\n },\n removeFile,\n } = useFileInputItem();\n\n return (\n <button\n aria-label={`Remove ${name}`}\n className={cn(\n 'inline-flex size-8 cursor-pointer items-center justify-center rounded-full transition-colors',\n // Hover state\n 'hover:bg-[var(--file-input-item-delete-hover,hsl(var(--contrast-100)))]',\n // Focus-visible state\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--file-input-focus,hsl(var(--primary)))]',\n className,\n )}\n data-slot=\"file-input-remove\"\n onClick={removeFile}\n type=\"button\"\n {...props}\n >\n {children}\n </button>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { useFileInputItem } from '@/components/file-input';\nimport { cn } from '@/lib';\n\nexport type FileInputProgressProps = ComponentProps<'div'>;\n\nexport function FileInputProgress({ className, ...props }: FileInputProgressProps) {\n const {\n generatedId,\n fileState: { progress },\n } = useFileInputItem();\n\n return (\n <div\n aria-labelledby={`${generatedId}-name`}\n aria-valuemax={100}\n aria-valuemin={0}\n aria-valuenow={progress}\n aria-valuetext={`${progress}%`}\n className={cn(\n 'absolute bottom-0 left-0 h-1 w-full bg-[var(--file-input-item-progress,hsl(var(--primary)))] transition-transform duration-300 ease-linear',\n className,\n )}\n role=\"progressbar\"\n style={{ transform: `translateX(-${100 - progress}%)` }}\n {...props}\n />\n );\n}\n","'use client';\n\nimport { Slot } from '@radix-ui/react-slot';\nimport {\n FileArchive,\n FileAudio,\n FileCode,\n FileCog,\n FileIcon as FileIconDefault,\n FileImage,\n FileText,\n FileVideo,\n} from 'lucide-react';\nimport type { ElementType, ReactNode } from 'react';\n\nimport { useFileInputItem } from '@/components/file-input';\nimport { cn } from '@/lib';\n\nexport interface FileInputIconProps {\n asChild?: boolean;\n className?: string;\n children?: ReactNode;\n}\n\nexport function FileInputIcon({ asChild = false, className, children }: FileInputIconProps) {\n const { fileState } = useFileInputItem();\n\n const DefaultIcon = getIconForFile(fileState.file);\n\n if (asChild) {\n return (\n <Slot\n className={cn('size-4 text-[var(--file-input-icon,hsl(var(--contrast-400)))]', className)}\n data-slot=\"file-input-icon\"\n >\n {children}\n </Slot>\n );\n }\n\n return (\n <DefaultIcon\n className={cn('size-4 text-[var(--file-input-icon,hsl(var(--contrast-400)))]', className)}\n data-slot=\"file-input-icon\"\n />\n );\n}\n\nfunction getIconForFile(file: File): ElementType {\n const type = file.type;\n const extension = file.name.split('.').pop()?.toLowerCase() ?? '';\n\n if (type.startsWith('image/')) {\n return FileImage;\n }\n\n if (type.startsWith('video/')) {\n return FileVideo;\n }\n\n if (type.startsWith('audio/')) {\n return FileAudio;\n }\n\n if (type.startsWith('text/') || ['txt', 'md', 'rtf', 'pdf'].includes(extension)) {\n return FileText;\n }\n\n if (\n [\n 'html',\n 'css',\n 'js',\n 'jsx',\n 'ts',\n 'tsx',\n 'json',\n 'xml',\n 'php',\n 'py',\n 'rb',\n 'java',\n 'c',\n 'cpp',\n 'cs',\n ].includes(extension)\n ) {\n return FileCode;\n }\n\n if (['zip', 'rar', '7z', 'tar', 'gz', 'bz2'].includes(extension)) {\n return FileArchive;\n }\n\n if (\n ['exe', 'msi', 'app', 'apk', 'deb', 'rpm'].includes(extension) ||\n type.startsWith('application/')\n ) {\n return FileCog;\n }\n\n return FileIconDefault;\n}\n"],"names":["initialState","fileInputReducer","state","action","newFiles","file","updatedFiles","fileState","successFiles","errorFiles","removeFiles","FileInputContext","createContext","useFileInput","context","useContext","FileInputRoot","id","children","className","accept","multiple","disabled","invalid","name","maxFiles","maxSize","onFileValidate","onFileAccept","onFileReject","onUploadFile","onUploadSuccess","onUploadError","props","inputRef","useRef","inputId","dispatch","useReducer","validationError","setValidationError","useState","setProgress","useCallback","progress","setSuccess","setError","error","addFilesToState","files","removeFile","input","dataTransfer","f","openFilePicker","processFiles","filesToUpload","acceptedFiles","rejected","rejectionReason","validationMessage","acceptTypes","t","fileType","fileExtension","type","allFiles","limitedFiles","reportProgress","result","err","handleChange","event","contextValue","useMemo","jsx","jsxs","clsx","FileInputDropzone","addFiles","isDragging","setIsDragging","handleDrop","handleDragOver","handleDragEnter","handleDragLeave","relatedTarget","handleKeyDown","handlePaste","items","pastedFiles","item","handleClick","FileInputTrigger","contextDisabled","isDisabled","Button","FileInputItemContext","FileInputItem","generatedId","useId","removeFileFromRoot","hasAnimatedRef","renderProps","useEffect","status","cn","useFileInputItem","use","FileInputList","FileInputMessage","FileInputDropzoneHint","FileInputDropzoneError","FileInputMetadata","FileInputDetails","FileInputHeader","FileInputName","FileInputStatus","FileInputError","FileInputRemove","FileInputProgress","FileInputIcon","asChild","DefaultIcon","getIconForFile","Slot","extension","FileImage","FileVideo","FileAudio","FileText","FileCode","FileArchive","FileCog","FileIconDefault"],"mappings":"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"}
1
+ {"version":3,"file":"file-input.js","sources":["../src/components/file-input/primitives/file-input-root.tsx","../src/components/file-input/primitives/file-input-dropzone.tsx","../src/components/file-input/primitives/file-input-trigger.tsx","../src/components/file-input/primitives/file-input-item.tsx","../src/components/file-input/primitives/file-input-list.tsx","../src/components/file-input/primitives/file-input-message.tsx","../src/components/file-input/primitives/file-input-dropzone-hint.tsx","../src/components/file-input/primitives/file-input-dropzone-error.tsx","../src/components/file-input/primitives/file-input-metadata.tsx","../src/components/file-input/primitives/file-input-details.tsx","../src/components/file-input/primitives/file-input-header.tsx","../src/components/file-input/primitives/file-input-name.tsx","../src/components/file-input/primitives/file-input-status.tsx","../src/components/file-input/primitives/file-input-error.tsx","../src/components/file-input/primitives/file-input-remove.tsx","../src/components/file-input/primitives/file-input-progress.tsx","../src/components/file-input/primitives/file-input-icon.tsx","../src/components/file-input/primitives/file-input-upload-icon.tsx","../src/components/file-input/primitives/file-input-remove-icon.tsx","../src/components/file-input/primitives/file-input-label.tsx"],"sourcesContent":["'use client';\n\nimport {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react';\nimport type { ChangeEvent, ComponentPropsWithoutRef, ReactNode, RefObject } from 'react';\n\nimport { cn } from '@/lib';\n\nexport interface FileState {\n file: File;\n progress: number;\n status: 'idle' | 'uploading' | 'success' | 'error';\n error?: string;\n}\n\ninterface FileInputState {\n files: Map<File, FileState>;\n}\n\ntype FileInputAction =\n | { type: 'ADD_FILES'; files: File[] }\n | { type: 'SET_PROGRESS'; file: File; progress: number }\n | { type: 'SET_SUCCESS'; file: File }\n | { type: 'SET_ERROR'; file: File; error: string }\n | { type: 'REMOVE_FILE'; file: File }\n | { type: 'CLEAR' };\n\nconst initialState: FileInputState = {\n files: new Map(),\n};\n\nfunction fileInputReducer(state: FileInputState, action: FileInputAction): FileInputState {\n switch (action.type) {\n case 'ADD_FILES': {\n const newFiles = new Map(state.files);\n\n action.files.forEach((file) => {\n if (!newFiles.has(file)) {\n newFiles.set(file, {\n file,\n progress: 0,\n status: 'idle',\n });\n }\n });\n\n return { ...state, files: newFiles };\n }\n\n case 'SET_PROGRESS': {\n const updatedFiles = new Map(state.files);\n const fileState = updatedFiles.get(action.file);\n\n if (fileState) {\n updatedFiles.set(action.file, {\n ...fileState,\n progress: action.progress,\n status: 'uploading',\n });\n }\n\n return { ...state, files: updatedFiles };\n }\n\n case 'SET_SUCCESS': {\n const successFiles = new Map(state.files);\n const fileState = successFiles.get(action.file);\n\n if (fileState) {\n successFiles.set(action.file, {\n ...fileState,\n status: 'success',\n progress: 100,\n });\n }\n\n return { ...state, files: successFiles };\n }\n\n case 'SET_ERROR': {\n const errorFiles = new Map(state.files);\n const fileState = errorFiles.get(action.file);\n\n if (fileState) {\n errorFiles.set(action.file, {\n ...fileState,\n status: 'error',\n error: action.error,\n });\n }\n\n return { ...state, files: errorFiles };\n }\n\n case 'REMOVE_FILE': {\n const removeFiles = new Map(state.files);\n\n removeFiles.delete(action.file);\n\n return { ...state, files: removeFiles };\n }\n\n case 'CLEAR':\n return initialState;\n\n default:\n return state;\n }\n}\n\ninterface FileInputContextValue {\n files: Map<File, FileState>;\n id: string;\n inputId: string;\n inputRef: RefObject<HTMLInputElement | null>;\n disabled?: boolean;\n invalid?: boolean;\n validationError?: string;\n addFiles: (files: File[]) => void;\n removeFile: (file: File) => void;\n openFilePicker: () => void;\n}\n\nconst FileInputContext = createContext<FileInputContextValue | null>(null);\n\nexport function useFileInput() {\n const context = useContext(FileInputContext);\n\n if (!context) {\n throw new Error('useFileInput must be used within a FileInputRoot');\n }\n\n return context;\n}\n\nexport interface FileInputRootProps\n extends Omit<ComponentPropsWithoutRef<'div'>, 'id' | 'onError'> {\n id: string;\n children: ReactNode;\n accept?: string;\n multiple?: boolean;\n disabled?: boolean;\n invalid?: boolean;\n name?: string;\n maxFiles?: number;\n maxSize?: number;\n onFileValidate?: (file: File) => string | null | undefined;\n onFileAccept?: (file: File) => void;\n onFileReject?: (file: File, reason: string) => void;\n onUploadFile?: (file: File, reportProgress: (progress: number) => void) => Promise<unknown>;\n onUploadSuccess?: (file: File, result: unknown) => void;\n onUploadError?: (file: File, error: Error) => void;\n}\n\nexport function FileInputRoot({\n id,\n children,\n className,\n accept,\n multiple,\n disabled,\n invalid,\n name,\n maxFiles,\n maxSize,\n onFileValidate,\n onFileAccept,\n onFileReject,\n onUploadFile,\n onUploadSuccess,\n onUploadError,\n ...props\n}: FileInputRootProps) {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const inputId = `${id}-input`;\n\n const [state, dispatch] = useReducer(fileInputReducer, initialState);\n const [validationError, setValidationError] = useState<string | undefined>(undefined);\n\n const setProgress = useCallback((file: File, progress: number) => {\n dispatch({ type: 'SET_PROGRESS', file, progress });\n }, []);\n\n const setSuccess = useCallback((file: File) => {\n dispatch({ type: 'SET_SUCCESS', file });\n }, []);\n\n const setError = useCallback((file: File, error: string) => {\n dispatch({ type: 'SET_ERROR', file, error });\n }, []);\n\n const addFilesToState = useCallback((files: File[]) => {\n dispatch({ type: 'ADD_FILES', files });\n }, []);\n\n const removeFile = useCallback((file: File) => {\n const input = inputRef.current;\n\n if (input?.files) {\n const dataTransfer = new DataTransfer();\n const currentFiles = Array.from(input.files);\n\n currentFiles.filter((f) => f !== file).forEach((f) => dataTransfer.items.add(f));\n\n input.files = dataTransfer.files;\n }\n\n dispatch({ type: 'REMOVE_FILE', file });\n }, []);\n\n const openFilePicker = useCallback(() => {\n inputRef.current?.click();\n }, []);\n\n const processFiles = useCallback(\n (newFiles: File[]) => {\n const filesToUpload: File[] = [];\n const acceptedFiles: File[] = [];\n\n newFiles.forEach((file) => {\n let rejected = false;\n let rejectionReason = '';\n\n if (onFileValidate) {\n const validationMessage = onFileValidate(file);\n\n if (validationMessage != null) {\n rejectionReason = validationMessage;\n rejected = true;\n }\n }\n\n if (!rejected && accept != null) {\n const acceptTypes = accept.split(',').map((t) => t.trim().toLowerCase());\n const fileType = file.type.toLowerCase();\n const fileExtension = `.${file.name.split('.').pop()?.toLowerCase()}`;\n\n const isAccepted = acceptTypes.some(\n (type) =>\n type === fileType ||\n type === fileExtension ||\n (type.endsWith('/*') && fileType.startsWith(type.slice(0, -1))),\n );\n\n if (!isAccepted) {\n rejectionReason = 'File type not accepted';\n rejected = true;\n }\n }\n\n if (!rejected && maxSize != null && file.size > maxSize) {\n rejectionReason = 'File size exceeds limit';\n rejected = true;\n }\n\n if (rejected) {\n setValidationError(rejectionReason);\n onFileReject?.(file, rejectionReason);\n } else {\n setValidationError(undefined);\n onFileAccept?.(file);\n filesToUpload.push(file);\n acceptedFiles.push(file);\n }\n });\n\n const input = inputRef.current;\n\n if (input) {\n const dataTransfer = new DataTransfer();\n const existingFiles = Array.from(state.files.keys());\n const allFiles = [...existingFiles, ...acceptedFiles];\n const limitedFiles = maxFiles != null ? allFiles.slice(0, maxFiles) : allFiles;\n\n limitedFiles.forEach((file) => dataTransfer.items.add(file));\n input.files = dataTransfer.files;\n\n addFilesToState(limitedFiles);\n }\n\n if (filesToUpload.length > 0) {\n if (onUploadFile) {\n filesToUpload.forEach((file) => {\n setProgress(file, 0);\n\n const reportProgress = (progress: number) => {\n setProgress(file, progress);\n };\n\n void Promise.resolve(onUploadFile(file, reportProgress))\n .then((result) => {\n setSuccess(file);\n onUploadSuccess?.(file, result);\n })\n .catch((error: unknown) => {\n const err = error instanceof Error ? error : new Error('Upload failed');\n\n setError(file, err.message);\n onUploadError?.(file, err);\n });\n });\n } else {\n filesToUpload.forEach((file) => {\n setSuccess(file);\n });\n }\n }\n },\n [\n accept,\n maxFiles,\n maxSize,\n state.files,\n onFileValidate,\n onFileAccept,\n onFileReject,\n onUploadFile,\n onUploadSuccess,\n onUploadError,\n addFilesToState,\n setProgress,\n setSuccess,\n setError,\n ],\n );\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const newFiles = Array.from(event.target.files ?? []);\n\n processFiles(newFiles);\n },\n [processFiles],\n );\n\n const contextValue = useMemo<FileInputContextValue>(\n () => ({\n files: state.files,\n id,\n inputId,\n inputRef,\n disabled,\n invalid,\n validationError,\n addFiles: processFiles,\n removeFile,\n openFilePicker,\n }),\n [\n state.files,\n id,\n inputId,\n disabled,\n invalid,\n validationError,\n processFiles,\n removeFile,\n openFilePicker,\n ],\n );\n\n return (\n <FileInputContext.Provider value={contextValue}>\n <div\n aria-disabled={disabled === true ? true : undefined}\n aria-invalid={invalid === true || validationError != null ? true : undefined}\n className={cn('group/file-input @container', className)}\n data-slot=\"file-input-root\"\n {...props}\n >\n <input\n accept={accept}\n className=\"sr-only\"\n disabled={disabled}\n id={inputId}\n multiple={multiple}\n name={name}\n onChange={handleChange}\n ref={inputRef}\n tabIndex={-1}\n type=\"file\"\n />\n {children}\n </div>\n </FileInputContext.Provider>\n );\n}\n","'use client';\n\nimport { useCallback, useState } from 'react';\nimport type { ClipboardEvent, ComponentPropsWithoutRef, DragEvent, KeyboardEvent } from 'react';\n\nimport { useFileInput } from '@/components/file-input';\nimport { cn } from '@/lib';\n\nexport type FileInputDropzoneProps = ComponentPropsWithoutRef<'div'>;\n\nexport function FileInputDropzone({ children, className, ...props }: FileInputDropzoneProps) {\n const { id, disabled, invalid, addFiles, openFilePicker } = useFileInput();\n const [isDragging, setIsDragging] = useState(false);\n\n const handleDrop = useCallback(\n (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n setIsDragging(false);\n\n const newFiles = Array.from(event.dataTransfer.files);\n\n addFiles(newFiles);\n },\n [addFiles],\n );\n\n const handleDragOver = useCallback((event: DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n setIsDragging(true);\n }, []);\n\n const handleDragEnter = useCallback((event: DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n setIsDragging(true);\n }, []);\n\n const handleDragLeave = useCallback((event: DragEvent<HTMLDivElement>) => {\n const relatedTarget = event.relatedTarget;\n\n if (\n relatedTarget &&\n relatedTarget instanceof Node &&\n event.currentTarget.contains(relatedTarget)\n ) {\n return;\n }\n\n event.preventDefault();\n setIsDragging(false);\n }, []);\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n openFilePicker();\n }\n },\n [openFilePicker],\n );\n\n const handlePaste = useCallback(\n (event: ClipboardEvent<HTMLDivElement>) => {\n event.preventDefault();\n setIsDragging(false);\n\n const items = event.clipboardData.items;\n\n if (items.length === 0) return;\n\n const pastedFiles: File[] = [];\n\n for (const item of Array.from(items)) {\n if (item.kind === 'file') {\n const file = item.getAsFile();\n\n if (file) {\n pastedFiles.push(file);\n }\n }\n }\n\n if (pastedFiles.length === 0) return;\n\n addFiles(pastedFiles);\n },\n [addFiles],\n );\n\n const handleClick = useCallback(() => {\n openFilePicker();\n }, [openFilePicker]);\n\n return (\n <div\n aria-controls={`${id}-input ${id}-list`}\n aria-disabled={disabled === true ? true : undefined}\n aria-invalid={invalid === true ? true : undefined}\n className={cn(\n 'min-h-19 flex cursor-pointer select-none flex-col items-center justify-center gap-1.5 rounded-lg border-[1.5px] border-dashed border-[var(--file-input-dropzone-border,var(--contrast-200))] bg-[var(--file-input-dropzone-background,var(--background))] p-4 transition-colors duration-300 ease-in-out',\n // Hover state\n 'hover:border-[var(--file-input-dropzone-border-hover,var(--foreground))] hover:bg-[var(--file-input-dropzone-background-hover,var(--contrast-100))]',\n // Focus-visible state\n 'focus:outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--file-input-focus,var(--brand))]',\n // Disabled state\n 'group-aria-disabled/file-input:cursor-not-allowed group-aria-disabled/file-input:border-[var(--file-input-dropzone-border-disabled,color-mix(in_oklab,var(--contrast-200)_70%,transparent))] group-aria-disabled/file-input:bg-[var(--file-input-dropzone-background-disabled,var(--background))]',\n 'group-aria-disabled/file-input:focus-visible:outline-0',\n // Invalid state\n 'group-aria-invalid/file-input:border-[var(--file-input-dropzone-border-error,var(--error))]',\n // Dragging state\n 'data-[dragging]:border-[var(--file-input-dropzone-border-dragging,var(--foreground))] data-[dragging]:bg-[var(--file-input-dropzone-background-dragging,color-mix(in_oklab,var(--success),white_75%))]',\n // Container queries\n '@sm:flex-row',\n className,\n )}\n data-dragging={isDragging ? '' : undefined}\n data-slot=\"file-input-dropzone\"\n onClick={handleClick}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n onKeyDown={handleKeyDown}\n onPaste={handlePaste}\n role=\"button\"\n tabIndex={disabled === true ? -1 : 0}\n {...props}\n >\n {children}\n </div>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { Button } from '@/components/button';\nimport { useFileInput } from '@/components/file-input';\n\nexport type FileInputTriggerProps = ComponentProps<typeof Button>;\n\nexport function FileInputTrigger({ children, disabled, ...props }: FileInputTriggerProps) {\n const { inputId, disabled: contextDisabled, openFilePicker } = useFileInput();\n\n const isDisabled = disabled ?? contextDisabled;\n\n return (\n <Button\n aria-controls={`${inputId}-input`}\n className=\"pointer-events-none\"\n data-slot=\"file-input-trigger\"\n disabled={isDisabled}\n onClick={openFilePicker}\n size=\"small\"\n tabIndex={-1}\n type=\"button\"\n variant=\"outline\"\n {...props}\n >\n {children}\n </Button>\n );\n}\n","'use client';\n\nimport type { ComponentProps, ReactNode } from 'react';\nimport { createContext, use, useCallback, useEffect, useId, useMemo, useRef } from 'react';\n\nimport type { FileState } from '@/components/file-input';\nimport { useFileInput } from '@/components/file-input';\nimport { cn } from '@/lib';\n\nexport interface FileInputItemRenderProps {\n file: File;\n fileState: FileState;\n generatedId: string;\n removeFile: () => void;\n}\n\nconst FileInputItemContext = createContext<FileInputItemRenderProps | undefined>(undefined);\n\nexport type FileInputItemProps = Omit<ComponentProps<'div'>, 'children'> & {\n file: File;\n children: ReactNode | ((props: FileInputItemRenderProps) => ReactNode);\n};\n\nexport function FileInputItem({ className, children, file, ...props }: FileInputItemProps) {\n const generatedId = useId();\n const { files, removeFile: removeFileFromRoot } = useFileInput();\n const hasAnimatedRef = useRef(false);\n\n const fileState = files.get(file);\n\n const removeFile = useCallback(() => removeFileFromRoot(file), [removeFileFromRoot, file]);\n\n if (!fileState) {\n return null;\n }\n\n const renderProps: FileInputItemRenderProps = useMemo(\n () => ({ file, fileState, generatedId, removeFile }),\n [file, fileState, generatedId, removeFile],\n );\n\n useEffect(() => {\n // Only animate the file item once since\n // re-rendering will reset the animation\n if (!hasAnimatedRef.current) {\n setTimeout(() => {\n hasAnimatedRef.current = true;\n }, 300);\n }\n }, [fileState]);\n\n const { status, error } = fileState;\n\n return (\n <FileInputItemContext.Provider value={renderProps}>\n <div\n aria-describedby={`${generatedId}-status${error != null ? ` ${generatedId}-error` : ''}`.trim()}\n aria-invalid={status === 'error'}\n aria-labelledby={`${generatedId}-name`}\n className={cn(\n 'relative flex items-center justify-between gap-2 overflow-hidden rounded-lg border-[1.5px] border-[var(--file-input-item-border,var(--contrast-200))] p-4',\n // Start animation state\n 'data-[start-animation]:animate-in data-[start-animation]:fade-in-0 data-[start-animation]:slide-in-from-top-2',\n // Invalid state\n 'aria-invalid:border-[var(--file-input-item-border-error,var(--error))]',\n className,\n )}\n data-slot=\"file-input-item\"\n data-start-animation={!hasAnimatedRef.current ? '' : undefined}\n role=\"listitem\"\n {...props}\n >\n {typeof children === 'function' ? children(renderProps) : children}\n </div>\n </FileInputItemContext.Provider>\n );\n}\n\nexport function useFileInputItem() {\n const context = use(FileInputItemContext);\n\n if (!context) {\n throw new Error('useFileInputItem must be used within a FileInputItem');\n }\n\n return context;\n}\n","'use client';\n\nimport type { ComponentProps, ReactNode } from 'react';\nimport { useMemo } from 'react';\n\nimport type { FileState } from '@/components/file-input';\nimport { useFileInput } from '@/components/file-input';\nimport { cn } from '@/lib/utils';\n\nexport interface FileInputListRenderProps {\n files: Map<File, FileState>;\n}\n\nexport type FileInputListProps = Omit<ComponentProps<'div'>, 'children'> & {\n children: ReactNode | ((props: FileInputListRenderProps) => ReactNode);\n};\n\nexport function FileInputList({ className, children, ...props }: FileInputListProps) {\n const { id, files } = useFileInput();\n\n if (files.size === 0) {\n return null;\n }\n\n const renderProps: FileInputListRenderProps = useMemo(() => ({ files }), [files]);\n\n return (\n <div\n className={cn('mt-3 grid gap-3', className)}\n data-slot=\"file-input-list\"\n id={`${id}-list`}\n role=\"list\"\n {...props}\n >\n {typeof children === 'function' ? children(renderProps) : children}\n </div>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useFileInput } from '@/components/file-input';\nimport { cn } from '@/lib/utils';\n\nexport type FileInputMessageProps = ComponentProps<'p'>;\n\nexport function FileInputMessage({ className, children, ...props }: FileInputMessageProps) {\n const { id } = useFileInput();\n\n return (\n <p\n className={cn(\n 'mt-2 font-[family-name:var(--file-input-message-font-family,var(--font-family-body))] text-sm font-normal text-[var(--file-input-message,var(--contrast-500))]',\n className,\n )}\n data-slot=\"file-input-message\"\n id={`${id}-message`}\n {...props}\n >\n {children}\n </p>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useFileInput } from '@/components/file-input';\nimport { cn } from '@/lib/utils';\n\nexport type FileInputDropzoneHintProps = ComponentProps<'p'>;\n\nexport function FileInputDropzoneHint({\n className,\n children,\n ...props\n}: FileInputDropzoneHintProps) {\n const { id, validationError } = useFileInput();\n\n if (validationError != null) {\n return null;\n }\n\n return (\n <p\n className={cn(\n 'font-[family-name:var(--file-input-dropzone-message-font-family,var(--font-family-body))] text-sm font-normal text-[var(--file-input-dropzone-message,var(--contrast-500))]',\n // Disabled state\n 'group-aria-disabled/file-input:text-[var(--file-input-dropzone-message-disabled,color-mix(in_oklab,var(--contrast-500)_70%,transparent))]',\n className,\n )}\n data-slot=\"file-input-dropzone-hint\"\n id={`${id}-hint`}\n {...props}\n >\n {children}\n </p>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useFileInput } from '@/components/file-input';\nimport { cn } from '@/lib/utils';\n\nexport type FileInputDropzoneErrorProps = ComponentProps<'p'>;\n\nexport function FileInputDropzoneError({\n className,\n children,\n ...props\n}: FileInputDropzoneErrorProps) {\n const { id, validationError } = useFileInput();\n\n if (validationError == null) {\n return null;\n }\n\n return (\n <p\n className={cn(\n 'font-[family-name:var(--file-input-dropzone-message-font-family,var(--font-family-body))] text-sm font-normal text-[var(--file-input-dropzone-message-error,var(--error))]',\n className,\n )}\n data-slot=\"file-input-dropzone-error\"\n id={`${id}-error`}\n role=\"alert\"\n {...props}\n >\n {children ?? validationError}\n </p>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type FileInputMetadataProps = ComponentProps<'div'>;\n\nexport function FileInputMetadata({ className, children, ...props }: FileInputMetadataProps) {\n return (\n <div\n className={cn('flex min-w-0 flex-1 flex-col', className)}\n data-slot=\"file-input-metadata\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type FileInputDetailsProps = ComponentProps<'div'>;\n\nexport function FileInputDetails({ className, children, ...props }: FileInputDetailsProps) {\n return (\n <div className={cn('flex-1', className)} data-slot=\"file-input-details\" {...props}>\n {children}\n </div>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type FileInputHeaderProps = ComponentProps<'div'>;\n\nexport function FileInputHeader({ className, children, ...props }: FileInputHeaderProps) {\n return (\n <div\n className={cn(\n 'flex items-center gap-1 font-[family-name:var(--file-input-item-name-font-family,var(--font-family-body))]',\n className,\n )}\n data-slot=\"file-input-header\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useFileInputItem } from '@/components/file-input';\nimport { cn } from '@/lib';\n\nexport type FileInputNameProps = ComponentProps<'p'>;\n\nexport function FileInputName({ className, children, ...props }: FileInputNameProps) {\n const { generatedId } = useFileInputItem();\n\n return (\n <p\n className={cn(\n 'truncate text-sm font-semibold text-[var(--file-input-item-name,var(--foreground))]',\n className,\n )}\n data-slot=\"file-input-name\"\n id={`${generatedId}-name`}\n {...props}\n >\n {children}\n </p>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useFileInputItem } from '@/components/file-input';\nimport { cn } from '@/lib';\n\nexport type FileInputStatusProps = ComponentProps<'p'>;\n\nexport function FileInputStatus({ className, children, ...props }: FileInputStatusProps) {\n const { generatedId } = useFileInputItem();\n\n return (\n <p\n className={cn(\n 'text-xs font-normal text-[var(--file-input-item-status,var(--contrast-500))]',\n className,\n )}\n data-slot=\"file-input-status\"\n id={`${generatedId}-status`}\n {...props}\n >\n {children}\n </p>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useFileInputItem } from '@/components/file-input';\nimport { cn } from '@/lib';\n\nexport type FileInputErrorProps = ComponentProps<'p'>;\n\nexport function FileInputError({ className, children, ...props }: FileInputErrorProps) {\n const { generatedId } = useFileInputItem();\n\n return (\n <p\n className={cn(\n 'text-xs font-normal text-[var(--file-input-item-status-error,var(--error))]',\n className,\n )}\n data-slot=\"file-input-error\"\n id={`${generatedId}-error`}\n {...props}\n >\n {children}\n </p>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useFileInputItem } from '@/components/file-input';\nimport { cn } from '@/lib';\n\nexport type FileInputRemoveProps = ComponentProps<'button'>;\n\nexport function FileInputRemove({ className, children, ...props }: FileInputRemoveProps) {\n const {\n fileState: {\n file: { name },\n },\n removeFile,\n } = useFileInputItem();\n\n return (\n <button\n aria-label={`Remove ${name}`}\n className={cn(\n 'inline-flex size-8 cursor-pointer items-center justify-center rounded-full transition-colors',\n // Hover state\n 'hover:bg-[var(--file-input-item-delete-hover,var(--contrast-100))]',\n // Focus-visible state\n 'focus:outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--file-input-focus,var(--brand))]',\n className,\n )}\n data-slot=\"file-input-remove\"\n onClick={removeFile}\n type=\"button\"\n {...props}\n >\n {children}\n </button>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useFileInputItem } from '@/components/file-input';\nimport { cn } from '@/lib';\n\nexport type FileInputProgressProps = ComponentProps<'div'>;\n\nexport function FileInputProgress({ className, ...props }: FileInputProgressProps) {\n const {\n generatedId,\n fileState: { progress },\n } = useFileInputItem();\n\n return (\n <div\n aria-labelledby={`${generatedId}-name`}\n aria-valuemax={100}\n aria-valuemin={0}\n aria-valuenow={progress}\n aria-valuetext={`${progress}%`}\n className={cn(\n 'absolute bottom-0 left-0 h-1 w-full bg-[var(--file-input-item-progress,var(--brand))] transition-transform duration-300 ease-linear',\n className,\n )}\n data-slot=\"file-input-progress\"\n role=\"progressbar\"\n style={{ transform: `translateX(-${100 - progress}%)` }}\n {...props}\n />\n );\n}\n","'use client';\n\nimport { Slot } from '@radix-ui/react-slot';\nimport {\n FileArchive,\n FileAudio,\n FileCode,\n FileCog,\n FileIcon as FileIconDefault,\n FileImage,\n FileText,\n FileVideo,\n} from 'lucide-react';\nimport type { ElementType, ReactNode } from 'react';\n\nimport { useFileInputItem } from '@/components/file-input';\nimport { cn } from '@/lib';\n\nexport interface FileInputIconProps {\n asChild?: boolean;\n className?: string;\n children?: ReactNode;\n}\n\nexport function FileInputIcon({ asChild = false, className, children }: FileInputIconProps) {\n const { fileState } = useFileInputItem();\n\n const DefaultIcon = getIconForFile(fileState.file);\n\n if (asChild) {\n return (\n <Slot\n className={cn('size-4 text-[var(--file-input-icon,var(--contrast-400))]', className)}\n data-slot=\"file-input-icon\"\n >\n {children}\n </Slot>\n );\n }\n\n return (\n <DefaultIcon\n className={cn('size-4 text-[var(--file-input-icon,var(--contrast-400))]', className)}\n data-slot=\"file-input-icon\"\n />\n );\n}\n\nfunction getIconForFile(file: File): ElementType {\n const type = file.type;\n const extension = file.name.split('.').pop()?.toLowerCase() ?? '';\n\n if (type.startsWith('image/')) {\n return FileImage;\n }\n\n if (type.startsWith('video/')) {\n return FileVideo;\n }\n\n if (type.startsWith('audio/')) {\n return FileAudio;\n }\n\n if (type.startsWith('text/') || ['txt', 'md', 'rtf', 'pdf'].includes(extension)) {\n return FileText;\n }\n\n if (\n [\n 'html',\n 'css',\n 'js',\n 'jsx',\n 'ts',\n 'tsx',\n 'json',\n 'xml',\n 'php',\n 'py',\n 'rb',\n 'java',\n 'c',\n 'cpp',\n 'cs',\n ].includes(extension)\n ) {\n return FileCode;\n }\n\n if (['zip', 'rar', '7z', 'tar', 'gz', 'bz2'].includes(extension)) {\n return FileArchive;\n }\n\n if (\n ['exe', 'msi', 'app', 'apk', 'deb', 'rpm'].includes(extension) ||\n type.startsWith('application/')\n ) {\n return FileCog;\n }\n\n return FileIconDefault;\n}\n","'use client';\n\nimport { Slot } from '@radix-ui/react-slot';\nimport { Upload } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { cn } from '@/lib';\n\nexport interface FileInputUploadIconProps {\n asChild?: boolean;\n className?: string;\n children?: ReactNode;\n}\n\nexport function FileInputUploadIcon({\n asChild = false,\n className,\n children,\n}: FileInputUploadIconProps) {\n const iconStyles = cn(\n 'size-5 text-[var(--file-input-trigger-icon,var(--foreground))]',\n className,\n );\n\n if (asChild) {\n return (\n <Slot className={iconStyles} data-slot=\"file-input-upload-icon\">\n {children}\n </Slot>\n );\n }\n\n return (\n <Upload\n absoluteStrokeWidth\n className={iconStyles}\n color=\"currentColor\"\n data-slot=\"file-input-upload-icon\"\n strokeWidth={1.5}\n />\n );\n}\n","'use client';\n\nimport { Slot } from '@radix-ui/react-slot';\nimport { X } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { cn } from '@/lib';\n\nexport interface FileInputRemoveIconProps {\n asChild?: boolean;\n className?: string;\n children?: ReactNode;\n}\n\nexport function FileInputRemoveIcon({\n asChild = false,\n className,\n children,\n}: FileInputRemoveIconProps) {\n const iconStyles = cn(\n 'size-5 text-[var(--file-input-item-delete-icon,var(--foreground))]',\n className,\n );\n\n if (asChild) {\n return (\n <Slot className={iconStyles} data-slot=\"file-input-remove-icon\">\n {children}\n </Slot>\n );\n }\n\n return (\n <X\n absoluteStrokeWidth\n className={iconStyles}\n color=\"currentColor\"\n data-slot=\"file-input-remove-icon\"\n strokeWidth={1.5}\n />\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useFileInput } from '@/components/file-input';\nimport { Label } from '@/components/label';\nimport { cn } from '@/lib';\n\nexport type FileInputLabelProps = ComponentProps<typeof Label>;\n\nexport function FileInputLabel({ className, children, ...props }: FileInputLabelProps) {\n const { inputId } = useFileInput();\n\n return (\n <Label\n className={cn(className)}\n data-slot=\"file-input-label\"\n htmlFor={`${inputId}-input`}\n {...props}\n >\n {children}\n </Label>\n );\n}\n"],"names":["initialState","fileInputReducer","state","action","newFiles","file","updatedFiles","fileState","successFiles","errorFiles","removeFiles","FileInputContext","createContext","useFileInput","context","useContext","FileInputRoot","id","children","className","accept","multiple","disabled","invalid","name","maxFiles","maxSize","onFileValidate","onFileAccept","onFileReject","onUploadFile","onUploadSuccess","onUploadError","props","inputRef","useRef","inputId","dispatch","useReducer","validationError","setValidationError","useState","setProgress","useCallback","progress","setSuccess","setError","error","addFilesToState","files","removeFile","input","dataTransfer","f","openFilePicker","processFiles","filesToUpload","acceptedFiles","rejected","rejectionReason","validationMessage","acceptTypes","t","fileType","fileExtension","type","allFiles","limitedFiles","reportProgress","result","err","handleChange","event","contextValue","useMemo","jsx","jsxs","cn","FileInputDropzone","addFiles","isDragging","setIsDragging","handleDrop","handleDragOver","handleDragEnter","handleDragLeave","relatedTarget","handleKeyDown","handlePaste","items","pastedFiles","item","handleClick","FileInputTrigger","contextDisabled","isDisabled","Button","FileInputItemContext","FileInputItem","generatedId","useId","removeFileFromRoot","hasAnimatedRef","renderProps","useEffect","status","useFileInputItem","use","FileInputList","FileInputMessage","FileInputDropzoneHint","FileInputDropzoneError","FileInputMetadata","FileInputDetails","FileInputHeader","FileInputName","FileInputStatus","FileInputError","FileInputRemove","FileInputProgress","FileInputIcon","asChild","DefaultIcon","getIconForFile","Slot","extension","FileImage","FileVideo","FileAudio","FileText","FileCode","FileArchive","FileCog","FileIconDefault","FileInputUploadIcon","iconStyles","Upload","FileInputRemoveIcon","X","FileInputLabel","Label"],"mappings":";;;;;;;;;;;;;;;;AAkCA,MAAMA,IAA+B;AAAA,EACnC,2BAAW,IAAA;AACb;AAEA,SAASC,GAAiBC,GAAuBC,GAAyC;AACxF,UAAQA,EAAO,MAAA;AAAA,IACb,KAAK,aAAa;AAChB,YAAMC,IAAW,IAAI,IAAIF,EAAM,KAAK;AAEpC,aAAAC,EAAO,MAAM,QAAQ,CAACE,MAAS;AAC7B,QAAKD,EAAS,IAAIC,CAAI,KACpBD,EAAS,IAAIC,GAAM;AAAA,UACjB,MAAAA;AAAA,UACA,UAAU;AAAA,UACV,QAAQ;AAAA,QAAA,CACT;AAAA,MAEL,CAAC,GAEM,EAAE,GAAGH,GAAO,OAAOE,EAAA;AAAA,IAC5B;AAAA,IAEA,KAAK,gBAAgB;AACnB,YAAME,IAAe,IAAI,IAAIJ,EAAM,KAAK,GAClCK,IAAYD,EAAa,IAAIH,EAAO,IAAI;AAE9C,aAAII,KACFD,EAAa,IAAIH,EAAO,MAAM;AAAA,QAC5B,GAAGI;AAAA,QACH,UAAUJ,EAAO;AAAA,QACjB,QAAQ;AAAA,MAAA,CACT,GAGI,EAAE,GAAGD,GAAO,OAAOI,EAAA;AAAA,IAC5B;AAAA,IAEA,KAAK,eAAe;AAClB,YAAME,IAAe,IAAI,IAAIN,EAAM,KAAK,GAClCK,IAAYC,EAAa,IAAIL,EAAO,IAAI;AAE9C,aAAII,KACFC,EAAa,IAAIL,EAAO,MAAM;AAAA,QAC5B,GAAGI;AAAA,QACH,QAAQ;AAAA,QACR,UAAU;AAAA,MAAA,CACX,GAGI,EAAE,GAAGL,GAAO,OAAOM,EAAA;AAAA,IAC5B;AAAA,IAEA,KAAK,aAAa;AAChB,YAAMC,IAAa,IAAI,IAAIP,EAAM,KAAK,GAChCK,IAAYE,EAAW,IAAIN,EAAO,IAAI;AAE5C,aAAII,KACFE,EAAW,IAAIN,EAAO,MAAM;AAAA,QAC1B,GAAGI;AAAA,QACH,QAAQ;AAAA,QACR,OAAOJ,EAAO;AAAA,MAAA,CACf,GAGI,EAAE,GAAGD,GAAO,OAAOO,EAAA;AAAA,IAC5B;AAAA,IAEA,KAAK,eAAe;AAClB,YAAMC,IAAc,IAAI,IAAIR,EAAM,KAAK;AAEvC,aAAAQ,EAAY,OAAOP,EAAO,IAAI,GAEvB,EAAE,GAAGD,GAAO,OAAOQ,EAAA;AAAA,IAC5B;AAAA,IAEA,KAAK;AACH,aAAOV;AAAA,IAET;AACE,aAAOE;AAAA,EAAA;AAEb;AAeA,MAAMS,IAAmBC,EAA4C,IAAI;AAElE,SAASC,IAAe;AAC7B,QAAMC,IAAUC,GAAWJ,CAAgB;AAE3C,MAAI,CAACG;AACH,UAAM,IAAI,MAAM,kDAAkD;AAGpE,SAAOA;AACT;AAqBO,SAASE,GAAc;AAAA,EAC5B,IAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,cAAAC;AAAA,EACA,cAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,GAAGC;AACL,GAAuB;AACrB,QAAMC,IAAWC,EAAgC,IAAI,GAC/CC,IAAU,GAAGnB,CAAE,UAEf,CAACf,GAAOmC,CAAQ,IAAIC,GAAWrC,IAAkBD,CAAY,GAC7D,CAACuC,GAAiBC,CAAkB,IAAIC,EAA6B,MAAS,GAE9EC,IAAcC,EAAY,CAACtC,GAAYuC,MAAqB;AAChE,IAAAP,EAAS,EAAE,MAAM,gBAAgB,MAAAhC,GAAM,UAAAuC,GAAU;AAAA,EACnD,GAAG,CAAA,CAAE,GAECC,IAAaF,EAAY,CAACtC,MAAe;AAC7C,IAAAgC,EAAS,EAAE,MAAM,eAAe,MAAAhC,EAAA,CAAM;AAAA,EACxC,GAAG,CAAA,CAAE,GAECyC,IAAWH,EAAY,CAACtC,GAAY0C,MAAkB;AAC1D,IAAAV,EAAS,EAAE,MAAM,aAAa,MAAAhC,GAAM,OAAA0C,GAAO;AAAA,EAC7C,GAAG,CAAA,CAAE,GAECC,IAAkBL,EAAY,CAACM,MAAkB;AACrD,IAAAZ,EAAS,EAAE,MAAM,aAAa,OAAAY,EAAA,CAAO;AAAA,EACvC,GAAG,CAAA,CAAE,GAECC,IAAaP,EAAY,CAACtC,MAAe;AAC7C,UAAM8C,IAAQjB,EAAS;AAEvB,QAAIiB,GAAO,OAAO;AAChB,YAAMC,IAAe,IAAI,aAAA;AAGzB,MAFqB,MAAM,KAAKD,EAAM,KAAK,EAE9B,OAAO,CAACE,MAAMA,MAAMhD,CAAI,EAAE,QAAQ,CAACgD,MAAMD,EAAa,MAAM,IAAIC,CAAC,CAAC,GAE/EF,EAAM,QAAQC,EAAa;AAAA,IAC7B;AAEA,IAAAf,EAAS,EAAE,MAAM,eAAe,MAAAhC,EAAA,CAAM;AAAA,EACxC,GAAG,CAAA,CAAE,GAECiD,IAAiBX,EAAY,MAAM;AACvC,IAAAT,EAAS,SAAS,MAAA;AAAA,EACpB,GAAG,CAAA,CAAE,GAECqB,IAAeZ;AAAA,IACnB,CAACvC,MAAqB;AACpB,YAAMoD,IAAwB,CAAA,GACxBC,IAAwB,CAAA;AAE9B,MAAArD,EAAS,QAAQ,CAACC,MAAS;AACzB,YAAIqD,IAAW,IACXC,IAAkB;AAEtB,YAAIhC,GAAgB;AAClB,gBAAMiC,IAAoBjC,EAAetB,CAAI;AAE7C,UAAIuD,KAAqB,SACvBD,IAAkBC,GAClBF,IAAW;AAAA,QAEf;AAEA,YAAI,CAACA,KAAYtC,KAAU,MAAM;AAC/B,gBAAMyC,IAAczC,EAAO,MAAM,GAAG,EAAE,IAAI,CAAC0C,MAAMA,EAAE,KAAA,EAAO,YAAA,CAAa,GACjEC,IAAW1D,EAAK,KAAK,YAAA,GACrB2D,KAAgB,IAAI3D,EAAK,KAAK,MAAM,GAAG,EAAE,OAAO,YAAA,CAAa;AASnE,UAPmBwD,EAAY;AAAA,YAC7B,CAACI,MACCA,MAASF,KACTE,MAASD,MACRC,EAAK,SAAS,IAAI,KAAKF,EAAS,WAAWE,EAAK,MAAM,GAAG,EAAE,CAAC;AAAA,UAAA,MAI/DN,IAAkB,0BAClBD,IAAW;AAAA,QAEf;AAEA,QAAI,CAACA,KAAYhC,KAAW,QAAQrB,EAAK,OAAOqB,MAC9CiC,IAAkB,2BAClBD,IAAW,KAGTA,KACFlB,EAAmBmB,CAAe,GAClC9B,IAAexB,GAAMsD,CAAe,MAEpCnB,EAAmB,MAAS,GAC5BZ,IAAevB,CAAI,GACnBmD,EAAc,KAAKnD,CAAI,GACvBoD,EAAc,KAAKpD,CAAI;AAAA,MAE3B,CAAC;AAED,YAAM8C,IAAQjB,EAAS;AAEvB,UAAIiB,GAAO;AACT,cAAMC,IAAe,IAAI,aAAA,GAEnBc,IAAW,CAAC,GADI,MAAM,KAAKhE,EAAM,MAAM,MAAM,GACf,GAAGuD,CAAa,GAC9CU,IAAe1C,KAAY,OAAOyC,EAAS,MAAM,GAAGzC,CAAQ,IAAIyC;AAEtE,QAAAC,EAAa,QAAQ,CAAC9D,MAAS+C,EAAa,MAAM,IAAI/C,CAAI,CAAC,GAC3D8C,EAAM,QAAQC,EAAa,OAE3BJ,EAAgBmB,CAAY;AAAA,MAC9B;AAEA,MAAIX,EAAc,SAAS,MACrB1B,IACF0B,EAAc,QAAQ,CAACnD,MAAS;AAC9B,QAAAqC,EAAYrC,GAAM,CAAC;AAEnB,cAAM+D,IAAiB,CAACxB,MAAqB;AAC3C,UAAAF,EAAYrC,GAAMuC,CAAQ;AAAA,QAC5B;AAEA,QAAK,QAAQ,QAAQd,EAAazB,GAAM+D,CAAc,CAAC,EACpD,KAAK,CAACC,MAAW;AAChB,UAAAxB,EAAWxC,CAAI,GACf0B,IAAkB1B,GAAMgE,CAAM;AAAA,QAChC,CAAC,EACA,MAAM,CAACtB,MAAmB;AACzB,gBAAMuB,IAAMvB,aAAiB,QAAQA,IAAQ,IAAI,MAAM,eAAe;AAEtE,UAAAD,EAASzC,GAAMiE,EAAI,OAAO,GAC1BtC,IAAgB3B,GAAMiE,CAAG;AAAA,QAC3B,CAAC;AAAA,MACL,CAAC,IAEDd,EAAc,QAAQ,CAACnD,MAAS;AAC9B,QAAAwC,EAAWxC,CAAI;AAAA,MACjB,CAAC;AAAA,IAGP;AAAA,IACA;AAAA,MACEe;AAAA,MACAK;AAAA,MACAC;AAAA,MACAxB,EAAM;AAAA,MACNyB;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAgB;AAAA,MACAN;AAAA,MACAG;AAAA,MACAC;AAAA,IAAA;AAAA,EACF,GAGIyB,IAAe5B;AAAA,IACnB,CAAC6B,MAAyC;AACxC,YAAMpE,IAAW,MAAM,KAAKoE,EAAM,OAAO,SAAS,EAAE;AAEpD,MAAAjB,EAAanD,CAAQ;AAAA,IACvB;AAAA,IACA,CAACmD,CAAY;AAAA,EAAA,GAGTkB,KAAeC;AAAA,IACnB,OAAO;AAAA,MACL,OAAOxE,EAAM;AAAA,MACb,IAAAe;AAAA,MACA,SAAAmB;AAAA,MACA,UAAAF;AAAA,MACA,UAAAZ;AAAA,MACA,SAAAC;AAAA,MACA,iBAAAgB;AAAA,MACA,UAAUgB;AAAA,MACV,YAAAL;AAAA,MACA,gBAAAI;AAAA,IAAA;AAAA,IAEF;AAAA,MACEpD,EAAM;AAAA,MACNe;AAAA,MACAmB;AAAA,MACAd;AAAA,MACAC;AAAA,MACAgB;AAAA,MACAgB;AAAA,MACAL;AAAA,MACAI;AAAA,IAAA;AAAA,EACF;AAGF,SACE,gBAAAqB,EAAChE,EAAiB,UAAjB,EAA0B,OAAO8D,IAChC,UAAA,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,iBAAetD,MAAa,KAAO,KAAO;AAAA,MAC1C,gBAAcC,MAAY,MAAQgB,KAAmB,OAAO,KAAO;AAAA,MACnE,WAAWsC,EAAG,+BAA+B1D,CAAS;AAAA,MACtD,aAAU;AAAA,MACT,GAAGc;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAA0C;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,QAAAvD;AAAA,YACA,WAAU;AAAA,YACV,UAAAE;AAAA,YACA,IAAIc;AAAA,YACJ,UAAAf;AAAA,YACA,MAAAG;AAAA,YACA,UAAU+C;AAAA,YACV,KAAKrC;AAAA,YACL,UAAU;AAAA,YACV,MAAK;AAAA,UAAA;AAAA,QAAA;AAAA,QAENhB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAEL;AAEJ;AC/XO,SAAS4D,GAAkB,EAAE,UAAA5D,GAAU,WAAAC,GAAW,GAAGc,KAAiC;AAC3F,QAAM,EAAE,IAAAhB,GAAI,UAAAK,GAAU,SAAAC,GAAS,UAAAwD,GAAU,gBAAAzB,EAAA,IAAmBzC,EAAA,GACtD,CAACmE,GAAYC,CAAa,IAAIxC,EAAS,EAAK,GAE5CyC,IAAavC;AAAA,IACjB,CAAC6B,MAAqC;AACpC,MAAAA,EAAM,eAAA,GACNS,EAAc,EAAK;AAEnB,YAAM7E,IAAW,MAAM,KAAKoE,EAAM,aAAa,KAAK;AAEpD,MAAAO,EAAS3E,CAAQ;AAAA,IACnB;AAAA,IACA,CAAC2E,CAAQ;AAAA,EAAA,GAGLI,IAAiBxC,EAAY,CAAC6B,MAAqC;AACvE,IAAAA,EAAM,eAAA,GACNS,EAAc,EAAI;AAAA,EACpB,GAAG,CAAA,CAAE,GAECG,IAAkBzC,EAAY,CAAC6B,MAAqC;AACxE,IAAAA,EAAM,eAAA,GACNS,EAAc,EAAI;AAAA,EACpB,GAAG,CAAA,CAAE,GAECI,IAAkB1C,EAAY,CAAC6B,MAAqC;AACxE,UAAMc,IAAgBd,EAAM;AAE5B,IACEc,KACAA,aAAyB,QACzBd,EAAM,cAAc,SAASc,CAAa,MAK5Cd,EAAM,eAAA,GACNS,EAAc,EAAK;AAAA,EACrB,GAAG,CAAA,CAAE,GAECM,IAAgB5C;AAAA,IACpB,CAAC6B,MAAyC;AACxC,OAAIA,EAAM,QAAQ,WAAWA,EAAM,QAAQ,SACzCA,EAAM,eAAA,GACNlB,EAAA;AAAA,IAEJ;AAAA,IACA,CAACA,CAAc;AAAA,EAAA,GAGXkC,IAAc7C;AAAA,IAClB,CAAC6B,MAA0C;AACzC,MAAAA,EAAM,eAAA,GACNS,EAAc,EAAK;AAEnB,YAAMQ,IAAQjB,EAAM,cAAc;AAElC,UAAIiB,EAAM,WAAW,EAAG;AAExB,YAAMC,IAAsB,CAAA;AAE5B,iBAAWC,KAAQ,MAAM,KAAKF,CAAK;AACjC,YAAIE,EAAK,SAAS,QAAQ;AACxB,gBAAMtF,IAAOsF,EAAK,UAAA;AAElB,UAAItF,KACFqF,EAAY,KAAKrF,CAAI;AAAA,QAEzB;AAGF,MAAIqF,EAAY,WAAW,KAE3BX,EAASW,CAAW;AAAA,IACtB;AAAA,IACA,CAACX,CAAQ;AAAA,EAAA,GAGLa,IAAcjD,EAAY,MAAM;AACpC,IAAAW,EAAA;AAAA,EACF,GAAG,CAACA,CAAc,CAAC;AAEnB,SACE,gBAAAqB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,iBAAe,GAAG1D,CAAE,UAAUA,CAAE;AAAA,MAChC,iBAAeK,MAAa,KAAO,KAAO;AAAA,MAC1C,gBAAcC,MAAY,KAAO,KAAO;AAAA,MACxC,WAAWsD;AAAA,QACT;AAAA;AAAA,QAEA;AAAA;AAAA,QAEA;AAAA;AAAA,QAEA;AAAA,QACA;AAAA;AAAA,QAEA;AAAA;AAAA,QAEA;AAAA;AAAA,QAEA;AAAA,QACA1D;AAAA,MAAA;AAAA,MAEF,iBAAe6D,IAAa,KAAK;AAAA,MACjC,aAAU;AAAA,MACV,SAASY;AAAA,MACT,aAAaR;AAAA,MACb,aAAaC;AAAA,MACb,YAAYF;AAAA,MACZ,QAAQD;AAAA,MACR,WAAWK;AAAA,MACX,SAASC;AAAA,MACT,MAAK;AAAA,MACL,UAAUlE,MAAa,KAAO,KAAK;AAAA,MAClC,GAAGW;AAAA,MAEH,UAAAf;AAAA,IAAA;AAAA,EAAA;AAGP;AC1HO,SAAS2E,GAAiB,EAAE,UAAA3E,GAAU,UAAAI,GAAU,GAAGW,KAAgC;AACxF,QAAM,EAAE,SAAAG,GAAS,UAAU0D,GAAiB,gBAAAxC,EAAA,IAAmBzC,EAAA,GAEzDkF,IAAazE,KAAYwE;AAE/B,SACE,gBAAAnB;AAAA,IAACqB;AAAA,IAAA;AAAA,MACC,iBAAe,GAAG5D,CAAO;AAAA,MACzB,WAAU;AAAA,MACV,aAAU;AAAA,MACV,UAAU2D;AAAA,MACV,SAASzC;AAAA,MACT,MAAK;AAAA,MACL,UAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAQ;AAAA,MACP,GAAGrB;AAAA,MAEH,UAAAf;AAAA,IAAA;AAAA,EAAA;AAGP;ACdA,MAAM+E,IAAuBrF,EAAoD,MAAS;AAOnF,SAASsF,GAAc,EAAE,WAAA/E,GAAW,UAAAD,GAAU,MAAAb,GAAM,GAAG4B,KAA6B;AACzF,QAAMkE,IAAcC,GAAA,GACd,EAAE,OAAAnD,GAAO,YAAYoD,EAAA,IAAuBxF,EAAA,GAC5CyF,IAAiBnE,EAAO,EAAK,GAE7B5B,IAAY0C,EAAM,IAAI5C,CAAI,GAE1B6C,IAAaP,EAAY,MAAM0D,EAAmBhG,CAAI,GAAG,CAACgG,GAAoBhG,CAAI,CAAC;AAEzF,MAAI,CAACE;AACH,WAAO;AAGT,QAAMgG,IAAwC7B;AAAA,IAC5C,OAAO,EAAE,MAAArE,GAAM,WAAAE,GAAW,aAAA4F,GAAa,YAAAjD,EAAA;AAAA,IACvC,CAAC7C,GAAME,GAAW4F,GAAajD,CAAU;AAAA,EAAA;AAG3C,EAAAsD,GAAU,MAAM;AAGd,IAAKF,EAAe,WAClB,WAAW,MAAM;AACf,MAAAA,EAAe,UAAU;AAAA,IAC3B,GAAG,GAAG;AAAA,EAEV,GAAG,CAAC/F,CAAS,CAAC;AAEd,QAAM,EAAE,QAAAkG,GAAQ,OAAA1D,EAAA,IAAUxC;AAE1B,SACE,gBAAAoE,EAACsB,EAAqB,UAArB,EAA8B,OAAOM,GACpC,UAAA,gBAAA5B;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,oBAAkB,GAAGwB,CAAW,UAAUpD,KAAS,OAAO,IAAIoD,CAAW,WAAW,EAAE,GAAG,KAAA;AAAA,MACzF,gBAAcM,MAAW;AAAA,MACzB,mBAAiB,GAAGN,CAAW;AAAA,MAC/B,WAAWtB;AAAA,QACT;AAAA;AAAA,QAEA;AAAA;AAAA,QAEA;AAAA,QACA1D;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACV,wBAAuBmF,EAAe,UAAe,SAAL;AAAA,MAChD,MAAK;AAAA,MACJ,GAAGrE;AAAA,MAEH,UAAA,OAAOf,KAAa,aAAaA,EAASqF,CAAW,IAAIrF;AAAA,IAAA;AAAA,EAAA,GAE9D;AAEJ;AAEO,SAASwF,IAAmB;AACjC,QAAM5F,IAAU6F,GAAIV,CAAoB;AAExC,MAAI,CAACnF;AACH,UAAM,IAAI,MAAM,sDAAsD;AAGxE,SAAOA;AACT;ACrEO,SAAS8F,GAAc,EAAE,WAAAzF,GAAW,UAAAD,GAAU,GAAGe,KAA6B;AACnF,QAAM,EAAE,IAAAhB,GAAI,OAAAgC,EAAA,IAAUpC,EAAA;AAEtB,MAAIoC,EAAM,SAAS;AACjB,WAAO;AAGT,QAAMsD,IAAwC7B,EAAQ,OAAO,EAAE,OAAAzB,MAAU,CAACA,CAAK,CAAC;AAEhF,SACE,gBAAA0B;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWE,EAAG,mBAAmB1D,CAAS;AAAA,MAC1C,aAAU;AAAA,MACV,IAAI,GAAGF,CAAE;AAAA,MACT,MAAK;AAAA,MACJ,GAAGgB;AAAA,MAEH,UAAA,OAAOf,KAAa,aAAaA,EAASqF,CAAW,IAAIrF;AAAA,IAAA;AAAA,EAAA;AAGhE;AC5BO,SAAS2F,GAAiB,EAAE,WAAA1F,GAAW,UAAAD,GAAU,GAAGe,KAAgC;AACzF,QAAM,EAAE,IAAAhB,EAAA,IAAOJ,EAAA;AAEf,SACE,gBAAA8D;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWE;AAAA,QACT;AAAA,QACA1D;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACV,IAAI,GAAGF,CAAE;AAAA,MACR,GAAGgB;AAAA,MAEH,UAAAf;AAAA,IAAA;AAAA,EAAA;AAGP;AChBO,SAAS4F,GAAsB;AAAA,EACpC,WAAA3F;AAAA,EACA,UAAAD;AAAA,EACA,GAAGe;AACL,GAA+B;AAC7B,QAAM,EAAE,IAAAhB,GAAI,iBAAAsB,EAAA,IAAoB1B,EAAA;AAEhC,SAAI0B,KAAmB,OACd,OAIP,gBAAAoC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWE;AAAA,QACT;AAAA;AAAA,QAEA;AAAA,QACA1D;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACV,IAAI,GAAGF,CAAE;AAAA,MACR,GAAGgB;AAAA,MAEH,UAAAf;AAAA,IAAA;AAAA,EAAA;AAGP;AC1BO,SAAS6F,GAAuB;AAAA,EACrC,WAAA5F;AAAA,EACA,UAAAD;AAAA,EACA,GAAGe;AACL,GAAgC;AAC9B,QAAM,EAAE,IAAAhB,GAAI,iBAAAsB,EAAA,IAAoB1B,EAAA;AAEhC,SAAI0B,KAAmB,OACd,OAIP,gBAAAoC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWE;AAAA,QACT;AAAA,QACA1D;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACV,IAAI,GAAGF,CAAE;AAAA,MACT,MAAK;AAAA,MACJ,GAAGgB;AAAA,MAEH,UAAAf,KAAYqB;AAAA,IAAA;AAAA,EAAA;AAGnB;AC5BO,SAASyE,GAAkB,EAAE,WAAA7F,GAAW,UAAAD,GAAU,GAAGe,KAAiC;AAC3F,SACE,gBAAA0C;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWE,EAAG,gCAAgC1D,CAAS;AAAA,MACvD,aAAU;AAAA,MACT,GAAGc;AAAA,MAEH,UAAAf;AAAA,IAAA;AAAA,EAAA;AAGP;ACVO,SAAS+F,GAAiB,EAAE,WAAA9F,GAAW,UAAAD,GAAU,GAAGe,KAAgC;AACzF,SACE,gBAAA0C,EAAC,OAAA,EAAI,WAAWE,EAAG,UAAU1D,CAAS,GAAG,aAAU,sBAAsB,GAAGc,GACzE,UAAAf,EAAA,CACH;AAEJ;ACNO,SAASgG,GAAgB,EAAE,WAAA/F,GAAW,UAAAD,GAAU,GAAGe,KAA+B;AACvF,SACE,gBAAA0C;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWE;AAAA,QACT;AAAA,QACA1D;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACT,GAAGc;AAAA,MAEH,UAAAf;AAAA,IAAA;AAAA,EAAA;AAGP;ACVO,SAASiG,GAAc,EAAE,WAAAhG,GAAW,UAAAD,GAAU,GAAGe,KAA6B;AACnF,QAAM,EAAE,aAAAkE,EAAA,IAAgBO,EAAA;AAExB,SACE,gBAAA/B;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWE;AAAA,QACT;AAAA,QACA1D;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACV,IAAI,GAAGgF,CAAW;AAAA,MACjB,GAAGlE;AAAA,MAEH,UAAAf;AAAA,IAAA;AAAA,EAAA;AAGP;AChBO,SAASkG,GAAgB,EAAE,WAAAjG,GAAW,UAAAD,GAAU,GAAGe,KAA+B;AACvF,QAAM,EAAE,aAAAkE,EAAA,IAAgBO,EAAA;AAExB,SACE,gBAAA/B;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWE;AAAA,QACT;AAAA,QACA1D;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACV,IAAI,GAAGgF,CAAW;AAAA,MACjB,GAAGlE;AAAA,MAEH,UAAAf;AAAA,IAAA;AAAA,EAAA;AAGP;AChBO,SAASmG,GAAe,EAAE,WAAAlG,GAAW,UAAAD,GAAU,GAAGe,KAA8B;AACrF,QAAM,EAAE,aAAAkE,EAAA,IAAgBO,EAAA;AAExB,SACE,gBAAA/B;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWE;AAAA,QACT;AAAA,QACA1D;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACV,IAAI,GAAGgF,CAAW;AAAA,MACjB,GAAGlE;AAAA,MAEH,UAAAf;AAAA,IAAA;AAAA,EAAA;AAGP;AChBO,SAASoG,GAAgB,EAAE,WAAAnG,GAAW,UAAAD,GAAU,GAAGe,KAA+B;AACvF,QAAM;AAAA,IACJ,WAAW;AAAA,MACT,MAAM,EAAE,MAAAT,EAAA;AAAA,IAAK;AAAA,IAEf,YAAA0B;AAAA,EAAA,IACEwD,EAAA;AAEJ,SACE,gBAAA/B;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,cAAY,UAAUnD,CAAI;AAAA,MAC1B,WAAWqD;AAAA,QACT;AAAA;AAAA,QAEA;AAAA;AAAA,QAEA;AAAA,QACA1D;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACV,SAAS+B;AAAA,MACT,MAAK;AAAA,MACJ,GAAGjB;AAAA,MAEH,UAAAf;AAAA,IAAA;AAAA,EAAA;AAGP;AC3BO,SAASqG,GAAkB,EAAE,WAAApG,GAAW,GAAGc,KAAiC;AACjF,QAAM;AAAA,IACJ,aAAAkE;AAAA,IACA,WAAW,EAAE,UAAAvD,EAAA;AAAA,EAAS,IACpB8D,EAAA;AAEJ,SACE,gBAAA/B;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,mBAAiB,GAAGwB,CAAW;AAAA,MAC/B,iBAAe;AAAA,MACf,iBAAe;AAAA,MACf,iBAAevD;AAAA,MACf,kBAAgB,GAAGA,CAAQ;AAAA,MAC3B,WAAWiC;AAAA,QACT;AAAA,QACA1D;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACV,MAAK;AAAA,MACL,OAAO,EAAE,WAAW,eAAe,MAAMyB,CAAQ,KAAA;AAAA,MAChD,GAAGX;AAAA,IAAA;AAAA,EAAA;AAGV;ACRO,SAASuF,GAAc,EAAE,SAAAC,IAAU,IAAO,WAAAtG,GAAW,UAAAD,KAAgC;AAC1F,QAAM,EAAE,WAAAX,EAAA,IAAcmG,EAAA,GAEhBgB,IAAcC,GAAepH,EAAU,IAAI;AAEjD,SAAIkH,IAEA,gBAAA9C;AAAA,IAACiD;AAAA,IAAA;AAAA,MACC,WAAW/C,EAAG,4DAA4D1D,CAAS;AAAA,MACnF,aAAU;AAAA,MAET,UAAAD;AAAA,IAAA;AAAA,EAAA,IAML,gBAAAyD;AAAA,IAAC+C;AAAA,IAAA;AAAA,MACC,WAAW7C,EAAG,4DAA4D1D,CAAS;AAAA,MACnF,aAAU;AAAA,IAAA;AAAA,EAAA;AAGhB;AAEA,SAASwG,GAAetH,GAAyB;AAC/C,QAAM4D,IAAO5D,EAAK,MACZwH,IAAYxH,EAAK,KAAK,MAAM,GAAG,EAAE,IAAA,GAAO,YAAA,KAAiB;AAE/D,SAAI4D,EAAK,WAAW,QAAQ,IACnB6D,KAGL7D,EAAK,WAAW,QAAQ,IACnB8D,KAGL9D,EAAK,WAAW,QAAQ,IACnB+D,KAGL/D,EAAK,WAAW,OAAO,KAAK,CAAC,OAAO,MAAM,OAAO,KAAK,EAAE,SAAS4D,CAAS,IACrEI,KAIP;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,EACA,SAASJ,CAAS,IAEbK,KAGL,CAAC,OAAO,OAAO,MAAM,OAAO,MAAM,KAAK,EAAE,SAASL,CAAS,IACtDM,KAIP,CAAC,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK,EAAE,SAASN,CAAS,KAC7D5D,EAAK,WAAW,cAAc,IAEvBmE,KAGFC;AACT;ACxFO,SAASC,GAAoB;AAAA,EAClC,SAAAb,IAAU;AAAA,EACV,WAAAtG;AAAA,EACA,UAAAD;AACF,GAA6B;AAC3B,QAAMqH,IAAa1D;AAAA,IACjB;AAAA,IACA1D;AAAA,EAAA;AAGF,SAAIsG,sBAECG,GAAA,EAAK,WAAWW,GAAY,aAAU,0BACpC,UAAArH,GACH,IAKF,gBAAAyD;AAAA,IAAC6D;AAAA,IAAA;AAAA,MACC,qBAAmB;AAAA,MACnB,WAAWD;AAAA,MACX,OAAM;AAAA,MACN,aAAU;AAAA,MACV,aAAa;AAAA,IAAA;AAAA,EAAA;AAGnB;AC3BO,SAASE,GAAoB;AAAA,EAClC,SAAAhB,IAAU;AAAA,EACV,WAAAtG;AAAA,EACA,UAAAD;AACF,GAA6B;AAC3B,QAAMqH,IAAa1D;AAAA,IACjB;AAAA,IACA1D;AAAA,EAAA;AAGF,SAAIsG,sBAECG,GAAA,EAAK,WAAWW,GAAY,aAAU,0BACpC,UAAArH,GACH,IAKF,gBAAAyD;AAAA,IAAC+D;AAAA,IAAA;AAAA,MACC,qBAAmB;AAAA,MACnB,WAAWH;AAAA,MACX,OAAM;AAAA,MACN,aAAU;AAAA,MACV,aAAa;AAAA,IAAA;AAAA,EAAA;AAGnB;AC/BO,SAASI,GAAe,EAAE,WAAAxH,GAAW,UAAAD,GAAU,GAAGe,KAA8B;AACrF,QAAM,EAAE,SAAAG,EAAA,IAAYvB,EAAA;AAEpB,SACE,gBAAA8D;AAAA,IAACiE;AAAA,IAAA;AAAA,MACC,WAAW/D,EAAG1D,CAAS;AAAA,MACvB,aAAU;AAAA,MACV,SAAS,GAAGiB,CAAO;AAAA,MAClB,GAAGH;AAAA,MAEH,UAAAf;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("./utils-DoxiiusW.cjs");function a({className:r,type:t="success",...s}){return e.jsx("div",{className:o.cn("flex items-center gap-3","px-4 py-3","text-sm","rounded-xl","data-[type=error]:bg-[var(--form-status-background-error,color-mix(in_oklab,_hsl(var(--error)),_white_75%))]","data-[type=error]:text-[var(--form-status-text-error,color-mix(in_oklab,hsl(var(--error)),black_75%))]","data-[type=success]:bg-[var(--form-status-background-success,color-mix(in_oklab,_hsl(var(--success)),_white_75%))]","data-[type=success]:text-[var(--form-status-text-success,color-mix(in_oklab,hsl(var(--success)),black_75%))]",r),"data-type":t,...s})}exports.Root=a;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),u=require("./index-iAvn1gzj.cjs"),c=require("./utils-DoxiiusW.cjs"),a=require("./index-DGaxX11V.cjs"),n=require("./circle-alert-BlXmMk3i.cjs"),i=require("./circle-check-big-CqcT1QrB.cjs"),l=u.cva("flex items-center gap-3 rounded-xl px-4 py-3 text-sm",{variants:{type:{error:"bg-[var(--form-status-background-error,color-mix(in_oklab,_var(--error),_white_75%))] [color:var(--form-status-text-error,color-mix(in_oklab,var(--error),black_75%))]",success:"bg-[var(--form-status-background-success,color-mix(in_oklab,_var(--success),_white_75%))] [color:var(--form-status-text-success,color-mix(in_oklab,var(--success),black_75%))]"}},defaultVariants:{type:"success"}});function m({className:r,type:t,...s}){return e.jsx("div",{className:c.cn(l({type:t}),r),"data-slot":"form-status-root",...s})}function f({asChild:r=!1,className:t,children:s}){const o=c.cn("size-5 shrink-0",t);return r?e.jsx(a.Slot,{className:o,"data-slot":"form-status-error-icon",children:s}):e.jsx(n.default,{absoluteStrokeWidth:!0,className:o,color:"currentColor","data-slot":"form-status-error-icon",strokeWidth:1.5})}function d({asChild:r=!1,className:t,children:s}){const o=c.cn("size-5 shrink-0",t);return r?e.jsx(a.Slot,{className:o,"data-slot":"form-status-success-icon",children:s}):e.jsx(i.default,{absoluteStrokeWidth:!0,className:o,color:"currentColor","data-slot":"form-status-success-icon",strokeWidth:1.5})}exports.ErrorIcon=f;exports.Root=m;exports.SuccessIcon=d;
2
2
  //# sourceMappingURL=form-status.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"form-status.cjs","sources":["../src/components/form-status/primitives/form-status-root.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type FormStatusRootProps = ComponentProps<'div'> & {\n type?: 'error' | 'success';\n};\n\nexport function FormStatusRoot({ className, type = 'success', ...props }: FormStatusRootProps) {\n return (\n <div\n className={cn(\n // Base layout\n 'flex items-center gap-3',\n // Spacing\n 'px-4 py-3',\n // Typography\n 'text-sm',\n // Borders & Rounded\n 'rounded-xl',\n // Error state\n 'data-[type=error]:bg-[var(--form-status-background-error,color-mix(in_oklab,_hsl(var(--error)),_white_75%))]',\n 'data-[type=error]:text-[var(--form-status-text-error,color-mix(in_oklab,hsl(var(--error)),black_75%))]',\n // Success state\n 'data-[type=success]:bg-[var(--form-status-background-success,color-mix(in_oklab,_hsl(var(--success)),_white_75%))]',\n 'data-[type=success]:text-[var(--form-status-text-success,color-mix(in_oklab,hsl(var(--success)),black_75%))]',\n className,\n )}\n data-type={type}\n {...props}\n />\n );\n}\n"],"names":["FormStatusRoot","className","type","props","jsx","cn"],"mappings":"uJAQO,SAASA,EAAe,CAAE,UAAAC,EAAW,KAAAC,EAAO,UAAW,GAAGC,GAA8B,CAC7F,OACEC,EAAAA,IAAC,MAAA,CACC,UAAWC,EAAAA,GAET,0BAEA,YAEA,UAEA,aAEA,+GACA,yGAEA,qHACA,+GACAJ,CAAA,EAEF,YAAWC,EACV,GAAGC,CAAA,CAAA,CAGV"}
1
+ {"version":3,"file":"form-status.cjs","sources":["../src/components/form-status/primitives/form-status-root.tsx","../src/components/form-status/primitives/form-status-error-icon.tsx","../src/components/form-status/primitives/form-status-success-icon.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nconst formStatusVariants = cva('flex items-center gap-3 rounded-xl px-4 py-3 text-sm', {\n variants: {\n type: {\n error:\n 'bg-[var(--form-status-background-error,color-mix(in_oklab,_var(--error),_white_75%))] [color:var(--form-status-text-error,color-mix(in_oklab,var(--error),black_75%))]',\n success:\n 'bg-[var(--form-status-background-success,color-mix(in_oklab,_var(--success),_white_75%))] [color:var(--form-status-text-success,color-mix(in_oklab,var(--success),black_75%))]',\n },\n },\n defaultVariants: {\n type: 'success',\n },\n});\n\nexport type FormStatusRootProps = ComponentProps<'div'> & VariantProps<typeof formStatusVariants>;\n\nexport function FormStatusRoot({ className, type, ...props }: FormStatusRootProps) {\n return (\n <div\n className={cn(formStatusVariants({ type }), className)}\n data-slot=\"form-status-root\"\n {...props}\n />\n );\n}\n","import { Slot } from '@radix-ui/react-slot';\nimport { CircleAlert } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { cn } from '@/lib';\n\nexport interface FormStatusErrorIconProps {\n asChild?: boolean;\n className?: string;\n children?: ReactNode;\n}\n\nexport function FormStatusErrorIcon({\n asChild = false,\n className,\n children,\n}: FormStatusErrorIconProps) {\n const iconStyles = cn('size-5 shrink-0', className);\n\n if (asChild) {\n return (\n <Slot className={iconStyles} data-slot=\"form-status-error-icon\">\n {children}\n </Slot>\n );\n }\n\n return (\n <CircleAlert\n absoluteStrokeWidth\n className={iconStyles}\n color=\"currentColor\"\n data-slot=\"form-status-error-icon\"\n strokeWidth={1.5}\n />\n );\n}\n","import { Slot } from '@radix-ui/react-slot';\nimport { CheckCircle } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { cn } from '@/lib';\n\nexport interface FormStatusSuccessIconProps {\n asChild?: boolean;\n className?: string;\n children?: ReactNode;\n}\n\nexport function FormStatusSuccessIcon({\n asChild = false,\n className,\n children,\n}: FormStatusSuccessIconProps) {\n const iconStyles = cn('size-5 shrink-0', className);\n\n if (asChild) {\n return (\n <Slot className={iconStyles} data-slot=\"form-status-success-icon\">\n {children}\n </Slot>\n );\n }\n\n return (\n <CheckCircle\n absoluteStrokeWidth\n className={iconStyles}\n color=\"currentColor\"\n data-slot=\"form-status-success-icon\"\n strokeWidth={1.5}\n />\n );\n}\n"],"names":["formStatusVariants","cva","FormStatusRoot","className","type","props","jsx","cn","FormStatusErrorIcon","asChild","children","iconStyles","Slot","CircleAlert","FormStatusSuccessIcon","CheckCircle"],"mappings":"iTAKMA,EAAqBC,EAAAA,IAAI,uDAAwD,CACrF,SAAU,CACR,KAAM,CACJ,MACE,yKACF,QACE,gLAAA,CACJ,EAEF,gBAAiB,CACf,KAAM,SAAA,CAEV,CAAC,EAIM,SAASC,EAAe,CAAE,UAAAC,EAAW,KAAAC,EAAM,GAAGC,GAA8B,CACjF,OACEC,EAAAA,IAAC,MAAA,CACC,UAAWC,EAAAA,GAAGP,EAAmB,CAAE,KAAAI,CAAA,CAAM,EAAGD,CAAS,EACrD,YAAU,mBACT,GAAGE,CAAA,CAAA,CAGV,CCjBO,SAASG,EAAoB,CAClC,QAAAC,EAAU,GACV,UAAAN,EACA,SAAAO,CACF,EAA6B,CAC3B,MAAMC,EAAaJ,EAAAA,GAAG,kBAAmBJ,CAAS,EAElD,OAAIM,QAECG,EAAAA,KAAA,CAAK,UAAWD,EAAY,YAAU,yBACpC,SAAAD,EACH,EAKFJ,EAAAA,IAACO,EAAAA,QAAA,CACC,oBAAmB,GACnB,UAAWF,EACX,MAAM,eACN,YAAU,yBACV,YAAa,GAAA,CAAA,CAGnB,CCxBO,SAASG,EAAsB,CACpC,QAAAL,EAAU,GACV,UAAAN,EACA,SAAAO,CACF,EAA+B,CAC7B,MAAMC,EAAaJ,EAAAA,GAAG,kBAAmBJ,CAAS,EAElD,OAAIM,QAECG,EAAAA,KAAA,CAAK,UAAWD,EAAY,YAAU,2BACpC,SAAAD,EACH,EAKFJ,EAAAA,IAACS,EAAAA,QAAA,CACC,oBAAmB,GACnB,UAAWJ,EACX,MAAM,eACN,YAAU,2BACV,YAAa,GAAA,CAAA,CAGnB"}
@@ -1,32 +1,67 @@
1
1
  import { jsx as a } from "react/jsx-runtime";
2
- import { c as o } from "./utils-CRiPKpXj.js";
3
- function l({ className: r, type: s = "success", ...t }) {
2
+ import { c as i } from "./index-CQhYMnjT.js";
3
+ import { c } from "./utils-CRiPKpXj.js";
4
+ import { S as e } from "./index-DD8W7cMj.js";
5
+ import u from "./circle-alert-DAoN8flz.js";
6
+ import n from "./circle-check-big-CMmJH_cH.js";
7
+ const l = i("flex items-center gap-3 rounded-xl px-4 py-3 text-sm", {
8
+ variants: {
9
+ type: {
10
+ error: "bg-[var(--form-status-background-error,color-mix(in_oklab,_var(--error),_white_75%))] [color:var(--form-status-text-error,color-mix(in_oklab,var(--error),black_75%))]",
11
+ success: "bg-[var(--form-status-background-success,color-mix(in_oklab,_var(--success),_white_75%))] [color:var(--form-status-text-success,color-mix(in_oklab,var(--success),black_75%))]"
12
+ }
13
+ },
14
+ defaultVariants: {
15
+ type: "success"
16
+ }
17
+ });
18
+ function x({ className: r, type: o, ...s }) {
4
19
  return /* @__PURE__ */ a(
5
20
  "div",
6
21
  {
7
- className: o(
8
- // Base layout
9
- "flex items-center gap-3",
10
- // Spacing
11
- "px-4 py-3",
12
- // Typography
13
- "text-sm",
14
- // Borders & Rounded
15
- "rounded-xl",
16
- // Error state
17
- "data-[type=error]:bg-[var(--form-status-background-error,color-mix(in_oklab,_hsl(var(--error)),_white_75%))]",
18
- "data-[type=error]:text-[var(--form-status-text-error,color-mix(in_oklab,hsl(var(--error)),black_75%))]",
19
- // Success state
20
- "data-[type=success]:bg-[var(--form-status-background-success,color-mix(in_oklab,_hsl(var(--success)),_white_75%))]",
21
- "data-[type=success]:text-[var(--form-status-text-success,color-mix(in_oklab,hsl(var(--success)),black_75%))]",
22
- r
23
- ),
24
- "data-type": s,
25
- ...t
22
+ className: c(l({ type: o }), r),
23
+ "data-slot": "form-status-root",
24
+ ...s
25
+ }
26
+ );
27
+ }
28
+ function S({
29
+ asChild: r = !1,
30
+ className: o,
31
+ children: s
32
+ }) {
33
+ const t = c("size-5 shrink-0", o);
34
+ return r ? /* @__PURE__ */ a(e, { className: t, "data-slot": "form-status-error-icon", children: s }) : /* @__PURE__ */ a(
35
+ u,
36
+ {
37
+ absoluteStrokeWidth: !0,
38
+ className: t,
39
+ color: "currentColor",
40
+ "data-slot": "form-status-error-icon",
41
+ strokeWidth: 1.5
42
+ }
43
+ );
44
+ }
45
+ function _({
46
+ asChild: r = !1,
47
+ className: o,
48
+ children: s
49
+ }) {
50
+ const t = c("size-5 shrink-0", o);
51
+ return r ? /* @__PURE__ */ a(e, { className: t, "data-slot": "form-status-success-icon", children: s }) : /* @__PURE__ */ a(
52
+ n,
53
+ {
54
+ absoluteStrokeWidth: !0,
55
+ className: t,
56
+ color: "currentColor",
57
+ "data-slot": "form-status-success-icon",
58
+ strokeWidth: 1.5
26
59
  }
27
60
  );
28
61
  }
29
62
  export {
30
- l as Root
63
+ S as ErrorIcon,
64
+ x as Root,
65
+ _ as SuccessIcon
31
66
  };
32
67
  //# sourceMappingURL=form-status.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"form-status.js","sources":["../src/components/form-status/primitives/form-status-root.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type FormStatusRootProps = ComponentProps<'div'> & {\n type?: 'error' | 'success';\n};\n\nexport function FormStatusRoot({ className, type = 'success', ...props }: FormStatusRootProps) {\n return (\n <div\n className={cn(\n // Base layout\n 'flex items-center gap-3',\n // Spacing\n 'px-4 py-3',\n // Typography\n 'text-sm',\n // Borders & Rounded\n 'rounded-xl',\n // Error state\n 'data-[type=error]:bg-[var(--form-status-background-error,color-mix(in_oklab,_hsl(var(--error)),_white_75%))]',\n 'data-[type=error]:text-[var(--form-status-text-error,color-mix(in_oklab,hsl(var(--error)),black_75%))]',\n // Success state\n 'data-[type=success]:bg-[var(--form-status-background-success,color-mix(in_oklab,_hsl(var(--success)),_white_75%))]',\n 'data-[type=success]:text-[var(--form-status-text-success,color-mix(in_oklab,hsl(var(--success)),black_75%))]',\n className,\n )}\n data-type={type}\n {...props}\n />\n );\n}\n"],"names":["FormStatusRoot","className","type","props","jsx","cn"],"mappings":";;AAQO,SAASA,EAAe,EAAE,WAAAC,GAAW,MAAAC,IAAO,WAAW,GAAGC,KAA8B;AAC7F,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA;AAAA,QAET;AAAA;AAAA,QAEA;AAAA;AAAA,QAEA;AAAA;AAAA,QAEA;AAAA;AAAA,QAEA;AAAA,QACA;AAAA;AAAA,QAEA;AAAA,QACA;AAAA,QACAJ;AAAA,MAAA;AAAA,MAEF,aAAWC;AAAA,MACV,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;"}
1
+ {"version":3,"file":"form-status.js","sources":["../src/components/form-status/primitives/form-status-root.tsx","../src/components/form-status/primitives/form-status-error-icon.tsx","../src/components/form-status/primitives/form-status-success-icon.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nconst formStatusVariants = cva('flex items-center gap-3 rounded-xl px-4 py-3 text-sm', {\n variants: {\n type: {\n error:\n 'bg-[var(--form-status-background-error,color-mix(in_oklab,_var(--error),_white_75%))] [color:var(--form-status-text-error,color-mix(in_oklab,var(--error),black_75%))]',\n success:\n 'bg-[var(--form-status-background-success,color-mix(in_oklab,_var(--success),_white_75%))] [color:var(--form-status-text-success,color-mix(in_oklab,var(--success),black_75%))]',\n },\n },\n defaultVariants: {\n type: 'success',\n },\n});\n\nexport type FormStatusRootProps = ComponentProps<'div'> & VariantProps<typeof formStatusVariants>;\n\nexport function FormStatusRoot({ className, type, ...props }: FormStatusRootProps) {\n return (\n <div\n className={cn(formStatusVariants({ type }), className)}\n data-slot=\"form-status-root\"\n {...props}\n />\n );\n}\n","import { Slot } from '@radix-ui/react-slot';\nimport { CircleAlert } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { cn } from '@/lib';\n\nexport interface FormStatusErrorIconProps {\n asChild?: boolean;\n className?: string;\n children?: ReactNode;\n}\n\nexport function FormStatusErrorIcon({\n asChild = false,\n className,\n children,\n}: FormStatusErrorIconProps) {\n const iconStyles = cn('size-5 shrink-0', className);\n\n if (asChild) {\n return (\n <Slot className={iconStyles} data-slot=\"form-status-error-icon\">\n {children}\n </Slot>\n );\n }\n\n return (\n <CircleAlert\n absoluteStrokeWidth\n className={iconStyles}\n color=\"currentColor\"\n data-slot=\"form-status-error-icon\"\n strokeWidth={1.5}\n />\n );\n}\n","import { Slot } from '@radix-ui/react-slot';\nimport { CheckCircle } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { cn } from '@/lib';\n\nexport interface FormStatusSuccessIconProps {\n asChild?: boolean;\n className?: string;\n children?: ReactNode;\n}\n\nexport function FormStatusSuccessIcon({\n asChild = false,\n className,\n children,\n}: FormStatusSuccessIconProps) {\n const iconStyles = cn('size-5 shrink-0', className);\n\n if (asChild) {\n return (\n <Slot className={iconStyles} data-slot=\"form-status-success-icon\">\n {children}\n </Slot>\n );\n }\n\n return (\n <CheckCircle\n absoluteStrokeWidth\n className={iconStyles}\n color=\"currentColor\"\n data-slot=\"form-status-success-icon\"\n strokeWidth={1.5}\n />\n );\n}\n"],"names":["formStatusVariants","cva","FormStatusRoot","className","type","props","jsx","cn","FormStatusErrorIcon","asChild","children","iconStyles","Slot","CircleAlert","FormStatusSuccessIcon","CheckCircle"],"mappings":";;;;;;AAKA,MAAMA,IAAqBC,EAAI,wDAAwD;AAAA,EACrF,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,OACE;AAAA,MACF,SACE;AAAA,IAAA;AAAA,EACJ;AAAA,EAEF,iBAAiB;AAAA,IACf,MAAM;AAAA,EAAA;AAEV,CAAC;AAIM,SAASC,EAAe,EAAE,WAAAC,GAAW,MAAAC,GAAM,GAAGC,KAA8B;AACjF,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAGP,EAAmB,EAAE,MAAAI,EAAA,CAAM,GAAGD,CAAS;AAAA,MACrD,aAAU;AAAA,MACT,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;ACjBO,SAASG,EAAoB;AAAA,EAClC,SAAAC,IAAU;AAAA,EACV,WAAAN;AAAA,EACA,UAAAO;AACF,GAA6B;AAC3B,QAAMC,IAAaJ,EAAG,mBAAmBJ,CAAS;AAElD,SAAIM,sBAECG,GAAA,EAAK,WAAWD,GAAY,aAAU,0BACpC,UAAAD,GACH,IAKF,gBAAAJ;AAAA,IAACO;AAAA,IAAA;AAAA,MACC,qBAAmB;AAAA,MACnB,WAAWF;AAAA,MACX,OAAM;AAAA,MACN,aAAU;AAAA,MACV,aAAa;AAAA,IAAA;AAAA,EAAA;AAGnB;ACxBO,SAASG,EAAsB;AAAA,EACpC,SAAAL,IAAU;AAAA,EACV,WAAAN;AAAA,EACA,UAAAO;AACF,GAA+B;AAC7B,QAAMC,IAAaJ,EAAG,mBAAmBJ,CAAS;AAElD,SAAIM,sBAECG,GAAA,EAAK,WAAWD,GAAY,aAAU,4BACpC,UAAAD,GACH,IAKF,gBAAAJ;AAAA,IAACS;AAAAA,IAAA;AAAA,MACC,qBAAmB;AAAA,MACnB,WAAWJ;AAAA,MACX,OAAM;AAAA,MACN,aAAU;AAAA,MACV,aAAa;AAAA,IAAA;AAAA,EAAA;AAGnB;"}
package/dist/icon.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),o=require("./utils-DoxiiusW.cjs"),r=require("./skeleton-icon-o8gtDMoj.cjs");function s({className:n,size:e=24}){return t.jsx(r.SkeletonIcon,{className:o.cn("overflow-hidden rounded-full",n),icon:t.jsx("div",{className:"bg-[var(--skeleton,hsl(var(--contrast-300)))] opacity-25",style:{width:e,height:e}})})}exports.Skeleton=s;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),n=require("./utils-DoxiiusW.cjs"),s=require("./skeleton-icon-ChZY8Dj6.cjs");function l({className:o,size:e=24}){return t.jsx(s.SkeletonIcon,{className:n.cn("overflow-hidden rounded-full",o),"data-slot":"icon-skeleton",icon:t.jsx("div",{className:"bg-[var(--skeleton,var(--contrast-300))] opacity-25",style:{width:e,height:e}})})}exports.Skeleton=l;
2
2
  //# sourceMappingURL=icon.cjs.map
package/dist/icon.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"icon.cjs","sources":["../src/components/icon/primitives/icon-skeleton.tsx"],"sourcesContent":["import * as SkeletonPrimitive from '@/components/skeleton';\nimport { cn } from '@/lib';\n\nexport type IconSkeletonProps = Omit<SkeletonPrimitive.IconProps, 'icon'> & {\n size?: number;\n};\n\nexport function IconSkeleton({ className, size = 24 }: IconSkeletonProps) {\n return (\n <SkeletonPrimitive.Icon\n className={cn('overflow-hidden rounded-full', className)}\n icon={\n <div\n className=\"bg-[var(--skeleton,hsl(var(--contrast-300)))] opacity-25\"\n style={{ width: size, height: size }}\n />\n }\n />\n );\n}\n"],"names":["IconSkeleton","className","size","jsx","SkeletonPrimitive.Icon","cn"],"mappings":"iMAOO,SAASA,EAAa,CAAE,UAAAC,EAAW,KAAAC,EAAO,IAAyB,CACxE,OACEC,EAAAA,IAACC,EAAAA,aAAA,CACC,UAAWC,EAAAA,GAAG,+BAAgCJ,CAAS,EACvD,KACEE,EAAAA,IAAC,MAAA,CACC,UAAU,2DACV,MAAO,CAAE,MAAOD,EAAM,OAAQA,CAAA,CAAK,CAAA,CACrC,CAAA,CAIR"}
1
+ {"version":3,"file":"icon.cjs","sources":["../src/components/icon/primitives/icon-skeleton.tsx"],"sourcesContent":["import * as SkeletonPrimitive from '@/components/skeleton';\nimport { cn } from '@/lib';\n\nexport type IconSkeletonProps = Omit<SkeletonPrimitive.IconProps, 'icon'> & {\n size?: number;\n};\n\nexport function IconSkeleton({ className, size = 24 }: IconSkeletonProps) {\n return (\n <SkeletonPrimitive.Icon\n className={cn('overflow-hidden rounded-full', className)}\n data-slot=\"icon-skeleton\"\n icon={\n <div\n className=\"bg-[var(--skeleton,var(--contrast-300))] opacity-25\"\n style={{ width: size, height: size }}\n />\n }\n />\n );\n}\n"],"names":["IconSkeleton","className","size","jsx","SkeletonPrimitive.Icon","cn"],"mappings":"iMAOO,SAASA,EAAa,CAAE,UAAAC,EAAW,KAAAC,EAAO,IAAyB,CACxE,OACEC,EAAAA,IAACC,EAAAA,aAAA,CACC,UAAWC,EAAAA,GAAG,+BAAgCJ,CAAS,EACvD,YAAU,gBACV,KACEE,EAAAA,IAAC,MAAA,CACC,UAAU,sDACV,MAAO,CAAE,MAAOD,EAAM,OAAQA,CAAA,CAAK,CAAA,CACrC,CAAA,CAIR"}
package/dist/icon.js CHANGED
@@ -1,15 +1,16 @@
1
- import { jsx as e } from "react/jsx-runtime";
1
+ import { jsx as t } from "react/jsx-runtime";
2
2
  import { c as n } from "./utils-CRiPKpXj.js";
3
- import { S as r } from "./skeleton-icon-Cm6f9u-Z.js";
4
- function c({ className: t, size: o = 24 }) {
5
- return /* @__PURE__ */ e(
3
+ import { S as r } from "./skeleton-icon-B8EIcgT0.js";
4
+ function c({ className: e, size: o = 24 }) {
5
+ return /* @__PURE__ */ t(
6
6
  r,
7
7
  {
8
- className: n("overflow-hidden rounded-full", t),
9
- icon: /* @__PURE__ */ e(
8
+ className: n("overflow-hidden rounded-full", e),
9
+ "data-slot": "icon-skeleton",
10
+ icon: /* @__PURE__ */ t(
10
11
  "div",
11
12
  {
12
- className: "bg-[var(--skeleton,hsl(var(--contrast-300)))] opacity-25",
13
+ className: "bg-[var(--skeleton,var(--contrast-300))] opacity-25",
13
14
  style: { width: o, height: o }
14
15
  }
15
16
  )
package/dist/icon.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"icon.js","sources":["../src/components/icon/primitives/icon-skeleton.tsx"],"sourcesContent":["import * as SkeletonPrimitive from '@/components/skeleton';\nimport { cn } from '@/lib';\n\nexport type IconSkeletonProps = Omit<SkeletonPrimitive.IconProps, 'icon'> & {\n size?: number;\n};\n\nexport function IconSkeleton({ className, size = 24 }: IconSkeletonProps) {\n return (\n <SkeletonPrimitive.Icon\n className={cn('overflow-hidden rounded-full', className)}\n icon={\n <div\n className=\"bg-[var(--skeleton,hsl(var(--contrast-300)))] opacity-25\"\n style={{ width: size, height: size }}\n />\n }\n />\n );\n}\n"],"names":["IconSkeleton","className","size","jsx","SkeletonPrimitive.Icon","cn"],"mappings":";;;AAOO,SAASA,EAAa,EAAE,WAAAC,GAAW,MAAAC,IAAO,MAAyB;AACxE,SACE,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAWC,EAAG,gCAAgCJ,CAAS;AAAA,MACvD,MACE,gBAAAE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,OAAO,EAAE,OAAOD,GAAM,QAAQA,EAAA;AAAA,QAAK;AAAA,MAAA;AAAA,IACrC;AAAA,EAAA;AAIR;"}
1
+ {"version":3,"file":"icon.js","sources":["../src/components/icon/primitives/icon-skeleton.tsx"],"sourcesContent":["import * as SkeletonPrimitive from '@/components/skeleton';\nimport { cn } from '@/lib';\n\nexport type IconSkeletonProps = Omit<SkeletonPrimitive.IconProps, 'icon'> & {\n size?: number;\n};\n\nexport function IconSkeleton({ className, size = 24 }: IconSkeletonProps) {\n return (\n <SkeletonPrimitive.Icon\n className={cn('overflow-hidden rounded-full', className)}\n data-slot=\"icon-skeleton\"\n icon={\n <div\n className=\"bg-[var(--skeleton,var(--contrast-300))] opacity-25\"\n style={{ width: size, height: size }}\n />\n }\n />\n );\n}\n"],"names":["IconSkeleton","className","size","jsx","SkeletonPrimitive.Icon","cn"],"mappings":";;;AAOO,SAASA,EAAa,EAAE,WAAAC,GAAW,MAAAC,IAAO,MAAyB;AACxE,SACE,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAWC,EAAG,gCAAgCJ,CAAS;AAAA,MACvD,aAAU;AAAA,MACV,MACE,gBAAAE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,OAAO,EAAE,OAAOD,GAAM,QAAQA,EAAA;AAAA,QAAK;AAAA,MAAA;AAAA,IACrC;AAAA,EAAA;AAIR;"}
@@ -0,0 +1,35 @@
1
+ import { a as O } from "./utils-CRiPKpXj.js";
2
+ const m = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, y = O, j = (e, l) => (n) => {
3
+ var u;
4
+ if (l?.variants == null) return y(e, n?.class, n?.className);
5
+ const { variants: r, defaultVariants: d } = l, V = Object.keys(r).map((t) => {
6
+ const a = n?.[t], s = d?.[t];
7
+ if (a === null) return null;
8
+ const i = m(a) || m(s);
9
+ return r[t][i];
10
+ }), v = n && Object.entries(n).reduce((t, a) => {
11
+ let [s, i] = a;
12
+ return i === void 0 || (t[s] = i), t;
13
+ }, {}), N = l == null || (u = l.compoundVariants) === null || u === void 0 ? void 0 : u.reduce((t, a) => {
14
+ let { class: s, className: i, ...f } = a;
15
+ return Object.entries(f).every((C) => {
16
+ let [c, o] = C;
17
+ return Array.isArray(o) ? o.includes({
18
+ ...d,
19
+ ...v
20
+ }[c]) : {
21
+ ...d,
22
+ ...v
23
+ }[c] === o;
24
+ }) ? [
25
+ ...t,
26
+ s,
27
+ i
28
+ ] : t;
29
+ }, []);
30
+ return y(e, V, N, n?.class, n?.className);
31
+ };
32
+ export {
33
+ j as c
34
+ };
35
+ //# sourceMappingURL=index-CQhYMnjT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-CQhYMnjT.js","sources":["../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs"],"sourcesContent":["/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n"],"names":["falsyToString","value","cx","clsx","cva","base","config","props","_config_compoundVariants","variants","defaultVariants","getVariantClassNames","variant","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","key","getCompoundVariantClassNames","cvClass","cvClassName","compoundVariantOptions"],"mappings":";AAeA,MAAMA,IAAgB,CAACC,MAAQ,OAAOA,KAAU,YAAY,GAAGA,CAAK,KAAKA,MAAU,IAAI,MAAMA,GAChFC,IAAKC,GACLC,IAAM,CAACC,GAAMC,MAAS,CAACC,MAAQ;AACpC,MAAIC;AACJ,MAAqDF,GAAO,YAAa,KAAM,QAAOJ,EAAGG,GAAoDE,GAAM,OAAqDA,GAAM,SAAS;AACvN,QAAM,EAAE,UAAAE,GAAU,iBAAAC,EAAe,IAAKJ,GAChCK,IAAuB,OAAO,KAAKF,CAAQ,EAAE,IAAI,CAACG,MAAU;AAC9D,UAAMC,IAA4DN,IAAMK,CAAO,GACzEE,IAAuFJ,IAAgBE,CAAO;AACpH,QAAIC,MAAgB,KAAM,QAAO;AACjC,UAAME,IAAaf,EAAca,CAAW,KAAKb,EAAcc,CAAkB;AACjF,WAAOL,EAASG,CAAO,EAAEG,CAAU;AAAA,EACvC,CAAC,GACKC,IAAwBT,KAAS,OAAO,QAAQA,CAAK,EAAE,OAAO,CAACU,GAAKC,MAAQ;AAC9E,QAAI,CAACC,GAAKlB,CAAK,IAAIiB;AACnB,WAAIjB,MAAU,WAGdgB,EAAIE,CAAG,IAAIlB,IACJgB;AAAA,EACX,GAAG,CAAA,CAAE,GACCG,IAA+Bd,KAAW,SAAsCE,IAA2BF,EAAO,sBAAsB,QAAQE,MAA6B,SAAvG,SAAyHA,EAAyB,OAAO,CAACS,GAAKC,MAAQ;AAC/O,QAAI,EAAE,OAAOG,GAAS,WAAWC,GAAa,GAAGC,EAAsB,IAAKL;AAC5E,WAAO,OAAO,QAAQK,CAAsB,EAAE,MAAM,CAACL,MAAQ;AACzD,UAAI,CAACC,GAAKlB,CAAK,IAAIiB;AACnB,aAAO,MAAM,QAAQjB,CAAK,IAAIA,EAAM,SAAS;AAAA,QACzC,GAAGS;AAAA,QACH,GAAGM;AAAA,MACvB,EAAkBG,CAAG,CAAC,IAAK;AAAA,QACP,GAAGT;AAAA,QACH,GAAGM;AAAA,MACvB,EAAmBG,CAAG,MAAMlB;AAAA,IAChB,CAAC,IAAI;AAAA,MACD,GAAGgB;AAAA,MACHI;AAAA,MACAC;AAAA,IAChB,IAAgBL;AAAA,EACR,GAAG,CAAA,CAAE;AACL,SAAOf,EAAGG,GAAMM,GAAsBS,GAA4Eb,GAAM,OAAqDA,GAAM,SAAS;AAChM;","x_google_ignoreList":[0]}
@@ -0,0 +1,2 @@
1
+ "use strict";const O=require("./utils-DoxiiusW.cjs"),m=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,y=O.clsx,b=(e,l)=>n=>{var d;if(l?.variants==null)return y(e,n?.class,n?.className);const{variants:o,defaultVariants:s}=l,V=Object.keys(o).map(t=>{const a=n?.[t],u=s?.[t];if(a===null)return null;const i=m(a)||m(u);return o[t][i]}),v=n&&Object.entries(n).reduce((t,a)=>{let[u,i]=a;return i===void 0||(t[u]=i),t},{}),N=l==null||(d=l.compoundVariants)===null||d===void 0?void 0:d.reduce((t,a)=>{let{class:u,className:i,...C}=a;return Object.entries(C).every(f=>{let[c,r]=f;return Array.isArray(r)?r.includes({...s,...v}[c]):{...s,...v}[c]===r})?[...t,u,i]:t},[]);return y(e,V,N,n?.class,n?.className)};exports.cva=b;
2
+ //# sourceMappingURL=index-iAvn1gzj.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-iAvn1gzj.cjs","sources":["../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs"],"sourcesContent":["/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n"],"names":["falsyToString","value","cx","clsx","cva","base","config","props","_config_compoundVariants","variants","defaultVariants","getVariantClassNames","variant","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","key","getCompoundVariantClassNames","cvClass","cvClassName","compoundVariantOptions"],"mappings":"qDAeMA,EAAiBC,GAAQ,OAAOA,GAAU,UAAY,GAAGA,CAAK,GAAKA,IAAU,EAAI,IAAMA,EAChFC,EAAKC,EAAAA,KACLC,EAAM,CAACC,EAAMC,IAAUC,GAAQ,CACpC,IAAIC,EACJ,GAAqDF,GAAO,UAAa,KAAM,OAAOJ,EAAGG,EAAoDE,GAAM,MAAqDA,GAAM,SAAS,EACvN,KAAM,CAAE,SAAAE,EAAU,gBAAAC,CAAe,EAAKJ,EAChCK,EAAuB,OAAO,KAAKF,CAAQ,EAAE,IAAKG,GAAU,CAC9D,MAAMC,EAA4DN,IAAMK,CAAO,EACzEE,EAAuFJ,IAAgBE,CAAO,EACpH,GAAIC,IAAgB,KAAM,OAAO,KACjC,MAAME,EAAaf,EAAca,CAAW,GAAKb,EAAcc,CAAkB,EACjF,OAAOL,EAASG,CAAO,EAAEG,CAAU,CACvC,CAAC,EACKC,EAAwBT,GAAS,OAAO,QAAQA,CAAK,EAAE,OAAO,CAACU,EAAKC,IAAQ,CAC9E,GAAI,CAACC,EAAKlB,CAAK,EAAIiB,EACnB,OAAIjB,IAAU,SAGdgB,EAAIE,CAAG,EAAIlB,GACJgB,CACX,EAAG,CAAA,CAAE,EACCG,EAA+Bd,GAAW,OAAsCE,EAA2BF,EAAO,oBAAsB,MAAQE,IAA6B,OAAvG,OAAyHA,EAAyB,OAAO,CAACS,EAAKC,IAAQ,CAC/O,GAAI,CAAE,MAAOG,EAAS,UAAWC,EAAa,GAAGC,CAAsB,EAAKL,EAC5E,OAAO,OAAO,QAAQK,CAAsB,EAAE,MAAOL,GAAQ,CACzD,GAAI,CAACC,EAAKlB,CAAK,EAAIiB,EACnB,OAAO,MAAM,QAAQjB,CAAK,EAAIA,EAAM,SAAS,CACzC,GAAGS,EACH,GAAGM,CACvB,EAAkBG,CAAG,CAAC,EAAK,CACP,GAAGT,EACH,GAAGM,CACvB,EAAmBG,CAAG,IAAMlB,CAChB,CAAC,EAAI,CACD,GAAGgB,EACHI,EACAC,CAChB,EAAgBL,CACR,EAAG,CAAA,CAAE,EACL,OAAOf,EAAGG,EAAMM,EAAsBS,EAA4Eb,GAAM,MAAqDA,GAAM,SAAS,CAChM","x_google_ignoreList":[0]}