@customafk/lunas-ui 0.2.41 → 0.2.43
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-2JBj0aPL.d.mts +88 -0
- package/dist/alert-B2PaDJp6.cjs +2 -0
- package/dist/alert-B2PaDJp6.cjs.map +1 -0
- package/dist/alert-BbvPwf2x.mjs +2 -0
- package/dist/alert-BbvPwf2x.mjs.map +1 -0
- package/dist/alert-Cm6RAKdp.d.cts +88 -0
- package/dist/avatar-TyOphzGo.cjs +2 -0
- package/dist/avatar-TyOphzGo.cjs.map +1 -0
- package/dist/avatar-fltdRVsJ.mjs +2 -0
- package/dist/avatar-fltdRVsJ.mjs.map +1 -0
- package/dist/badge-CDGBGq8X.mjs +2 -0
- package/dist/badge-CDGBGq8X.mjs.map +1 -0
- package/dist/badge-CnR78VnH.d.mts +42 -0
- package/dist/badge-KW7xu5Ca.cjs +2 -0
- package/dist/badge-KW7xu5Ca.cjs.map +1 -0
- package/dist/badge-ic9HOAa7.d.cts +42 -0
- package/dist/button--eH0xdF-.d.mts +174 -0
- package/dist/button-C--DAN1D.cjs +2 -0
- package/dist/button-C--DAN1D.cjs.map +1 -0
- package/dist/button-CCVJTHBI.mjs +2 -0
- package/dist/button-CCVJTHBI.mjs.map +1 -0
- package/dist/button-DserH5cQ.d.cts +174 -0
- package/dist/button.variants-4kw6plrv.cjs +2 -0
- package/dist/button.variants-4kw6plrv.cjs.map +1 -0
- package/dist/button.variants-DkMqWB8G.mjs +2 -0
- package/dist/button.variants-DkMqWB8G.mjs.map +1 -0
- package/dist/calendar-4weBDnXz.cjs +2 -0
- package/dist/calendar-4weBDnXz.cjs.map +1 -0
- package/dist/calendar-R866yyd1.mjs +2 -0
- package/dist/calendar-R866yyd1.mjs.map +1 -0
- package/dist/cards/grid-product-card.cjs +1 -1
- package/dist/cards/grid-product-card.cjs.map +1 -1
- package/dist/cards/grid-product-card.d.mts +37 -0
- package/dist/cards/grid-product-card.mjs +2 -0
- package/dist/cards/grid-product-card.mjs.map +1 -0
- package/dist/cards/product-card.cjs +1 -1
- package/dist/cards/product-card.cjs.map +1 -1
- package/dist/cards/product-card.d.mts +37 -0
- package/dist/cards/product-card.mjs +2 -0
- package/dist/cards/product-card.mjs.map +1 -0
- package/dist/cards/simple-card.cjs +1 -1
- package/dist/cards/simple-card.d.mts +35 -0
- package/dist/cards/simple-card.mjs +2 -0
- package/dist/cards/simple-card.mjs.map +1 -0
- package/dist/checkbox-Cat3i08X.mjs +2 -0
- package/dist/checkbox-Cat3i08X.mjs.map +1 -0
- package/dist/checkbox-Dsq-MSbH.cjs +2 -0
- package/dist/checkbox-Dsq-MSbH.cjs.map +1 -0
- package/dist/chunk-350yNsax.cjs +1 -0
- package/dist/close-Dlo1bI8x.cjs +2 -0
- package/dist/close-Dlo1bI8x.cjs.map +1 -0
- package/dist/close-_UHFeiLS.mjs +2 -0
- package/dist/close-_UHFeiLS.mjs.map +1 -0
- package/dist/cms-layout-BCH4NroR.cjs +2 -0
- package/dist/cms-layout-BCH4NroR.cjs.map +1 -0
- package/dist/cms-layout-DkCR1AfG.mjs +2 -0
- package/dist/cms-layout-DkCR1AfG.mjs.map +1 -0
- package/dist/command-CsP8a1Un.cjs +2 -0
- package/dist/command-CsP8a1Un.cjs.map +1 -0
- package/dist/command-D6_CSbwJ.mjs +2 -0
- package/dist/command-D6_CSbwJ.mjs.map +1 -0
- package/dist/data-display/country.cjs +1 -1
- package/dist/data-display/country.cjs.map +1 -1
- package/dist/data-display/country.d.cts +1 -1
- package/dist/data-display/country.d.mts +22 -0
- package/dist/data-display/country.mjs +2 -0
- package/dist/data-display/country.mjs.map +1 -0
- package/dist/data-display/data-list.cjs +1 -1
- package/dist/data-display/data-list.d.mts +43 -0
- package/dist/data-display/data-list.mjs +2 -0
- package/dist/data-display/data-list.mjs.map +1 -0
- package/dist/data-display/date-tooltip.cjs +1 -1
- package/dist/data-display/date-tooltip.cjs.map +1 -1
- package/dist/data-display/date-tooltip.d.mts +19 -0
- package/dist/data-display/date-tooltip.mjs +2 -0
- package/dist/data-display/date-tooltip.mjs.map +1 -0
- package/dist/data-display/date.cjs +1 -2
- package/dist/data-display/date.d.mts +39 -0
- package/dist/data-display/date.mjs +1 -0
- package/dist/data-display/empty.cjs +1 -1
- package/dist/data-display/empty.d.mts +21 -0
- package/dist/data-display/empty.mjs +2 -0
- package/dist/data-display/empty.mjs.map +1 -0
- package/dist/data-display/name.cjs +1 -1
- package/dist/data-display/name.cjs.map +1 -1
- package/dist/data-display/name.d.mts +19 -0
- package/dist/data-display/name.mjs +2 -0
- package/dist/data-display/name.mjs.map +1 -0
- package/dist/data-display/phone-number.cjs +1 -1
- package/dist/data-display/phone-number.cjs.map +1 -1
- package/dist/data-display/phone-number.d.mts +19 -0
- package/dist/data-display/phone-number.mjs +2 -0
- package/dist/data-display/phone-number.mjs.map +1 -0
- package/dist/data-display/role-badge.cjs +1 -1
- package/dist/data-display/role-badge.cjs.map +1 -1
- package/dist/data-display/role-badge.d.cts +1 -1
- package/dist/data-display/role-badge.d.mts +22 -0
- package/dist/data-display/role-badge.mjs +2 -0
- package/dist/data-display/role-badge.mjs.map +1 -0
- package/dist/data-display/statistic.cjs +1 -2
- package/dist/data-display/statistic.d.cts +3 -3
- package/dist/data-display/statistic.d.mts +57 -0
- package/dist/data-display/statistic.mjs +1 -0
- package/dist/data-display/user.cjs +1 -2
- package/dist/data-display/user.d.mts +23 -0
- package/dist/data-display/user.mjs +1 -0
- package/dist/date-D4NVl6C9.cjs +2 -0
- package/dist/date-D4NVl6C9.cjs.map +1 -0
- package/dist/date-fY3sUcLp.mjs +2 -0
- package/dist/date-fY3sUcLp.mjs.map +1 -0
- package/dist/dialog-BigPrWIj.cjs +2 -0
- package/dist/dialog-BigPrWIj.cjs.map +1 -0
- package/dist/dialog-CLDnvNH_.mjs +2 -0
- package/dist/dialog-CLDnvNH_.mjs.map +1 -0
- package/dist/dialog-CYHT9WNs.d.cts +90 -0
- package/dist/dialog-pWSVE0gd.d.mts +90 -0
- package/dist/dialogs/confirm-dialog.cjs +1 -1
- package/dist/dialogs/confirm-dialog.d.mts +142 -0
- package/dist/dialogs/confirm-dialog.mjs +2 -0
- package/dist/dialogs/confirm-dialog.mjs.map +1 -0
- package/dist/dialogs/detail-dialog/components/sidebar.cjs +1 -1
- package/dist/dialogs/detail-dialog/components/sidebar.d.cts +26 -26
- package/dist/dialogs/detail-dialog/components/sidebar.d.mts +209 -0
- package/dist/dialogs/detail-dialog/components/sidebar.mjs +1 -0
- package/dist/dialogs/detail-dialog/index.cjs +1 -1
- package/dist/dialogs/detail-dialog/index.cjs.map +1 -1
- package/dist/dialogs/detail-dialog/index.d.mts +45 -0
- package/dist/dialogs/detail-dialog/index.mjs +2 -0
- package/dist/dialogs/detail-dialog/index.mjs.map +1 -0
- package/dist/dialogs/error-dialog.cjs +1 -1
- package/dist/dialogs/error-dialog.d.mts +25 -0
- package/dist/dialogs/error-dialog.mjs +2 -0
- package/dist/dialogs/error-dialog.mjs.map +1 -0
- package/dist/dialogs/loading-dialog.cjs +1 -1
- package/dist/dialogs/loading-dialog.cjs.map +1 -1
- package/dist/dialogs/loading-dialog.d.mts +21 -0
- package/dist/dialogs/loading-dialog.mjs +2 -0
- package/dist/dialogs/loading-dialog.mjs.map +1 -0
- package/dist/dist-Cx5ufCdr.cjs +2 -0
- package/dist/dist-Cx5ufCdr.cjs.map +1 -0
- package/dist/dist-DVrfqn8H.mjs +2 -0
- package/dist/dist-DVrfqn8H.mjs.map +1 -0
- package/dist/drawer-BB8BZzDG.cjs +2 -0
- package/dist/drawer-BB8BZzDG.cjs.map +1 -0
- package/dist/drawer-CMD7JWH8.mjs +2 -0
- package/dist/drawer-CMD7JWH8.mjs.map +1 -0
- package/dist/dropdown-menu-BWhiVsEf.mjs +2 -0
- package/dist/dropdown-menu-BWhiVsEf.mjs.map +1 -0
- package/dist/dropdown-menu-CVh520yG.cjs +2 -0
- package/dist/dropdown-menu-CVh520yG.cjs.map +1 -0
- package/dist/features/descriptions/index.cjs +1 -1
- package/dist/features/descriptions/index.cjs.map +1 -1
- package/dist/features/descriptions/index.d.cts +3 -3
- package/dist/features/descriptions/index.d.mts +246 -0
- package/dist/features/descriptions/index.mjs +2 -0
- 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 +2 -2
- package/dist/features/search-modal/index.d.mts +17 -0
- package/dist/features/search-modal/index.mjs +1 -0
- package/dist/features/tables/index.cjs +1 -1
- package/dist/features/tables/index.d.cts +1 -1
- package/dist/features/tables/index.d.mts +3 -0
- package/dist/features/tables/index.mjs +1 -0
- 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 +2 -0
- package/dist/features/tanstack-form/index.mjs +1 -0
- package/dist/features/text-editor/index.cjs +1 -1
- package/dist/features/text-editor/index.d.cts +1 -1
- package/dist/features/text-editor/index.d.mts +2 -0
- package/dist/features/text-editor/index.mjs +1 -0
- package/dist/field-BrlETeXX.cjs +2 -0
- package/dist/field-BrlETeXX.cjs.map +1 -0
- package/dist/field-dYemS0hQ.mjs +2 -0
- package/dist/field-dYemS0hQ.mjs.map +1 -0
- package/dist/flex-B6YSJzGe.mjs +2 -0
- package/dist/flex-B6YSJzGe.mjs.map +1 -0
- package/dist/flex-DmWmOBn5.cjs +2 -0
- package/dist/flex-DmWmOBn5.cjs.map +1 -0
- package/dist/heading-De4Pn3mZ.mjs +2 -0
- package/dist/heading-De4Pn3mZ.mjs.map +1 -0
- package/dist/heading-tGTqk3pA.cjs +2 -0
- package/dist/heading-tGTqk3pA.cjs.map +1 -0
- package/dist/image-D7OZ13Ib.mjs +2 -0
- package/dist/image-D7OZ13Ib.mjs.map +1 -0
- package/dist/image-W_Yb0xTB.cjs +2 -0
- package/dist/image-W_Yb0xTB.cjs.map +1 -0
- package/dist/index-BsWsCPh8.d.cts +1093 -0
- package/dist/index-CMqwTAAq.d.mts +2348 -0
- package/dist/index-Cm62M0Ft.d.mts +90 -0
- package/dist/index-DSciiDhn.d.cts +2348 -0
- package/dist/index-DXU6DwLg.d.mts +1093 -0
- package/dist/index-DiW-62hY.d.mts +85 -0
- package/dist/index-FIl1Am8j.d.cts +85 -0
- package/dist/index-KO98y6L0.d.cts +90 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +11 -11
- package/dist/index.d.mts +93 -0
- package/dist/index.mjs +1 -0
- package/dist/input-B_ucx08i.d.cts +44 -0
- package/dist/input-Drm_rLe2.d.mts +44 -0
- package/dist/input-NJP2wQOm.mjs +2 -0
- package/dist/input-NJP2wQOm.mjs.map +1 -0
- package/dist/input-WJ0DLHTR.cjs +2 -0
- package/dist/input-WJ0DLHTR.cjs.map +1 -0
- package/dist/label-CC6fXVbC.cjs +2 -0
- package/dist/label-CC6fXVbC.cjs.map +1 -0
- package/dist/label-CUCpwS5D.mjs +2 -0
- package/dist/label-CUCpwS5D.mjs.map +1 -0
- package/dist/layouts/cms-layout/index.cjs +1 -1
- package/dist/layouts/cms-layout/index.d.cts +1 -1
- package/dist/layouts/cms-layout/index.d.mts +2 -0
- package/dist/layouts/cms-layout/index.mjs +1 -0
- package/dist/layouts/flex.cjs +1 -1
- package/dist/layouts/flex.d.cts +5 -5
- package/dist/layouts/flex.d.mts +117 -0
- package/dist/layouts/flex.mjs +1 -0
- package/dist/layouts/grid.cjs +1 -1
- package/dist/layouts/grid.d.mts +19 -0
- package/dist/layouts/grid.mjs +2 -0
- package/dist/layouts/grid.mjs.map +1 -0
- package/dist/layouts/payment-layout/index.cjs +1 -1
- package/dist/layouts/payment-layout/index.d.mts +74 -0
- package/dist/layouts/payment-layout/index.mjs +1 -0
- package/dist/pages/FeatureDeveloping.cjs +1 -1
- package/dist/pages/FeatureDeveloping.cjs.map +1 -1
- package/dist/pages/FeatureDeveloping.d.cts +2 -2
- package/dist/pages/FeatureDeveloping.d.mts +43 -0
- package/dist/pages/FeatureDeveloping.mjs +2 -0
- package/dist/pages/FeatureDeveloping.mjs.map +1 -0
- package/dist/pages/FeatureFixing.cjs +1 -1
- package/dist/pages/FeatureFixing.cjs.map +1 -1
- package/dist/pages/FeatureFixing.d.cts +2 -2
- package/dist/pages/FeatureFixing.d.mts +43 -0
- package/dist/pages/FeatureFixing.mjs +2 -0
- package/dist/pages/FeatureFixing.mjs.map +1 -0
- package/dist/pages/LoginPage.cjs +1 -1
- package/dist/pages/LoginPage.cjs.map +1 -1
- package/dist/pages/LoginPage.d.cts +2 -2
- package/dist/pages/LoginPage.d.mts +55 -0
- package/dist/pages/LoginPage.mjs +2 -0
- package/dist/pages/LoginPage.mjs.map +1 -0
- package/dist/pages/NotAuthorized.cjs +1 -1
- package/dist/pages/NotAuthorized.cjs.map +1 -1
- package/dist/pages/NotAuthorized.d.cts +2 -2
- package/dist/pages/NotAuthorized.d.mts +43 -0
- package/dist/pages/NotAuthorized.mjs +2 -0
- package/dist/pages/NotAuthorized.mjs.map +1 -0
- package/dist/pages/NotFound.cjs +1 -1
- package/dist/pages/NotFound.cjs.map +1 -1
- package/dist/pages/NotFound.d.cts +2 -2
- package/dist/pages/NotFound.d.mts +43 -0
- package/dist/pages/NotFound.mjs +2 -0
- package/dist/pages/NotFound.mjs.map +1 -0
- package/dist/pages/RegisterPage.cjs +1 -1
- package/dist/pages/RegisterPage.cjs.map +1 -1
- package/dist/pages/RegisterPage.d.cts +2 -2
- package/dist/pages/RegisterPage.d.mts +52 -0
- package/dist/pages/RegisterPage.mjs +2 -0
- package/dist/pages/RegisterPage.mjs.map +1 -0
- package/dist/pages/VerifyEmailPage.cjs +1 -1
- package/dist/pages/VerifyEmailPage.cjs.map +1 -1
- package/dist/pages/VerifyEmailPage.d.cts +2 -2
- package/dist/pages/VerifyEmailPage.d.mts +64 -0
- package/dist/pages/VerifyEmailPage.mjs +2 -0
- package/dist/pages/VerifyEmailPage.mjs.map +1 -0
- package/dist/paragraph-DYLaQtTV.mjs +2 -0
- package/dist/paragraph-DYLaQtTV.mjs.map +1 -0
- package/dist/paragraph-DvTZvbzw.cjs +2 -0
- package/dist/paragraph-DvTZvbzw.cjs.map +1 -0
- package/dist/payment-layout-DrQ0kZPX.mjs +2 -0
- package/dist/payment-layout-DrQ0kZPX.mjs.map +1 -0
- package/dist/payment-layout-DyILfyVG.cjs +2 -0
- package/dist/payment-layout-DyILfyVG.cjs.map +1 -0
- package/dist/popover-C8rcemA3.mjs +2 -0
- package/dist/popover-C8rcemA3.mjs.map +1 -0
- package/dist/popover-DBsC8Ltp.cjs +2 -0
- package/dist/popover-DBsC8Ltp.cjs.map +1 -0
- package/dist/progress-CLeM0e7Z.mjs +2 -0
- package/dist/progress-CLeM0e7Z.mjs.map +1 -0
- package/dist/progress-gvBqNiHp.cjs +2 -0
- package/dist/progress-gvBqNiHp.cjs.map +1 -0
- package/dist/radio-group-Y9bhdr55.mjs +2 -0
- package/dist/radio-group-Y9bhdr55.mjs.map +1 -0
- package/dist/radio-group-_TdMkv8w.cjs +2 -0
- package/dist/radio-group-_TdMkv8w.cjs.map +1 -0
- package/dist/resizable-CpCaSCFB.mjs +2 -0
- package/dist/resizable-CpCaSCFB.mjs.map +1 -0
- package/dist/resizable-sgpaHAb8.cjs +2 -0
- package/dist/resizable-sgpaHAb8.cjs.map +1 -0
- package/dist/search-modal-B-pzGcfP.cjs +2 -0
- package/dist/search-modal-B-pzGcfP.cjs.map +1 -0
- package/dist/search-modal-Bn-GOOCy.mjs +2 -0
- package/dist/search-modal-Bn-GOOCy.mjs.map +1 -0
- package/dist/select-CWLQHh8x.cjs +2 -0
- package/dist/select-CWLQHh8x.cjs.map +1 -0
- package/dist/select-LlPCZFSF.mjs +2 -0
- package/dist/select-LlPCZFSF.mjs.map +1 -0
- package/dist/separator-D3Gmkxzq.mjs +2 -0
- package/dist/separator-D3Gmkxzq.mjs.map +1 -0
- package/dist/separator-KuymG9g0.cjs +2 -0
- package/dist/separator-KuymG9g0.cjs.map +1 -0
- package/dist/sheet-BFlIfNaA.mjs +2 -0
- package/dist/sheet-BFlIfNaA.mjs.map +1 -0
- package/dist/sheet-CvKSi0UC.cjs +2 -0
- package/dist/sheet-CvKSi0UC.cjs.map +1 -0
- package/dist/sidebar-ChtCyu-n.mjs +2 -0
- package/dist/sidebar-ChtCyu-n.mjs.map +1 -0
- package/dist/sidebar-D5J2gcTw.cjs +2 -0
- package/dist/sidebar-D5J2gcTw.cjs.map +1 -0
- package/dist/skeleton-C51IdOfK.mjs +2 -0
- package/dist/skeleton-C51IdOfK.mjs.map +1 -0
- package/dist/skeleton-CX1USu1w.cjs +2 -0
- package/dist/skeleton-CX1USu1w.cjs.map +1 -0
- package/dist/spinner-CFxorYEt.cjs +2 -0
- package/dist/spinner-CFxorYEt.cjs.map +1 -0
- package/dist/spinner-eClTgHjk.mjs +2 -0
- package/dist/spinner-eClTgHjk.mjs.map +1 -0
- package/dist/statistic-DDXilD7q.cjs +2 -0
- package/dist/statistic-DDXilD7q.cjs.map +1 -0
- package/dist/statistic-cwLwcukn.mjs +2 -0
- package/dist/statistic-cwLwcukn.mjs.map +1 -0
- package/dist/switch-BP7EPatj.mjs +2 -0
- package/dist/switch-BP7EPatj.mjs.map +1 -0
- package/dist/switch-DVfOV7wP.cjs +2 -0
- package/dist/switch-DVfOV7wP.cjs.map +1 -0
- package/dist/systems/google.cjs +1 -1
- package/dist/systems/google.d.mts +53 -0
- package/dist/systems/google.mjs +2 -0
- package/dist/systems/google.mjs.map +1 -0
- package/dist/tables-CFrsk2lM.mjs +4 -0
- package/dist/tables-CFrsk2lM.mjs.map +1 -0
- package/dist/tables-CPKHe3k-.cjs +4 -0
- package/dist/tables-CPKHe3k-.cjs.map +1 -0
- package/dist/tanstack-form-DT1TqIDl.mjs +12 -0
- package/dist/tanstack-form-DT1TqIDl.mjs.map +1 -0
- package/dist/tanstack-form-DatI41wz.cjs +12 -0
- package/dist/tanstack-form-DatI41wz.cjs.map +1 -0
- package/dist/text-editor-5mA7XyaI.mjs +2 -0
- package/dist/text-editor-5mA7XyaI.mjs.map +1 -0
- package/dist/text-editor-CvJN3nSL.cjs +2 -0
- package/dist/text-editor-CvJN3nSL.cjs.map +1 -0
- package/dist/textarea-7HDXcaK9.mjs +2 -0
- package/dist/textarea-7HDXcaK9.mjs.map +1 -0
- package/dist/textarea-Cc9CF8wD.cjs +2 -0
- package/dist/textarea-Cc9CF8wD.cjs.map +1 -0
- package/dist/tooltip-CBdoIzoM.cjs +2 -0
- package/dist/tooltip-CBdoIzoM.cjs.map +1 -0
- package/dist/tooltip-Dxl5Wa8i.mjs +2 -0
- package/dist/tooltip-Dxl5Wa8i.mjs.map +1 -0
- package/dist/types-B5nyTWtO.mjs +2 -0
- package/dist/types-B5nyTWtO.mjs.map +1 -0
- package/dist/types-BD1t0Bj8.cjs +2 -0
- package/dist/types-BD1t0Bj8.cjs.map +1 -0
- package/dist/types-Cc_mLRAn.d.cts +24 -0
- package/dist/types-YLu40dXY.d.mts +24 -0
- package/dist/typography/paragraph.cjs +1 -1
- package/dist/typography/paragraph.d.cts +4 -4
- package/dist/typography/paragraph.d.mts +48 -0
- package/dist/typography/paragraph.mjs +1 -0
- package/dist/typography/title.cjs +1 -1
- package/dist/typography/title.d.mts +43 -0
- package/dist/typography/title.mjs +2 -0
- package/dist/typography/title.mjs.map +1 -0
- package/dist/ui/alert-dialog.cjs +1 -1
- package/dist/ui/alert-dialog.d.cts +12 -12
- package/dist/ui/alert-dialog.d.mts +90 -0
- package/dist/ui/alert-dialog.mjs +2 -0
- 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 +2 -0
- package/dist/ui/alert.mjs +1 -0
- package/dist/ui/aspect-ratio.cjs +1 -1
- package/dist/ui/aspect-ratio.d.cts +2 -2
- package/dist/ui/aspect-ratio.d.mts +24 -0
- package/dist/ui/aspect-ratio.mjs +2 -0
- package/dist/ui/aspect-ratio.mjs.map +1 -0
- package/dist/ui/avatar.cjs +1 -2
- package/dist/ui/avatar.d.cts +4 -4
- package/dist/ui/avatar.d.mts +35 -0
- package/dist/ui/avatar.mjs +1 -0
- package/dist/ui/badge.cjs +1 -2
- package/dist/ui/badge.d.cts +2 -42
- package/dist/ui/badge.d.mts +2 -0
- package/dist/ui/badge.mjs +1 -0
- package/dist/ui/breadcrumb.cjs +1 -1
- package/dist/ui/breadcrumb.cjs.map +1 -1
- package/dist/ui/breadcrumb.d.cts +8 -8
- package/dist/ui/breadcrumb.d.mts +72 -0
- package/dist/ui/breadcrumb.mjs +2 -0
- package/dist/ui/breadcrumb.mjs.map +1 -0
- package/dist/ui/button-group.cjs +1 -1
- package/dist/ui/button-group.cjs.map +1 -1
- package/dist/ui/button-group.d.cts +7 -7
- package/dist/ui/button-group.d.mts +50 -0
- package/dist/ui/button-group.mjs +2 -0
- package/dist/ui/button-group.mjs.map +1 -0
- package/dist/ui/button.cjs +1 -2
- package/dist/ui/button.d.cts +1 -1
- package/dist/ui/button.d.mts +2 -0
- package/dist/ui/button.mjs +1 -0
- package/dist/ui/buttons/add-new.cjs +1 -1
- package/dist/ui/buttons/add-new.cjs.map +1 -1
- package/dist/ui/buttons/add-new.d.mts +17 -0
- package/dist/ui/buttons/add-new.mjs +2 -0
- package/dist/ui/buttons/add-new.mjs.map +1 -0
- package/dist/ui/buttons/edit.cjs +1 -1
- package/dist/ui/buttons/edit.cjs.map +1 -1
- package/dist/ui/buttons/edit.d.mts +17 -0
- package/dist/ui/buttons/edit.mjs +2 -0
- package/dist/ui/buttons/edit.mjs.map +1 -0
- package/dist/ui/buttons/refresh.cjs +1 -1
- package/dist/ui/buttons/refresh.cjs.map +1 -1
- package/dist/ui/buttons/refresh.d.mts +17 -0
- package/dist/ui/buttons/refresh.mjs +2 -0
- package/dist/ui/buttons/refresh.mjs.map +1 -0
- package/dist/ui/buttons/trash.cjs +1 -1
- package/dist/ui/buttons/trash.cjs.map +1 -1
- package/dist/ui/buttons/trash.d.mts +17 -0
- package/dist/ui/buttons/trash.mjs +2 -0
- package/dist/ui/buttons/trash.mjs.map +1 -0
- package/dist/ui/buttons/upload-image.cjs +1 -1
- package/dist/ui/buttons/upload-image.cjs.map +1 -1
- package/dist/ui/buttons/upload-image.d.mts +24 -0
- package/dist/ui/buttons/upload-image.mjs +2 -0
- package/dist/ui/buttons/upload-image.mjs.map +1 -0
- package/dist/ui/calendar.cjs +1 -2
- package/dist/ui/calendar.d.cts +4 -4
- package/dist/ui/calendar.d.mts +45 -0
- package/dist/ui/calendar.mjs +1 -0
- package/dist/ui/card.cjs +1 -1
- package/dist/ui/card.d.cts +8 -8
- package/dist/ui/card.d.mts +63 -0
- package/dist/ui/card.mjs +2 -0
- package/dist/ui/card.mjs.map +1 -0
- package/dist/ui/carousel.cjs +1 -1
- package/dist/ui/carousel.cjs.map +1 -1
- package/dist/ui/carousel.d.cts +7 -7
- package/dist/ui/carousel.d.mts +71 -0
- package/dist/ui/carousel.mjs +2 -0
- package/dist/ui/carousel.mjs.map +1 -0
- package/dist/ui/checkbox.cjs +1 -2
- package/dist/ui/checkbox.d.cts +2 -2
- package/dist/ui/checkbox.d.mts +26 -0
- package/dist/ui/checkbox.mjs +1 -0
- package/dist/ui/collapsible.cjs +1 -1
- package/dist/ui/collapsible.d.cts +4 -4
- package/dist/ui/collapsible.d.mts +34 -0
- package/dist/ui/collapsible.mjs +2 -0
- package/dist/ui/collapsible.mjs.map +1 -0
- package/dist/ui/command.cjs +1 -2
- package/dist/ui/command.d.cts +11 -11
- package/dist/ui/command.d.mts +89 -0
- package/dist/ui/command.mjs +1 -0
- package/dist/ui/context-menu.cjs +1 -1
- package/dist/ui/context-menu.d.cts +16 -16
- package/dist/ui/context-menu.d.mts +125 -0
- package/dist/ui/context-menu.mjs +2 -0
- package/dist/ui/context-menu.mjs.map +1 -0
- package/dist/ui/dialog.cjs +1 -2
- package/dist/ui/dialog.d.cts +2 -90
- package/dist/ui/dialog.d.mts +2 -0
- package/dist/ui/dialog.mjs +1 -0
- package/dist/ui/drawer.cjs +1 -2
- package/dist/ui/drawer.d.cts +11 -11
- package/dist/ui/drawer.d.mts +72 -0
- package/dist/ui/drawer.mjs +1 -0
- package/dist/ui/dropdown-menu.cjs +1 -2
- package/dist/ui/dropdown-menu.d.cts +16 -16
- package/dist/ui/dropdown-menu.d.mts +127 -0
- package/dist/ui/dropdown-menu.mjs +1 -0
- package/dist/ui/empty.cjs +1 -1
- package/dist/ui/empty.d.cts +9 -9
- package/dist/ui/empty.d.mts +68 -0
- package/dist/ui/empty.mjs +2 -0
- package/dist/ui/empty.mjs.map +1 -0
- package/dist/ui/field.cjs +1 -1
- package/dist/ui/field.d.cts +22 -22
- package/dist/ui/field.d.mts +65 -0
- package/dist/ui/field.mjs +1 -0
- package/dist/ui/file-uploader.cjs +2 -2
- package/dist/ui/file-uploader.cjs.map +1 -1
- package/dist/ui/file-uploader.d.cts +2 -2
- package/dist/ui/file-uploader.d.mts +103 -0
- package/dist/ui/file-uploader.mjs +3 -0
- package/dist/ui/file-uploader.mjs.map +1 -0
- package/dist/ui/form.cjs +1 -1
- package/dist/ui/form.cjs.map +1 -1
- package/dist/ui/form.d.cts +10 -10
- package/dist/ui/form.d.mts +112 -0
- package/dist/ui/form.mjs +2 -0
- package/dist/ui/form.mjs.map +1 -0
- package/dist/ui/hover-card.cjs +1 -1
- package/dist/ui/hover-card.d.cts +4 -4
- package/dist/ui/hover-card.d.mts +37 -0
- package/dist/ui/hover-card.mjs +2 -0
- package/dist/ui/hover-card.mjs.map +1 -0
- package/dist/ui/image.cjs +1 -2
- package/dist/ui/image.d.mts +36 -0
- package/dist/ui/image.mjs +1 -0
- package/dist/ui/input-otp.cjs +1 -1
- package/dist/ui/input-otp.d.cts +5 -5
- package/dist/ui/input-otp.d.mts +59 -0
- package/dist/ui/input-otp.mjs +2 -0
- package/dist/ui/input-otp.mjs.map +1 -0
- package/dist/ui/input.cjs +1 -2
- package/dist/ui/input.d.cts +2 -44
- package/dist/ui/input.d.mts +2 -0
- package/dist/ui/input.mjs +1 -0
- package/dist/ui/inputs/search-input.cjs +1 -1
- package/dist/ui/inputs/search-input.cjs.map +1 -1
- package/dist/ui/inputs/search-input.d.cts +3 -3
- package/dist/ui/inputs/search-input.d.mts +29 -0
- package/dist/ui/inputs/search-input.mjs +2 -0
- package/dist/ui/inputs/search-input.mjs.map +1 -0
- package/dist/ui/item.cjs +1 -1
- package/dist/ui/item.cjs.map +1 -1
- package/dist/ui/item.d.cts +15 -15
- package/dist/ui/item.d.mts +102 -0
- package/dist/ui/item.mjs +2 -0
- package/dist/ui/item.mjs.map +1 -0
- package/dist/ui/label.cjs +1 -2
- package/dist/ui/label.d.cts +2 -2
- package/dist/ui/label.d.mts +24 -0
- package/dist/ui/label.mjs +1 -0
- package/dist/ui/menubar.cjs +1 -1
- package/dist/ui/menubar.d.cts +17 -17
- package/dist/ui/menubar.d.mts +135 -0
- package/dist/ui/menubar.mjs +2 -0
- package/dist/ui/menubar.mjs.map +1 -0
- package/dist/ui/multi-select.cjs +1 -1
- package/dist/ui/multi-select.cjs.map +1 -1
- package/dist/ui/multi-select.d.cts +3 -3
- package/dist/ui/multi-select.d.mts +118 -0
- package/dist/ui/multi-select.mjs +2 -0
- package/dist/ui/multi-select.mjs.map +1 -0
- package/dist/ui/navigation-menu.cjs +1 -1
- package/dist/ui/navigation-menu.d.cts +11 -11
- package/dist/ui/navigation-menu.d.mts +77 -0
- package/dist/ui/navigation-menu.mjs +2 -0
- package/dist/ui/navigation-menu.mjs.map +1 -0
- package/dist/ui/pagination.cjs +1 -1
- package/dist/ui/pagination.d.cts +9 -9
- package/dist/ui/pagination.d.mts +67 -0
- package/dist/ui/pagination.mjs +2 -0
- package/dist/ui/pagination.mjs.map +1 -0
- package/dist/ui/popover.cjs +1 -2
- package/dist/ui/popover.d.cts +6 -6
- package/dist/ui/popover.d.mts +52 -0
- package/dist/ui/popover.mjs +1 -0
- package/dist/ui/progress.cjs +1 -2
- package/dist/ui/progress.d.cts +2 -2
- package/dist/ui/progress.d.mts +23 -0
- package/dist/ui/progress.mjs +1 -0
- package/dist/ui/radio-group.cjs +1 -2
- package/dist/ui/radio-group.d.cts +3 -3
- package/dist/ui/radio-group.d.mts +37 -0
- package/dist/ui/radio-group.mjs +1 -0
- package/dist/ui/resizable.cjs +1 -2
- package/dist/ui/resizable.d.cts +9 -9
- package/dist/ui/resizable.d.mts +63 -0
- package/dist/ui/resizable.mjs +1 -0
- package/dist/ui/scroll-area.cjs +1 -1
- package/dist/ui/scroll-area.d.cts +5 -5
- package/dist/ui/scroll-area.d.mts +37 -0
- package/dist/ui/scroll-area.mjs +2 -0
- package/dist/ui/scroll-area.mjs.map +1 -0
- package/dist/ui/select.cjs +1 -2
- package/dist/ui/select.d.cts +9 -9
- package/dist/ui/select.d.mts +77 -0
- package/dist/ui/select.mjs +1 -0
- package/dist/ui/separator.cjs +1 -2
- package/dist/ui/separator.d.cts +2 -2
- package/dist/ui/separator.d.mts +34 -0
- package/dist/ui/separator.mjs +1 -0
- package/dist/ui/sheet.cjs +1 -2
- package/dist/ui/sheet.d.cts +9 -9
- package/dist/ui/sheet.d.mts +69 -0
- package/dist/ui/sheet.mjs +1 -0
- package/dist/ui/skeleton.cjs +1 -1
- package/dist/ui/skeleton.d.cts +2 -2
- package/dist/ui/skeleton.d.mts +27 -0
- package/dist/ui/skeleton.mjs +1 -0
- package/dist/ui/slider.cjs +1 -1
- package/dist/ui/slider.d.cts +2 -2
- package/dist/ui/slider.d.mts +26 -0
- package/dist/ui/slider.mjs +2 -0
- package/dist/ui/slider.mjs.map +1 -0
- package/dist/ui/sonner.cjs +1 -1
- package/dist/ui/sonner.d.cts +2 -2
- package/dist/ui/sonner.d.mts +24 -0
- package/dist/ui/sonner.mjs +2 -0
- package/dist/ui/sonner.mjs.map +1 -0
- package/dist/ui/spinner.cjs +1 -2
- package/dist/ui/spinner.d.cts +2 -2
- package/dist/ui/spinner.d.mts +25 -0
- package/dist/ui/spinner.mjs +1 -0
- package/dist/ui/switch.cjs +1 -2
- package/dist/ui/switch.d.cts +2 -2
- package/dist/ui/switch.d.mts +26 -0
- package/dist/ui/switch.mjs +1 -0
- package/dist/ui/table.cjs +1 -1
- package/dist/ui/table.d.cts +17 -17
- package/dist/ui/table.d.mts +73 -0
- package/dist/ui/table.mjs +2 -0
- package/dist/ui/table.mjs.map +1 -0
- package/dist/ui/tabs.cjs +1 -1
- package/dist/ui/tabs.d.cts +5 -5
- package/dist/ui/tabs.d.mts +44 -0
- package/dist/ui/tabs.mjs +2 -0
- package/dist/ui/tabs.mjs.map +1 -0
- package/dist/ui/textarea.cjs +1 -2
- package/dist/ui/textarea.d.cts +2 -2
- package/dist/ui/textarea.d.mts +30 -0
- package/dist/ui/textarea.mjs +1 -0
- package/dist/ui/toggle-group.cjs +1 -1
- package/dist/ui/toggle-group.cjs.map +1 -1
- package/dist/ui/toggle-group.d.cts +4 -4
- package/dist/ui/toggle-group.d.mts +39 -0
- package/dist/ui/toggle-group.mjs +2 -0
- package/dist/ui/toggle-group.mjs.map +1 -0
- package/dist/ui/toggle.cjs +1 -1
- package/dist/ui/toggle.d.cts +4 -4
- package/dist/ui/toggle.d.mts +32 -0
- package/dist/ui/toggle.mjs +2 -0
- package/dist/ui/toggle.mjs.map +1 -0
- package/dist/ui/tooltip.cjs +1 -2
- package/dist/ui/tooltip.d.cts +5 -5
- package/dist/ui/tooltip.d.mts +55 -0
- package/dist/ui/tooltip.mjs +1 -0
- package/dist/user-DtZy4P9d.mjs +2 -0
- package/dist/user-DtZy4P9d.mjs.map +1 -0
- package/dist/user-ii4FBhO1.cjs +2 -0
- package/dist/user-ii4FBhO1.cjs.map +1 -0
- package/package.json +100 -100
- package/dist/alert-BVsYpWFX.d.cts +0 -88
- package/dist/alert-D5VmhFT9.js +0 -2
- package/dist/alert-D5VmhFT9.js.map +0 -1
- package/dist/alert-DXmXDeGs.d.ts +0 -88
- package/dist/alert-JwECRZfz.cjs +0 -2
- package/dist/alert-JwECRZfz.cjs.map +0 -1
- package/dist/button-BBfGvggN.d.ts +0 -174
- package/dist/button-BEjRVw6s.d.cts +0 -174
- package/dist/button.variants-BruXd4VM.js +0 -2
- package/dist/button.variants-BruXd4VM.js.map +0 -1
- package/dist/button.variants-DgVFNsVc.cjs +0 -2
- package/dist/button.variants-DgVFNsVc.cjs.map +0 -1
- package/dist/cards/grid-product-card.d.ts +0 -37
- package/dist/cards/grid-product-card.js +0 -2
- package/dist/cards/grid-product-card.js.map +0 -1
- package/dist/cards/product-card.d.ts +0 -37
- package/dist/cards/product-card.js +0 -2
- package/dist/cards/product-card.js.map +0 -1
- package/dist/cards/simple-card.d.ts +0 -35
- package/dist/cards/simple-card.js +0 -2
- package/dist/cards/simple-card.js.map +0 -1
- package/dist/chunk-Bmb41Sf3.cjs +0 -1
- package/dist/close-Dflkky9q.cjs +0 -2
- package/dist/close-Dflkky9q.cjs.map +0 -1
- package/dist/close-DrkwaVXK.js +0 -2
- package/dist/close-DrkwaVXK.js.map +0 -1
- package/dist/cms-layout-B8maJRLp.cjs +0 -2
- package/dist/cms-layout-B8maJRLp.cjs.map +0 -1
- package/dist/cms-layout-CLeGdpMb.js +0 -2
- package/dist/cms-layout-CLeGdpMb.js.map +0 -1
- package/dist/data-display/country.d.ts +0 -22
- package/dist/data-display/country.js +0 -2
- package/dist/data-display/country.js.map +0 -1
- package/dist/data-display/data-list.d.ts +0 -43
- package/dist/data-display/data-list.js +0 -2
- package/dist/data-display/data-list.js.map +0 -1
- package/dist/data-display/date-tooltip.d.ts +0 -19
- package/dist/data-display/date-tooltip.js +0 -2
- package/dist/data-display/date-tooltip.js.map +0 -1
- package/dist/data-display/date.cjs.map +0 -1
- package/dist/data-display/date.d.ts +0 -39
- package/dist/data-display/date.js +0 -2
- package/dist/data-display/date.js.map +0 -1
- package/dist/data-display/empty.d.ts +0 -21
- package/dist/data-display/empty.js +0 -2
- package/dist/data-display/empty.js.map +0 -1
- package/dist/data-display/name.d.ts +0 -19
- package/dist/data-display/name.js +0 -2
- package/dist/data-display/name.js.map +0 -1
- package/dist/data-display/phone-number.d.ts +0 -19
- package/dist/data-display/phone-number.js +0 -2
- package/dist/data-display/phone-number.js.map +0 -1
- package/dist/data-display/role-badge.d.ts +0 -22
- package/dist/data-display/role-badge.js +0 -2
- package/dist/data-display/role-badge.js.map +0 -1
- package/dist/data-display/statistic.cjs.map +0 -1
- package/dist/data-display/statistic.d.ts +0 -57
- package/dist/data-display/statistic.js +0 -2
- package/dist/data-display/statistic.js.map +0 -1
- package/dist/data-display/user.cjs.map +0 -1
- package/dist/data-display/user.d.ts +0 -23
- package/dist/data-display/user.js +0 -2
- package/dist/data-display/user.js.map +0 -1
- package/dist/dialogs/confirm-dialog.d.ts +0 -142
- package/dist/dialogs/confirm-dialog.js +0 -2
- package/dist/dialogs/confirm-dialog.js.map +0 -1
- package/dist/dialogs/detail-dialog/components/sidebar.d.ts +0 -209
- package/dist/dialogs/detail-dialog/components/sidebar.js +0 -1
- package/dist/dialogs/detail-dialog/index.d.ts +0 -45
- package/dist/dialogs/detail-dialog/index.js +0 -2
- package/dist/dialogs/detail-dialog/index.js.map +0 -1
- package/dist/dialogs/error-dialog.d.ts +0 -25
- package/dist/dialogs/error-dialog.js +0 -2
- package/dist/dialogs/error-dialog.js.map +0 -1
- package/dist/dialogs/loading-dialog.d.ts +0 -21
- package/dist/dialogs/loading-dialog.js +0 -2
- package/dist/dialogs/loading-dialog.js.map +0 -1
- package/dist/features/descriptions/index.d.ts +0 -246
- package/dist/features/descriptions/index.js +0 -2
- package/dist/features/descriptions/index.js.map +0 -1
- package/dist/features/search-modal/index.d.ts +0 -17
- package/dist/features/search-modal/index.js +0 -1
- package/dist/features/tables/index.d.ts +0 -2
- package/dist/features/tables/index.js +0 -1
- package/dist/features/tanstack-form/index.d.ts +0 -2
- package/dist/features/tanstack-form/index.js +0 -1
- package/dist/features/text-editor/index.d.ts +0 -2
- package/dist/features/text-editor/index.js +0 -1
- package/dist/field-0gaEKxov.cjs +0 -2
- package/dist/field-0gaEKxov.cjs.map +0 -1
- package/dist/field-DG-kX3HU.js +0 -2
- package/dist/field-DG-kX3HU.js.map +0 -1
- package/dist/flex-BAfCk_in.cjs +0 -2
- package/dist/flex-BAfCk_in.cjs.map +0 -1
- package/dist/flex-D_XtSjf4.js +0 -2
- package/dist/flex-D_XtSjf4.js.map +0 -1
- package/dist/heading-BX7ZVnVg.cjs +0 -2
- package/dist/heading-BX7ZVnVg.cjs.map +0 -1
- package/dist/heading-Bw3eo6IT.js +0 -2
- package/dist/heading-Bw3eo6IT.js.map +0 -1
- package/dist/index--eHW_BCk.d.ts +0 -85
- package/dist/index-C257sc-c.d.ts +0 -90
- package/dist/index-C4ZFmaZm.d.cts +0 -2348
- package/dist/index-DWEpRM8i.d.cts +0 -1093
- package/dist/index-DnQeeNHV.d.ts +0 -1093
- package/dist/index-_MFRCXuJ.d.cts +0 -85
- package/dist/index-rNI5ia8r.d.cts +0 -90
- package/dist/index-rZ2RtGJp.d.ts +0 -2348
- package/dist/index.d.ts +0 -93
- package/dist/index.js +0 -1
- package/dist/layouts/cms-layout/index.d.ts +0 -2
- package/dist/layouts/cms-layout/index.js +0 -1
- package/dist/layouts/flex.d.ts +0 -117
- package/dist/layouts/flex.js +0 -1
- package/dist/layouts/grid.d.ts +0 -19
- package/dist/layouts/grid.js +0 -2
- package/dist/layouts/grid.js.map +0 -1
- package/dist/layouts/payment-layout/index.d.ts +0 -74
- package/dist/layouts/payment-layout/index.js +0 -1
- package/dist/pages/FeatureDeveloping.d.ts +0 -43
- package/dist/pages/FeatureDeveloping.js +0 -2
- package/dist/pages/FeatureDeveloping.js.map +0 -1
- package/dist/pages/FeatureFixing.d.ts +0 -43
- package/dist/pages/FeatureFixing.js +0 -2
- package/dist/pages/FeatureFixing.js.map +0 -1
- package/dist/pages/LoginPage.d.ts +0 -55
- package/dist/pages/LoginPage.js +0 -2
- package/dist/pages/LoginPage.js.map +0 -1
- package/dist/pages/NotAuthorized.d.ts +0 -43
- package/dist/pages/NotAuthorized.js +0 -2
- package/dist/pages/NotAuthorized.js.map +0 -1
- package/dist/pages/NotFound.d.ts +0 -43
- package/dist/pages/NotFound.js +0 -2
- package/dist/pages/NotFound.js.map +0 -1
- package/dist/pages/RegisterPage.d.ts +0 -52
- package/dist/pages/RegisterPage.js +0 -2
- package/dist/pages/RegisterPage.js.map +0 -1
- package/dist/pages/VerifyEmailPage.d.ts +0 -64
- package/dist/pages/VerifyEmailPage.js +0 -2
- package/dist/pages/VerifyEmailPage.js.map +0 -1
- package/dist/paragraph-D0x3Jc6W.cjs +0 -2
- package/dist/paragraph-D0x3Jc6W.cjs.map +0 -1
- package/dist/paragraph-ESjXXqHU.js +0 -2
- package/dist/paragraph-ESjXXqHU.js.map +0 -1
- package/dist/payment-layout-CksJbGsl.js +0 -2
- package/dist/payment-layout-CksJbGsl.js.map +0 -1
- package/dist/payment-layout-O7TNw2Cr.cjs +0 -2
- package/dist/payment-layout-O7TNw2Cr.cjs.map +0 -1
- package/dist/search-modal-Db8Xp2L4.cjs +0 -2
- package/dist/search-modal-Db8Xp2L4.cjs.map +0 -1
- package/dist/search-modal-DdonKbwA.js +0 -2
- package/dist/search-modal-DdonKbwA.js.map +0 -1
- package/dist/sidebar-BCuXtop_.js +0 -2
- package/dist/sidebar-BCuXtop_.js.map +0 -1
- package/dist/sidebar-CQZlWCK4.cjs +0 -2
- package/dist/sidebar-CQZlWCK4.cjs.map +0 -1
- package/dist/skeleton-DAcbjBGp.js +0 -2
- package/dist/skeleton-DAcbjBGp.js.map +0 -1
- package/dist/skeleton-oQFT4xR2.cjs +0 -2
- package/dist/skeleton-oQFT4xR2.cjs.map +0 -1
- package/dist/systems/google.d.ts +0 -53
- package/dist/systems/google.js +0 -2
- package/dist/systems/google.js.map +0 -1
- package/dist/tables-DbwtCMRI.js +0 -4
- package/dist/tables-DbwtCMRI.js.map +0 -1
- package/dist/tables-DgZbLZQP.cjs +0 -4
- package/dist/tables-DgZbLZQP.cjs.map +0 -1
- package/dist/tanstack-form-C3SGhsmN.cjs +0 -2
- package/dist/tanstack-form-C3SGhsmN.cjs.map +0 -1
- package/dist/tanstack-form-Ds_Zjt20.js +0 -2
- package/dist/tanstack-form-Ds_Zjt20.js.map +0 -1
- package/dist/text-editor-DhTxCxvH.cjs +0 -2
- package/dist/text-editor-DhTxCxvH.cjs.map +0 -1
- package/dist/text-editor-DwisU9_U.js +0 -2
- package/dist/text-editor-DwisU9_U.js.map +0 -1
- package/dist/typography/paragraph.d.ts +0 -48
- package/dist/typography/paragraph.js +0 -1
- package/dist/typography/title.d.ts +0 -43
- package/dist/typography/title.js +0 -2
- package/dist/typography/title.js.map +0 -1
- package/dist/ui/alert-dialog.d.ts +0 -90
- package/dist/ui/alert-dialog.js +0 -2
- package/dist/ui/alert-dialog.js.map +0 -1
- package/dist/ui/alert.d.ts +0 -2
- package/dist/ui/alert.js +0 -1
- package/dist/ui/aspect-ratio.d.ts +0 -24
- package/dist/ui/aspect-ratio.js +0 -2
- package/dist/ui/aspect-ratio.js.map +0 -1
- package/dist/ui/avatar.cjs.map +0 -1
- package/dist/ui/avatar.d.ts +0 -35
- package/dist/ui/avatar.js +0 -2
- package/dist/ui/avatar.js.map +0 -1
- package/dist/ui/badge.cjs.map +0 -1
- package/dist/ui/badge.d.ts +0 -42
- package/dist/ui/badge.js +0 -2
- package/dist/ui/badge.js.map +0 -1
- package/dist/ui/breadcrumb.d.ts +0 -72
- package/dist/ui/breadcrumb.js +0 -2
- package/dist/ui/breadcrumb.js.map +0 -1
- package/dist/ui/button-group.d.ts +0 -50
- package/dist/ui/button-group.js +0 -2
- package/dist/ui/button-group.js.map +0 -1
- package/dist/ui/button.cjs.map +0 -1
- package/dist/ui/button.d.ts +0 -2
- package/dist/ui/button.js +0 -2
- package/dist/ui/button.js.map +0 -1
- package/dist/ui/buttons/add-new.d.ts +0 -17
- package/dist/ui/buttons/add-new.js +0 -2
- package/dist/ui/buttons/add-new.js.map +0 -1
- package/dist/ui/buttons/edit.d.ts +0 -17
- package/dist/ui/buttons/edit.js +0 -2
- package/dist/ui/buttons/edit.js.map +0 -1
- package/dist/ui/buttons/refresh.d.ts +0 -17
- package/dist/ui/buttons/refresh.js +0 -2
- package/dist/ui/buttons/refresh.js.map +0 -1
- package/dist/ui/buttons/trash.d.ts +0 -17
- package/dist/ui/buttons/trash.js +0 -2
- package/dist/ui/buttons/trash.js.map +0 -1
- package/dist/ui/buttons/upload-image.d.ts +0 -24
- package/dist/ui/buttons/upload-image.js +0 -2
- package/dist/ui/buttons/upload-image.js.map +0 -1
- package/dist/ui/calendar.cjs.map +0 -1
- package/dist/ui/calendar.d.ts +0 -45
- package/dist/ui/calendar.js +0 -2
- package/dist/ui/calendar.js.map +0 -1
- package/dist/ui/card.d.ts +0 -63
- package/dist/ui/card.js +0 -2
- package/dist/ui/card.js.map +0 -1
- package/dist/ui/carousel.d.ts +0 -71
- package/dist/ui/carousel.js +0 -2
- package/dist/ui/carousel.js.map +0 -1
- package/dist/ui/checkbox.cjs.map +0 -1
- package/dist/ui/checkbox.d.ts +0 -26
- package/dist/ui/checkbox.js +0 -2
- package/dist/ui/checkbox.js.map +0 -1
- package/dist/ui/collapsible.d.ts +0 -34
- package/dist/ui/collapsible.js +0 -2
- package/dist/ui/collapsible.js.map +0 -1
- package/dist/ui/command.cjs.map +0 -1
- package/dist/ui/command.d.ts +0 -89
- package/dist/ui/command.js +0 -2
- package/dist/ui/command.js.map +0 -1
- package/dist/ui/context-menu.d.ts +0 -125
- package/dist/ui/context-menu.js +0 -2
- package/dist/ui/context-menu.js.map +0 -1
- package/dist/ui/dialog.cjs.map +0 -1
- package/dist/ui/dialog.d.ts +0 -90
- package/dist/ui/dialog.js +0 -2
- package/dist/ui/dialog.js.map +0 -1
- package/dist/ui/drawer.cjs.map +0 -1
- package/dist/ui/drawer.d.ts +0 -72
- package/dist/ui/drawer.js +0 -2
- package/dist/ui/drawer.js.map +0 -1
- package/dist/ui/dropdown-menu.cjs.map +0 -1
- package/dist/ui/dropdown-menu.d.ts +0 -127
- package/dist/ui/dropdown-menu.js +0 -2
- package/dist/ui/dropdown-menu.js.map +0 -1
- package/dist/ui/empty.d.ts +0 -68
- package/dist/ui/empty.js +0 -2
- package/dist/ui/empty.js.map +0 -1
- package/dist/ui/field.d.ts +0 -65
- package/dist/ui/field.js +0 -1
- package/dist/ui/file-uploader.d.ts +0 -103
- package/dist/ui/file-uploader.js +0 -3
- package/dist/ui/file-uploader.js.map +0 -1
- package/dist/ui/form.d.ts +0 -112
- package/dist/ui/form.js +0 -2
- package/dist/ui/form.js.map +0 -1
- package/dist/ui/hover-card.d.ts +0 -37
- package/dist/ui/hover-card.js +0 -2
- package/dist/ui/hover-card.js.map +0 -1
- package/dist/ui/image.cjs.map +0 -1
- package/dist/ui/image.d.ts +0 -36
- package/dist/ui/image.js +0 -2
- package/dist/ui/image.js.map +0 -1
- package/dist/ui/input-otp.d.ts +0 -59
- package/dist/ui/input-otp.js +0 -2
- package/dist/ui/input-otp.js.map +0 -1
- package/dist/ui/input.cjs.map +0 -1
- package/dist/ui/input.d.ts +0 -44
- package/dist/ui/input.js +0 -2
- package/dist/ui/input.js.map +0 -1
- package/dist/ui/inputs/search-input.d.ts +0 -29
- package/dist/ui/inputs/search-input.js +0 -2
- package/dist/ui/inputs/search-input.js.map +0 -1
- package/dist/ui/item.d.ts +0 -102
- package/dist/ui/item.js +0 -2
- package/dist/ui/item.js.map +0 -1
- package/dist/ui/label.cjs.map +0 -1
- package/dist/ui/label.d.ts +0 -24
- package/dist/ui/label.js +0 -2
- package/dist/ui/label.js.map +0 -1
- package/dist/ui/menubar.d.ts +0 -135
- package/dist/ui/menubar.js +0 -2
- package/dist/ui/menubar.js.map +0 -1
- package/dist/ui/multi-select.d.ts +0 -117
- package/dist/ui/multi-select.js +0 -2
- package/dist/ui/multi-select.js.map +0 -1
- package/dist/ui/navigation-menu.d.ts +0 -77
- package/dist/ui/navigation-menu.js +0 -2
- package/dist/ui/navigation-menu.js.map +0 -1
- package/dist/ui/pagination.d.ts +0 -67
- package/dist/ui/pagination.js +0 -2
- package/dist/ui/pagination.js.map +0 -1
- package/dist/ui/popover.cjs.map +0 -1
- package/dist/ui/popover.d.ts +0 -52
- package/dist/ui/popover.js +0 -2
- package/dist/ui/popover.js.map +0 -1
- package/dist/ui/progress.cjs.map +0 -1
- package/dist/ui/progress.d.ts +0 -23
- package/dist/ui/progress.js +0 -2
- package/dist/ui/progress.js.map +0 -1
- package/dist/ui/radio-group.cjs.map +0 -1
- package/dist/ui/radio-group.d.ts +0 -37
- package/dist/ui/radio-group.js +0 -2
- package/dist/ui/radio-group.js.map +0 -1
- package/dist/ui/resizable.cjs.map +0 -1
- package/dist/ui/resizable.d.ts +0 -63
- package/dist/ui/resizable.js +0 -2
- package/dist/ui/resizable.js.map +0 -1
- package/dist/ui/scroll-area.d.ts +0 -37
- package/dist/ui/scroll-area.js +0 -2
- package/dist/ui/scroll-area.js.map +0 -1
- package/dist/ui/select.cjs.map +0 -1
- package/dist/ui/select.d.ts +0 -77
- package/dist/ui/select.js +0 -2
- package/dist/ui/select.js.map +0 -1
- package/dist/ui/separator.cjs.map +0 -1
- package/dist/ui/separator.d.ts +0 -34
- package/dist/ui/separator.js +0 -2
- package/dist/ui/separator.js.map +0 -1
- package/dist/ui/sheet.cjs.map +0 -1
- package/dist/ui/sheet.d.ts +0 -69
- package/dist/ui/sheet.js +0 -2
- package/dist/ui/sheet.js.map +0 -1
- package/dist/ui/skeleton.d.ts +0 -27
- package/dist/ui/skeleton.js +0 -1
- package/dist/ui/slider.d.ts +0 -26
- package/dist/ui/slider.js +0 -2
- package/dist/ui/slider.js.map +0 -1
- package/dist/ui/sonner.d.ts +0 -24
- package/dist/ui/sonner.js +0 -2
- package/dist/ui/sonner.js.map +0 -1
- package/dist/ui/spinner.cjs.map +0 -1
- package/dist/ui/spinner.d.ts +0 -25
- package/dist/ui/spinner.js +0 -2
- package/dist/ui/spinner.js.map +0 -1
- package/dist/ui/switch.cjs.map +0 -1
- package/dist/ui/switch.d.ts +0 -26
- package/dist/ui/switch.js +0 -2
- package/dist/ui/switch.js.map +0 -1
- package/dist/ui/table.d.ts +0 -73
- package/dist/ui/table.js +0 -2
- package/dist/ui/table.js.map +0 -1
- package/dist/ui/tabs.d.ts +0 -44
- package/dist/ui/tabs.js +0 -2
- package/dist/ui/tabs.js.map +0 -1
- package/dist/ui/textarea.cjs.map +0 -1
- package/dist/ui/textarea.d.ts +0 -30
- package/dist/ui/textarea.js +0 -2
- package/dist/ui/textarea.js.map +0 -1
- package/dist/ui/toggle-group.d.ts +0 -39
- package/dist/ui/toggle-group.js +0 -2
- package/dist/ui/toggle-group.js.map +0 -1
- package/dist/ui/toggle.d.ts +0 -32
- package/dist/ui/toggle.js +0 -2
- package/dist/ui/toggle.js.map +0 -1
- package/dist/ui/tooltip.cjs.map +0 -1
- package/dist/ui/tooltip.d.ts +0 -55
- package/dist/ui/tooltip.js +0 -2
- package/dist/ui/tooltip.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-fY3sUcLp.mjs","names":["DateDisplay: React.FC<DateDisplayProps>"],"sources":["../packages/constants.tsx","../packages/components/data-display/date.tsx"],"sourcesContent":["// Vietnamese locale configuration\nexport const vietnameseLocale = {\n weekdays: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'],\n weekdaysShort: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],\n months: ['Tháng 01', 'Tháng 02', 'Tháng 03', 'Tháng 04', 'Tháng 05', 'Tháng 06', 'Tháng 07', 'Tháng 08', 'Tháng 09', 'Tháng 10', 'Tháng 11', 'Tháng 12'],\n monthsShort: ['T1', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7', 'T8', 'T9', 'T10', 'T11', 'T12'],\n};\n\n// Vietnamese holidays\nexport const vietnameseHolidays = {\n '01-01': 'Tết Dương lịch',\n '03-08': 'Quốc tế Phụ nữ',\n '04-30': 'Ngày Giải phóng miền Nam',\n '05-01': 'Quốc tế Lao động',\n '09-02': 'Quốc khánh',\n '10-20': 'Ngày Phụ nữ Việt Nam',\n '11-20': 'Ngày Nhà giáo Việt Nam',\n};\n\n// Time Constants in milliseconds, seconds, and minutes\nexport const TIME_IN_MS = Object.freeze({\n SECOND: 1000,\n MINUTE: 60 * 1000,\n HOUR: 60 * 60 * 1000,\n DAY: 24 * 60 * 60 * 1000,\n WEEK: 7 * 24 * 60 * 60 * 1000,\n MONTH: 30 * 24 * 60 * 60 * 1000, // Approximation for month length = 30 days\n YEAR: 365 * 24 * 60 * 60 * 1000,\n});\n\nexport const TIME_IN_SECONDS = Object.freeze({\n MINUTE: 60,\n HOUR: 60 * 60,\n DAY: 24 * 60 * 60,\n WEEK: 7 * 24 * 60 * 60,\n MONTH: 30 * 24 * 60 * 60,\n YEAR: 365 * 24 * 60 * 60,\n});\n\nexport const TIME_IN_MINUTES = Object.freeze({\n HOUR: 60,\n DAY: 24 * 60,\n WEEK: 7 * 24 * 60,\n MONTH: 30 * 24 * 60,\n});\n","'use client';\n\nimport { useCallback, useMemo } from 'react';\n\nimport { format, isThisMonth, isThisWeek, isThisYear, isToday, isTomorrow, isValid, isYesterday, parseISO } from '@customafk/react-toolkit/date-fns';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { TIME_IN_SECONDS, vietnameseHolidays, vietnameseLocale } from '@/constants';\n\ninterface DateDisplayProps {\n /** The date value to display; accepts a `Date` object, an ISO string, or a Unix timestamp (ms). */\n date: Date | string | number;\n /**\n * Controls how the date is formatted.\n * - `'short'` — `15/03/24`\n * - `'medium'` — `15/03/2024` (default)\n * - `'long'` — `15 tháng 3, 2024`\n * - `'full'` — `Thứ Sáu, ngày 15 tháng 3 năm 2024`\n * - `'relative'` — `2 giờ trước`\n * - `'datetime'` — `15/03/2024 14:30`\n * - `'time'` — `14:30`\n * - `'smart'` — auto-selects the most human-readable format based on recency\n */\n format?:\n | 'short' // 15/03/24\n | 'medium' // 15/03/2024\n | 'long' // 15 tháng 3, 2024\n | 'full' // Thứ Sáu, ngày 15 tháng 3 năm 2024\n | 'relative' // 2 giờ trước\n | 'datetime' // 15/03/2024 14:30\n | 'time' // 14:30\n | 'smart'; // auto-selects format based on recency\n /** When `true`, appends any recognised Vietnamese public holiday name to the formatted date. Defaults to `false`. */\n showHoliday?: boolean;\n /** When `true`, appends the time component to the formatted output. Defaults to `false`. */\n showTime?: boolean;\n /** Additional CSS classes applied to the `<time>` element. */\n className?: string;\n /** Custom HTML `title` attribute; defaults to the full ISO datetime string. */\n title?: string;\n}\n\n/**\n * Renders a formatted date using Vietnamese locale conventions inside a semantic `<time>` element.\n *\n * @example\n * ```tsx\n * import { DateDisplay } from '@customafk/lunas-ui/data-display/date';\n *\n * <DateDisplay date=\"2024-03-15T14:30:00Z\" format=\"medium\" showTime />\n * ```\n */\nexport const DateDisplay: React.FC<DateDisplayProps> = ({\n date,\n format: formatType = 'medium',\n showHoliday = false,\n showTime = false,\n className = '',\n title,\n}) => {\n const parsedDate = useMemo(() => {\n try {\n if (date instanceof Date) return isValid(date) ? date : null;\n if (typeof date === 'string') {\n const parsed = parseISO(date);\n return isValid(parsed) ? parsed : new Date(date);\n }\n if (typeof date === 'number') {\n const parsed = new Date(date);\n return isValid(parsed) ? parsed : null;\n }\n return null;\n } catch {\n return null;\n }\n }, [date]);\n\n const formatRelativeTime = useCallback((d: Date): string => {\n const diffInSeconds = Math.floor((Date.now() - d.getTime()) / 1000);\n if (diffInSeconds < 60) return 'Vừa xong';\n if (diffInSeconds < 3600) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.MINUTE)} phút trước`;\n if (diffInSeconds < 86400) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.HOUR)} giờ trước`;\n if (diffInSeconds < 604800) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.DAY)} ngày trước`;\n if (diffInSeconds < 2592000) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.WEEK)} tuần trước`;\n if (diffInSeconds < 31536000) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.MONTH)} tháng trước`;\n return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.YEAR)} năm trước`;\n }, []);\n\n const getVietnameseWeekday = useCallback((d: Date, short = false): string => {\n return short ? vietnameseLocale.weekdaysShort[d.getDay()] : vietnameseLocale.weekdays[d.getDay()];\n }, []);\n\n const getVietnameseMonth = useCallback((d: Date, short = false): string => {\n return short ? vietnameseLocale.monthsShort[d.getMonth()] : vietnameseLocale.months[d.getMonth()];\n }, []);\n\n const getHoliday = useCallback((d: Date): string | null => {\n const monthDay = format(d, 'MM-dd') as keyof typeof vietnameseHolidays;\n return vietnameseHolidays[monthDay] || null;\n }, []);\n\n const getSmartFormat = useCallback(\n (d: Date): string => {\n if (isToday(d)) return showTime ? `Hôm nay ${format(d, 'HH:mm')}` : 'Hôm nay';\n if (isYesterday(d)) return showTime ? `Hôm qua ${format(d, 'HH:mm')}` : 'Hôm qua';\n if (isTomorrow(d)) return showTime ? `Ngày mai ${format(d, 'HH:mm')}` : 'Ngày mai';\n if (isThisWeek(d)) {\n const weekday = getVietnameseWeekday(d);\n return showTime ? `${weekday} ${format(d, 'HH:mm')}` : weekday;\n }\n if (isThisMonth(d)) {\n const day = format(d, 'd');\n return showTime ? `${day}/${format(d, 'M')} ${format(d, 'HH:mm')}` : `${day}/${format(d, 'M')}`;\n }\n if (isThisYear(d)) return showTime ? format(d, 'd/M HH:mm') : format(d, 'd/M');\n return showTime ? format(d, 'd/M/yyyy HH:mm') : format(d, 'd/M/yyyy');\n },\n [getVietnameseWeekday, showTime]\n );\n\n const formatDate = useCallback(\n (d: Date, type: string): string => {\n const timeStr = showTime ? format(d, ', HH:mm:ss') : '';\n switch (type) {\n case 'short':\n return format(d, 'd/M/yy') + timeStr;\n case 'medium':\n return format(d, 'dd/MM/yyyy') + timeStr;\n case 'long':\n return `${format(d, 'd')} ${getVietnameseMonth(d)} ${format(d, 'yyyy')}` + timeStr;\n case 'full':\n return `${getVietnameseWeekday(d)}, ngày ${format(d, 'd')} ${getVietnameseMonth(d)} năm ${format(d, 'yyyy')}` + timeStr;\n case 'relative':\n return formatRelativeTime(d);\n case 'datetime':\n return format(d, 'd/M/yyyy HH:mm');\n case 'time':\n return format(d, 'HH:mm');\n case 'smart':\n return getSmartFormat(d);\n default:\n return format(d, 'd/M/yyyy') + timeStr;\n }\n },\n [getSmartFormat, getVietnameseMonth, getVietnameseWeekday, formatRelativeTime, showTime]\n );\n\n if (!parsedDate) {\n return <span className={cn('text-sm text-text-positive-subtle', className)}>--/--/----</span>;\n }\n\n const formattedDate = formatDate(parsedDate, formatType);\n const holiday = showHoliday ? getHoliday(parsedDate) : null;\n const displayText = holiday ? `${formattedDate} (${holiday})` : formattedDate;\n const tooltipTitle = title || format(parsedDate, 'EEEE, d MMMM yyyy HH:mm:ss');\n\n return (\n <time\n data-slot=\"date-display\"\n dateTime={parsedDate.toISOString()}\n className={cn('tabular-nums text-xs text-text-positive-weak transition-colors', className)}\n title={tooltipTitle}\n >\n {displayText}\n </time>\n );\n};\n"],"mappings":"kUACA,MAAa,EAAmB,CAC9B,SAAU,CAAC,WAAY,UAAW,SAAU,SAAU,UAAW,UAAW,UAAU,CACtF,cAAe,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAK,CACzD,OAAQ,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAW,CACxJ,YAAa,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAM,CACzF,CAGY,EAAqB,CAChC,QAAS,iBACT,QAAS,iBACT,QAAS,2BACT,QAAS,mBACT,QAAS,aACT,QAAS,uBACT,QAAS,yBACV,CAGyB,OAAO,OAAO,CACtC,OAAQ,IACR,OAAQ,GAAK,IACb,KAAM,KAAU,IAChB,IAAK,KAAU,GAAK,IACpB,KAAM,MAAc,GAAK,IACzB,MAAO,IAAU,GAAK,GAAK,IAC3B,KAAM,IAAM,GAAK,GAAK,GAAK,IAC5B,CAAC,CAEF,MAAa,EAAkB,OAAO,OAAO,CAC3C,OAAQ,GACR,KAAM,KACN,IAAK,KAAU,GACf,KAAM,MAAc,GACpB,MAAO,IAAU,GAAK,GACtB,KAAM,IAAM,GAAK,GAAK,GACvB,CAAC,CAE6B,OAAO,OAAO,CAC3C,KAAM,GACN,IAAK,KACL,KAAM,MACN,MAAO,IAAU,GAClB,CAAC,CCQF,MAAaA,GAA2C,CACtD,OACA,OAAQ,EAAa,SACrB,cAAc,GACd,WAAW,GACX,YAAY,GACZ,WACI,CACJ,IAAM,EAAa,MAAc,CAC/B,GAAI,CACF,GAAI,aAAgB,KAAM,OAAO,EAAQ,EAAK,CAAG,EAAO,KACxD,GAAI,OAAO,GAAS,SAAU,CAC5B,IAAM,EAAS,EAAS,EAAK,CAC7B,OAAO,EAAQ,EAAO,CAAG,EAAS,IAAI,KAAK,EAAK,CAElD,GAAI,OAAO,GAAS,SAAU,CAC5B,IAAM,EAAS,IAAI,KAAK,EAAK,CAC7B,OAAO,EAAQ,EAAO,CAAG,EAAS,KAEpC,OAAO,UACD,CACN,OAAO,OAER,CAAC,EAAK,CAAC,CAEJ,EAAqB,EAAa,GAAoB,CAC1D,IAAM,EAAgB,KAAK,OAAO,KAAK,KAAK,CAAG,EAAE,SAAS,EAAI,IAAK,CAOnE,OANI,EAAgB,GAAW,WAC3B,EAAgB,KAAa,GAAG,KAAK,MAAM,EAAgB,EAAgB,OAAO,CAAC,aACnF,EAAgB,MAAc,GAAG,KAAK,MAAM,EAAgB,EAAgB,KAAK,CAAC,YAClF,EAAgB,OAAe,GAAG,KAAK,MAAM,EAAgB,EAAgB,IAAI,CAAC,aAClF,EAAgB,OAAgB,GAAG,KAAK,MAAM,EAAgB,EAAgB,KAAK,CAAC,aACpF,EAAgB,QAAiB,GAAG,KAAK,MAAM,EAAgB,EAAgB,MAAM,CAAC,cACnF,GAAG,KAAK,MAAM,EAAgB,EAAgB,KAAK,CAAC,aAC1D,EAAE,CAAC,CAEA,EAAuB,GAAa,EAAS,EAAQ,KAClD,EAAQ,EAAiB,cAAc,EAAE,QAAQ,EAAI,EAAiB,SAAS,EAAE,QAAQ,EAC/F,EAAE,CAAC,CAEA,EAAqB,GAAa,EAAS,EAAQ,KAChD,EAAQ,EAAiB,YAAY,EAAE,UAAU,EAAI,EAAiB,OAAO,EAAE,UAAU,EAC/F,EAAE,CAAC,CAEA,EAAa,EAAa,GAEvB,EADU,EAAO,EAAG,QAAQ,GACI,KACtC,EAAE,CAAC,CAEA,EAAiB,EACpB,GAAoB,CACnB,GAAI,EAAQ,EAAE,CAAE,OAAO,EAAW,WAAW,EAAO,EAAG,QAAQ,GAAK,UACpE,GAAI,EAAY,EAAE,CAAE,OAAO,EAAW,WAAW,EAAO,EAAG,QAAQ,GAAK,UACxE,GAAI,EAAW,EAAE,CAAE,OAAO,EAAW,YAAY,EAAO,EAAG,QAAQ,GAAK,WACxE,GAAI,EAAW,EAAE,CAAE,CACjB,IAAM,EAAU,EAAqB,EAAE,CACvC,OAAO,EAAW,GAAG,EAAQ,GAAG,EAAO,EAAG,QAAQ,GAAK,EAEzD,GAAI,EAAY,EAAE,CAAE,CAClB,IAAM,EAAM,EAAO,EAAG,IAAI,CAC1B,OAAO,EAAW,GAAG,EAAI,GAAG,EAAO,EAAG,IAAI,CAAC,GAAG,EAAO,EAAG,QAAQ,GAAK,GAAG,EAAI,GAAG,EAAO,EAAG,IAAI,GAG/F,OADI,EAAW,EAAE,CAAS,EAAW,EAAO,EAAG,YAAY,CAAG,EAAO,EAAG,MAAM,CACvE,EAAW,EAAO,EAAG,iBAAiB,CAAG,EAAO,EAAG,WAAW,EAEvE,CAAC,EAAsB,EAAS,CACjC,CAEK,EAAa,GAChB,EAAS,IAAyB,CACjC,IAAM,EAAU,EAAW,EAAO,EAAG,aAAa,CAAG,GACrD,OAAQ,EAAR,CACE,IAAK,QACH,OAAO,EAAO,EAAG,SAAS,CAAG,EAC/B,IAAK,SACH,OAAO,EAAO,EAAG,aAAa,CAAG,EACnC,IAAK,OACH,MAAO,GAAG,EAAO,EAAG,IAAI,CAAC,GAAG,EAAmB,EAAE,CAAC,GAAG,EAAO,EAAG,OAAO,GAAK,EAC7E,IAAK,OACH,MAAO,GAAG,EAAqB,EAAE,CAAC,SAAS,EAAO,EAAG,IAAI,CAAC,GAAG,EAAmB,EAAE,CAAC,OAAO,EAAO,EAAG,OAAO,GAAK,EAClH,IAAK,WACH,OAAO,EAAmB,EAAE,CAC9B,IAAK,WACH,OAAO,EAAO,EAAG,iBAAiB,CACpC,IAAK,OACH,OAAO,EAAO,EAAG,QAAQ,CAC3B,IAAK,QACH,OAAO,EAAe,EAAE,CAC1B,QACE,OAAO,EAAO,EAAG,WAAW,CAAG,IAGrC,CAAC,EAAgB,EAAoB,EAAsB,EAAoB,EAAS,CACzF,CAED,GAAI,CAAC,EACH,OAAO,EAAC,OAAA,CAAK,UAAW,EAAG,oCAAqC,EAAU,UAAE,cAAiB,CAG/F,IAAM,EAAgB,EAAW,EAAY,EAAW,CAClD,EAAU,EAAc,EAAW,EAAW,CAAG,KACjD,EAAc,EAAU,GAAG,EAAc,IAAI,EAAQ,GAAK,EAC1D,EAAe,GAAS,EAAO,EAAY,6BAA6B,CAE9E,OACE,EAAC,OAAA,CACC,YAAU,eACV,SAAU,EAAW,aAAa,CAClC,UAAW,EAAG,iEAAkE,EAAU,CAC1F,MAAO,WAEN,GACI"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`./chunk-350yNsax.cjs`),t=require(`./heading-tGTqk3pA.cjs`),n=require(`./paragraph-DvTZvbzw.cjs`),r=require(`./close-Dlo1bI8x.cjs`);let i=require(`@customafk/react-toolkit/utils`),a=require(`react/jsx-runtime`),o=require(`radix-ui`);function s({...e}){return(0,a.jsx)(o.Dialog.Root,{"data-slot":`dialog`,...e})}function c({...e}){return(0,a.jsx)(o.Dialog.Trigger,{"data-slot":`dialog-trigger`,...e})}function l({...e}){return(0,a.jsx)(o.Dialog.Portal,{"data-slot":`dialog-portal`,...e})}function u({...e}){return(0,a.jsx)(o.Dialog.Close,{"data-slot":`dialog-close`,...e})}function d({className:e,...t}){return(0,a.jsx)(o.Dialog.Overlay,{"data-slot":`dialog-overlay`,className:(0,i.cn)(`fixed inset-0 z-50 bg-black/50`,`data-[state=open]:fade-in-0 data-[state=open]:animate-in`,`data-[state=closed]:fade-out-0 data-[state=closed]:animate-out`,e),...t})}function f({className:e,children:t,showCloseButton:n=!0,...s}){return(0,a.jsxs)(l,{children:[(0,a.jsx)(d,{}),(0,a.jsxs)(o.Dialog.Content,{"data-slot":`dialog-content`,className:(0,i.cn)(`fixed top-1/2 left-1/2 z-50 -translate-x-1/2 -translate-y-1/2`,`grid w-full max-w-[calc(100%-2rem)] bg-background`,`max-h-[85dvh] gap-4 rounded-2xl p-6 shadow-dialog outline-none duration-400`,`sm:max-w-lg`,`data-[state=open]:fade-in-0 data-[state=open]:zoom-in-80 data-[state=open]:animate-in`,`data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-80 data-[state=closed]:animate-out`,e),onOpenAutoFocus:e=>{e.preventDefault()},...s,children:[t,n&&(0,a.jsx)(o.Dialog.Close,{"data-slot":`dialog-close`,tabIndex:-1,asChild:!0,className:`absolute top-3 right-3`,children:(0,a.jsx)(r.t,{})})]})]})}function p({className:e,...t}){return(0,a.jsx)(`div`,{"data-slot":`dialog-header`,className:(0,i.cn)(`flex flex-col gap-2 text-center sm:text-left`,e),...t})}function m({className:e,...t}){return(0,a.jsx)(`div`,{"data-slot":`dialog-footer`,className:(0,i.cn)(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e),...t})}function h({className:e,...n}){return(0,a.jsx)(o.Dialog.Title,{"data-slot":`dialog-title`,className:(0,i.cn)(t.t({level:`h3`}),e),...n})}function g({className:e,...t}){return(0,a.jsx)(o.Dialog.Description,{"data-slot":`dialog-description`,className:(0,i.cn)(n.n({variant:`muted`}),e),...t})}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return c}});
|
|
2
|
+
//# sourceMappingURL=dialog-BigPrWIj.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog-BigPrWIj.cjs","names":["DialogPrimitive","CloseButton","headingVariants","paragraphVariants"],"sources":["../packages/components/ui/dialog.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Dialog as DialogPrimitive } from 'radix-ui';\nimport { headingVariants } from '../typography/heading';\nimport { paragraphVariants } from '../typography/paragraph';\nimport { CloseButton } from './buttons/close';\n\n/**\n * Accessible modal dialog built on Radix UI's Dialog primitives with animated overlay, close button, and responsive sizing.\n *\n * @example\n * ```tsx\n * import {\n * Dialog, DialogTrigger, DialogContent,\n * DialogHeader, DialogTitle, DialogDescription, DialogFooter,\n * } from '@customafk/lunas-ui/ui/dialog';\n * import { Button } from '@customafk/lunas-ui/ui/button';\n *\n * <Dialog>\n * <DialogTrigger asChild>\n * <Button>Open dialog</Button>\n * </DialogTrigger>\n * <DialogContent>\n * <DialogHeader>\n * <DialogTitle>Confirm action</DialogTitle>\n * <DialogDescription>This cannot be undone.</DialogDescription>\n * </DialogHeader>\n * <DialogFooter>\n * <Button variant=\"outline\">Cancel</Button>\n * <Button>Confirm</Button>\n * </DialogFooter>\n * </DialogContent>\n * </Dialog>\n * ```\n */\nfunction Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\n/** Element that opens the dialog when clicked; typically wrapped with `asChild` around a `Button`. */\nfunction DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\n/** Renders dialog overlay and content into a portal outside the normal React tree. */\nfunction DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\n/** Button that closes the dialog; can be composed with `asChild` to use a custom element. */\nfunction DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\n/** Semi-transparent backdrop rendered behind the dialog panel with fade-in/out animation. */\nfunction DialogOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n 'fixed inset-0 z-50 bg-black/50',\n 'data-[state=open]:fade-in-0 data-[state=open]:animate-in',\n 'data-[state=closed]:fade-out-0 data-[state=closed]:animate-out',\n className\n )}\n {...props}\n />\n );\n}\n\n/**\n * Animated dialog panel centred on screen; includes `DialogOverlay` and an optional close button.\n *\n * @param showCloseButton - When `true` (default), renders a `CloseButton` in the top-right corner.\n */\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n /** When `true` (default), renders an `×` close button fixed to the top-right corner of the panel. */\n showCloseButton?: boolean;\n}) {\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n 'fixed top-1/2 left-1/2 z-50 -translate-x-1/2 -translate-y-1/2',\n 'grid w-full max-w-[calc(100%-2rem)] bg-background',\n 'max-h-[85dvh] gap-4 rounded-2xl p-6 shadow-dialog outline-none duration-400',\n 'sm:max-w-lg',\n 'data-[state=open]:fade-in-0 data-[state=open]:zoom-in-80 data-[state=open]:animate-in',\n 'data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-80 data-[state=closed]:animate-out',\n className\n )}\n onOpenAutoFocus={event => {\n // Prevents focus from shifting to the content when the dialog opens, which can cause layout shift if the content includes autofocusable elements.\n event.preventDefault();\n }}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close data-slot=\"dialog-close\" tabIndex={-1} asChild className=\"absolute top-3 right-3\">\n <CloseButton />\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\n/** Layout wrapper for the dialog title and description, stacked vertically with left alignment on wider screens. */\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"dialog-header\" className={cn('flex flex-col gap-2 text-center sm:text-left', className)} {...props} />;\n}\n\n/** Layout wrapper for dialog action buttons, stacked on mobile and right-aligned in a row on wider screens. */\nfunction DialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"dialog-footer\" className={cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', className)} {...props} />;\n}\n\n/** Accessible heading for the dialog panel, styled with the h3 heading variant and announced by screen readers. */\nfunction DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return <DialogPrimitive.Title data-slot=\"dialog-title\" className={cn(headingVariants({ level: 'h3' }), className)} {...props} />;\n}\n\n/** Muted supporting text that describes the dialog's purpose; read by screen readers alongside the title. */\nfunction DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return <DialogPrimitive.Description data-slot=\"dialog-description\" className={cn(paragraphVariants({ variant: 'muted' }), className)} {...props} />;\n}\n\nexport { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };\n"],"mappings":"yPAqCA,SAAS,EAAO,CAAE,GAAG,GAA4D,CAC/E,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,KAAA,CAAK,YAAU,SAAS,GAAI,GAAS,CAI/D,SAAS,EAAc,CAAE,GAAG,GAA+D,CACzF,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,QAAA,CAAQ,YAAU,iBAAiB,GAAI,GAAS,CAI1E,SAAS,EAAa,CAAE,GAAG,GAA8D,CACvF,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,OAAA,CAAO,YAAU,gBAAgB,GAAI,GAAS,CAIxE,SAAS,EAAY,CAAE,GAAG,GAA6D,CACrF,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CAAM,YAAU,eAAe,GAAI,GAAS,CAItE,SAAS,EAAc,CAAE,YAAW,GAAG,GAA+D,CACpG,OACE,EAAA,EAAA,KAACA,EAAAA,OAAgB,QAAA,CACf,YAAU,iBACV,WAAA,EAAA,EAAA,IACE,iCACA,2DACA,iEACA,EACD,CACD,GAAI,GACJ,CASN,SAAS,EAAc,CACrB,YACA,WACA,kBAAkB,GAClB,GAAG,GAIF,CACD,OACE,EAAA,EAAA,MAAC,EAAA,CAAA,SAAA,EACC,EAAA,EAAA,KAAC,EAAA,EAAA,CAAgB,EACjB,EAAA,EAAA,MAACA,EAAAA,OAAgB,QAAA,CACf,YAAU,iBACV,WAAA,EAAA,EAAA,IACE,gEACA,oDACA,8EACA,cACA,wFACA,iGACA,EACD,CACD,gBAAiB,GAAS,CAExB,EAAM,gBAAgB,EAExB,GAAI,YAEH,EACA,IACC,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CAAM,YAAU,eAAe,SAAU,GAAI,QAAA,GAAQ,UAAU,mCAC9E,EAAA,EAAA,KAACC,EAAAA,EAAAA,EAAAA,CAAc,EACO,CAAA,EAEF,CAAA,CAAA,CACb,CAKnB,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,gBAAgB,WAAA,EAAA,EAAA,IAAc,+CAAgD,EAAU,CAAE,GAAI,GAAS,CAI/H,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,gBAAgB,WAAA,EAAA,EAAA,IAAc,yDAA0D,EAAU,CAAE,GAAI,GAAS,CAIzI,SAAS,EAAY,CAAE,YAAW,GAAG,GAA6D,CAChG,OAAO,EAAA,EAAA,KAACD,EAAAA,OAAgB,MAAA,CAAM,YAAU,eAAe,WAAA,EAAA,EAAA,IAAcE,EAAAA,EAAgB,CAAE,MAAO,KAAM,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS,CAIlI,SAAS,EAAkB,CAAE,YAAW,GAAG,GAAmE,CAC5G,OAAO,EAAA,EAAA,KAACF,EAAAA,OAAgB,YAAA,CAAY,YAAU,qBAAqB,WAAA,EAAA,EAAA,IAAcG,EAAAA,EAAkB,CAAE,QAAS,QAAS,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{t as e}from"./heading-De4Pn3mZ.mjs";import{n as t}from"./paragraph-DYLaQtTV.mjs";import{t as n}from"./close-_UHFeiLS.mjs";import{cn as r}from"@customafk/react-toolkit/utils";import{jsx as i,jsxs as a}from"react/jsx-runtime";import{Dialog as o}from"radix-ui";function s({...e}){return i(o.Root,{"data-slot":`dialog`,...e})}function c({...e}){return i(o.Trigger,{"data-slot":`dialog-trigger`,...e})}function l({...e}){return i(o.Portal,{"data-slot":`dialog-portal`,...e})}function u({...e}){return i(o.Close,{"data-slot":`dialog-close`,...e})}function d({className:e,...t}){return i(o.Overlay,{"data-slot":`dialog-overlay`,className:r(`fixed inset-0 z-50 bg-black/50`,`data-[state=open]:fade-in-0 data-[state=open]:animate-in`,`data-[state=closed]:fade-out-0 data-[state=closed]:animate-out`,e),...t})}function f({className:e,children:t,showCloseButton:s=!0,...c}){return a(l,{children:[i(d,{}),a(o.Content,{"data-slot":`dialog-content`,className:r(`fixed top-1/2 left-1/2 z-50 -translate-x-1/2 -translate-y-1/2`,`grid w-full max-w-[calc(100%-2rem)] bg-background`,`max-h-[85dvh] gap-4 rounded-2xl p-6 shadow-dialog outline-none duration-400`,`sm:max-w-lg`,`data-[state=open]:fade-in-0 data-[state=open]:zoom-in-80 data-[state=open]:animate-in`,`data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-80 data-[state=closed]:animate-out`,e),onOpenAutoFocus:e=>{e.preventDefault()},...c,children:[t,s&&i(o.Close,{"data-slot":`dialog-close`,tabIndex:-1,asChild:!0,className:`absolute top-3 right-3`,children:i(n,{})})]})]})}function p({className:e,...t}){return i(`div`,{"data-slot":`dialog-header`,className:r(`flex flex-col gap-2 text-center sm:text-left`,e),...t})}function m({className:e,...t}){return i(`div`,{"data-slot":`dialog-footer`,className:r(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e),...t})}function h({className:t,...n}){return i(o.Title,{"data-slot":`dialog-title`,className:r(e({level:`h3`}),t),...n})}function g({className:e,...n}){return i(o.Description,{"data-slot":`dialog-description`,className:r(t({variant:`muted`}),e),...n})}export{m as a,l as c,g as i,h as l,u as n,p as o,f as r,d as s,s as t,c as u};
|
|
2
|
+
//# sourceMappingURL=dialog-CLDnvNH_.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog-CLDnvNH_.mjs","names":["Dialog","DialogPrimitive"],"sources":["../packages/components/ui/dialog.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Dialog as DialogPrimitive } from 'radix-ui';\nimport { headingVariants } from '../typography/heading';\nimport { paragraphVariants } from '../typography/paragraph';\nimport { CloseButton } from './buttons/close';\n\n/**\n * Accessible modal dialog built on Radix UI's Dialog primitives with animated overlay, close button, and responsive sizing.\n *\n * @example\n * ```tsx\n * import {\n * Dialog, DialogTrigger, DialogContent,\n * DialogHeader, DialogTitle, DialogDescription, DialogFooter,\n * } from '@customafk/lunas-ui/ui/dialog';\n * import { Button } from '@customafk/lunas-ui/ui/button';\n *\n * <Dialog>\n * <DialogTrigger asChild>\n * <Button>Open dialog</Button>\n * </DialogTrigger>\n * <DialogContent>\n * <DialogHeader>\n * <DialogTitle>Confirm action</DialogTitle>\n * <DialogDescription>This cannot be undone.</DialogDescription>\n * </DialogHeader>\n * <DialogFooter>\n * <Button variant=\"outline\">Cancel</Button>\n * <Button>Confirm</Button>\n * </DialogFooter>\n * </DialogContent>\n * </Dialog>\n * ```\n */\nfunction Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\n/** Element that opens the dialog when clicked; typically wrapped with `asChild` around a `Button`. */\nfunction DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\n/** Renders dialog overlay and content into a portal outside the normal React tree. */\nfunction DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\n/** Button that closes the dialog; can be composed with `asChild` to use a custom element. */\nfunction DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\n/** Semi-transparent backdrop rendered behind the dialog panel with fade-in/out animation. */\nfunction DialogOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n 'fixed inset-0 z-50 bg-black/50',\n 'data-[state=open]:fade-in-0 data-[state=open]:animate-in',\n 'data-[state=closed]:fade-out-0 data-[state=closed]:animate-out',\n className\n )}\n {...props}\n />\n );\n}\n\n/**\n * Animated dialog panel centred on screen; includes `DialogOverlay` and an optional close button.\n *\n * @param showCloseButton - When `true` (default), renders a `CloseButton` in the top-right corner.\n */\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n /** When `true` (default), renders an `×` close button fixed to the top-right corner of the panel. */\n showCloseButton?: boolean;\n}) {\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n 'fixed top-1/2 left-1/2 z-50 -translate-x-1/2 -translate-y-1/2',\n 'grid w-full max-w-[calc(100%-2rem)] bg-background',\n 'max-h-[85dvh] gap-4 rounded-2xl p-6 shadow-dialog outline-none duration-400',\n 'sm:max-w-lg',\n 'data-[state=open]:fade-in-0 data-[state=open]:zoom-in-80 data-[state=open]:animate-in',\n 'data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-80 data-[state=closed]:animate-out',\n className\n )}\n onOpenAutoFocus={event => {\n // Prevents focus from shifting to the content when the dialog opens, which can cause layout shift if the content includes autofocusable elements.\n event.preventDefault();\n }}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close data-slot=\"dialog-close\" tabIndex={-1} asChild className=\"absolute top-3 right-3\">\n <CloseButton />\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\n/** Layout wrapper for the dialog title and description, stacked vertically with left alignment on wider screens. */\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"dialog-header\" className={cn('flex flex-col gap-2 text-center sm:text-left', className)} {...props} />;\n}\n\n/** Layout wrapper for dialog action buttons, stacked on mobile and right-aligned in a row on wider screens. */\nfunction DialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"dialog-footer\" className={cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', className)} {...props} />;\n}\n\n/** Accessible heading for the dialog panel, styled with the h3 heading variant and announced by screen readers. */\nfunction DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return <DialogPrimitive.Title data-slot=\"dialog-title\" className={cn(headingVariants({ level: 'h3' }), className)} {...props} />;\n}\n\n/** Muted supporting text that describes the dialog's purpose; read by screen readers alongside the title. */\nfunction DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return <DialogPrimitive.Description data-slot=\"dialog-description\" className={cn(paragraphVariants({ variant: 'muted' }), className)} {...props} />;\n}\n\nexport { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };\n"],"mappings":"yQAqCA,SAASA,EAAO,CAAE,GAAG,GAA4D,CAC/E,OAAO,EAACC,EAAgB,KAAA,CAAK,YAAU,SAAS,GAAI,GAAS,CAI/D,SAAS,EAAc,CAAE,GAAG,GAA+D,CACzF,OAAO,EAACA,EAAgB,QAAA,CAAQ,YAAU,iBAAiB,GAAI,GAAS,CAI1E,SAAS,EAAa,CAAE,GAAG,GAA8D,CACvF,OAAO,EAACA,EAAgB,OAAA,CAAO,YAAU,gBAAgB,GAAI,GAAS,CAIxE,SAAS,EAAY,CAAE,GAAG,GAA6D,CACrF,OAAO,EAACA,EAAgB,MAAA,CAAM,YAAU,eAAe,GAAI,GAAS,CAItE,SAAS,EAAc,CAAE,YAAW,GAAG,GAA+D,CACpG,OACE,EAACA,EAAgB,QAAA,CACf,YAAU,iBACV,UAAW,EACT,iCACA,2DACA,iEACA,EACD,CACD,GAAI,GACJ,CASN,SAAS,EAAc,CACrB,YACA,WACA,kBAAkB,GAClB,GAAG,GAIF,CACD,OACE,EAAC,EAAA,CAAA,SAAA,CACC,EAAC,EAAA,EAAA,CAAgB,CACjB,EAACA,EAAgB,QAAA,CACf,YAAU,iBACV,UAAW,EACT,gEACA,oDACA,8EACA,cACA,wFACA,iGACA,EACD,CACD,gBAAiB,GAAS,CAExB,EAAM,gBAAgB,EAExB,GAAI,YAEH,EACA,GACC,EAACA,EAAgB,MAAA,CAAM,YAAU,eAAe,SAAU,GAAI,QAAA,GAAQ,UAAU,kCAC9E,EAAC,EAAA,EAAA,CAAc,EACO,CAAA,EAEF,CAAA,CAAA,CACb,CAKnB,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OAAO,EAAC,MAAA,CAAI,YAAU,gBAAgB,UAAW,EAAG,+CAAgD,EAAU,CAAE,GAAI,GAAS,CAI/H,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OAAO,EAAC,MAAA,CAAI,YAAU,gBAAgB,UAAW,EAAG,yDAA0D,EAAU,CAAE,GAAI,GAAS,CAIzI,SAAS,EAAY,CAAE,YAAW,GAAG,GAA6D,CAChG,OAAO,EAACA,EAAgB,MAAA,CAAM,YAAU,eAAe,UAAW,EAAG,EAAgB,CAAE,MAAO,KAAM,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS,CAIlI,SAAS,EAAkB,CAAE,YAAW,GAAG,GAAmE,CAC5G,OAAO,EAACA,EAAgB,YAAA,CAAY,YAAU,qBAAqB,UAAW,EAAG,EAAkB,CAAE,QAAS,QAAS,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import * as react87 from "react";
|
|
2
|
+
import { Dialog } from "radix-ui";
|
|
3
|
+
|
|
4
|
+
//#region packages/components/ui/dialog.d.ts
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Accessible modal dialog built on Radix UI's Dialog primitives with animated overlay, close button, and responsive sizing.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* import {
|
|
12
|
+
* Dialog, DialogTrigger, DialogContent,
|
|
13
|
+
* DialogHeader, DialogTitle, DialogDescription, DialogFooter,
|
|
14
|
+
* } from '@customafk/lunas-ui/ui/dialog';
|
|
15
|
+
* import { Button } from '@customafk/lunas-ui/ui/button';
|
|
16
|
+
*
|
|
17
|
+
* <Dialog>
|
|
18
|
+
* <DialogTrigger asChild>
|
|
19
|
+
* <Button>Open dialog</Button>
|
|
20
|
+
* </DialogTrigger>
|
|
21
|
+
* <DialogContent>
|
|
22
|
+
* <DialogHeader>
|
|
23
|
+
* <DialogTitle>Confirm action</DialogTitle>
|
|
24
|
+
* <DialogDescription>This cannot be undone.</DialogDescription>
|
|
25
|
+
* </DialogHeader>
|
|
26
|
+
* <DialogFooter>
|
|
27
|
+
* <Button variant="outline">Cancel</Button>
|
|
28
|
+
* <Button>Confirm</Button>
|
|
29
|
+
* </DialogFooter>
|
|
30
|
+
* </DialogContent>
|
|
31
|
+
* </Dialog>
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
declare function Dialog$1({
|
|
35
|
+
...props
|
|
36
|
+
}: React.ComponentProps<typeof Dialog.Root>): react87.JSX.Element;
|
|
37
|
+
/** Element that opens the dialog when clicked; typically wrapped with `asChild` around a `Button`. */
|
|
38
|
+
declare function DialogTrigger({
|
|
39
|
+
...props
|
|
40
|
+
}: React.ComponentProps<typeof Dialog.Trigger>): react87.JSX.Element;
|
|
41
|
+
/** Renders dialog overlay and content into a portal outside the normal React tree. */
|
|
42
|
+
declare function DialogPortal({
|
|
43
|
+
...props
|
|
44
|
+
}: React.ComponentProps<typeof Dialog.Portal>): react87.JSX.Element;
|
|
45
|
+
/** Button that closes the dialog; can be composed with `asChild` to use a custom element. */
|
|
46
|
+
declare function DialogClose({
|
|
47
|
+
...props
|
|
48
|
+
}: React.ComponentProps<typeof Dialog.Close>): react87.JSX.Element;
|
|
49
|
+
/** Semi-transparent backdrop rendered behind the dialog panel with fade-in/out animation. */
|
|
50
|
+
declare function DialogOverlay({
|
|
51
|
+
className,
|
|
52
|
+
...props
|
|
53
|
+
}: React.ComponentProps<typeof Dialog.Overlay>): react87.JSX.Element;
|
|
54
|
+
/**
|
|
55
|
+
* Animated dialog panel centred on screen; includes `DialogOverlay` and an optional close button.
|
|
56
|
+
*
|
|
57
|
+
* @param showCloseButton - When `true` (default), renders a `CloseButton` in the top-right corner.
|
|
58
|
+
*/
|
|
59
|
+
declare function DialogContent({
|
|
60
|
+
className,
|
|
61
|
+
children,
|
|
62
|
+
showCloseButton,
|
|
63
|
+
...props
|
|
64
|
+
}: React.ComponentProps<typeof Dialog.Content> & {
|
|
65
|
+
/** When `true` (default), renders an `×` close button fixed to the top-right corner of the panel. */
|
|
66
|
+
showCloseButton?: boolean;
|
|
67
|
+
}): react87.JSX.Element;
|
|
68
|
+
/** Layout wrapper for the dialog title and description, stacked vertically with left alignment on wider screens. */
|
|
69
|
+
declare function DialogHeader({
|
|
70
|
+
className,
|
|
71
|
+
...props
|
|
72
|
+
}: React.ComponentProps<'div'>): react87.JSX.Element;
|
|
73
|
+
/** Layout wrapper for dialog action buttons, stacked on mobile and right-aligned in a row on wider screens. */
|
|
74
|
+
declare function DialogFooter({
|
|
75
|
+
className,
|
|
76
|
+
...props
|
|
77
|
+
}: React.ComponentProps<'div'>): react87.JSX.Element;
|
|
78
|
+
/** Accessible heading for the dialog panel, styled with the h3 heading variant and announced by screen readers. */
|
|
79
|
+
declare function DialogTitle({
|
|
80
|
+
className,
|
|
81
|
+
...props
|
|
82
|
+
}: React.ComponentProps<typeof Dialog.Title>): react87.JSX.Element;
|
|
83
|
+
/** Muted supporting text that describes the dialog's purpose; read by screen readers alongside the title. */
|
|
84
|
+
declare function DialogDescription({
|
|
85
|
+
className,
|
|
86
|
+
...props
|
|
87
|
+
}: React.ComponentProps<typeof Dialog.Description>): react87.JSX.Element;
|
|
88
|
+
//#endregion
|
|
89
|
+
export { DialogFooter as a, DialogPortal as c, DialogDescription as i, DialogTitle as l, DialogClose as n, DialogHeader as o, DialogContent as r, DialogOverlay as s, Dialog$1 as t, DialogTrigger as u };
|
|
90
|
+
//# sourceMappingURL=dialog-CYHT9WNs.d.cts.map
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import * as react81 from "react";
|
|
2
|
+
import { Dialog } from "radix-ui";
|
|
3
|
+
|
|
4
|
+
//#region packages/components/ui/dialog.d.ts
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Accessible modal dialog built on Radix UI's Dialog primitives with animated overlay, close button, and responsive sizing.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* import {
|
|
12
|
+
* Dialog, DialogTrigger, DialogContent,
|
|
13
|
+
* DialogHeader, DialogTitle, DialogDescription, DialogFooter,
|
|
14
|
+
* } from '@customafk/lunas-ui/ui/dialog';
|
|
15
|
+
* import { Button } from '@customafk/lunas-ui/ui/button';
|
|
16
|
+
*
|
|
17
|
+
* <Dialog>
|
|
18
|
+
* <DialogTrigger asChild>
|
|
19
|
+
* <Button>Open dialog</Button>
|
|
20
|
+
* </DialogTrigger>
|
|
21
|
+
* <DialogContent>
|
|
22
|
+
* <DialogHeader>
|
|
23
|
+
* <DialogTitle>Confirm action</DialogTitle>
|
|
24
|
+
* <DialogDescription>This cannot be undone.</DialogDescription>
|
|
25
|
+
* </DialogHeader>
|
|
26
|
+
* <DialogFooter>
|
|
27
|
+
* <Button variant="outline">Cancel</Button>
|
|
28
|
+
* <Button>Confirm</Button>
|
|
29
|
+
* </DialogFooter>
|
|
30
|
+
* </DialogContent>
|
|
31
|
+
* </Dialog>
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
declare function Dialog$1({
|
|
35
|
+
...props
|
|
36
|
+
}: React.ComponentProps<typeof Dialog.Root>): react81.JSX.Element;
|
|
37
|
+
/** Element that opens the dialog when clicked; typically wrapped with `asChild` around a `Button`. */
|
|
38
|
+
declare function DialogTrigger({
|
|
39
|
+
...props
|
|
40
|
+
}: React.ComponentProps<typeof Dialog.Trigger>): react81.JSX.Element;
|
|
41
|
+
/** Renders dialog overlay and content into a portal outside the normal React tree. */
|
|
42
|
+
declare function DialogPortal({
|
|
43
|
+
...props
|
|
44
|
+
}: React.ComponentProps<typeof Dialog.Portal>): react81.JSX.Element;
|
|
45
|
+
/** Button that closes the dialog; can be composed with `asChild` to use a custom element. */
|
|
46
|
+
declare function DialogClose({
|
|
47
|
+
...props
|
|
48
|
+
}: React.ComponentProps<typeof Dialog.Close>): react81.JSX.Element;
|
|
49
|
+
/** Semi-transparent backdrop rendered behind the dialog panel with fade-in/out animation. */
|
|
50
|
+
declare function DialogOverlay({
|
|
51
|
+
className,
|
|
52
|
+
...props
|
|
53
|
+
}: React.ComponentProps<typeof Dialog.Overlay>): react81.JSX.Element;
|
|
54
|
+
/**
|
|
55
|
+
* Animated dialog panel centred on screen; includes `DialogOverlay` and an optional close button.
|
|
56
|
+
*
|
|
57
|
+
* @param showCloseButton - When `true` (default), renders a `CloseButton` in the top-right corner.
|
|
58
|
+
*/
|
|
59
|
+
declare function DialogContent({
|
|
60
|
+
className,
|
|
61
|
+
children,
|
|
62
|
+
showCloseButton,
|
|
63
|
+
...props
|
|
64
|
+
}: React.ComponentProps<typeof Dialog.Content> & {
|
|
65
|
+
/** When `true` (default), renders an `×` close button fixed to the top-right corner of the panel. */
|
|
66
|
+
showCloseButton?: boolean;
|
|
67
|
+
}): react81.JSX.Element;
|
|
68
|
+
/** Layout wrapper for the dialog title and description, stacked vertically with left alignment on wider screens. */
|
|
69
|
+
declare function DialogHeader({
|
|
70
|
+
className,
|
|
71
|
+
...props
|
|
72
|
+
}: React.ComponentProps<'div'>): react81.JSX.Element;
|
|
73
|
+
/** Layout wrapper for dialog action buttons, stacked on mobile and right-aligned in a row on wider screens. */
|
|
74
|
+
declare function DialogFooter({
|
|
75
|
+
className,
|
|
76
|
+
...props
|
|
77
|
+
}: React.ComponentProps<'div'>): react81.JSX.Element;
|
|
78
|
+
/** Accessible heading for the dialog panel, styled with the h3 heading variant and announced by screen readers. */
|
|
79
|
+
declare function DialogTitle({
|
|
80
|
+
className,
|
|
81
|
+
...props
|
|
82
|
+
}: React.ComponentProps<typeof Dialog.Title>): react81.JSX.Element;
|
|
83
|
+
/** Muted supporting text that describes the dialog's purpose; read by screen readers alongside the title. */
|
|
84
|
+
declare function DialogDescription({
|
|
85
|
+
className,
|
|
86
|
+
...props
|
|
87
|
+
}: React.ComponentProps<typeof Dialog.Description>): react81.JSX.Element;
|
|
88
|
+
//#endregion
|
|
89
|
+
export { DialogFooter as a, DialogPortal as c, DialogDescription as i, DialogTitle as l, DialogClose as n, DialogHeader as o, DialogContent as r, DialogOverlay as s, Dialog$1 as t, DialogTrigger as u };
|
|
90
|
+
//# sourceMappingURL=dialog-pWSVE0gd.d.mts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";const e=require(`../chunk-
|
|
1
|
+
"use client";const e=require(`../chunk-350yNsax.cjs`);require(`../button.variants-4kw6plrv.cjs`),require(`../heading-tGTqk3pA.cjs`),require(`../paragraph-DvTZvbzw.cjs`);const t=require(`../ui/alert-dialog.cjs`);let n=require(`lucide-react`),r=require(`react`),i=require(`react/jsx-runtime`);const a=({open:e,isLoading:a=!1,title:o,description:s,cancelText:c=`Cancel`,submitText:l=`Confirm`,descriptionClassName:u,onOpenChange:d,onConfirm:f})=>{let p=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),f?.()},[f]);return(0,i.jsx)(t.AlertDialog,{open:e,onOpenChange:d,children:(0,i.jsxs)(t.AlertDialogContent,{className:`p-4 pb-5`,children:[(0,i.jsxs)(t.AlertDialogHeader,{className:`gap-2`,children:[(0,i.jsxs)(t.AlertDialogTitle,{className:`inline-flex items-center gap-x-1`,children:[(0,i.jsx)(n.TriangleAlert,{size:20}),(0,i.jsx)(`p`,{children:o})]}),(0,i.jsx)(t.AlertDialogDescription,{className:u,children:s})]}),(0,i.jsxs)(t.AlertDialogFooter,{children:[(0,i.jsx)(t.AlertDialogCancel,{children:c}),(0,i.jsx)(t.AlertDialogAction,{type:`button`,className:`min-h-9 w-full md:w-24`,onClick:p,children:a?(0,i.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:(0,i.jsx)(`div`,{className:`loader-spinner text-text-positive-weak`})}):l})]})]})})};exports.ConfirmDialog=a;
|
|
2
2
|
//# sourceMappingURL=confirm-dialog.cjs.map
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
//#region packages/components/dialogs/confirm-dialog.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Props for the {@link ConfirmDialog} component.
|
|
4
|
+
*/
|
|
5
|
+
type ConfirmDialogProps = {
|
|
6
|
+
/**
|
|
7
|
+
* Controls whether the dialog is currently open.
|
|
8
|
+
* This is a **controlled** prop — pair it with `onOpenChange` to manage state.
|
|
9
|
+
*/
|
|
10
|
+
open?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* When `true`, shows an animated spinner inside the confirm button and
|
|
13
|
+
* prevents double-submission. Typically bound to a mutation's pending state.
|
|
14
|
+
*
|
|
15
|
+
* @default false
|
|
16
|
+
*/
|
|
17
|
+
isLoading?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* The dialog heading text. Keep it short and action-oriented,
|
|
20
|
+
* e.g. `"Delete user?"` or `"Unsaved changes"`.
|
|
21
|
+
*/
|
|
22
|
+
title: string;
|
|
23
|
+
/**
|
|
24
|
+
* Body copy explaining what will happen if the user confirms.
|
|
25
|
+
* For irreversible actions, state explicitly that the action cannot be undone.
|
|
26
|
+
*/
|
|
27
|
+
description: string;
|
|
28
|
+
/**
|
|
29
|
+
* Label for the cancel / dismiss button.
|
|
30
|
+
*
|
|
31
|
+
* @default "Cancel"
|
|
32
|
+
*/
|
|
33
|
+
cancelText?: string;
|
|
34
|
+
/**
|
|
35
|
+
* Label for the confirm / submit button.
|
|
36
|
+
*
|
|
37
|
+
* @default "Confirm"
|
|
38
|
+
*/
|
|
39
|
+
submitText?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Additional class names applied to the `AlertDialogDescription` element.
|
|
42
|
+
* Useful for overriding text color or font size for specific contexts.
|
|
43
|
+
*/
|
|
44
|
+
descriptionClassName?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Callback fired when the dialog open state changes.
|
|
47
|
+
* Required to implement controlled open / close behavior.
|
|
48
|
+
*
|
|
49
|
+
* @param open - `true` when opening, `false` when closing.
|
|
50
|
+
*/
|
|
51
|
+
onOpenChange?: (open: boolean) => void;
|
|
52
|
+
/**
|
|
53
|
+
* Async-safe callback fired when the user clicks the confirm button.
|
|
54
|
+
* Supports both synchronous and `Promise`-returning functions.
|
|
55
|
+
*
|
|
56
|
+
* The dialog does **not** auto-close after `onConfirm` resolves — the caller
|
|
57
|
+
* is responsible for setting `open` to `false` once the operation completes.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```tsx
|
|
61
|
+
* onConfirm={async () => {
|
|
62
|
+
* await deleteUser(userId);
|
|
63
|
+
* setOpen(false);
|
|
64
|
+
* }}
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
onConfirm?: () => Promise<void> | void;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* A controlled confirmation dialog for destructive or irreversible actions.
|
|
71
|
+
*
|
|
72
|
+
* Built on Radix UI's `AlertDialog` primitive. Renders a warning icon, title,
|
|
73
|
+
* description, and Cancel / Confirm buttons. The confirm button supports an
|
|
74
|
+
* async loading state to prevent double-submission.
|
|
75
|
+
*
|
|
76
|
+
* **Import:** `import { ConfirmDialog } from '@customafk/lunas-ui/dialogs/confirm-dialog'`
|
|
77
|
+
*
|
|
78
|
+
* @example Delete confirmation with React state
|
|
79
|
+
* ```tsx
|
|
80
|
+
* import { useState } from 'react';
|
|
81
|
+
* import { Button } from '@customafk/lunas-ui/ui/button';
|
|
82
|
+
* import { ConfirmDialog } from '@customafk/lunas-ui/dialogs/confirm-dialog';
|
|
83
|
+
*
|
|
84
|
+
* export function DeleteUserButton({ userId }: { userId: string }) {
|
|
85
|
+
* const [open, setOpen] = useState(false);
|
|
86
|
+
* const [isPending, setIsPending] = useState(false);
|
|
87
|
+
*
|
|
88
|
+
* const handleDelete = async () => {
|
|
89
|
+
* setIsPending(true);
|
|
90
|
+
* try {
|
|
91
|
+
* await deleteUser(userId);
|
|
92
|
+
* setOpen(false);
|
|
93
|
+
* } finally {
|
|
94
|
+
* setIsPending(false);
|
|
95
|
+
* }
|
|
96
|
+
* };
|
|
97
|
+
*
|
|
98
|
+
* return (
|
|
99
|
+
* <>
|
|
100
|
+
* <Button variant="outline" color="danger" onClick={() => setOpen(true)}>
|
|
101
|
+
* Delete user
|
|
102
|
+
* </Button>
|
|
103
|
+
* <ConfirmDialog
|
|
104
|
+
* open={open}
|
|
105
|
+
* title="Delete user?"
|
|
106
|
+
* description="This action is permanent and cannot be undone."
|
|
107
|
+
* submitText="Yes, delete"
|
|
108
|
+
* isLoading={isPending}
|
|
109
|
+
* onOpenChange={setOpen}
|
|
110
|
+
* onConfirm={handleDelete}
|
|
111
|
+
* />
|
|
112
|
+
* </>
|
|
113
|
+
* );
|
|
114
|
+
* }
|
|
115
|
+
* ```
|
|
116
|
+
*
|
|
117
|
+
* @example With TanStack Query mutation
|
|
118
|
+
* ```tsx
|
|
119
|
+
* import { ConfirmDialog } from '@customafk/lunas-ui/dialogs/confirm-dialog';
|
|
120
|
+
* import { useMutation } from '@tanstack/react-query';
|
|
121
|
+
*
|
|
122
|
+
* export function ArchiveDialog({ open, onOpenChange, id }: Props) {
|
|
123
|
+
* const { mutateAsync, isPending } = useMutation({ mutationFn: archiveItem });
|
|
124
|
+
*
|
|
125
|
+
* return (
|
|
126
|
+
* <ConfirmDialog
|
|
127
|
+
* open={open}
|
|
128
|
+
* title="Archive item?"
|
|
129
|
+
* description="The item will be hidden but can be restored later."
|
|
130
|
+
* submitText="Archive"
|
|
131
|
+
* isLoading={isPending}
|
|
132
|
+
* onOpenChange={onOpenChange}
|
|
133
|
+
* onConfirm={() => mutateAsync(id).then(() => onOpenChange(false))}
|
|
134
|
+
* />
|
|
135
|
+
* );
|
|
136
|
+
* }
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
declare const ConfirmDialog: React.FC<ConfirmDialogProps>;
|
|
140
|
+
//#endregion
|
|
141
|
+
export { ConfirmDialog, ConfirmDialogProps };
|
|
142
|
+
//# sourceMappingURL=confirm-dialog.d.mts.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";import"../button.variants-DkMqWB8G.mjs";import"../heading-De4Pn3mZ.mjs";import"../paragraph-DYLaQtTV.mjs";import{AlertDialog as e,AlertDialogAction as t,AlertDialogCancel as n,AlertDialogContent as r,AlertDialogDescription as i,AlertDialogFooter as a,AlertDialogHeader as o,AlertDialogTitle as s}from"../ui/alert-dialog.mjs";import{TriangleAlert as c}from"lucide-react";import{useCallback as l}from"react";import{jsx as u,jsxs as d}from"react/jsx-runtime";const f=({open:f,isLoading:p=!1,title:m,description:h,cancelText:g=`Cancel`,submitText:_=`Confirm`,descriptionClassName:v,onOpenChange:y,onConfirm:b})=>{let x=l(e=>{e.preventDefault(),e.stopPropagation(),b?.()},[b]);return u(e,{open:f,onOpenChange:y,children:d(r,{className:`p-4 pb-5`,children:[d(o,{className:`gap-2`,children:[d(s,{className:`inline-flex items-center gap-x-1`,children:[u(c,{size:20}),u(`p`,{children:m})]}),u(i,{className:v,children:h})]}),d(a,{children:[u(n,{children:g}),u(t,{type:`button`,className:`min-h-9 w-full md:w-24`,onClick:x,children:p?u(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:u(`div`,{className:`loader-spinner text-text-positive-weak`})}):_})]})]})})};export{f as ConfirmDialog};
|
|
2
|
+
//# sourceMappingURL=confirm-dialog.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confirm-dialog.mjs","names":["ConfirmDialog: React.FC<ConfirmDialogProps>"],"sources":["../../packages/components/dialogs/confirm-dialog.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\n\nimport { TriangleAlert } from 'lucide-react';\n\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from '../ui/alert-dialog';\n\n/**\n * Props for the {@link ConfirmDialog} component.\n */\nexport type ConfirmDialogProps = {\n /**\n * Controls whether the dialog is currently open.\n * This is a **controlled** prop — pair it with `onOpenChange` to manage state.\n */\n open?: boolean;\n\n /**\n * When `true`, shows an animated spinner inside the confirm button and\n * prevents double-submission. Typically bound to a mutation's pending state.\n *\n * @default false\n */\n isLoading?: boolean;\n\n /**\n * The dialog heading text. Keep it short and action-oriented,\n * e.g. `\"Delete user?\"` or `\"Unsaved changes\"`.\n */\n title: string;\n\n /**\n * Body copy explaining what will happen if the user confirms.\n * For irreversible actions, state explicitly that the action cannot be undone.\n */\n description: string;\n\n /**\n * Label for the cancel / dismiss button.\n *\n * @default \"Cancel\"\n */\n cancelText?: string;\n\n /**\n * Label for the confirm / submit button.\n *\n * @default \"Confirm\"\n */\n submitText?: string;\n\n /**\n * Additional class names applied to the `AlertDialogDescription` element.\n * Useful for overriding text color or font size for specific contexts.\n */\n descriptionClassName?: string;\n\n /**\n * Callback fired when the dialog open state changes.\n * Required to implement controlled open / close behavior.\n *\n * @param open - `true` when opening, `false` when closing.\n */\n onOpenChange?: (open: boolean) => void;\n\n /**\n * Async-safe callback fired when the user clicks the confirm button.\n * Supports both synchronous and `Promise`-returning functions.\n *\n * The dialog does **not** auto-close after `onConfirm` resolves — the caller\n * is responsible for setting `open` to `false` once the operation completes.\n *\n * @example\n * ```tsx\n * onConfirm={async () => {\n * await deleteUser(userId);\n * setOpen(false);\n * }}\n * ```\n */\n onConfirm?: () => Promise<void> | void;\n};\n\n/**\n * A controlled confirmation dialog for destructive or irreversible actions.\n *\n * Built on Radix UI's `AlertDialog` primitive. Renders a warning icon, title,\n * description, and Cancel / Confirm buttons. The confirm button supports an\n * async loading state to prevent double-submission.\n *\n * **Import:** `import { ConfirmDialog } from '@customafk/lunas-ui/dialogs/confirm-dialog'`\n *\n * @example Delete confirmation with React state\n * ```tsx\n * import { useState } from 'react';\n * import { Button } from '@customafk/lunas-ui/ui/button';\n * import { ConfirmDialog } from '@customafk/lunas-ui/dialogs/confirm-dialog';\n *\n * export function DeleteUserButton({ userId }: { userId: string }) {\n * const [open, setOpen] = useState(false);\n * const [isPending, setIsPending] = useState(false);\n *\n * const handleDelete = async () => {\n * setIsPending(true);\n * try {\n * await deleteUser(userId);\n * setOpen(false);\n * } finally {\n * setIsPending(false);\n * }\n * };\n *\n * return (\n * <>\n * <Button variant=\"outline\" color=\"danger\" onClick={() => setOpen(true)}>\n * Delete user\n * </Button>\n * <ConfirmDialog\n * open={open}\n * title=\"Delete user?\"\n * description=\"This action is permanent and cannot be undone.\"\n * submitText=\"Yes, delete\"\n * isLoading={isPending}\n * onOpenChange={setOpen}\n * onConfirm={handleDelete}\n * />\n * </>\n * );\n * }\n * ```\n *\n * @example With TanStack Query mutation\n * ```tsx\n * import { ConfirmDialog } from '@customafk/lunas-ui/dialogs/confirm-dialog';\n * import { useMutation } from '@tanstack/react-query';\n *\n * export function ArchiveDialog({ open, onOpenChange, id }: Props) {\n * const { mutateAsync, isPending } = useMutation({ mutationFn: archiveItem });\n *\n * return (\n * <ConfirmDialog\n * open={open}\n * title=\"Archive item?\"\n * description=\"The item will be hidden but can be restored later.\"\n * submitText=\"Archive\"\n * isLoading={isPending}\n * onOpenChange={onOpenChange}\n * onConfirm={() => mutateAsync(id).then(() => onOpenChange(false))}\n * />\n * );\n * }\n * ```\n */\nexport const ConfirmDialog: React.FC<ConfirmDialogProps> = ({\n open,\n isLoading = false,\n title,\n description,\n cancelText = 'Cancel',\n submitText = 'Confirm',\n descriptionClassName,\n onOpenChange,\n onConfirm,\n}) => {\n const handleConfirm = useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n onConfirm?.();\n },\n [onConfirm]\n );\n\n return (\n <AlertDialog open={open} onOpenChange={onOpenChange}>\n <AlertDialogContent className=\"p-4 pb-5\">\n <AlertDialogHeader className=\"gap-2\">\n <AlertDialogTitle className=\"inline-flex items-center gap-x-1\">\n <TriangleAlert size={20} />\n <p>{title}</p>\n </AlertDialogTitle>\n <AlertDialogDescription className={descriptionClassName}>{description}</AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>{cancelText}</AlertDialogCancel>\n <AlertDialogAction type=\"button\" className=\"min-h-9 w-full md:w-24\" onClick={handleConfirm}>\n {isLoading ? (\n <div className=\"absolute inset-0 flex items-center justify-center\">\n <div className=\"loader-spinner text-text-positive-weak\" />\n </div>\n ) : (\n submitText\n )}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n};\n"],"mappings":"qdAmKA,MAAaA,GAA+C,CAC1D,OACA,YAAY,GACZ,QACA,cACA,aAAa,SACb,aAAa,UACb,uBACA,eACA,eACI,CACJ,IAAM,EAAgB,EACnB,GAAwB,CACvB,EAAE,gBAAgB,CAClB,EAAE,iBAAiB,CACnB,KAAa,EAEf,CAAC,EAAU,CACZ,CAED,OACE,EAAC,EAAA,CAAkB,OAAoB,wBACrC,EAAC,EAAA,CAAmB,UAAU,qBAC5B,EAAC,EAAA,CAAkB,UAAU,kBAC3B,EAAC,EAAA,CAAiB,UAAU,6CAC1B,EAAC,EAAA,CAAc,KAAM,GAAA,CAAM,CAC3B,EAAC,IAAA,CAAA,SAAG,EAAA,CAAU,CAAA,EACG,CACnB,EAAC,EAAA,CAAuB,UAAW,WAAuB,GAAqC,CAAA,EAC7E,CACpB,EAAC,EAAA,CAAA,SAAA,CACC,EAAC,EAAA,CAAA,SAAmB,EAAA,CAA+B,CACnD,EAAC,EAAA,CAAkB,KAAK,SAAS,UAAU,yBAAyB,QAAS,WAC1E,EACC,EAAC,MAAA,CAAI,UAAU,6DACb,EAAC,MAAA,CAAI,UAAU,yCAAA,CAA2C,EACtD,CAEN,GAEgB,CAAA,CAAA,CACF,CAAA,EACD,EACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";const e=require(`../../../sidebar-
|
|
1
|
+
"use client";require(`../../../button.variants-4kw6plrv.cjs`),require(`../../../button-C--DAN1D.cjs`),require(`../../../skeleton-CX1USu1w.cjs`),require(`../../../tooltip-CBdoIzoM.cjs`),require(`../../../separator-KuymG9g0.cjs`),require(`../../../sheet-CvKSi0UC.cjs`);const e=require(`../../../sidebar-D5J2gcTw.cjs`);exports.DetailDialogSidebarContent=e.t,exports.DetailDialogSidebarFooter=e.n,exports.DetailDialogSidebarGroup=e.r,exports.DetailDialogSidebarGroupAction=e.i,exports.DetailDialogSidebarGroupContent=e.a,exports.DetailDialogSidebarGroupLabel=e.o,exports.DetailDialogSidebarHeader=e.s,exports.DetailDialogSidebarMenu=e.c,exports.DetailDialogSidebarMenuAction=e.l,exports.DetailDialogSidebarMenuBadge=e.u,exports.DetailDialogSidebarMenuButton=e.d,exports.DetailDialogSidebarMenuItem=e.f,exports.DetailDialogSidebarMenuSkeleton=e.p,exports.DetailDialogSidebarMenuSub=e.m,exports.DetailDialogSidebarMenuSubButton=e.h,exports.DetailDialogSidebarMenuSubItem=e.g,exports.DetailDialogSidebarRail=e._,exports.DetailDialogSidebarSeparator=e.v,exports.DetailDialogSidebarTrigger=e.y,exports.Sidebar=e.b,exports.SidebarInset=e.x,exports.SidebarProvider=e.S,exports.useSidebar=e.C;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { t as Button } from "../../../button-DserH5cQ.cjs";
|
|
2
|
+
import { Separator } from "../../../ui/separator.cjs";
|
|
3
|
+
import { TooltipContent } from "../../../ui/tooltip.cjs";
|
|
4
|
+
import * as react2 from "react";
|
|
2
5
|
import * as class_variance_authority_types0 from "class-variance-authority/types";
|
|
3
6
|
import { VariantProps } from "class-variance-authority";
|
|
4
|
-
import { Button } from "@/components/ui/button";
|
|
5
|
-
import { Separator } from "@/components/ui/separator";
|
|
6
|
-
import { TooltipContent } from "@/components/ui/tooltip";
|
|
7
7
|
|
|
8
8
|
//#region packages/components/dialogs/detail-dialog/components/sidebar.d.ts
|
|
9
9
|
type SidebarContextProps = {
|
|
@@ -50,7 +50,7 @@ declare function SidebarProvider({
|
|
|
50
50
|
open?: boolean;
|
|
51
51
|
/** Callback fired when the open state changes in controlled mode. */
|
|
52
52
|
onOpenChange?: (open: boolean) => void;
|
|
53
|
-
}):
|
|
53
|
+
}): react2.JSX.Element;
|
|
54
54
|
/**
|
|
55
55
|
* Responsive sidebar container that supports desktop icon-collapse and a mobile Sheet overlay.
|
|
56
56
|
*
|
|
@@ -77,7 +77,7 @@ declare function Sidebar({
|
|
|
77
77
|
variant?: 'sidebar' | 'floating' | 'inset';
|
|
78
78
|
/** Collapse behaviour — slides off-canvas, shrinks to icon strip, or stays fixed. Defaults to `'offcanvas'`. */
|
|
79
79
|
collapsible?: 'offcanvas' | 'icon' | 'none';
|
|
80
|
-
}):
|
|
80
|
+
}): react2.JSX.Element;
|
|
81
81
|
/**
|
|
82
82
|
* Icon button that toggles the detail-dialog sidebar open or collapsed.
|
|
83
83
|
*
|
|
@@ -92,62 +92,62 @@ declare function DetailDialogSidebarTrigger({
|
|
|
92
92
|
className,
|
|
93
93
|
onClick,
|
|
94
94
|
...props
|
|
95
|
-
}: React.ComponentProps<typeof Button>):
|
|
95
|
+
}: React.ComponentProps<typeof Button>): react2.JSX.Element;
|
|
96
96
|
declare function DetailDialogSidebarRail({
|
|
97
97
|
className,
|
|
98
98
|
...props
|
|
99
|
-
}: React.ComponentProps<'button'>):
|
|
99
|
+
}: React.ComponentProps<'button'>): react2.JSX.Element;
|
|
100
100
|
declare function SidebarInset({
|
|
101
101
|
className,
|
|
102
102
|
...props
|
|
103
|
-
}: React.ComponentProps<'main'>):
|
|
103
|
+
}: React.ComponentProps<'main'>): react2.JSX.Element;
|
|
104
104
|
declare function DetailDialogSidebarHeader({
|
|
105
105
|
className,
|
|
106
106
|
...props
|
|
107
|
-
}: React.ComponentProps<'div'>):
|
|
107
|
+
}: React.ComponentProps<'div'>): react2.JSX.Element;
|
|
108
108
|
declare function DetailDialogSidebarFooter({
|
|
109
109
|
className,
|
|
110
110
|
children,
|
|
111
111
|
...props
|
|
112
|
-
}: React.ComponentProps<'div'>):
|
|
112
|
+
}: React.ComponentProps<'div'>): react2.JSX.Element;
|
|
113
113
|
declare function DetailDialogSidebarSeparator({
|
|
114
114
|
className,
|
|
115
115
|
...props
|
|
116
|
-
}: React.ComponentProps<typeof Separator>):
|
|
116
|
+
}: React.ComponentProps<typeof Separator>): react2.JSX.Element;
|
|
117
117
|
declare function DetailDialogSidebarContent({
|
|
118
118
|
className,
|
|
119
119
|
...props
|
|
120
|
-
}: React.ComponentProps<'div'>):
|
|
120
|
+
}: React.ComponentProps<'div'>): react2.JSX.Element;
|
|
121
121
|
declare function DetailDialogSidebarGroup({
|
|
122
122
|
className,
|
|
123
123
|
...props
|
|
124
|
-
}: React.ComponentProps<'div'>):
|
|
124
|
+
}: React.ComponentProps<'div'>): react2.JSX.Element;
|
|
125
125
|
declare function DetailDialogSidebarGroupLabel({
|
|
126
126
|
className,
|
|
127
127
|
asChild,
|
|
128
128
|
...props
|
|
129
129
|
}: React.ComponentProps<'div'> & {
|
|
130
130
|
asChild?: boolean;
|
|
131
|
-
}):
|
|
131
|
+
}): react2.JSX.Element;
|
|
132
132
|
declare function DetailDialogSidebarGroupAction({
|
|
133
133
|
className,
|
|
134
134
|
asChild,
|
|
135
135
|
...props
|
|
136
136
|
}: React.ComponentProps<'button'> & {
|
|
137
137
|
asChild?: boolean;
|
|
138
|
-
}):
|
|
138
|
+
}): react2.JSX.Element;
|
|
139
139
|
declare function DetailDialogSidebarGroupContent({
|
|
140
140
|
className,
|
|
141
141
|
...props
|
|
142
|
-
}: React.ComponentProps<'div'>):
|
|
142
|
+
}: React.ComponentProps<'div'>): react2.JSX.Element;
|
|
143
143
|
declare function DetailDialogSidebarMenu({
|
|
144
144
|
className,
|
|
145
145
|
...props
|
|
146
|
-
}: React.ComponentProps<'ul'>):
|
|
146
|
+
}: React.ComponentProps<'ul'>): react2.JSX.Element;
|
|
147
147
|
declare function DetailDialogSidebarMenuItem({
|
|
148
148
|
className,
|
|
149
149
|
...props
|
|
150
|
-
}: React.ComponentProps<'li'>):
|
|
150
|
+
}: React.ComponentProps<'li'>): react2.JSX.Element;
|
|
151
151
|
declare const sidebarMenuButtonVariants: (props?: ({
|
|
152
152
|
variant?: "default" | "outline" | null | undefined;
|
|
153
153
|
size?: "sm" | "lg" | "default" | null | undefined;
|
|
@@ -164,7 +164,7 @@ declare function DetailDialogSidebarMenuButton({
|
|
|
164
164
|
asChild?: boolean;
|
|
165
165
|
isActive?: boolean;
|
|
166
166
|
tooltip?: string | React.ComponentProps<typeof TooltipContent>;
|
|
167
|
-
} & VariantProps<typeof sidebarMenuButtonVariants>):
|
|
167
|
+
} & VariantProps<typeof sidebarMenuButtonVariants>): react2.JSX.Element;
|
|
168
168
|
declare function DetailDialogSidebarMenuAction({
|
|
169
169
|
className,
|
|
170
170
|
asChild,
|
|
@@ -173,26 +173,26 @@ declare function DetailDialogSidebarMenuAction({
|
|
|
173
173
|
}: React.ComponentProps<'button'> & {
|
|
174
174
|
asChild?: boolean;
|
|
175
175
|
showOnHover?: boolean;
|
|
176
|
-
}):
|
|
176
|
+
}): react2.JSX.Element;
|
|
177
177
|
declare function DetailDialogSidebarMenuBadge({
|
|
178
178
|
className,
|
|
179
179
|
...props
|
|
180
|
-
}: React.ComponentProps<'div'>):
|
|
180
|
+
}: React.ComponentProps<'div'>): react2.JSX.Element;
|
|
181
181
|
declare function DetailDialogSidebarMenuSkeleton({
|
|
182
182
|
className,
|
|
183
183
|
showIcon,
|
|
184
184
|
...props
|
|
185
185
|
}: React.ComponentProps<'div'> & {
|
|
186
186
|
showIcon?: boolean;
|
|
187
|
-
}):
|
|
187
|
+
}): react2.JSX.Element;
|
|
188
188
|
declare function DetailDialogSidebarMenuSub({
|
|
189
189
|
className,
|
|
190
190
|
...props
|
|
191
|
-
}: React.ComponentProps<'ul'>):
|
|
191
|
+
}: React.ComponentProps<'ul'>): react2.JSX.Element;
|
|
192
192
|
declare function DetailDialogSidebarMenuSubItem({
|
|
193
193
|
className,
|
|
194
194
|
...props
|
|
195
|
-
}: React.ComponentProps<'li'>):
|
|
195
|
+
}: React.ComponentProps<'li'>): react2.JSX.Element;
|
|
196
196
|
declare function DetailDialogSidebarMenuSubButton({
|
|
197
197
|
asChild,
|
|
198
198
|
size,
|
|
@@ -203,7 +203,7 @@ declare function DetailDialogSidebarMenuSubButton({
|
|
|
203
203
|
asChild?: boolean;
|
|
204
204
|
size?: 'sm' | 'md';
|
|
205
205
|
isActive?: boolean;
|
|
206
|
-
}):
|
|
206
|
+
}): react2.JSX.Element;
|
|
207
207
|
//#endregion
|
|
208
208
|
export { DetailDialogSidebarContent, DetailDialogSidebarFooter, DetailDialogSidebarGroup, DetailDialogSidebarGroupAction, DetailDialogSidebarGroupContent, DetailDialogSidebarGroupLabel, DetailDialogSidebarHeader, DetailDialogSidebarMenu, DetailDialogSidebarMenuAction, DetailDialogSidebarMenuBadge, DetailDialogSidebarMenuButton, DetailDialogSidebarMenuItem, DetailDialogSidebarMenuSkeleton, DetailDialogSidebarMenuSub, DetailDialogSidebarMenuSubButton, DetailDialogSidebarMenuSubItem, DetailDialogSidebarRail, DetailDialogSidebarSeparator, DetailDialogSidebarTrigger, Sidebar, SidebarInset, SidebarProvider, useSidebar };
|
|
209
209
|
//# sourceMappingURL=sidebar.d.cts.map
|