@customafk/lunas-ui 0.2.53 → 0.2.55
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/dist/{alert-CB79DQwK.d.mts → alert-Bip5XjBw.d.cts} +5 -7
- package/dist/{alert-Ca5wFNXF.d.cts → alert-Bip5XjBw.d.mts} +5 -7
- package/dist/alert-D31c6DLq.cjs +2 -0
- package/dist/{alert-DDdHIRib.cjs.map → alert-D31c6DLq.cjs.map} +1 -1
- package/dist/{alert-BEcGZfPW.mjs → alert-OD1KJTEV.mjs} +1 -1
- package/dist/{alert-BEcGZfPW.mjs.map → alert-OD1KJTEV.mjs.map} +1 -1
- package/dist/{badge-DYo5Diiy.d.cts → badge-D0InQSvM.d.cts} +4 -6
- package/dist/{badge-CQygfYGk.d.mts → badge-D0InQSvM.d.mts} +4 -6
- package/dist/{button-D-pWsdxT.d.cts → button-DIqm3YRo.d.cts} +4 -7
- package/dist/{button-CwxEnAw3.d.mts → button-DIqm3YRo.d.mts} +4 -7
- package/dist/button.variants-DOglUhSE.cjs +2 -0
- package/dist/{button.variants-4kw6plrv.cjs.map → button.variants-DOglUhSE.cjs.map} +1 -1
- package/dist/{button.variants-DkMqWB8G.mjs → button.variants-pziHKxvE.mjs} +1 -1
- package/dist/{button.variants-DkMqWB8G.mjs.map → button.variants-pziHKxvE.mjs.map} +1 -1
- package/dist/cards/grid-product-card.cjs +2 -1
- package/dist/cards/grid-product-card.cjs.map +1 -0
- package/dist/cards/grid-product-card.d.cts +30 -2
- package/dist/cards/grid-product-card.d.mts +30 -2
- package/dist/cards/grid-product-card.mjs +2 -1
- package/dist/cards/grid-product-card.mjs.map +1 -0
- package/dist/cards/product-card.cjs +2 -1
- package/dist/cards/product-card.cjs.map +1 -0
- package/dist/cards/product-card.d.cts +30 -2
- package/dist/cards/product-card.d.mts +30 -2
- package/dist/cards/product-card.mjs +2 -1
- package/dist/cards/product-card.mjs.map +1 -0
- package/dist/cards/simple-card.cjs +2 -1
- package/dist/cards/simple-card.cjs.map +1 -0
- package/dist/cards/simple-card.d.cts +29 -2
- package/dist/cards/simple-card.d.mts +29 -2
- package/dist/cards/simple-card.mjs +2 -1
- package/dist/cards/simple-card.mjs.map +1 -0
- package/dist/close-BYHgEZvZ.cjs +2 -0
- package/dist/close-BYHgEZvZ.cjs.map +1 -0
- package/dist/{close-Co-WLsSG.mjs → close-DYJZ8fkh.mjs} +1 -1
- package/dist/close-DYJZ8fkh.mjs.map +1 -0
- package/dist/cms-layout-DhZiYGI7.cjs +2 -0
- package/dist/cms-layout-DhZiYGI7.cjs.map +1 -0
- package/dist/cms-layout-IwpD0LvR.mjs +2 -0
- package/dist/cms-layout-IwpD0LvR.mjs.map +1 -0
- package/dist/data-display/country.cjs +2 -1
- package/dist/data-display/country.cjs.map +1 -0
- package/dist/data-display/country.d.cts +21 -2
- package/dist/data-display/country.d.mts +21 -2
- package/dist/data-display/country.mjs +2 -1
- package/dist/data-display/country.mjs.map +1 -0
- package/dist/data-display/data-list.cjs +2 -1
- package/dist/data-display/data-list.cjs.map +1 -0
- package/dist/data-display/data-list.d.cts +38 -2
- package/dist/data-display/data-list.d.mts +38 -2
- package/dist/data-display/data-list.mjs +2 -1
- package/dist/data-display/data-list.mjs.map +1 -0
- package/dist/data-display/date-tooltip.cjs +2 -1
- package/dist/data-display/date-tooltip.cjs.map +1 -0
- package/dist/data-display/date-tooltip.d.cts +18 -2
- package/dist/data-display/date-tooltip.d.mts +18 -2
- package/dist/data-display/date-tooltip.mjs +2 -1
- package/dist/data-display/date-tooltip.mjs.map +1 -0
- package/dist/data-display/date.cjs +1 -1
- package/dist/data-display/date.d.cts +39 -2
- package/dist/data-display/date.d.mts +39 -2
- package/dist/data-display/date.mjs +1 -1
- package/dist/data-display/empty.cjs +2 -1
- package/dist/data-display/empty.cjs.map +1 -0
- package/dist/data-display/empty.d.cts +19 -2
- package/dist/data-display/empty.d.mts +19 -2
- package/dist/data-display/empty.mjs +2 -1
- package/dist/data-display/empty.mjs.map +1 -0
- package/dist/data-display/name.cjs +2 -1
- package/dist/data-display/name.cjs.map +1 -0
- package/dist/data-display/name.d.cts +18 -2
- package/dist/data-display/name.d.mts +18 -2
- package/dist/data-display/name.mjs +2 -1
- package/dist/data-display/name.mjs.map +1 -0
- package/dist/data-display/phone-number.cjs +2 -1
- package/dist/data-display/phone-number.cjs.map +1 -0
- package/dist/data-display/phone-number.d.cts +18 -2
- package/dist/data-display/phone-number.d.mts +18 -2
- package/dist/data-display/phone-number.mjs +2 -1
- package/dist/data-display/phone-number.mjs.map +1 -0
- package/dist/data-display/role-badge.cjs +2 -1
- package/dist/data-display/role-badge.cjs.map +1 -0
- package/dist/data-display/role-badge.d.cts +21 -2
- package/dist/data-display/role-badge.d.mts +21 -2
- package/dist/data-display/role-badge.mjs +2 -1
- package/dist/data-display/role-badge.mjs.map +1 -0
- package/dist/data-display/statistic.cjs +2 -1
- package/dist/data-display/statistic.cjs.map +1 -0
- package/dist/data-display/statistic.d.cts +45 -2
- package/dist/data-display/statistic.d.mts +45 -2
- package/dist/data-display/statistic.mjs +2 -1
- package/dist/data-display/statistic.mjs.map +1 -0
- package/dist/data-display/user.cjs +2 -1
- package/dist/data-display/user.cjs.map +1 -0
- package/dist/data-display/user.d.cts +20 -2
- package/dist/data-display/user.d.mts +20 -2
- package/dist/data-display/user.mjs +2 -1
- package/dist/data-display/user.mjs.map +1 -0
- package/dist/date-B3cozmfV.cjs +2 -0
- package/dist/date-B3cozmfV.cjs.map +1 -0
- package/dist/{date-88lk-VJF.mjs → date-Nsz0Pewe.mjs} +1 -1
- package/dist/date-Nsz0Pewe.mjs.map +1 -0
- package/dist/{dialog-DokGVUbC.d.mts → dialog-BASlxWF_.d.cts} +12 -15
- package/dist/{dialog-xPhSkLmg.d.cts → dialog-BASlxWF_.d.mts} +12 -15
- package/dist/dialogs/confirm-dialog.cjs +2 -1
- package/dist/dialogs/confirm-dialog.cjs.map +1 -0
- package/dist/dialogs/confirm-dialog.d.cts +142 -2
- package/dist/dialogs/confirm-dialog.d.mts +142 -2
- package/dist/dialogs/confirm-dialog.mjs +2 -1
- package/dist/dialogs/confirm-dialog.mjs.map +1 -0
- package/dist/dialogs/detail-dialog/components/sidebar.cjs +2 -1
- package/dist/dialogs/detail-dialog/components/sidebar.cjs.map +1 -0
- package/dist/dialogs/detail-dialog/components/sidebar.d.cts +36 -51
- package/dist/dialogs/detail-dialog/components/sidebar.d.mts +36 -51
- package/dist/dialogs/detail-dialog/components/sidebar.mjs +2 -1
- package/dist/dialogs/detail-dialog/components/sidebar.mjs.map +1 -0
- package/dist/dialogs/detail-dialog/index.cjs +2 -1
- package/dist/dialogs/detail-dialog/index.cjs.map +1 -0
- package/dist/dialogs/detail-dialog/index.d.cts +36 -2
- package/dist/dialogs/detail-dialog/index.d.mts +36 -2
- package/dist/dialogs/detail-dialog/index.mjs +2 -1
- package/dist/dialogs/detail-dialog/index.mjs.map +1 -0
- package/dist/dialogs/error-dialog.cjs +2 -1
- package/dist/dialogs/error-dialog.cjs.map +1 -0
- package/dist/dialogs/error-dialog.d.cts +22 -2
- package/dist/dialogs/error-dialog.d.mts +22 -2
- package/dist/dialogs/error-dialog.mjs +2 -1
- package/dist/dialogs/error-dialog.mjs.map +1 -0
- package/dist/dialogs/loading-dialog.cjs +2 -1
- package/dist/dialogs/loading-dialog.cjs.map +1 -0
- package/dist/dialogs/loading-dialog.d.cts +19 -2
- package/dist/dialogs/loading-dialog.d.mts +19 -2
- package/dist/dialogs/loading-dialog.mjs +2 -1
- package/dist/dialogs/loading-dialog.mjs.map +1 -0
- package/dist/dist-CGlSRti2.cjs +2 -0
- package/dist/{dist-Cx5ufCdr.cjs.map → dist-CGlSRti2.cjs.map} +1 -1
- package/dist/{dist-DVrfqn8H.mjs → dist-CtTonIm8.mjs} +1 -1
- package/dist/{dist-DVrfqn8H.mjs.map → dist-CtTonIm8.mjs.map} +1 -1
- package/dist/features/descriptions/index.cjs +2 -1
- package/dist/features/descriptions/index.cjs.map +1 -0
- package/dist/features/descriptions/index.d.cts +231 -2
- package/dist/features/descriptions/index.d.mts +231 -3
- package/dist/features/descriptions/index.mjs +2 -1
- package/dist/features/descriptions/index.mjs.map +1 -0
- package/dist/features/search-modal/index.cjs +1 -1
- package/dist/features/search-modal/index.d.cts +14 -2
- package/dist/features/search-modal/index.d.mts +14 -2
- package/dist/features/search-modal/index.mjs +1 -1
- package/dist/features/tables/index.cjs +1 -1
- package/dist/features/tables/index.d.cts +1 -1
- package/dist/features/tables/index.d.mts +1 -2
- package/dist/features/tables/index.mjs +1 -1
- package/dist/features/tanstack-form/index.cjs +1 -1
- package/dist/features/tanstack-form/index.d.cts +1 -1
- package/dist/features/tanstack-form/index.d.mts +1 -1
- package/dist/features/tanstack-form/index.mjs +1 -1
- package/dist/features/text-editor/index.cjs +1 -1
- package/dist/features/text-editor/index.d.cts +2 -2
- package/dist/features/text-editor/index.d.mts +2 -2
- package/dist/features/text-editor/index.mjs +1 -1
- package/dist/heading-DLjnJc1q.cjs +2 -0
- package/dist/{heading-tGTqk3pA.cjs.map → heading-DLjnJc1q.cjs.map} +1 -1
- package/dist/heading-Fajfx88p.mjs +2 -0
- package/dist/{heading-De4Pn3mZ.mjs.map → heading-Fajfx88p.mjs.map} +1 -1
- package/dist/index-COLxGpG6.d.cts +3341 -0
- package/dist/index-COLxGpG6.d.mts +3341 -0
- package/dist/{index-BOLiQQmh.d.mts → index-Cqe6rsMe.d.cts} +170 -345
- package/dist/{index-C33ZNe5s.d.cts → index-DOaKN0wJ.d.cts} +5 -7
- package/dist/{index-DtlnICYj.d.mts → index-DOaKN0wJ.d.mts} +5 -7
- package/dist/{index-e8PriyFP.d.cts → index-DqlCqAcc.d.cts} +15 -33
- package/dist/{index-BUpm7Ukw.d.mts → index-DqlCqAcc.d.mts} +15 -33
- package/dist/{index-DvC_tPbo.d.cts → index-aPuQLHfq.d.mts} +170 -345
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +93 -93
- package/dist/index.d.mts +93 -93
- package/dist/index.mjs +1 -1
- package/dist/{input-BDCw9qBl.d.cts → input-BJMvABEL.d.cts} +6 -11
- package/dist/{input-BVTLQHpd.d.mts → input-BJMvABEL.d.mts} +6 -11
- package/dist/layouts/cms-layout/index.cjs +1 -1
- package/dist/layouts/cms-layout/index.d.cts +2 -2
- package/dist/layouts/cms-layout/index.d.mts +2 -2
- package/dist/layouts/cms-layout/index.mjs +1 -1
- package/dist/layouts/flex.cjs +2 -1
- package/dist/layouts/flex.cjs.map +1 -0
- package/dist/layouts/flex.d.cts +114 -2
- package/dist/layouts/flex.d.mts +114 -2
- package/dist/layouts/flex.mjs +2 -1
- package/dist/layouts/flex.mjs.map +1 -0
- package/dist/layouts/grid.cjs +2 -1
- package/dist/layouts/grid.cjs.map +1 -0
- package/dist/layouts/grid.d.cts +19 -2
- package/dist/layouts/grid.d.mts +19 -2
- package/dist/layouts/grid.mjs +2 -1
- package/dist/layouts/grid.mjs.map +1 -0
- package/dist/layouts/payment-layout/index.cjs +1 -1
- package/dist/layouts/payment-layout/index.d.cts +59 -2
- package/dist/layouts/payment-layout/index.d.mts +59 -2
- package/dist/layouts/payment-layout/index.mjs +1 -1
- package/dist/pages/FeatureDeveloping.cjs +2 -1
- package/dist/pages/FeatureDeveloping.cjs.map +1 -0
- package/dist/pages/FeatureDeveloping.d.cts +41 -2
- package/dist/pages/FeatureDeveloping.d.mts +41 -2
- package/dist/pages/FeatureDeveloping.mjs +2 -1
- package/dist/pages/FeatureDeveloping.mjs.map +1 -0
- package/dist/pages/FeatureFixing.cjs +2 -1
- package/dist/pages/FeatureFixing.cjs.map +1 -0
- package/dist/pages/FeatureFixing.d.cts +41 -2
- package/dist/pages/FeatureFixing.d.mts +41 -2
- package/dist/pages/FeatureFixing.mjs +2 -1
- package/dist/pages/FeatureFixing.mjs.map +1 -0
- package/dist/pages/LoginPage.cjs +2 -1
- package/dist/pages/LoginPage.cjs.map +1 -0
- package/dist/pages/LoginPage.d.cts +53 -2
- package/dist/pages/LoginPage.d.mts +53 -2
- package/dist/pages/LoginPage.mjs +2 -1
- package/dist/pages/LoginPage.mjs.map +1 -0
- package/dist/pages/NotAuthorized.cjs +2 -1
- package/dist/pages/NotAuthorized.cjs.map +1 -0
- package/dist/pages/NotAuthorized.d.cts +41 -2
- package/dist/pages/NotAuthorized.d.mts +41 -2
- package/dist/pages/NotAuthorized.mjs +2 -1
- package/dist/pages/NotAuthorized.mjs.map +1 -0
- package/dist/pages/NotFound.cjs +2 -1
- package/dist/pages/NotFound.cjs.map +1 -0
- package/dist/pages/NotFound.d.cts +41 -2
- package/dist/pages/NotFound.d.mts +41 -2
- package/dist/pages/NotFound.mjs +2 -1
- package/dist/pages/NotFound.mjs.map +1 -0
- package/dist/pages/RegisterPage.cjs +2 -1
- package/dist/pages/RegisterPage.cjs.map +1 -0
- package/dist/pages/RegisterPage.d.cts +50 -2
- package/dist/pages/RegisterPage.d.mts +50 -2
- package/dist/pages/RegisterPage.mjs +2 -1
- package/dist/pages/RegisterPage.mjs.map +1 -0
- package/dist/pages/VerifyEmailPage.cjs +2 -1
- package/dist/pages/VerifyEmailPage.cjs.map +1 -0
- package/dist/pages/VerifyEmailPage.d.cts +62 -2
- package/dist/pages/VerifyEmailPage.d.mts +62 -2
- package/dist/pages/VerifyEmailPage.mjs +2 -1
- package/dist/pages/VerifyEmailPage.mjs.map +1 -0
- package/dist/payment-layout-CG_l7Es-.mjs +2 -0
- package/dist/payment-layout-CG_l7Es-.mjs.map +1 -0
- package/dist/payment-layout-DfxNDF8G.cjs +2 -0
- package/dist/payment-layout-DfxNDF8G.cjs.map +1 -0
- package/dist/resizable-CNIYTd7k.d.cts +64 -0
- package/dist/resizable-CNIYTd7k.d.mts +64 -0
- package/dist/rolldown-runtime-C6qsp3rV.cjs +1 -0
- package/dist/search-modal-CMhsIxae.cjs +2 -0
- package/dist/search-modal-CMhsIxae.cjs.map +1 -0
- package/dist/search-modal-Cdmi2iyV.mjs +2 -0
- package/dist/search-modal-Cdmi2iyV.mjs.map +1 -0
- package/dist/systems/google.cjs +2 -1
- package/dist/systems/google.cjs.map +1 -0
- package/dist/systems/google.d.cts +48 -2
- package/dist/systems/google.d.mts +48 -2
- package/dist/systems/google.mjs +2 -1
- package/dist/systems/google.mjs.map +1 -0
- package/dist/tables-BHdeig0n.mjs +4 -0
- package/dist/tables-BHdeig0n.mjs.map +1 -0
- package/dist/tables-BfuoYxlt.cjs +4 -0
- package/dist/tables-BfuoYxlt.cjs.map +1 -0
- package/dist/tanstack-form-CVnMirZT.cjs +42 -0
- package/dist/tanstack-form-CVnMirZT.cjs.map +1 -0
- package/dist/tanstack-form-Dl6pl0mL.mjs +42 -0
- package/dist/tanstack-form-Dl6pl0mL.mjs.map +1 -0
- package/dist/text-editor-BQtIXOpM.mjs +2 -0
- package/dist/text-editor-BQtIXOpM.mjs.map +1 -0
- package/dist/text-editor-C6bmwDTt.cjs +2 -0
- package/dist/text-editor-C6bmwDTt.cjs.map +1 -0
- package/dist/{types-B-SuhI6Z.d.cts → types-cKvPPVBe.d.cts} +3 -3
- package/dist/{types-UB3NE0JY.d.mts → types-cKvPPVBe.d.mts} +3 -3
- package/dist/typography/paragraph.cjs +2 -1
- package/dist/typography/paragraph.cjs.map +1 -0
- package/dist/typography/paragraph.d.cts +46 -2
- package/dist/typography/paragraph.d.mts +46 -2
- package/dist/typography/paragraph.mjs +2 -1
- package/dist/typography/paragraph.mjs.map +1 -0
- package/dist/typography/title.cjs +2 -1
- package/dist/typography/title.cjs.map +1 -0
- package/dist/typography/title.d.cts +41 -2
- package/dist/typography/title.d.mts +41 -2
- package/dist/typography/title.mjs +2 -1
- package/dist/typography/title.mjs.map +1 -0
- package/dist/ui/alert-dialog.cjs +2 -1
- package/dist/ui/alert-dialog.cjs.map +1 -0
- package/dist/ui/alert-dialog.d.cts +88 -2
- package/dist/ui/alert-dialog.d.mts +88 -2
- package/dist/ui/alert-dialog.mjs +2 -1
- package/dist/ui/alert-dialog.mjs.map +1 -0
- package/dist/ui/alert.cjs +1 -1
- package/dist/ui/alert.d.cts +1 -1
- package/dist/ui/alert.d.mts +1 -1
- package/dist/ui/alert.mjs +1 -1
- package/dist/ui/aspect-ratio.cjs +2 -1
- package/dist/ui/aspect-ratio.cjs.map +1 -0
- package/dist/ui/aspect-ratio.d.cts +22 -2
- package/dist/ui/aspect-ratio.d.mts +22 -2
- package/dist/ui/aspect-ratio.mjs +2 -1
- package/dist/ui/aspect-ratio.mjs.map +1 -0
- package/dist/ui/avatar.cjs +2 -1
- package/dist/ui/avatar.cjs.map +1 -0
- package/dist/ui/avatar.d.cts +33 -2
- package/dist/ui/avatar.d.mts +33 -2
- package/dist/ui/avatar.mjs +2 -1
- package/dist/ui/avatar.mjs.map +1 -0
- package/dist/ui/badge.cjs +2 -1
- package/dist/ui/badge.cjs.map +1 -0
- package/dist/ui/badge.d.cts +1 -1
- package/dist/ui/badge.d.mts +1 -1
- package/dist/ui/badge.mjs +2 -1
- package/dist/ui/badge.mjs.map +1 -0
- package/dist/ui/breadcrumb.cjs +2 -1
- package/dist/ui/breadcrumb.cjs.map +1 -0
- package/dist/ui/breadcrumb.d.cts +69 -2
- package/dist/ui/breadcrumb.d.mts +69 -2
- package/dist/ui/breadcrumb.mjs +2 -1
- package/dist/ui/breadcrumb.mjs.map +1 -0
- package/dist/ui/button-group.cjs +2 -1
- package/dist/ui/button-group.cjs.map +1 -0
- package/dist/ui/button-group.d.cts +48 -2
- package/dist/ui/button-group.d.mts +48 -3
- package/dist/ui/button-group.mjs +2 -1
- package/dist/ui/button-group.mjs.map +1 -0
- package/dist/ui/button.cjs +2 -1
- package/dist/ui/button.cjs.map +1 -0
- package/dist/ui/button.d.cts +1 -1
- package/dist/ui/button.d.mts +1 -1
- package/dist/ui/button.mjs +2 -1
- package/dist/ui/button.mjs.map +1 -0
- package/dist/ui/buttons/add-new.cjs +2 -1
- package/dist/ui/buttons/add-new.cjs.map +1 -0
- package/dist/ui/buttons/add-new.d.cts +16 -2
- package/dist/ui/buttons/add-new.d.mts +16 -2
- package/dist/ui/buttons/add-new.mjs +2 -1
- package/dist/ui/buttons/add-new.mjs.map +1 -0
- package/dist/ui/buttons/edit.cjs +2 -1
- package/dist/ui/buttons/edit.cjs.map +1 -0
- package/dist/ui/buttons/edit.d.cts +16 -2
- package/dist/ui/buttons/edit.d.mts +16 -2
- package/dist/ui/buttons/edit.mjs +2 -1
- package/dist/ui/buttons/edit.mjs.map +1 -0
- package/dist/ui/buttons/refresh.cjs +2 -1
- package/dist/ui/buttons/refresh.cjs.map +1 -0
- package/dist/ui/buttons/refresh.d.cts +16 -2
- package/dist/ui/buttons/refresh.d.mts +16 -2
- package/dist/ui/buttons/refresh.mjs +2 -1
- package/dist/ui/buttons/refresh.mjs.map +1 -0
- package/dist/ui/buttons/trash.cjs +2 -1
- package/dist/ui/buttons/trash.cjs.map +1 -0
- package/dist/ui/buttons/trash.d.cts +16 -2
- package/dist/ui/buttons/trash.d.mts +16 -2
- package/dist/ui/buttons/trash.mjs +2 -1
- package/dist/ui/buttons/trash.mjs.map +1 -0
- package/dist/ui/buttons/upload-image.cjs +2 -1
- package/dist/ui/buttons/upload-image.cjs.map +1 -0
- package/dist/ui/buttons/upload-image.d.cts +23 -2
- package/dist/ui/buttons/upload-image.d.mts +23 -2
- package/dist/ui/buttons/upload-image.mjs +2 -1
- package/dist/ui/buttons/upload-image.mjs.map +1 -0
- package/dist/ui/calendar.cjs +2 -1
- package/dist/ui/calendar.cjs.map +1 -0
- package/dist/ui/calendar.d.cts +43 -2
- package/dist/ui/calendar.d.mts +43 -3
- package/dist/ui/calendar.mjs +2 -1
- package/dist/ui/calendar.mjs.map +1 -0
- package/dist/ui/card.cjs +2 -1
- package/dist/ui/card.cjs.map +1 -0
- package/dist/ui/card.d.cts +60 -2
- package/dist/ui/card.d.mts +60 -2
- package/dist/ui/card.mjs +2 -1
- package/dist/ui/card.mjs.map +1 -0
- package/dist/ui/carousel.cjs +2 -1
- package/dist/ui/carousel.cjs.map +1 -0
- package/dist/ui/carousel.d.cts +70 -2
- package/dist/ui/carousel.d.mts +70 -3
- package/dist/ui/carousel.mjs +2 -1
- package/dist/ui/carousel.mjs.map +1 -0
- package/dist/ui/checkbox.cjs +2 -1
- package/dist/ui/checkbox.cjs.map +1 -0
- package/dist/ui/checkbox.d.cts +24 -2
- package/dist/ui/checkbox.d.mts +24 -2
- package/dist/ui/checkbox.mjs +2 -1
- package/dist/ui/checkbox.mjs.map +1 -0
- package/dist/ui/collapsible.cjs +2 -1
- package/dist/ui/collapsible.cjs.map +1 -0
- package/dist/ui/collapsible.d.cts +32 -2
- package/dist/ui/collapsible.d.mts +32 -2
- package/dist/ui/collapsible.mjs +2 -1
- package/dist/ui/collapsible.mjs.map +1 -0
- package/dist/ui/command.cjs +2 -1
- package/dist/ui/command.cjs.map +1 -0
- package/dist/ui/command.d.cts +87 -2
- package/dist/ui/command.d.mts +87 -3
- package/dist/ui/command.mjs +2 -1
- package/dist/ui/command.mjs.map +1 -0
- package/dist/ui/context-menu.cjs +2 -1
- package/dist/ui/context-menu.cjs.map +1 -0
- package/dist/ui/context-menu.d.cts +123 -2
- package/dist/ui/context-menu.d.mts +123 -2
- package/dist/ui/context-menu.mjs +2 -1
- package/dist/ui/context-menu.mjs.map +1 -0
- package/dist/ui/dialog.cjs +2 -1
- package/dist/ui/dialog.cjs.map +1 -0
- package/dist/ui/dialog.d.cts +1 -1
- package/dist/ui/dialog.d.mts +1 -1
- package/dist/ui/dialog.mjs +2 -1
- package/dist/ui/dialog.mjs.map +1 -0
- package/dist/ui/drawer.cjs +2 -1
- package/dist/ui/drawer.cjs.map +1 -0
- package/dist/ui/drawer.d.cts +70 -2
- package/dist/ui/drawer.d.mts +70 -2
- package/dist/ui/drawer.mjs +2 -1
- package/dist/ui/drawer.mjs.map +1 -0
- package/dist/ui/dropdown-menu.cjs +2 -1
- package/dist/ui/dropdown-menu.cjs.map +1 -0
- package/dist/ui/dropdown-menu.d.cts +125 -2
- package/dist/ui/dropdown-menu.d.mts +125 -2
- package/dist/ui/dropdown-menu.mjs +2 -1
- package/dist/ui/dropdown-menu.mjs.map +1 -0
- package/dist/ui/empty.cjs +2 -1
- package/dist/ui/empty.cjs.map +1 -0
- package/dist/ui/empty.d.cts +65 -2
- package/dist/ui/empty.d.mts +65 -2
- package/dist/ui/empty.mjs +2 -1
- package/dist/ui/empty.mjs.map +1 -0
- package/dist/ui/field.cjs +2 -1
- package/dist/ui/field.cjs.map +1 -0
- package/dist/ui/field.d.cts +22 -24
- package/dist/ui/field.d.mts +22 -24
- package/dist/ui/field.mjs +2 -1
- package/dist/ui/field.mjs.map +1 -0
- package/dist/ui/file-uploader.cjs +3 -1
- package/dist/ui/file-uploader.cjs.map +1 -0
- package/dist/ui/file-uploader.d.cts +101 -2
- package/dist/ui/file-uploader.d.mts +101 -2
- package/dist/ui/file-uploader.mjs +3 -1
- package/dist/ui/file-uploader.mjs.map +1 -0
- package/dist/ui/form.cjs +2 -1
- package/dist/ui/form.cjs.map +1 -0
- package/dist/ui/form.d.cts +109 -2
- package/dist/ui/form.d.mts +109 -2
- package/dist/ui/form.mjs +2 -1
- package/dist/ui/form.mjs.map +1 -0
- package/dist/ui/hover-card.cjs +2 -1
- package/dist/ui/hover-card.cjs.map +1 -0
- package/dist/ui/hover-card.d.cts +35 -2
- package/dist/ui/hover-card.d.mts +35 -2
- package/dist/ui/hover-card.mjs +2 -1
- package/dist/ui/hover-card.mjs.map +1 -0
- package/dist/ui/image.cjs +2 -1
- package/dist/ui/image.cjs.map +1 -0
- package/dist/ui/image.d.cts +27 -2
- package/dist/ui/image.d.mts +27 -2
- package/dist/ui/image.mjs +2 -1
- package/dist/ui/image.mjs.map +1 -0
- package/dist/ui/input-otp.cjs +2 -1
- package/dist/ui/input-otp.cjs.map +1 -0
- package/dist/ui/input-otp.d.cts +56 -2
- package/dist/ui/input-otp.d.mts +56 -2
- package/dist/ui/input-otp.mjs +2 -1
- package/dist/ui/input-otp.mjs.map +1 -0
- package/dist/ui/input.cjs +2 -1
- package/dist/ui/input.cjs.map +1 -0
- package/dist/ui/input.d.cts +1 -1
- package/dist/ui/input.d.mts +1 -1
- package/dist/ui/input.mjs +2 -1
- package/dist/ui/input.mjs.map +1 -0
- package/dist/ui/inputs/search-input.cjs +2 -1
- package/dist/ui/inputs/search-input.cjs.map +1 -0
- package/dist/ui/inputs/search-input.d.cts +27 -2
- package/dist/ui/inputs/search-input.d.mts +27 -3
- package/dist/ui/inputs/search-input.mjs +2 -1
- package/dist/ui/inputs/search-input.mjs.map +1 -0
- package/dist/ui/item.cjs +2 -1
- package/dist/ui/item.cjs.map +1 -0
- package/dist/ui/item.d.cts +99 -2
- package/dist/ui/item.d.mts +99 -3
- package/dist/ui/item.mjs +2 -1
- package/dist/ui/item.mjs.map +1 -0
- package/dist/ui/label.cjs +2 -1
- package/dist/ui/label.cjs.map +1 -0
- package/dist/ui/label.d.cts +22 -2
- package/dist/ui/label.d.mts +22 -2
- package/dist/ui/label.mjs +2 -1
- package/dist/ui/label.mjs.map +1 -0
- package/dist/ui/menubar.cjs +2 -1
- package/dist/ui/menubar.cjs.map +1 -0
- package/dist/ui/menubar.d.cts +133 -2
- package/dist/ui/menubar.d.mts +133 -2
- package/dist/ui/menubar.mjs +2 -1
- package/dist/ui/menubar.mjs.map +1 -0
- package/dist/ui/multi-select.cjs +2 -1
- package/dist/ui/multi-select.cjs.map +1 -0
- package/dist/ui/multi-select.d.cts +116 -2
- package/dist/ui/multi-select.d.mts +116 -4
- package/dist/ui/multi-select.mjs +2 -1
- package/dist/ui/multi-select.mjs.map +1 -0
- package/dist/ui/navigation-menu.cjs +2 -1
- package/dist/ui/navigation-menu.cjs.map +1 -0
- package/dist/ui/navigation-menu.d.cts +73 -2
- package/dist/ui/navigation-menu.d.mts +73 -2
- package/dist/ui/navigation-menu.mjs +2 -1
- package/dist/ui/navigation-menu.mjs.map +1 -0
- package/dist/ui/pagination.cjs +2 -1
- package/dist/ui/pagination.cjs.map +1 -0
- package/dist/ui/pagination.d.cts +64 -2
- package/dist/ui/pagination.d.mts +64 -3
- package/dist/ui/pagination.mjs +2 -1
- package/dist/ui/pagination.mjs.map +1 -0
- package/dist/ui/popover.cjs +2 -1
- package/dist/ui/popover.cjs.map +1 -0
- package/dist/ui/popover.d.cts +50 -2
- package/dist/ui/popover.d.mts +50 -2
- package/dist/ui/popover.mjs +2 -1
- package/dist/ui/popover.mjs.map +1 -0
- package/dist/ui/progress.cjs +2 -1
- package/dist/ui/progress.cjs.map +1 -0
- package/dist/ui/progress.d.cts +21 -2
- package/dist/ui/progress.d.mts +21 -2
- package/dist/ui/progress.mjs +2 -1
- package/dist/ui/progress.mjs.map +1 -0
- package/dist/ui/radio-group.cjs +2 -1
- package/dist/ui/radio-group.cjs.map +1 -0
- package/dist/ui/radio-group.d.cts +35 -2
- package/dist/ui/radio-group.d.mts +35 -2
- package/dist/ui/radio-group.mjs +2 -1
- package/dist/ui/radio-group.mjs.map +1 -0
- package/dist/ui/resizable.cjs +2 -1
- package/dist/ui/resizable.cjs.map +1 -0
- package/dist/ui/resizable.d.cts +1 -1
- package/dist/ui/resizable.d.mts +1 -1
- package/dist/ui/resizable.mjs +2 -1
- package/dist/ui/resizable.mjs.map +1 -0
- package/dist/ui/scroll-area.cjs +2 -1
- package/dist/ui/scroll-area.cjs.map +1 -0
- package/dist/ui/scroll-area.d.cts +35 -2
- package/dist/ui/scroll-area.d.mts +35 -2
- package/dist/ui/scroll-area.mjs +2 -1
- package/dist/ui/scroll-area.mjs.map +1 -0
- package/dist/ui/select.cjs +2 -1
- package/dist/ui/select.cjs.map +1 -0
- package/dist/ui/select.d.cts +74 -2
- package/dist/ui/select.d.mts +74 -2
- package/dist/ui/select.mjs +2 -1
- package/dist/ui/select.mjs.map +1 -0
- package/dist/ui/separator.cjs +2 -1
- package/dist/ui/separator.cjs.map +1 -0
- package/dist/ui/separator.d.cts +32 -2
- package/dist/ui/separator.d.mts +32 -2
- package/dist/ui/separator.mjs +2 -1
- package/dist/ui/separator.mjs.map +1 -0
- package/dist/ui/sheet.cjs +2 -1
- package/dist/ui/sheet.cjs.map +1 -0
- package/dist/ui/sheet.d.cts +66 -2
- package/dist/ui/sheet.d.mts +66 -2
- package/dist/ui/sheet.mjs +2 -1
- package/dist/ui/sheet.mjs.map +1 -0
- package/dist/ui/skeleton.cjs +2 -1
- package/dist/ui/skeleton.cjs.map +1 -0
- package/dist/ui/skeleton.d.cts +24 -2
- package/dist/ui/skeleton.d.mts +24 -2
- package/dist/ui/skeleton.mjs +2 -1
- package/dist/ui/skeleton.mjs.map +1 -0
- package/dist/ui/slider.cjs +2 -1
- package/dist/ui/slider.cjs.map +1 -0
- package/dist/ui/slider.d.cts +24 -2
- package/dist/ui/slider.d.mts +24 -2
- package/dist/ui/slider.mjs +2 -1
- package/dist/ui/slider.mjs.map +1 -0
- package/dist/ui/sonner.cjs +2 -1
- package/dist/ui/sonner.cjs.map +1 -0
- package/dist/ui/sonner.d.cts +22 -2
- package/dist/ui/sonner.d.mts +22 -2
- package/dist/ui/sonner.mjs +2 -1
- package/dist/ui/sonner.mjs.map +1 -0
- package/dist/ui/spinner.cjs +2 -1
- package/dist/ui/spinner.cjs.map +1 -0
- package/dist/ui/spinner.d.cts +22 -2
- package/dist/ui/spinner.d.mts +22 -2
- package/dist/ui/spinner.mjs +2 -1
- package/dist/ui/spinner.mjs.map +1 -0
- package/dist/ui/switch.cjs +2 -1
- package/dist/ui/switch.cjs.map +1 -0
- package/dist/ui/switch.d.cts +24 -2
- package/dist/ui/switch.d.mts +24 -2
- package/dist/ui/switch.mjs +2 -1
- package/dist/ui/switch.mjs.map +1 -0
- package/dist/ui/table.cjs +2 -1
- package/dist/ui/table.cjs.map +1 -0
- package/dist/ui/table.d.cts +70 -2
- package/dist/ui/table.d.mts +70 -2
- package/dist/ui/table.mjs +2 -1
- package/dist/ui/table.mjs.map +1 -0
- package/dist/ui/tabs.cjs +2 -1
- package/dist/ui/tabs.cjs.map +1 -0
- package/dist/ui/tabs.d.cts +42 -2
- package/dist/ui/tabs.d.mts +42 -2
- package/dist/ui/tabs.mjs +2 -1
- package/dist/ui/tabs.mjs.map +1 -0
- package/dist/ui/textarea.cjs +2 -1
- package/dist/ui/textarea.cjs.map +1 -0
- package/dist/ui/textarea.d.cts +26 -2
- package/dist/ui/textarea.d.mts +26 -2
- package/dist/ui/textarea.mjs +2 -1
- package/dist/ui/textarea.mjs.map +1 -0
- package/dist/ui/toggle-group.cjs +2 -1
- package/dist/ui/toggle-group.cjs.map +1 -0
- package/dist/ui/toggle-group.d.cts +37 -2
- package/dist/ui/toggle-group.d.mts +37 -3
- package/dist/ui/toggle-group.mjs +2 -1
- package/dist/ui/toggle-group.mjs.map +1 -0
- package/dist/ui/toggle.cjs +2 -1
- package/dist/ui/toggle.cjs.map +1 -0
- package/dist/ui/toggle.d.cts +30 -2
- package/dist/ui/toggle.d.mts +30 -2
- package/dist/ui/toggle.mjs +2 -1
- package/dist/ui/toggle.mjs.map +1 -0
- package/dist/ui/tooltip.cjs +2 -1
- package/dist/ui/tooltip.cjs.map +1 -0
- package/dist/ui/tooltip.d.cts +53 -2
- package/dist/ui/tooltip.d.mts +53 -2
- package/dist/ui/tooltip.mjs +2 -1
- package/dist/ui/tooltip.mjs.map +1 -0
- package/package.json +2 -2
- package/dist/FeatureDeveloping-Bpmk3ZyS.d.cts +0 -43
- package/dist/FeatureDeveloping-CVFrndc_.cjs +0 -2
- package/dist/FeatureDeveloping-CVFrndc_.cjs.map +0 -1
- package/dist/FeatureDeveloping-k_14m44U.mjs +0 -2
- package/dist/FeatureDeveloping-k_14m44U.mjs.map +0 -1
- package/dist/FeatureDeveloping-oS433qZK.d.mts +0 -43
- package/dist/FeatureFixing-CRTE4tkV.d.mts +0 -43
- package/dist/FeatureFixing-CqDnOmou.cjs +0 -2
- package/dist/FeatureFixing-CqDnOmou.cjs.map +0 -1
- package/dist/FeatureFixing-D7qYhigu.mjs +0 -2
- package/dist/FeatureFixing-D7qYhigu.mjs.map +0 -1
- package/dist/FeatureFixing-Vwb-odpJ.d.cts +0 -43
- package/dist/LoginPage-B7SgjP72.d.cts +0 -55
- package/dist/LoginPage-BDh57TIY.mjs +0 -2
- package/dist/LoginPage-BDh57TIY.mjs.map +0 -1
- package/dist/LoginPage-Bsh_Wo-4.d.mts +0 -55
- package/dist/LoginPage-CSewNEGN.cjs +0 -2
- package/dist/LoginPage-CSewNEGN.cjs.map +0 -1
- package/dist/NotAuthorized-B1nln3YY.d.mts +0 -43
- package/dist/NotAuthorized-BBlhgNjt.cjs +0 -2
- package/dist/NotAuthorized-BBlhgNjt.cjs.map +0 -1
- package/dist/NotAuthorized-DcXH7UbQ.d.cts +0 -43
- package/dist/NotAuthorized-xXIwCXtZ.mjs +0 -2
- package/dist/NotAuthorized-xXIwCXtZ.mjs.map +0 -1
- package/dist/NotFound-BOAR7QCc.cjs +0 -2
- package/dist/NotFound-BOAR7QCc.cjs.map +0 -1
- package/dist/NotFound-Co0y_Fpa.d.cts +0 -43
- package/dist/NotFound-H7T1wCkf.mjs +0 -2
- package/dist/NotFound-H7T1wCkf.mjs.map +0 -1
- package/dist/NotFound-Kvw-yvr_.d.mts +0 -43
- package/dist/RegisterPage-BI5efPEP.cjs +0 -2
- package/dist/RegisterPage-BI5efPEP.cjs.map +0 -1
- package/dist/RegisterPage-DKiXE8U6.d.mts +0 -52
- package/dist/RegisterPage-DluyCA1L.mjs +0 -2
- package/dist/RegisterPage-DluyCA1L.mjs.map +0 -1
- package/dist/RegisterPage-qEpX0gUP.d.cts +0 -52
- package/dist/VerifyEmailPage-D3U6V5IR.mjs +0 -2
- package/dist/VerifyEmailPage-D3U6V5IR.mjs.map +0 -1
- package/dist/VerifyEmailPage-DRQiyUqo.cjs +0 -2
- package/dist/VerifyEmailPage-DRQiyUqo.cjs.map +0 -1
- package/dist/VerifyEmailPage-Dd59Girn.d.cts +0 -64
- package/dist/VerifyEmailPage-ZaRE0r8m.d.mts +0 -64
- package/dist/add-new-B35fn_Bz.mjs +0 -2
- package/dist/add-new-B35fn_Bz.mjs.map +0 -1
- package/dist/add-new-DqRZeMNy.d.mts +0 -17
- package/dist/add-new-deaz-L5t.cjs +0 -2
- package/dist/add-new-deaz-L5t.cjs.map +0 -1
- package/dist/add-new-pqYC7xmc.d.cts +0 -17
- package/dist/alert-DDdHIRib.cjs +0 -2
- package/dist/alert-dialog-B9ThoUnv.cjs +0 -2
- package/dist/alert-dialog-B9ThoUnv.cjs.map +0 -1
- package/dist/alert-dialog-D0jOWqaA.d.mts +0 -90
- package/dist/alert-dialog-DqIS6qRz.mjs +0 -2
- package/dist/alert-dialog-DqIS6qRz.mjs.map +0 -1
- package/dist/alert-dialog-TBiCQ9Ty.d.cts +0 -90
- package/dist/aspect-ratio-BsfIALEV.d.mts +0 -24
- package/dist/aspect-ratio-Cd2mBXiE.cjs +0 -2
- package/dist/aspect-ratio-Cd2mBXiE.cjs.map +0 -1
- package/dist/aspect-ratio-DP12ssDX.mjs +0 -2
- package/dist/aspect-ratio-DP12ssDX.mjs.map +0 -1
- package/dist/aspect-ratio-Dy7SplBM.d.cts +0 -24
- package/dist/avatar-CVRRoJ05.cjs +0 -2
- package/dist/avatar-CVRRoJ05.cjs.map +0 -1
- package/dist/avatar-XFoz-EPk.d.cts +0 -35
- package/dist/avatar-tjgTFpVU.mjs +0 -2
- package/dist/avatar-tjgTFpVU.mjs.map +0 -1
- package/dist/avatar-zDJh1tw9.d.mts +0 -35
- package/dist/badge-7bcsD0vA.cjs +0 -2
- package/dist/badge-7bcsD0vA.cjs.map +0 -1
- package/dist/badge-CG6dbI29.mjs +0 -2
- package/dist/badge-CG6dbI29.mjs.map +0 -1
- package/dist/breadcrumb-BhUXmEGd.d.cts +0 -72
- package/dist/breadcrumb-D5EVqGzZ.d.mts +0 -72
- package/dist/breadcrumb-DgCIacvh.cjs +0 -2
- package/dist/breadcrumb-DgCIacvh.cjs.map +0 -1
- package/dist/breadcrumb-RCZAaQ1l.mjs +0 -2
- package/dist/breadcrumb-RCZAaQ1l.mjs.map +0 -1
- package/dist/button-C--DAN1D.cjs +0 -2
- package/dist/button-C--DAN1D.cjs.map +0 -1
- package/dist/button-CCVJTHBI.mjs +0 -2
- package/dist/button-CCVJTHBI.mjs.map +0 -1
- package/dist/button-group-4oHvYHtz.cjs +0 -2
- package/dist/button-group-4oHvYHtz.cjs.map +0 -1
- package/dist/button-group-CDRMmMyT.d.cts +0 -50
- package/dist/button-group-CRuT_zEE.mjs +0 -2
- package/dist/button-group-CRuT_zEE.mjs.map +0 -1
- package/dist/button-group-wrn32Sqe.d.mts +0 -50
- package/dist/button.variants-4kw6plrv.cjs +0 -2
- package/dist/calendar-BUPDN6CU.d.cts +0 -45
- package/dist/calendar-Boz9U-O2.d.mts +0 -45
- package/dist/calendar-CTyL_3WY.cjs +0 -2
- package/dist/calendar-CTyL_3WY.cjs.map +0 -1
- package/dist/calendar-DyzwC2TQ.mjs +0 -2
- package/dist/calendar-DyzwC2TQ.mjs.map +0 -1
- package/dist/card-B8Pm6iEs.cjs +0 -2
- package/dist/card-B8Pm6iEs.cjs.map +0 -1
- package/dist/card-DDM5jg3U.d.mts +0 -63
- package/dist/card-DpQKFp4f.mjs +0 -2
- package/dist/card-DpQKFp4f.mjs.map +0 -1
- package/dist/card-a8tqytoT.d.cts +0 -63
- package/dist/carousel-BayGB372.cjs +0 -2
- package/dist/carousel-BayGB372.cjs.map +0 -1
- package/dist/carousel-Cm4szl4A.d.cts +0 -71
- package/dist/carousel-D8xUkFZ-.mjs +0 -2
- package/dist/carousel-D8xUkFZ-.mjs.map +0 -1
- package/dist/carousel-Y5TlCJ96.d.mts +0 -71
- package/dist/checkbox-Bbn3OZQd.d.mts +0 -26
- package/dist/checkbox-Bt4BgYMB.cjs +0 -2
- package/dist/checkbox-Bt4BgYMB.cjs.map +0 -1
- package/dist/checkbox-CBhlnGGv.mjs +0 -2
- package/dist/checkbox-CBhlnGGv.mjs.map +0 -1
- package/dist/checkbox-CccXRTYH.d.cts +0 -26
- package/dist/chunk-350yNsax.cjs +0 -1
- package/dist/close-Co-WLsSG.mjs.map +0 -1
- package/dist/close-DYBVx-8O.cjs +0 -2
- package/dist/close-DYBVx-8O.cjs.map +0 -1
- package/dist/cms-layout-B7lc5hIX.mjs +0 -2
- package/dist/cms-layout-B7lc5hIX.mjs.map +0 -1
- package/dist/cms-layout-DeTdDLXr.cjs +0 -2
- package/dist/cms-layout-DeTdDLXr.cjs.map +0 -1
- package/dist/collapsible-CLr3JLeA.mjs +0 -2
- package/dist/collapsible-CLr3JLeA.mjs.map +0 -1
- package/dist/collapsible-LInIoQlU.d.cts +0 -34
- package/dist/collapsible-RWAWE2lS.d.mts +0 -34
- package/dist/collapsible-rx0m3LuF.cjs +0 -2
- package/dist/collapsible-rx0m3LuF.cjs.map +0 -1
- package/dist/command-BQFbzzTr.cjs +0 -2
- package/dist/command-BQFbzzTr.cjs.map +0 -1
- package/dist/command-BlvmwwTr.d.mts +0 -89
- package/dist/command-CQMdYoAm.mjs +0 -2
- package/dist/command-CQMdYoAm.mjs.map +0 -1
- package/dist/command-DAudAVpm.d.cts +0 -89
- package/dist/confirm-dialog-C5ULtwJE.cjs +0 -2
- package/dist/confirm-dialog-C5ULtwJE.cjs.map +0 -1
- package/dist/confirm-dialog-CNWJKBc9.d.mts +0 -142
- package/dist/confirm-dialog-DG_3RvTI.d.cts +0 -142
- package/dist/confirm-dialog-u2GP8uPi.mjs +0 -2
- package/dist/confirm-dialog-u2GP8uPi.mjs.map +0 -1
- package/dist/context-menu-C9nXY3Bq.d.cts +0 -125
- package/dist/context-menu-CplWspvB.cjs +0 -2
- package/dist/context-menu-CplWspvB.cjs.map +0 -1
- package/dist/context-menu-DrF_sQB1.d.mts +0 -125
- package/dist/context-menu-a50s2_E_.mjs +0 -2
- package/dist/context-menu-a50s2_E_.mjs.map +0 -1
- package/dist/country-BHMqKldc.d.mts +0 -22
- package/dist/country-CnXNnGmY.cjs +0 -2
- package/dist/country-CnXNnGmY.cjs.map +0 -1
- package/dist/country-DUD_q-yS.d.cts +0 -22
- package/dist/country-lc1l_viY.mjs +0 -2
- package/dist/country-lc1l_viY.mjs.map +0 -1
- package/dist/data-list-BGmCL71V.cjs +0 -2
- package/dist/data-list-BGmCL71V.cjs.map +0 -1
- package/dist/data-list-CXWcUFU1.mjs +0 -2
- package/dist/data-list-CXWcUFU1.mjs.map +0 -1
- package/dist/data-list-Chl3KU5n.d.mts +0 -43
- package/dist/data-list-DwyNusTs.d.cts +0 -43
- package/dist/date-88lk-VJF.mjs.map +0 -1
- package/dist/date-BBBx-rIM.cjs +0 -2
- package/dist/date-BBBx-rIM.cjs.map +0 -1
- package/dist/date-tooltip-BdVWCJlg.cjs +0 -2
- package/dist/date-tooltip-BdVWCJlg.cjs.map +0 -1
- package/dist/date-tooltip-CoPcr3Ju.d.mts +0 -19
- package/dist/date-tooltip-DZ3NlfdZ.d.cts +0 -19
- package/dist/date-tooltip-OPAmlgBg.mjs +0 -2
- package/dist/date-tooltip-OPAmlgBg.mjs.map +0 -1
- package/dist/date-viiYGAtR.d.mts +0 -39
- package/dist/date-xQIXRJ71.d.cts +0 -39
- package/dist/descriptions-CgkBHjKD.mjs +0 -2
- package/dist/descriptions-CgkBHjKD.mjs.map +0 -1
- package/dist/descriptions-RNxfgfpM.cjs +0 -2
- package/dist/descriptions-RNxfgfpM.cjs.map +0 -1
- package/dist/detail-dialog-BLApH3eD.cjs +0 -2
- package/dist/detail-dialog-BLApH3eD.cjs.map +0 -1
- package/dist/detail-dialog-CXKrznrp.mjs +0 -2
- package/dist/detail-dialog-CXKrznrp.mjs.map +0 -1
- package/dist/dialog--BvCecaD.mjs +0 -2
- package/dist/dialog--BvCecaD.mjs.map +0 -1
- package/dist/dialog-DNEUhYSv.cjs +0 -2
- package/dist/dialog-DNEUhYSv.cjs.map +0 -1
- package/dist/dist-Cx5ufCdr.cjs +0 -2
- package/dist/drawer-BYYCsheu.mjs +0 -2
- package/dist/drawer-BYYCsheu.mjs.map +0 -1
- package/dist/drawer-CjnhVMTw.d.mts +0 -72
- package/dist/drawer-DqAutQLS.d.cts +0 -72
- package/dist/drawer-H8uD0q-C.cjs +0 -2
- package/dist/drawer-H8uD0q-C.cjs.map +0 -1
- package/dist/dropdown-menu-CpA9s4II.d.cts +0 -127
- package/dist/dropdown-menu-CtJ_OM19.cjs +0 -2
- package/dist/dropdown-menu-CtJ_OM19.cjs.map +0 -1
- package/dist/dropdown-menu-DhKquziD.mjs +0 -2
- package/dist/dropdown-menu-DhKquziD.mjs.map +0 -1
- package/dist/dropdown-menu-aDVEkr4L.d.mts +0 -127
- package/dist/edit-B6hhKU53.d.cts +0 -17
- package/dist/edit-CJH1v_md.d.mts +0 -17
- package/dist/edit-DwHuMQMh.cjs +0 -2
- package/dist/edit-DwHuMQMh.cjs.map +0 -1
- package/dist/edit-FIiUWxZq.mjs +0 -2
- package/dist/edit-FIiUWxZq.mjs.map +0 -1
- package/dist/empty-BhV9ASYf.d.mts +0 -68
- package/dist/empty-CmIJYhmV.cjs +0 -2
- package/dist/empty-CmIJYhmV.cjs.map +0 -1
- package/dist/empty-CoKfJtGD.mjs +0 -2
- package/dist/empty-CoKfJtGD.mjs.map +0 -1
- package/dist/empty-D6t3C3WX.mjs +0 -2
- package/dist/empty-D6t3C3WX.mjs.map +0 -1
- package/dist/empty-DaK_4UmN.d.cts +0 -68
- package/dist/empty-OVsSwbVn.d.mts +0 -21
- package/dist/empty-dUZoxaBx.cjs +0 -2
- package/dist/empty-dUZoxaBx.cjs.map +0 -1
- package/dist/empty-z1Ft5uT1.d.cts +0 -21
- package/dist/error-dialog-B8CXPcst.cjs +0 -2
- package/dist/error-dialog-B8CXPcst.cjs.map +0 -1
- package/dist/error-dialog-D0jvqNoY.d.mts +0 -25
- package/dist/error-dialog-DlwWpKEY.d.cts +0 -25
- package/dist/error-dialog-DnntjOS9.mjs +0 -2
- package/dist/error-dialog-DnntjOS9.mjs.map +0 -1
- package/dist/field-BxYoF5AX.mjs +0 -2
- package/dist/field-BxYoF5AX.mjs.map +0 -1
- package/dist/field-fIef7NR0.cjs +0 -2
- package/dist/field-fIef7NR0.cjs.map +0 -1
- package/dist/file-uploader-BM0x9VBh.cjs +0 -3
- package/dist/file-uploader-BM0x9VBh.cjs.map +0 -1
- package/dist/file-uploader-BTWXTBeQ.mjs +0 -3
- package/dist/file-uploader-BTWXTBeQ.mjs.map +0 -1
- package/dist/file-uploader-Bcq3zzxa.d.cts +0 -103
- package/dist/file-uploader-nUOkG_fv.d.mts +0 -103
- package/dist/flex-BSTiMh2t.d.mts +0 -117
- package/dist/flex-Bx9Nmr53.mjs +0 -2
- package/dist/flex-Bx9Nmr53.mjs.map +0 -1
- package/dist/flex-ClUVVSda.d.cts +0 -117
- package/dist/flex-ld7BqXoM.cjs +0 -2
- package/dist/flex-ld7BqXoM.cjs.map +0 -1
- package/dist/form-BZAtjwSL.d.mts +0 -112
- package/dist/form-Cek0ebE_.d.cts +0 -112
- package/dist/form-DvtaketZ.mjs +0 -2
- package/dist/form-DvtaketZ.mjs.map +0 -1
- package/dist/form-RLIQQ3uV.cjs +0 -2
- package/dist/form-RLIQQ3uV.cjs.map +0 -1
- package/dist/google-BWOrgvy8.d.mts +0 -53
- package/dist/google-C4F5wQ9e.mjs +0 -2
- package/dist/google-C4F5wQ9e.mjs.map +0 -1
- package/dist/google-Cy0_rdmN.cjs +0 -2
- package/dist/google-Cy0_rdmN.cjs.map +0 -1
- package/dist/google-Dyb44d8Y.d.cts +0 -53
- package/dist/grid-BOqzD6m6.d.cts +0 -19
- package/dist/grid-BXJ2x1oD.cjs +0 -2
- package/dist/grid-BXJ2x1oD.cjs.map +0 -1
- package/dist/grid-C4ogfMWr.mjs +0 -2
- package/dist/grid-C4ogfMWr.mjs.map +0 -1
- package/dist/grid-Dw7tBNxf.d.mts +0 -19
- package/dist/grid-product-card-BD8EVmk6.d.cts +0 -37
- package/dist/grid-product-card-BpciVETd.cjs +0 -2
- package/dist/grid-product-card-BpciVETd.cjs.map +0 -1
- package/dist/grid-product-card-BtZwWaMo.mjs +0 -2
- package/dist/grid-product-card-BtZwWaMo.mjs.map +0 -1
- package/dist/grid-product-card-CoFzQiFm.d.mts +0 -37
- package/dist/heading-De4Pn3mZ.mjs +0 -2
- package/dist/heading-tGTqk3pA.cjs +0 -2
- package/dist/hover-card-D2gz257Y.d.cts +0 -37
- package/dist/hover-card-DMVePTD9.mjs +0 -2
- package/dist/hover-card-DMVePTD9.mjs.map +0 -1
- package/dist/hover-card-Dsf0S6eo.d.mts +0 -37
- package/dist/hover-card-Pde4G6Fc.cjs +0 -2
- package/dist/hover-card-Pde4G6Fc.cjs.map +0 -1
- package/dist/image-BBPrcvIr.d.cts +0 -36
- package/dist/image-CbZwvmmL.mjs +0 -2
- package/dist/image-CbZwvmmL.mjs.map +0 -1
- package/dist/image-CwnOaUW7.d.mts +0 -36
- package/dist/image-eYMg5TSJ.cjs +0 -2
- package/dist/image-eYMg5TSJ.cjs.map +0 -1
- package/dist/index-1T84UTtI.d.mts +0 -1707
- package/dist/index-B03QzDx1.d.mts +0 -17
- package/dist/index-BQZ2-xGQ.d.cts +0 -246
- package/dist/index-BWLHjQ6S.d.cts +0 -74
- package/dist/index-D4T3Qd4m.d.cts +0 -45
- package/dist/index-DC7NHLfc.d.cts +0 -17
- package/dist/index-DYnzFF0T.d.mts +0 -74
- package/dist/index-DYp6lUbn.d.mts +0 -45
- package/dist/index-DyYcTYcv.d.mts +0 -246
- package/dist/index-x5md75cy.d.cts +0 -1707
- package/dist/input-BatF2xqI.cjs +0 -2
- package/dist/input-BatF2xqI.cjs.map +0 -1
- package/dist/input-CFsouxvo.mjs +0 -2
- package/dist/input-CFsouxvo.mjs.map +0 -1
- package/dist/input-otp-C9SpN7qa.mjs +0 -2
- package/dist/input-otp-C9SpN7qa.mjs.map +0 -1
- package/dist/input-otp-CMEY_7IK.d.cts +0 -59
- package/dist/input-otp-DXt9rivn.d.mts +0 -59
- package/dist/input-otp-phGylVzo.cjs +0 -2
- package/dist/input-otp-phGylVzo.cjs.map +0 -1
- package/dist/item-DSaO7I07.d.cts +0 -102
- package/dist/item-Dq3WIh5a.d.mts +0 -102
- package/dist/item-uB0ZFXtc.cjs +0 -2
- package/dist/item-uB0ZFXtc.cjs.map +0 -1
- package/dist/item-ysEJO_2s.mjs +0 -2
- package/dist/item-ysEJO_2s.mjs.map +0 -1
- package/dist/label--hinNDHW.cjs +0 -2
- package/dist/label--hinNDHW.cjs.map +0 -1
- package/dist/label-BMVyfKu9.mjs +0 -2
- package/dist/label-BMVyfKu9.mjs.map +0 -1
- package/dist/label-CCE-kS4j.d.mts +0 -24
- package/dist/label-DGJL4U_f.d.cts +0 -24
- package/dist/loading-dialog-CEkua3Lh.mjs +0 -2
- package/dist/loading-dialog-CEkua3Lh.mjs.map +0 -1
- package/dist/loading-dialog-D8kCsJID.d.cts +0 -21
- package/dist/loading-dialog-DLvA8-yT.d.mts +0 -21
- package/dist/loading-dialog-DYZmHC1A.cjs +0 -2
- package/dist/loading-dialog-DYZmHC1A.cjs.map +0 -1
- package/dist/menubar-BBFgdkch.d.cts +0 -135
- package/dist/menubar-Bh9Ua6gx.mjs +0 -2
- package/dist/menubar-Bh9Ua6gx.mjs.map +0 -1
- package/dist/menubar-Sr0X6In7.cjs +0 -2
- package/dist/menubar-Sr0X6In7.cjs.map +0 -1
- package/dist/menubar-b3iR0kew.d.mts +0 -135
- package/dist/multi-select-BHqEpbWV.d.mts +0 -117
- package/dist/multi-select-CBZxsmZW.mjs +0 -2
- package/dist/multi-select-CBZxsmZW.mjs.map +0 -1
- package/dist/multi-select-DdXU9QtL.d.cts +0 -117
- package/dist/multi-select-uHi4rmly.cjs +0 -2
- package/dist/multi-select-uHi4rmly.cjs.map +0 -1
- package/dist/name-2FXVOGc1.d.mts +0 -19
- package/dist/name-D7oldyH4.cjs +0 -2
- package/dist/name-D7oldyH4.cjs.map +0 -1
- package/dist/name-EKzKeq0g.mjs +0 -2
- package/dist/name-EKzKeq0g.mjs.map +0 -1
- package/dist/name-r1ATxwPZ.d.cts +0 -19
- package/dist/navigation-menu-BNEtQ0JM.cjs +0 -2
- package/dist/navigation-menu-BNEtQ0JM.cjs.map +0 -1
- package/dist/navigation-menu-DT9LfEFB.d.mts +0 -77
- package/dist/navigation-menu-Dl0kgmce.d.cts +0 -77
- package/dist/navigation-menu-zlpQ6hqY.mjs +0 -2
- package/dist/navigation-menu-zlpQ6hqY.mjs.map +0 -1
- package/dist/pagination-D6lKOCca.cjs +0 -2
- package/dist/pagination-D6lKOCca.cjs.map +0 -1
- package/dist/pagination-DXpyiDJW.mjs +0 -2
- package/dist/pagination-DXpyiDJW.mjs.map +0 -1
- package/dist/pagination-DYHZgmcc.d.cts +0 -67
- package/dist/pagination-DYMPNWwJ.d.mts +0 -67
- package/dist/paragraph-CLhsGG8e.d.cts +0 -48
- package/dist/paragraph-DYLaQtTV.mjs +0 -2
- package/dist/paragraph-DYLaQtTV.mjs.map +0 -1
- package/dist/paragraph-DvTZvbzw.cjs +0 -2
- package/dist/paragraph-DvTZvbzw.cjs.map +0 -1
- package/dist/paragraph-o9QFeg6c.d.mts +0 -48
- package/dist/payment-layout-BTYaI9Mr.mjs +0 -2
- package/dist/payment-layout-BTYaI9Mr.mjs.map +0 -1
- package/dist/payment-layout-neLk_obm.cjs +0 -2
- package/dist/payment-layout-neLk_obm.cjs.map +0 -1
- package/dist/phone-number-BAqPxJ5z.d.cts +0 -19
- package/dist/phone-number-CUjSdoHG.d.mts +0 -19
- package/dist/phone-number-CdfMUTj2.cjs +0 -2
- package/dist/phone-number-CdfMUTj2.cjs.map +0 -1
- package/dist/phone-number-CkxEaxxg.mjs +0 -2
- package/dist/phone-number-CkxEaxxg.mjs.map +0 -1
- package/dist/popover-BGd0Tvmy.mjs +0 -2
- package/dist/popover-BGd0Tvmy.mjs.map +0 -1
- package/dist/popover-CaU_EoBJ.d.mts +0 -52
- package/dist/popover-eSwUy8WP.cjs +0 -2
- package/dist/popover-eSwUy8WP.cjs.map +0 -1
- package/dist/popover-m32DoRiq.d.cts +0 -52
- package/dist/product-card-10gaH8bg.cjs +0 -2
- package/dist/product-card-10gaH8bg.cjs.map +0 -1
- package/dist/product-card-C0l0q2Ve.d.cts +0 -37
- package/dist/product-card-CWrVGqZV.d.mts +0 -37
- package/dist/product-card-Rwd-o9hK.mjs +0 -2
- package/dist/product-card-Rwd-o9hK.mjs.map +0 -1
- package/dist/progress-BwbACJal.d.cts +0 -23
- package/dist/progress-Dlgbu5Ff.cjs +0 -2
- package/dist/progress-Dlgbu5Ff.cjs.map +0 -1
- package/dist/progress-RvyBMsxb.mjs +0 -2
- package/dist/progress-RvyBMsxb.mjs.map +0 -1
- package/dist/progress-sn0IL4k4.d.mts +0 -23
- package/dist/radio-group-C4sIDN68.cjs +0 -2
- package/dist/radio-group-C4sIDN68.cjs.map +0 -1
- package/dist/radio-group-CD-4vNQR.mjs +0 -2
- package/dist/radio-group-CD-4vNQR.mjs.map +0 -1
- package/dist/radio-group-Ck0NoDHp.d.cts +0 -37
- package/dist/radio-group-DeKN6NpB.d.mts +0 -37
- package/dist/refresh-BFJvyuJH.cjs +0 -2
- package/dist/refresh-BFJvyuJH.cjs.map +0 -1
- package/dist/refresh-BjdAiL4f.d.mts +0 -17
- package/dist/refresh-Bxm2I0Oe.mjs +0 -2
- package/dist/refresh-Bxm2I0Oe.mjs.map +0 -1
- package/dist/refresh-vK99pTVu.d.cts +0 -17
- package/dist/resizable-BilIxAxi.d.mts +0 -63
- package/dist/resizable-DYxHVdyf.d.cts +0 -63
- package/dist/resizable-p6zxjcHs.mjs +0 -2
- package/dist/resizable-p6zxjcHs.mjs.map +0 -1
- package/dist/resizable-yKKhHTqx.cjs +0 -2
- package/dist/resizable-yKKhHTqx.cjs.map +0 -1
- package/dist/role-badge-BIgdiY5P.mjs +0 -2
- package/dist/role-badge-BIgdiY5P.mjs.map +0 -1
- package/dist/role-badge-BwOEEepo.cjs +0 -2
- package/dist/role-badge-BwOEEepo.cjs.map +0 -1
- package/dist/role-badge-CBZdPHUc.d.cts +0 -22
- package/dist/role-badge-DeofJ2ep.d.mts +0 -22
- package/dist/scroll-area-C7s40z6d.d.mts +0 -37
- package/dist/scroll-area-CKWenzXh.d.cts +0 -37
- package/dist/scroll-area-Dn3a9ZCQ.cjs +0 -2
- package/dist/scroll-area-Dn3a9ZCQ.cjs.map +0 -1
- package/dist/scroll-area-DrZOWroA.mjs +0 -2
- package/dist/scroll-area-DrZOWroA.mjs.map +0 -1
- package/dist/search-input-7m30vApQ.d.mts +0 -29
- package/dist/search-input-BCYwlwtk.cjs +0 -2
- package/dist/search-input-BCYwlwtk.cjs.map +0 -1
- package/dist/search-input-DVtHPbme.d.cts +0 -29
- package/dist/search-input-D_nJ8McN.mjs +0 -2
- package/dist/search-input-D_nJ8McN.mjs.map +0 -1
- package/dist/search-modal-BJhXWOiv.cjs +0 -2
- package/dist/search-modal-BJhXWOiv.cjs.map +0 -1
- package/dist/search-modal-BpHuii66.mjs +0 -2
- package/dist/search-modal-BpHuii66.mjs.map +0 -1
- package/dist/select-B5q6krCq.cjs +0 -2
- package/dist/select-B5q6krCq.cjs.map +0 -1
- package/dist/select-CreOhvnP.mjs +0 -2
- package/dist/select-CreOhvnP.mjs.map +0 -1
- package/dist/select-D0mVxToc.d.mts +0 -77
- package/dist/select-D47FVDEv.d.cts +0 -77
- package/dist/separator-BRoS5sU8.cjs +0 -2
- package/dist/separator-BRoS5sU8.cjs.map +0 -1
- package/dist/separator-BT4tDBSP.d.mts +0 -34
- package/dist/separator-BjRgoiEx.mjs +0 -2
- package/dist/separator-BjRgoiEx.mjs.map +0 -1
- package/dist/separator-DOHFNx8Z.d.cts +0 -34
- package/dist/sheet-38e14yOJ.d.cts +0 -69
- package/dist/sheet-Bk6mK6TN.mjs +0 -2
- package/dist/sheet-Bk6mK6TN.mjs.map +0 -1
- package/dist/sheet-E5cMUzxr.cjs +0 -2
- package/dist/sheet-E5cMUzxr.cjs.map +0 -1
- package/dist/sheet-nSIzbJ1S.d.mts +0 -69
- package/dist/sidebar-DeiQjPc8.mjs +0 -2
- package/dist/sidebar-DeiQjPc8.mjs.map +0 -1
- package/dist/sidebar-DzqiY6IR.cjs +0 -2
- package/dist/sidebar-DzqiY6IR.cjs.map +0 -1
- package/dist/simple-card-C5Rr81Sm.cjs +0 -2
- package/dist/simple-card-C5Rr81Sm.cjs.map +0 -1
- package/dist/simple-card-CIB1_AO0.d.mts +0 -35
- package/dist/simple-card-CjJvBXKr.d.cts +0 -35
- package/dist/simple-card-HEzKjzGT.mjs +0 -2
- package/dist/simple-card-HEzKjzGT.mjs.map +0 -1
- package/dist/skeleton-BuscPZgb.cjs +0 -2
- package/dist/skeleton-BuscPZgb.cjs.map +0 -1
- package/dist/skeleton-Bw3-1Ifw.d.cts +0 -27
- package/dist/skeleton-teVJKfpX.mjs +0 -2
- package/dist/skeleton-teVJKfpX.mjs.map +0 -1
- package/dist/skeleton-wv8x-bmn.d.mts +0 -27
- package/dist/slider-CPRW5ByY.cjs +0 -2
- package/dist/slider-CPRW5ByY.cjs.map +0 -1
- package/dist/slider-CsNzhp4K.d.cts +0 -26
- package/dist/slider-RyNGQZH2.mjs +0 -2
- package/dist/slider-RyNGQZH2.mjs.map +0 -1
- package/dist/slider-axR5n-iU.d.mts +0 -26
- package/dist/sonner-BcwAttxz.d.cts +0 -24
- package/dist/sonner-DiKkRgL0.mjs +0 -2
- package/dist/sonner-DiKkRgL0.mjs.map +0 -1
- package/dist/sonner-hiZbh7Ma.d.mts +0 -24
- package/dist/sonner-tfvnW7f9.cjs +0 -2
- package/dist/sonner-tfvnW7f9.cjs.map +0 -1
- package/dist/spinner-8BhR5INj.d.cts +0 -25
- package/dist/spinner-BhIV1n_5.mjs +0 -2
- package/dist/spinner-BhIV1n_5.mjs.map +0 -1
- package/dist/spinner-BlcoDe44.cjs +0 -2
- package/dist/spinner-BlcoDe44.cjs.map +0 -1
- package/dist/spinner-YEHQDAMj.d.mts +0 -25
- package/dist/statistic-BGynCEWL.cjs +0 -2
- package/dist/statistic-BGynCEWL.cjs.map +0 -1
- package/dist/statistic-C7jb2YxN.d.cts +0 -57
- package/dist/statistic-DbQG1ymc.d.mts +0 -57
- package/dist/statistic-fawLJa99.mjs +0 -2
- package/dist/statistic-fawLJa99.mjs.map +0 -1
- package/dist/switch-BTU8yOgs.mjs +0 -2
- package/dist/switch-BTU8yOgs.mjs.map +0 -1
- package/dist/switch-BaLJWcs6.d.cts +0 -26
- package/dist/switch-DMEBc5Me.cjs +0 -2
- package/dist/switch-DMEBc5Me.cjs.map +0 -1
- package/dist/switch-gWDJ4yuM.d.mts +0 -26
- package/dist/table-B2rDsRr1.d.cts +0 -73
- package/dist/table-BmEJ-Ktq.d.mts +0 -73
- package/dist/table-DUDAeitX.mjs +0 -2
- package/dist/table-DUDAeitX.mjs.map +0 -1
- package/dist/table-DkGeuCS6.cjs +0 -2
- package/dist/table-DkGeuCS6.cjs.map +0 -1
- package/dist/tables-BhRUyHnO.cjs +0 -4
- package/dist/tables-BhRUyHnO.cjs.map +0 -1
- package/dist/tables-Dnu1akl3.mjs +0 -4
- package/dist/tables-Dnu1akl3.mjs.map +0 -1
- package/dist/tabs-564E0ez3.d.mts +0 -44
- package/dist/tabs-DFGhwbGp.mjs +0 -2
- package/dist/tabs-DFGhwbGp.mjs.map +0 -1
- package/dist/tabs-JR7-JzIe.cjs +0 -2
- package/dist/tabs-JR7-JzIe.cjs.map +0 -1
- package/dist/tabs-vAz8fioT.d.cts +0 -44
- package/dist/tanstack-form-4b7YcChW.cjs +0 -12
- package/dist/tanstack-form-4b7YcChW.cjs.map +0 -1
- package/dist/tanstack-form-Bo1AZA4L.mjs +0 -12
- package/dist/tanstack-form-Bo1AZA4L.mjs.map +0 -1
- package/dist/text-editor-D1vX6xed.mjs +0 -2
- package/dist/text-editor-D1vX6xed.mjs.map +0 -1
- package/dist/text-editor-Dr8BD9Bh.cjs +0 -2
- package/dist/text-editor-Dr8BD9Bh.cjs.map +0 -1
- package/dist/textarea-BNYJfmS1.cjs +0 -2
- package/dist/textarea-BNYJfmS1.cjs.map +0 -1
- package/dist/textarea-Be2gUM3T.d.mts +0 -30
- package/dist/textarea-Bh8TcWO-.mjs +0 -2
- package/dist/textarea-Bh8TcWO-.mjs.map +0 -1
- package/dist/textarea-DbmOLyAp.d.cts +0 -30
- package/dist/title-BlFwN8RM.d.mts +0 -43
- package/dist/title-CMLgxj8_.mjs +0 -2
- package/dist/title-CMLgxj8_.mjs.map +0 -1
- package/dist/title-DJuGuD0Q.d.cts +0 -43
- package/dist/title-DR8e6bHV.cjs +0 -2
- package/dist/title-DR8e6bHV.cjs.map +0 -1
- package/dist/toggle-B3j94Xvr.cjs +0 -2
- package/dist/toggle-B3j94Xvr.cjs.map +0 -1
- package/dist/toggle-BBOteSWq.d.mts +0 -32
- package/dist/toggle-D6bmp328.d.cts +0 -32
- package/dist/toggle-group-5CEKhPgb.d.mts +0 -39
- package/dist/toggle-group-BOubLcnF.d.cts +0 -39
- package/dist/toggle-group-CAIFsPEQ.cjs +0 -2
- package/dist/toggle-group-CAIFsPEQ.cjs.map +0 -1
- package/dist/toggle-group-DfzLXhuE.mjs +0 -2
- package/dist/toggle-group-DfzLXhuE.mjs.map +0 -1
- package/dist/toggle-jTYfZSWB.mjs +0 -2
- package/dist/toggle-jTYfZSWB.mjs.map +0 -1
- package/dist/tooltip-BBEcyuAE.mjs +0 -2
- package/dist/tooltip-BBEcyuAE.mjs.map +0 -1
- package/dist/tooltip-BFQy2Oca.d.mts +0 -55
- package/dist/tooltip-DBjqfkRe.d.cts +0 -55
- package/dist/tooltip-KEOJcYl8.cjs +0 -2
- package/dist/tooltip-KEOJcYl8.cjs.map +0 -1
- package/dist/trash-BxlUz9AR.cjs +0 -2
- package/dist/trash-BxlUz9AR.cjs.map +0 -1
- package/dist/trash-CV_nXOkW.d.mts +0 -17
- package/dist/trash-CZHL7ZuK.d.cts +0 -17
- package/dist/trash-UPoDDna-.mjs +0 -2
- package/dist/trash-UPoDDna-.mjs.map +0 -1
- package/dist/types-BAAJEExQ.cjs +0 -2
- package/dist/types-BAAJEExQ.cjs.map +0 -1
- package/dist/types-DodCf0NQ.mjs +0 -2
- package/dist/types-DodCf0NQ.mjs.map +0 -1
- package/dist/upload-image-BsCkSEXu.d.mts +0 -24
- package/dist/upload-image-CBVufZda.mjs +0 -2
- package/dist/upload-image-CBVufZda.mjs.map +0 -1
- package/dist/upload-image-CPWA9XOk.cjs +0 -2
- package/dist/upload-image-CPWA9XOk.cjs.map +0 -1
- package/dist/upload-image-CV3Xlq2w.d.cts +0 -24
- package/dist/user-B2Pml0ly.cjs +0 -2
- package/dist/user-B2Pml0ly.cjs.map +0 -1
- package/dist/user-B5efjaOf.d.cts +0 -23
- package/dist/user-Cl4BdxFy.d.mts +0 -23
- package/dist/user-DpBhqdvd.mjs +0 -2
- package/dist/user-DpBhqdvd.mjs.map +0 -1
package/dist/edit-DwHuMQMh.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require(`./chunk-350yNsax.cjs`),t=require(`./button-C--DAN1D.cjs`);let n=require(`lucide-react`),r=require(`react/jsx-runtime`);const i=({onClick:e})=>(0,r.jsx)(t.t,{"aria-label":`Chỉnh sửa`,variant:`ghost`,color:`secondary`,size:`icon`,className:`max-sm:aspect-square max-sm:p-0`,onClick:e,children:(0,r.jsx)(n.Edit2Icon,{size:16,className:`opacity-60`})});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
|
|
2
|
-
//# sourceMappingURL=edit-DwHuMQMh.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"edit-DwHuMQMh.cjs","names":["EditBtn: React.FC<Props>","Button","Edit2Icon"],"sources":["../packages/components/ui/buttons/edit.tsx"],"sourcesContent":["import { Edit2Icon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n};\n\n/**\n * An icon-only ghost button that triggers an edit action, rendered with a pencil icon.\n *\n * @example\n * import { EditBtn } from '@customafk/lunas-ui/ui/buttons/edit';\n *\n * <EditBtn onClick={() => openEditDialog(record.id)} />\n */\nexport const EditBtn: React.FC<Props> = ({ onClick }) => {\n return (\n <Button aria-label=\"Chỉnh sửa\" variant=\"ghost\" color=\"secondary\" size=\"icon\" className=\"max-sm:aspect-square max-sm:p-0\" onClick={onClick}>\n <Edit2Icon size={16} className=\"opacity-60\" />\n </Button>\n );\n};\n"],"mappings":"wIAiBA,MAAaA,GAA4B,CAAE,cAEvC,EAAA,EAAA,KAACC,EAAAA,EAAAA,CAAO,aAAW,YAAY,QAAQ,QAAQ,MAAM,YAAY,KAAK,OAAO,UAAU,kCAA2C,oBAChI,EAAA,EAAA,KAACC,EAAAA,UAAAA,CAAU,KAAM,GAAI,UAAU,cAAe,EACvC"}
|
package/dist/edit-FIiUWxZq.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./button-CCVJTHBI.mjs";import{Edit2Icon as t}from"lucide-react";import{jsx as n}from"react/jsx-runtime";const r=({onClick:r})=>n(e,{"aria-label":`Chỉnh sửa`,variant:`ghost`,color:`secondary`,size:`icon`,className:`max-sm:aspect-square max-sm:p-0`,onClick:r,children:n(t,{size:16,className:`opacity-60`})});export{r as t};
|
|
2
|
-
//# sourceMappingURL=edit-FIiUWxZq.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"edit-FIiUWxZq.mjs","names":["EditBtn: React.FC<Props>"],"sources":["../packages/components/ui/buttons/edit.tsx"],"sourcesContent":["import { Edit2Icon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n};\n\n/**\n * An icon-only ghost button that triggers an edit action, rendered with a pencil icon.\n *\n * @example\n * import { EditBtn } from '@customafk/lunas-ui/ui/buttons/edit';\n *\n * <EditBtn onClick={() => openEditDialog(record.id)} />\n */\nexport const EditBtn: React.FC<Props> = ({ onClick }) => {\n return (\n <Button aria-label=\"Chỉnh sửa\" variant=\"ghost\" color=\"secondary\" size=\"icon\" className=\"max-sm:aspect-square max-sm:p-0\" onClick={onClick}>\n <Edit2Icon size={16} className=\"opacity-60\" />\n </Button>\n );\n};\n"],"mappings":"2HAiBA,MAAaA,GAA4B,CAAE,aAEvC,EAAC,EAAA,CAAO,aAAW,YAAY,QAAQ,QAAQ,MAAM,YAAY,KAAK,OAAO,UAAU,kCAA2C,mBAChI,EAAC,EAAA,CAAU,KAAM,GAAI,UAAU,cAAe,EACvC"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import * as react80 from "react";
|
|
2
|
-
import { VariantProps } from "class-variance-authority";
|
|
3
|
-
import * as class_variance_authority_types4 from "class-variance-authority/types";
|
|
4
|
-
|
|
5
|
-
//#region packages/components/ui/empty.d.ts
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Full-page or section empty-state container with centred layout and dashed border, composed with EmptyHeader, EmptyMedia, EmptyTitle, EmptyDescription, and EmptyContent.
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```tsx
|
|
12
|
-
* import {
|
|
13
|
-
* Empty, EmptyHeader, EmptyMedia, EmptyTitle, EmptyDescription, EmptyContent,
|
|
14
|
-
* } from '@customafk/lunas-ui/ui/empty';
|
|
15
|
-
* import { SearchX } from 'lucide-react';
|
|
16
|
-
*
|
|
17
|
-
* <Empty>
|
|
18
|
-
* <EmptyHeader>
|
|
19
|
-
* <EmptyMedia variant="icon"><SearchX /></EmptyMedia>
|
|
20
|
-
* <EmptyTitle>No results found</EmptyTitle>
|
|
21
|
-
* <EmptyDescription>Try adjusting your search filters.</EmptyDescription>
|
|
22
|
-
* </EmptyHeader>
|
|
23
|
-
* <EmptyContent>
|
|
24
|
-
* <button>Reset filters</button>
|
|
25
|
-
* </EmptyContent>
|
|
26
|
-
* </Empty>
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
declare function Empty({
|
|
30
|
-
className,
|
|
31
|
-
...props
|
|
32
|
-
}: React.ComponentProps<'div'>): react80.JSX.Element;
|
|
33
|
-
/** Centred column container for the media, title, and description of an empty state. */
|
|
34
|
-
declare function EmptyHeader({
|
|
35
|
-
className,
|
|
36
|
-
...props
|
|
37
|
-
}: React.ComponentProps<'div'>): react80.JSX.Element;
|
|
38
|
-
declare const emptyMediaVariants: (props?: ({
|
|
39
|
-
variant?: "default" | "icon" | null | undefined;
|
|
40
|
-
} & class_variance_authority_types4.ClassProp) | undefined) => string;
|
|
41
|
-
/**
|
|
42
|
-
* Container for the visual element (illustration, icon, or image) in an empty state.
|
|
43
|
-
*
|
|
44
|
-
* @param variant - `'default'` renders a transparent wrapper; `'icon'` renders a rounded muted square with the icon centred inside.
|
|
45
|
-
*/
|
|
46
|
-
declare function EmptyMedia({
|
|
47
|
-
className,
|
|
48
|
-
variant,
|
|
49
|
-
...props
|
|
50
|
-
}: React.ComponentProps<'div'> & VariantProps<typeof emptyMediaVariants>): react80.JSX.Element;
|
|
51
|
-
/** Prominent heading text for the empty state. */
|
|
52
|
-
declare function EmptyTitle({
|
|
53
|
-
className,
|
|
54
|
-
...props
|
|
55
|
-
}: React.ComponentProps<'div'>): react80.JSX.Element;
|
|
56
|
-
/** Supporting body text that explains the empty state to the user. */
|
|
57
|
-
declare function EmptyDescription({
|
|
58
|
-
className,
|
|
59
|
-
...props
|
|
60
|
-
}: React.ComponentProps<'p'>): react80.JSX.Element;
|
|
61
|
-
/** Action area below the header — typically holds buttons or links to help the user proceed. */
|
|
62
|
-
declare function EmptyContent({
|
|
63
|
-
className,
|
|
64
|
-
...props
|
|
65
|
-
}: React.ComponentProps<'div'>): react80.JSX.Element;
|
|
66
|
-
//#endregion
|
|
67
|
-
export { EmptyMedia as a, EmptyHeader as i, EmptyContent as n, EmptyTitle as o, EmptyDescription as r, Empty as t };
|
|
68
|
-
//# sourceMappingURL=empty-BhV9ASYf.d.mts.map
|
package/dist/empty-CmIJYhmV.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require(`./chunk-350yNsax.cjs`);let t=require(`lucide-react`),n=require(`@customafk/react-toolkit/utils`),r=require(`react/jsx-runtime`);const i=({label:e=`No data to display.`,className:i})=>(0,r.jsxs)(`div`,{"data-slot":`empty-display`,className:(0,n.cn)(`flex size-full flex-col items-center justify-center gap-2 text-text-positive-muted`,i),children:[(0,r.jsx)(t.PackageOpenIcon,{size:52,strokeWidth:1}),(0,r.jsx)(`p`,{className:`text-sm`,children:e})]});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
|
|
2
|
-
//# sourceMappingURL=empty-CmIJYhmV.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"empty-CmIJYhmV.cjs","names":["EmptyDisplay: React.FC<EmptyDisplayProps>","PackageOpenIcon"],"sources":["../packages/components/data-display/empty.tsx"],"sourcesContent":["'use client';\n\nimport { PackageOpenIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\ntype EmptyDisplayProps = {\n /** Message shown below the empty-state icon. Defaults to `'No data to display.'`. */\n label?: string;\n /** Additional CSS classes applied to the wrapping container. */\n className?: string;\n};\n\n/**\n * A full-area empty-state placeholder with a package icon and a configurable message.\n *\n * @example\n * ```tsx\n * import { EmptyDisplay } from '@customafk/lunas-ui/data-display/empty';\n *\n * <EmptyDisplay label=\"No results found.\" />\n * ```\n */\nexport const EmptyDisplay: React.FC<EmptyDisplayProps> = ({ label = 'No data to display.', className }) => {\n return (\n <div data-slot=\"empty-display\" className={cn('flex size-full flex-col items-center justify-center gap-2 text-text-positive-muted', className)}>\n <PackageOpenIcon size={52} strokeWidth={1} />\n <p className=\"text-sm\">{label}</p>\n </div>\n );\n};\n"],"mappings":"iJAuBA,MAAaA,GAA6C,CAAE,QAAQ,sBAAuB,gBAEvF,EAAA,EAAA,MAAC,MAAA,CAAI,YAAU,gBAAgB,WAAA,EAAA,EAAA,IAAc,qFAAsF,EAAU,YAC3I,EAAA,EAAA,KAACC,EAAAA,gBAAAA,CAAgB,KAAM,GAAI,YAAa,GAAK,EAC7C,EAAA,EAAA,KAAC,IAAA,CAAE,UAAU,mBAAW,GAAU,CAAA,EAC9B"}
|
package/dist/empty-CoKfJtGD.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{PackageOpenIcon as e}from"lucide-react";import{cn as t}from"@customafk/react-toolkit/utils";import{jsx as n,jsxs as r}from"react/jsx-runtime";const i=({label:i=`No data to display.`,className:a})=>r(`div`,{"data-slot":`empty-display`,className:t(`flex size-full flex-col items-center justify-center gap-2 text-text-positive-muted`,a),children:[n(e,{size:52,strokeWidth:1}),n(`p`,{className:`text-sm`,children:i})]});export{i as t};
|
|
2
|
-
//# sourceMappingURL=empty-CoKfJtGD.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"empty-CoKfJtGD.mjs","names":["EmptyDisplay: React.FC<EmptyDisplayProps>"],"sources":["../packages/components/data-display/empty.tsx"],"sourcesContent":["'use client';\n\nimport { PackageOpenIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\ntype EmptyDisplayProps = {\n /** Message shown below the empty-state icon. Defaults to `'No data to display.'`. */\n label?: string;\n /** Additional CSS classes applied to the wrapping container. */\n className?: string;\n};\n\n/**\n * A full-area empty-state placeholder with a package icon and a configurable message.\n *\n * @example\n * ```tsx\n * import { EmptyDisplay } from '@customafk/lunas-ui/data-display/empty';\n *\n * <EmptyDisplay label=\"No results found.\" />\n * ```\n */\nexport const EmptyDisplay: React.FC<EmptyDisplayProps> = ({ label = 'No data to display.', className }) => {\n return (\n <div data-slot=\"empty-display\" className={cn('flex size-full flex-col items-center justify-center gap-2 text-text-positive-muted', className)}>\n <PackageOpenIcon size={52} strokeWidth={1} />\n <p className=\"text-sm\">{label}</p>\n </div>\n );\n};\n"],"mappings":"qJAuBA,MAAaA,GAA6C,CAAE,QAAQ,sBAAuB,eAEvF,EAAC,MAAA,CAAI,YAAU,gBAAgB,UAAW,EAAG,qFAAsF,EAAU,WAC3I,EAAC,EAAA,CAAgB,KAAM,GAAI,YAAa,GAAK,CAC7C,EAAC,IAAA,CAAE,UAAU,mBAAW,GAAU,CAAA,EAC9B"}
|
package/dist/empty-D6t3C3WX.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{cn as e}from"@customafk/react-toolkit/utils";import{cva as t}from"class-variance-authority";import{jsx as n}from"react/jsx-runtime";function r({className:t,...r}){return n(`div`,{"data-slot":`empty`,className:e(`flex min-w-0 flex-1 flex-col items-center justify-center gap-6 rounded-lg border-dashed p-6 text-center text-balance md:p-12`,t),...r})}function i({className:t,...r}){return n(`div`,{"data-slot":`empty-header`,className:e(`flex max-w-sm flex-col items-center gap-2 text-center`,t),...r})}const a=t(`flex shrink-0 items-center justify-center mb-2 [&_svg]:pointer-events-none [&_svg]:shrink-0`,{variants:{variant:{default:`bg-transparent`,icon:`bg-muted-muted text-text-positive-weak flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6`}},defaultVariants:{variant:`default`}});function o({className:t,variant:r=`default`,...i}){return n(`div`,{"data-slot":`empty-icon`,"data-variant":r,className:e(a({variant:r,className:t})),...i})}function s({className:t,...r}){return n(`div`,{"data-slot":`empty-title`,className:e(`text-lg font-medium tracking-tight`,t),...r})}function c({className:t,...r}){return n(`div`,{"data-slot":`empty-description`,className:e(`text-text-positive-weak [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4`,t),...r})}function l({className:t,...r}){return n(`div`,{"data-slot":`empty-content`,className:e(`flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance`,t),...r})}export{o as a,i,l as n,s as o,c as r,r as t};
|
|
2
|
-
//# sourceMappingURL=empty-D6t3C3WX.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"empty-D6t3C3WX.mjs","names":[],"sources":["../packages/components/ui/empty.tsx"],"sourcesContent":["import { cn } from '@customafk/react-toolkit/utils';\n\nimport type { VariantProps } from 'class-variance-authority';\nimport { cva } from 'class-variance-authority';\n\n/**\n * Full-page or section empty-state container with centred layout and dashed border, composed with EmptyHeader, EmptyMedia, EmptyTitle, EmptyDescription, and EmptyContent.\n *\n * @example\n * ```tsx\n * import {\n * Empty, EmptyHeader, EmptyMedia, EmptyTitle, EmptyDescription, EmptyContent,\n * } from '@customafk/lunas-ui/ui/empty';\n * import { SearchX } from 'lucide-react';\n *\n * <Empty>\n * <EmptyHeader>\n * <EmptyMedia variant=\"icon\"><SearchX /></EmptyMedia>\n * <EmptyTitle>No results found</EmptyTitle>\n * <EmptyDescription>Try adjusting your search filters.</EmptyDescription>\n * </EmptyHeader>\n * <EmptyContent>\n * <button>Reset filters</button>\n * </EmptyContent>\n * </Empty>\n * ```\n */\nfunction Empty({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"empty\"\n className={cn('flex min-w-0 flex-1 flex-col items-center justify-center gap-6 rounded-lg border-dashed p-6 text-center text-balance md:p-12', className)}\n {...props}\n />\n );\n}\n\n/** Centred column container for the media, title, and description of an empty state. */\nfunction EmptyHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"empty-header\" className={cn('flex max-w-sm flex-col items-center gap-2 text-center', className)} {...props} />;\n}\n\nconst emptyMediaVariants = cva('flex shrink-0 items-center justify-center mb-2 [&_svg]:pointer-events-none [&_svg]:shrink-0', {\n variants: {\n variant: {\n default: 'bg-transparent',\n icon: \"bg-muted-muted text-text-positive-weak flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6\",\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n\n/**\n * Container for the visual element (illustration, icon, or image) in an empty state.\n *\n * @param variant - `'default'` renders a transparent wrapper; `'icon'` renders a rounded muted square with the icon centred inside.\n */\nfunction EmptyMedia({ className, variant = 'default', ...props }: React.ComponentProps<'div'> & VariantProps<typeof emptyMediaVariants>) {\n return <div data-slot=\"empty-icon\" data-variant={variant} className={cn(emptyMediaVariants({ variant, className }))} {...props} />;\n}\n\n/** Prominent heading text for the empty state. */\nfunction EmptyTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"empty-title\" className={cn('text-lg font-medium tracking-tight', className)} {...props} />;\n}\n\n/** Supporting body text that explains the empty state to the user. */\nfunction EmptyDescription({ className, ...props }: React.ComponentProps<'p'>) {\n return (\n <div\n data-slot=\"empty-description\"\n className={cn('text-text-positive-weak [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4', className)}\n {...props}\n />\n );\n}\n\n/** Action area below the header — typically holds buttons or links to help the user proceed. */\nfunction EmptyContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div data-slot=\"empty-content\" className={cn('flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance', className)} {...props} />\n );\n}\n\nexport { Empty, EmptyHeader, EmptyTitle, EmptyDescription, EmptyContent, EmptyMedia };\n"],"mappings":"2IA2BA,SAAS,EAAM,CAAE,YAAW,GAAG,GAAsC,CACnE,OACE,EAAC,MAAA,CACC,YAAU,QACV,UAAW,EAAG,+HAAgI,EAAU,CACxJ,GAAI,GACJ,CAKN,SAAS,EAAY,CAAE,YAAW,GAAG,GAAsC,CACzE,OAAO,EAAC,MAAA,CAAI,YAAU,eAAe,UAAW,EAAG,wDAAyD,EAAU,CAAE,GAAI,GAAS,CAGvI,MAAM,EAAqB,EAAI,8FAA+F,CAC5H,SAAU,CACR,QAAS,CACP,QAAS,iBACT,KAAM,2IACP,CACF,CACD,gBAAiB,CACf,QAAS,UACV,CACF,CAAC,CAOF,SAAS,EAAW,CAAE,YAAW,UAAU,UAAW,GAAG,GAAgF,CACvI,OAAO,EAAC,MAAA,CAAI,YAAU,aAAa,eAAc,EAAS,UAAW,EAAG,EAAmB,CAAE,UAAS,YAAW,CAAC,CAAC,CAAE,GAAI,GAAS,CAIpI,SAAS,EAAW,CAAE,YAAW,GAAG,GAAsC,CACxE,OAAO,EAAC,MAAA,CAAI,YAAU,cAAc,UAAW,EAAG,qCAAsC,EAAU,CAAE,GAAI,GAAS,CAInH,SAAS,EAAiB,CAAE,YAAW,GAAG,GAAoC,CAC5E,OACE,EAAC,MAAA,CACC,YAAU,oBACV,UAAW,EAAG,4GAA6G,EAAU,CACrI,GAAI,GACJ,CAKN,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OACE,EAAC,MAAA,CAAI,YAAU,gBAAgB,UAAW,EAAG,gFAAiF,EAAU,CAAE,GAAI,GAAS"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import * as react246 from "react";
|
|
2
|
-
import * as class_variance_authority_types10 from "class-variance-authority/types";
|
|
3
|
-
import { VariantProps } from "class-variance-authority";
|
|
4
|
-
|
|
5
|
-
//#region packages/components/ui/empty.d.ts
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Full-page or section empty-state container with centred layout and dashed border, composed with EmptyHeader, EmptyMedia, EmptyTitle, EmptyDescription, and EmptyContent.
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```tsx
|
|
12
|
-
* import {
|
|
13
|
-
* Empty, EmptyHeader, EmptyMedia, EmptyTitle, EmptyDescription, EmptyContent,
|
|
14
|
-
* } from '@customafk/lunas-ui/ui/empty';
|
|
15
|
-
* import { SearchX } from 'lucide-react';
|
|
16
|
-
*
|
|
17
|
-
* <Empty>
|
|
18
|
-
* <EmptyHeader>
|
|
19
|
-
* <EmptyMedia variant="icon"><SearchX /></EmptyMedia>
|
|
20
|
-
* <EmptyTitle>No results found</EmptyTitle>
|
|
21
|
-
* <EmptyDescription>Try adjusting your search filters.</EmptyDescription>
|
|
22
|
-
* </EmptyHeader>
|
|
23
|
-
* <EmptyContent>
|
|
24
|
-
* <button>Reset filters</button>
|
|
25
|
-
* </EmptyContent>
|
|
26
|
-
* </Empty>
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
declare function Empty({
|
|
30
|
-
className,
|
|
31
|
-
...props
|
|
32
|
-
}: React.ComponentProps<'div'>): react246.JSX.Element;
|
|
33
|
-
/** Centred column container for the media, title, and description of an empty state. */
|
|
34
|
-
declare function EmptyHeader({
|
|
35
|
-
className,
|
|
36
|
-
...props
|
|
37
|
-
}: React.ComponentProps<'div'>): react246.JSX.Element;
|
|
38
|
-
declare const emptyMediaVariants: (props?: ({
|
|
39
|
-
variant?: "default" | "icon" | null | undefined;
|
|
40
|
-
} & class_variance_authority_types10.ClassProp) | undefined) => string;
|
|
41
|
-
/**
|
|
42
|
-
* Container for the visual element (illustration, icon, or image) in an empty state.
|
|
43
|
-
*
|
|
44
|
-
* @param variant - `'default'` renders a transparent wrapper; `'icon'` renders a rounded muted square with the icon centred inside.
|
|
45
|
-
*/
|
|
46
|
-
declare function EmptyMedia({
|
|
47
|
-
className,
|
|
48
|
-
variant,
|
|
49
|
-
...props
|
|
50
|
-
}: React.ComponentProps<'div'> & VariantProps<typeof emptyMediaVariants>): react246.JSX.Element;
|
|
51
|
-
/** Prominent heading text for the empty state. */
|
|
52
|
-
declare function EmptyTitle({
|
|
53
|
-
className,
|
|
54
|
-
...props
|
|
55
|
-
}: React.ComponentProps<'div'>): react246.JSX.Element;
|
|
56
|
-
/** Supporting body text that explains the empty state to the user. */
|
|
57
|
-
declare function EmptyDescription({
|
|
58
|
-
className,
|
|
59
|
-
...props
|
|
60
|
-
}: React.ComponentProps<'p'>): react246.JSX.Element;
|
|
61
|
-
/** Action area below the header — typically holds buttons or links to help the user proceed. */
|
|
62
|
-
declare function EmptyContent({
|
|
63
|
-
className,
|
|
64
|
-
...props
|
|
65
|
-
}: React.ComponentProps<'div'>): react246.JSX.Element;
|
|
66
|
-
//#endregion
|
|
67
|
-
export { EmptyMedia as a, EmptyHeader as i, EmptyContent as n, EmptyTitle as o, EmptyDescription as r, Empty as t };
|
|
68
|
-
//# sourceMappingURL=empty-DaK_4UmN.d.cts.map
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
//#region packages/components/data-display/empty.d.ts
|
|
2
|
-
type EmptyDisplayProps = {
|
|
3
|
-
/** Message shown below the empty-state icon. Defaults to `'No data to display.'`. */
|
|
4
|
-
label?: string;
|
|
5
|
-
/** Additional CSS classes applied to the wrapping container. */
|
|
6
|
-
className?: string;
|
|
7
|
-
};
|
|
8
|
-
/**
|
|
9
|
-
* A full-area empty-state placeholder with a package icon and a configurable message.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```tsx
|
|
13
|
-
* import { EmptyDisplay } from '@customafk/lunas-ui/data-display/empty';
|
|
14
|
-
*
|
|
15
|
-
* <EmptyDisplay label="No results found." />
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
declare const EmptyDisplay: React.FC<EmptyDisplayProps>;
|
|
19
|
-
//#endregion
|
|
20
|
-
export { EmptyDisplay as t };
|
|
21
|
-
//# sourceMappingURL=empty-OVsSwbVn.d.mts.map
|
package/dist/empty-dUZoxaBx.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require(`./chunk-350yNsax.cjs`);let t=require(`@customafk/react-toolkit/utils`),n=require(`class-variance-authority`),r=require(`react/jsx-runtime`);function i({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`empty`,className:(0,t.cn)(`flex min-w-0 flex-1 flex-col items-center justify-center gap-6 rounded-lg border-dashed p-6 text-center text-balance md:p-12`,e),...n})}function a({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`empty-header`,className:(0,t.cn)(`flex max-w-sm flex-col items-center gap-2 text-center`,e),...n})}const o=(0,n.cva)(`flex shrink-0 items-center justify-center mb-2 [&_svg]:pointer-events-none [&_svg]:shrink-0`,{variants:{variant:{default:`bg-transparent`,icon:`bg-muted-muted text-text-positive-weak flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6`}},defaultVariants:{variant:`default`}});function s({className:e,variant:n=`default`,...i}){return(0,r.jsx)(`div`,{"data-slot":`empty-icon`,"data-variant":n,className:(0,t.cn)(o({variant:n,className:e})),...i})}function c({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`empty-title`,className:(0,t.cn)(`text-lg font-medium tracking-tight`,e),...n})}function l({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`empty-description`,className:(0,t.cn)(`text-text-positive-weak [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4`,e),...n})}function u({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`empty-content`,className:(0,t.cn)(`flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance`,e),...n})}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
|
|
2
|
-
//# sourceMappingURL=empty-dUZoxaBx.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"empty-dUZoxaBx.cjs","names":[],"sources":["../packages/components/ui/empty.tsx"],"sourcesContent":["import { cn } from '@customafk/react-toolkit/utils';\n\nimport type { VariantProps } from 'class-variance-authority';\nimport { cva } from 'class-variance-authority';\n\n/**\n * Full-page or section empty-state container with centred layout and dashed border, composed with EmptyHeader, EmptyMedia, EmptyTitle, EmptyDescription, and EmptyContent.\n *\n * @example\n * ```tsx\n * import {\n * Empty, EmptyHeader, EmptyMedia, EmptyTitle, EmptyDescription, EmptyContent,\n * } from '@customafk/lunas-ui/ui/empty';\n * import { SearchX } from 'lucide-react';\n *\n * <Empty>\n * <EmptyHeader>\n * <EmptyMedia variant=\"icon\"><SearchX /></EmptyMedia>\n * <EmptyTitle>No results found</EmptyTitle>\n * <EmptyDescription>Try adjusting your search filters.</EmptyDescription>\n * </EmptyHeader>\n * <EmptyContent>\n * <button>Reset filters</button>\n * </EmptyContent>\n * </Empty>\n * ```\n */\nfunction Empty({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"empty\"\n className={cn('flex min-w-0 flex-1 flex-col items-center justify-center gap-6 rounded-lg border-dashed p-6 text-center text-balance md:p-12', className)}\n {...props}\n />\n );\n}\n\n/** Centred column container for the media, title, and description of an empty state. */\nfunction EmptyHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"empty-header\" className={cn('flex max-w-sm flex-col items-center gap-2 text-center', className)} {...props} />;\n}\n\nconst emptyMediaVariants = cva('flex shrink-0 items-center justify-center mb-2 [&_svg]:pointer-events-none [&_svg]:shrink-0', {\n variants: {\n variant: {\n default: 'bg-transparent',\n icon: \"bg-muted-muted text-text-positive-weak flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6\",\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n\n/**\n * Container for the visual element (illustration, icon, or image) in an empty state.\n *\n * @param variant - `'default'` renders a transparent wrapper; `'icon'` renders a rounded muted square with the icon centred inside.\n */\nfunction EmptyMedia({ className, variant = 'default', ...props }: React.ComponentProps<'div'> & VariantProps<typeof emptyMediaVariants>) {\n return <div data-slot=\"empty-icon\" data-variant={variant} className={cn(emptyMediaVariants({ variant, className }))} {...props} />;\n}\n\n/** Prominent heading text for the empty state. */\nfunction EmptyTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"empty-title\" className={cn('text-lg font-medium tracking-tight', className)} {...props} />;\n}\n\n/** Supporting body text that explains the empty state to the user. */\nfunction EmptyDescription({ className, ...props }: React.ComponentProps<'p'>) {\n return (\n <div\n data-slot=\"empty-description\"\n className={cn('text-text-positive-weak [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4', className)}\n {...props}\n />\n );\n}\n\n/** Action area below the header — typically holds buttons or links to help the user proceed. */\nfunction EmptyContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div data-slot=\"empty-content\" className={cn('flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance', className)} {...props} />\n );\n}\n\nexport { Empty, EmptyHeader, EmptyTitle, EmptyDescription, EmptyContent, EmptyMedia };\n"],"mappings":"6JA2BA,SAAS,EAAM,CAAE,YAAW,GAAG,GAAsC,CACnE,OACE,EAAA,EAAA,KAAC,MAAA,CACC,YAAU,QACV,WAAA,EAAA,EAAA,IAAc,+HAAgI,EAAU,CACxJ,GAAI,GACJ,CAKN,SAAS,EAAY,CAAE,YAAW,GAAG,GAAsC,CACzE,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,eAAe,WAAA,EAAA,EAAA,IAAc,wDAAyD,EAAU,CAAE,GAAI,GAAS,CAGvI,MAAM,GAAA,EAAA,EAAA,KAAyB,8FAA+F,CAC5H,SAAU,CACR,QAAS,CACP,QAAS,iBACT,KAAM,2IACP,CACF,CACD,gBAAiB,CACf,QAAS,UACV,CACF,CAAC,CAOF,SAAS,EAAW,CAAE,YAAW,UAAU,UAAW,GAAG,GAAgF,CACvI,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,aAAa,eAAc,EAAS,WAAA,EAAA,EAAA,IAAc,EAAmB,CAAE,UAAS,YAAW,CAAC,CAAC,CAAE,GAAI,GAAS,CAIpI,SAAS,EAAW,CAAE,YAAW,GAAG,GAAsC,CACxE,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,cAAc,WAAA,EAAA,EAAA,IAAc,qCAAsC,EAAU,CAAE,GAAI,GAAS,CAInH,SAAS,EAAiB,CAAE,YAAW,GAAG,GAAoC,CAC5E,OACE,EAAA,EAAA,KAAC,MAAA,CACC,YAAU,oBACV,WAAA,EAAA,EAAA,IAAc,4GAA6G,EAAU,CACrI,GAAI,GACJ,CAKN,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OACE,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,gBAAgB,WAAA,EAAA,EAAA,IAAc,gFAAiF,EAAU,CAAE,GAAI,GAAS"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
//#region packages/components/data-display/empty.d.ts
|
|
2
|
-
type EmptyDisplayProps = {
|
|
3
|
-
/** Message shown below the empty-state icon. Defaults to `'No data to display.'`. */
|
|
4
|
-
label?: string;
|
|
5
|
-
/** Additional CSS classes applied to the wrapping container. */
|
|
6
|
-
className?: string;
|
|
7
|
-
};
|
|
8
|
-
/**
|
|
9
|
-
* A full-area empty-state placeholder with a package icon and a configurable message.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```tsx
|
|
13
|
-
* import { EmptyDisplay } from '@customafk/lunas-ui/data-display/empty';
|
|
14
|
-
*
|
|
15
|
-
* <EmptyDisplay label="No results found." />
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
declare const EmptyDisplay: React.FC<EmptyDisplayProps>;
|
|
19
|
-
//#endregion
|
|
20
|
-
export { EmptyDisplay as t };
|
|
21
|
-
//# sourceMappingURL=empty-z1Ft5uT1.d.cts.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require(`./chunk-350yNsax.cjs`),t=require(`./alert-dialog-B9ThoUnv.cjs`);let n=require(`lucide-react`),r=require(`react`),i=require(`react/jsx-runtime`);const a=({open:e,title:a,children:o,onOpenChange:s})=>{let c=(0,r.useCallback)(()=>{s?.(!1)},[s]);return(0,i.jsx)(t.t,{open:e,onOpenChange:s,children:(0,i.jsxs)(t.i,{className:`gap-8 p-4 sm:max-w-md`,children:[(0,i.jsx)(t.s,{children:(0,i.jsxs)(`div`,{className:`flex flex-col items-center text-danger`,children:[(0,i.jsx)(n.AlertTriangleIcon,{size:42}),(0,i.jsx)(t.u,{className:`text-xl font-medium`,children:a||`An error occurred`})]})}),o,(0,i.jsx)(t.o,{children:(0,i.jsx)(t.n,{className:`w-full sm:w-28`,onClick:c,children:`Close`})})]})})};Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
|
|
2
|
-
//# sourceMappingURL=error-dialog-B8CXPcst.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-dialog-B8CXPcst.cjs","names":["ErrorDialog: React.FC<React.PropsWithChildren<ErrorDialogProps>>","AlertDialog","AlertDialogContent","AlertDialogHeader","AlertTriangleIcon","AlertDialogTitle","AlertDialogFooter","AlertDialogAction"],"sources":["../packages/components/dialogs/error-dialog.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\n\nimport { AlertTriangleIcon } from 'lucide-react';\n\nimport { AlertDialog, AlertDialogAction, AlertDialogContent, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle } from '../ui/alert-dialog';\n\nexport type ErrorDialogProps = {\n /** Controls whether the dialog is open. */\n open?: boolean;\n /** Title text displayed inside the dialog header. Defaults to `'An error occurred'`. */\n title?: string;\n /** Callback invoked when the dialog open state changes. */\n onOpenChange?: (open: boolean) => void;\n};\n\n/**\n * Displays a modal alert dialog for communicating error states to the user.\n *\n * @example\n * ```tsx\n * import { ErrorDialog } from '@customafk/lunas-ui/dialogs/error-dialog';\n *\n * <ErrorDialog open={hasError} title=\"Something went wrong\" onOpenChange={setHasError}>\n * <p>Please try again later.</p>\n * </ErrorDialog>\n * ```\n */\nexport const ErrorDialog: React.FC<React.PropsWithChildren<ErrorDialogProps>> = ({ open, title, children, onOpenChange }) => {\n const handleClose = useCallback(() => {\n onOpenChange?.(false);\n }, [onOpenChange]);\n\n return (\n <AlertDialog open={open} onOpenChange={onOpenChange}>\n <AlertDialogContent className=\"gap-8 p-4 sm:max-w-md\">\n <AlertDialogHeader>\n <div className=\"flex flex-col items-center text-danger\">\n <AlertTriangleIcon size={42} />\n <AlertDialogTitle className=\"text-xl font-medium\">{title || 'An error occurred'}</AlertDialogTitle>\n </div>\n </AlertDialogHeader>\n {children}\n <AlertDialogFooter>\n <AlertDialogAction className=\"w-full sm:w-28\" onClick={handleClose}>\n Close\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n};\n"],"mappings":"iKA6BA,MAAaA,GAAoE,CAAE,OAAM,QAAO,WAAU,kBAAmB,CAC3H,IAAM,GAAA,EAAA,EAAA,iBAAgC,CACpC,IAAe,GAAM,EACpB,CAAC,EAAa,CAAC,CAElB,OACE,EAAA,EAAA,KAACC,EAAAA,EAAAA,CAAkB,OAAoB,yBACrC,EAAA,EAAA,MAACC,EAAAA,EAAAA,CAAmB,UAAU,mCAC5B,EAAA,EAAA,KAACC,EAAAA,EAAAA,CAAAA,UACC,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,oDACb,EAAA,EAAA,KAACC,EAAAA,kBAAAA,CAAkB,KAAM,GAAA,CAAM,EAC/B,EAAA,EAAA,KAACC,EAAAA,EAAAA,CAAiB,UAAU,+BAAuB,GAAS,qBAAuC,CAAA,EAC/F,CAAA,CACY,CACnB,GACD,EAAA,EAAA,KAACC,EAAAA,EAAAA,CAAAA,UACC,EAAA,EAAA,KAACC,EAAAA,EAAAA,CAAkB,UAAU,iBAAiB,QAAS,WAAa,SAEhD,CAAA,CACF,GACD,EACT"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
//#region packages/components/dialogs/error-dialog.d.ts
|
|
2
|
-
type ErrorDialogProps = {
|
|
3
|
-
/** Controls whether the dialog is open. */
|
|
4
|
-
open?: boolean;
|
|
5
|
-
/** Title text displayed inside the dialog header. Defaults to `'An error occurred'`. */
|
|
6
|
-
title?: string;
|
|
7
|
-
/** Callback invoked when the dialog open state changes. */
|
|
8
|
-
onOpenChange?: (open: boolean) => void;
|
|
9
|
-
};
|
|
10
|
-
/**
|
|
11
|
-
* Displays a modal alert dialog for communicating error states to the user.
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```tsx
|
|
15
|
-
* import { ErrorDialog } from '@customafk/lunas-ui/dialogs/error-dialog';
|
|
16
|
-
*
|
|
17
|
-
* <ErrorDialog open={hasError} title="Something went wrong" onOpenChange={setHasError}>
|
|
18
|
-
* <p>Please try again later.</p>
|
|
19
|
-
* </ErrorDialog>
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
declare const ErrorDialog: React.FC<React.PropsWithChildren<ErrorDialogProps>>;
|
|
23
|
-
//#endregion
|
|
24
|
-
export { ErrorDialogProps as n, ErrorDialog as t };
|
|
25
|
-
//# sourceMappingURL=error-dialog-D0jvqNoY.d.mts.map
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
//#region packages/components/dialogs/error-dialog.d.ts
|
|
2
|
-
type ErrorDialogProps = {
|
|
3
|
-
/** Controls whether the dialog is open. */
|
|
4
|
-
open?: boolean;
|
|
5
|
-
/** Title text displayed inside the dialog header. Defaults to `'An error occurred'`. */
|
|
6
|
-
title?: string;
|
|
7
|
-
/** Callback invoked when the dialog open state changes. */
|
|
8
|
-
onOpenChange?: (open: boolean) => void;
|
|
9
|
-
};
|
|
10
|
-
/**
|
|
11
|
-
* Displays a modal alert dialog for communicating error states to the user.
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```tsx
|
|
15
|
-
* import { ErrorDialog } from '@customafk/lunas-ui/dialogs/error-dialog';
|
|
16
|
-
*
|
|
17
|
-
* <ErrorDialog open={hasError} title="Something went wrong" onOpenChange={setHasError}>
|
|
18
|
-
* <p>Please try again later.</p>
|
|
19
|
-
* </ErrorDialog>
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
declare const ErrorDialog: React.FC<React.PropsWithChildren<ErrorDialogProps>>;
|
|
23
|
-
//#endregion
|
|
24
|
-
export { ErrorDialogProps as n, ErrorDialog as t };
|
|
25
|
-
//# sourceMappingURL=error-dialog-DlwWpKEY.d.cts.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as e,n as t,o as n,s as r,t as i,u as a}from"./alert-dialog-DqIS6qRz.mjs";import{AlertTriangleIcon as o}from"lucide-react";import{useCallback as s}from"react";import{jsx as c,jsxs as l}from"react/jsx-runtime";const u=({open:u,title:d,children:f,onOpenChange:p})=>{let m=s(()=>{p?.(!1)},[p]);return c(i,{open:u,onOpenChange:p,children:l(e,{className:`gap-8 p-4 sm:max-w-md`,children:[c(r,{children:l(`div`,{className:`flex flex-col items-center text-danger`,children:[c(o,{size:42}),c(a,{className:`text-xl font-medium`,children:d||`An error occurred`})]})}),f,c(n,{children:c(t,{className:`w-full sm:w-28`,onClick:m,children:`Close`})})]})})};export{u as t};
|
|
2
|
-
//# sourceMappingURL=error-dialog-DnntjOS9.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-dialog-DnntjOS9.mjs","names":["ErrorDialog: React.FC<React.PropsWithChildren<ErrorDialogProps>>"],"sources":["../packages/components/dialogs/error-dialog.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\n\nimport { AlertTriangleIcon } from 'lucide-react';\n\nimport { AlertDialog, AlertDialogAction, AlertDialogContent, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle } from '../ui/alert-dialog';\n\nexport type ErrorDialogProps = {\n /** Controls whether the dialog is open. */\n open?: boolean;\n /** Title text displayed inside the dialog header. Defaults to `'An error occurred'`. */\n title?: string;\n /** Callback invoked when the dialog open state changes. */\n onOpenChange?: (open: boolean) => void;\n};\n\n/**\n * Displays a modal alert dialog for communicating error states to the user.\n *\n * @example\n * ```tsx\n * import { ErrorDialog } from '@customafk/lunas-ui/dialogs/error-dialog';\n *\n * <ErrorDialog open={hasError} title=\"Something went wrong\" onOpenChange={setHasError}>\n * <p>Please try again later.</p>\n * </ErrorDialog>\n * ```\n */\nexport const ErrorDialog: React.FC<React.PropsWithChildren<ErrorDialogProps>> = ({ open, title, children, onOpenChange }) => {\n const handleClose = useCallback(() => {\n onOpenChange?.(false);\n }, [onOpenChange]);\n\n return (\n <AlertDialog open={open} onOpenChange={onOpenChange}>\n <AlertDialogContent className=\"gap-8 p-4 sm:max-w-md\">\n <AlertDialogHeader>\n <div className=\"flex flex-col items-center text-danger\">\n <AlertTriangleIcon size={42} />\n <AlertDialogTitle className=\"text-xl font-medium\">{title || 'An error occurred'}</AlertDialogTitle>\n </div>\n </AlertDialogHeader>\n {children}\n <AlertDialogFooter>\n <AlertDialogAction className=\"w-full sm:w-28\" onClick={handleClose}>\n Close\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n};\n"],"mappings":"0NA6BA,MAAaA,GAAoE,CAAE,OAAM,QAAO,WAAU,kBAAmB,CAC3H,IAAM,EAAc,MAAkB,CACpC,IAAe,GAAM,EACpB,CAAC,EAAa,CAAC,CAElB,OACE,EAAC,EAAA,CAAkB,OAAoB,wBACrC,EAAC,EAAA,CAAmB,UAAU,kCAC5B,EAAC,EAAA,CAAA,SACC,EAAC,MAAA,CAAI,UAAU,mDACb,EAAC,EAAA,CAAkB,KAAM,GAAA,CAAM,CAC/B,EAAC,EAAA,CAAiB,UAAU,+BAAuB,GAAS,qBAAuC,CAAA,EAC/F,CAAA,CACY,CACnB,EACD,EAAC,EAAA,CAAA,SACC,EAAC,EAAA,CAAkB,UAAU,iBAAiB,QAAS,WAAa,SAEhD,CAAA,CACF,GACD,EACT"}
|
package/dist/field-BxYoF5AX.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./separator-BjRgoiEx.mjs";import{t}from"./label-BMVyfKu9.mjs";import{BanIcon as n}from"lucide-react";import{memo as r,useMemo as i}from"react";import{cn as a}from"@customafk/react-toolkit/utils";import{cva as o}from"class-variance-authority";import{jsx as s,jsxs as c}from"react/jsx-runtime";const l=r(({className:e,...t})=>s(`fieldset`,{"data-slot":`field-set`,className:a(`flex flex-col gap-6`,`has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3`,e),...t}));l.displayName=`FieldSet`;const u=r(({className:e,variant:t=`legend`,...n})=>s(`legend`,{"data-slot":`field-legend`,"data-variant":t,className:a(`mb-3 font-medium`,`data-[variant=legend]:text-base`,`data-[variant=label]:text-sm`,e),...n}));u.displayName=`FieldLegend`;const d=r(({className:e,...t})=>s(`div`,{"data-slot":`field-group`,className:a(`group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4`,e),...t}));d.displayName=`FieldGroup`;const f=o(`group/field flex w-full gap-3 data-[invalid=true]:text-destructive`,{variants:{orientation:{vertical:[`flex-col *:w-full [&>.sr-only]:w-auto`],horizontal:[`flex-row items-center`,`*:data-[slot=field-label]:flex-auto`,`has-[>[data-slot=field-content]]:items-start`,`has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`],responsive:[`flex-col *:w-full [&>.sr-only]:w-auto`,`@md/field-group:flex-row`,`@md/field-group:items-center`,`@md/field-group:*:w-auto`,`@md/field-group:*:data-[slot=field-label]:flex-auto`,`@md/field-group:has-[>[data-slot=field-content]]:items-start`,`@md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`]}},defaultVariants:{orientation:`vertical`}}),p=r(({className:e,orientation:t=`vertical`,...n})=>s(`div`,{"data-slot":`field`,"data-orientation":t,className:a(f({orientation:t}),e),...n}));p.displayName=`Field`;const m=r(({className:e,...t})=>s(`div`,{"data-slot":`field-content`,className:a(`group/field-content flex basis-2/5 flex-col gap-1.5 leading-snug`,e),...t}));m.displayName=`FieldContent`;const h=r(({className:e,...n})=>s(t,{"data-slot":`field-label`,className:a(`group/field-label peer/field-label flex w-fit gap-2 leading-snug`,`group-data-[disabled=true]/field:opacity-50`,`has-[>[data-slot=field]]:w-full`,`has-[>[data-slot=field]]:flex-col`,`has-[>[data-slot=field]]:rounded-md`,`has-[>[data-slot=field]]:border`,`*:data-[slot=field]:p-4`,`has-data-[state=checked]:bg-primary/5`,`has-data-[state=checked]:border-primary`,e),...n}));h.displayName=`FieldLabel`;const g=r(({className:e,...t})=>s(`div`,{"data-slot":`field-label`,className:a(`flex w-fit items-center gap-2 font-medium text-sm leading-snug group-data-[disabled=true]/field:opacity-50`,e),...t}));g.displayName=`FieldTitle`;const _=r(({className:e,...t})=>s(`p`,{"data-slot":`field-description`,className:a(`text-text-positive-weak text-sm leading-normal font-normal group-has-data-[orientation=horizontal]/field:text-balance`,`last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5`,`[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4`,e),...t}));_.displayName=`FieldDescription`;const v=r(({children:t,className:n,...r})=>c(`div`,{"data-slot":`field-separator`,"data-content":!!t,className:a(`relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2`,n),...r,children:[s(e,{className:`absolute inset-0 top-1/2`}),t&&s(`span`,{className:`relative mx-auto block w-fit bg-background px-2 text-text-positive-weak`,"data-slot":`field-separator-content`,children:t})]}));v.displayName=`FieldSeparator`;const y=r(({className:e,children:t,errors:r,...o})=>{let l=i(()=>t||(r?r?.length===1&&r[0]?.message?c(`div`,{className:`flex flex-row items-center justify-start gap-x-0.5`,children:[s(n,{size:14}),s(`p`,{children:r[0].message})]}):s(`ul`,{className:`ml-4 flex list-disc flex-col gap-1`,children:r.map(e=>typeof e==`string`?s(`li`,{children:e},e):e?.message?s(`li`,{children:e.message},e.message):null)}):null),[t,r]);return l?s(`div`,{role:`alert`,"data-slot":`field-error`,className:a(`w-full font-normal text-danger text-xs`,e),...o,children:l}):null});y.displayName=`FieldError`;export{d as a,v as c,y as i,l,m as n,h as o,_ as r,u as s,p as t,g as u};
|
|
2
|
-
//# sourceMappingURL=field-BxYoF5AX.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"field-BxYoF5AX.mjs","names":[],"sources":["../packages/components/ui/field.tsx"],"sourcesContent":["'use client';\n\nimport { memo, useMemo } from 'react';\n\nimport { BanIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { Label } from '@/components/ui/label';\nimport { Separator } from '@/components/ui/separator';\n\nconst FieldSet = memo(({ className, ...props }: React.ComponentProps<'fieldset'>) => {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn('flex flex-col gap-6', 'has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3', className)}\n {...props}\n />\n );\n});\nFieldSet.displayName = 'FieldSet';\n\nconst FieldLegend = memo(({ className, variant = 'legend', ...props }: React.ComponentProps<'legend'> & { variant?: 'legend' | 'label' }) => {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn('mb-3 font-medium', 'data-[variant=legend]:text-base', 'data-[variant=label]:text-sm', className)}\n {...props}\n />\n );\n});\nFieldLegend.displayName = 'FieldLegend';\n\nconst FieldGroup = memo(({ className, ...props }: React.ComponentProps<'div'>) => {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n 'group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4',\n className\n )}\n {...props}\n />\n );\n});\nFieldGroup.displayName = 'FieldGroup';\n\nconst fieldVariants = cva('group/field flex w-full gap-3 data-[invalid=true]:text-destructive', {\n variants: {\n orientation: {\n vertical: ['flex-col *:w-full [&>.sr-only]:w-auto'],\n horizontal: [\n 'flex-row items-center',\n '*:data-[slot=field-label]:flex-auto',\n 'has-[>[data-slot=field-content]]:items-start',\n 'has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n ],\n responsive: [\n 'flex-col *:w-full [&>.sr-only]:w-auto',\n '@md/field-group:flex-row',\n '@md/field-group:items-center',\n '@md/field-group:*:w-auto',\n '@md/field-group:*:data-[slot=field-label]:flex-auto',\n '@md/field-group:has-[>[data-slot=field-content]]:items-start',\n '@md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n ],\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n },\n});\n\nconst Field = memo(({ className, orientation = 'vertical', ...props }: React.ComponentProps<'div'> & VariantProps<typeof fieldVariants>) => {\n return <div data-slot=\"field\" data-orientation={orientation} className={cn(fieldVariants({ orientation }), className)} {...props} />;\n});\nField.displayName = 'Field';\n\nconst FieldContent = memo(({ className, ...props }: React.ComponentProps<'div'>) => {\n return <div data-slot=\"field-content\" className={cn('group/field-content flex basis-2/5 flex-col gap-1.5 leading-snug', className)} {...props} />;\n});\nFieldContent.displayName = 'FieldContent';\n\nconst FieldLabel = memo(({ className, ...props }: React.ComponentProps<typeof Label>) => {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n 'group/field-label peer/field-label flex w-fit gap-2 leading-snug',\n 'group-data-[disabled=true]/field:opacity-50',\n 'has-[>[data-slot=field]]:w-full',\n 'has-[>[data-slot=field]]:flex-col',\n 'has-[>[data-slot=field]]:rounded-md',\n 'has-[>[data-slot=field]]:border',\n '*:data-[slot=field]:p-4',\n 'has-data-[state=checked]:bg-primary/5',\n 'has-data-[state=checked]:border-primary',\n className\n )}\n {...props}\n />\n );\n});\nFieldLabel.displayName = 'FieldLabel';\n\nconst FieldTitle = memo(({ className, ...props }: React.ComponentProps<'div'>) => {\n return (\n <div\n data-slot=\"field-label\"\n className={cn('flex w-fit items-center gap-2 font-medium text-sm leading-snug group-data-[disabled=true]/field:opacity-50', className)}\n {...props}\n />\n );\n});\nFieldTitle.displayName = 'FieldTitle';\n\nconst FieldDescription = memo(({ className, ...props }: React.ComponentProps<'p'>) => {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n 'text-text-positive-weak text-sm leading-normal font-normal group-has-data-[orientation=horizontal]/field:text-balance',\n 'last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5',\n '[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4',\n className\n )}\n {...props}\n />\n );\n});\nFieldDescription.displayName = 'FieldDescription';\n\nconst FieldSeparator = memo(\n ({\n children,\n className,\n ...props\n }: React.ComponentProps<'div'> & {\n children?: React.ReactNode;\n }) => {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn('relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2', className)}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span className=\"relative mx-auto block w-fit bg-background px-2 text-text-positive-weak\" data-slot=\"field-separator-content\">\n {children}\n </span>\n )}\n </div>\n );\n }\n);\nFieldSeparator.displayName = 'FieldSeparator';\n\nconst FieldError = memo(\n ({\n className,\n children,\n errors,\n ...props\n }: React.ComponentProps<'div'> & {\n errors?: Array<{ message?: string } | undefined>;\n }) => {\n const content = useMemo(() => {\n if (children) {\n return children;\n }\n\n if (!errors) {\n return null;\n }\n\n if (errors?.length === 1 && errors[0]?.message) {\n return (\n <div className=\"flex flex-row items-center justify-start gap-x-0.5\">\n <BanIcon size={14} />\n <p>{errors[0].message}</p>\n </div>\n );\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {errors.map(error => {\n if (typeof error === 'string') return <li key={error}>{error}</li>;\n if (!error?.message) return null;\n return <li key={error.message}>{error.message}</li>;\n })}\n </ul>\n );\n }, [children, errors]);\n\n if (!content) {\n return null;\n }\n\n return (\n <div role=\"alert\" data-slot=\"field-error\" className={cn('w-full font-normal text-danger text-xs', className)} {...props}>\n {content}\n </div>\n );\n }\n);\nFieldError.displayName = 'FieldError';\n\nexport { Field, FieldLabel, FieldDescription, FieldError, FieldGroup, FieldLegend, FieldSeparator, FieldSet, FieldContent, FieldTitle };\n"],"mappings":"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"}
|
package/dist/field-fIef7NR0.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require(`./chunk-350yNsax.cjs`),t=require(`./separator-BRoS5sU8.cjs`),n=require(`./label--hinNDHW.cjs`);let r=require(`lucide-react`),i=require(`react`),a=require(`@customafk/react-toolkit/utils`),o=require(`class-variance-authority`),s=require(`react/jsx-runtime`);const c=(0,i.memo)(({className:e,...t})=>(0,s.jsx)(`fieldset`,{"data-slot":`field-set`,className:(0,a.cn)(`flex flex-col gap-6`,`has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3`,e),...t}));c.displayName=`FieldSet`;const l=(0,i.memo)(({className:e,variant:t=`legend`,...n})=>(0,s.jsx)(`legend`,{"data-slot":`field-legend`,"data-variant":t,className:(0,a.cn)(`mb-3 font-medium`,`data-[variant=legend]:text-base`,`data-[variant=label]:text-sm`,e),...n}));l.displayName=`FieldLegend`;const u=(0,i.memo)(({className:e,...t})=>(0,s.jsx)(`div`,{"data-slot":`field-group`,className:(0,a.cn)(`group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4`,e),...t}));u.displayName=`FieldGroup`;const d=(0,o.cva)(`group/field flex w-full gap-3 data-[invalid=true]:text-destructive`,{variants:{orientation:{vertical:[`flex-col *:w-full [&>.sr-only]:w-auto`],horizontal:[`flex-row items-center`,`*:data-[slot=field-label]:flex-auto`,`has-[>[data-slot=field-content]]:items-start`,`has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`],responsive:[`flex-col *:w-full [&>.sr-only]:w-auto`,`@md/field-group:flex-row`,`@md/field-group:items-center`,`@md/field-group:*:w-auto`,`@md/field-group:*:data-[slot=field-label]:flex-auto`,`@md/field-group:has-[>[data-slot=field-content]]:items-start`,`@md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`]}},defaultVariants:{orientation:`vertical`}}),f=(0,i.memo)(({className:e,orientation:t=`vertical`,...n})=>(0,s.jsx)(`div`,{"data-slot":`field`,"data-orientation":t,className:(0,a.cn)(d({orientation:t}),e),...n}));f.displayName=`Field`;const p=(0,i.memo)(({className:e,...t})=>(0,s.jsx)(`div`,{"data-slot":`field-content`,className:(0,a.cn)(`group/field-content flex basis-2/5 flex-col gap-1.5 leading-snug`,e),...t}));p.displayName=`FieldContent`;const m=(0,i.memo)(({className:e,...t})=>(0,s.jsx)(n.t,{"data-slot":`field-label`,className:(0,a.cn)(`group/field-label peer/field-label flex w-fit gap-2 leading-snug`,`group-data-[disabled=true]/field:opacity-50`,`has-[>[data-slot=field]]:w-full`,`has-[>[data-slot=field]]:flex-col`,`has-[>[data-slot=field]]:rounded-md`,`has-[>[data-slot=field]]:border`,`*:data-[slot=field]:p-4`,`has-data-[state=checked]:bg-primary/5`,`has-data-[state=checked]:border-primary`,e),...t}));m.displayName=`FieldLabel`;const h=(0,i.memo)(({className:e,...t})=>(0,s.jsx)(`div`,{"data-slot":`field-label`,className:(0,a.cn)(`flex w-fit items-center gap-2 font-medium text-sm leading-snug group-data-[disabled=true]/field:opacity-50`,e),...t}));h.displayName=`FieldTitle`;const g=(0,i.memo)(({className:e,...t})=>(0,s.jsx)(`p`,{"data-slot":`field-description`,className:(0,a.cn)(`text-text-positive-weak text-sm leading-normal font-normal group-has-data-[orientation=horizontal]/field:text-balance`,`last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5`,`[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4`,e),...t}));g.displayName=`FieldDescription`;const _=(0,i.memo)(({children:e,className:n,...r})=>(0,s.jsxs)(`div`,{"data-slot":`field-separator`,"data-content":!!e,className:(0,a.cn)(`relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2`,n),...r,children:[(0,s.jsx)(t.t,{className:`absolute inset-0 top-1/2`}),e&&(0,s.jsx)(`span`,{className:`relative mx-auto block w-fit bg-background px-2 text-text-positive-weak`,"data-slot":`field-separator-content`,children:e})]}));_.displayName=`FieldSeparator`;const v=(0,i.memo)(({className:e,children:t,errors:n,...o})=>{let c=(0,i.useMemo)(()=>t||(n?n?.length===1&&n[0]?.message?(0,s.jsxs)(`div`,{className:`flex flex-row items-center justify-start gap-x-0.5`,children:[(0,s.jsx)(r.BanIcon,{size:14}),(0,s.jsx)(`p`,{children:n[0].message})]}):(0,s.jsx)(`ul`,{className:`ml-4 flex list-disc flex-col gap-1`,children:n.map(e=>typeof e==`string`?(0,s.jsx)(`li`,{children:e},e):e?.message?(0,s.jsx)(`li`,{children:e.message},e.message):null)}):null),[t,n]);return c?(0,s.jsx)(`div`,{role:`alert`,"data-slot":`field-error`,className:(0,a.cn)(`w-full font-normal text-danger text-xs`,e),...o,children:c}):null});v.displayName=`FieldError`,Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return h}});
|
|
2
|
-
//# sourceMappingURL=field-fIef7NR0.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"field-fIef7NR0.cjs","names":["Label","Separator","BanIcon"],"sources":["../packages/components/ui/field.tsx"],"sourcesContent":["'use client';\n\nimport { memo, useMemo } from 'react';\n\nimport { BanIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { Label } from '@/components/ui/label';\nimport { Separator } from '@/components/ui/separator';\n\nconst FieldSet = memo(({ className, ...props }: React.ComponentProps<'fieldset'>) => {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn('flex flex-col gap-6', 'has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3', className)}\n {...props}\n />\n );\n});\nFieldSet.displayName = 'FieldSet';\n\nconst FieldLegend = memo(({ className, variant = 'legend', ...props }: React.ComponentProps<'legend'> & { variant?: 'legend' | 'label' }) => {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn('mb-3 font-medium', 'data-[variant=legend]:text-base', 'data-[variant=label]:text-sm', className)}\n {...props}\n />\n );\n});\nFieldLegend.displayName = 'FieldLegend';\n\nconst FieldGroup = memo(({ className, ...props }: React.ComponentProps<'div'>) => {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n 'group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4',\n className\n )}\n {...props}\n />\n );\n});\nFieldGroup.displayName = 'FieldGroup';\n\nconst fieldVariants = cva('group/field flex w-full gap-3 data-[invalid=true]:text-destructive', {\n variants: {\n orientation: {\n vertical: ['flex-col *:w-full [&>.sr-only]:w-auto'],\n horizontal: [\n 'flex-row items-center',\n '*:data-[slot=field-label]:flex-auto',\n 'has-[>[data-slot=field-content]]:items-start',\n 'has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n ],\n responsive: [\n 'flex-col *:w-full [&>.sr-only]:w-auto',\n '@md/field-group:flex-row',\n '@md/field-group:items-center',\n '@md/field-group:*:w-auto',\n '@md/field-group:*:data-[slot=field-label]:flex-auto',\n '@md/field-group:has-[>[data-slot=field-content]]:items-start',\n '@md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n ],\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n },\n});\n\nconst Field = memo(({ className, orientation = 'vertical', ...props }: React.ComponentProps<'div'> & VariantProps<typeof fieldVariants>) => {\n return <div data-slot=\"field\" data-orientation={orientation} className={cn(fieldVariants({ orientation }), className)} {...props} />;\n});\nField.displayName = 'Field';\n\nconst FieldContent = memo(({ className, ...props }: React.ComponentProps<'div'>) => {\n return <div data-slot=\"field-content\" className={cn('group/field-content flex basis-2/5 flex-col gap-1.5 leading-snug', className)} {...props} />;\n});\nFieldContent.displayName = 'FieldContent';\n\nconst FieldLabel = memo(({ className, ...props }: React.ComponentProps<typeof Label>) => {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n 'group/field-label peer/field-label flex w-fit gap-2 leading-snug',\n 'group-data-[disabled=true]/field:opacity-50',\n 'has-[>[data-slot=field]]:w-full',\n 'has-[>[data-slot=field]]:flex-col',\n 'has-[>[data-slot=field]]:rounded-md',\n 'has-[>[data-slot=field]]:border',\n '*:data-[slot=field]:p-4',\n 'has-data-[state=checked]:bg-primary/5',\n 'has-data-[state=checked]:border-primary',\n className\n )}\n {...props}\n />\n );\n});\nFieldLabel.displayName = 'FieldLabel';\n\nconst FieldTitle = memo(({ className, ...props }: React.ComponentProps<'div'>) => {\n return (\n <div\n data-slot=\"field-label\"\n className={cn('flex w-fit items-center gap-2 font-medium text-sm leading-snug group-data-[disabled=true]/field:opacity-50', className)}\n {...props}\n />\n );\n});\nFieldTitle.displayName = 'FieldTitle';\n\nconst FieldDescription = memo(({ className, ...props }: React.ComponentProps<'p'>) => {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n 'text-text-positive-weak text-sm leading-normal font-normal group-has-data-[orientation=horizontal]/field:text-balance',\n 'last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5',\n '[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4',\n className\n )}\n {...props}\n />\n );\n});\nFieldDescription.displayName = 'FieldDescription';\n\nconst FieldSeparator = memo(\n ({\n children,\n className,\n ...props\n }: React.ComponentProps<'div'> & {\n children?: React.ReactNode;\n }) => {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn('relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2', className)}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span className=\"relative mx-auto block w-fit bg-background px-2 text-text-positive-weak\" data-slot=\"field-separator-content\">\n {children}\n </span>\n )}\n </div>\n );\n }\n);\nFieldSeparator.displayName = 'FieldSeparator';\n\nconst FieldError = memo(\n ({\n className,\n children,\n errors,\n ...props\n }: React.ComponentProps<'div'> & {\n errors?: Array<{ message?: string } | undefined>;\n }) => {\n const content = useMemo(() => {\n if (children) {\n return children;\n }\n\n if (!errors) {\n return null;\n }\n\n if (errors?.length === 1 && errors[0]?.message) {\n return (\n <div className=\"flex flex-row items-center justify-start gap-x-0.5\">\n <BanIcon size={14} />\n <p>{errors[0].message}</p>\n </div>\n );\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {errors.map(error => {\n if (typeof error === 'string') return <li key={error}>{error}</li>;\n if (!error?.message) return null;\n return <li key={error.message}>{error.message}</li>;\n })}\n </ul>\n );\n }, [children, errors]);\n\n if (!content) {\n return null;\n }\n\n return (\n <div role=\"alert\" data-slot=\"field-error\" className={cn('w-full font-normal text-danger text-xs', className)} {...props}>\n {content}\n </div>\n );\n }\n);\nFieldError.displayName = 'FieldError';\n\nexport { Field, FieldLabel, FieldDescription, FieldError, FieldGroup, FieldLegend, FieldSeparator, FieldSet, FieldContent, FieldTitle };\n"],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
const e=require(`./chunk-350yNsax.cjs`),t=require(`./button-C--DAN1D.cjs`),n=require(`./progress-Dlgbu5Ff.cjs`);let r=require(`lucide-react`),i=require(`react`),a=require(`@customafk/react-toolkit/utils`),o=require(`react/jsx-runtime`),s=require(`react-dropzone`);s=e.n(s);let c=require(`@customafk/react-toolkit/hooks/useControllableState`),l=require(`sonner`);function u(e){let{value:t,onValueChange:n,onUpload:u,progresses:p,accept:m={"image/*":[]},maxSize:h=1024*1024*2,maxFileCount:g=1,multiple:_=!1,disabled:v=!1,showText:y=!0,iconSize:b,className:x,...S}=e,[C,w]=(0,c.useControllableState)({prop:t,onChange:n}),T=(0,i.useCallback)((e,t)=>{if(!_&&g===1&&e.length>1){l.toast.error(`Cannot upload more than 1 file at a time`);return}if((C?.length??0)+e.length>g){l.toast.error(`Cannot upload more than ${g} files`);return}let n=e.map(e=>Object.assign(e,{preview:URL.createObjectURL(e)})),r=C?[...C,...n]:n;if(w(r),t.length>0&&t.forEach(({file:e})=>{l.toast.error(`File ${e.name} was rejected`)}),u&&r.length>0&&r.length<=g){let e=r.length>0?`${r.length} files`:`file`;u(r).then(()=>{w([]),(0,l.toast)(`${e} uploaded`)})}},[C,g,_,u,w]);function E(e){if(!C)return;f(C[e])&&URL.revokeObjectURL(C[e].preview);let t=C.filter((t,n)=>n!==e);w(t),n?.(t)}(0,i.useEffect)(()=>()=>{C&&C.forEach(e=>{f(e)&&URL.revokeObjectURL(e.preview)})},[]);let D=v||(C?.length??0)>=g;return(0,o.jsxs)(`div`,{className:`relative flex w-full flex-col gap-6`,children:[(0,o.jsx)(s.default,{onDrop:T,accept:m,maxSize:h,maxFiles:g,multiple:g>1||_,disabled:D,children:({getRootProps:e,getInputProps:t,isDragActive:n})=>(0,o.jsxs)(`div`,{...e(),className:(0,a.cn)(`group`,`border-border-weak`,`hover:bg-border-weak/20`,`relative grid h-52 w-full cursor-pointer place-items-center rounded-lg border-2 border-dashed px-5 py-2.5 text-center transition`,`ring-offset-background`,`focus-visible:ring-primary-weak`,`focus-visible:ring-2`,`focus-visible:ring-offset-2`,`focus-visible:outline-hidden`,n&&`border-border-primary-strong bg-border-weak/40`,D&&`pointer-events-none opacity-60`,x),...S,children:[(0,o.jsx)(`input`,{...t()}),n?(0,o.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-4 sm:px-5`,children:[(0,o.jsx)(`div`,{className:`rounded-full border border-dashed p-3`,children:(0,o.jsx)(r.Upload,{className:`text-text-positive-muted size-7`,"aria-hidden":`true`})}),(0,o.jsx)(`p`,{className:`text-text-positive-muted font-medium`,children:`Drop the files here`})]}):(0,o.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-4 sm:px-5`,children:[(0,o.jsx)(`div`,{className:`rounded-full border border-dashed p-3`,children:(0,o.jsx)(r.Upload,{size:b||24,className:`text-muted-foreground`,"aria-hidden":`true`})}),y&&(0,o.jsxs)(`div`,{className:`flex flex-col gap-px`,children:[(0,o.jsxs)(`p`,{className:`text-text-positive-weak text-xs font-medium`,children:[`Drag `,`'n'`,` drop files here, or click to select files`]}),(0,o.jsxs)(`p`,{className:`text-text-positive-muted text-xs`,children:[`You can upload`,g>1?` ${g===1/0?`multiple`:g}
|
|
2
|
-
files (up to ${(0,a.formatBytes)(h)} each)`:` a file with ${(0,a.formatBytes)(h)}`]})]})]})]})}),C?.length?(0,o.jsxs)(`div`,{className:`h-fit w-full overflow-y-auto`,children:[(0,o.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2.5`,children:[(0,o.jsxs)(`div`,{className:`text-text-positive-weak flex items-center gap-1`,children:[(0,o.jsx)(r.Image,{size:16,"aria-hidden":`true`}),(0,o.jsxs)(`p`,{className:`text-sm`,children:[`Ảnh đã tải lên (`,C.length,`)`]})]}),(0,o.jsxs)(`button`,{className:`hover:text-text-positive text-text-positive-muted flex cursor-pointer items-center gap-1 transition-colors duration-200`,onClick:()=>{C&&(C.forEach(e=>{f(e)&&URL.revokeObjectURL(e.preview)}),w([]),n?.([]))},children:[(0,o.jsx)(r.Trash2,{size:16,"aria-hidden":`true`}),(0,o.jsx)(`p`,{className:`text-sm`,children:`Xóa tất cả`})]})]}),(0,o.jsx)(`div`,{className:`flex flex-col gap-2.5`,children:C?.map((e,t)=>(0,o.jsx)(d,{file:e,onRemove:()=>E(t),progress:p?.[e.name]},t))})]}):null]})}function d({file:e,progress:i,onRemove:s}){return(0,o.jsxs)(`div`,{className:`border-border-weak hover:border-border relative flex items-center gap-4 rounded-md border py-2 pr-3 pl-2 shadow-xs transition-colors`,children:[(0,o.jsxs)(`div`,{className:`flex flex-1 gap-2.5`,children:[f(e)?(0,o.jsx)(p,{file:e}):null,(0,o.jsxs)(`div`,{className:`flex w-full flex-col gap-2`,children:[(0,o.jsxs)(`div`,{className:`flex flex-col gap-y-0.5`,children:[(0,o.jsx)(`p`,{className:`text-text-positive line-clamp-1 text-sm`,children:e.name}),(0,o.jsx)(`p`,{className:`text-text-positive-muted text-xs`,children:(0,a.formatBytes)(e.size)})]}),i?(0,o.jsx)(n.t,{value:i}):null]})]}),(0,o.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,o.jsxs)(t.t,{type:`button`,variant:`ghost`,color:`secondary`,size:`icon`,className:`size-7`,onClick:s,children:[(0,o.jsx)(r.Trash2,{size:16,className:`text-text-positive-muted`,"aria-hidden":`true`}),(0,o.jsx)(`span`,{className:`sr-only`,children:`Remove file`})]})})]})}function f(e){return`preview`in e&&typeof e.preview==`string`}function p({file:e}){return e.type.startsWith(`image/`)?(0,o.jsx)(`img`,{src:e.preview,className:`border-border aspect-square size-10 shrink-0 rounded border object-cover object-top shadow-sm`}):(0,o.jsx)(r.FileText,{className:`text-text-positive-muted size-10 border`,"aria-hidden":`true`})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return u}});
|
|
3
|
-
//# sourceMappingURL=file-uploader-BM0x9VBh.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-uploader-BM0x9VBh.cjs","names":["Dropzone","Upload","Image","Trash2","Progress","Button","FileText"],"sources":["../packages/components/ui/file-uploader.tsx"],"sourcesContent":["'use client';\nimport { useCallback, useEffect } from 'react';\nimport Dropzone, { type DropzoneProps, type FileRejection } from 'react-dropzone';\nimport { useControllableState } from '@customafk/react-toolkit/hooks/useControllableState';\nimport { cn, formatBytes } from '@customafk/react-toolkit/utils';\n\nimport { FileText, Image, Trash2, Upload } from 'lucide-react';\nimport { toast } from 'sonner';\n\nimport { Button } from '@/components/ui/button';\nimport { Progress } from '@/components/ui/progress';\n\n/**\n * Props for the FileUploader component.\n *\n * @example\n * ```tsx\n * import { FileUploader } from '@customafk/lunas-ui/ui/file-uploader';\n *\n * <FileUploader\n * accept={{ 'image/*': [] }}\n * maxSize={1024 * 1024 * 5}\n * maxFileCount={3}\n * multiple\n * onUpload={async (files) => { await uploadFiles(files); }}\n * />\n * ```\n */\ninterface FileUploaderProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Value of the uploader.\n * @type File[]\n * @default undefined\n * @example value={files}\n */\n value?: File[];\n\n /**\n * Function to be called when the value changes.\n * @type (files: File[]) => void\n * @default undefined\n * @example onValueChange={(files) => setFiles(files)}\n */\n onValueChange?: (files: File[]) => void;\n\n /**\n * Function to be called when files are uploaded.\n * @type (files: File[]) => Promise<void>\n * @default undefined\n * @example onUpload={(files) => uploadFiles(files)}\n */\n onUpload?: (files: File[]) => Promise<void>;\n\n /**\n * Progress of the uploaded files.\n * @type Record<string, number> | undefined\n * @default undefined\n * @example progresses={{ \"file1.png\": 50 }}\n */\n progresses?: Record<string, number>;\n\n /**\n * Accepted file types for the uploader.\n * @type { [key: string]: string[]}\n * @default\n * ```ts\n * { \"image/*\": [] }\n * ```\n * @example accept={[\"image/png\", \"image/jpeg\"]}\n */\n accept?: DropzoneProps['accept'];\n\n /**\n * Maximum file size for the uploader.\n * @type number | undefined\n * @default 1024 * 1024 * 2 // 2MB\n * @example maxSize={1024 * 1024 * 2} // 2MB\n */\n maxSize?: DropzoneProps['maxSize'];\n\n /**\n * Maximum number of files for the uploader.\n * @type number | undefined\n * @default 1\n * @example maxFileCount={4}\n */\n maxFileCount?: DropzoneProps['maxFiles'];\n\n /**\n * Whether the uploader should accept multiple files.\n * @type boolean\n * @default false\n * @example multiple\n */\n multiple?: boolean;\n\n /**\n * Whether the uploader is disabled.\n * @type boolean\n * @default false\n * @example disabled\n */\n disabled?: boolean;\n\n /**\n * Whether to show the instructional drag-and-drop text inside the drop zone.\n * @default true\n */\n showText?: boolean;\n /** Size in pixels for the upload icon. */\n iconSize?: number;\n}\n\n/**\n * A drag-and-drop file upload zone that manages file selection, validation, preview generation, and optional async upload with progress tracking.\n */\nexport function FileUploader(props: FileUploaderProps) {\n const {\n value: valueProp,\n onValueChange,\n onUpload,\n progresses,\n accept = {\n 'image/*': [],\n },\n maxSize = 1024 * 1024 * 2,\n maxFileCount = 1,\n multiple = false,\n disabled = false,\n showText = true,\n iconSize,\n className,\n ...dropzoneProps\n } = props;\n\n const [files, setFiles] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n });\n\n const onDrop = useCallback(\n (acceptedFiles: File[], rejectedFiles: FileRejection[]) => {\n if (!multiple && maxFileCount === 1 && acceptedFiles.length > 1) {\n toast.error('Cannot upload more than 1 file at a time');\n\n return;\n }\n\n if ((files?.length ?? 0) + acceptedFiles.length > maxFileCount) {\n toast.error(`Cannot upload more than ${maxFileCount} files`);\n return;\n }\n\n const newFiles = acceptedFiles.map(file =>\n Object.assign(file, {\n preview: URL.createObjectURL(file),\n })\n );\n\n const updatedFiles = files ? [...files, ...newFiles] : newFiles;\n\n setFiles(updatedFiles);\n\n if (rejectedFiles.length > 0) {\n rejectedFiles.forEach(({ file }) => {\n toast.error(`File ${file.name} was rejected`);\n });\n }\n\n if (onUpload && updatedFiles.length > 0 && updatedFiles.length <= maxFileCount) {\n const target = updatedFiles.length > 0 ? `${updatedFiles.length} files` : `file`;\n\n onUpload(updatedFiles).then(() => {\n setFiles([]);\n toast(`${target} uploaded`);\n });\n }\n },\n\n [files, maxFileCount, multiple, onUpload, setFiles]\n );\n\n function onRemove(index: number) {\n if (!files) return;\n\n if (isFileWithPreview(files[index])) {\n URL.revokeObjectURL(files[index].preview);\n }\n\n const newFiles = files.filter((_, i) => i !== index);\n setFiles(newFiles);\n onValueChange?.(newFiles);\n }\n\n // Revoke preview url when component unmounts\n useEffect(() => {\n return () => {\n if (!files) return;\n files.forEach(file => {\n if (isFileWithPreview(file)) {\n URL.revokeObjectURL(file.preview);\n }\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const isDisabled = disabled || (files?.length ?? 0) >= maxFileCount;\n\n return (\n <div className=\"relative flex w-full flex-col gap-6\">\n <Dropzone onDrop={onDrop} accept={accept} maxSize={maxSize} maxFiles={maxFileCount} multiple={maxFileCount > 1 || multiple} disabled={isDisabled}>\n {({ getRootProps, getInputProps, isDragActive }) => (\n <div\n {...getRootProps()}\n className={cn(\n 'group',\n 'border-border-weak',\n 'hover:bg-border-weak/20',\n 'relative grid h-52 w-full cursor-pointer place-items-center rounded-lg border-2 border-dashed px-5 py-2.5 text-center transition',\n 'ring-offset-background',\n 'focus-visible:ring-primary-weak',\n 'focus-visible:ring-2',\n 'focus-visible:ring-offset-2',\n 'focus-visible:outline-hidden',\n isDragActive && 'border-border-primary-strong bg-border-weak/40',\n isDisabled && 'pointer-events-none opacity-60',\n className\n )}\n {...dropzoneProps}\n >\n <input {...getInputProps()} />\n {isDragActive ? (\n <div className=\"flex flex-col items-center justify-center gap-4 sm:px-5\">\n <div className=\"rounded-full border border-dashed p-3\">\n <Upload className=\"text-text-positive-muted size-7\" aria-hidden=\"true\" />\n </div>\n <p className=\"text-text-positive-muted font-medium\">Drop the files here</p>\n </div>\n ) : (\n <div className=\"flex flex-col items-center justify-center gap-4 sm:px-5\">\n <div className=\"rounded-full border border-dashed p-3\">\n <Upload size={iconSize || 24} className=\"text-muted-foreground\" aria-hidden=\"true\" />\n </div>\n {showText && (\n <div className=\"flex flex-col gap-px\">\n <p className=\"text-text-positive-weak text-xs font-medium\">Drag {`'n'`} drop files here, or click to select files</p>\n <p className=\"text-text-positive-muted text-xs\">\n You can upload\n {maxFileCount > 1\n ? ` ${maxFileCount === Infinity ? 'multiple' : maxFileCount}\n files (up to ${formatBytes(maxSize)} each)`\n : ` a file with ${formatBytes(maxSize)}`}\n </p>\n </div>\n )}\n </div>\n )}\n </div>\n )}\n </Dropzone>\n {files?.length ? (\n <div className=\"h-fit w-full overflow-y-auto\">\n <div className=\"flex items-center justify-between px-3 py-2.5\">\n <div className=\"text-text-positive-weak flex items-center gap-1\">\n <Image size={16} aria-hidden=\"true\" />\n <p className=\"text-sm\">Ảnh đã tải lên ({files.length})</p>\n </div>\n <button\n className=\"hover:text-text-positive text-text-positive-muted flex cursor-pointer items-center gap-1 transition-colors duration-200\"\n onClick={() => {\n if (!files) return;\n files.forEach(file => {\n if (!isFileWithPreview(file)) return;\n URL.revokeObjectURL(file.preview);\n });\n setFiles([]);\n onValueChange?.([]);\n }}\n >\n <Trash2 size={16} aria-hidden=\"true\" />\n <p className=\"text-sm\">Xóa tất cả</p>\n </button>\n </div>\n <div className=\"flex flex-col gap-2.5\">\n {files?.map((file, index) => (\n <FileCard key={index} file={file} onRemove={() => onRemove(index)} progress={progresses?.[file.name]} />\n ))}\n </div>\n </div>\n ) : null}\n </div>\n );\n}\n\ninterface FileCardProps {\n file: File;\n onRemove: () => void;\n progress?: number;\n}\n\nfunction FileCard({ file, progress, onRemove }: FileCardProps) {\n return (\n <div className=\"border-border-weak hover:border-border relative flex items-center gap-4 rounded-md border py-2 pr-3 pl-2 shadow-xs transition-colors\">\n <div className=\"flex flex-1 gap-2.5\">\n {isFileWithPreview(file) ? <FilePreview file={file} /> : null}\n <div className=\"flex w-full flex-col gap-2\">\n <div className=\"flex flex-col gap-y-0.5\">\n <p className=\"text-text-positive line-clamp-1 text-sm\">{file.name}</p>\n <p className=\"text-text-positive-muted text-xs\">{formatBytes(file.size)}</p>\n </div>\n {progress ? <Progress value={progress} /> : null}\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n <Button type=\"button\" variant=\"ghost\" color=\"secondary\" size=\"icon\" className=\"size-7\" onClick={onRemove}>\n <Trash2 size={16} className=\"text-text-positive-muted\" aria-hidden=\"true\" />\n <span className=\"sr-only\">Remove file</span>\n </Button>\n </div>\n </div>\n );\n}\n\nfunction isFileWithPreview(file: File): file is File & { preview: string } {\n return 'preview' in file && typeof file.preview === 'string';\n}\n\ninterface FilePreviewProps {\n file: File & { preview: string };\n}\n\nfunction FilePreview({ file }: FilePreviewProps) {\n if (file.type.startsWith('image/')) {\n return <img src={file.preview} className=\"border-border aspect-square size-10 shrink-0 rounded border object-cover object-top shadow-sm\" />;\n }\n\n return <FileText className=\"text-text-positive-muted size-10 border\" aria-hidden=\"true\" />;\n}\n"],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./button-CCVJTHBI.mjs";import{t}from"./progress-RvyBMsxb.mjs";import{FileText as n,Image as r,Trash2 as i,Upload as a}from"lucide-react";import{useCallback as o,useEffect as s}from"react";import{cn as c,formatBytes as l}from"@customafk/react-toolkit/utils";import{jsx as u,jsxs as d}from"react/jsx-runtime";import f from"react-dropzone";import{useControllableState as p}from"@customafk/react-toolkit/hooks/useControllableState";import{toast as m}from"sonner";function h(e){let{value:t,onValueChange:n,onUpload:h,progresses:v,accept:y={"image/*":[]},maxSize:b=1024*1024*2,maxFileCount:x=1,multiple:S=!1,disabled:C=!1,showText:w=!0,iconSize:T,className:E,...D}=e,[O,k]=p({prop:t,onChange:n}),A=o((e,t)=>{if(!S&&x===1&&e.length>1){m.error(`Cannot upload more than 1 file at a time`);return}if((O?.length??0)+e.length>x){m.error(`Cannot upload more than ${x} files`);return}let n=e.map(e=>Object.assign(e,{preview:URL.createObjectURL(e)})),r=O?[...O,...n]:n;if(k(r),t.length>0&&t.forEach(({file:e})=>{m.error(`File ${e.name} was rejected`)}),h&&r.length>0&&r.length<=x){let e=r.length>0?`${r.length} files`:`file`;h(r).then(()=>{k([]),m(`${e} uploaded`)})}},[O,x,S,h,k]);function j(e){if(!O)return;_(O[e])&&URL.revokeObjectURL(O[e].preview);let t=O.filter((t,n)=>n!==e);k(t),n?.(t)}s(()=>()=>{O&&O.forEach(e=>{_(e)&&URL.revokeObjectURL(e.preview)})},[]);let M=C||(O?.length??0)>=x;return d(`div`,{className:`relative flex w-full flex-col gap-6`,children:[u(f,{onDrop:A,accept:y,maxSize:b,maxFiles:x,multiple:x>1||S,disabled:M,children:({getRootProps:e,getInputProps:t,isDragActive:n})=>d(`div`,{...e(),className:c(`group`,`border-border-weak`,`hover:bg-border-weak/20`,`relative grid h-52 w-full cursor-pointer place-items-center rounded-lg border-2 border-dashed px-5 py-2.5 text-center transition`,`ring-offset-background`,`focus-visible:ring-primary-weak`,`focus-visible:ring-2`,`focus-visible:ring-offset-2`,`focus-visible:outline-hidden`,n&&`border-border-primary-strong bg-border-weak/40`,M&&`pointer-events-none opacity-60`,E),...D,children:[u(`input`,{...t()}),n?d(`div`,{className:`flex flex-col items-center justify-center gap-4 sm:px-5`,children:[u(`div`,{className:`rounded-full border border-dashed p-3`,children:u(a,{className:`text-text-positive-muted size-7`,"aria-hidden":`true`})}),u(`p`,{className:`text-text-positive-muted font-medium`,children:`Drop the files here`})]}):d(`div`,{className:`flex flex-col items-center justify-center gap-4 sm:px-5`,children:[u(`div`,{className:`rounded-full border border-dashed p-3`,children:u(a,{size:T||24,className:`text-muted-foreground`,"aria-hidden":`true`})}),w&&d(`div`,{className:`flex flex-col gap-px`,children:[d(`p`,{className:`text-text-positive-weak text-xs font-medium`,children:[`Drag `,`'n'`,` drop files here, or click to select files`]}),d(`p`,{className:`text-text-positive-muted text-xs`,children:[`You can upload`,x>1?` ${x===1/0?`multiple`:x}
|
|
2
|
-
files (up to ${l(b)} each)`:` a file with ${l(b)}`]})]})]})]})}),O?.length?d(`div`,{className:`h-fit w-full overflow-y-auto`,children:[d(`div`,{className:`flex items-center justify-between px-3 py-2.5`,children:[d(`div`,{className:`text-text-positive-weak flex items-center gap-1`,children:[u(r,{size:16,"aria-hidden":`true`}),d(`p`,{className:`text-sm`,children:[`Ảnh đã tải lên (`,O.length,`)`]})]}),d(`button`,{className:`hover:text-text-positive text-text-positive-muted flex cursor-pointer items-center gap-1 transition-colors duration-200`,onClick:()=>{O&&(O.forEach(e=>{_(e)&&URL.revokeObjectURL(e.preview)}),k([]),n?.([]))},children:[u(i,{size:16,"aria-hidden":`true`}),u(`p`,{className:`text-sm`,children:`Xóa tất cả`})]})]}),u(`div`,{className:`flex flex-col gap-2.5`,children:O?.map((e,t)=>u(g,{file:e,onRemove:()=>j(t),progress:v?.[e.name]},t))})]}):null]})}function g({file:n,progress:r,onRemove:a}){return d(`div`,{className:`border-border-weak hover:border-border relative flex items-center gap-4 rounded-md border py-2 pr-3 pl-2 shadow-xs transition-colors`,children:[d(`div`,{className:`flex flex-1 gap-2.5`,children:[_(n)?u(v,{file:n}):null,d(`div`,{className:`flex w-full flex-col gap-2`,children:[d(`div`,{className:`flex flex-col gap-y-0.5`,children:[u(`p`,{className:`text-text-positive line-clamp-1 text-sm`,children:n.name}),u(`p`,{className:`text-text-positive-muted text-xs`,children:l(n.size)})]}),r?u(t,{value:r}):null]})]}),u(`div`,{className:`flex items-center gap-2`,children:d(e,{type:`button`,variant:`ghost`,color:`secondary`,size:`icon`,className:`size-7`,onClick:a,children:[u(i,{size:16,className:`text-text-positive-muted`,"aria-hidden":`true`}),u(`span`,{className:`sr-only`,children:`Remove file`})]})})]})}function _(e){return`preview`in e&&typeof e.preview==`string`}function v({file:e}){return e.type.startsWith(`image/`)?u(`img`,{src:e.preview,className:`border-border aspect-square size-10 shrink-0 rounded border object-cover object-top shadow-sm`}):u(n,{className:`text-text-positive-muted size-10 border`,"aria-hidden":`true`})}export{h as t};
|
|
3
|
-
//# sourceMappingURL=file-uploader-BTWXTBeQ.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-uploader-BTWXTBeQ.mjs","names":[],"sources":["../packages/components/ui/file-uploader.tsx"],"sourcesContent":["'use client';\nimport { useCallback, useEffect } from 'react';\nimport Dropzone, { type DropzoneProps, type FileRejection } from 'react-dropzone';\nimport { useControllableState } from '@customafk/react-toolkit/hooks/useControllableState';\nimport { cn, formatBytes } from '@customafk/react-toolkit/utils';\n\nimport { FileText, Image, Trash2, Upload } from 'lucide-react';\nimport { toast } from 'sonner';\n\nimport { Button } from '@/components/ui/button';\nimport { Progress } from '@/components/ui/progress';\n\n/**\n * Props for the FileUploader component.\n *\n * @example\n * ```tsx\n * import { FileUploader } from '@customafk/lunas-ui/ui/file-uploader';\n *\n * <FileUploader\n * accept={{ 'image/*': [] }}\n * maxSize={1024 * 1024 * 5}\n * maxFileCount={3}\n * multiple\n * onUpload={async (files) => { await uploadFiles(files); }}\n * />\n * ```\n */\ninterface FileUploaderProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Value of the uploader.\n * @type File[]\n * @default undefined\n * @example value={files}\n */\n value?: File[];\n\n /**\n * Function to be called when the value changes.\n * @type (files: File[]) => void\n * @default undefined\n * @example onValueChange={(files) => setFiles(files)}\n */\n onValueChange?: (files: File[]) => void;\n\n /**\n * Function to be called when files are uploaded.\n * @type (files: File[]) => Promise<void>\n * @default undefined\n * @example onUpload={(files) => uploadFiles(files)}\n */\n onUpload?: (files: File[]) => Promise<void>;\n\n /**\n * Progress of the uploaded files.\n * @type Record<string, number> | undefined\n * @default undefined\n * @example progresses={{ \"file1.png\": 50 }}\n */\n progresses?: Record<string, number>;\n\n /**\n * Accepted file types for the uploader.\n * @type { [key: string]: string[]}\n * @default\n * ```ts\n * { \"image/*\": [] }\n * ```\n * @example accept={[\"image/png\", \"image/jpeg\"]}\n */\n accept?: DropzoneProps['accept'];\n\n /**\n * Maximum file size for the uploader.\n * @type number | undefined\n * @default 1024 * 1024 * 2 // 2MB\n * @example maxSize={1024 * 1024 * 2} // 2MB\n */\n maxSize?: DropzoneProps['maxSize'];\n\n /**\n * Maximum number of files for the uploader.\n * @type number | undefined\n * @default 1\n * @example maxFileCount={4}\n */\n maxFileCount?: DropzoneProps['maxFiles'];\n\n /**\n * Whether the uploader should accept multiple files.\n * @type boolean\n * @default false\n * @example multiple\n */\n multiple?: boolean;\n\n /**\n * Whether the uploader is disabled.\n * @type boolean\n * @default false\n * @example disabled\n */\n disabled?: boolean;\n\n /**\n * Whether to show the instructional drag-and-drop text inside the drop zone.\n * @default true\n */\n showText?: boolean;\n /** Size in pixels for the upload icon. */\n iconSize?: number;\n}\n\n/**\n * A drag-and-drop file upload zone that manages file selection, validation, preview generation, and optional async upload with progress tracking.\n */\nexport function FileUploader(props: FileUploaderProps) {\n const {\n value: valueProp,\n onValueChange,\n onUpload,\n progresses,\n accept = {\n 'image/*': [],\n },\n maxSize = 1024 * 1024 * 2,\n maxFileCount = 1,\n multiple = false,\n disabled = false,\n showText = true,\n iconSize,\n className,\n ...dropzoneProps\n } = props;\n\n const [files, setFiles] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n });\n\n const onDrop = useCallback(\n (acceptedFiles: File[], rejectedFiles: FileRejection[]) => {\n if (!multiple && maxFileCount === 1 && acceptedFiles.length > 1) {\n toast.error('Cannot upload more than 1 file at a time');\n\n return;\n }\n\n if ((files?.length ?? 0) + acceptedFiles.length > maxFileCount) {\n toast.error(`Cannot upload more than ${maxFileCount} files`);\n return;\n }\n\n const newFiles = acceptedFiles.map(file =>\n Object.assign(file, {\n preview: URL.createObjectURL(file),\n })\n );\n\n const updatedFiles = files ? [...files, ...newFiles] : newFiles;\n\n setFiles(updatedFiles);\n\n if (rejectedFiles.length > 0) {\n rejectedFiles.forEach(({ file }) => {\n toast.error(`File ${file.name} was rejected`);\n });\n }\n\n if (onUpload && updatedFiles.length > 0 && updatedFiles.length <= maxFileCount) {\n const target = updatedFiles.length > 0 ? `${updatedFiles.length} files` : `file`;\n\n onUpload(updatedFiles).then(() => {\n setFiles([]);\n toast(`${target} uploaded`);\n });\n }\n },\n\n [files, maxFileCount, multiple, onUpload, setFiles]\n );\n\n function onRemove(index: number) {\n if (!files) return;\n\n if (isFileWithPreview(files[index])) {\n URL.revokeObjectURL(files[index].preview);\n }\n\n const newFiles = files.filter((_, i) => i !== index);\n setFiles(newFiles);\n onValueChange?.(newFiles);\n }\n\n // Revoke preview url when component unmounts\n useEffect(() => {\n return () => {\n if (!files) return;\n files.forEach(file => {\n if (isFileWithPreview(file)) {\n URL.revokeObjectURL(file.preview);\n }\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const isDisabled = disabled || (files?.length ?? 0) >= maxFileCount;\n\n return (\n <div className=\"relative flex w-full flex-col gap-6\">\n <Dropzone onDrop={onDrop} accept={accept} maxSize={maxSize} maxFiles={maxFileCount} multiple={maxFileCount > 1 || multiple} disabled={isDisabled}>\n {({ getRootProps, getInputProps, isDragActive }) => (\n <div\n {...getRootProps()}\n className={cn(\n 'group',\n 'border-border-weak',\n 'hover:bg-border-weak/20',\n 'relative grid h-52 w-full cursor-pointer place-items-center rounded-lg border-2 border-dashed px-5 py-2.5 text-center transition',\n 'ring-offset-background',\n 'focus-visible:ring-primary-weak',\n 'focus-visible:ring-2',\n 'focus-visible:ring-offset-2',\n 'focus-visible:outline-hidden',\n isDragActive && 'border-border-primary-strong bg-border-weak/40',\n isDisabled && 'pointer-events-none opacity-60',\n className\n )}\n {...dropzoneProps}\n >\n <input {...getInputProps()} />\n {isDragActive ? (\n <div className=\"flex flex-col items-center justify-center gap-4 sm:px-5\">\n <div className=\"rounded-full border border-dashed p-3\">\n <Upload className=\"text-text-positive-muted size-7\" aria-hidden=\"true\" />\n </div>\n <p className=\"text-text-positive-muted font-medium\">Drop the files here</p>\n </div>\n ) : (\n <div className=\"flex flex-col items-center justify-center gap-4 sm:px-5\">\n <div className=\"rounded-full border border-dashed p-3\">\n <Upload size={iconSize || 24} className=\"text-muted-foreground\" aria-hidden=\"true\" />\n </div>\n {showText && (\n <div className=\"flex flex-col gap-px\">\n <p className=\"text-text-positive-weak text-xs font-medium\">Drag {`'n'`} drop files here, or click to select files</p>\n <p className=\"text-text-positive-muted text-xs\">\n You can upload\n {maxFileCount > 1\n ? ` ${maxFileCount === Infinity ? 'multiple' : maxFileCount}\n files (up to ${formatBytes(maxSize)} each)`\n : ` a file with ${formatBytes(maxSize)}`}\n </p>\n </div>\n )}\n </div>\n )}\n </div>\n )}\n </Dropzone>\n {files?.length ? (\n <div className=\"h-fit w-full overflow-y-auto\">\n <div className=\"flex items-center justify-between px-3 py-2.5\">\n <div className=\"text-text-positive-weak flex items-center gap-1\">\n <Image size={16} aria-hidden=\"true\" />\n <p className=\"text-sm\">Ảnh đã tải lên ({files.length})</p>\n </div>\n <button\n className=\"hover:text-text-positive text-text-positive-muted flex cursor-pointer items-center gap-1 transition-colors duration-200\"\n onClick={() => {\n if (!files) return;\n files.forEach(file => {\n if (!isFileWithPreview(file)) return;\n URL.revokeObjectURL(file.preview);\n });\n setFiles([]);\n onValueChange?.([]);\n }}\n >\n <Trash2 size={16} aria-hidden=\"true\" />\n <p className=\"text-sm\">Xóa tất cả</p>\n </button>\n </div>\n <div className=\"flex flex-col gap-2.5\">\n {files?.map((file, index) => (\n <FileCard key={index} file={file} onRemove={() => onRemove(index)} progress={progresses?.[file.name]} />\n ))}\n </div>\n </div>\n ) : null}\n </div>\n );\n}\n\ninterface FileCardProps {\n file: File;\n onRemove: () => void;\n progress?: number;\n}\n\nfunction FileCard({ file, progress, onRemove }: FileCardProps) {\n return (\n <div className=\"border-border-weak hover:border-border relative flex items-center gap-4 rounded-md border py-2 pr-3 pl-2 shadow-xs transition-colors\">\n <div className=\"flex flex-1 gap-2.5\">\n {isFileWithPreview(file) ? <FilePreview file={file} /> : null}\n <div className=\"flex w-full flex-col gap-2\">\n <div className=\"flex flex-col gap-y-0.5\">\n <p className=\"text-text-positive line-clamp-1 text-sm\">{file.name}</p>\n <p className=\"text-text-positive-muted text-xs\">{formatBytes(file.size)}</p>\n </div>\n {progress ? <Progress value={progress} /> : null}\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n <Button type=\"button\" variant=\"ghost\" color=\"secondary\" size=\"icon\" className=\"size-7\" onClick={onRemove}>\n <Trash2 size={16} className=\"text-text-positive-muted\" aria-hidden=\"true\" />\n <span className=\"sr-only\">Remove file</span>\n </Button>\n </div>\n </div>\n );\n}\n\nfunction isFileWithPreview(file: File): file is File & { preview: string } {\n return 'preview' in file && typeof file.preview === 'string';\n}\n\ninterface FilePreviewProps {\n file: File & { preview: string };\n}\n\nfunction FilePreview({ file }: FilePreviewProps) {\n if (file.type.startsWith('image/')) {\n return <img src={file.preview} className=\"border-border aspect-square size-10 shrink-0 rounded border object-cover object-top shadow-sm\" />;\n }\n\n return <FileText className=\"text-text-positive-muted size-10 border\" aria-hidden=\"true\" />;\n}\n"],"mappings":"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"}
|