commerce-toolkit 0.7.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/{accordion-trigger-DFuN29lS.js → accordion-trigger-BldJXbcx.js} +84 -77
- package/dist/accordion-trigger-BldJXbcx.js.map +1 -0
- package/dist/accordion-trigger-CTRtqYib.cjs +2 -0
- package/dist/{accordion-trigger-CpTcclGS.cjs.map → accordion-trigger-CTRtqYib.cjs.map} +1 -1
- package/dist/accordion.cjs +1 -1
- package/dist/accordion.js +1 -1
- package/dist/alert-dismiss-BjoD9zXP.js +130 -0
- package/dist/alert-dismiss-BjoD9zXP.js.map +1 -0
- package/dist/alert-dismiss-eEf1SmhO.cjs +2 -0
- package/dist/alert-dismiss-eEf1SmhO.cjs.map +1 -0
- package/dist/alert.cjs +1 -1
- package/dist/alert.js +1 -1
- package/dist/arrow-left-ANjqfZPv.js +16 -0
- package/dist/arrow-left-ANjqfZPv.js.map +1 -0
- package/dist/arrow-left-Dc7Mn1vO.cjs +7 -0
- package/dist/arrow-left-Dc7Mn1vO.cjs.map +1 -0
- package/dist/arrow-right-Dx01QsJW.cjs +7 -0
- package/dist/arrow-right-Dx01QsJW.cjs.map +1 -0
- package/dist/arrow-right-u33nJuCL.js +16 -0
- package/dist/arrow-right-u33nJuCL.js.map +1 -0
- package/dist/banner-dismiss-ByGLVUf4.cjs +2 -0
- package/dist/banner-dismiss-ByGLVUf4.cjs.map +1 -0
- package/dist/banner-dismiss-DC0spaA2.js +106 -0
- package/dist/banner-dismiss-DC0spaA2.js.map +1 -0
- package/dist/banner.cjs +1 -1
- package/dist/banner.js +2 -3
- package/dist/{blog-post-card-author-VkGle9g8.js → blog-post-card-author-DR_GIlFf.js} +56 -52
- package/dist/blog-post-card-author-DR_GIlFf.js.map +1 -0
- package/dist/blog-post-card-author-LoHfdwYY.cjs +2 -0
- package/dist/blog-post-card-author-LoHfdwYY.cjs.map +1 -0
- package/dist/blog-post-card.cjs +1 -1
- package/dist/blog-post-card.cjs.map +1 -1
- package/dist/blog-post-card.js +38 -30
- package/dist/blog-post-card.js.map +1 -1
- package/dist/breadcrumbs.cjs +2 -0
- package/dist/breadcrumbs.cjs.map +1 -0
- package/dist/breadcrumbs.js +90 -0
- package/dist/breadcrumbs.js.map +1 -0
- package/dist/button-D0viptzn.js +134 -0
- package/dist/button-D0viptzn.js.map +1 -0
- package/dist/button-bfAfHC_O.cjs +2 -0
- package/dist/button-bfAfHC_O.cjs.map +1 -0
- package/dist/button-link-DyOjXaM6.cjs +2 -0
- package/dist/button-link-DyOjXaM6.cjs.map +1 -0
- package/dist/button-link-KFt37w0p.js +32 -0
- package/dist/button-link-KFt37w0p.js.map +1 -0
- package/dist/button-loader-icon-BMHs6rYA.js +23 -0
- package/dist/button-loader-icon-BMHs6rYA.js.map +1 -0
- package/dist/button-loader-icon-C9L2M_EA.cjs +7 -0
- package/dist/button-loader-icon-C9L2M_EA.cjs.map +1 -0
- package/dist/button-radio-group.cjs +1 -1
- package/dist/button-radio-group.cjs.map +1 -1
- package/dist/button-radio-group.js +13 -31
- package/dist/button-radio-group.js.map +1 -1
- package/dist/button.cjs +2 -0
- package/dist/button.cjs.map +1 -0
- package/dist/button.js +5 -0
- package/dist/button.js.map +1 -0
- package/dist/calendar-CRD3qYHr.js +2886 -0
- package/dist/calendar-CRD3qYHr.js.map +1 -0
- package/dist/calendar-Db8gL2Eb.cjs +2 -0
- package/dist/calendar-Db8gL2Eb.cjs.map +1 -0
- package/dist/calendar-dropdown-icon-DUw1T2iH.js +58 -0
- package/dist/calendar-dropdown-icon-DUw1T2iH.js.map +1 -0
- package/dist/calendar-dropdown-icon-Vk-oA3CF.cjs +7 -0
- package/dist/calendar-dropdown-icon-Vk-oA3CF.cjs.map +1 -0
- package/dist/calendar.cjs +2 -0
- package/dist/calendar.cjs.map +1 -0
- package/dist/calendar.js +7 -0
- package/dist/calendar.js.map +1 -0
- package/dist/card-link-CS3zwUEd.cjs +2 -0
- package/dist/card-link-CS3zwUEd.cjs.map +1 -0
- package/dist/{card-link-C48N1y5C.js → card-link-D9mHN6-Z.js} +11 -8
- package/dist/card-link-D9mHN6-Z.js.map +1 -0
- package/dist/card-radio-group.cjs +1 -1
- package/dist/card-radio-group.cjs.map +1 -1
- package/dist/card-radio-group.js +49 -40
- package/dist/card-radio-group.js.map +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.cjs.map +1 -1
- package/dist/card.js +9 -9
- package/dist/card.js.map +1 -1
- package/dist/carousel-next-icon--YmTPwxE.js +1516 -0
- package/dist/carousel-next-icon--YmTPwxE.js.map +1 -0
- package/dist/carousel-next-icon-Bdjj_UKN.cjs +2 -0
- package/dist/carousel-next-icon-Bdjj_UKN.cjs.map +1 -0
- package/dist/carousel.cjs +1 -1
- package/dist/carousel.js +9 -7
- package/dist/category-card-link-B7MMGsnN.cjs +7 -0
- package/dist/category-card-link-B7MMGsnN.cjs.map +1 -0
- package/dist/{category-card-link-D85RfMpf.js → category-card-link-DZ2CRf4d.js} +88 -63
- package/dist/category-card-link-DZ2CRf4d.js.map +1 -0
- package/dist/category-card.cjs +1 -1
- package/dist/category-card.cjs.map +1 -1
- package/dist/category-card.js +4 -4
- package/dist/category-card.js.map +1 -1
- package/dist/checkbox-CsMLn53r.js +9 -0
- package/dist/checkbox-CsMLn53r.js.map +1 -0
- package/dist/checkbox-aVfjxtZs.cjs +2 -0
- package/dist/checkbox-aVfjxtZs.cjs.map +1 -0
- package/dist/checkbox-group.cjs +1 -1
- package/dist/checkbox-group.cjs.map +1 -1
- package/dist/checkbox-group.js +27 -11
- package/dist/checkbox-group.js.map +1 -1
- package/dist/checkbox-icon-C7n5s-1e.js +298 -0
- package/dist/checkbox-icon-C7n5s-1e.js.map +1 -0
- package/dist/checkbox-icon-iPH7tHCy.cjs +2 -0
- package/dist/checkbox-icon-iPH7tHCy.cjs.map +1 -0
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +3 -2
- package/dist/chevron-down-BDpc8q6H.cjs +7 -0
- package/dist/chevron-down-BDpc8q6H.cjs.map +1 -0
- package/dist/chevron-down-CjW8zgR8.js +13 -0
- package/dist/chevron-down-CjW8zgR8.js.map +1 -0
- package/dist/chevron-right-D4mEt25m.cjs +7 -0
- package/dist/chevron-right-D4mEt25m.cjs.map +1 -0
- package/dist/chevron-right-DF8msc7r.js +13 -0
- package/dist/chevron-right-DF8msc7r.js.map +1 -0
- package/dist/chip-icon-BY7YKgGe.cjs +2 -0
- package/dist/chip-icon-BY7YKgGe.cjs.map +1 -0
- package/dist/chip-icon-y9Dl_zV2.js +46 -0
- package/dist/chip-icon-y9Dl_zV2.js.map +1 -0
- package/dist/chip.cjs +1 -1
- package/dist/chip.js +4 -3
- package/dist/circle-alert-BlXmMk3i.cjs +7 -0
- package/dist/circle-alert-BlXmMk3i.cjs.map +1 -0
- package/dist/circle-alert-DAoN8flz.js +17 -0
- package/dist/circle-alert-DAoN8flz.js.map +1 -0
- package/dist/compare-card-reveal-BJuFVrlm.cjs +2 -0
- package/dist/compare-card-reveal-BJuFVrlm.cjs.map +1 -0
- package/dist/compare-card-reveal-COfodCGj.js +277 -0
- package/dist/compare-card-reveal-COfodCGj.js.map +1 -0
- package/dist/compare-card.cjs +1 -1
- package/dist/compare-card.cjs.map +1 -1
- package/dist/compare-card.js +30 -37
- package/dist/compare-card.js.map +1 -1
- package/dist/compare-drawer-submit-BMx3dFzr.js +230 -0
- package/dist/compare-drawer-submit-BMx3dFzr.js.map +1 -0
- package/dist/compare-drawer-submit-CMjU9BdS.cjs +2 -0
- package/dist/compare-drawer-submit-CMjU9BdS.cjs.map +1 -0
- package/dist/compare-drawer.cjs +1 -1
- package/dist/compare-drawer.js +12 -9
- package/dist/components/accordion/accordion.d.ts +3 -4
- package/dist/components/accordion/accordion.d.ts.map +1 -1
- package/dist/components/accordion/primitives/accordion-chevron.d.ts.map +1 -1
- package/dist/components/accordion/primitives/accordion-item.d.ts.map +1 -1
- package/dist/components/accordion/primitives/accordion-title.d.ts.map +1 -1
- package/dist/components/alert/alert.d.ts +7 -7
- package/dist/components/alert/primitives/alert-actions.d.ts.map +1 -1
- package/dist/components/alert/primitives/alert-header.d.ts.map +1 -1
- package/dist/components/alert/primitives/alert-root.d.ts +5 -3
- package/dist/components/alert/primitives/alert-root.d.ts.map +1 -1
- package/dist/components/animated-underline/animated-underline.d.ts +2 -2
- package/dist/components/animated-underline/animated-underline.d.ts.map +1 -1
- package/dist/components/badge/badge.d.ts +14 -11
- package/dist/components/badge/badge.d.ts.map +1 -1
- package/dist/components/badge/index.d.ts +1 -1
- package/dist/components/badge/index.d.ts.map +1 -1
- package/dist/components/banner/banner.d.ts +7 -8
- package/dist/components/banner/banner.d.ts.map +1 -1
- package/dist/components/banner/primitives/banner-content.d.ts +1 -1
- package/dist/components/banner/primitives/banner-content.d.ts.map +1 -1
- package/dist/components/banner/primitives/banner-dismiss.d.ts.map +1 -1
- package/dist/components/banner/primitives/banner-root.d.ts +15 -2
- package/dist/components/banner/primitives/banner-root.d.ts.map +1 -1
- package/dist/components/banner/primitives.d.ts +1 -2
- package/dist/components/banner/primitives.d.ts.map +1 -1
- package/dist/components/blog-post-card/blog-post-card.d.ts +8 -8
- package/dist/components/blog-post-card/primitives/blog-post-card-author.d.ts.map +1 -1
- package/dist/components/blog-post-card/primitives/blog-post-card-fallback.d.ts.map +1 -1
- package/dist/components/blog-post-card/primitives/blog-post-card-image.d.ts.map +1 -1
- package/dist/components/blog-post-card/primitives/blog-post-card-link.d.ts.map +1 -1
- package/dist/components/blog-post-card/primitives/blog-post-card-skeleton.d.ts.map +1 -1
- package/dist/components/breadcrumbs/breadcrumbs.d.ts +32 -0
- package/dist/components/breadcrumbs/breadcrumbs.d.ts.map +1 -0
- package/dist/components/breadcrumbs/index.d.ts +3 -0
- package/dist/components/breadcrumbs/index.d.ts.map +1 -0
- package/dist/components/breadcrumbs/primitives/breadcrumbs-current.d.ts +4 -0
- package/dist/components/breadcrumbs/primitives/breadcrumbs-current.d.ts.map +1 -0
- package/dist/components/breadcrumbs/primitives/breadcrumbs-icon.d.ts +8 -0
- package/dist/components/breadcrumbs/primitives/breadcrumbs-icon.d.ts.map +1 -0
- package/dist/components/breadcrumbs/primitives/breadcrumbs-item.d.ts +4 -0
- package/dist/components/breadcrumbs/primitives/breadcrumbs-item.d.ts.map +1 -0
- package/dist/components/breadcrumbs/primitives/breadcrumbs-link.d.ts +6 -0
- package/dist/components/breadcrumbs/primitives/breadcrumbs-link.d.ts.map +1 -0
- package/dist/components/breadcrumbs/primitives/breadcrumbs-list.d.ts +4 -0
- package/dist/components/breadcrumbs/primitives/breadcrumbs-list.d.ts.map +1 -0
- package/dist/components/breadcrumbs/primitives/breadcrumbs-root.d.ts +4 -0
- package/dist/components/breadcrumbs/primitives/breadcrumbs-root.d.ts.map +1 -0
- package/dist/components/breadcrumbs/primitives.d.ts +7 -0
- package/dist/components/breadcrumbs/primitives.d.ts.map +1 -0
- package/dist/components/button/button.d.ts +38 -27
- package/dist/components/button/button.d.ts.map +1 -1
- package/dist/components/button/index.d.ts +2 -1
- package/dist/components/button/index.d.ts.map +1 -1
- package/dist/components/button/primitives/button-loader-icon.d.ts +8 -0
- package/dist/components/button/primitives/button-loader-icon.d.ts.map +1 -0
- package/dist/components/button/primitives.d.ts +2 -0
- package/dist/components/button/primitives.d.ts.map +1 -0
- package/dist/components/button-link/button-link.d.ts +6 -29
- package/dist/components/button-link/button-link.d.ts.map +1 -1
- package/dist/components/button-radio-group/button-radio-group.d.ts +1 -1
- package/dist/components/button-radio-group/primitives/button-radio-group-item.d.ts.map +1 -1
- package/dist/components/button-radio-group/primitives/button-radio-group-root.d.ts.map +1 -1
- package/dist/components/calendar/calendar.d.ts +18 -10
- package/dist/components/calendar/calendar.d.ts.map +1 -1
- package/dist/components/calendar/index.d.ts +1 -0
- package/dist/components/calendar/index.d.ts.map +1 -1
- package/dist/components/calendar/primitives/calendar-dropdown-icon.d.ts +8 -0
- package/dist/components/calendar/primitives/calendar-dropdown-icon.d.ts.map +1 -0
- package/dist/components/calendar/primitives/calendar-next-icon.d.ts +8 -0
- package/dist/components/calendar/primitives/calendar-next-icon.d.ts.map +1 -0
- package/dist/components/calendar/primitives/calendar-prev-icon.d.ts +8 -0
- package/dist/components/calendar/primitives/calendar-prev-icon.d.ts.map +1 -0
- package/dist/components/calendar/primitives.d.ts +4 -0
- package/dist/components/calendar/primitives.d.ts.map +1 -0
- package/dist/components/card/card.d.ts +13 -9
- package/dist/components/card/card.d.ts.map +1 -1
- package/dist/components/card/primitives/card-root.d.ts +2 -2
- package/dist/components/card/primitives/card-root.d.ts.map +1 -1
- package/dist/components/card-radio-group/card-radio-group.d.ts +4 -2
- package/dist/components/card-radio-group/card-radio-group.d.ts.map +1 -1
- package/dist/components/card-radio-group/primitives/card-radio-group-image.d.ts.map +1 -1
- package/dist/components/card-radio-group/primitives/card-radio-group-item.d.ts.map +1 -1
- package/dist/components/card-radio-group/primitives/card-radio-group-label.d.ts.map +1 -1
- package/dist/components/card-radio-group/primitives/card-radio-group-thumbnail.d.ts.map +1 -1
- package/dist/components/carousel/carousel.d.ts +14 -6
- package/dist/components/carousel/carousel.d.ts.map +1 -1
- package/dist/components/carousel/primitives/carousel-next-icon.d.ts +8 -0
- package/dist/components/carousel/primitives/carousel-next-icon.d.ts.map +1 -0
- package/dist/components/carousel/primitives/carousel-next.d.ts.map +1 -1
- package/dist/components/carousel/primitives/carousel-prev-icon.d.ts +8 -0
- package/dist/components/carousel/primitives/carousel-prev-icon.d.ts.map +1 -0
- package/dist/components/carousel/primitives/carousel-prev.d.ts.map +1 -1
- package/dist/components/carousel/primitives/carousel-scrollbar.d.ts +1 -1
- package/dist/components/carousel/primitives/carousel-scrollbar.d.ts.map +1 -1
- package/dist/components/carousel/primitives.d.ts +2 -0
- package/dist/components/carousel/primitives.d.ts.map +1 -1
- package/dist/components/category-card/category-card.d.ts +21 -10
- package/dist/components/category-card/category-card.d.ts.map +1 -1
- package/dist/components/category-card/primitives/category-card-fallback.d.ts.map +1 -1
- package/dist/components/category-card/primitives/category-card-icon.d.ts +7 -4
- package/dist/components/category-card/primitives/category-card-icon.d.ts.map +1 -1
- package/dist/components/category-card/primitives/category-card-link.d.ts.map +1 -1
- package/dist/components/category-card/primitives/category-card-root.d.ts +3 -1
- package/dist/components/category-card/primitives/category-card-root.d.ts.map +1 -1
- package/dist/components/category-card/primitives/category-card-thumbnail.d.ts.map +1 -1
- package/dist/components/category-card/primitives/category-card-title.d.ts.map +1 -1
- package/dist/components/checkbox/checkbox.d.ts +7 -5
- package/dist/components/checkbox/checkbox.d.ts.map +1 -1
- package/dist/components/checkbox/primitives/checkbox-icon.d.ts +8 -0
- package/dist/components/checkbox/primitives/checkbox-icon.d.ts.map +1 -0
- package/dist/components/checkbox/primitives/checkbox-root.d.ts.map +1 -1
- package/dist/components/checkbox/primitives.d.ts +1 -0
- package/dist/components/checkbox/primitives.d.ts.map +1 -1
- package/dist/components/checkbox-group/checkbox-group.d.ts +10 -1
- package/dist/components/checkbox-group/checkbox-group.d.ts.map +1 -1
- package/dist/components/checkbox-group/primitives/checkbox-group-checkbox.d.ts +5 -0
- package/dist/components/checkbox-group/primitives/checkbox-group-checkbox.d.ts.map +1 -0
- package/dist/components/checkbox-group/primitives/checkbox-group-field-item.d.ts +5 -0
- package/dist/components/checkbox-group/primitives/checkbox-group-field-item.d.ts.map +1 -0
- package/dist/components/checkbox-group/primitives/checkbox-group-label.d.ts +5 -0
- package/dist/components/checkbox-group/primitives/checkbox-group-label.d.ts.map +1 -0
- package/dist/components/checkbox-group/primitives.d.ts +3 -1
- package/dist/components/checkbox-group/primitives.d.ts.map +1 -1
- package/dist/components/chip/chip.d.ts +10 -6
- package/dist/components/chip/chip.d.ts.map +1 -1
- package/dist/components/chip/primitives/chip-button.d.ts +5 -3
- package/dist/components/chip/primitives/chip-button.d.ts.map +1 -1
- package/dist/components/chip/primitives/chip-icon.d.ts +8 -0
- package/dist/components/chip/primitives/chip-icon.d.ts.map +1 -0
- package/dist/components/chip/primitives/chip-root.d.ts.map +1 -1
- package/dist/components/chip/primitives.d.ts +1 -0
- package/dist/components/chip/primitives.d.ts.map +1 -1
- package/dist/components/compare-card/compare-card.d.ts +11 -25
- package/dist/components/compare-card/compare-card.d.ts.map +1 -1
- package/dist/components/compare-card/primitives/compare-card-product-card.d.ts +5 -0
- package/dist/components/compare-card/primitives/compare-card-product-card.d.ts.map +1 -0
- package/dist/components/compare-card/primitives/compare-card-reveal.d.ts +5 -0
- package/dist/components/compare-card/primitives/compare-card-reveal.d.ts.map +1 -0
- package/dist/components/compare-card/primitives.d.ts +3 -7
- package/dist/components/compare-card/primitives.d.ts.map +1 -1
- package/dist/components/compare-drawer/compare-drawer.d.ts +16 -3
- package/dist/components/compare-drawer/compare-drawer.d.ts.map +1 -1
- package/dist/components/compare-drawer/primitives/compare-drawer-fallback.d.ts +2 -2
- package/dist/components/compare-drawer/primitives/compare-drawer-fallback.d.ts.map +1 -1
- package/dist/components/compare-drawer/primitives/compare-drawer-image.d.ts +2 -2
- package/dist/components/compare-drawer/primitives/compare-drawer-image.d.ts.map +1 -1
- package/dist/components/compare-drawer/primitives/compare-drawer-item.d.ts.map +1 -1
- package/dist/components/compare-drawer/primitives/compare-drawer-link.d.ts.map +1 -1
- package/dist/components/compare-drawer/primitives/compare-drawer-remove-icon.d.ts +8 -0
- package/dist/components/compare-drawer/primitives/compare-drawer-remove-icon.d.ts.map +1 -0
- package/dist/components/compare-drawer/primitives/compare-drawer-remove.d.ts.map +1 -1
- package/dist/components/compare-drawer/primitives/compare-drawer-submit-icon.d.ts +9 -0
- package/dist/components/compare-drawer/primitives/compare-drawer-submit-icon.d.ts.map +1 -0
- package/dist/components/compare-drawer/primitives/compare-drawer-submit.d.ts +10 -0
- package/dist/components/compare-drawer/primitives/compare-drawer-submit.d.ts.map +1 -0
- package/dist/components/compare-drawer/primitives.d.ts +3 -0
- package/dist/components/compare-drawer/primitives.d.ts.map +1 -1
- package/dist/components/counter/counter.d.ts +19 -11
- package/dist/components/counter/counter.d.ts.map +1 -1
- package/dist/components/counter/primitives/counter-decrease-icon.d.ts +8 -0
- package/dist/components/counter/primitives/counter-decrease-icon.d.ts.map +1 -0
- package/dist/components/counter/primitives/counter-decrease.d.ts.map +1 -1
- package/dist/components/counter/primitives/counter-increase-icon.d.ts +8 -0
- package/dist/components/counter/primitives/counter-increase-icon.d.ts.map +1 -0
- package/dist/components/counter/primitives/counter-increase.d.ts.map +1 -1
- package/dist/components/counter/primitives/counter-input.d.ts.map +1 -1
- package/dist/components/counter/primitives/counter-root.d.ts.map +1 -1
- package/dist/components/counter/primitives.d.ts +2 -0
- package/dist/components/counter/primitives.d.ts.map +1 -1
- package/dist/components/cursor-pagination/cursor-pagination.d.ts +23 -6
- package/dist/components/cursor-pagination/cursor-pagination.d.ts.map +1 -1
- package/dist/components/cursor-pagination/primitives/cursor-pagination-link.d.ts.map +1 -1
- package/dist/components/cursor-pagination/primitives/cursor-pagination-next-icon.d.ts +8 -0
- package/dist/components/cursor-pagination/primitives/cursor-pagination-next-icon.d.ts.map +1 -0
- package/dist/components/cursor-pagination/primitives/cursor-pagination-previous-icon.d.ts +8 -0
- package/dist/components/cursor-pagination/primitives/cursor-pagination-previous-icon.d.ts.map +1 -0
- package/dist/components/cursor-pagination/primitives/cursor-pagination-root.d.ts +1 -1
- package/dist/components/cursor-pagination/primitives/cursor-pagination-root.d.ts.map +1 -1
- package/dist/components/cursor-pagination/primitives/cursor-pagination-skeleton.d.ts.map +1 -1
- package/dist/components/cursor-pagination/primitives.d.ts +2 -0
- package/dist/components/cursor-pagination/primitives.d.ts.map +1 -1
- package/dist/components/date-picker/date-picker.d.ts +12 -5
- package/dist/components/date-picker/date-picker.d.ts.map +1 -1
- package/dist/components/date-picker/primitives/date-picker-calendar.d.ts +4 -0
- package/dist/components/date-picker/primitives/date-picker-calendar.d.ts.map +1 -0
- package/dist/components/date-picker/primitives/date-picker-content.d.ts.map +1 -1
- package/dist/components/date-picker/primitives/date-picker-icon.d.ts +8 -0
- package/dist/components/date-picker/primitives/date-picker-icon.d.ts.map +1 -0
- package/dist/components/date-picker/primitives/date-picker-input.d.ts +9 -0
- package/dist/components/date-picker/primitives/date-picker-input.d.ts.map +1 -0
- package/dist/components/date-picker/primitives/date-picker-portal.d.ts.map +1 -1
- package/dist/components/date-picker/primitives/date-picker-root.d.ts.map +1 -1
- package/dist/components/date-picker/primitives/date-picker-trigger.d.ts.map +1 -1
- package/dist/components/date-picker/primitives.d.ts +3 -0
- package/dist/components/date-picker/primitives.d.ts.map +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.d.ts +7 -3
- package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -1
- package/dist/components/dropdown-menu/primitives/dropdown-menu-checkbox-indicator.d.ts +8 -0
- package/dist/components/dropdown-menu/primitives/dropdown-menu-checkbox-indicator.d.ts.map +1 -0
- package/dist/components/dropdown-menu/primitives/dropdown-menu-checkbox-item.d.ts +6 -2
- package/dist/components/dropdown-menu/primitives/dropdown-menu-checkbox-item.d.ts.map +1 -1
- package/dist/components/dropdown-menu/primitives/dropdown-menu-root.d.ts.map +1 -1
- package/dist/components/dropdown-menu/primitives/dropdown-menu-sub-indicator.d.ts +8 -0
- package/dist/components/dropdown-menu/primitives/dropdown-menu-sub-indicator.d.ts.map +1 -0
- package/dist/components/dropdown-menu/primitives/dropdown-menu-sub-trigger.d.ts +6 -2
- package/dist/components/dropdown-menu/primitives/dropdown-menu-sub-trigger.d.ts.map +1 -1
- package/dist/components/dropdown-menu/primitives/dropdown-menu-trigger-icon.d.ts +8 -0
- package/dist/components/dropdown-menu/primitives/dropdown-menu-trigger-icon.d.ts.map +1 -0
- package/dist/components/dropdown-menu/primitives.d.ts +3 -0
- package/dist/components/dropdown-menu/primitives.d.ts.map +1 -1
- package/dist/components/favorite/favorite.d.ts +11 -6
- package/dist/components/favorite/favorite.d.ts.map +1 -1
- package/dist/components/favorite/primitives/favorite-heart.d.ts +6 -5
- package/dist/components/favorite/primitives/favorite-heart.d.ts.map +1 -1
- package/dist/components/favorite/primitives/favorite-root.d.ts.map +1 -1
- package/dist/components/field/primitives/field-error-icon.d.ts +8 -0
- package/dist/components/field/primitives/field-error-icon.d.ts.map +1 -0
- package/dist/components/field/primitives/field-error.d.ts +8 -3
- package/dist/components/field/primitives/field-error.d.ts.map +1 -1
- package/dist/components/field/primitives/field-separator.d.ts.map +1 -1
- package/dist/components/field/primitives.d.ts +1 -0
- package/dist/components/field/primitives.d.ts.map +1 -1
- package/dist/components/file-input/file-input.d.ts +10 -1
- package/dist/components/file-input/file-input.d.ts.map +1 -1
- package/dist/components/file-input/primitives/file-input-dropzone.d.ts.map +1 -1
- package/dist/components/file-input/primitives/file-input-label.d.ts +5 -0
- package/dist/components/file-input/primitives/file-input-label.d.ts.map +1 -0
- package/dist/components/file-input/primitives/file-input-name.d.ts.map +1 -1
- package/dist/components/file-input/primitives/file-input-progress.d.ts.map +1 -1
- package/dist/components/file-input/primitives/file-input-remove-icon.d.ts +8 -0
- package/dist/components/file-input/primitives/file-input-remove-icon.d.ts.map +1 -0
- package/dist/components/file-input/primitives/file-input-remove.d.ts.map +1 -1
- package/dist/components/file-input/primitives/file-input-root.d.ts.map +1 -1
- package/dist/components/file-input/primitives/file-input-trigger.d.ts.map +1 -1
- package/dist/components/file-input/primitives/file-input-upload-icon.d.ts +8 -0
- package/dist/components/file-input/primitives/file-input-upload-icon.d.ts.map +1 -0
- package/dist/components/file-input/primitives.d.ts +3 -0
- package/dist/components/file-input/primitives.d.ts.map +1 -1
- package/dist/components/form-status/form-status.d.ts +12 -6
- package/dist/components/form-status/form-status.d.ts.map +1 -1
- package/dist/components/form-status/primitives/form-status-error-icon.d.ts +8 -0
- package/dist/components/form-status/primitives/form-status-error-icon.d.ts.map +1 -0
- package/dist/components/form-status/primitives/form-status-root.d.ts +6 -3
- package/dist/components/form-status/primitives/form-status-root.d.ts.map +1 -1
- package/dist/components/form-status/primitives/form-status-success-icon.d.ts +8 -0
- package/dist/components/form-status/primitives/form-status-success-icon.d.ts.map +1 -0
- package/dist/components/form-status/primitives.d.ts +2 -0
- package/dist/components/form-status/primitives.d.ts.map +1 -1
- package/dist/components/icon/icon.d.ts +1 -1
- package/dist/components/icon/icon.d.ts.map +1 -1
- package/dist/components/icon/primitives/icon-skeleton.d.ts.map +1 -1
- package/dist/components/input/input.d.ts +7 -4
- package/dist/components/input/input.d.ts.map +1 -1
- package/dist/components/input/primitives/input-field.d.ts.map +1 -1
- package/dist/components/input/primitives/input-prepend-icon.d.ts +8 -0
- package/dist/components/input/primitives/input-prepend-icon.d.ts.map +1 -0
- package/dist/components/input/primitives/input-prepend.d.ts.map +1 -1
- package/dist/components/input/primitives/input-root.d.ts.map +1 -1
- package/dist/components/input/primitives.d.ts +1 -0
- package/dist/components/input/primitives.d.ts.map +1 -1
- package/dist/components/logo/primitives/logo-image.d.ts.map +1 -1
- package/dist/components/logo/primitives/logo-skeleton.d.ts.map +1 -1
- package/dist/components/logo/primitives/logo-text.d.ts.map +1 -1
- package/dist/components/modal/modal.d.ts +2 -2
- package/dist/components/modal/primitives/modal-overlay.d.ts.map +1 -1
- package/dist/components/modal/primitives/modal-portal.d.ts.map +1 -1
- package/dist/components/modal/primitives/modal-root.d.ts.map +1 -1
- package/dist/components/navigation-menu/navigation-menu.d.ts +5 -1
- package/dist/components/navigation-menu/navigation-menu.d.ts.map +1 -1
- package/dist/components/navigation-menu/primitives/navigation-menu-list.d.ts.map +1 -1
- package/dist/components/navigation-menu/primitives/navigation-menu-root.d.ts +2 -2
- package/dist/components/navigation-menu/primitives/navigation-menu-root.d.ts.map +1 -1
- package/dist/components/offset-pagination/offset-pagination.d.ts +7 -4
- package/dist/components/offset-pagination/offset-pagination.d.ts.map +1 -1
- package/dist/components/offset-pagination/primitives/offset-pagination-link.d.ts.map +1 -1
- package/dist/components/offset-pagination/primitives/offset-pagination-root.d.ts +1 -1
- package/dist/components/offset-pagination/primitives/offset-pagination-root.d.ts.map +1 -1
- package/dist/components/price/price.d.ts +4 -4
- package/dist/components/product-card/primitives/product-card-actions.d.ts +4 -0
- package/dist/components/product-card/primitives/{product-card-content.d.ts.map → product-card-actions.d.ts.map} +1 -1
- package/dist/components/product-card/primitives/product-card-cart-button.d.ts +5 -0
- package/dist/components/product-card/primitives/product-card-cart-button.d.ts.map +1 -0
- package/dist/components/product-card/primitives/product-card-cart-link.d.ts +5 -0
- package/dist/components/product-card/primitives/product-card-cart-link.d.ts.map +1 -0
- package/dist/components/product-card/primitives/product-card-compare.d.ts +5 -2
- package/dist/components/product-card/primitives/product-card-compare.d.ts.map +1 -1
- package/dist/components/product-card/primitives/product-card-details.d.ts.map +1 -1
- package/dist/components/product-card/primitives/product-card-form.d.ts +4 -0
- package/dist/components/product-card/primitives/product-card-form.d.ts.map +1 -0
- package/dist/components/product-card/primitives/product-card-image.d.ts.map +1 -1
- package/dist/components/product-card/primitives/product-card-input.d.ts +4 -0
- package/dist/components/product-card/primitives/product-card-input.d.ts.map +1 -0
- package/dist/components/product-card/primitives/product-card-price.d.ts.map +1 -1
- package/dist/components/product-card/primitives/product-card-rating.d.ts +5 -0
- package/dist/components/product-card/primitives/product-card-rating.d.ts.map +1 -0
- package/dist/components/product-card/primitives.d.ts +6 -3
- package/dist/components/product-card/primitives.d.ts.map +1 -1
- package/dist/components/product-card/product-card.d.ts +38 -7
- package/dist/components/product-card/product-card.d.ts.map +1 -1
- package/dist/components/radio-group/primitives/radio-group-field-item.d.ts +5 -0
- package/dist/components/radio-group/primitives/radio-group-field-item.d.ts.map +1 -0
- package/dist/components/radio-group/primitives/radio-group-indicator.d.ts.map +1 -1
- package/dist/components/radio-group/primitives/radio-group-item.d.ts.map +1 -1
- package/dist/components/radio-group/primitives/radio-group-label.d.ts +5 -0
- package/dist/components/radio-group/primitives/radio-group-label.d.ts.map +1 -0
- package/dist/components/radio-group/primitives/radio-group-root.d.ts.map +1 -1
- package/dist/components/radio-group/primitives.d.ts +2 -0
- package/dist/components/radio-group/primitives.d.ts.map +1 -1
- package/dist/components/radio-group/radio-group.d.ts +4 -4
- package/dist/components/radio-group/radio-group.d.ts.map +1 -1
- package/dist/components/range-input/primitives/range-input-button.d.ts +5 -0
- package/dist/components/range-input/primitives/range-input-button.d.ts.map +1 -0
- package/dist/components/range-input/primitives/range-input-field.d.ts +5 -0
- package/dist/components/range-input/primitives/range-input-field.d.ts.map +1 -0
- package/dist/components/range-input/primitives/range-input-icon.d.ts +8 -0
- package/dist/components/range-input/primitives/range-input-icon.d.ts.map +1 -0
- package/dist/components/range-input/primitives/range-input-root.d.ts.map +1 -1
- package/dist/components/range-input/primitives.d.ts +3 -0
- package/dist/components/range-input/primitives.d.ts.map +1 -1
- package/dist/components/range-input/range-input.d.ts +14 -6
- package/dist/components/range-input/range-input.d.ts.map +1 -1
- package/dist/components/rating/primitives/rating-root.d.ts.map +1 -1
- package/dist/components/rating/primitives/rating-stars.d.ts +3 -1
- package/dist/components/rating/primitives/rating-stars.d.ts.map +1 -1
- package/dist/components/rating/primitives.d.ts +1 -1
- package/dist/components/rating/primitives.d.ts.map +1 -1
- package/dist/components/rating/rating.d.ts +3 -3
- package/dist/components/reveal/primitives/reveal-controls.d.ts.map +1 -1
- package/dist/components/reveal/primitives/reveal-root.d.ts.map +1 -1
- package/dist/components/reveal/primitives/reveal-trigger.d.ts.map +1 -1
- package/dist/components/reveal/primitives/reveal-viewport.d.ts.map +1 -1
- package/dist/components/scroll-area/primitives/scroll-area-bar.d.ts.map +1 -1
- package/dist/components/scroll-area/primitives/scroll-area-thumb.d.ts.map +1 -1
- package/dist/components/scroll-area/primitives/scroll-area-viewport.d.ts.map +1 -1
- package/dist/components/scroll-area/scroll-area.d.ts +1 -1
- package/dist/components/select/primitives/select-content.d.ts.map +1 -1
- package/dist/components/select/primitives/select-icon.d.ts.map +1 -1
- package/dist/components/select/primitives/select-item-text.d.ts.map +1 -1
- package/dist/components/select/primitives/select-item.d.ts.map +1 -1
- package/dist/components/select/primitives/select-portal.d.ts.map +1 -1
- package/dist/components/select/primitives/select-scroll-down-button.d.ts.map +1 -1
- package/dist/components/select/primitives/select-scroll-down-icon.d.ts +8 -0
- package/dist/components/select/primitives/select-scroll-down-icon.d.ts.map +1 -0
- package/dist/components/select/primitives/select-scroll-up-button.d.ts.map +1 -1
- package/dist/components/select/primitives/select-scroll-up-icon.d.ts +8 -0
- package/dist/components/select/primitives/select-scroll-up-icon.d.ts.map +1 -0
- package/dist/components/select/primitives/select-trigger-icon.d.ts +8 -0
- package/dist/components/select/primitives/select-trigger-icon.d.ts.map +1 -0
- package/dist/components/select/primitives/select-trigger.d.ts.map +1 -1
- package/dist/components/select/primitives/select-value.d.ts.map +1 -1
- package/dist/components/select/primitives/select-viewport.d.ts.map +1 -1
- package/dist/components/select/primitives.d.ts +3 -0
- package/dist/components/select/primitives.d.ts.map +1 -1
- package/dist/components/select/select.d.ts +29 -18
- package/dist/components/select/select.d.ts.map +1 -1
- package/dist/components/side-panel/primitives/side-panel-body.d.ts.map +1 -1
- package/dist/components/side-panel/primitives/side-panel-close-button.d.ts +10 -0
- package/dist/components/side-panel/primitives/side-panel-close-button.d.ts.map +1 -0
- package/dist/components/side-panel/primitives/side-panel-close.d.ts.map +1 -1
- package/dist/components/side-panel/primitives/side-panel-content.d.ts.map +1 -1
- package/dist/components/side-panel/primitives/side-panel-overlay.d.ts.map +1 -1
- package/dist/components/side-panel/primitives/side-panel-root.d.ts.map +1 -1
- package/dist/components/side-panel/primitives/side-panel-scroll-area.d.ts +5 -0
- package/dist/components/side-panel/primitives/side-panel-scroll-area.d.ts.map +1 -0
- package/dist/components/side-panel/primitives/side-panel-title.d.ts.map +1 -1
- package/dist/components/side-panel/primitives/side-panel-trigger.d.ts.map +1 -1
- package/dist/components/side-panel/primitives.d.ts +2 -0
- package/dist/components/side-panel/primitives.d.ts.map +1 -1
- package/dist/components/side-panel/side-panel.d.ts.map +1 -1
- package/dist/components/skeleton/primitives/skeleton-box.d.ts +1 -1
- package/dist/components/skeleton/primitives/skeleton-box.d.ts.map +1 -1
- package/dist/components/spinner/spinner.d.ts +8 -5
- package/dist/components/spinner/spinner.d.ts.map +1 -1
- package/dist/components/swatch-radio-group/primitives/swatch-radio-group-color.d.ts.map +1 -1
- package/dist/components/swatch-radio-group/primitives/swatch-radio-group-indicator-icon.d.ts +8 -0
- package/dist/components/swatch-radio-group/primitives/swatch-radio-group-indicator-icon.d.ts.map +1 -0
- package/dist/components/swatch-radio-group/primitives/swatch-radio-group-item.d.ts.map +1 -1
- package/dist/components/swatch-radio-group/primitives/swatch-radio-group-thumbnail.d.ts.map +1 -1
- package/dist/components/swatch-radio-group/primitives.d.ts +1 -0
- package/dist/components/swatch-radio-group/primitives.d.ts.map +1 -1
- package/dist/components/swatch-radio-group/swatch-radio-group.d.ts +9 -3
- package/dist/components/swatch-radio-group/swatch-radio-group.d.ts.map +1 -1
- package/dist/components/tabs/primitives/tabs-content.d.ts.map +1 -1
- package/dist/components/tabs/primitives/tabs-trigger.d.ts.map +1 -1
- package/dist/components/tabs/tabs.d.ts +8 -8
- package/dist/components/textarea/textarea.d.ts.map +1 -1
- package/dist/components/toaster/toaster.d.ts +2 -3
- package/dist/components/toaster/toaster.d.ts.map +1 -1
- package/dist/components/toggle-group/primitives/toggle-group-item.d.ts.map +1 -1
- package/dist/components/toggle-group/toggle-group.d.ts +2 -2
- package/dist/components/toggle-group/toggle-group.d.ts.map +1 -1
- package/dist/counter-input-9RK1vA_J.cjs +12 -0
- package/dist/counter-input-9RK1vA_J.cjs.map +1 -0
- package/dist/counter-input-DVHLdLel.js +169 -0
- package/dist/counter-input-DVHLdLel.js.map +1 -0
- package/dist/counter.cjs +1 -1
- package/dist/counter.js +5 -3
- package/dist/cursor-pagination-next-icon-BEF2WwXW.cjs +2 -0
- package/dist/cursor-pagination-next-icon-BEF2WwXW.cjs.map +1 -0
- package/dist/cursor-pagination-next-icon-fbe6Vsf_.js +96 -0
- package/dist/cursor-pagination-next-icon-fbe6Vsf_.js.map +1 -0
- package/dist/cursor-pagination.cjs +1 -1
- package/dist/cursor-pagination.cjs.map +1 -1
- package/dist/cursor-pagination.js +23 -19
- package/dist/cursor-pagination.js.map +1 -1
- package/dist/date-picker.cjs +1 -1
- package/dist/date-picker.cjs.map +1 -1
- package/dist/date-picker.js +100 -67
- package/dist/date-picker.js.map +1 -1
- package/dist/dropdown-menu-trigger-icon-C7Y_Yvc3.js +1138 -0
- package/dist/dropdown-menu-trigger-icon-C7Y_Yvc3.js.map +1 -0
- package/dist/dropdown-menu-trigger-icon-Ct3A6NVj.cjs +7 -0
- package/dist/dropdown-menu-trigger-icon-Ct3A6NVj.cjs.map +1 -0
- package/dist/dropdown-menu.cjs +1 -1
- package/dist/dropdown-menu.js +16 -13
- package/dist/favorite-heart-BCoB2b6L.js +76 -0
- package/dist/favorite-heart-BCoB2b6L.js.map +1 -0
- package/dist/favorite-heart-D4GasQqr.cjs +2 -0
- package/dist/favorite-heart-D4GasQqr.cjs.map +1 -0
- package/dist/favorite.cjs +1 -1
- package/dist/favorite.js +1 -1
- package/dist/field-error-BXJy7xv9.js +120 -0
- package/dist/field-error-BXJy7xv9.js.map +1 -0
- package/dist/field-error-CxV_C7ld.cjs +2 -0
- package/dist/field-error-CxV_C7ld.cjs.map +1 -0
- package/dist/field-item-CeGEsbFj.cjs +2 -0
- package/dist/field-item-CeGEsbFj.cjs.map +1 -0
- package/dist/field-item-DY-IZNXs.js +31 -0
- package/dist/field-item-DY-IZNXs.js.map +1 -0
- package/dist/field-label-BKlrU6b5.js +10 -0
- package/dist/field-label-BKlrU6b5.js.map +1 -0
- package/dist/field-label-YLyRO4cQ.cjs +2 -0
- package/dist/field-label-YLyRO4cQ.cjs.map +1 -0
- package/dist/field.cjs +1 -1
- package/dist/field.js +13 -10
- package/dist/field.js.map +1 -1
- package/dist/file-input.cjs +1 -1
- package/dist/file-input.cjs.map +1 -1
- package/dist/file-input.js +292 -240
- package/dist/file-input.js.map +1 -1
- package/dist/form-status.cjs +1 -1
- package/dist/form-status.cjs.map +1 -1
- package/dist/form-status.js +57 -22
- package/dist/form-status.js.map +1 -1
- package/dist/icon.cjs +1 -1
- package/dist/icon.cjs.map +1 -1
- package/dist/icon.js +8 -7
- package/dist/icon.js.map +1 -1
- package/dist/index-CQhYMnjT.js +35 -0
- package/dist/index-CQhYMnjT.js.map +1 -0
- package/dist/index-iAvn1gzj.cjs +2 -0
- package/dist/index-iAvn1gzj.cjs.map +1 -0
- package/dist/index.cjs +2 -32
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1000 -3997
- package/dist/index.js.map +1 -1
- package/dist/input-BFqWDVd1.cjs +2 -0
- package/dist/input-BFqWDVd1.cjs.map +1 -0
- package/dist/input-Cq1AD4gY.js +12 -0
- package/dist/input-Cq1AD4gY.js.map +1 -0
- package/dist/input-prepend-icon-BIeRiL1I.js +73 -0
- package/dist/input-prepend-icon-BIeRiL1I.js.map +1 -0
- package/dist/input-prepend-icon-Drre9QwU.cjs +2 -0
- package/dist/input-prepend-icon-Drre9QwU.cjs.map +1 -0
- package/dist/input.cjs +1 -1
- package/dist/input.cjs.map +1 -1
- package/dist/input.js +5 -69
- package/dist/input.js.map +1 -1
- package/dist/{label-C2HI4Bjj.js → label-B_fjofdS.js} +3 -3
- package/dist/label-B_fjofdS.js.map +1 -0
- package/dist/label-hiiJ-Jpk.cjs +2 -0
- package/dist/{label-CP55xclp.cjs.map → label-hiiJ-Jpk.cjs.map} +1 -1
- package/dist/logo-skeleton-BHQuIAfk.cjs +2 -0
- package/dist/logo-skeleton-BHQuIAfk.cjs.map +1 -0
- package/dist/logo-skeleton-D55dECso.js +60 -0
- package/dist/logo-skeleton-D55dECso.js.map +1 -0
- package/dist/logo.cjs +1 -1
- package/dist/logo.js +1 -1
- package/dist/{modal-title-DIVsr1XZ.js → modal-title-By9bKnO1.js} +16 -12
- package/dist/modal-title-By9bKnO1.js.map +1 -0
- package/dist/modal-title-DTBKYUPG.cjs +2 -0
- package/dist/modal-title-DTBKYUPG.cjs.map +1 -0
- package/dist/modal.cjs +1 -1
- package/dist/modal.js +1 -1
- package/dist/navigation-menu.cjs +1 -1
- package/dist/navigation-menu.cjs.map +1 -1
- package/dist/navigation-menu.js +190 -187
- package/dist/navigation-menu.js.map +1 -1
- package/dist/offset-pagination-ellipsis-BW8wKSNw.js +83 -0
- package/dist/offset-pagination-ellipsis-BW8wKSNw.js.map +1 -0
- package/dist/offset-pagination-ellipsis-ROg8OzaZ.cjs +2 -0
- package/dist/offset-pagination-ellipsis-ROg8OzaZ.cjs.map +1 -0
- package/dist/offset-pagination.cjs +1 -1
- package/dist/offset-pagination.js +1 -1
- package/dist/price-strike-BRr1He7V.cjs +2 -0
- package/dist/price-strike-BRr1He7V.cjs.map +1 -0
- package/dist/{price-strike-D9Pzzzkr.js → price-strike-Cl5R7dGy.js} +2 -2
- package/dist/price-strike-Cl5R7dGy.js.map +1 -0
- package/dist/price.cjs +1 -1
- package/dist/price.js +1 -1
- package/dist/product-card-compare-DSQIR2Ar.js +304 -0
- package/dist/product-card-compare-DSQIR2Ar.js.map +1 -0
- package/dist/product-card-compare-N3uL-k3l.cjs +2 -0
- package/dist/product-card-compare-N3uL-k3l.cjs.map +1 -0
- package/dist/{product-card-skeleton-BgN1OCwY.cjs → product-card-skeleton-DmwKohoQ.cjs} +2 -2
- package/dist/{product-card-skeleton-BgN1OCwY.cjs.map → product-card-skeleton-DmwKohoQ.cjs.map} +1 -1
- package/dist/{product-card-skeleton-C-xXJrKi.js → product-card-skeleton-RiYj3sBm.js} +3 -3
- package/dist/{product-card-skeleton-C-xXJrKi.js.map → product-card-skeleton-RiYj3sBm.js.map} +1 -1
- package/dist/product-card.cjs +1 -1
- package/dist/product-card.cjs.map +1 -1
- package/dist/product-card.js +22 -25
- package/dist/product-card.js.map +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.cjs.map +1 -1
- package/dist/radio-group.js +46 -41
- package/dist/radio-group.js.map +1 -1
- package/dist/range-input.cjs +1 -1
- package/dist/range-input.cjs.map +1 -1
- package/dist/range-input.js +35 -6
- package/dist/range-input.js.map +1 -1
- package/dist/rating-total-Ch9GsI-i.cjs +2 -0
- package/dist/rating-total-Ch9GsI-i.cjs.map +1 -0
- package/dist/rating-total-QaBpE1O6.js +152 -0
- package/dist/rating-total-QaBpE1O6.js.map +1 -0
- package/dist/rating.cjs +1 -1
- package/dist/rating.js +1 -1
- package/dist/reveal-trigger-DC3QWjji.cjs +2 -0
- package/dist/reveal-trigger-DC3QWjji.cjs.map +1 -0
- package/dist/reveal-trigger-DFJIq75n.js +153 -0
- package/dist/reveal-trigger-DFJIq75n.js.map +1 -0
- package/dist/reveal.cjs +1 -1
- package/dist/reveal.js +1 -1
- package/dist/scroll-area-BDOOgbuL.js +28 -0
- package/dist/scroll-area-BDOOgbuL.js.map +1 -0
- package/dist/scroll-area-Di_L0y2h.cjs +2 -0
- package/dist/scroll-area-Di_L0y2h.cjs.map +1 -0
- package/dist/{scroll-area-corner-Bc4E-OBW.cjs → scroll-area-corner-B50-Euv6.cjs} +2 -2
- package/dist/{scroll-area-corner-Bc4E-OBW.cjs.map → scroll-area-corner-B50-Euv6.cjs.map} +1 -1
- package/dist/{scroll-area-corner-DfIRArAE.js → scroll-area-corner-CLcng3tk.js} +56 -45
- package/dist/{scroll-area-corner-DfIRArAE.js.map → scroll-area-corner-CLcng3tk.js.map} +1 -1
- package/dist/scroll-area.cjs +1 -1
- package/dist/scroll-area.js +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.cjs.map +1 -1
- package/dist/select.js +445 -409
- package/dist/select.js.map +1 -1
- package/dist/side-panel-scroll-area-BjHd_8hw.js +120 -0
- package/dist/side-panel-scroll-area-BjHd_8hw.js.map +1 -0
- package/dist/side-panel-scroll-area-Ci_3i5ZK.cjs +2 -0
- package/dist/side-panel-scroll-area-Ci_3i5ZK.cjs.map +1 -0
- package/dist/side-panel.cjs +1 -1
- package/dist/side-panel.js +10 -8
- package/dist/skeleton-box-CcjaHRz4.cjs +2 -0
- package/dist/skeleton-box-CcjaHRz4.cjs.map +1 -0
- package/dist/{skeleton-box-D0XcgPLs.js → skeleton-box-EYvfbwBB.js} +4 -4
- package/dist/skeleton-box-EYvfbwBB.js.map +1 -0
- package/dist/{skeleton-icon-Cm6f9u-Z.js → skeleton-icon-B8EIcgT0.js} +4 -4
- package/dist/skeleton-icon-B8EIcgT0.js.map +1 -0
- package/dist/skeleton-icon-ChZY8Dj6.cjs +2 -0
- package/dist/skeleton-icon-ChZY8Dj6.cjs.map +1 -0
- package/dist/{skeleton-text-BCsnfhcU.js → skeleton-text-BKJtA5cd.js} +4 -4
- package/dist/skeleton-text-BKJtA5cd.js.map +1 -0
- package/dist/skeleton-text-CY7gaT4A.cjs +2 -0
- package/dist/skeleton-text-CY7gaT4A.cjs.map +1 -0
- package/dist/skeleton.cjs +1 -1
- package/dist/skeleton.js +3 -3
- package/dist/styles.css +2 -2
- package/dist/swatch-radio-group.cjs +1 -1
- package/dist/swatch-radio-group.cjs.map +1 -1
- package/dist/swatch-radio-group.js +84 -80
- package/dist/swatch-radio-group.js.map +1 -1
- package/dist/{tabs-root-BLHqpIyN.js → tabs-root-C3fY_qFs.js} +48 -37
- package/dist/tabs-root-C3fY_qFs.js.map +1 -0
- package/dist/tabs-root-DRJRMB7Y.cjs +2 -0
- package/dist/tabs-root-DRJRMB7Y.cjs.map +1 -0
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/toggle-group.cjs +1 -1
- package/dist/toggle-group.cjs.map +1 -1
- package/dist/toggle-group.js +31 -48
- package/dist/toggle-group.js.map +1 -1
- package/package.json +32 -1
- package/tailwind.preset.js +39 -139
- package/dist/accordion-trigger-CpTcclGS.cjs +0 -2
- package/dist/accordion-trigger-DFuN29lS.js.map +0 -1
- package/dist/alert-dismiss-B7_uKkyV.js +0 -123
- package/dist/alert-dismiss-B7_uKkyV.js.map +0 -1
- package/dist/alert-dismiss-BO3hXWMt.cjs +0 -2
- package/dist/alert-dismiss-BO3hXWMt.cjs.map +0 -1
- package/dist/banner-dismiss-0uh1GtF1.cjs +0 -2
- package/dist/banner-dismiss-0uh1GtF1.cjs.map +0 -1
- package/dist/banner-dismiss-B_j9wqx-.js +0 -100
- package/dist/banner-dismiss-B_j9wqx-.js.map +0 -1
- package/dist/blog-post-card-author-CBXo2FqS.cjs +0 -2
- package/dist/blog-post-card-author-CBXo2FqS.cjs.map +0 -1
- package/dist/blog-post-card-author-VkGle9g8.js.map +0 -1
- package/dist/button-BgvMm9T3.cjs +0 -7
- package/dist/button-BgvMm9T3.cjs.map +0 -1
- package/dist/button-C0iR-l2_.js +0 -106
- package/dist/button-C0iR-l2_.js.map +0 -1
- package/dist/card-link-C48N1y5C.js.map +0 -1
- package/dist/card-link-i_zrZjnx.cjs +0 -2
- package/dist/card-link-i_zrZjnx.cjs.map +0 -1
- package/dist/carousel-next-C6jpZTlN.js +0 -1480
- package/dist/carousel-next-C6jpZTlN.js.map +0 -1
- package/dist/carousel-next-DEHDO98_.cjs +0 -2
- package/dist/carousel-next-DEHDO98_.cjs.map +0 -1
- package/dist/category-card-link-BXoWFETv.cjs +0 -2
- package/dist/category-card-link-BXoWFETv.cjs.map +0 -1
- package/dist/category-card-link-D85RfMpf.js.map +0 -1
- package/dist/checkbox-indicator-DVkOzOV6.cjs +0 -2
- package/dist/checkbox-indicator-DVkOzOV6.cjs.map +0 -1
- package/dist/checkbox-indicator-sO8XNm-j.js +0 -296
- package/dist/checkbox-indicator-sO8XNm-j.js.map +0 -1
- package/dist/chip-button-BhdyJZ5U.js +0 -34
- package/dist/chip-button-BhdyJZ5U.js.map +0 -1
- package/dist/chip-button-DRroMV7K.cjs +0 -2
- package/dist/chip-button-DRroMV7K.cjs.map +0 -1
- package/dist/compare-card-specs-empty-D42h8BPm.cjs +0 -2
- package/dist/compare-card-specs-empty-D42h8BPm.cjs.map +0 -1
- package/dist/compare-card-specs-empty-n4gOqNXU.js +0 -285
- package/dist/compare-card-specs-empty-n4gOqNXU.js.map +0 -1
- package/dist/compare-drawer-remove-DqQAu7qC.js +0 -173
- package/dist/compare-drawer-remove-DqQAu7qC.js.map +0 -1
- package/dist/compare-drawer-remove-DxYGdJay.cjs +0 -2
- package/dist/compare-drawer-remove-DxYGdJay.cjs.map +0 -1
- package/dist/components/banner/primitives/banner-provider.d.ts +0 -17
- package/dist/components/banner/primitives/banner-provider.d.ts.map +0 -1
- package/dist/components/checkbox-group/primitives/checkbox-group-option.d.ts +0 -4
- package/dist/components/checkbox-group/primitives/checkbox-group-option.d.ts.map +0 -1
- package/dist/components/compare-card/primitives/compare-card-form-input.d.ts +0 -4
- package/dist/components/compare-card/primitives/compare-card-form-input.d.ts.map +0 -1
- package/dist/components/compare-card/primitives/compare-card-form.d.ts +0 -4
- package/dist/components/compare-card/primitives/compare-card-form.d.ts.map +0 -1
- package/dist/components/compare-card/primitives/compare-card-link.d.ts +0 -5
- package/dist/components/compare-card/primitives/compare-card-link.d.ts.map +0 -1
- package/dist/components/compare-card/primitives/compare-card-rating-empty.d.ts +0 -4
- package/dist/components/compare-card/primitives/compare-card-rating-empty.d.ts.map +0 -1
- package/dist/components/compare-card/primitives/compare-card-rating-label.d.ts +0 -4
- package/dist/components/compare-card/primitives/compare-card-rating-label.d.ts.map +0 -1
- package/dist/components/compare-card/primitives/compare-card-rating.d.ts +0 -4
- package/dist/components/compare-card/primitives/compare-card-rating.d.ts.map +0 -1
- package/dist/components/product-card/primitives/product-card-checkbox.d.ts +0 -5
- package/dist/components/product-card/primitives/product-card-checkbox.d.ts.map +0 -1
- package/dist/components/product-card/primitives/product-card-content.d.ts +0 -4
- package/dist/components/product-card/primitives/product-card-label.d.ts +0 -5
- package/dist/components/product-card/primitives/product-card-label.d.ts.map +0 -1
- package/dist/counter-input-60Nb59Nw.cjs +0 -2
- package/dist/counter-input-60Nb59Nw.cjs.map +0 -1
- package/dist/counter-input-staB16MG.js +0 -80
- package/dist/counter-input-staB16MG.js.map +0 -1
- package/dist/cursor-pagination-link-C6otmDIa.cjs +0 -12
- package/dist/cursor-pagination-link-C6otmDIa.cjs.map +0 -1
- package/dist/cursor-pagination-link-CWbshIOY.js +0 -87
- package/dist/cursor-pagination-link-CWbshIOY.js.map +0 -1
- package/dist/dropdown-menu-node-BDXDWc1l.cjs +0 -7
- package/dist/dropdown-menu-node-BDXDWc1l.cjs.map +0 -1
- package/dist/dropdown-menu-node-OJHgOERz.js +0 -1102
- package/dist/dropdown-menu-node-OJHgOERz.js.map +0 -1
- package/dist/favorite-heart-DM8QjcYe.js +0 -62
- package/dist/favorite-heart-DM8QjcYe.js.map +0 -1
- package/dist/favorite-heart-JHXkEZUQ.cjs +0 -2
- package/dist/favorite-heart-JHXkEZUQ.cjs.map +0 -1
- package/dist/field-error-D5NKv8wq.cjs +0 -7
- package/dist/field-error-D5NKv8wq.cjs.map +0 -1
- package/dist/field-error-DtlucLPM.js +0 -150
- package/dist/field-error-DtlucLPM.js.map +0 -1
- package/dist/label-C2HI4Bjj.js.map +0 -1
- package/dist/label-CP55xclp.cjs +0 -2
- package/dist/logo-skeleton-DPhYgp4v.cjs +0 -2
- package/dist/logo-skeleton-DPhYgp4v.cjs.map +0 -1
- package/dist/logo-skeleton-DSSJAa_5.js +0 -44
- package/dist/logo-skeleton-DSSJAa_5.js.map +0 -1
- package/dist/modal-title-D0y_YSeK.cjs +0 -2
- package/dist/modal-title-D0y_YSeK.cjs.map +0 -1
- package/dist/modal-title-DIVsr1XZ.js.map +0 -1
- package/dist/offset-pagination-ellipsis-BDbVGBuP.cjs +0 -2
- package/dist/offset-pagination-ellipsis-BDbVGBuP.cjs.map +0 -1
- package/dist/offset-pagination-ellipsis-bGa7YpkD.js +0 -79
- package/dist/offset-pagination-ellipsis-bGa7YpkD.js.map +0 -1
- package/dist/price-strike-D9Pzzzkr.js.map +0 -1
- package/dist/price-strike-DqOP577f.cjs +0 -2
- package/dist/price-strike-DqOP577f.cjs.map +0 -1
- package/dist/product-card-label-CP4yzMhB.js +0 -244
- package/dist/product-card-label-CP4yzMhB.js.map +0 -1
- package/dist/product-card-label-DHKOJFTo.cjs +0 -2
- package/dist/product-card-label-DHKOJFTo.cjs.map +0 -1
- package/dist/product-card-root-BnBOoYFY.js +0 -27
- package/dist/product-card-root-BnBOoYFY.js.map +0 -1
- package/dist/product-card-root-DNqlSx52.cjs +0 -2
- package/dist/product-card-root-DNqlSx52.cjs.map +0 -1
- package/dist/rating-total-BxVcB0gt.cjs +0 -2
- package/dist/rating-total-BxVcB0gt.cjs.map +0 -1
- package/dist/rating-total-C_vpBVPa.js +0 -144
- package/dist/rating-total-C_vpBVPa.js.map +0 -1
- package/dist/reveal-trigger-DT_deyzM.js +0 -122
- package/dist/reveal-trigger-DT_deyzM.js.map +0 -1
- package/dist/reveal-trigger-ntEvLci1.cjs +0 -2
- package/dist/reveal-trigger-ntEvLci1.cjs.map +0 -1
- package/dist/side-panel-close-BSEnX7wo.cjs +0 -2
- package/dist/side-panel-close-BSEnX7wo.cjs.map +0 -1
- package/dist/side-panel-close-CbsiwlUW.js +0 -86
- package/dist/side-panel-close-CbsiwlUW.js.map +0 -1
- package/dist/skeleton-box-BsY5q4RG.cjs +0 -2
- package/dist/skeleton-box-BsY5q4RG.cjs.map +0 -1
- package/dist/skeleton-box-D0XcgPLs.js.map +0 -1
- package/dist/skeleton-icon-Cm6f9u-Z.js.map +0 -1
- package/dist/skeleton-icon-o8gtDMoj.cjs +0 -2
- package/dist/skeleton-icon-o8gtDMoj.cjs.map +0 -1
- package/dist/skeleton-text-BCsnfhcU.js.map +0 -1
- package/dist/skeleton-text-BxefRRo2.cjs +0 -2
- package/dist/skeleton-text-BxefRRo2.cjs.map +0 -1
- package/dist/tabs-root-BLHqpIyN.js.map +0 -1
- package/dist/tabs-root-DzmRz2Up.cjs +0 -2
- package/dist/tabs-root-DzmRz2Up.cjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-error-CxV_C7ld.cjs","sources":["../src/components/field/primitives/field-group.tsx","../src/components/field/primitives/field-set.tsx","../src/components/field/primitives/field-legend.tsx","../src/components/field/primitives/field-description.tsx","../src/components/field/primitives/field-hint.tsx","../src/components/field/primitives/field-separator.tsx","../src/components/field/primitives/field-error-icon.tsx","../src/components/field/primitives/field-error.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type FieldGroupProps = ComponentProps<'div'>;\n\nexport function FieldGroup({ className, children, ...props }: FieldGroupProps) {\n return (\n <div\n className={cn(\n 'group/field-group flex w-full flex-col gap-8 @container/field-group',\n // Nested state (inside another field-group)\n '[[data-slot=field-group]_&]:gap-5',\n // Sibling state (following legend or description)\n '[[data-slot=field-description]+&]:mt-5 [[data-slot=field-legend]+&]:mt-5',\n className,\n )}\n data-slot=\"field-group\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type FieldSetProps = ComponentProps<'fieldset'>;\n\nexport function FieldSet({ className, children, ...props }: FieldSetProps) {\n return (\n <fieldset className={cn(className)} data-slot=\"field-set\" {...props}>\n {children}\n </fieldset>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type FieldLegendProps = ComponentProps<'legend'>;\n\nexport function FieldLegend({ className, children, ...props }: FieldLegendProps) {\n return (\n <legend\n className={cn(\n 'mb-1 text-2xl font-medium text-[var(--field-legend,var(--foreground))] [font-family:var(--field-legend-font-family,var(--font-family-heading))]',\n className,\n )}\n data-slot=\"field-legend\"\n {...props}\n >\n {children}\n </legend>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type FieldDescriptionProps = ComponentProps<'p'>;\n\nexport function FieldDescription({ className, children, ...props }: FieldDescriptionProps) {\n return (\n <p\n className={cn(\n 'text-sm font-normal text-[var(--field-description,var(--contrast-500))] [font-family:var(--field-description-font-family,var(--font-family-body))]',\n className,\n )}\n data-slot=\"field-description\"\n {...props}\n >\n {children}\n </p>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type FieldHintProps = ComponentProps<'p'>;\n\nexport function FieldHint({ className, children, ...props }: FieldHintProps) {\n return (\n <p\n className={cn(\n 'text-xs font-medium text-[var(--field-hint,var(--contrast-500))] [font-family:var(--field-hint-font-family,var(--font-family-body))]',\n className,\n )}\n data-slot=\"field-hint\"\n {...props}\n >\n {children}\n </p>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type FieldSeparatorProps = ComponentProps<'hr'>;\n\nexport function FieldSeparator({ className, ...props }: FieldSeparatorProps) {\n return (\n <hr\n className={cn(\n 'my-8 h-px border-0 bg-[var(--field-separator,var(--contrast-200))]',\n className,\n )}\n data-slot=\"field-separator\"\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 FieldErrorIconProps {\n asChild?: boolean;\n className?: string;\n children?: ReactNode;\n}\n\nexport function FieldErrorIcon({ asChild = false, className, children }: FieldErrorIconProps) {\n const iconStyles = cn('size-4 shrink-0', className);\n\n if (asChild) {\n return (\n <Slot className={iconStyles} data-slot=\"field-error-icon\">\n {children}\n </Slot>\n );\n }\n\n return (\n <CircleAlert\n className={iconStyles}\n color=\"currentColor\"\n data-slot=\"field-error-icon\"\n strokeWidth={1.5}\n />\n );\n}\n","import type { ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport { FieldErrorIcon } from '@/components/field/primitives/field-error-icon';\nimport { cn } from '@/lib';\n\nexport interface FieldErrorProps extends ComponentPropsWithoutRef<'div'> {\n icon?: {\n asChild?: boolean;\n children?: ReactNode;\n };\n}\n\nexport function FieldError({ className, children, icon, ...props }: FieldErrorProps) {\n return (\n <div\n className={cn(\n 'flex items-center gap-1 text-xs text-[var(--field-error,var(--error))]',\n className,\n )}\n data-slot=\"field-error\"\n {...props}\n >\n <FieldErrorIcon asChild={icon?.asChild}>{icon?.children}</FieldErrorIcon>\n {children}\n </div>\n );\n}\n"],"names":["FieldGroup","className","children","props","jsx","cn","FieldSet","FieldLegend","FieldDescription","FieldHint","FieldSeparator","FieldErrorIcon","asChild","iconStyles","Slot","CircleAlert","FieldError","icon","jsxs"],"mappings":"+JAMO,SAASA,EAAW,CAAE,UAAAC,EAAW,SAAAC,EAAU,GAAGC,GAA0B,CAC7E,OACEC,EAAAA,IAAC,MAAA,CACC,UAAWC,EAAAA,GACT,sEAEA,oCAEA,2EACAJ,CAAA,EAEF,YAAU,cACT,GAAGE,EAEH,SAAAD,CAAA,CAAA,CAGP,CCjBO,SAASI,EAAS,CAAE,UAAAL,EAAW,SAAAC,EAAU,GAAGC,GAAwB,CACzE,OACEC,MAAC,WAAA,CAAS,UAAWC,EAAAA,GAAGJ,CAAS,EAAG,YAAU,YAAa,GAAGE,EAC3D,SAAAD,CAAA,CACH,CAEJ,CCNO,SAASK,EAAY,CAAE,UAAAN,EAAW,SAAAC,EAAU,GAAGC,GAA2B,CAC/E,OACEC,EAAAA,IAAC,SAAA,CACC,UAAWC,EAAAA,GACT,kJACAJ,CAAA,EAEF,YAAU,eACT,GAAGE,EAEH,SAAAD,CAAA,CAAA,CAGP,CCbO,SAASM,EAAiB,CAAE,UAAAP,EAAW,SAAAC,EAAU,GAAGC,GAAgC,CACzF,OACEC,EAAAA,IAAC,IAAA,CACC,UAAWC,EAAAA,GACT,qJACAJ,CAAA,EAEF,YAAU,oBACT,GAAGE,EAEH,SAAAD,CAAA,CAAA,CAGP,CCbO,SAASO,EAAU,CAAE,UAAAR,EAAW,SAAAC,EAAU,GAAGC,GAAyB,CAC3E,OACEC,EAAAA,IAAC,IAAA,CACC,UAAWC,EAAAA,GACT,uIACAJ,CAAA,EAEF,YAAU,aACT,GAAGE,EAEH,SAAAD,CAAA,CAAA,CAGP,CCbO,SAASQ,EAAe,CAAE,UAAAT,EAAW,GAAGE,GAA8B,CAC3E,OACEC,EAAAA,IAAC,KAAA,CACC,UAAWC,EAAAA,GACT,qEACAJ,CAAA,EAEF,YAAU,kBACT,GAAGE,CAAA,CAAA,CAGV,CCLO,SAASQ,EAAe,CAAE,QAAAC,EAAU,GAAO,UAAAX,EAAW,SAAAC,GAAiC,CAC5F,MAAMW,EAAaR,EAAAA,GAAG,kBAAmBJ,CAAS,EAElD,OAAIW,QAECE,EAAAA,KAAA,CAAK,UAAWD,EAAY,YAAU,mBACpC,SAAAX,EACH,EAKFE,EAAAA,IAACW,EAAAA,QAAA,CACC,UAAWF,EACX,MAAM,eACN,YAAU,mBACV,YAAa,GAAA,CAAA,CAGnB,CCnBO,SAASG,EAAW,CAAE,UAAAf,EAAW,SAAAC,EAAU,KAAAe,EAAM,GAAGd,GAA0B,CACnF,OACEe,EAAAA,KAAC,MAAA,CACC,UAAWb,EAAAA,GACT,yEACAJ,CAAA,EAEF,YAAU,cACT,GAAGE,EAEJ,SAAA,CAAAC,MAACO,EAAA,CAAe,QAASM,GAAM,QAAU,YAAM,SAAS,EACvDf,CAAA,CAAA,CAAA,CAGP"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const o=require("react/jsx-runtime"),n=require("./utils-DoxiiusW.cjs");function r({className:a,children:e,orientation:t="vertical",...i}){return o.jsx("div",{className:n.cn("group/field-item flex","data-[orientation=vertical]:flex-col data-[orientation=vertical]:gap-2","data-[orientation=horizontal]:flex-row data-[orientation=horizontal]:items-center data-[orientation=horizontal]:gap-3",a),"data-label-orientation":t,"data-orientation":t,"data-slot":"field-item",...i,children:e})}exports.FieldItem=r;
|
|
2
|
+
//# sourceMappingURL=field-item-CeGEsbFj.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-item-CeGEsbFj.cjs","sources":["../src/components/field/primitives/field-item.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type FieldItemProps = ComponentProps<'div'> & {\n orientation?: 'vertical' | 'horizontal';\n};\n\nexport function FieldItem({\n className,\n children,\n orientation = 'vertical',\n ...props\n}: FieldItemProps) {\n return (\n <div\n className={cn(\n 'group/field-item flex',\n // Vertical orientation (default)\n 'data-[orientation=vertical]:flex-col data-[orientation=vertical]:gap-2',\n // Horizontal orientation\n 'data-[orientation=horizontal]:flex-row data-[orientation=horizontal]:items-center data-[orientation=horizontal]:gap-3',\n className,\n )}\n data-label-orientation={orientation}\n data-orientation={orientation}\n data-slot=\"field-item\"\n {...props}\n >\n {children}\n </div>\n );\n}\n"],"names":["FieldItem","className","children","orientation","props","jsx","cn"],"mappings":"oFAQO,SAASA,EAAU,CACxB,UAAAC,EACA,SAAAC,EACA,YAAAC,EAAc,WACd,GAAGC,CACL,EAAmB,CACjB,OACEC,EAAAA,IAAC,MAAA,CACC,UAAWC,EAAAA,GACT,wBAEA,yEAEA,wHACAL,CAAA,EAEF,yBAAwBE,EACxB,mBAAkBA,EAClB,YAAU,aACT,GAAGC,EAEH,SAAAF,CAAA,CAAA,CAGP"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { c as r } from "./utils-CRiPKpXj.js";
|
|
3
|
+
function d({
|
|
4
|
+
className: a,
|
|
5
|
+
children: i,
|
|
6
|
+
orientation: t = "vertical",
|
|
7
|
+
...o
|
|
8
|
+
}) {
|
|
9
|
+
return /* @__PURE__ */ e(
|
|
10
|
+
"div",
|
|
11
|
+
{
|
|
12
|
+
className: r(
|
|
13
|
+
"group/field-item flex",
|
|
14
|
+
// Vertical orientation (default)
|
|
15
|
+
"data-[orientation=vertical]:flex-col data-[orientation=vertical]:gap-2",
|
|
16
|
+
// Horizontal orientation
|
|
17
|
+
"data-[orientation=horizontal]:flex-row data-[orientation=horizontal]:items-center data-[orientation=horizontal]:gap-3",
|
|
18
|
+
a
|
|
19
|
+
),
|
|
20
|
+
"data-label-orientation": t,
|
|
21
|
+
"data-orientation": t,
|
|
22
|
+
"data-slot": "field-item",
|
|
23
|
+
...o,
|
|
24
|
+
children: i
|
|
25
|
+
}
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
export {
|
|
29
|
+
d as F
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=field-item-DY-IZNXs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-item-DY-IZNXs.js","sources":["../src/components/field/primitives/field-item.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type FieldItemProps = ComponentProps<'div'> & {\n orientation?: 'vertical' | 'horizontal';\n};\n\nexport function FieldItem({\n className,\n children,\n orientation = 'vertical',\n ...props\n}: FieldItemProps) {\n return (\n <div\n className={cn(\n 'group/field-item flex',\n // Vertical orientation (default)\n 'data-[orientation=vertical]:flex-col data-[orientation=vertical]:gap-2',\n // Horizontal orientation\n 'data-[orientation=horizontal]:flex-row data-[orientation=horizontal]:items-center data-[orientation=horizontal]:gap-3',\n className,\n )}\n data-label-orientation={orientation}\n data-orientation={orientation}\n data-slot=\"field-item\"\n {...props}\n >\n {children}\n </div>\n );\n}\n"],"names":["FieldItem","className","children","orientation","props","jsx","cn"],"mappings":";;AAQO,SAASA,EAAU;AAAA,EACxB,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,GAAGC;AACL,GAAmB;AACjB,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA;AAAA,QAEA;AAAA;AAAA,QAEA;AAAA,QACAL;AAAA,MAAA;AAAA,MAEF,0BAAwBE;AAAA,MACxB,oBAAkBA;AAAA,MAClB,aAAU;AAAA,MACT,GAAGC;AAAA,MAEH,UAAAF;AAAA,IAAA;AAAA,EAAA;AAGP;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { L as l } from "./label-B_fjofdS.js";
|
|
3
|
+
import { c as t } from "./utils-CRiPKpXj.js";
|
|
4
|
+
function f({ className: a, children: o, ...r }) {
|
|
5
|
+
return /* @__PURE__ */ e(l, { className: t(a), "data-slot": "field-label", ...r, children: o });
|
|
6
|
+
}
|
|
7
|
+
export {
|
|
8
|
+
f as F
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=field-label-BKlrU6b5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-label-BKlrU6b5.js","sources":["../src/components/field/primitives/field-label.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { Label } from '@/components/label';\nimport { cn } from '@/lib';\n\nexport type FieldLabelProps = ComponentProps<'label'>;\n\nexport function FieldLabel({ className, children, ...props }: FieldLabelProps) {\n return (\n <Label className={cn(className)} data-slot=\"field-label\" {...props}>\n {children}\n </Label>\n );\n}\n"],"names":["FieldLabel","className","children","props","jsx","Label","cn"],"mappings":";;;AAOO,SAASA,EAAW,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGC,KAA0B;AAC7E,SACE,gBAAAC,EAACC,GAAA,EAAM,WAAWC,EAAGL,CAAS,GAAG,aAAU,eAAe,GAAGE,GAC1D,UAAAD,EAAA,CACH;AAEJ;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const t=require("react/jsx-runtime"),i=require("./label-hiiJ-Jpk.cjs"),a=require("./utils-DoxiiusW.cjs");function r({className:e,children:l,...s}){return t.jsx(i.Label,{className:a.cn(e),"data-slot":"field-label",...s,children:l})}exports.FieldLabel=r;
|
|
2
|
+
//# sourceMappingURL=field-label-YLyRO4cQ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-label-YLyRO4cQ.cjs","sources":["../src/components/field/primitives/field-label.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { Label } from '@/components/label';\nimport { cn } from '@/lib';\n\nexport type FieldLabelProps = ComponentProps<'label'>;\n\nexport function FieldLabel({ className, children, ...props }: FieldLabelProps) {\n return (\n <Label className={cn(className)} data-slot=\"field-label\" {...props}>\n {children}\n </Label>\n );\n}\n"],"names":["FieldLabel","className","children","props","jsx","Label","cn"],"mappings":"sHAOO,SAASA,EAAW,CAAE,UAAAC,EAAW,SAAAC,EAAU,GAAGC,GAA0B,CAC7E,OACEC,MAACC,EAAAA,MAAA,CAAM,UAAWC,EAAAA,GAAGL,CAAS,EAAG,YAAU,cAAe,GAAGE,EAC1D,SAAAD,CAAA,CACH,CAEJ"}
|
package/dist/field.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./field-error-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./field-error-CxV_C7ld.cjs"),r=require("./field-item-CeGEsbFj.cjs"),i=require("./field-label-YLyRO4cQ.cjs");exports.Description=e.FieldDescription;exports.Error=e.FieldError;exports.ErrorIcon=e.FieldErrorIcon;exports.Group=e.FieldGroup;exports.Hint=e.FieldHint;exports.Legend=e.FieldLegend;exports.Separator=e.FieldSeparator;exports.Set=e.FieldSet;exports.Item=r.FieldItem;exports.Label=i.FieldLabel;
|
|
2
2
|
//# sourceMappingURL=field.cjs.map
|
package/dist/field.js
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import { c as
|
|
1
|
+
import { c as o, f as e, g as s, F as t, d as p, b as f, e as m, a as n } from "./field-error-BXJy7xv9.js";
|
|
2
|
+
import { F as i } from "./field-item-DY-IZNXs.js";
|
|
3
|
+
import { F } from "./field-label-BKlrU6b5.js";
|
|
2
4
|
export {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
t as
|
|
7
|
-
p as
|
|
8
|
-
i as
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
o as Description,
|
|
6
|
+
e as Error,
|
|
7
|
+
s as ErrorIcon,
|
|
8
|
+
t as Group,
|
|
9
|
+
p as Hint,
|
|
10
|
+
i as Item,
|
|
11
|
+
F as Label,
|
|
12
|
+
f as Legend,
|
|
13
|
+
m as Separator,
|
|
14
|
+
n as Set
|
|
12
15
|
};
|
|
13
16
|
//# sourceMappingURL=field.js.map
|
package/dist/field.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"field.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
package/dist/file-input.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),u=require("./utils-DoxiiusW.cjs"),s=require("react"),U=require("./button-BgvMm9T3.cjs"),Y=require("./index-DGaxX11V.cjs"),Z=require("./file-image-8ckBuEWu.cjs"),ee=require("./file-play-YogIRbxq.cjs"),te=require("./file-audio-D7cEc3Jr.cjs"),re=require("./file-text-B7wVmZz9.cjs"),ne=require("./file-code-CiiIRc5U.cjs"),se=require("./file-archive-Chb-MnrQ.cjs"),ie=require("./file-cog-C9hbyTce.cjs"),ae=require("./file-CLLTDda_.cjs"),K={files:new Map};function oe(t,r){switch(r.type){case"ADD_FILES":{const e=new Map(t.files);return r.files.forEach(n=>{e.has(n)||e.set(n,{file:n,progress:0,status:"idle"})}),{...t,files:e}}case"SET_PROGRESS":{const e=new Map(t.files),n=e.get(r.file);return n&&e.set(r.file,{...n,progress:r.progress,status:"uploading"}),{...t,files:e}}case"SET_SUCCESS":{const e=new Map(t.files),n=e.get(r.file);return n&&e.set(r.file,{...n,status:"success",progress:100}),{...t,files:e}}case"SET_ERROR":{const e=new Map(t.files),n=e.get(r.file);return n&&e.set(r.file,{...n,status:"error",error:r.error}),{...t,files:e}}case"REMOVE_FILE":{const e=new Map(t.files);return e.delete(r.file),{...t,files:e}}case"CLEAR":return K;default:return t}}const V=s.createContext(null);function C(){const t=s.useContext(V);if(!t)throw new Error("useFileInput must be used within a FileInputRoot");return t}function le({id:t,children:r,className:e,accept:n,multiple:i,disabled:m,invalid:p,name:h,maxFiles:b,maxSize:v,onFileValidate:I,onFileAccept:D,onFileReject:w,onUploadFile:z,onUploadSuccess:T,onUploadError:N,...M}){const o=s.useRef(null),g=`${t}-input`,[y,E]=s.useReducer(oe,K),[S,L]=s.useState(void 0),_=s.useCallback((f,d)=>{E({type:"SET_PROGRESS",file:f,progress:d})},[]),q=s.useCallback(f=>{E({type:"SET_SUCCESS",file:f})},[]),O=s.useCallback((f,d)=>{E({type:"SET_ERROR",file:f,error:d})},[]),W=s.useCallback(f=>{E({type:"ADD_FILES",files:f})},[]),H=s.useCallback(f=>{const d=o.current;if(d?.files){const R=new DataTransfer;Array.from(d.files).filter(a=>a!==f).forEach(a=>R.items.add(a)),d.files=R.files}E({type:"REMOVE_FILE",file:f})},[]),G=s.useCallback(()=>{o.current?.click()},[]),$=s.useCallback(f=>{const d=[],R=[];f.forEach(a=>{let F=!1,c="";if(I){const x=I(a);x!=null&&(c=x,F=!0)}if(!F&&n!=null){const x=n.split(",").map(j=>j.trim().toLowerCase()),P=a.type.toLowerCase(),Q=`.${a.name.split(".").pop()?.toLowerCase()}`;x.some(j=>j===P||j===Q||j.endsWith("/*")&&P.startsWith(j.slice(0,-1)))||(c="File type not accepted",F=!0)}!F&&v!=null&&a.size>v&&(c="File size exceeds limit",F=!0),F?(L(c),w?.(a,c)):(L(void 0),D?.(a),d.push(a),R.push(a))});const A=o.current;if(A){const a=new DataTransfer,c=[...Array.from(y.files.keys()),...R],x=b!=null?c.slice(0,b):c;x.forEach(P=>a.items.add(P)),A.files=a.files,W(x)}d.length>0&&(z?d.forEach(a=>{_(a,0);const F=c=>{_(a,c)};Promise.resolve(z(a,F)).then(c=>{q(a),T?.(a,c)}).catch(c=>{const x=c instanceof Error?c:new Error("Upload failed");O(a,x.message),N?.(a,x)})}):d.forEach(a=>{q(a)}))},[n,b,v,y.files,I,D,w,z,T,N,W,_,q,O]),X=s.useCallback(f=>{const d=Array.from(f.target.files??[]);$(d)},[$]),J=s.useMemo(()=>({files:y.files,id:t,inputId:g,inputRef:o,disabled:m,invalid:p,validationError:S,addFiles:$,removeFile:H,openFilePicker:G}),[y.files,t,g,m,p,S,$,H,G]);return l.jsx(V.Provider,{value:J,children:l.jsxs("div",{"aria-disabled":m===!0?!0:void 0,"aria-invalid":p===!0||S!=null?!0:void 0,className:u.clsx("group",e,"@container"),...M,children:[l.jsx("input",{accept:n,className:"sr-only",disabled:m,id:g,multiple:i,name:h,onChange:X,ref:o,tabIndex:-1,type:"file"}),r]})})}function ue({children:t,className:r,...e}){const{id:n,disabled:i,invalid:m,addFiles:p,openFilePicker:h}=C(),[b,v]=s.useState(!1),I=s.useCallback(o=>{o.preventDefault(),v(!1);const g=Array.from(o.dataTransfer.files);p(g)},[p]),D=s.useCallback(o=>{o.preventDefault(),v(!0)},[]),w=s.useCallback(o=>{o.preventDefault(),v(!0)},[]),z=s.useCallback(o=>{const g=o.relatedTarget;g&&g instanceof Node&&o.currentTarget.contains(g)||(o.preventDefault(),v(!1))},[]),T=s.useCallback(o=>{(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),h())},[h]),N=s.useCallback(o=>{o.preventDefault(),v(!1);const g=o.clipboardData.items;if(g.length===0)return;const y=[];for(const E of Array.from(g))if(E.kind==="file"){const S=E.getAsFile();S&&y.push(S)}y.length!==0&&p(y)},[p]),M=s.useCallback(()=>{h()},[h]);return l.jsx("div",{"aria-controls":`${n}-input ${n}-list`,"aria-disabled":i===!0?!0:void 0,"aria-invalid":m===!0?!0:void 0,className:u.clsx("min-h-19 flex flex-col items-center justify-center gap-1.5","p-4","rounded-lg border-[1.5px] border-dashed border-[var(--file-input-dropzone-border,hsl(var(--contrast-200)))]","bg-[var(--file-input-dropzone-background,hsl(var(--background)))]","cursor-pointer select-none","transition-colors duration-300 ease-in-out","hover:border-[var(--file-input-dropzone-border-hover,hsl(var(--foreground)))] hover:bg-[var(--file-input-dropzone-background-hover,hsl(var(--contrast-100)))]","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--file-input-focus,hsl(var(--primary)))] focus-visible:ring-offset-2","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)))]","group-aria-disabled:focus-visible:outline-none group-aria-disabled:focus-visible:ring-0 group-aria-disabled:focus-visible:ring-offset-0","group-aria-invalid:border-[var(--file-input-dropzone-border-error,hsl(var(--error)))]","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%))]","@sm:flex-row",r),"data-dragging":b?"":void 0,onClick:M,onDragEnter:w,onDragLeave:z,onDragOver:D,onDrop:I,onKeyDown:T,onPaste:N,role:"button",tabIndex:i===!0?-1:0,...e,children:t})}function ce({children:t,disabled:r,...e}){const{inputId:n,disabled:i,openFilePicker:m}=C(),p=r??i;return l.jsx(U.Button,{"aria-controls":`${n}-input`,className:"pointer-events-none",disabled:p,onClick:m,size:"small",tabIndex:-1,type:"button",variant:"outline",...e,children:t})}const B=s.createContext(void 0);function fe({className:t,children:r,file:e,...n}){const i=s.useId(),{files:m,removeFile:p}=C(),h=s.useRef(!1),b=m.get(e),v=s.useCallback(()=>p(e),[p,e]);if(!b)return null;const I=s.useMemo(()=>({file:e,fileState:b,generatedId:i,removeFile:v}),[e,b,i,v]);s.useEffect(()=>{h.current||setTimeout(()=>{h.current=!0},300)},[b]);const{status:D,error:w}=b;return l.jsx(B.Provider,{value:I,children:l.jsx("div",{"aria-describedby":`${i}-status${w!=null?` ${i}-error`:""}`.trim(),"aria-invalid":D==="error","aria-labelledby":`${i}-name`,className:u.cn("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","data-[start-animation]:animate-in data-[start-animation]:fade-in-0 data-[start-animation]:slide-in-from-top-2","aria-invalid:border-[var(--file-input-item-border-error,hsl(var(--error)))]",t),"data-slot":"file-input-item","data-start-animation":h.current?void 0:"",role:"listitem",...n,children:typeof r=="function"?r(I):r})})}function k(){const t=s.use(B);if(!t)throw new Error("useFileInputItem must be used within a FileInputItem");return t}function de({className:t,children:r,...e}){const{id:n,files:i}=C();if(i.size===0)return null;const m=s.useMemo(()=>({files:i}),[i]);return l.jsx("div",{className:u.cn("mt-3 grid gap-3",t),"data-slot":"file-input-list",id:`${n}-list`,role:"list",...e,children:typeof r=="function"?r(m):r})}function pe({className:t,children:r,...e}){const{id:n}=C();return l.jsx("p",{className:u.cn("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)))]",t),"data-slot":"file-input-message",id:`${n}-message`,...e,children:r})}function me({className:t,children:r,...e}){const{id:n,validationError:i}=C();return i!=null?null:l.jsx("p",{className:u.cn("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)))]","group-aria-disabled:text-[var(--file-input-dropzone-message-disabled,color-mix(in_oklab,hsl(var(--contrast-500))_70%,transparent))]",t),"data-slot":"file-input-dropzone-hint",id:`${n}-hint`,...e,children:r})}function ve({className:t,children:r,...e}){const{id:n,validationError:i}=C();return i==null?null:l.jsx("p",{className:u.cn("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)))]",t),"data-slot":"file-input-dropzone-error",id:`${n}-error`,role:"alert",...e,children:r??i})}function ge({className:t,children:r,...e}){return l.jsx("div",{className:u.cn("flex min-w-0 flex-1 flex-col",t),"data-slot":"file-input-metadata",...e,children:r})}function be({className:t,children:r,...e}){return l.jsx("div",{className:u.cn("flex-1",t),"data-slot":"file-input-details",...e,children:r})}function he({className:t,children:r,...e}){return l.jsx("div",{className:u.cn("flex items-center gap-1 font-[family-name:var(--file-input-item-name-font-family,var(--font-family-body))]",t),"data-slot":"file-input-header",...e,children:r})}function xe({className:t,children:r,...e}){const{generatedId:n}=k();return l.jsx("p",{className:u.cn("truncate text-sm font-semibold text-[var(--file-input-item-name,hsl(var(--foreground)))]",t),"data-slot":"file-input-name",id:`${n}-name`,...e,children:r})}function Fe({className:t,children:r,...e}){const{generatedId:n}=k();return l.jsx("p",{className:u.cn("text-xs font-normal text-[var(--file-input-item-status,hsl(var(--contrast-500)))]",t),"data-slot":"file-input-status",id:`${n}-status`,...e,children:r})}function Ie({className:t,children:r,...e}){const{generatedId:n}=k();return l.jsx("p",{className:u.cn("text-xs font-normal text-[var(--file-input-item-status-error,hsl(var(--error)))]",t),"data-slot":"file-input-error",id:`${n}-error`,...e,children:r})}function ye({className:t,children:r,...e}){const{fileState:{file:{name:n}},removeFile:i}=k();return l.jsx("button",{"aria-label":`Remove ${n}`,className:u.cn("inline-flex size-8 cursor-pointer items-center justify-center rounded-full transition-colors","hover:bg-[var(--file-input-item-delete-hover,hsl(var(--contrast-100)))]","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--file-input-focus,hsl(var(--primary)))]",t),"data-slot":"file-input-remove",onClick:i,type:"button",...e,children:r})}function Ee({className:t,...r}){const{generatedId:e,fileState:{progress:n}}=k();return l.jsx("div",{"aria-labelledby":`${e}-name`,"aria-valuemax":100,"aria-valuemin":0,"aria-valuenow":n,"aria-valuetext":`${n}%`,className:u.cn("absolute bottom-0 left-0 h-1 w-full bg-[var(--file-input-item-progress,hsl(var(--primary)))] transition-transform duration-300 ease-linear",t),role:"progressbar",style:{transform:`translateX(-${100-n}%)`},...r})}function Ce({asChild:t=!1,className:r,children:e}){const{fileState:n}=k(),i=ke(n.file);return t?l.jsx(Y.Slot,{className:u.cn("size-4 text-[var(--file-input-icon,hsl(var(--contrast-400)))]",r),"data-slot":"file-input-icon",children:e}):l.jsx(i,{className:u.cn("size-4 text-[var(--file-input-icon,hsl(var(--contrast-400)))]",r),"data-slot":"file-input-icon"})}function ke(t){const r=t.type,e=t.name.split(".").pop()?.toLowerCase()??"";return r.startsWith("image/")?Z.default:r.startsWith("video/")?ee.default:r.startsWith("audio/")?te.default:r.startsWith("text/")||["txt","md","rtf","pdf"].includes(e)?re.default:["html","css","js","jsx","ts","tsx","json","xml","php","py","rb","java","c","cpp","cs"].includes(e)?ne.default:["zip","rar","7z","tar","gz","bz2"].includes(e)?se.default:["exe","msi","app","apk","deb","rpm"].includes(e)||r.startsWith("application/")?ie.default:ae.default}exports.Details=be;exports.Dropzone=ue;exports.DropzoneError=ve;exports.DropzoneHint=me;exports.Error=Ie;exports.Header=he;exports.Icon=Ce;exports.Item=fe;exports.List=de;exports.Message=pe;exports.Metadata=ge;exports.Name=xe;exports.Progress=Ee;exports.Remove=ye;exports.Root=le;exports.Status=Fe;exports.Trigger=ce;exports.useFileInput=C;exports.useFileInputItem=k;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),i=require("react"),u=require("./utils-DoxiiusW.cjs"),Y=require("./button-bfAfHC_O.cjs"),A=require("./index-DGaxX11V.cjs"),Z=require("./file-image-8ckBuEWu.cjs"),ee=require("./file-play-YogIRbxq.cjs"),te=require("./file-audio-D7cEc3Jr.cjs"),re=require("./file-text-B7wVmZz9.cjs"),ne=require("./file-code-CiiIRc5U.cjs"),ie=require("./file-archive-Chb-MnrQ.cjs"),se=require("./file-cog-C9hbyTce.cjs"),ae=require("./file-CLLTDda_.cjs"),oe=require("./upload-CKHXeIW0.cjs"),le=require("./x-Wx1ZM0Wd.cjs"),ue=require("./label-hiiJ-Jpk.cjs"),U={files:new Map};function ce(t,r){switch(r.type){case"ADD_FILES":{const e=new Map(t.files);return r.files.forEach(n=>{e.has(n)||e.set(n,{file:n,progress:0,status:"idle"})}),{...t,files:e}}case"SET_PROGRESS":{const e=new Map(t.files),n=e.get(r.file);return n&&e.set(r.file,{...n,progress:r.progress,status:"uploading"}),{...t,files:e}}case"SET_SUCCESS":{const e=new Map(t.files),n=e.get(r.file);return n&&e.set(r.file,{...n,status:"success",progress:100}),{...t,files:e}}case"SET_ERROR":{const e=new Map(t.files),n=e.get(r.file);return n&&e.set(r.file,{...n,status:"error",error:r.error}),{...t,files:e}}case"REMOVE_FILE":{const e=new Map(t.files);return e.delete(r.file),{...t,files:e}}case"CLEAR":return U;default:return t}}const V=i.createContext(null);function F(){const t=i.useContext(V);if(!t)throw new Error("useFileInput must be used within a FileInputRoot");return t}function fe({id:t,children:r,className:e,accept:n,multiple:a,disabled:m,invalid:p,name:x,maxFiles:b,maxSize:v,onFileValidate:y,onFileAccept:S,onFileReject:j,onUploadFile:w,onUploadSuccess:N,onUploadError:T,...M}){const l=i.useRef(null),g=`${t}-input`,[E,k]=i.useReducer(ce,U),[D,W]=i.useState(void 0),q=i.useCallback((f,d)=>{k({type:"SET_PROGRESS",file:f,progress:d})},[]),L=i.useCallback(f=>{k({type:"SET_SUCCESS",file:f})},[]),O=i.useCallback((f,d)=>{k({type:"SET_ERROR",file:f,error:d})},[]),H=i.useCallback(f=>{k({type:"ADD_FILES",files:f})},[]),G=i.useCallback(f=>{const d=l.current;if(d?.files){const R=new DataTransfer;Array.from(d.files).filter(o=>o!==f).forEach(o=>R.items.add(o)),d.files=R.files}k({type:"REMOVE_FILE",file:f})},[]),K=i.useCallback(()=>{l.current?.click()},[]),$=i.useCallback(f=>{const d=[],R=[];f.forEach(o=>{let h=!1,c="";if(y){const I=y(o);I!=null&&(c=I,h=!0)}if(!h&&n!=null){const I=n.split(",").map(z=>z.trim().toLowerCase()),P=o.type.toLowerCase(),Q=`.${o.name.split(".").pop()?.toLowerCase()}`;I.some(z=>z===P||z===Q||z.endsWith("/*")&&P.startsWith(z.slice(0,-1)))||(c="File type not accepted",h=!0)}!h&&v!=null&&o.size>v&&(c="File size exceeds limit",h=!0),h?(W(c),j?.(o,c)):(W(void 0),S?.(o),d.push(o),R.push(o))});const _=l.current;if(_){const o=new DataTransfer,c=[...Array.from(E.files.keys()),...R],I=b!=null?c.slice(0,b):c;I.forEach(P=>o.items.add(P)),_.files=o.files,H(I)}d.length>0&&(w?d.forEach(o=>{q(o,0);const h=c=>{q(o,c)};Promise.resolve(w(o,h)).then(c=>{L(o),N?.(o,c)}).catch(c=>{const I=c instanceof Error?c:new Error("Upload failed");O(o,I.message),T?.(o,I)})}):d.forEach(o=>{L(o)}))},[n,b,v,E.files,y,S,j,w,N,T,H,q,L,O]),X=i.useCallback(f=>{const d=Array.from(f.target.files??[]);$(d)},[$]),J=i.useMemo(()=>({files:E.files,id:t,inputId:g,inputRef:l,disabled:m,invalid:p,validationError:D,addFiles:$,removeFile:G,openFilePicker:K}),[E.files,t,g,m,p,D,$,G,K]);return s.jsx(V.Provider,{value:J,children:s.jsxs("div",{"aria-disabled":m===!0?!0:void 0,"aria-invalid":p===!0||D!=null?!0:void 0,className:u.cn("group/file-input @container",e),"data-slot":"file-input-root",...M,children:[s.jsx("input",{accept:n,className:"sr-only",disabled:m,id:g,multiple:a,name:x,onChange:X,ref:l,tabIndex:-1,type:"file"}),r]})})}function de({children:t,className:r,...e}){const{id:n,disabled:a,invalid:m,addFiles:p,openFilePicker:x}=F(),[b,v]=i.useState(!1),y=i.useCallback(l=>{l.preventDefault(),v(!1);const g=Array.from(l.dataTransfer.files);p(g)},[p]),S=i.useCallback(l=>{l.preventDefault(),v(!0)},[]),j=i.useCallback(l=>{l.preventDefault(),v(!0)},[]),w=i.useCallback(l=>{const g=l.relatedTarget;g&&g instanceof Node&&l.currentTarget.contains(g)||(l.preventDefault(),v(!1))},[]),N=i.useCallback(l=>{(l.key==="Enter"||l.key===" ")&&(l.preventDefault(),x())},[x]),T=i.useCallback(l=>{l.preventDefault(),v(!1);const g=l.clipboardData.items;if(g.length===0)return;const E=[];for(const k of Array.from(g))if(k.kind==="file"){const D=k.getAsFile();D&&E.push(D)}E.length!==0&&p(E)},[p]),M=i.useCallback(()=>{x()},[x]);return s.jsx("div",{"aria-controls":`${n}-input ${n}-list`,"aria-disabled":a===!0?!0:void 0,"aria-invalid":m===!0?!0:void 0,className:u.cn("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","hover:border-[var(--file-input-dropzone-border-hover,var(--foreground))] hover:bg-[var(--file-input-dropzone-background-hover,var(--contrast-100))]","focus:outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--file-input-focus,var(--brand))]","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))]","group-aria-disabled/file-input:focus-visible:outline-0","group-aria-invalid/file-input:border-[var(--file-input-dropzone-border-error,var(--error))]","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%))]","@sm:flex-row",r),"data-dragging":b?"":void 0,"data-slot":"file-input-dropzone",onClick:M,onDragEnter:j,onDragLeave:w,onDragOver:S,onDrop:y,onKeyDown:N,onPaste:T,role:"button",tabIndex:a===!0?-1:0,...e,children:t})}function pe({children:t,disabled:r,...e}){const{inputId:n,disabled:a,openFilePicker:m}=F(),p=r??a;return s.jsx(Y.Button,{"aria-controls":`${n}-input`,className:"pointer-events-none","data-slot":"file-input-trigger",disabled:p,onClick:m,size:"small",tabIndex:-1,type:"button",variant:"outline",...e,children:t})}const B=i.createContext(void 0);function me({className:t,children:r,file:e,...n}){const a=i.useId(),{files:m,removeFile:p}=F(),x=i.useRef(!1),b=m.get(e),v=i.useCallback(()=>p(e),[p,e]);if(!b)return null;const y=i.useMemo(()=>({file:e,fileState:b,generatedId:a,removeFile:v}),[e,b,a,v]);i.useEffect(()=>{x.current||setTimeout(()=>{x.current=!0},300)},[b]);const{status:S,error:j}=b;return s.jsx(B.Provider,{value:y,children:s.jsx("div",{"aria-describedby":`${a}-status${j!=null?` ${a}-error`:""}`.trim(),"aria-invalid":S==="error","aria-labelledby":`${a}-name`,className:u.cn("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","data-[start-animation]:animate-in data-[start-animation]:fade-in-0 data-[start-animation]:slide-in-from-top-2","aria-invalid:border-[var(--file-input-item-border-error,var(--error))]",t),"data-slot":"file-input-item","data-start-animation":x.current?void 0:"",role:"listitem",...n,children:typeof r=="function"?r(y):r})})}function C(){const t=i.use(B);if(!t)throw new Error("useFileInputItem must be used within a FileInputItem");return t}function ve({className:t,children:r,...e}){const{id:n,files:a}=F();if(a.size===0)return null;const m=i.useMemo(()=>({files:a}),[a]);return s.jsx("div",{className:u.cn("mt-3 grid gap-3",t),"data-slot":"file-input-list",id:`${n}-list`,role:"list",...e,children:typeof r=="function"?r(m):r})}function ge({className:t,children:r,...e}){const{id:n}=F();return s.jsx("p",{className:u.cn("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))]",t),"data-slot":"file-input-message",id:`${n}-message`,...e,children:r})}function be({className:t,children:r,...e}){const{id:n,validationError:a}=F();return a!=null?null:s.jsx("p",{className:u.cn("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))]","group-aria-disabled/file-input:text-[var(--file-input-dropzone-message-disabled,color-mix(in_oklab,var(--contrast-500)_70%,transparent))]",t),"data-slot":"file-input-dropzone-hint",id:`${n}-hint`,...e,children:r})}function xe({className:t,children:r,...e}){const{id:n,validationError:a}=F();return a==null?null:s.jsx("p",{className:u.cn("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))]",t),"data-slot":"file-input-dropzone-error",id:`${n}-error`,role:"alert",...e,children:r??a})}function Ie({className:t,children:r,...e}){return s.jsx("div",{className:u.cn("flex min-w-0 flex-1 flex-col",t),"data-slot":"file-input-metadata",...e,children:r})}function he({className:t,children:r,...e}){return s.jsx("div",{className:u.cn("flex-1",t),"data-slot":"file-input-details",...e,children:r})}function Fe({className:t,children:r,...e}){return s.jsx("div",{className:u.cn("flex items-center gap-1 font-[family-name:var(--file-input-item-name-font-family,var(--font-family-body))]",t),"data-slot":"file-input-header",...e,children:r})}function ye({className:t,children:r,...e}){const{generatedId:n}=C();return s.jsx("p",{className:u.cn("truncate text-sm font-semibold text-[var(--file-input-item-name,var(--foreground))]",t),"data-slot":"file-input-name",id:`${n}-name`,...e,children:r})}function Ee({className:t,children:r,...e}){const{generatedId:n}=C();return s.jsx("p",{className:u.cn("text-xs font-normal text-[var(--file-input-item-status,var(--contrast-500))]",t),"data-slot":"file-input-status",id:`${n}-status`,...e,children:r})}function ke({className:t,children:r,...e}){const{generatedId:n}=C();return s.jsx("p",{className:u.cn("text-xs font-normal text-[var(--file-input-item-status-error,var(--error))]",t),"data-slot":"file-input-error",id:`${n}-error`,...e,children:r})}function Ce({className:t,children:r,...e}){const{fileState:{file:{name:n}},removeFile:a}=C();return s.jsx("button",{"aria-label":`Remove ${n}`,className:u.cn("inline-flex size-8 cursor-pointer items-center justify-center rounded-full transition-colors","hover:bg-[var(--file-input-item-delete-hover,var(--contrast-100))]","focus:outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--file-input-focus,var(--brand))]",t),"data-slot":"file-input-remove",onClick:a,type:"button",...e,children:r})}function Se({className:t,...r}){const{generatedId:e,fileState:{progress:n}}=C();return s.jsx("div",{"aria-labelledby":`${e}-name`,"aria-valuemax":100,"aria-valuemin":0,"aria-valuenow":n,"aria-valuetext":`${n}%`,className:u.cn("absolute bottom-0 left-0 h-1 w-full bg-[var(--file-input-item-progress,var(--brand))] transition-transform duration-300 ease-linear",t),"data-slot":"file-input-progress",role:"progressbar",style:{transform:`translateX(-${100-n}%)`},...r})}function je({asChild:t=!1,className:r,children:e}){const{fileState:n}=C(),a=De(n.file);return t?s.jsx(A.Slot,{className:u.cn("size-4 text-[var(--file-input-icon,var(--contrast-400))]",r),"data-slot":"file-input-icon",children:e}):s.jsx(a,{className:u.cn("size-4 text-[var(--file-input-icon,var(--contrast-400))]",r),"data-slot":"file-input-icon"})}function De(t){const r=t.type,e=t.name.split(".").pop()?.toLowerCase()??"";return r.startsWith("image/")?Z.default:r.startsWith("video/")?ee.default:r.startsWith("audio/")?te.default:r.startsWith("text/")||["txt","md","rtf","pdf"].includes(e)?re.default:["html","css","js","jsx","ts","tsx","json","xml","php","py","rb","java","c","cpp","cs"].includes(e)?ne.default:["zip","rar","7z","tar","gz","bz2"].includes(e)?ie.default:["exe","msi","app","apk","deb","rpm"].includes(e)||r.startsWith("application/")?se.default:ae.default}function ze({asChild:t=!1,className:r,children:e}){const n=u.cn("size-5 text-[var(--file-input-trigger-icon,var(--foreground))]",r);return t?s.jsx(A.Slot,{className:n,"data-slot":"file-input-upload-icon",children:e}):s.jsx(oe.default,{absoluteStrokeWidth:!0,className:n,color:"currentColor","data-slot":"file-input-upload-icon",strokeWidth:1.5})}function we({asChild:t=!1,className:r,children:e}){const n=u.cn("size-5 text-[var(--file-input-item-delete-icon,var(--foreground))]",r);return t?s.jsx(A.Slot,{className:n,"data-slot":"file-input-remove-icon",children:e}):s.jsx(le.default,{absoluteStrokeWidth:!0,className:n,color:"currentColor","data-slot":"file-input-remove-icon",strokeWidth:1.5})}function Re({className:t,children:r,...e}){const{inputId:n}=F();return s.jsx(ue.Label,{className:u.cn(t),"data-slot":"file-input-label",htmlFor:`${n}-input`,...e,children:r})}exports.Details=he;exports.Dropzone=de;exports.DropzoneError=xe;exports.DropzoneHint=be;exports.Error=ke;exports.Header=Fe;exports.Icon=je;exports.Item=me;exports.Label=Re;exports.List=ve;exports.Message=ge;exports.Metadata=Ie;exports.Name=ye;exports.Progress=Se;exports.Remove=Ce;exports.RemoveIcon=we;exports.Root=fe;exports.Status=Ee;exports.Trigger=pe;exports.UploadIcon=ze;exports.useFileInput=F;exports.useFileInputItem=C;
|
|
2
2
|
//# sourceMappingURL=file-input.cjs.map
|
package/dist/file-input.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-input.cjs","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.cjs","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":"2oBAkCMA,EAA+B,CACnC,UAAW,GACb,EAEA,SAASC,GAAiBC,EAAuBC,EAAyC,CACxF,OAAQA,EAAO,KAAA,CACb,IAAK,YAAa,CAChB,MAAMC,EAAW,IAAI,IAAIF,EAAM,KAAK,EAEpC,OAAAC,EAAO,MAAM,QAASE,GAAS,CACxBD,EAAS,IAAIC,CAAI,GACpBD,EAAS,IAAIC,EAAM,CACjB,KAAAA,EACA,SAAU,EACV,OAAQ,MAAA,CACT,CAEL,CAAC,EAEM,CAAE,GAAGH,EAAO,MAAOE,CAAA,CAC5B,CAEA,IAAK,eAAgB,CACnB,MAAME,EAAe,IAAI,IAAIJ,EAAM,KAAK,EAClCK,EAAYD,EAAa,IAAIH,EAAO,IAAI,EAE9C,OAAII,GACFD,EAAa,IAAIH,EAAO,KAAM,CAC5B,GAAGI,EACH,SAAUJ,EAAO,SACjB,OAAQ,WAAA,CACT,EAGI,CAAE,GAAGD,EAAO,MAAOI,CAAA,CAC5B,CAEA,IAAK,cAAe,CAClB,MAAME,EAAe,IAAI,IAAIN,EAAM,KAAK,EAClCK,EAAYC,EAAa,IAAIL,EAAO,IAAI,EAE9C,OAAII,GACFC,EAAa,IAAIL,EAAO,KAAM,CAC5B,GAAGI,EACH,OAAQ,UACR,SAAU,GAAA,CACX,EAGI,CAAE,GAAGL,EAAO,MAAOM,CAAA,CAC5B,CAEA,IAAK,YAAa,CAChB,MAAMC,EAAa,IAAI,IAAIP,EAAM,KAAK,EAChCK,EAAYE,EAAW,IAAIN,EAAO,IAAI,EAE5C,OAAII,GACFE,EAAW,IAAIN,EAAO,KAAM,CAC1B,GAAGI,EACH,OAAQ,QACR,MAAOJ,EAAO,KAAA,CACf,EAGI,CAAE,GAAGD,EAAO,MAAOO,CAAA,CAC5B,CAEA,IAAK,cAAe,CAClB,MAAMC,EAAc,IAAI,IAAIR,EAAM,KAAK,EAEvC,OAAAQ,EAAY,OAAOP,EAAO,IAAI,EAEvB,CAAE,GAAGD,EAAO,MAAOQ,CAAA,CAC5B,CAEA,IAAK,QACH,OAAOV,EAET,QACE,OAAOE,CAAA,CAEb,CAeA,MAAMS,EAAmBC,EAAAA,cAA4C,IAAI,EAElE,SAASC,GAAe,CAC7B,MAAMC,EAAUC,EAAAA,WAAWJ,CAAgB,EAE3C,GAAI,CAACG,EACH,MAAM,IAAI,MAAM,kDAAkD,EAGpE,OAAOA,CACT,CAqBO,SAASE,GAAc,CAC5B,GAAAC,EACA,SAAAC,EACA,UAAAC,EACA,OAAAC,EACA,SAAAC,EACA,SAAAC,EACA,QAAAC,EACA,KAAAC,EACA,SAAAC,EACA,QAAAC,EACA,eAAAC,EACA,aAAAC,EACA,aAAAC,EACA,aAAAC,EACA,gBAAAC,EACA,cAAAC,EACA,GAAGC,CACL,EAAuB,CACrB,MAAMC,EAAWC,EAAAA,OAAgC,IAAI,EAC/CC,EAAU,GAAGnB,CAAE,SAEf,CAACf,EAAOmC,CAAQ,EAAIC,EAAAA,WAAWrC,GAAkBD,CAAY,EAC7D,CAACuC,EAAiBC,CAAkB,EAAIC,EAAAA,SAA6B,MAAS,EAE9EC,EAAcC,EAAAA,YAAY,CAACtC,EAAYuC,IAAqB,CAChEP,EAAS,CAAE,KAAM,eAAgB,KAAAhC,EAAM,SAAAuC,EAAU,CACnD,EAAG,CAAA,CAAE,EAECC,EAAaF,cAAatC,GAAe,CAC7CgC,EAAS,CAAE,KAAM,cAAe,KAAAhC,CAAA,CAAM,CACxC,EAAG,CAAA,CAAE,EAECyC,EAAWH,EAAAA,YAAY,CAACtC,EAAY0C,IAAkB,CAC1DV,EAAS,CAAE,KAAM,YAAa,KAAAhC,EAAM,MAAA0C,EAAO,CAC7C,EAAG,CAAA,CAAE,EAECC,EAAkBL,cAAaM,GAAkB,CACrDZ,EAAS,CAAE,KAAM,YAAa,MAAAY,CAAA,CAAO,CACvC,EAAG,CAAA,CAAE,EAECC,EAAaP,cAAatC,GAAe,CAC7C,MAAM8C,EAAQjB,EAAS,QAEvB,GAAIiB,GAAO,MAAO,CAChB,MAAMC,EAAe,IAAI,aACJ,MAAM,KAAKD,EAAM,KAAK,EAE9B,OAAQE,GAAMA,IAAMhD,CAAI,EAAE,QAASgD,GAAMD,EAAa,MAAM,IAAIC,CAAC,CAAC,EAE/EF,EAAM,MAAQC,EAAa,KAC7B,CAEAf,EAAS,CAAE,KAAM,cAAe,KAAAhC,CAAA,CAAM,CACxC,EAAG,CAAA,CAAE,EAECiD,EAAiBX,EAAAA,YAAY,IAAM,CACvCT,EAAS,SAAS,MAAA,CACpB,EAAG,CAAA,CAAE,EAECqB,EAAeZ,EAAAA,YAClBvC,GAAqB,CACpB,MAAMoD,EAAwB,CAAA,EACxBC,EAAwB,CAAA,EAE9BrD,EAAS,QAASC,GAAS,CACzB,IAAIqD,EAAW,GACXC,EAAkB,GAEtB,GAAIhC,EAAgB,CAClB,MAAMiC,EAAoBjC,EAAetB,CAAI,EAEzCuD,GAAqB,OACvBD,EAAkBC,EAClBF,EAAW,GAEf,CAEA,GAAI,CAACA,GAAYtC,GAAU,KAAM,CAC/B,MAAMyC,EAAczC,EAAO,MAAM,GAAG,EAAE,IAAK0C,GAAMA,EAAE,KAAA,EAAO,YAAA,CAAa,EACjEC,EAAW1D,EAAK,KAAK,YAAA,EACrB2D,EAAgB,IAAI3D,EAAK,KAAK,MAAM,GAAG,EAAE,OAAO,YAAA,CAAa,GAEhDwD,EAAY,KAC5BI,GACCA,IAASF,GACTE,IAASD,GACRC,EAAK,SAAS,IAAI,GAAKF,EAAS,WAAWE,EAAK,MAAM,EAAG,EAAE,CAAC,CAAA,IAI/DN,EAAkB,yBAClBD,EAAW,GAEf,CAEI,CAACA,GAAYhC,GAAW,MAAQrB,EAAK,KAAOqB,IAC9CiC,EAAkB,0BAClBD,EAAW,IAGTA,GACFlB,EAAmBmB,CAAe,EAClC9B,IAAexB,EAAMsD,CAAe,IAEpCnB,EAAmB,MAAS,EAC5BZ,IAAevB,CAAI,EACnBmD,EAAc,KAAKnD,CAAI,EACvBoD,EAAc,KAAKpD,CAAI,EAE3B,CAAC,EAED,MAAM8C,EAAQjB,EAAS,QAEvB,GAAIiB,EAAO,CACT,MAAMC,EAAe,IAAI,aAEnBc,EAAW,CAAC,GADI,MAAM,KAAKhE,EAAM,MAAM,MAAM,EACf,GAAGuD,CAAa,EAC9CU,EAAe1C,GAAY,KAAOyC,EAAS,MAAM,EAAGzC,CAAQ,EAAIyC,EAEtEC,EAAa,QAAS9D,GAAS+C,EAAa,MAAM,IAAI/C,CAAI,CAAC,EAC3D8C,EAAM,MAAQC,EAAa,MAE3BJ,EAAgBmB,CAAY,CAC9B,CAEIX,EAAc,OAAS,IACrB1B,EACF0B,EAAc,QAASnD,GAAS,CAC9BqC,EAAYrC,EAAM,CAAC,EAEnB,MAAM+D,EAAkBxB,GAAqB,CAC3CF,EAAYrC,EAAMuC,CAAQ,CAC5B,EAEK,QAAQ,QAAQd,EAAazB,EAAM+D,CAAc,CAAC,EACpD,KAAMC,GAAW,CAChBxB,EAAWxC,CAAI,EACf0B,IAAkB1B,EAAMgE,CAAM,CAChC,CAAC,EACA,MAAOtB,GAAmB,CACzB,MAAMuB,EAAMvB,aAAiB,MAAQA,EAAQ,IAAI,MAAM,eAAe,EAEtED,EAASzC,EAAMiE,EAAI,OAAO,EAC1BtC,IAAgB3B,EAAMiE,CAAG,CAC3B,CAAC,CACL,CAAC,EAEDd,EAAc,QAASnD,GAAS,CAC9BwC,EAAWxC,CAAI,CACjB,CAAC,EAGP,EACA,CACEe,EACAK,EACAC,EACAxB,EAAM,MACNyB,EACAC,EACAC,EACAC,EACAC,EACAC,EACAgB,EACAN,EACAG,EACAC,CAAA,CACF,EAGIyB,EAAe5B,EAAAA,YAClB6B,GAAyC,CACxC,MAAMpE,EAAW,MAAM,KAAKoE,EAAM,OAAO,OAAS,EAAE,EAEpDjB,EAAanD,CAAQ,CACvB,EACA,CAACmD,CAAY,CAAA,EAGTkB,EAAeC,EAAAA,QACnB,KAAO,CACL,MAAOxE,EAAM,MACb,GAAAe,EACA,QAAAmB,EACA,SAAAF,EACA,SAAAZ,EACA,QAAAC,EACA,gBAAAgB,EACA,SAAUgB,EACV,WAAAL,EACA,eAAAI,CAAA,GAEF,CACEpD,EAAM,MACNe,EACAmB,EACAd,EACAC,EACAgB,EACAgB,EACAL,EACAI,CAAA,CACF,EAGF,OACEqB,EAAAA,IAAChE,EAAiB,SAAjB,CAA0B,MAAO8D,EAChC,SAAAG,EAAAA,KAAC,MAAA,CACC,gBAAetD,IAAa,GAAO,GAAO,OAC1C,eAAcC,IAAY,IAAQgB,GAAmB,KAAO,GAAO,OACnE,UAAWsC,EAAAA,GAAG,8BAA+B1D,CAAS,EACtD,YAAU,kBACT,GAAGc,EAEJ,SAAA,CAAA0C,EAAAA,IAAC,QAAA,CACC,OAAAvD,EACA,UAAU,UACV,SAAAE,EACA,GAAIc,EACJ,SAAAf,EACA,KAAAG,EACA,SAAU+C,EACV,IAAKrC,EACL,SAAU,GACV,KAAK,MAAA,CAAA,EAENhB,CAAA,CAAA,CAAA,EAEL,CAEJ,CC/XO,SAAS4D,GAAkB,CAAE,SAAA5D,EAAU,UAAAC,EAAW,GAAGc,GAAiC,CAC3F,KAAM,CAAE,GAAAhB,EAAI,SAAAK,EAAU,QAAAC,EAAS,SAAAwD,EAAU,eAAAzB,CAAA,EAAmBzC,EAAA,EACtD,CAACmE,EAAYC,CAAa,EAAIxC,EAAAA,SAAS,EAAK,EAE5CyC,EAAavC,EAAAA,YAChB6B,GAAqC,CACpCA,EAAM,eAAA,EACNS,EAAc,EAAK,EAEnB,MAAM7E,EAAW,MAAM,KAAKoE,EAAM,aAAa,KAAK,EAEpDO,EAAS3E,CAAQ,CACnB,EACA,CAAC2E,CAAQ,CAAA,EAGLI,EAAiBxC,cAAa6B,GAAqC,CACvEA,EAAM,eAAA,EACNS,EAAc,EAAI,CACpB,EAAG,CAAA,CAAE,EAECG,EAAkBzC,cAAa6B,GAAqC,CACxEA,EAAM,eAAA,EACNS,EAAc,EAAI,CACpB,EAAG,CAAA,CAAE,EAECI,EAAkB1C,cAAa6B,GAAqC,CACxE,MAAMc,EAAgBd,EAAM,cAG1Bc,GACAA,aAAyB,MACzBd,EAAM,cAAc,SAASc,CAAa,IAK5Cd,EAAM,eAAA,EACNS,EAAc,EAAK,EACrB,EAAG,CAAA,CAAE,EAECM,EAAgB5C,EAAAA,YACnB6B,GAAyC,EACpCA,EAAM,MAAQ,SAAWA,EAAM,MAAQ,OACzCA,EAAM,eAAA,EACNlB,EAAA,EAEJ,EACA,CAACA,CAAc,CAAA,EAGXkC,EAAc7C,EAAAA,YACjB6B,GAA0C,CACzCA,EAAM,eAAA,EACNS,EAAc,EAAK,EAEnB,MAAMQ,EAAQjB,EAAM,cAAc,MAElC,GAAIiB,EAAM,SAAW,EAAG,OAExB,MAAMC,EAAsB,CAAA,EAE5B,UAAWC,KAAQ,MAAM,KAAKF,CAAK,EACjC,GAAIE,EAAK,OAAS,OAAQ,CACxB,MAAMtF,EAAOsF,EAAK,UAAA,EAEdtF,GACFqF,EAAY,KAAKrF,CAAI,CAEzB,CAGEqF,EAAY,SAAW,GAE3BX,EAASW,CAAW,CACtB,EACA,CAACX,CAAQ,CAAA,EAGLa,EAAcjD,EAAAA,YAAY,IAAM,CACpCW,EAAA,CACF,EAAG,CAACA,CAAc,CAAC,EAEnB,OACEqB,EAAAA,IAAC,MAAA,CACC,gBAAe,GAAG1D,CAAE,UAAUA,CAAE,QAChC,gBAAeK,IAAa,GAAO,GAAO,OAC1C,eAAcC,IAAY,GAAO,GAAO,OACxC,UAAWsD,EAAAA,GACT,2SAEA,sJAEA,yIAEA,oSACA,yDAEA,8FAEA,yMAEA,eACA1D,CAAA,EAEF,gBAAe6D,EAAa,GAAK,OACjC,YAAU,sBACV,QAASY,EACT,YAAaR,EACb,YAAaC,EACb,WAAYF,EACZ,OAAQD,EACR,UAAWK,EACX,QAASC,EACT,KAAK,SACL,SAAUlE,IAAa,GAAO,GAAK,EAClC,GAAGW,EAEH,SAAAf,CAAA,CAAA,CAGP,CC1HO,SAAS2E,GAAiB,CAAE,SAAA3E,EAAU,SAAAI,EAAU,GAAGW,GAAgC,CACxF,KAAM,CAAE,QAAAG,EAAS,SAAU0D,EAAiB,eAAAxC,CAAA,EAAmBzC,EAAA,EAEzDkF,EAAazE,GAAYwE,EAE/B,OACEnB,EAAAA,IAACqB,EAAAA,OAAA,CACC,gBAAe,GAAG5D,CAAO,SACzB,UAAU,sBACV,YAAU,qBACV,SAAU2D,EACV,QAASzC,EACT,KAAK,QACL,SAAU,GACV,KAAK,SACL,QAAQ,UACP,GAAGrB,EAEH,SAAAf,CAAA,CAAA,CAGP,CCdA,MAAM+E,EAAuBrF,EAAAA,cAAoD,MAAS,EAOnF,SAASsF,GAAc,CAAE,UAAA/E,EAAW,SAAAD,EAAU,KAAAb,EAAM,GAAG4B,GAA6B,CACzF,MAAMkE,EAAcC,EAAAA,MAAA,EACd,CAAE,MAAAnD,EAAO,WAAYoD,CAAA,EAAuBxF,EAAA,EAC5CyF,EAAiBnE,EAAAA,OAAO,EAAK,EAE7B5B,EAAY0C,EAAM,IAAI5C,CAAI,EAE1B6C,EAAaP,EAAAA,YAAY,IAAM0D,EAAmBhG,CAAI,EAAG,CAACgG,EAAoBhG,CAAI,CAAC,EAEzF,GAAI,CAACE,EACH,OAAO,KAGT,MAAMgG,EAAwC7B,EAAAA,QAC5C,KAAO,CAAE,KAAArE,EAAM,UAAAE,EAAW,YAAA4F,EAAa,WAAAjD,CAAA,GACvC,CAAC7C,EAAME,EAAW4F,EAAajD,CAAU,CAAA,EAG3CsD,EAAAA,UAAU,IAAM,CAGTF,EAAe,SAClB,WAAW,IAAM,CACfA,EAAe,QAAU,EAC3B,EAAG,GAAG,CAEV,EAAG,CAAC/F,CAAS,CAAC,EAEd,KAAM,CAAE,OAAAkG,EAAQ,MAAA1D,CAAA,EAAUxC,EAE1B,OACEoE,EAAAA,IAACsB,EAAqB,SAArB,CAA8B,MAAOM,EACpC,SAAA5B,EAAAA,IAAC,MAAA,CACC,mBAAkB,GAAGwB,CAAW,UAAUpD,GAAS,KAAO,IAAIoD,CAAW,SAAW,EAAE,GAAG,KAAA,EACzF,eAAcM,IAAW,QACzB,kBAAiB,GAAGN,CAAW,QAC/B,UAAWtB,EAAAA,GACT,4JAEA,gHAEA,yEACA1D,CAAA,EAEF,YAAU,kBACV,uBAAuBmF,EAAe,QAAe,OAAL,GAChD,KAAK,WACJ,GAAGrE,EAEH,SAAA,OAAOf,GAAa,WAAaA,EAASqF,CAAW,EAAIrF,CAAA,CAAA,EAE9D,CAEJ,CAEO,SAASwF,GAAmB,CACjC,MAAM5F,EAAU6F,EAAAA,IAAIV,CAAoB,EAExC,GAAI,CAACnF,EACH,MAAM,IAAI,MAAM,sDAAsD,EAGxE,OAAOA,CACT,CCrEO,SAAS8F,GAAc,CAAE,UAAAzF,EAAW,SAAAD,EAAU,GAAGe,GAA6B,CACnF,KAAM,CAAE,GAAAhB,EAAI,MAAAgC,CAAA,EAAUpC,EAAA,EAEtB,GAAIoC,EAAM,OAAS,EACjB,OAAO,KAGT,MAAMsD,EAAwC7B,EAAAA,QAAQ,KAAO,CAAE,MAAAzB,IAAU,CAACA,CAAK,CAAC,EAEhF,OACE0B,EAAAA,IAAC,MAAA,CACC,UAAWE,EAAAA,GAAG,kBAAmB1D,CAAS,EAC1C,YAAU,kBACV,GAAI,GAAGF,CAAE,QACT,KAAK,OACJ,GAAGgB,EAEH,SAAA,OAAOf,GAAa,WAAaA,EAASqF,CAAW,EAAIrF,CAAA,CAAA,CAGhE,CC5BO,SAAS2F,GAAiB,CAAE,UAAA1F,EAAW,SAAAD,EAAU,GAAGe,GAAgC,CACzF,KAAM,CAAE,GAAAhB,CAAA,EAAOJ,EAAA,EAEf,OACE8D,EAAAA,IAAC,IAAA,CACC,UAAWE,EAAAA,GACT,iKACA1D,CAAA,EAEF,YAAU,qBACV,GAAI,GAAGF,CAAE,WACR,GAAGgB,EAEH,SAAAf,CAAA,CAAA,CAGP,CChBO,SAAS4F,GAAsB,CACpC,UAAA3F,EACA,SAAAD,EACA,GAAGe,CACL,EAA+B,CAC7B,KAAM,CAAE,GAAAhB,EAAI,gBAAAsB,CAAA,EAAoB1B,EAAA,EAEhC,OAAI0B,GAAmB,KACd,KAIPoC,EAAAA,IAAC,IAAA,CACC,UAAWE,EAAAA,GACT,8KAEA,4IACA1D,CAAA,EAEF,YAAU,2BACV,GAAI,GAAGF,CAAE,QACR,GAAGgB,EAEH,SAAAf,CAAA,CAAA,CAGP,CC1BO,SAAS6F,GAAuB,CACrC,UAAA5F,EACA,SAAAD,EACA,GAAGe,CACL,EAAgC,CAC9B,KAAM,CAAE,GAAAhB,EAAI,gBAAAsB,CAAA,EAAoB1B,EAAA,EAEhC,OAAI0B,GAAmB,KACd,KAIPoC,EAAAA,IAAC,IAAA,CACC,UAAWE,EAAAA,GACT,6KACA1D,CAAA,EAEF,YAAU,4BACV,GAAI,GAAGF,CAAE,SACT,KAAK,QACJ,GAAGgB,EAEH,SAAAf,GAAYqB,CAAA,CAAA,CAGnB,CC5BO,SAASyE,GAAkB,CAAE,UAAA7F,EAAW,SAAAD,EAAU,GAAGe,GAAiC,CAC3F,OACE0C,EAAAA,IAAC,MAAA,CACC,UAAWE,EAAAA,GAAG,+BAAgC1D,CAAS,EACvD,YAAU,sBACT,GAAGc,EAEH,SAAAf,CAAA,CAAA,CAGP,CCVO,SAAS+F,GAAiB,CAAE,UAAA9F,EAAW,SAAAD,EAAU,GAAGe,GAAgC,CACzF,OACE0C,EAAAA,IAAC,MAAA,CAAI,UAAWE,EAAAA,GAAG,SAAU1D,CAAS,EAAG,YAAU,qBAAsB,GAAGc,EACzE,SAAAf,CAAA,CACH,CAEJ,CCNO,SAASgG,GAAgB,CAAE,UAAA/F,EAAW,SAAAD,EAAU,GAAGe,GAA+B,CACvF,OACE0C,EAAAA,IAAC,MAAA,CACC,UAAWE,EAAAA,GACT,6GACA1D,CAAA,EAEF,YAAU,oBACT,GAAGc,EAEH,SAAAf,CAAA,CAAA,CAGP,CCVO,SAASiG,GAAc,CAAE,UAAAhG,EAAW,SAAAD,EAAU,GAAGe,GAA6B,CACnF,KAAM,CAAE,YAAAkE,CAAA,EAAgBO,EAAA,EAExB,OACE/B,EAAAA,IAAC,IAAA,CACC,UAAWE,EAAAA,GACT,sFACA1D,CAAA,EAEF,YAAU,kBACV,GAAI,GAAGgF,CAAW,QACjB,GAAGlE,EAEH,SAAAf,CAAA,CAAA,CAGP,CChBO,SAASkG,GAAgB,CAAE,UAAAjG,EAAW,SAAAD,EAAU,GAAGe,GAA+B,CACvF,KAAM,CAAE,YAAAkE,CAAA,EAAgBO,EAAA,EAExB,OACE/B,EAAAA,IAAC,IAAA,CACC,UAAWE,EAAAA,GACT,+EACA1D,CAAA,EAEF,YAAU,oBACV,GAAI,GAAGgF,CAAW,UACjB,GAAGlE,EAEH,SAAAf,CAAA,CAAA,CAGP,CChBO,SAASmG,GAAe,CAAE,UAAAlG,EAAW,SAAAD,EAAU,GAAGe,GAA8B,CACrF,KAAM,CAAE,YAAAkE,CAAA,EAAgBO,EAAA,EAExB,OACE/B,EAAAA,IAAC,IAAA,CACC,UAAWE,EAAAA,GACT,8EACA1D,CAAA,EAEF,YAAU,mBACV,GAAI,GAAGgF,CAAW,SACjB,GAAGlE,EAEH,SAAAf,CAAA,CAAA,CAGP,CChBO,SAASoG,GAAgB,CAAE,UAAAnG,EAAW,SAAAD,EAAU,GAAGe,GAA+B,CACvF,KAAM,CACJ,UAAW,CACT,KAAM,CAAE,KAAAT,CAAA,CAAK,EAEf,WAAA0B,CAAA,EACEwD,EAAA,EAEJ,OACE/B,EAAAA,IAAC,SAAA,CACC,aAAY,UAAUnD,CAAI,GAC1B,UAAWqD,EAAAA,GACT,+FAEA,qEAEA,yIACA1D,CAAA,EAEF,YAAU,oBACV,QAAS+B,EACT,KAAK,SACJ,GAAGjB,EAEH,SAAAf,CAAA,CAAA,CAGP,CC3BO,SAASqG,GAAkB,CAAE,UAAApG,EAAW,GAAGc,GAAiC,CACjF,KAAM,CACJ,YAAAkE,EACA,UAAW,CAAE,SAAAvD,CAAA,CAAS,EACpB8D,EAAA,EAEJ,OACE/B,EAAAA,IAAC,MAAA,CACC,kBAAiB,GAAGwB,CAAW,QAC/B,gBAAe,IACf,gBAAe,EACf,gBAAevD,EACf,iBAAgB,GAAGA,CAAQ,IAC3B,UAAWiC,EAAAA,GACT,sIACA1D,CAAA,EAEF,YAAU,sBACV,KAAK,cACL,MAAO,CAAE,UAAW,eAAe,IAAMyB,CAAQ,IAAA,EAChD,GAAGX,CAAA,CAAA,CAGV,CCRO,SAASuF,GAAc,CAAE,QAAAC,EAAU,GAAO,UAAAtG,EAAW,SAAAD,GAAgC,CAC1F,KAAM,CAAE,UAAAX,CAAA,EAAcmG,EAAA,EAEhBgB,EAAcC,GAAepH,EAAU,IAAI,EAEjD,OAAIkH,EAEA9C,EAAAA,IAACiD,EAAAA,KAAA,CACC,UAAW/C,EAAAA,GAAG,2DAA4D1D,CAAS,EACnF,YAAU,kBAET,SAAAD,CAAA,CAAA,EAMLyD,EAAAA,IAAC+C,EAAA,CACC,UAAW7C,EAAAA,GAAG,2DAA4D1D,CAAS,EACnF,YAAU,iBAAA,CAAA,CAGhB,CAEA,SAASwG,GAAetH,EAAyB,CAC/C,MAAM4D,EAAO5D,EAAK,KACZwH,EAAYxH,EAAK,KAAK,MAAM,GAAG,EAAE,IAAA,GAAO,YAAA,GAAiB,GAE/D,OAAI4D,EAAK,WAAW,QAAQ,EACnB6D,EAAAA,QAGL7D,EAAK,WAAW,QAAQ,EACnB8D,GAAAA,QAGL9D,EAAK,WAAW,QAAQ,EACnB+D,GAAAA,QAGL/D,EAAK,WAAW,OAAO,GAAK,CAAC,MAAO,KAAM,MAAO,KAAK,EAAE,SAAS4D,CAAS,EACrEI,GAAAA,QAIP,CACE,OACA,MACA,KACA,MACA,KACA,MACA,OACA,MACA,MACA,KACA,KACA,OACA,IACA,MACA,IAAA,EACA,SAASJ,CAAS,EAEbK,GAAAA,QAGL,CAAC,MAAO,MAAO,KAAM,MAAO,KAAM,KAAK,EAAE,SAASL,CAAS,EACtDM,GAAAA,QAIP,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAAE,SAASN,CAAS,GAC7D5D,EAAK,WAAW,cAAc,EAEvBmE,GAAAA,QAGFC,GAAAA,OACT,CCxFO,SAASC,GAAoB,CAClC,QAAAb,EAAU,GACV,UAAAtG,EACA,SAAAD,CACF,EAA6B,CAC3B,MAAMqH,EAAa1D,EAAAA,GACjB,iEACA1D,CAAA,EAGF,OAAIsG,QAECG,EAAAA,KAAA,CAAK,UAAWW,EAAY,YAAU,yBACpC,SAAArH,EACH,EAKFyD,EAAAA,IAAC6D,GAAAA,QAAA,CACC,oBAAmB,GACnB,UAAWD,EACX,MAAM,eACN,YAAU,yBACV,YAAa,GAAA,CAAA,CAGnB,CC3BO,SAASE,GAAoB,CAClC,QAAAhB,EAAU,GACV,UAAAtG,EACA,SAAAD,CACF,EAA6B,CAC3B,MAAMqH,EAAa1D,EAAAA,GACjB,qEACA1D,CAAA,EAGF,OAAIsG,QAECG,EAAAA,KAAA,CAAK,UAAWW,EAAY,YAAU,yBACpC,SAAArH,EACH,EAKFyD,EAAAA,IAAC+D,GAAAA,QAAA,CACC,oBAAmB,GACnB,UAAWH,EACX,MAAM,eACN,YAAU,yBACV,YAAa,GAAA,CAAA,CAGnB,CC/BO,SAASI,GAAe,CAAE,UAAAxH,EAAW,SAAAD,EAAU,GAAGe,GAA8B,CACrF,KAAM,CAAE,QAAAG,CAAA,EAAYvB,EAAA,EAEpB,OACE8D,EAAAA,IAACiE,GAAAA,MAAA,CACC,UAAW/D,EAAAA,GAAG1D,CAAS,EACvB,YAAU,mBACV,QAAS,GAAGiB,CAAO,SAClB,GAAGH,EAEH,SAAAf,CAAA,CAAA,CAGP"}
|