@customafk/lunas-ui 0.2.40 → 0.2.41
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-BztgYPpW.d.cts → alert-BVsYpWFX.d.cts} +5 -5
- package/dist/{alert-BzBDfGk2.js → alert-D5VmhFT9.js} +2 -2
- package/dist/{alert-BzBDfGk2.js.map → alert-D5VmhFT9.js.map} +1 -1
- package/dist/{alert-DFvMshuq.d.ts → alert-DXmXDeGs.d.ts} +5 -5
- package/dist/{alert-B2PaDJp6.cjs → alert-JwECRZfz.cjs} +2 -2
- package/dist/{alert-B2PaDJp6.cjs.map → alert-JwECRZfz.cjs.map} +1 -1
- package/dist/{button-DloFFxkz.d.ts → button-BBfGvggN.d.ts} +3 -3
- package/dist/{button-CRSezlCi.d.cts → button-BEjRVw6s.d.cts} +3 -3
- package/dist/{button.variants-CoSpd71B.js → button.variants-BruXd4VM.js} +1 -1
- package/dist/{button.variants-CoSpd71B.js.map → button.variants-BruXd4VM.js.map} +1 -1
- package/dist/{button.variants-4kw6plrv.cjs → button.variants-DgVFNsVc.cjs} +2 -2
- package/dist/{button.variants-4kw6plrv.cjs.map → button.variants-DgVFNsVc.cjs.map} +1 -1
- 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.js +1 -1
- package/dist/cards/grid-product-card.js.map +1 -1
- package/dist/cards/product-card.cjs +1 -1
- package/dist/cards/product-card.cjs.map +1 -1
- package/dist/cards/product-card.js +1 -1
- package/dist/cards/product-card.js.map +1 -1
- package/dist/cards/simple-card.cjs +1 -1
- package/dist/cards/simple-card.d.ts +2 -2
- package/dist/cards/simple-card.js +1 -1
- package/dist/chunk-Bmb41Sf3.cjs +1 -0
- package/dist/{close-Dlo1bI8x.cjs → close-Dflkky9q.cjs} +2 -2
- package/dist/{close-Dlo1bI8x.cjs.map → close-Dflkky9q.cjs.map} +1 -1
- package/dist/{close-C0PdZGxr.js → close-DrkwaVXK.js} +1 -1
- package/dist/{close-C0PdZGxr.js.map → close-DrkwaVXK.js.map} +1 -1
- package/dist/cms-layout-B8maJRLp.cjs +2 -0
- package/dist/{cms-layout-BCH4NroR.cjs.map → cms-layout-B8maJRLp.cjs.map} +1 -1
- package/dist/cms-layout-CLeGdpMb.js +2 -0
- package/dist/{cms-layout-tPwrgJZc.js.map → cms-layout-CLeGdpMb.js.map} +1 -1
- 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.ts +1 -1
- package/dist/data-display/country.js +1 -1
- package/dist/data-display/country.js.map +1 -1
- package/dist/data-display/data-list.cjs +1 -1
- 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.js +1 -1
- package/dist/data-display/date-tooltip.js.map +1 -1
- package/dist/data-display/date.cjs +2 -1
- package/dist/data-display/date.cjs.map +1 -0
- package/dist/data-display/date.js +2 -1
- package/dist/data-display/date.js.map +1 -0
- package/dist/data-display/empty.cjs +1 -1
- package/dist/data-display/name.cjs +1 -1
- package/dist/data-display/name.cjs.map +1 -1
- package/dist/data-display/name.js +1 -1
- package/dist/data-display/name.js.map +1 -1
- 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.js +1 -1
- package/dist/data-display/phone-number.js.map +1 -1
- 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.ts +1 -1
- package/dist/data-display/role-badge.js +1 -1
- package/dist/data-display/role-badge.js.map +1 -1
- package/dist/data-display/statistic.cjs +2 -1
- package/dist/data-display/statistic.cjs.map +1 -0
- package/dist/data-display/statistic.d.cts +3 -3
- package/dist/data-display/statistic.d.ts +3 -3
- package/dist/data-display/statistic.js +2 -1
- package/dist/data-display/statistic.js.map +1 -0
- package/dist/data-display/user.cjs +2 -1
- package/dist/data-display/user.cjs.map +1 -0
- package/dist/data-display/user.js +2 -1
- package/dist/data-display/user.js.map +1 -0
- package/dist/dialogs/confirm-dialog.cjs +1 -1
- package/dist/dialogs/confirm-dialog.js +1 -1
- 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.ts +26 -26
- package/dist/dialogs/detail-dialog/components/sidebar.js +1 -1
- 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.js +1 -1
- package/dist/dialogs/detail-dialog/index.js.map +1 -1
- package/dist/dialogs/error-dialog.cjs +1 -1
- package/dist/dialogs/error-dialog.js +1 -1
- package/dist/dialogs/loading-dialog.cjs +1 -1
- package/dist/dialogs/loading-dialog.cjs.map +1 -1
- package/dist/dialogs/loading-dialog.js +1 -1
- package/dist/dialogs/loading-dialog.js.map +1 -1
- 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.ts +4 -4
- package/dist/features/descriptions/index.js +1 -1
- package/dist/features/descriptions/index.js.map +1 -1
- 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.ts +2 -2
- package/dist/features/search-modal/index.js +1 -1
- package/dist/features/tables/index.cjs +1 -1
- package/dist/features/tables/index.d.cts +1 -1
- package/dist/features/tables/index.d.ts +1 -2
- package/dist/features/tables/index.js +1 -1
- package/dist/features/tanstack-form/index.cjs +1 -1
- package/dist/features/tanstack-form/index.d.cts +1 -1
- package/dist/features/tanstack-form/index.d.ts +1 -1
- package/dist/features/tanstack-form/index.js +1 -1
- 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.ts +1 -1
- package/dist/features/text-editor/index.js +1 -1
- package/dist/field-0gaEKxov.cjs +2 -0
- package/dist/{field-BrlETeXX.cjs.map → field-0gaEKxov.cjs.map} +1 -1
- package/dist/field-DG-kX3HU.js +2 -0
- package/dist/{field-DpoKF1nY.js.map → field-DG-kX3HU.js.map} +1 -1
- package/dist/{flex-DmWmOBn5.cjs → flex-BAfCk_in.cjs} +2 -2
- package/dist/{flex-DmWmOBn5.cjs.map → flex-BAfCk_in.cjs.map} +1 -1
- package/dist/{flex-CinRrgEy.js → flex-D_XtSjf4.js} +2 -2
- package/dist/{flex-CinRrgEy.js.map → flex-D_XtSjf4.js.map} +1 -1
- package/dist/{heading-tGTqk3pA.cjs → heading-BX7ZVnVg.cjs} +2 -2
- package/dist/{heading-tGTqk3pA.cjs.map → heading-BX7ZVnVg.cjs.map} +1 -1
- package/dist/{heading-Bz-hSatD.js → heading-Bw3eo6IT.js} +1 -1
- package/dist/{heading-Bz-hSatD.js.map → heading-Bw3eo6IT.js.map} +1 -1
- package/dist/{index-FIl1Am8j.d.cts → index--eHW_BCk.d.ts} +7 -7
- package/dist/{index-BlQGXGqt.d.ts → index-C257sc-c.d.ts} +1 -1
- package/dist/{index-DSciiDhn.d.cts → index-C4ZFmaZm.d.cts} +326 -326
- package/dist/{index-BX_ZHO1J.d.cts → index-DWEpRM8i.d.cts} +31 -31
- package/dist/{index-B3NschgB.d.ts → index-DnQeeNHV.d.ts} +3 -3
- package/dist/{index-0jdHH3H_.d.ts → index-_MFRCXuJ.d.cts} +2 -2
- package/dist/{index-KO98y6L0.d.cts → index-rNI5ia8r.d.cts} +1 -1
- package/dist/{index-DZVn4x4Q.d.ts → index-rZ2RtGJp.d.ts} +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +11 -11
- package/dist/index.d.ts +11 -11
- package/dist/index.js +1 -1
- 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.ts +1 -1
- package/dist/layouts/cms-layout/index.js +1 -1
- package/dist/layouts/flex.cjs +1 -1
- package/dist/layouts/flex.d.cts +5 -5
- package/dist/layouts/flex.d.ts +3 -3
- package/dist/layouts/flex.js +1 -1
- package/dist/layouts/grid.cjs +1 -1
- package/dist/layouts/payment-layout/index.cjs +1 -1
- package/dist/layouts/payment-layout/index.js +1 -1
- 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.ts +2 -2
- package/dist/pages/FeatureDeveloping.js +1 -1
- package/dist/pages/FeatureDeveloping.js.map +1 -1
- 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.ts +2 -2
- package/dist/pages/FeatureFixing.js +1 -1
- package/dist/pages/FeatureFixing.js.map +1 -1
- 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.ts +2 -2
- package/dist/pages/LoginPage.js +1 -1
- package/dist/pages/LoginPage.js.map +1 -1
- package/dist/pages/NotAuthorized.cjs +1 -1
- package/dist/pages/NotAuthorized.cjs.map +1 -1
- package/dist/pages/NotAuthorized.d.ts +2 -2
- package/dist/pages/NotAuthorized.js +1 -1
- package/dist/pages/NotAuthorized.js.map +1 -1
- 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.ts +2 -2
- package/dist/pages/NotFound.js +1 -1
- package/dist/pages/NotFound.js.map +1 -1
- 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.ts +2 -2
- package/dist/pages/RegisterPage.js +1 -1
- package/dist/pages/RegisterPage.js.map +1 -1
- 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.ts +2 -2
- package/dist/pages/VerifyEmailPage.js +1 -1
- package/dist/pages/VerifyEmailPage.js.map +1 -1
- package/dist/{paragraph-DvTZvbzw.cjs → paragraph-D0x3Jc6W.cjs} +2 -2
- package/dist/{paragraph-DvTZvbzw.cjs.map → paragraph-D0x3Jc6W.cjs.map} +1 -1
- package/dist/{paragraph-Cc13ZI4d.js → paragraph-ESjXXqHU.js} +1 -1
- package/dist/{paragraph-Cc13ZI4d.js.map → paragraph-ESjXXqHU.js.map} +1 -1
- package/dist/payment-layout-CksJbGsl.js +2 -0
- package/dist/{payment-layout-giaGvs8T.js.map → payment-layout-CksJbGsl.js.map} +1 -1
- package/dist/payment-layout-O7TNw2Cr.cjs +2 -0
- package/dist/{payment-layout-DyILfyVG.cjs.map → payment-layout-O7TNw2Cr.cjs.map} +1 -1
- package/dist/search-modal-Db8Xp2L4.cjs +2 -0
- package/dist/{search-modal-B-pzGcfP.cjs.map → search-modal-Db8Xp2L4.cjs.map} +1 -1
- package/dist/search-modal-DdonKbwA.js +2 -0
- package/dist/{search-modal-b2AE5WEW.js.map → search-modal-DdonKbwA.js.map} +1 -1
- package/dist/sidebar-BCuXtop_.js +2 -0
- package/dist/sidebar-BCuXtop_.js.map +1 -0
- package/dist/sidebar-CQZlWCK4.cjs +2 -0
- package/dist/{sidebar-D5J2gcTw.cjs.map → sidebar-CQZlWCK4.cjs.map} +1 -1
- package/dist/{skeleton-DlRDNM97.js → skeleton-DAcbjBGp.js} +1 -1
- package/dist/{skeleton-DlRDNM97.js.map → skeleton-DAcbjBGp.js.map} +1 -1
- package/dist/{skeleton-CX1USu1w.cjs → skeleton-oQFT4xR2.cjs} +2 -2
- package/dist/{skeleton-CX1USu1w.cjs.map → skeleton-oQFT4xR2.cjs.map} +1 -1
- package/dist/systems/google.cjs +1 -1
- package/dist/systems/google.js +1 -1
- package/dist/tables-DbwtCMRI.js +4 -0
- package/dist/{tables-DWQytYNm.js.map → tables-DbwtCMRI.js.map} +1 -1
- package/dist/tables-DgZbLZQP.cjs +4 -0
- package/dist/{tables-CPKHe3k-.cjs.map → tables-DgZbLZQP.cjs.map} +1 -1
- package/dist/tanstack-form-C3SGhsmN.cjs +2 -0
- package/dist/tanstack-form-C3SGhsmN.cjs.map +1 -0
- package/dist/tanstack-form-Ds_Zjt20.js +2 -0
- package/dist/tanstack-form-Ds_Zjt20.js.map +1 -0
- package/dist/text-editor-DhTxCxvH.cjs +2 -0
- package/dist/{text-editor-CvJN3nSL.cjs.map → text-editor-DhTxCxvH.cjs.map} +1 -1
- package/dist/text-editor-DwisU9_U.js +2 -0
- package/dist/{text-editor-WbS7pJJs.js.map → text-editor-DwisU9_U.js.map} +1 -1
- package/dist/typography/paragraph.cjs +1 -1
- package/dist/typography/paragraph.d.cts +4 -4
- package/dist/typography/paragraph.d.ts +3 -3
- package/dist/typography/paragraph.js +1 -1
- package/dist/typography/title.cjs +1 -1
- package/dist/ui/alert-dialog.cjs +1 -1
- package/dist/ui/alert-dialog.d.cts +12 -12
- package/dist/ui/alert-dialog.d.ts +12 -12
- package/dist/ui/alert-dialog.js +1 -1
- package/dist/ui/alert.cjs +1 -1
- package/dist/ui/alert.d.cts +1 -1
- package/dist/ui/alert.d.ts +1 -1
- package/dist/ui/alert.js +1 -1
- package/dist/ui/aspect-ratio.cjs +1 -1
- package/dist/ui/aspect-ratio.d.cts +2 -2
- package/dist/ui/aspect-ratio.d.ts +2 -2
- package/dist/ui/avatar.cjs +2 -1
- package/dist/ui/avatar.cjs.map +1 -0
- package/dist/ui/avatar.d.cts +4 -4
- package/dist/ui/avatar.d.ts +4 -4
- package/dist/ui/avatar.js +2 -1
- package/dist/ui/avatar.js.map +1 -0
- package/dist/ui/badge.cjs +2 -1
- package/dist/ui/badge.cjs.map +1 -0
- package/dist/ui/badge.d.cts +42 -2
- package/dist/ui/badge.d.ts +42 -2
- package/dist/ui/badge.js +2 -1
- package/dist/ui/badge.js.map +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.ts +8 -8
- package/dist/ui/breadcrumb.js +1 -1
- package/dist/ui/breadcrumb.js.map +1 -1
- 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.ts +7 -7
- package/dist/ui/button-group.js +1 -1
- package/dist/ui/button-group.js.map +1 -1
- package/dist/ui/button.cjs +2 -1
- package/dist/ui/button.cjs.map +1 -0
- package/dist/ui/button.d.cts +1 -1
- package/dist/ui/button.d.ts +1 -1
- package/dist/ui/button.js +2 -1
- package/dist/ui/button.js.map +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.js +1 -1
- package/dist/ui/buttons/add-new.js.map +1 -1
- package/dist/ui/buttons/edit.cjs +1 -1
- package/dist/ui/buttons/edit.cjs.map +1 -1
- package/dist/ui/buttons/edit.js +1 -1
- package/dist/ui/buttons/edit.js.map +1 -1
- package/dist/ui/buttons/refresh.cjs +1 -1
- package/dist/ui/buttons/refresh.cjs.map +1 -1
- package/dist/ui/buttons/refresh.js +1 -1
- package/dist/ui/buttons/refresh.js.map +1 -1
- package/dist/ui/buttons/trash.cjs +1 -1
- package/dist/ui/buttons/trash.cjs.map +1 -1
- package/dist/ui/buttons/trash.js +1 -1
- package/dist/ui/buttons/trash.js.map +1 -1
- 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.js +1 -1
- package/dist/ui/buttons/upload-image.js.map +1 -1
- package/dist/ui/calendar.cjs +2 -1
- package/dist/ui/calendar.cjs.map +1 -0
- package/dist/ui/calendar.d.cts +4 -4
- package/dist/ui/calendar.d.ts +4 -4
- package/dist/ui/calendar.js +2 -1
- package/dist/ui/calendar.js.map +1 -0
- package/dist/ui/card.cjs +1 -1
- package/dist/ui/card.d.cts +8 -8
- package/dist/ui/card.d.ts +8 -8
- package/dist/ui/card.js +1 -1
- 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.ts +7 -7
- package/dist/ui/carousel.js +1 -1
- package/dist/ui/carousel.js.map +1 -1
- package/dist/ui/checkbox.cjs +2 -1
- package/dist/ui/checkbox.cjs.map +1 -0
- package/dist/ui/checkbox.d.cts +2 -2
- package/dist/ui/checkbox.js +2 -1
- package/dist/ui/checkbox.js.map +1 -0
- package/dist/ui/collapsible.cjs +1 -1
- package/dist/ui/collapsible.d.cts +4 -4
- package/dist/ui/command.cjs +2 -1
- package/dist/ui/command.cjs.map +1 -0
- package/dist/ui/command.d.cts +11 -11
- package/dist/ui/command.d.ts +11 -11
- package/dist/ui/command.js +2 -1
- package/dist/ui/command.js.map +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.ts +16 -16
- package/dist/ui/dialog.cjs +2 -1
- package/dist/ui/dialog.cjs.map +1 -0
- package/dist/ui/dialog.d.cts +90 -2
- package/dist/ui/dialog.d.ts +90 -2
- package/dist/ui/dialog.js +2 -1
- package/dist/ui/dialog.js.map +1 -0
- package/dist/ui/drawer.cjs +2 -1
- package/dist/ui/drawer.cjs.map +1 -0
- package/dist/ui/drawer.d.cts +11 -11
- package/dist/ui/drawer.d.ts +11 -11
- package/dist/ui/drawer.js +2 -1
- package/dist/ui/drawer.js.map +1 -0
- package/dist/ui/dropdown-menu.cjs +2 -1
- package/dist/ui/dropdown-menu.cjs.map +1 -0
- package/dist/ui/dropdown-menu.d.cts +16 -16
- package/dist/ui/dropdown-menu.d.ts +16 -16
- package/dist/ui/dropdown-menu.js +2 -1
- package/dist/ui/dropdown-menu.js.map +1 -0
- package/dist/ui/empty.cjs +1 -1
- package/dist/ui/empty.d.cts +9 -9
- package/dist/ui/empty.d.ts +7 -7
- package/dist/ui/field.cjs +1 -1
- package/dist/ui/field.d.cts +24 -24
- package/dist/ui/field.d.ts +24 -24
- package/dist/ui/field.js +1 -1
- 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.ts +2 -2
- package/dist/ui/file-uploader.js +2 -2
- package/dist/ui/file-uploader.js.map +1 -1
- 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.ts +10 -10
- package/dist/ui/form.js +1 -1
- package/dist/ui/form.js.map +1 -1
- package/dist/ui/hover-card.cjs +1 -1
- package/dist/ui/hover-card.d.cts +4 -4
- package/dist/ui/hover-card.d.ts +4 -4
- package/dist/ui/image.cjs +2 -1
- package/dist/ui/image.cjs.map +1 -0
- package/dist/ui/image.js +2 -1
- package/dist/ui/image.js.map +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.ts +5 -5
- package/dist/ui/input-otp.js +1 -1
- package/dist/ui/input.cjs +2 -1
- package/dist/ui/input.cjs.map +1 -0
- package/dist/ui/input.d.cts +44 -2
- package/dist/ui/input.d.ts +44 -2
- package/dist/ui/input.js +2 -1
- package/dist/ui/input.js.map +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.ts +3 -3
- package/dist/ui/inputs/search-input.js +1 -1
- package/dist/ui/inputs/search-input.js.map +1 -1
- 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.ts +15 -15
- package/dist/ui/item.js +1 -1
- package/dist/ui/item.js.map +1 -1
- package/dist/ui/label.cjs +2 -1
- package/dist/ui/label.cjs.map +1 -0
- package/dist/ui/label.d.cts +2 -2
- package/dist/ui/label.d.ts +2 -2
- package/dist/ui/label.js +2 -1
- package/dist/ui/label.js.map +1 -0
- package/dist/ui/menubar.cjs +1 -1
- package/dist/ui/menubar.d.cts +17 -17
- package/dist/ui/menubar.d.ts +17 -17
- 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.ts +6 -7
- package/dist/ui/multi-select.js +1 -1
- package/dist/ui/multi-select.js.map +1 -1
- package/dist/ui/navigation-menu.cjs +1 -1
- package/dist/ui/navigation-menu.d.cts +9 -9
- package/dist/ui/navigation-menu.d.ts +9 -9
- package/dist/ui/pagination.cjs +1 -1
- package/dist/ui/pagination.d.cts +9 -9
- package/dist/ui/pagination.d.ts +9 -9
- package/dist/ui/pagination.js +1 -1
- package/dist/ui/popover.cjs +2 -1
- package/dist/ui/popover.cjs.map +1 -0
- package/dist/ui/popover.d.cts +6 -6
- package/dist/ui/popover.d.ts +6 -6
- package/dist/ui/popover.js +2 -1
- package/dist/ui/popover.js.map +1 -0
- package/dist/ui/progress.cjs +2 -1
- package/dist/ui/progress.cjs.map +1 -0
- package/dist/ui/progress.d.cts +2 -2
- package/dist/ui/progress.d.ts +2 -2
- package/dist/ui/progress.js +2 -1
- package/dist/ui/progress.js.map +1 -0
- package/dist/ui/radio-group.cjs +2 -1
- package/dist/ui/radio-group.cjs.map +1 -0
- package/dist/ui/radio-group.d.cts +3 -3
- package/dist/ui/radio-group.d.ts +3 -3
- package/dist/ui/radio-group.js +2 -1
- package/dist/ui/radio-group.js.map +1 -0
- package/dist/ui/resizable.cjs +2 -1
- package/dist/ui/resizable.cjs.map +1 -0
- package/dist/ui/resizable.d.cts +9 -9
- package/dist/ui/resizable.d.ts +9 -9
- package/dist/ui/resizable.js +2 -1
- package/dist/ui/resizable.js.map +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.ts +5 -5
- package/dist/ui/scroll-area.js +1 -1
- package/dist/ui/select.cjs +2 -1
- package/dist/ui/select.cjs.map +1 -0
- package/dist/ui/select.d.cts +9 -9
- package/dist/ui/select.d.ts +9 -9
- package/dist/ui/select.js +2 -1
- package/dist/ui/select.js.map +1 -0
- package/dist/ui/separator.cjs +2 -1
- package/dist/ui/separator.cjs.map +1 -0
- package/dist/ui/separator.d.cts +2 -2
- package/dist/ui/separator.d.ts +2 -2
- package/dist/ui/separator.js +2 -1
- package/dist/ui/separator.js.map +1 -0
- package/dist/ui/sheet.cjs +2 -1
- package/dist/ui/sheet.cjs.map +1 -0
- package/dist/ui/sheet.d.cts +9 -9
- package/dist/ui/sheet.d.ts +9 -9
- package/dist/ui/sheet.js +2 -1
- package/dist/ui/sheet.js.map +1 -0
- package/dist/ui/skeleton.cjs +1 -1
- package/dist/ui/skeleton.d.cts +2 -2
- package/dist/ui/skeleton.d.ts +2 -2
- package/dist/ui/skeleton.js +1 -1
- package/dist/ui/slider.cjs +1 -1
- package/dist/ui/slider.d.cts +2 -2
- package/dist/ui/slider.d.ts +2 -2
- package/dist/ui/slider.js +1 -1
- package/dist/ui/sonner.cjs +1 -1
- package/dist/ui/sonner.d.cts +2 -2
- package/dist/ui/sonner.d.ts +2 -2
- package/dist/ui/spinner.cjs +2 -1
- package/dist/ui/spinner.cjs.map +1 -0
- package/dist/ui/spinner.d.cts +2 -2
- package/dist/ui/spinner.d.ts +2 -2
- package/dist/ui/spinner.js +2 -1
- package/dist/ui/spinner.js.map +1 -0
- package/dist/ui/switch.cjs +2 -1
- package/dist/ui/switch.cjs.map +1 -0
- package/dist/ui/switch.d.cts +2 -2
- package/dist/ui/switch.d.ts +2 -2
- package/dist/ui/switch.js +2 -1
- package/dist/ui/switch.js.map +1 -0
- package/dist/ui/table.cjs +1 -1
- package/dist/ui/table.d.cts +17 -17
- package/dist/ui/table.d.ts +17 -17
- package/dist/ui/table.js +1 -1
- package/dist/ui/tabs.cjs +1 -1
- package/dist/ui/tabs.d.cts +5 -5
- package/dist/ui/tabs.d.ts +5 -5
- package/dist/ui/textarea.cjs +2 -1
- package/dist/ui/textarea.cjs.map +1 -0
- package/dist/ui/textarea.d.cts +2 -2
- package/dist/ui/textarea.d.ts +2 -2
- package/dist/ui/textarea.js +2 -1
- package/dist/ui/textarea.js.map +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.ts +4 -4
- package/dist/ui/toggle-group.js +1 -1
- package/dist/ui/toggle-group.js.map +1 -1
- package/dist/ui/toggle.cjs +1 -1
- package/dist/ui/toggle.d.cts +4 -4
- package/dist/ui/toggle.d.ts +4 -4
- package/dist/ui/tooltip.cjs +2 -1
- package/dist/ui/tooltip.cjs.map +1 -0
- package/dist/ui/tooltip.d.cts +5 -5
- package/dist/ui/tooltip.d.ts +5 -5
- package/dist/ui/tooltip.js +2 -1
- package/dist/ui/tooltip.js.map +1 -0
- package/package.json +1 -1
- package/dist/avatar-Hpj8lmux.js +0 -2
- package/dist/avatar-Hpj8lmux.js.map +0 -1
- package/dist/avatar-TyOphzGo.cjs +0 -2
- package/dist/avatar-TyOphzGo.cjs.map +0 -1
- package/dist/badge-BvKBYsIh.d.ts +0 -42
- package/dist/badge-CRpRXSuO.js +0 -2
- package/dist/badge-CRpRXSuO.js.map +0 -1
- package/dist/badge-KW7xu5Ca.cjs +0 -2
- package/dist/badge-KW7xu5Ca.cjs.map +0 -1
- package/dist/badge-Y-DJHIVI.d.cts +0 -42
- package/dist/button-C--DAN1D.cjs +0 -2
- package/dist/button-C--DAN1D.cjs.map +0 -1
- package/dist/button-LMMbL-uH.js +0 -2
- package/dist/button-LMMbL-uH.js.map +0 -1
- package/dist/calendar-4weBDnXz.cjs +0 -2
- package/dist/calendar-4weBDnXz.cjs.map +0 -1
- package/dist/calendar-DzPt7b6k.js +0 -2
- package/dist/calendar-DzPt7b6k.js.map +0 -1
- package/dist/checkbox-DLGDoU-1.js +0 -2
- package/dist/checkbox-DLGDoU-1.js.map +0 -1
- package/dist/checkbox-Dsq-MSbH.cjs +0 -2
- package/dist/checkbox-Dsq-MSbH.cjs.map +0 -1
- package/dist/chunk-350yNsax.cjs +0 -1
- package/dist/cms-layout-BCH4NroR.cjs +0 -2
- package/dist/cms-layout-tPwrgJZc.js +0 -2
- package/dist/command-2gUejA6g.js +0 -2
- package/dist/command-2gUejA6g.js.map +0 -1
- package/dist/command-CsP8a1Un.cjs +0 -2
- package/dist/command-CsP8a1Un.cjs.map +0 -1
- package/dist/date-BIqCFM1Z.js +0 -2
- package/dist/date-BIqCFM1Z.js.map +0 -1
- package/dist/date-D4NVl6C9.cjs +0 -2
- package/dist/date-D4NVl6C9.cjs.map +0 -1
- package/dist/dialog-BXkm3_Bk.d.ts +0 -90
- package/dist/dialog-BigPrWIj.cjs +0 -2
- package/dist/dialog-BigPrWIj.cjs.map +0 -1
- package/dist/dialog-CmutQ3rp.js +0 -2
- package/dist/dialog-CmutQ3rp.js.map +0 -1
- package/dist/dialog-DAl7wicp.d.cts +0 -90
- package/dist/dist-Cx5ufCdr.cjs +0 -2
- package/dist/dist-Cx5ufCdr.cjs.map +0 -1
- package/dist/dist-EPxjIRJp.js +0 -2
- package/dist/dist-EPxjIRJp.js.map +0 -1
- package/dist/drawer-B3qXaN5p.js +0 -2
- package/dist/drawer-B3qXaN5p.js.map +0 -1
- package/dist/drawer-BB8BZzDG.cjs +0 -2
- package/dist/drawer-BB8BZzDG.cjs.map +0 -1
- package/dist/dropdown-menu-CVh520yG.cjs +0 -2
- package/dist/dropdown-menu-CVh520yG.cjs.map +0 -1
- package/dist/dropdown-menu-DeHCVyby.js +0 -2
- package/dist/dropdown-menu-DeHCVyby.js.map +0 -1
- package/dist/field-BrlETeXX.cjs +0 -2
- package/dist/field-DpoKF1nY.js +0 -2
- package/dist/image-BpTuF_1w.js +0 -2
- package/dist/image-BpTuF_1w.js.map +0 -1
- package/dist/image-W_Yb0xTB.cjs +0 -2
- package/dist/image-W_Yb0xTB.cjs.map +0 -1
- package/dist/input-BBxY18n7.d.ts +0 -44
- package/dist/input-D59Pfu7U.d.cts +0 -44
- package/dist/input-DAfP6LZ7.js +0 -2
- package/dist/input-DAfP6LZ7.js.map +0 -1
- package/dist/input-WJ0DLHTR.cjs +0 -2
- package/dist/input-WJ0DLHTR.cjs.map +0 -1
- package/dist/label-B8cAG2kc.js +0 -2
- package/dist/label-B8cAG2kc.js.map +0 -1
- package/dist/label-CC6fXVbC.cjs +0 -2
- package/dist/label-CC6fXVbC.cjs.map +0 -1
- package/dist/payment-layout-DyILfyVG.cjs +0 -2
- package/dist/payment-layout-giaGvs8T.js +0 -2
- package/dist/popover-6233wU1s.js +0 -2
- package/dist/popover-6233wU1s.js.map +0 -1
- package/dist/popover-DBsC8Ltp.cjs +0 -2
- package/dist/popover-DBsC8Ltp.cjs.map +0 -1
- package/dist/progress-AYknlEgK.js +0 -2
- package/dist/progress-AYknlEgK.js.map +0 -1
- package/dist/progress-gvBqNiHp.cjs +0 -2
- package/dist/progress-gvBqNiHp.cjs.map +0 -1
- package/dist/radio-group-ImoBjpqZ.js +0 -2
- package/dist/radio-group-ImoBjpqZ.js.map +0 -1
- package/dist/radio-group-_TdMkv8w.cjs +0 -2
- package/dist/radio-group-_TdMkv8w.cjs.map +0 -1
- package/dist/resizable-C-M-mu6b.js +0 -2
- package/dist/resizable-C-M-mu6b.js.map +0 -1
- package/dist/resizable-sgpaHAb8.cjs +0 -2
- package/dist/resizable-sgpaHAb8.cjs.map +0 -1
- package/dist/search-modal-B-pzGcfP.cjs +0 -2
- package/dist/search-modal-b2AE5WEW.js +0 -2
- package/dist/select-CWLQHh8x.cjs +0 -2
- package/dist/select-CWLQHh8x.cjs.map +0 -1
- package/dist/select-CryLzZA0.js +0 -2
- package/dist/select-CryLzZA0.js.map +0 -1
- package/dist/separator-BM8hA4DP.js +0 -2
- package/dist/separator-BM8hA4DP.js.map +0 -1
- package/dist/separator-KuymG9g0.cjs +0 -2
- package/dist/separator-KuymG9g0.cjs.map +0 -1
- package/dist/sheet-CvKSi0UC.cjs +0 -2
- package/dist/sheet-CvKSi0UC.cjs.map +0 -1
- package/dist/sheet-DGXXYgWB.js +0 -2
- package/dist/sheet-DGXXYgWB.js.map +0 -1
- package/dist/sidebar-BDrsbzo5.js +0 -2
- package/dist/sidebar-BDrsbzo5.js.map +0 -1
- package/dist/sidebar-D5J2gcTw.cjs +0 -2
- package/dist/spinner-C1eamx3w.js +0 -2
- package/dist/spinner-C1eamx3w.js.map +0 -1
- package/dist/spinner-CFxorYEt.cjs +0 -2
- package/dist/spinner-CFxorYEt.cjs.map +0 -1
- package/dist/statistic-CYMqAYNc.js +0 -2
- package/dist/statistic-CYMqAYNc.js.map +0 -1
- package/dist/statistic-DDXilD7q.cjs +0 -2
- package/dist/statistic-DDXilD7q.cjs.map +0 -1
- package/dist/switch-BLHmdRq2.js +0 -2
- package/dist/switch-BLHmdRq2.js.map +0 -1
- package/dist/switch-DVfOV7wP.cjs +0 -2
- package/dist/switch-DVfOV7wP.cjs.map +0 -1
- package/dist/tables-CPKHe3k-.cjs +0 -4
- package/dist/tables-DWQytYNm.js +0 -4
- package/dist/tanstack-form-DatI41wz.cjs +0 -12
- package/dist/tanstack-form-DatI41wz.cjs.map +0 -1
- package/dist/tanstack-form-YVdm9V01.js +0 -12
- package/dist/tanstack-form-YVdm9V01.js.map +0 -1
- package/dist/text-editor-CvJN3nSL.cjs +0 -2
- package/dist/text-editor-WbS7pJJs.js +0 -2
- package/dist/textarea-Bp6VvhiA.js +0 -2
- package/dist/textarea-Bp6VvhiA.js.map +0 -1
- package/dist/textarea-Cc9CF8wD.cjs +0 -2
- package/dist/textarea-Cc9CF8wD.cjs.map +0 -1
- package/dist/tooltip-CBdoIzoM.cjs +0 -2
- package/dist/tooltip-CBdoIzoM.cjs.map +0 -1
- package/dist/tooltip-CVIl6Hln.js +0 -2
- package/dist/tooltip-CVIl6Hln.js.map +0 -1
- package/dist/types-BD1t0Bj8.cjs +0 -2
- package/dist/types-BD1t0Bj8.cjs.map +0 -1
- package/dist/types-BVSfF-1o.d.ts +0 -24
- package/dist/types-BZqffRVJ.js +0 -2
- package/dist/types-BZqffRVJ.js.map +0 -1
- package/dist/types-Cc_mLRAn.d.cts +0 -24
- package/dist/user-BSpgswEC.js +0 -2
- package/dist/user-BSpgswEC.js.map +0 -1
- package/dist/user-ii4FBhO1.cjs +0 -2
- package/dist/user-ii4FBhO1.cjs.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";import{
|
|
1
|
+
"use client";import{Badge as e}from"../ui/badge.js";import{jsx as t}from"react/jsx-runtime";import{ERole as n}from"@/types";const r={[n.ADMIN]:`primary`,[n.SUPER_ADMIN]:`danger`,[n.MODERATOR]:`info`,[n.STAFF]:`accent`,[n.USER]:`muted`},i={[n.SUPER_ADMIN]:`Super Admin`,[n.ADMIN]:`Admin`,[n.MODERATOR]:`Moderator`,[n.STAFF]:`Staff`,[n.USER]:`User`},a=({status:n})=>t(e,{"data-slot":`role-badge`,color:r[n],className:`min-w-24 justify-center`,children:i[n]});export{a as RoleBadge};
|
|
2
2
|
//# sourceMappingURL=role-badge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role-badge.js","names":["ROLE_COLORS: Record<ERole, React.ComponentProps<typeof Badge>['color']>","ROLE_LABELS: Record<ERole, string>","RoleBadge: React.FC<RoleBadgeProps>"],"sources":["../../packages/components/data-display/role-badge.tsx"],"sourcesContent":["'use client';\n\nimport { ERole } from '@/types';\n\nimport { Badge } from '../ui/badge';\n\nconst ROLE_COLORS: Record<ERole, React.ComponentProps<typeof Badge>['color']> = {\n [ERole.ADMIN]: 'primary',\n [ERole.SUPER_ADMIN]: 'danger',\n [ERole.MODERATOR]: 'info',\n [ERole.STAFF]: 'accent',\n [ERole.USER]: 'muted',\n};\n\nconst ROLE_LABELS: Record<ERole, string> = {\n [ERole.SUPER_ADMIN]: 'Super Admin',\n [ERole.ADMIN]: 'Admin',\n [ERole.MODERATOR]: 'Moderator',\n [ERole.STAFF]: 'Staff',\n [ERole.USER]: 'User',\n};\n\ntype RoleBadgeProps = {\n /** The user role enum value that determines the badge label and colour. */\n status: ERole;\n};\n\n/**\n * Renders a colour-coded badge for a user role (e.g. Admin, Staff, User).\n *\n * @example\n * ```tsx\n * import { RoleBadge } from '@customafk/lunas-ui/data-display/role-badge';\n * import { ERole } from '@customafk/lunas-ui/types';\n *\n * <RoleBadge status={ERole.ADMIN} />\n * ```\n */\nexport const RoleBadge: React.FC<RoleBadgeProps> = ({ status }) => {\n return (\n <Badge data-slot=\"role-badge\" color={ROLE_COLORS[status]} className=\"min-w-24 justify-center\">\n {ROLE_LABELS[status]}\n </Badge>\n );\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"role-badge.js","names":["ROLE_COLORS: Record<ERole, React.ComponentProps<typeof Badge>['color']>","ROLE_LABELS: Record<ERole, string>","RoleBadge: React.FC<RoleBadgeProps>"],"sources":["../../packages/components/data-display/role-badge.tsx"],"sourcesContent":["'use client';\n\nimport { ERole } from '@/types';\n\nimport { Badge } from '../ui/badge';\n\nconst ROLE_COLORS: Record<ERole, React.ComponentProps<typeof Badge>['color']> = {\n [ERole.ADMIN]: 'primary',\n [ERole.SUPER_ADMIN]: 'danger',\n [ERole.MODERATOR]: 'info',\n [ERole.STAFF]: 'accent',\n [ERole.USER]: 'muted',\n};\n\nconst ROLE_LABELS: Record<ERole, string> = {\n [ERole.SUPER_ADMIN]: 'Super Admin',\n [ERole.ADMIN]: 'Admin',\n [ERole.MODERATOR]: 'Moderator',\n [ERole.STAFF]: 'Staff',\n [ERole.USER]: 'User',\n};\n\ntype RoleBadgeProps = {\n /** The user role enum value that determines the badge label and colour. */\n status: ERole;\n};\n\n/**\n * Renders a colour-coded badge for a user role (e.g. Admin, Staff, User).\n *\n * @example\n * ```tsx\n * import { RoleBadge } from '@customafk/lunas-ui/data-display/role-badge';\n * import { ERole } from '@customafk/lunas-ui/types';\n *\n * <RoleBadge status={ERole.ADMIN} />\n * ```\n */\nexport const RoleBadge: React.FC<RoleBadgeProps> = ({ status }) => {\n return (\n <Badge data-slot=\"role-badge\" color={ROLE_COLORS[status]} className=\"min-w-24 justify-center\">\n {ROLE_LABELS[status]}\n </Badge>\n );\n};\n"],"mappings":"4HAMA,MAAMA,EAA0E,EAC7E,EAAM,OAAQ,WACd,EAAM,aAAc,UACpB,EAAM,WAAY,QAClB,EAAM,OAAQ,UACd,EAAM,MAAO,QACf,CAEKC,EAAqC,EACxC,EAAM,aAAc,eACpB,EAAM,OAAQ,SACd,EAAM,WAAY,aAClB,EAAM,OAAQ,SACd,EAAM,MAAO,OACf,CAkBYC,GAAuC,CAAE,YAElD,EAAC,EAAA,CAAM,YAAU,aAAa,MAAO,EAAY,GAAS,UAAU,mCACjE,EAAY,IACP"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use client";const e=require(`../
|
|
1
|
+
"use client";const e=require(`../chunk-Bmb41Sf3.cjs`);let t=require(`@customafk/react-toolkit/utils`),n=require(`class-variance-authority`),r=require(`react/jsx-runtime`),i=require(`react`);const a=(0,n.cva)(`inline-flex items-center gap-1 font-number tabular-nums transition-colors`,{variants:{size:{xs:`text-xs`,sm:`text-sm`,md:`text-base`,lg:`text-lg`,xl:`text-xl`},trend:{neutral:`text-text-positive-strong`,up:`text-success`,down:`text-danger`}},defaultVariants:{size:`lg`,trend:`neutral`}}),o=(0,i.memo)(({decimalSeparator:e=`.`,groupSeparator:n=`,`,prefix:o,suffix:s,precision:c,roundingMode:l=`round`,showTrailingZeros:u=!1,size:d=`lg`,trend:f=`neutral`,value:p,className:m})=>{let h=(0,i.useCallback)((e,t)=>{let n=10**t;switch(l){case`floor`:return Math.floor(e*n)/n;case`ceil`:return Math.ceil(e*n)/n;default:return Math.round(e*n)/n}},[l]),g=(0,i.useMemo)(()=>{let e={};return typeof c==`number`&&c>=0&&(u&&(e.minimumFractionDigits=c),e.maximumFractionDigits=c),e},[c,u]),_=(0,i.useCallback)(e=>{let t=e;return typeof c==`number`&&c>=0&&(t=h(e,c)),t.toLocaleString(`en-US`,g)},[h,g,c]),v=(0,i.useMemo)(()=>{if(typeof p==`number`)return Number.isNaN(p)||!Number.isFinite(p)?`N/A`:_(p);if(typeof p==`string`){let e=p.trim();if(!e)return`N/A`;let t=Number(e);return Number.isNaN(t)||!Number.isFinite(t)?`N/A`:_(t)}return`N/A`},[p,_]),y=(0,i.useMemo)(()=>e===`.`&&n===`,`?v:v.replace(/,/g,n).replace(/\./g,e),[v,e,n]);return(0,r.jsxs)(`div`,{"data-slot":`statistic`,className:(0,t.cn)(a({size:d,trend:f}),m),children:[o&&(0,r.jsx)(`span`,{"data-slot":`statistic-prefix`,children:o}),(0,r.jsx)(`p`,{"data-slot":`statistic-value`,children:y}),s&&(0,r.jsx)(`span`,{"data-slot":`statistic-suffix`,children:s})]})});o.displayName=`Statistic`,exports.Statistic=o;
|
|
2
|
+
//# sourceMappingURL=statistic.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statistic.cjs","names":["options: Intl.NumberFormatOptions"],"sources":["../../packages/components/data-display/statistic.tsx"],"sourcesContent":["'use client';\n\nimport { memo, useCallback, useMemo } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nconst statisticVariants = cva('inline-flex items-center gap-1 font-number tabular-nums transition-colors', {\n variants: {\n size: {\n xs: 'text-xs',\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n xl: 'text-xl',\n },\n trend: {\n neutral: 'text-text-positive-strong',\n up: 'text-success',\n down: 'text-danger',\n },\n },\n defaultVariants: {\n size: 'lg',\n trend: 'neutral',\n },\n});\n\nexport type StatisticProps = VariantProps<typeof statisticVariants> & {\n /** Character used to separate the decimal part. Defaults to `'.'`. */\n decimalSeparator?: string;\n /** Character used to separate thousands groups. Defaults to `','`. */\n groupSeparator?: string;\n /** Optional node rendered before the numeric value (e.g. a currency symbol). */\n prefix?: React.ReactNode;\n /** Optional node rendered after the numeric value (e.g. a unit label). */\n suffix?: React.ReactNode;\n /** Number of decimal digits to display; omit to show all significant digits. */\n precision?: number;\n /** Rounding strategy applied before formatting. Defaults to `'round'`. */\n roundingMode?: 'round' | 'floor' | 'ceil';\n /** When `true`, pads the decimal part with trailing zeros up to `precision`. Defaults to `false`. */\n showTrailingZeros?: boolean;\n /** The numeric (or numeric-string) value to format and display. */\n value: number | string;\n /** Additional CSS classes applied to the wrapper element. */\n className?: string;\n /** Colour trend indicator: `'neutral'` (default), `'up'` (green), or `'down'` (red). */\n trend?: 'neutral' | 'up' | 'down';\n};\n\n/**\n * A memoised numeric display component with locale-aware formatting, optional prefix/suffix, trend colouring, and configurable rounding.\n *\n * @example\n * ```tsx\n * import { Statistic } from '@customafk/lunas-ui/data-display/statistic';\n *\n * <Statistic value={1234567.89} precision={2} prefix=\"$\" trend=\"up\" size=\"lg\" />\n * ```\n */\nexport const Statistic = memo(\n ({\n decimalSeparator = '.',\n groupSeparator = ',',\n prefix: Prefix,\n suffix: Suffix,\n precision,\n roundingMode = 'round',\n showTrailingZeros = false,\n size = 'lg',\n trend = 'neutral',\n value,\n className,\n }: StatisticProps) => {\n const applyRounding = useCallback(\n (num: number, precisionValue: number): number => {\n const multiplier = 10 ** precisionValue;\n switch (roundingMode) {\n case 'floor':\n return Math.floor(num * multiplier) / multiplier;\n case 'ceil':\n return Math.ceil(num * multiplier) / multiplier;\n default:\n return Math.round(num * multiplier) / multiplier;\n }\n },\n [roundingMode]\n );\n\n const formatOptions = useMemo((): Intl.NumberFormatOptions => {\n const options: Intl.NumberFormatOptions = {};\n if (typeof precision === 'number' && precision >= 0) {\n if (showTrailingZeros) {\n options.minimumFractionDigits = precision;\n options.maximumFractionDigits = precision;\n } else {\n options.maximumFractionDigits = precision;\n }\n }\n return options;\n }, [precision, showTrailingZeros]);\n\n const formatNumber = useCallback(\n (num: number): string => {\n let processedNum = num;\n if (typeof precision === 'number' && precision >= 0) {\n processedNum = applyRounding(num, precision);\n }\n return processedNum.toLocaleString('en-US', formatOptions);\n },\n [applyRounding, formatOptions, precision]\n );\n\n const processedValue = useMemo((): string => {\n if (typeof value === 'number') {\n if (Number.isNaN(value) || !Number.isFinite(value)) return 'N/A';\n return formatNumber(value);\n }\n if (typeof value === 'string') {\n const trimmedValue = value.trim();\n if (!trimmedValue) return 'N/A';\n const numValue = Number(trimmedValue);\n if (Number.isNaN(numValue) || !Number.isFinite(numValue)) return 'N/A';\n return formatNumber(numValue);\n }\n return 'N/A';\n }, [value, formatNumber]);\n\n const finalFormattedValue = useMemo((): string => {\n if (decimalSeparator === '.' && groupSeparator === ',') return processedValue;\n return processedValue.replace(/,/g, groupSeparator).replace(/\\./g, decimalSeparator);\n }, [processedValue, decimalSeparator, groupSeparator]);\n\n return (\n <div data-slot=\"statistic\" className={cn(statisticVariants({ size, trend }), className)}>\n {Prefix && <span data-slot=\"statistic-prefix\">{Prefix}</span>}\n <p data-slot=\"statistic-value\">{finalFormattedValue}</p>\n {Suffix && <span data-slot=\"statistic-suffix\">{Suffix}</span>}\n </div>\n );\n }\n);\nStatistic.displayName = 'Statistic';\n"],"mappings":"8LAMA,MAAM,GAAA,EAAA,EAAA,KAAwB,4EAA6E,CACzG,SAAU,CACR,KAAM,CACJ,GAAI,UACJ,GAAI,UACJ,GAAI,YACJ,GAAI,UACJ,GAAI,UACL,CACD,MAAO,CACL,QAAS,4BACT,GAAI,eACJ,KAAM,cACP,CACF,CACD,gBAAiB,CACf,KAAM,KACN,MAAO,UACR,CACF,CAAC,CAmCW,GAAA,EAAA,EAAA,OACV,CACC,mBAAmB,IACnB,iBAAiB,IACjB,OAAQ,EACR,OAAQ,EACR,YACA,eAAe,QACf,oBAAoB,GACpB,OAAO,KACP,QAAQ,UACR,QACA,eACoB,CACpB,IAAM,GAAA,EAAA,EAAA,cACH,EAAa,IAAmC,CAC/C,IAAM,EAAa,IAAM,EACzB,OAAQ,EAAR,CACE,IAAK,QACH,OAAO,KAAK,MAAM,EAAM,EAAW,CAAG,EACxC,IAAK,OACH,OAAO,KAAK,KAAK,EAAM,EAAW,CAAG,EACvC,QACE,OAAO,KAAK,MAAM,EAAM,EAAW,CAAG,IAG5C,CAAC,EAAa,CACf,CAEK,GAAA,EAAA,EAAA,aAAwD,CAC5D,IAAMA,EAAoC,EAAE,CAS5C,OARI,OAAO,GAAc,UAAY,GAAa,IAC5C,IACF,EAAQ,sBAAwB,GAGhC,EAAQ,sBAAwB,GAG7B,GACN,CAAC,EAAW,EAAkB,CAAC,CAE5B,GAAA,EAAA,EAAA,aACH,GAAwB,CACvB,IAAI,EAAe,EAInB,OAHI,OAAO,GAAc,UAAY,GAAa,IAChD,EAAe,EAAc,EAAK,EAAU,EAEvC,EAAa,eAAe,QAAS,EAAc,EAE5D,CAAC,EAAe,EAAe,EAAU,CAC1C,CAEK,GAAA,EAAA,EAAA,aAAuC,CAC3C,GAAI,OAAO,GAAU,SAEnB,OADI,OAAO,MAAM,EAAM,EAAI,CAAC,OAAO,SAAS,EAAM,CAAS,MACpD,EAAa,EAAM,CAE5B,GAAI,OAAO,GAAU,SAAU,CAC7B,IAAM,EAAe,EAAM,MAAM,CACjC,GAAI,CAAC,EAAc,MAAO,MAC1B,IAAM,EAAW,OAAO,EAAa,CAErC,OADI,OAAO,MAAM,EAAS,EAAI,CAAC,OAAO,SAAS,EAAS,CAAS,MAC1D,EAAa,EAAS,CAE/B,MAAO,OACN,CAAC,EAAO,EAAa,CAAC,CAEnB,GAAA,EAAA,EAAA,aACA,IAAqB,KAAO,IAAmB,IAAY,EACxD,EAAe,QAAQ,KAAM,EAAe,CAAC,QAAQ,MAAO,EAAiB,CACnF,CAAC,EAAgB,EAAkB,EAAe,CAAC,CAEtD,OACE,EAAA,EAAA,MAAC,MAAA,CAAI,YAAU,YAAY,WAAA,EAAA,EAAA,IAAc,EAAkB,CAAE,OAAM,QAAO,CAAC,CAAE,EAAU,WACpF,IAAU,EAAA,EAAA,KAAC,OAAA,CAAK,YAAU,4BAAoB,GAAc,EAC7D,EAAA,EAAA,KAAC,IAAA,CAAE,YAAU,2BAAmB,GAAwB,CACvD,IAAU,EAAA,EAAA,KAAC,OAAA,CAAK,YAAU,4BAAoB,GAAc,GACzD,EAGX,CACD,EAAU,YAAc"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react1 from "react";
|
|
2
2
|
import * as class_variance_authority_types0 from "class-variance-authority/types";
|
|
3
3
|
import { VariantProps } from "class-variance-authority";
|
|
4
4
|
|
|
@@ -39,7 +39,7 @@ type StatisticProps = VariantProps<typeof statisticVariants> & {
|
|
|
39
39
|
* <Statistic value={1234567.89} precision={2} prefix="$" trend="up" size="lg" />
|
|
40
40
|
* ```
|
|
41
41
|
*/
|
|
42
|
-
declare const Statistic:
|
|
42
|
+
declare const Statistic: react1.MemoExoticComponent<({
|
|
43
43
|
decimalSeparator,
|
|
44
44
|
groupSeparator,
|
|
45
45
|
prefix: Prefix,
|
|
@@ -51,7 +51,7 @@ declare const Statistic: react0.MemoExoticComponent<({
|
|
|
51
51
|
trend,
|
|
52
52
|
value,
|
|
53
53
|
className
|
|
54
|
-
}: StatisticProps) =>
|
|
54
|
+
}: StatisticProps) => react1.JSX.Element>;
|
|
55
55
|
//#endregion
|
|
56
56
|
export { Statistic, StatisticProps };
|
|
57
57
|
//# sourceMappingURL=statistic.d.cts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as react0 from "react";
|
|
2
1
|
import { VariantProps } from "class-variance-authority";
|
|
2
|
+
import * as react4 from "react";
|
|
3
3
|
import * as class_variance_authority_types0 from "class-variance-authority/types";
|
|
4
4
|
|
|
5
5
|
//#region packages/components/data-display/statistic.d.ts
|
|
@@ -39,7 +39,7 @@ type StatisticProps = VariantProps<typeof statisticVariants> & {
|
|
|
39
39
|
* <Statistic value={1234567.89} precision={2} prefix="$" trend="up" size="lg" />
|
|
40
40
|
* ```
|
|
41
41
|
*/
|
|
42
|
-
declare const Statistic:
|
|
42
|
+
declare const Statistic: react4.MemoExoticComponent<({
|
|
43
43
|
decimalSeparator,
|
|
44
44
|
groupSeparator,
|
|
45
45
|
prefix: Prefix,
|
|
@@ -51,7 +51,7 @@ declare const Statistic: react0.MemoExoticComponent<({
|
|
|
51
51
|
trend,
|
|
52
52
|
value,
|
|
53
53
|
className
|
|
54
|
-
}: StatisticProps) =>
|
|
54
|
+
}: StatisticProps) => react4.JSX.Element>;
|
|
55
55
|
//#endregion
|
|
56
56
|
export { Statistic, StatisticProps };
|
|
57
57
|
//# sourceMappingURL=statistic.d.ts.map
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use client";import{
|
|
1
|
+
"use client";import{cn as e}from"@customafk/react-toolkit/utils";import{cva as t}from"class-variance-authority";import{jsx as n,jsxs as r}from"react/jsx-runtime";import{memo as i,useCallback as a,useMemo as o}from"react";const s=t(`inline-flex items-center gap-1 font-number tabular-nums transition-colors`,{variants:{size:{xs:`text-xs`,sm:`text-sm`,md:`text-base`,lg:`text-lg`,xl:`text-xl`},trend:{neutral:`text-text-positive-strong`,up:`text-success`,down:`text-danger`}},defaultVariants:{size:`lg`,trend:`neutral`}}),c=i(({decimalSeparator:t=`.`,groupSeparator:i=`,`,prefix:c,suffix:l,precision:u,roundingMode:d=`round`,showTrailingZeros:f=!1,size:p=`lg`,trend:m=`neutral`,value:h,className:g})=>{let _=a((e,t)=>{let n=10**t;switch(d){case`floor`:return Math.floor(e*n)/n;case`ceil`:return Math.ceil(e*n)/n;default:return Math.round(e*n)/n}},[d]),v=o(()=>{let e={};return typeof u==`number`&&u>=0&&(f&&(e.minimumFractionDigits=u),e.maximumFractionDigits=u),e},[u,f]),y=a(e=>{let t=e;return typeof u==`number`&&u>=0&&(t=_(e,u)),t.toLocaleString(`en-US`,v)},[_,v,u]),b=o(()=>{if(typeof h==`number`)return Number.isNaN(h)||!Number.isFinite(h)?`N/A`:y(h);if(typeof h==`string`){let e=h.trim();if(!e)return`N/A`;let t=Number(e);return Number.isNaN(t)||!Number.isFinite(t)?`N/A`:y(t)}return`N/A`},[h,y]),x=o(()=>t===`.`&&i===`,`?b:b.replace(/,/g,i).replace(/\./g,t),[b,t,i]);return r(`div`,{"data-slot":`statistic`,className:e(s({size:p,trend:m}),g),children:[c&&n(`span`,{"data-slot":`statistic-prefix`,children:c}),n(`p`,{"data-slot":`statistic-value`,children:x}),l&&n(`span`,{"data-slot":`statistic-suffix`,children:l})]})});c.displayName=`Statistic`;export{c as Statistic};
|
|
2
|
+
//# sourceMappingURL=statistic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statistic.js","names":["options: Intl.NumberFormatOptions"],"sources":["../../packages/components/data-display/statistic.tsx"],"sourcesContent":["'use client';\n\nimport { memo, useCallback, useMemo } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nconst statisticVariants = cva('inline-flex items-center gap-1 font-number tabular-nums transition-colors', {\n variants: {\n size: {\n xs: 'text-xs',\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n xl: 'text-xl',\n },\n trend: {\n neutral: 'text-text-positive-strong',\n up: 'text-success',\n down: 'text-danger',\n },\n },\n defaultVariants: {\n size: 'lg',\n trend: 'neutral',\n },\n});\n\nexport type StatisticProps = VariantProps<typeof statisticVariants> & {\n /** Character used to separate the decimal part. Defaults to `'.'`. */\n decimalSeparator?: string;\n /** Character used to separate thousands groups. Defaults to `','`. */\n groupSeparator?: string;\n /** Optional node rendered before the numeric value (e.g. a currency symbol). */\n prefix?: React.ReactNode;\n /** Optional node rendered after the numeric value (e.g. a unit label). */\n suffix?: React.ReactNode;\n /** Number of decimal digits to display; omit to show all significant digits. */\n precision?: number;\n /** Rounding strategy applied before formatting. Defaults to `'round'`. */\n roundingMode?: 'round' | 'floor' | 'ceil';\n /** When `true`, pads the decimal part with trailing zeros up to `precision`. Defaults to `false`. */\n showTrailingZeros?: boolean;\n /** The numeric (or numeric-string) value to format and display. */\n value: number | string;\n /** Additional CSS classes applied to the wrapper element. */\n className?: string;\n /** Colour trend indicator: `'neutral'` (default), `'up'` (green), or `'down'` (red). */\n trend?: 'neutral' | 'up' | 'down';\n};\n\n/**\n * A memoised numeric display component with locale-aware formatting, optional prefix/suffix, trend colouring, and configurable rounding.\n *\n * @example\n * ```tsx\n * import { Statistic } from '@customafk/lunas-ui/data-display/statistic';\n *\n * <Statistic value={1234567.89} precision={2} prefix=\"$\" trend=\"up\" size=\"lg\" />\n * ```\n */\nexport const Statistic = memo(\n ({\n decimalSeparator = '.',\n groupSeparator = ',',\n prefix: Prefix,\n suffix: Suffix,\n precision,\n roundingMode = 'round',\n showTrailingZeros = false,\n size = 'lg',\n trend = 'neutral',\n value,\n className,\n }: StatisticProps) => {\n const applyRounding = useCallback(\n (num: number, precisionValue: number): number => {\n const multiplier = 10 ** precisionValue;\n switch (roundingMode) {\n case 'floor':\n return Math.floor(num * multiplier) / multiplier;\n case 'ceil':\n return Math.ceil(num * multiplier) / multiplier;\n default:\n return Math.round(num * multiplier) / multiplier;\n }\n },\n [roundingMode]\n );\n\n const formatOptions = useMemo((): Intl.NumberFormatOptions => {\n const options: Intl.NumberFormatOptions = {};\n if (typeof precision === 'number' && precision >= 0) {\n if (showTrailingZeros) {\n options.minimumFractionDigits = precision;\n options.maximumFractionDigits = precision;\n } else {\n options.maximumFractionDigits = precision;\n }\n }\n return options;\n }, [precision, showTrailingZeros]);\n\n const formatNumber = useCallback(\n (num: number): string => {\n let processedNum = num;\n if (typeof precision === 'number' && precision >= 0) {\n processedNum = applyRounding(num, precision);\n }\n return processedNum.toLocaleString('en-US', formatOptions);\n },\n [applyRounding, formatOptions, precision]\n );\n\n const processedValue = useMemo((): string => {\n if (typeof value === 'number') {\n if (Number.isNaN(value) || !Number.isFinite(value)) return 'N/A';\n return formatNumber(value);\n }\n if (typeof value === 'string') {\n const trimmedValue = value.trim();\n if (!trimmedValue) return 'N/A';\n const numValue = Number(trimmedValue);\n if (Number.isNaN(numValue) || !Number.isFinite(numValue)) return 'N/A';\n return formatNumber(numValue);\n }\n return 'N/A';\n }, [value, formatNumber]);\n\n const finalFormattedValue = useMemo((): string => {\n if (decimalSeparator === '.' && groupSeparator === ',') return processedValue;\n return processedValue.replace(/,/g, groupSeparator).replace(/\\./g, decimalSeparator);\n }, [processedValue, decimalSeparator, groupSeparator]);\n\n return (\n <div data-slot=\"statistic\" className={cn(statisticVariants({ size, trend }), className)}>\n {Prefix && <span data-slot=\"statistic-prefix\">{Prefix}</span>}\n <p data-slot=\"statistic-value\">{finalFormattedValue}</p>\n {Suffix && <span data-slot=\"statistic-suffix\">{Suffix}</span>}\n </div>\n );\n }\n);\nStatistic.displayName = 'Statistic';\n"],"mappings":"6NAMA,MAAM,EAAoB,EAAI,4EAA6E,CACzG,SAAU,CACR,KAAM,CACJ,GAAI,UACJ,GAAI,UACJ,GAAI,YACJ,GAAI,UACJ,GAAI,UACL,CACD,MAAO,CACL,QAAS,4BACT,GAAI,eACJ,KAAM,cACP,CACF,CACD,gBAAiB,CACf,KAAM,KACN,MAAO,UACR,CACF,CAAC,CAmCW,EAAY,GACtB,CACC,mBAAmB,IACnB,iBAAiB,IACjB,OAAQ,EACR,OAAQ,EACR,YACA,eAAe,QACf,oBAAoB,GACpB,OAAO,KACP,QAAQ,UACR,QACA,eACoB,CACpB,IAAM,EAAgB,GACnB,EAAa,IAAmC,CAC/C,IAAM,EAAa,IAAM,EACzB,OAAQ,EAAR,CACE,IAAK,QACH,OAAO,KAAK,MAAM,EAAM,EAAW,CAAG,EACxC,IAAK,OACH,OAAO,KAAK,KAAK,EAAM,EAAW,CAAG,EACvC,QACE,OAAO,KAAK,MAAM,EAAM,EAAW,CAAG,IAG5C,CAAC,EAAa,CACf,CAEK,EAAgB,MAAwC,CAC5D,IAAMA,EAAoC,EAAE,CAS5C,OARI,OAAO,GAAc,UAAY,GAAa,IAC5C,IACF,EAAQ,sBAAwB,GAGhC,EAAQ,sBAAwB,GAG7B,GACN,CAAC,EAAW,EAAkB,CAAC,CAE5B,EAAe,EAClB,GAAwB,CACvB,IAAI,EAAe,EAInB,OAHI,OAAO,GAAc,UAAY,GAAa,IAChD,EAAe,EAAc,EAAK,EAAU,EAEvC,EAAa,eAAe,QAAS,EAAc,EAE5D,CAAC,EAAe,EAAe,EAAU,CAC1C,CAEK,EAAiB,MAAsB,CAC3C,GAAI,OAAO,GAAU,SAEnB,OADI,OAAO,MAAM,EAAM,EAAI,CAAC,OAAO,SAAS,EAAM,CAAS,MACpD,EAAa,EAAM,CAE5B,GAAI,OAAO,GAAU,SAAU,CAC7B,IAAM,EAAe,EAAM,MAAM,CACjC,GAAI,CAAC,EAAc,MAAO,MAC1B,IAAM,EAAW,OAAO,EAAa,CAErC,OADI,OAAO,MAAM,EAAS,EAAI,CAAC,OAAO,SAAS,EAAS,CAAS,MAC1D,EAAa,EAAS,CAE/B,MAAO,OACN,CAAC,EAAO,EAAa,CAAC,CAEnB,EAAsB,MACtB,IAAqB,KAAO,IAAmB,IAAY,EACxD,EAAe,QAAQ,KAAM,EAAe,CAAC,QAAQ,MAAO,EAAiB,CACnF,CAAC,EAAgB,EAAkB,EAAe,CAAC,CAEtD,OACE,EAAC,MAAA,CAAI,YAAU,YAAY,UAAW,EAAG,EAAkB,CAAE,OAAM,QAAO,CAAC,CAAE,EAAU,WACpF,GAAU,EAAC,OAAA,CAAK,YAAU,4BAAoB,GAAc,CAC7D,EAAC,IAAA,CAAE,YAAU,2BAAmB,GAAwB,CACvD,GAAU,EAAC,OAAA,CAAK,YAAU,4BAAoB,GAAc,GACzD,EAGX,CACD,EAAU,YAAc"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use client";require(`../paragraph-
|
|
1
|
+
"use client";const e=require(`../chunk-Bmb41Sf3.cjs`),t=require(`../paragraph-D0x3Jc6W.cjs`),n=require(`../flex-BAfCk_in.cjs`),r=require(`../ui/avatar.cjs`);let i=require(`lucide-react`),a=require(`react/jsx-runtime`),o=require(`@customafk/react-toolkit/color-hash`);const s=({uuid:e,username:s,email:c})=>(0,a.jsxs)(n.t,{"data-slot":`user-display`,wrap:!1,gap:`sm`,padding:`none`,children:[(0,a.jsx)(r.Avatar,{className:`size-10 shadow-card`,children:(0,a.jsx)(r.AvatarFallback,{style:{backgroundColor:o.colorHashLight.hex(e)},children:(0,a.jsx)(i.UserRoundIcon,{size:28,className:`text-white`})})}),(0,a.jsxs)(n.t,{vertical:!0,padding:`none`,gap:`none`,align:`start`,children:[(0,a.jsx)(t.t,{className:`text-sm font-medium text-text-positive`,children:s}),(0,a.jsx)(t.t,{variant:`sm`,className:`mt-0! text-xs text-text-positive-weak`,children:c})]})]});exports.UserDataDisplay=s;
|
|
2
|
+
//# sourceMappingURL=user.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.cjs","names":["UserDataDisplay: React.FC<UserDataDisplayProps>","Flex","Avatar","AvatarFallback","colorHashLight","UserRoundIcon","Paragraph"],"sources":["../../packages/components/data-display/user.tsx"],"sourcesContent":["'use client';\n\nimport { UserRoundIcon } from 'lucide-react';\n\nimport { colorHashLight } from '@customafk/react-toolkit/color-hash';\n\nimport { Flex } from '../layouts/flex';\nimport { Paragraph } from '../typography/paragraph';\nimport { Avatar, AvatarFallback } from '../ui/avatar';\n\ntype UserDataDisplayProps = {\n /** Unique identifier used to deterministically generate the avatar background colour. */\n uuid: string;\n /** Display name rendered as the primary line of the user card. */\n username: string;\n /** Email address rendered as the secondary, muted line below the username. */\n email: string;\n};\n\n/**\n * Displays a user identity card with a colour-hashed avatar, username, and email address.\n *\n * @example\n * ```tsx\n * import { UserDataDisplay } from '@customafk/lunas-ui/data-display/user';\n *\n * <UserDataDisplay uuid=\"abc-123\" username=\"Nguyễn Văn An\" email=\"an@example.com\" />\n * ```\n */\nexport const UserDataDisplay: React.FC<UserDataDisplayProps> = ({ uuid, username, email }) => {\n return (\n <Flex data-slot=\"user-display\" wrap={false} gap=\"sm\" padding=\"none\">\n <Avatar className=\"size-10 shadow-card\">\n <AvatarFallback style={{ backgroundColor: colorHashLight.hex(uuid) }}>\n <UserRoundIcon size={28} className=\"text-white\" />\n </AvatarFallback>\n </Avatar>\n <Flex vertical padding=\"none\" gap=\"none\" align=\"start\">\n <Paragraph className=\"text-sm font-medium text-text-positive\">{username}</Paragraph>\n <Paragraph variant=\"sm\" className=\"mt-0! text-xs text-text-positive-weak\">\n {email}\n </Paragraph>\n </Flex>\n </Flex>\n );\n};\n"],"mappings":"2QA6BA,MAAaA,GAAmD,CAAE,OAAM,WAAU,YAE9E,EAAA,EAAA,MAACC,EAAAA,EAAAA,CAAK,YAAU,eAAe,KAAM,GAAO,IAAI,KAAK,QAAQ,kBAC3D,EAAA,EAAA,KAACC,EAAAA,OAAAA,CAAO,UAAU,gCAChB,EAAA,EAAA,KAACC,EAAAA,eAAAA,CAAe,MAAO,CAAE,gBAAiBC,EAAAA,eAAe,IAAI,EAAK,CAAE,WAClE,EAAA,EAAA,KAACC,EAAAA,cAAAA,CAAc,KAAM,GAAI,UAAU,cAAe,EACnC,EACV,EACT,EAAA,EAAA,MAACJ,EAAAA,EAAAA,CAAK,SAAA,GAAS,QAAQ,OAAO,IAAI,OAAO,MAAM,mBAC7C,EAAA,EAAA,KAACK,EAAAA,EAAAA,CAAU,UAAU,kDAA0C,GAAqB,EACpF,EAAA,EAAA,KAACA,EAAAA,EAAAA,CAAU,QAAQ,KAAK,UAAU,iDAC/B,GACS,CAAA,EACP,CAAA,EACF"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use client";import"../paragraph-
|
|
1
|
+
"use client";import{t as e}from"../paragraph-ESjXXqHU.js";import{t}from"../flex-D_XtSjf4.js";import{Avatar as n,AvatarFallback as r}from"../ui/avatar.js";import{UserRoundIcon as i}from"lucide-react";import{jsx as a,jsxs as o}from"react/jsx-runtime";import{colorHashLight as s}from"@customafk/react-toolkit/color-hash";const c=({uuid:c,username:l,email:u})=>o(t,{"data-slot":`user-display`,wrap:!1,gap:`sm`,padding:`none`,children:[a(n,{className:`size-10 shadow-card`,children:a(r,{style:{backgroundColor:s.hex(c)},children:a(i,{size:28,className:`text-white`})})}),o(t,{vertical:!0,padding:`none`,gap:`none`,align:`start`,children:[a(e,{className:`text-sm font-medium text-text-positive`,children:l}),a(e,{variant:`sm`,className:`mt-0! text-xs text-text-positive-weak`,children:u})]})]});export{c as UserDataDisplay};
|
|
2
|
+
//# sourceMappingURL=user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.js","names":["UserDataDisplay: React.FC<UserDataDisplayProps>"],"sources":["../../packages/components/data-display/user.tsx"],"sourcesContent":["'use client';\n\nimport { UserRoundIcon } from 'lucide-react';\n\nimport { colorHashLight } from '@customafk/react-toolkit/color-hash';\n\nimport { Flex } from '../layouts/flex';\nimport { Paragraph } from '../typography/paragraph';\nimport { Avatar, AvatarFallback } from '../ui/avatar';\n\ntype UserDataDisplayProps = {\n /** Unique identifier used to deterministically generate the avatar background colour. */\n uuid: string;\n /** Display name rendered as the primary line of the user card. */\n username: string;\n /** Email address rendered as the secondary, muted line below the username. */\n email: string;\n};\n\n/**\n * Displays a user identity card with a colour-hashed avatar, username, and email address.\n *\n * @example\n * ```tsx\n * import { UserDataDisplay } from '@customafk/lunas-ui/data-display/user';\n *\n * <UserDataDisplay uuid=\"abc-123\" username=\"Nguyễn Văn An\" email=\"an@example.com\" />\n * ```\n */\nexport const UserDataDisplay: React.FC<UserDataDisplayProps> = ({ uuid, username, email }) => {\n return (\n <Flex data-slot=\"user-display\" wrap={false} gap=\"sm\" padding=\"none\">\n <Avatar className=\"size-10 shadow-card\">\n <AvatarFallback style={{ backgroundColor: colorHashLight.hex(uuid) }}>\n <UserRoundIcon size={28} className=\"text-white\" />\n </AvatarFallback>\n </Avatar>\n <Flex vertical padding=\"none\" gap=\"none\" align=\"start\">\n <Paragraph className=\"text-sm font-medium text-text-positive\">{username}</Paragraph>\n <Paragraph variant=\"sm\" className=\"mt-0! text-xs text-text-positive-weak\">\n {email}\n </Paragraph>\n </Flex>\n </Flex>\n );\n};\n"],"mappings":"8TA6BA,MAAaA,GAAmD,CAAE,OAAM,WAAU,WAE9E,EAAC,EAAA,CAAK,YAAU,eAAe,KAAM,GAAO,IAAI,KAAK,QAAQ,iBAC3D,EAAC,EAAA,CAAO,UAAU,+BAChB,EAAC,EAAA,CAAe,MAAO,CAAE,gBAAiB,EAAe,IAAI,EAAK,CAAE,UAClE,EAAC,EAAA,CAAc,KAAM,GAAI,UAAU,cAAe,EACnC,EACV,CACT,EAAC,EAAA,CAAK,SAAA,GAAS,QAAQ,OAAO,IAAI,OAAO,MAAM,kBAC7C,EAAC,EAAA,CAAU,UAAU,kDAA0C,GAAqB,CACpF,EAAC,EAAA,CAAU,QAAQ,KAAK,UAAU,iDAC/B,GACS,CAAA,EACP,CAAA,EACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";const e=require(`../chunk-
|
|
1
|
+
"use client";const e=require(`../chunk-Bmb41Sf3.cjs`);require(`../button.variants-DgVFNsVc.cjs`),require(`../heading-BX7ZVnVg.cjs`),require(`../paragraph-D0x3Jc6W.cjs`);const t=require(`../ui/alert-dialog.cjs`);let n=require(`lucide-react`),r=require(`react/jsx-runtime`),i=require(`react`);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,i.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),f?.()},[f]);return(0,r.jsx)(t.AlertDialog,{open:e,onOpenChange:d,children:(0,r.jsxs)(t.AlertDialogContent,{className:`p-4 pb-5`,children:[(0,r.jsxs)(t.AlertDialogHeader,{className:`gap-2`,children:[(0,r.jsxs)(t.AlertDialogTitle,{className:`inline-flex items-center gap-x-1`,children:[(0,r.jsx)(n.TriangleAlert,{size:20}),(0,r.jsx)(`p`,{children:o})]}),(0,r.jsx)(t.AlertDialogDescription,{className:u,children:s})]}),(0,r.jsxs)(t.AlertDialogFooter,{children:[(0,r.jsx)(t.AlertDialogCancel,{children:c}),(0,r.jsx)(t.AlertDialogAction,{type:`button`,className:`min-h-9 w-full md:w-24`,onClick:p,children:a?(0,r.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:(0,r.jsx)(`div`,{className:`loader-spinner text-text-positive-weak`})}):l})]})]})})};exports.ConfirmDialog=a;
|
|
2
2
|
//# sourceMappingURL=confirm-dialog.cjs.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";import"../button.variants-
|
|
1
|
+
"use client";import"../button.variants-BruXd4VM.js";import"../heading-Bw3eo6IT.js";import"../paragraph-ESjXXqHU.js";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.js";import{TriangleAlert as c}from"lucide-react";import{jsx as l,jsxs as u}from"react/jsx-runtime";import{useCallback as d}from"react";const f=({open:f,isLoading:p=!1,title:m,description:h,cancelText:g=`Cancel`,submitText:_=`Confirm`,descriptionClassName:v,onOpenChange:y,onConfirm:b})=>{let x=d(e=>{e.preventDefault(),e.stopPropagation(),b?.()},[b]);return l(e,{open:f,onOpenChange:y,children:u(r,{className:`p-4 pb-5`,children:[u(o,{className:`gap-2`,children:[u(s,{className:`inline-flex items-center gap-x-1`,children:[l(c,{size:20}),l(`p`,{children:m})]}),l(i,{className:v,children:h})]}),u(a,{children:[l(n,{children:g}),l(t,{type:`button`,className:`min-h-9 w-full md:w-24`,onClick:x,children:p?l(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:l(`div`,{className:`loader-spinner text-text-positive-weak`})}):_})]})]})})};export{f as ConfirmDialog};
|
|
2
2
|
//# sourceMappingURL=confirm-dialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";
|
|
1
|
+
"use client";const e=require(`../../../sidebar-CQZlWCK4.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
|
|
2
|
-
import { Separator } from "../../../ui/separator.cjs";
|
|
3
|
-
import { TooltipContent } from "../../../ui/tooltip.cjs";
|
|
4
|
-
import * as react2 from "react";
|
|
1
|
+
import * as react4 from "react";
|
|
5
2
|
import * as class_variance_authority_types0 from "class-variance-authority/types";
|
|
6
3
|
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
|
+
}): react4.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
|
+
}): react4.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>): react4.JSX.Element;
|
|
96
96
|
declare function DetailDialogSidebarRail({
|
|
97
97
|
className,
|
|
98
98
|
...props
|
|
99
|
-
}: React.ComponentProps<'button'>):
|
|
99
|
+
}: React.ComponentProps<'button'>): react4.JSX.Element;
|
|
100
100
|
declare function SidebarInset({
|
|
101
101
|
className,
|
|
102
102
|
...props
|
|
103
|
-
}: React.ComponentProps<'main'>):
|
|
103
|
+
}: React.ComponentProps<'main'>): react4.JSX.Element;
|
|
104
104
|
declare function DetailDialogSidebarHeader({
|
|
105
105
|
className,
|
|
106
106
|
...props
|
|
107
|
-
}: React.ComponentProps<'div'>):
|
|
107
|
+
}: React.ComponentProps<'div'>): react4.JSX.Element;
|
|
108
108
|
declare function DetailDialogSidebarFooter({
|
|
109
109
|
className,
|
|
110
110
|
children,
|
|
111
111
|
...props
|
|
112
|
-
}: React.ComponentProps<'div'>):
|
|
112
|
+
}: React.ComponentProps<'div'>): react4.JSX.Element;
|
|
113
113
|
declare function DetailDialogSidebarSeparator({
|
|
114
114
|
className,
|
|
115
115
|
...props
|
|
116
|
-
}: React.ComponentProps<typeof Separator>):
|
|
116
|
+
}: React.ComponentProps<typeof Separator>): react4.JSX.Element;
|
|
117
117
|
declare function DetailDialogSidebarContent({
|
|
118
118
|
className,
|
|
119
119
|
...props
|
|
120
|
-
}: React.ComponentProps<'div'>):
|
|
120
|
+
}: React.ComponentProps<'div'>): react4.JSX.Element;
|
|
121
121
|
declare function DetailDialogSidebarGroup({
|
|
122
122
|
className,
|
|
123
123
|
...props
|
|
124
|
-
}: React.ComponentProps<'div'>):
|
|
124
|
+
}: React.ComponentProps<'div'>): react4.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
|
+
}): react4.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
|
+
}): react4.JSX.Element;
|
|
139
139
|
declare function DetailDialogSidebarGroupContent({
|
|
140
140
|
className,
|
|
141
141
|
...props
|
|
142
|
-
}: React.ComponentProps<'div'>):
|
|
142
|
+
}: React.ComponentProps<'div'>): react4.JSX.Element;
|
|
143
143
|
declare function DetailDialogSidebarMenu({
|
|
144
144
|
className,
|
|
145
145
|
...props
|
|
146
|
-
}: React.ComponentProps<'ul'>):
|
|
146
|
+
}: React.ComponentProps<'ul'>): react4.JSX.Element;
|
|
147
147
|
declare function DetailDialogSidebarMenuItem({
|
|
148
148
|
className,
|
|
149
149
|
...props
|
|
150
|
-
}: React.ComponentProps<'li'>):
|
|
150
|
+
}: React.ComponentProps<'li'>): react4.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>): react4.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
|
+
}): react4.JSX.Element;
|
|
177
177
|
declare function DetailDialogSidebarMenuBadge({
|
|
178
178
|
className,
|
|
179
179
|
...props
|
|
180
|
-
}: React.ComponentProps<'div'>):
|
|
180
|
+
}: React.ComponentProps<'div'>): react4.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
|
+
}): react4.JSX.Element;
|
|
188
188
|
declare function DetailDialogSidebarMenuSub({
|
|
189
189
|
className,
|
|
190
190
|
...props
|
|
191
|
-
}: React.ComponentProps<'ul'>):
|
|
191
|
+
}: React.ComponentProps<'ul'>): react4.JSX.Element;
|
|
192
192
|
declare function DetailDialogSidebarMenuSubItem({
|
|
193
193
|
className,
|
|
194
194
|
...props
|
|
195
|
-
}: React.ComponentProps<'li'>):
|
|
195
|
+
}: React.ComponentProps<'li'>): react4.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
|
+
}): react4.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
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { t as Button } from "../../../button-DloFFxkz.js";
|
|
2
|
-
import { Separator } from "../../../ui/separator.js";
|
|
3
|
-
import { TooltipContent } from "../../../ui/tooltip.js";
|
|
4
|
-
import * as react3 from "react";
|
|
5
1
|
import { VariantProps } from "class-variance-authority";
|
|
2
|
+
import * as react6 from "react";
|
|
3
|
+
import { TooltipContent } from "@/components/ui/tooltip";
|
|
4
|
+
import { Button } from "@/components/ui/button";
|
|
5
|
+
import { Separator } from "@/components/ui/separator";
|
|
6
6
|
import * as class_variance_authority_types0 from "class-variance-authority/types";
|
|
7
7
|
|
|
8
8
|
//#region packages/components/dialogs/detail-dialog/components/sidebar.d.ts
|
|
@@ -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
|
+
}): react6.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
|
+
}): react6.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>): react6.JSX.Element;
|
|
96
96
|
declare function DetailDialogSidebarRail({
|
|
97
97
|
className,
|
|
98
98
|
...props
|
|
99
|
-
}: React.ComponentProps<'button'>):
|
|
99
|
+
}: React.ComponentProps<'button'>): react6.JSX.Element;
|
|
100
100
|
declare function SidebarInset({
|
|
101
101
|
className,
|
|
102
102
|
...props
|
|
103
|
-
}: React.ComponentProps<'main'>):
|
|
103
|
+
}: React.ComponentProps<'main'>): react6.JSX.Element;
|
|
104
104
|
declare function DetailDialogSidebarHeader({
|
|
105
105
|
className,
|
|
106
106
|
...props
|
|
107
|
-
}: React.ComponentProps<'div'>):
|
|
107
|
+
}: React.ComponentProps<'div'>): react6.JSX.Element;
|
|
108
108
|
declare function DetailDialogSidebarFooter({
|
|
109
109
|
className,
|
|
110
110
|
children,
|
|
111
111
|
...props
|
|
112
|
-
}: React.ComponentProps<'div'>):
|
|
112
|
+
}: React.ComponentProps<'div'>): react6.JSX.Element;
|
|
113
113
|
declare function DetailDialogSidebarSeparator({
|
|
114
114
|
className,
|
|
115
115
|
...props
|
|
116
|
-
}: React.ComponentProps<typeof Separator>):
|
|
116
|
+
}: React.ComponentProps<typeof Separator>): react6.JSX.Element;
|
|
117
117
|
declare function DetailDialogSidebarContent({
|
|
118
118
|
className,
|
|
119
119
|
...props
|
|
120
|
-
}: React.ComponentProps<'div'>):
|
|
120
|
+
}: React.ComponentProps<'div'>): react6.JSX.Element;
|
|
121
121
|
declare function DetailDialogSidebarGroup({
|
|
122
122
|
className,
|
|
123
123
|
...props
|
|
124
|
-
}: React.ComponentProps<'div'>):
|
|
124
|
+
}: React.ComponentProps<'div'>): react6.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
|
+
}): react6.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
|
+
}): react6.JSX.Element;
|
|
139
139
|
declare function DetailDialogSidebarGroupContent({
|
|
140
140
|
className,
|
|
141
141
|
...props
|
|
142
|
-
}: React.ComponentProps<'div'>):
|
|
142
|
+
}: React.ComponentProps<'div'>): react6.JSX.Element;
|
|
143
143
|
declare function DetailDialogSidebarMenu({
|
|
144
144
|
className,
|
|
145
145
|
...props
|
|
146
|
-
}: React.ComponentProps<'ul'>):
|
|
146
|
+
}: React.ComponentProps<'ul'>): react6.JSX.Element;
|
|
147
147
|
declare function DetailDialogSidebarMenuItem({
|
|
148
148
|
className,
|
|
149
149
|
...props
|
|
150
|
-
}: React.ComponentProps<'li'>):
|
|
150
|
+
}: React.ComponentProps<'li'>): react6.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>): react6.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
|
+
}): react6.JSX.Element;
|
|
177
177
|
declare function DetailDialogSidebarMenuBadge({
|
|
178
178
|
className,
|
|
179
179
|
...props
|
|
180
|
-
}: React.ComponentProps<'div'>):
|
|
180
|
+
}: React.ComponentProps<'div'>): react6.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
|
+
}): react6.JSX.Element;
|
|
188
188
|
declare function DetailDialogSidebarMenuSub({
|
|
189
189
|
className,
|
|
190
190
|
...props
|
|
191
|
-
}: React.ComponentProps<'ul'>):
|
|
191
|
+
}: React.ComponentProps<'ul'>): react6.JSX.Element;
|
|
192
192
|
declare function DetailDialogSidebarMenuSubItem({
|
|
193
193
|
className,
|
|
194
194
|
...props
|
|
195
|
-
}: React.ComponentProps<'li'>):
|
|
195
|
+
}: React.ComponentProps<'li'>): react6.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
|
+
}): react6.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.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import
|
|
1
|
+
"use client";import{C as e,S as t,_ as n,a as r,b as i,c as a,d as o,f as s,g as c,h as l,i as u,l as d,m as f,n as p,o as m,p as h,r as g,s as _,t as v,u as y,v as b,x,y as S}from"../../../sidebar-BCuXtop_.js";export{v as DetailDialogSidebarContent,p as DetailDialogSidebarFooter,g as DetailDialogSidebarGroup,u as DetailDialogSidebarGroupAction,r as DetailDialogSidebarGroupContent,m as DetailDialogSidebarGroupLabel,_ as DetailDialogSidebarHeader,a as DetailDialogSidebarMenu,d as DetailDialogSidebarMenuAction,y as DetailDialogSidebarMenuBadge,o as DetailDialogSidebarMenuButton,s as DetailDialogSidebarMenuItem,h as DetailDialogSidebarMenuSkeleton,f as DetailDialogSidebarMenuSub,l as DetailDialogSidebarMenuSubButton,c as DetailDialogSidebarMenuSubItem,n as DetailDialogSidebarRail,b as DetailDialogSidebarSeparator,S as DetailDialogSidebarTrigger,i as Sidebar,x as SidebarInset,t as SidebarProvider,e as useSidebar};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";const e=require(`../../chunk-
|
|
1
|
+
"use client";const e=require(`../../chunk-Bmb41Sf3.cjs`),t=require(`../../sidebar-CQZlWCK4.cjs`);let n=require(`lucide-react`),r=require(`@customafk/react-toolkit/utils`),i=require(`react/jsx-runtime`),a=require(`react`),o=require(`radix-ui`),s=require(`@/components/data-display/date`),c=require(`@/components/layouts/flex`),l=require(`@/components/typography/title`);const u=({open:e,isLoading:u,title:d,createdAt:f,onOpenChange:p,sidebar:m,children:h})=>{let{content:g,footer:_}=m||{},v=(0,a.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]);return(0,i.jsx)(o.Dialog.Root,{"data-slot":`detail-dialog`,open:e,onOpenChange:p,children:(0,i.jsxs)(o.Dialog.Portal,{"data-slot":`detail-dialog-portal`,children:[(0,i.jsx)(o.Dialog.Overlay,{"data-slot":`detail-dialog-overlay`,className:`fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`}),(0,i.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:(0,i.jsxs)(o.Dialog.Content,{"data-slot":`dialog-content`,className:(0,r.cn)(`data-[state=open]:animate-in data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,`data-[state=closed]:zoom-out-80 data-[state=open]:zoom-in-80`,`relative z-50 grid`,`gap-4 overflow-hidden rounded-none border-none bg-background p-0 shadow-dialog outline-none duration-200`,`h-full max-h-dvh w-full max-w-svw`,`sm:rounded-lg`,`sm:max-w-lg`,`md:max-h-[calc(100dvh-2rem)]`,`md:max-w-[calc(100svw-2rem)]`),onInteractOutside:v,children:[(0,i.jsxs)(t.S,{children:[(0,i.jsxs)(t.b,{collapsible:`icon`,children:[(0,i.jsx)(t.s,{children:(0,i.jsx)(t.c,{children:(0,i.jsx)(t.f,{children:(0,i.jsxs)(t.d,{size:`lg`,tabIndex:-1,children:[(0,i.jsx)(`div`,{className:`flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground`,children:(0,i.jsx)(n.CatIcon,{size:16})}),(0,i.jsxs)(`div`,{className:`grid flex-1 text-left text-sm leading-tight`,children:[(0,i.jsx)(`span`,{className:`truncate font-medium`,children:m?.title||`Detail Dialog`}),(0,i.jsx)(`span`,{className:`truncate text-xs`,children:`Lunas Enterprise`})]})]})})})}),(0,i.jsx)(t.t,{children:g}),(0,i.jsx)(t.n,{children:_})]}),(0,i.jsx)(`main`,{"data-slot":`detail-dialog-main`,className:`relative h-full flex-1`,children:(0,i.jsxs)(c.Flex,{padding:`none`,gap:`none`,vertical:!0,align:`stretch`,className:`absolute inset-0 size-full`,children:[(0,i.jsxs)(`header`,{className:`flex w-full flex-0 items-start gap-x-2.5 border-b border-border-weak bg-card py-2.5 pr-12 pl-2`,children:[(0,i.jsx)(t.y,{}),(0,i.jsxs)(c.Flex,{vertical:!0,align:`start`,padding:`none`,width:`null`,wrap:!1,className:`flex-1 gap-0`,children:[(0,i.jsx)(l.Title,{level:5,className:`line-clamp-1 truncate text-wrap`,children:d||`Detail Dialog`}),!!f&&(0,i.jsxs)(c.Flex,{padding:`none`,className:`relative items-center text-text-positive-weak`,children:[(0,i.jsx)(n.CalendarIcon,{size:12}),(0,i.jsx)(s.DateDisplay,{showTime:!0,showHoliday:!0,date:f,format:`full`})]})]})]}),u?(0,i.jsx)(c.Flex,{justify:`center`,className:`inset-shadow-sm w-full flex-1 bg-muted-muted`,children:(0,i.jsx)(`div`,{className:`loader`})}):(0,i.jsx)(`section`,{"data-slot":`detail-dialog-body`,className:`relative inset-shadow-sm flex flex-1 snap-y flex-col gap-0 overflow-y-auto bg-white`,children:h})]})})]}),(0,i.jsx)(o.Dialog.Close,{"data-slot":`dialog-close`,tabIndex:-1,asChild:!0,className:`absolute top-3 right-3`,children:(0,i.jsx)(`button`,{className:`flex cursor-pointer items-center justify-center rounded-full p-2 text-text-positive-weak transition-colors hover:bg-muted-muted hover:text-text-positive active:bg-muted-weak active:text-text-positive-strong disabled:pointer-events-none disabled:opacity-60`,children:(0,i.jsx)(n.XIcon,{size:24})})})]})})]})})};exports.DetailDialog=u;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["DetailDialog: React.FC<React.PropsWithChildren<DetailDialogProps>>","DialogPrimitive","SidebarProvider","Sidebar","DetailDialogSidebarHeader","DetailDialogSidebarMenu","DetailDialogSidebarMenuItem","DetailDialogSidebarMenuButton","CatIcon","DetailDialogSidebarContent","DetailDialogSidebarFooter","Flex","DetailDialogSidebarTrigger","Title","CalendarIcon","DateDisplay","XIcon"],"sources":["../../../packages/components/dialogs/detail-dialog/index.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\n\nimport { CalendarIcon, CatIcon, XIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\nimport { Dialog as DialogPrimitive } from 'radix-ui';\n\nimport { DateDisplay } from '@/components/data-display/date';\nimport { Flex } from '@/components/layouts/flex';\nimport { Title } from '@/components/typography/title';\n\nimport {\n DetailDialogSidebarContent,\n DetailDialogSidebarFooter,\n DetailDialogSidebarHeader,\n DetailDialogSidebarMenu,\n DetailDialogSidebarMenuButton,\n DetailDialogSidebarMenuItem,\n DetailDialogSidebarTrigger,\n Sidebar,\n SidebarProvider,\n} from './components/sidebar';\n\ntype DetailDialogSidebar = {\n /** Title shown in the collapsible sidebar header. Defaults to `'Detail Dialog'`. */\n title?: string;\n /** Arbitrary content rendered inside the sidebar scrollable area. */\n content?: React.ReactNode;\n /** Arbitrary content rendered at the bottom of the sidebar footer. */\n footer?: React.ReactNode;\n};\n\nexport type DetailDialogProps = {\n /** Controls whether the dialog is open. */\n open?: boolean;\n /** When `true`, replaces the main content area with a centered loading spinner. */\n isLoading?: boolean;\n /** Primary title displayed in the dialog header. */\n title: string;\n /** ISO string, `Date` object, or Unix timestamp shown as a formatted creation date below the title. */\n createdAt?: string | Date | number | null;\n /** Optional sidebar configuration — title, body content, and footer content. */\n sidebar?: DetailDialogSidebar;\n /** Callback invoked when the dialog open state changes. */\n onOpenChange?: (open: boolean) => void;\n};\n\n/**\n * Full-screen detail dialog with a collapsible sidebar, a header with creation date, and a scrollable content area.\n *\n * @example\n * ```tsx\n * import { DetailDialog } from '@customafk/lunas-ui/dialogs/detail-dialog';\n *\n * <DetailDialog\n * open={open}\n * title=\"Order #1234\"\n * createdAt=\"2024-01-15T09:00:00Z\"\n * sidebar={{ title: 'Navigation', content: <nav>...</nav> }}\n * onOpenChange={setOpen}\n * >\n * <p>Detail content goes here.</p>\n * </DetailDialog>\n * ```\n */\nexport const DetailDialog: React.FC<React.PropsWithChildren<DetailDialogProps>> = ({ open, isLoading, title, createdAt, onOpenChange, sidebar, children }) => {\n const { content: SidebarContent, footer: SidebarFooter } = sidebar || {};\n\n const handleInteractOutside = useCallback<NonNullable<React.ComponentProps<typeof DialogPrimitive.Content>['onInteractOutside']>>(event => {\n event.preventDefault();\n event.stopPropagation();\n }, []);\n\n return (\n <DialogPrimitive.Root data-slot=\"detail-dialog\" open={open} onOpenChange={onOpenChange}>\n <DialogPrimitive.Portal data-slot=\"detail-dialog-portal\">\n <DialogPrimitive.Overlay\n data-slot=\"detail-dialog-overlay\"\n className=\"fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\"\n />\n <div className=\"fixed inset-0 z-50 flex items-center justify-center\">\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n 'data-[state=closed]:zoom-out-80 data-[state=open]:zoom-in-80',\n 'relative z-50 grid',\n 'gap-4 overflow-hidden rounded-none border-none bg-background p-0 shadow-dialog outline-none duration-200',\n 'h-full max-h-dvh w-full max-w-svw',\n 'sm:rounded-lg',\n 'sm:max-w-lg',\n 'md:max-h-[calc(100dvh-2rem)]',\n 'md:max-w-[calc(100svw-2rem)]'\n )}\n onInteractOutside={handleInteractOutside}\n >\n <SidebarProvider>\n <Sidebar collapsible=\"icon\">\n <DetailDialogSidebarHeader>\n <DetailDialogSidebarMenu>\n <DetailDialogSidebarMenuItem>\n <DetailDialogSidebarMenuButton size=\"lg\" tabIndex={-1}>\n <div className=\"flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground\">\n <CatIcon size={16} />\n </div>\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-medium\">{sidebar?.title || 'Detail Dialog'}</span>\n <span className=\"truncate text-xs\">Lunas Enterprise</span>\n </div>\n </DetailDialogSidebarMenuButton>\n </DetailDialogSidebarMenuItem>\n </DetailDialogSidebarMenu>\n </DetailDialogSidebarHeader>\n <DetailDialogSidebarContent>{SidebarContent}</DetailDialogSidebarContent>\n <DetailDialogSidebarFooter>{SidebarFooter}</DetailDialogSidebarFooter>\n </Sidebar>\n\n <main data-slot=\"detail-dialog-main\" className=\"relative h-full flex-1\">\n <Flex padding=\"none\" gap=\"none\" vertical align=\"stretch\" className=\"absolute inset-0 size-full\">\n <header className=\"flex w-full flex-0 items-start gap-x-2.5 border-b border-border-weak bg-card py-2.5 pr-12 pl-2\">\n <DetailDialogSidebarTrigger />\n <Flex vertical align=\"start\" padding=\"none\" width=\"null\" wrap={false} className=\"flex-1 gap-0\">\n <Title level={5} className=\"line-clamp-1 truncate text-wrap\">\n {title || 'Detail Dialog'}\n </Title>\n {!!createdAt && (\n <Flex padding=\"none\" className=\"relative items-center text-text-positive-weak\">\n <CalendarIcon size={12} />\n <DateDisplay showTime showHoliday date={createdAt} format=\"full\" />\n </Flex>\n )}\n </Flex>\n </header>\n {isLoading ? (\n <Flex justify=\"center\" className=\"inset-shadow-sm w-full flex-1 bg-muted-muted\">\n <div className=\"loader\" />\n </Flex>\n ) : (\n <section data-slot=\"detail-dialog-body\" className=\"relative inset-shadow-sm flex flex-1 snap-y flex-col gap-0 overflow-y-auto bg-white\">\n {children}\n </section>\n )}\n </Flex>\n </main>\n </SidebarProvider>\n\n <DialogPrimitive.Close data-slot=\"dialog-close\" tabIndex={-1} asChild className=\"absolute top-3 right-3\">\n <button className=\"flex cursor-pointer items-center justify-center rounded-full p-2 text-text-positive-weak transition-colors hover:bg-muted-muted hover:text-text-positive active:bg-muted-weak active:text-text-positive-strong disabled:pointer-events-none disabled:opacity-60\">\n <XIcon size={24} />\n </button>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </div>\n </DialogPrimitive.Portal>\n </DialogPrimitive.Root>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["DetailDialog: React.FC<React.PropsWithChildren<DetailDialogProps>>","DialogPrimitive","SidebarProvider","Sidebar","DetailDialogSidebarHeader","DetailDialogSidebarMenu","DetailDialogSidebarMenuItem","DetailDialogSidebarMenuButton","CatIcon","DetailDialogSidebarContent","DetailDialogSidebarFooter","Flex","DetailDialogSidebarTrigger","Title","CalendarIcon","DateDisplay","XIcon"],"sources":["../../../packages/components/dialogs/detail-dialog/index.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\n\nimport { CalendarIcon, CatIcon, XIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\nimport { Dialog as DialogPrimitive } from 'radix-ui';\n\nimport { DateDisplay } from '@/components/data-display/date';\nimport { Flex } from '@/components/layouts/flex';\nimport { Title } from '@/components/typography/title';\n\nimport {\n DetailDialogSidebarContent,\n DetailDialogSidebarFooter,\n DetailDialogSidebarHeader,\n DetailDialogSidebarMenu,\n DetailDialogSidebarMenuButton,\n DetailDialogSidebarMenuItem,\n DetailDialogSidebarTrigger,\n Sidebar,\n SidebarProvider,\n} from './components/sidebar';\n\ntype DetailDialogSidebar = {\n /** Title shown in the collapsible sidebar header. Defaults to `'Detail Dialog'`. */\n title?: string;\n /** Arbitrary content rendered inside the sidebar scrollable area. */\n content?: React.ReactNode;\n /** Arbitrary content rendered at the bottom of the sidebar footer. */\n footer?: React.ReactNode;\n};\n\nexport type DetailDialogProps = {\n /** Controls whether the dialog is open. */\n open?: boolean;\n /** When `true`, replaces the main content area with a centered loading spinner. */\n isLoading?: boolean;\n /** Primary title displayed in the dialog header. */\n title: string;\n /** ISO string, `Date` object, or Unix timestamp shown as a formatted creation date below the title. */\n createdAt?: string | Date | number | null;\n /** Optional sidebar configuration — title, body content, and footer content. */\n sidebar?: DetailDialogSidebar;\n /** Callback invoked when the dialog open state changes. */\n onOpenChange?: (open: boolean) => void;\n};\n\n/**\n * Full-screen detail dialog with a collapsible sidebar, a header with creation date, and a scrollable content area.\n *\n * @example\n * ```tsx\n * import { DetailDialog } from '@customafk/lunas-ui/dialogs/detail-dialog';\n *\n * <DetailDialog\n * open={open}\n * title=\"Order #1234\"\n * createdAt=\"2024-01-15T09:00:00Z\"\n * sidebar={{ title: 'Navigation', content: <nav>...</nav> }}\n * onOpenChange={setOpen}\n * >\n * <p>Detail content goes here.</p>\n * </DetailDialog>\n * ```\n */\nexport const DetailDialog: React.FC<React.PropsWithChildren<DetailDialogProps>> = ({ open, isLoading, title, createdAt, onOpenChange, sidebar, children }) => {\n const { content: SidebarContent, footer: SidebarFooter } = sidebar || {};\n\n const handleInteractOutside = useCallback<NonNullable<React.ComponentProps<typeof DialogPrimitive.Content>['onInteractOutside']>>(event => {\n event.preventDefault();\n event.stopPropagation();\n }, []);\n\n return (\n <DialogPrimitive.Root data-slot=\"detail-dialog\" open={open} onOpenChange={onOpenChange}>\n <DialogPrimitive.Portal data-slot=\"detail-dialog-portal\">\n <DialogPrimitive.Overlay\n data-slot=\"detail-dialog-overlay\"\n className=\"fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\"\n />\n <div className=\"fixed inset-0 z-50 flex items-center justify-center\">\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n 'data-[state=closed]:zoom-out-80 data-[state=open]:zoom-in-80',\n 'relative z-50 grid',\n 'gap-4 overflow-hidden rounded-none border-none bg-background p-0 shadow-dialog outline-none duration-200',\n 'h-full max-h-dvh w-full max-w-svw',\n 'sm:rounded-lg',\n 'sm:max-w-lg',\n 'md:max-h-[calc(100dvh-2rem)]',\n 'md:max-w-[calc(100svw-2rem)]'\n )}\n onInteractOutside={handleInteractOutside}\n >\n <SidebarProvider>\n <Sidebar collapsible=\"icon\">\n <DetailDialogSidebarHeader>\n <DetailDialogSidebarMenu>\n <DetailDialogSidebarMenuItem>\n <DetailDialogSidebarMenuButton size=\"lg\" tabIndex={-1}>\n <div className=\"flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground\">\n <CatIcon size={16} />\n </div>\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-medium\">{sidebar?.title || 'Detail Dialog'}</span>\n <span className=\"truncate text-xs\">Lunas Enterprise</span>\n </div>\n </DetailDialogSidebarMenuButton>\n </DetailDialogSidebarMenuItem>\n </DetailDialogSidebarMenu>\n </DetailDialogSidebarHeader>\n <DetailDialogSidebarContent>{SidebarContent}</DetailDialogSidebarContent>\n <DetailDialogSidebarFooter>{SidebarFooter}</DetailDialogSidebarFooter>\n </Sidebar>\n\n <main data-slot=\"detail-dialog-main\" className=\"relative h-full flex-1\">\n <Flex padding=\"none\" gap=\"none\" vertical align=\"stretch\" className=\"absolute inset-0 size-full\">\n <header className=\"flex w-full flex-0 items-start gap-x-2.5 border-b border-border-weak bg-card py-2.5 pr-12 pl-2\">\n <DetailDialogSidebarTrigger />\n <Flex vertical align=\"start\" padding=\"none\" width=\"null\" wrap={false} className=\"flex-1 gap-0\">\n <Title level={5} className=\"line-clamp-1 truncate text-wrap\">\n {title || 'Detail Dialog'}\n </Title>\n {!!createdAt && (\n <Flex padding=\"none\" className=\"relative items-center text-text-positive-weak\">\n <CalendarIcon size={12} />\n <DateDisplay showTime showHoliday date={createdAt} format=\"full\" />\n </Flex>\n )}\n </Flex>\n </header>\n {isLoading ? (\n <Flex justify=\"center\" className=\"inset-shadow-sm w-full flex-1 bg-muted-muted\">\n <div className=\"loader\" />\n </Flex>\n ) : (\n <section data-slot=\"detail-dialog-body\" className=\"relative inset-shadow-sm flex flex-1 snap-y flex-col gap-0 overflow-y-auto bg-white\">\n {children}\n </section>\n )}\n </Flex>\n </main>\n </SidebarProvider>\n\n <DialogPrimitive.Close data-slot=\"dialog-close\" tabIndex={-1} asChild className=\"absolute top-3 right-3\">\n <button className=\"flex cursor-pointer items-center justify-center rounded-full p-2 text-text-positive-weak transition-colors hover:bg-muted-muted hover:text-text-positive active:bg-muted-weak active:text-text-positive-strong disabled:pointer-events-none disabled:opacity-60\">\n <XIcon size={24} />\n </button>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </div>\n </DialogPrimitive.Portal>\n </DialogPrimitive.Root>\n );\n};\n"],"mappings":"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"}
|