@customafk/lunas-ui 0.0.4 → 0.0.6
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/add-new-BaABbnol.js +2 -0
- package/dist/add-new-BaABbnol.js.map +1 -0
- package/dist/add-new-DUoS_-n2.cjs +2 -0
- package/dist/add-new-DUoS_-n2.cjs.map +1 -0
- package/dist/alert-dialog-0KwdjY-6.js +2 -0
- package/dist/alert-dialog-0KwdjY-6.js.map +1 -0
- package/dist/alert-dialog-D5ZqgIiC.cjs +2 -0
- package/dist/alert-dialog-D5ZqgIiC.cjs.map +1 -0
- package/dist/badge-CRXT2dH_.cjs +2 -0
- package/dist/badge-CRXT2dH_.cjs.map +1 -0
- package/dist/badge-D_qEoSL8.js +2 -0
- package/dist/badge-D_qEoSL8.js.map +1 -0
- package/dist/button-Bku3bKv9.js +2 -0
- package/dist/button-Bku3bKv9.js.map +1 -0
- package/dist/{button.d.ts → button-D-ldkdUf.d.cts} +8 -6
- package/dist/{button.d.cts → button-DN7a1ENd.d.ts} +8 -6
- package/dist/button-Dzv_nos1.cjs +2 -0
- package/dist/button-Dzv_nos1.cjs.map +1 -0
- package/dist/card-D8cxRC5y.js +2 -0
- package/dist/card-D8cxRC5y.js.map +1 -0
- package/dist/card-Dta5eW8u.cjs +2 -0
- package/dist/card-Dta5eW8u.cjs.map +1 -0
- package/dist/cards/simple-card.cjs +2 -0
- package/dist/cards/simple-card.cjs.map +1 -0
- package/dist/cards/simple-card.d.cts +20 -0
- package/dist/cards/simple-card.d.ts +20 -0
- package/dist/cards/simple-card.js +2 -0
- package/dist/cards/simple-card.js.map +1 -0
- package/dist/{utils-Bo7GM4B-.cjs → chunk-CUT6urMc.cjs} +1 -2
- package/dist/command-CsntVmEz.cjs +2 -0
- package/dist/command-CsntVmEz.cjs.map +1 -0
- package/dist/command-DPWCoUcB.d.cts +53 -0
- package/dist/command-DswMfHba.d.ts +53 -0
- package/dist/command-_L9bD9a-.js +2 -0
- package/dist/command-_L9bD9a-.js.map +1 -0
- package/dist/data-display/country.cjs +2 -0
- package/dist/data-display/country.cjs.map +1 -0
- package/dist/data-display/country.d.cts +11 -0
- package/dist/data-display/country.d.ts +11 -0
- package/dist/data-display/country.js +2 -0
- package/dist/data-display/country.js.map +1 -0
- package/dist/data-display/data-list.cjs +2 -0
- package/dist/data-display/data-list.cjs.map +1 -0
- package/dist/data-display/data-list.d.cts +16 -0
- package/dist/data-display/data-list.d.ts +16 -0
- package/dist/data-display/data-list.js +2 -0
- package/dist/data-display/data-list.js.map +1 -0
- package/dist/data-display/date.cjs +1 -0
- package/dist/data-display/date.d.cts +15 -0
- package/dist/data-display/date.d.ts +15 -0
- package/dist/data-display/date.js +1 -0
- package/dist/data-display/empty.cjs +2 -0
- package/dist/data-display/empty.cjs.map +1 -0
- package/dist/data-display/empty.d.cts +7 -0
- package/dist/data-display/empty.d.ts +7 -0
- package/dist/data-display/empty.js +2 -0
- package/dist/data-display/empty.js.map +1 -0
- package/dist/data-display/name.cjs +2 -0
- package/dist/data-display/name.cjs.map +1 -0
- package/dist/data-display/name.d.cts +10 -0
- package/dist/data-display/name.d.ts +10 -0
- package/dist/data-display/name.js +2 -0
- package/dist/data-display/name.js.map +1 -0
- package/dist/data-display/phone-number.cjs +2 -0
- package/dist/data-display/phone-number.cjs.map +1 -0
- package/dist/data-display/phone-number.d.cts +7 -0
- package/dist/data-display/phone-number.d.ts +7 -0
- package/dist/data-display/phone-number.js +2 -0
- package/dist/data-display/phone-number.js.map +1 -0
- package/dist/data-display/role-badge.cjs +2 -0
- package/dist/data-display/role-badge.cjs.map +1 -0
- package/dist/data-display/role-badge.d.cts +11 -0
- package/dist/data-display/role-badge.d.ts +11 -0
- package/dist/data-display/role-badge.js +2 -0
- package/dist/data-display/role-badge.js.map +1 -0
- package/dist/data-display/statistic.cjs +2 -0
- package/dist/data-display/statistic.cjs.map +1 -0
- package/dist/data-display/statistic.d.cts +29 -0
- package/dist/data-display/statistic.d.ts +29 -0
- package/dist/data-display/statistic.js +2 -0
- package/dist/data-display/statistic.js.map +1 -0
- package/dist/date-BMq_DNsv.js +2 -0
- package/dist/date-BMq_DNsv.js.map +1 -0
- package/dist/date-nd8WkPlx.cjs +2 -0
- package/dist/date-nd8WkPlx.cjs.map +1 -0
- package/dist/dialog-C4hf-Puw.js +2 -0
- package/dist/dialog-C4hf-Puw.js.map +1 -0
- package/dist/dialog-CQI6CMkF.d.cts +48 -0
- package/dist/dialog-I7tlD4sO.d.ts +48 -0
- package/dist/dialog-W-DmDMEE.cjs +2 -0
- package/dist/dialog-W-DmDMEE.cjs.map +1 -0
- package/dist/dialogs/confirm-dialog.cjs +2 -0
- package/dist/dialogs/confirm-dialog.cjs.map +1 -0
- package/dist/dialogs/confirm-dialog.d.cts +13 -0
- package/dist/dialogs/confirm-dialog.d.ts +13 -0
- package/dist/dialogs/confirm-dialog.js +2 -0
- package/dist/dialogs/confirm-dialog.js.map +1 -0
- package/dist/dialogs/detail-dialog/index.cjs +2 -0
- package/dist/dialogs/detail-dialog/index.cjs.map +1 -0
- package/dist/dialogs/detail-dialog/index.d.cts +15 -0
- package/dist/dialogs/detail-dialog/index.d.ts +15 -0
- package/dist/dialogs/detail-dialog/index.js +2 -0
- package/dist/dialogs/detail-dialog/index.js.map +1 -0
- package/dist/dialogs/error-dialog.cjs +1 -0
- package/dist/dialogs/error-dialog.d.cts +13 -0
- package/dist/dialogs/error-dialog.d.ts +13 -0
- package/dist/dialogs/error-dialog.js +1 -0
- package/dist/dialogs/form-dialog.cjs +2 -0
- package/dist/dialogs/form-dialog.cjs.map +1 -0
- package/dist/dialogs/form-dialog.d.cts +36 -0
- package/dist/dialogs/form-dialog.d.ts +36 -0
- package/dist/dialogs/form-dialog.js +2 -0
- package/dist/dialogs/form-dialog.js.map +1 -0
- package/dist/dialogs/loading-dialog.cjs +2 -0
- package/dist/dialogs/loading-dialog.cjs.map +1 -0
- package/dist/dialogs/loading-dialog.d.cts +11 -0
- package/dist/dialogs/loading-dialog.d.ts +11 -0
- package/dist/dialogs/loading-dialog.js +2 -0
- package/dist/dialogs/loading-dialog.js.map +1 -0
- package/dist/dropdown-menu-Bv18S56o.cjs +2 -0
- package/dist/dropdown-menu-Bv18S56o.cjs.map +1 -0
- package/dist/dropdown-menu-jCQwh2rG.js +2 -0
- package/dist/dropdown-menu-jCQwh2rG.js.map +1 -0
- package/dist/error-dialog-D_4WL-Hj.js +2 -0
- package/dist/error-dialog-D_4WL-Hj.js.map +1 -0
- package/dist/error-dialog-DpQgL5Hy.cjs +2 -0
- package/dist/error-dialog-DpQgL5Hy.cjs.map +1 -0
- package/dist/flex-CNA_SId-.cjs +2 -0
- package/dist/flex-CNA_SId-.cjs.map +1 -0
- package/dist/flex-ILvQrYMJ.js +2 -0
- package/dist/flex-ILvQrYMJ.js.map +1 -0
- package/dist/form-CA4hhSV5.js +2 -0
- package/dist/form-CA4hhSV5.js.map +1 -0
- package/dist/form-CYZkgobJ.cjs +2 -0
- package/dist/form-CYZkgobJ.cjs.map +1 -0
- package/dist/form-wrapper-BYbwt1zC.cjs +2 -0
- package/dist/form-wrapper-BYbwt1zC.cjs.map +1 -0
- package/dist/form-wrapper-D-2Uz518.js +2 -0
- package/dist/form-wrapper-D-2Uz518.js.map +1 -0
- package/dist/forms/form-wrapper.cjs +1 -0
- package/dist/forms/form-wrapper.d.cts +25 -0
- package/dist/forms/form-wrapper.d.ts +25 -0
- package/dist/forms/form-wrapper.js +1 -0
- package/dist/input-BZ9_HhgL.d.cts +16 -0
- package/dist/input-DXEBB91E.cjs +2 -0
- package/dist/input-DXEBB91E.cjs.map +1 -0
- package/dist/input-FzKbxUq2.js +2 -0
- package/dist/input-FzKbxUq2.js.map +1 -0
- package/dist/input-k2bQHeqx.d.ts +16 -0
- package/dist/label-CunjD1rx.cjs +2 -0
- package/dist/label-CunjD1rx.cjs.map +1 -0
- package/dist/label-Cxbctr6x.js +2 -0
- package/dist/label-Cxbctr6x.js.map +1 -0
- package/dist/layouts/flex.cjs +1 -0
- package/dist/layouts/flex.d.cts +34 -0
- package/dist/layouts/flex.d.ts +34 -0
- package/dist/layouts/flex.js +1 -0
- package/dist/layouts/main/index.cjs +2 -0
- package/dist/layouts/main/index.cjs.map +1 -0
- package/dist/layouts/main/index.d.cts +9 -0
- package/dist/layouts/main/index.d.ts +9 -0
- package/dist/layouts/main/index.js +2 -0
- package/dist/layouts/main/index.js.map +1 -0
- package/dist/paragraph-Bey03JkA.js +2 -0
- package/dist/paragraph-Bey03JkA.js.map +1 -0
- package/dist/paragraph-ZxI8zxuf.cjs +2 -0
- package/dist/paragraph-ZxI8zxuf.cjs.map +1 -0
- package/dist/progress-BnnOfAZN.cjs +2 -0
- package/dist/progress-BnnOfAZN.cjs.map +1 -0
- package/dist/progress-CBccqUUJ.js +2 -0
- package/dist/progress-CBccqUUJ.js.map +1 -0
- package/dist/refresh-BHt_h3N_.js +2 -0
- package/dist/refresh-BHt_h3N_.js.map +1 -0
- package/dist/refresh-DrolZxuC.cjs +2 -0
- package/dist/refresh-DrolZxuC.cjs.map +1 -0
- package/dist/scroll-area-Bdb_LSFF.js +2 -0
- package/dist/scroll-area-Bdb_LSFF.js.map +1 -0
- package/dist/scroll-area-DWWpaz5j.cjs +2 -0
- package/dist/scroll-area-DWWpaz5j.cjs.map +1 -0
- package/dist/search-input-Bf4-FeWu.cjs +2 -0
- package/dist/search-input-Bf4-FeWu.cjs.map +1 -0
- package/dist/search-input-L2sq0eB0.js +2 -0
- package/dist/search-input-L2sq0eB0.js.map +1 -0
- package/dist/select-CWUsisI0.js +2 -0
- package/dist/select-CWUsisI0.js.map +1 -0
- package/dist/select-ZSyt5zCe.cjs +2 -0
- package/dist/select-ZSyt5zCe.cjs.map +1 -0
- package/dist/separator-BpsL0PlX.js +2 -0
- package/dist/separator-BpsL0PlX.js.map +1 -0
- package/dist/separator-DQ9iJjVc.d.ts +14 -0
- package/dist/separator-DSY4OI_p.d.cts +14 -0
- package/dist/separator-DTB3sDNG.cjs +2 -0
- package/dist/separator-DTB3sDNG.cjs.map +1 -0
- package/dist/sheet-C8r2QGpq.js +2 -0
- package/dist/sheet-C8r2QGpq.js.map +1 -0
- package/dist/sheet-CCwbAaA6.cjs +2 -0
- package/dist/sheet-CCwbAaA6.cjs.map +1 -0
- package/dist/sidebar-BLPMNltJ.cjs +2 -0
- package/dist/sidebar-BLPMNltJ.cjs.map +1 -0
- package/dist/sidebar-C166f_9B.js +2 -0
- package/dist/sidebar-C166f_9B.js.map +1 -0
- package/dist/skeleton-DYmX0k94.js +2 -0
- package/dist/skeleton-DYmX0k94.js.map +1 -0
- package/dist/skeleton-m3giaF4T.cjs +2 -0
- package/dist/skeleton-m3giaF4T.cjs.map +1 -0
- package/dist/table/index.cjs +2 -0
- package/dist/table/index.cjs.map +1 -0
- package/dist/table/index.d.cts +30 -0
- package/dist/table/index.d.ts +30 -0
- package/dist/table/index.js +2 -0
- package/dist/table/index.js.map +1 -0
- package/dist/table-BSeev7T0.cjs +2 -0
- package/dist/table-BSeev7T0.cjs.map +1 -0
- package/dist/table-BvA64mE8.js +2 -0
- package/dist/table-BvA64mE8.js.map +1 -0
- package/dist/title-DTkABsIG.js +2 -0
- package/dist/title-DTkABsIG.js.map +1 -0
- package/dist/title-xsPZpQpb.cjs +2 -0
- package/dist/title-xsPZpQpb.cjs.map +1 -0
- package/dist/toggle-B3RSxTKL.d.cts +20 -0
- package/dist/toggle-CfL3GVe2.cjs +2 -0
- package/dist/toggle-CfL3GVe2.cjs.map +1 -0
- package/dist/toggle-D_MDMruK.js +2 -0
- package/dist/toggle-D_MDMruK.js.map +1 -0
- package/dist/toggle-DygwYpUS.d.ts +20 -0
- package/dist/tooltip-Beb-_EPp.cjs +2 -0
- package/dist/tooltip-Beb-_EPp.cjs.map +1 -0
- package/dist/tooltip-Ct7VJoYo.d.ts +24 -0
- package/dist/tooltip-DNtfXZW2.d.cts +24 -0
- package/dist/tooltip-Dzyf5smh.js +2 -0
- package/dist/tooltip-Dzyf5smh.js.map +1 -0
- package/dist/types-B0V1F4Ml.d.cts +23 -0
- package/dist/types-CrbWxjnp.cjs +2 -0
- package/dist/types-CrbWxjnp.cjs.map +1 -0
- package/dist/types-DLrIc2fL.d.ts +23 -0
- package/dist/types-DaIHddx7.js +2 -0
- package/dist/types-DaIHddx7.js.map +1 -0
- package/dist/typography/paragraph.cjs +1 -0
- package/dist/typography/paragraph.d.cts +17 -0
- package/dist/typography/paragraph.d.ts +17 -0
- package/dist/typography/paragraph.js +1 -0
- package/dist/typography/title.cjs +1 -0
- package/dist/typography/title.d.cts +16 -0
- package/dist/typography/title.d.ts +16 -0
- package/dist/typography/title.js +1 -0
- package/dist/ui/alert-dialog.cjs +1 -0
- package/dist/ui/alert-dialog.d.cts +49 -0
- package/dist/ui/alert-dialog.d.ts +49 -0
- package/dist/ui/alert-dialog.js +1 -0
- package/dist/ui/alert.cjs +2 -0
- package/dist/ui/alert.cjs.map +1 -0
- package/dist/{alert.d.cts → ui/alert.d.cts} +6 -5
- package/dist/{alert.d.ts → ui/alert.d.ts} +4 -3
- package/dist/ui/alert.js +2 -0
- package/dist/ui/alert.js.map +1 -0
- package/dist/ui/aspect-ratio.cjs +2 -0
- package/dist/ui/aspect-ratio.cjs.map +1 -0
- package/dist/ui/aspect-ratio.d.cts +12 -0
- package/dist/ui/aspect-ratio.d.ts +12 -0
- package/dist/ui/aspect-ratio.js +2 -0
- package/dist/ui/aspect-ratio.js.map +1 -0
- package/dist/ui/avatar.cjs +2 -0
- package/dist/ui/avatar.cjs.map +1 -0
- package/dist/ui/avatar.d.cts +20 -0
- package/dist/ui/avatar.d.ts +20 -0
- package/dist/ui/avatar.js +2 -0
- package/dist/ui/avatar.js.map +1 -0
- package/dist/ui/badge.cjs +1 -0
- package/dist/ui/badge.d.cts +22 -0
- package/dist/ui/badge.d.ts +22 -0
- package/dist/ui/badge.js +1 -0
- package/dist/ui/breadcrumb.cjs +2 -0
- package/dist/ui/breadcrumb.cjs.map +1 -0
- package/dist/ui/breadcrumb.d.cts +38 -0
- package/dist/ui/breadcrumb.d.ts +38 -0
- package/dist/ui/breadcrumb.js +2 -0
- package/dist/ui/breadcrumb.js.map +1 -0
- package/dist/ui/button.cjs +1 -0
- package/dist/ui/button.d.cts +2 -0
- package/dist/ui/button.d.ts +2 -0
- package/dist/ui/button.js +1 -0
- package/dist/ui/buttons/add-new.cjs +1 -0
- package/dist/ui/buttons/add-new.d.cts +8 -0
- package/dist/ui/buttons/add-new.d.ts +8 -0
- package/dist/ui/buttons/add-new.js +1 -0
- package/dist/ui/buttons/refresh.cjs +1 -0
- package/dist/ui/buttons/refresh.d.cts +8 -0
- package/dist/ui/buttons/refresh.d.ts +8 -0
- package/dist/ui/buttons/refresh.js +1 -0
- package/dist/ui/calendar.cjs +2 -0
- package/dist/ui/calendar.cjs.map +1 -0
- package/dist/ui/calendar.d.cts +27 -0
- package/dist/ui/calendar.d.ts +27 -0
- package/dist/ui/calendar.js +2 -0
- package/dist/ui/calendar.js.map +1 -0
- package/dist/ui/card.cjs +1 -0
- package/dist/ui/card.d.cts +35 -0
- package/dist/ui/card.d.ts +35 -0
- package/dist/ui/card.js +1 -0
- package/dist/ui/carousel.cjs +2 -0
- package/dist/ui/carousel.cjs.map +1 -0
- package/dist/ui/carousel.d.cts +48 -0
- package/dist/ui/carousel.d.ts +48 -0
- package/dist/ui/carousel.js +2 -0
- package/dist/ui/carousel.js.map +1 -0
- package/dist/ui/collapsible.cjs +2 -0
- package/dist/ui/collapsible.cjs.map +1 -0
- package/dist/ui/collapsible.d.cts +17 -0
- package/dist/ui/collapsible.d.ts +17 -0
- package/dist/ui/collapsible.js +2 -0
- package/dist/ui/collapsible.js.map +1 -0
- package/dist/ui/command.cjs +1 -0
- package/dist/ui/command.d.cts +3 -0
- package/dist/ui/command.d.ts +3 -0
- package/dist/ui/command.js +1 -0
- package/dist/ui/context-menu.cjs +2 -0
- package/dist/ui/context-menu.cjs.map +1 -0
- package/dist/ui/context-menu.d.cts +77 -0
- package/dist/ui/context-menu.d.ts +77 -0
- package/dist/ui/context-menu.js +2 -0
- package/dist/ui/context-menu.js.map +1 -0
- package/dist/ui/dialog.cjs +1 -0
- package/dist/ui/dialog.d.cts +2 -0
- package/dist/ui/dialog.d.ts +2 -0
- package/dist/ui/dialog.js +1 -0
- package/dist/ui/dropdown-menu.cjs +1 -0
- package/dist/ui/dropdown-menu.d.cts +79 -0
- package/dist/ui/dropdown-menu.d.ts +79 -0
- package/dist/ui/dropdown-menu.js +1 -0
- package/dist/ui/file-uploader.cjs +3 -0
- package/dist/ui/file-uploader.cjs.map +1 -0
- package/dist/ui/file-uploader.d.cts +79 -0
- package/dist/ui/file-uploader.d.ts +79 -0
- package/dist/ui/file-uploader.js +3 -0
- package/dist/ui/file-uploader.js.map +1 -0
- package/dist/ui/form.cjs +1 -0
- package/dist/ui/form.d.cts +48 -0
- package/dist/ui/form.d.ts +48 -0
- package/dist/ui/form.js +1 -0
- package/dist/ui/hover-card.cjs +2 -0
- package/dist/ui/hover-card.cjs.map +1 -0
- package/dist/ui/hover-card.d.cts +20 -0
- package/dist/ui/hover-card.d.ts +20 -0
- package/dist/ui/hover-card.js +2 -0
- package/dist/ui/hover-card.js.map +1 -0
- package/dist/ui/input-otp.cjs +2 -0
- package/dist/ui/input-otp.cjs.map +1 -0
- package/dist/ui/input-otp.d.cts +29 -0
- package/dist/ui/input-otp.d.ts +29 -0
- package/dist/ui/input-otp.js +2 -0
- package/dist/ui/input-otp.js.map +1 -0
- package/dist/ui/input.cjs +1 -0
- package/dist/ui/input.d.cts +2 -0
- package/dist/ui/input.d.ts +2 -0
- package/dist/ui/input.js +1 -0
- package/dist/ui/inputs/search-input.cjs +1 -0
- package/dist/ui/inputs/search-input.d.cts +12 -0
- package/dist/ui/inputs/search-input.d.ts +12 -0
- package/dist/ui/inputs/search-input.js +1 -0
- package/dist/ui/label.cjs +1 -0
- package/dist/ui/label.d.cts +12 -0
- package/dist/ui/label.d.ts +12 -0
- package/dist/ui/label.js +1 -0
- package/dist/ui/menubar.cjs +2 -0
- package/dist/ui/menubar.cjs.map +1 -0
- package/dist/ui/menubar.d.cts +85 -0
- package/dist/ui/menubar.d.ts +85 -0
- package/dist/ui/menubar.js +2 -0
- package/dist/ui/menubar.js.map +1 -0
- package/dist/ui/multi-select.cjs +2 -0
- package/dist/ui/multi-select.cjs.map +1 -0
- package/dist/ui/multi-select.d.cts +81 -0
- package/dist/ui/multi-select.d.ts +81 -0
- package/dist/ui/multi-select.js +2 -0
- package/dist/ui/multi-select.js.map +1 -0
- package/dist/ui/navigation-menu.cjs +2 -0
- package/dist/ui/navigation-menu.cjs.map +1 -0
- package/dist/ui/navigation-menu.d.cts +47 -0
- package/dist/ui/navigation-menu.d.ts +47 -0
- package/dist/ui/navigation-menu.js +2 -0
- package/dist/ui/navigation-menu.js.map +1 -0
- package/dist/ui/pagination.cjs +2 -0
- package/dist/ui/pagination.cjs.map +1 -0
- package/dist/ui/pagination.d.cts +40 -0
- package/dist/ui/pagination.d.ts +40 -0
- package/dist/ui/pagination.js +2 -0
- package/dist/ui/pagination.js.map +1 -0
- package/dist/ui/popover.cjs +2 -0
- package/dist/ui/popover.cjs.map +1 -0
- package/dist/ui/popover.d.cts +24 -0
- package/dist/ui/popover.d.ts +24 -0
- package/dist/ui/popover.js +2 -0
- package/dist/ui/popover.js.map +1 -0
- package/dist/ui/progress.cjs +1 -0
- package/dist/ui/progress.d.cts +13 -0
- package/dist/ui/progress.d.ts +13 -0
- package/dist/ui/progress.js +1 -0
- package/dist/ui/radio-group.cjs +2 -0
- package/dist/ui/radio-group.cjs.map +1 -0
- package/dist/ui/radio-group.d.cts +16 -0
- package/dist/ui/radio-group.d.ts +16 -0
- package/dist/ui/radio-group.js +2 -0
- package/dist/ui/radio-group.js.map +1 -0
- package/dist/ui/resizable.cjs +2 -0
- package/dist/ui/resizable.cjs.map +1 -0
- package/dist/ui/resizable.d.cts +22 -0
- package/dist/ui/resizable.d.ts +22 -0
- package/dist/ui/resizable.js +2 -0
- package/dist/ui/resizable.js.map +1 -0
- package/dist/ui/scroll-area.cjs +1 -0
- package/dist/ui/scroll-area.d.cts +18 -0
- package/dist/ui/scroll-area.d.ts +18 -0
- package/dist/ui/scroll-area.js +1 -0
- package/dist/ui/select.cjs +1 -0
- package/dist/ui/select.d.cts +52 -0
- package/dist/ui/select.d.ts +52 -0
- package/dist/ui/select.js +1 -0
- package/dist/ui/separator.cjs +1 -0
- package/dist/ui/separator.d.cts +2 -0
- package/dist/ui/separator.d.ts +2 -0
- package/dist/ui/separator.js +1 -0
- package/dist/ui/sheet.cjs +1 -0
- package/dist/ui/sheet.d.cts +41 -0
- package/dist/ui/sheet.d.ts +41 -0
- package/dist/ui/sheet.js +1 -0
- package/dist/ui/sidebar.cjs +1 -0
- package/dist/ui/sidebar.d.cts +168 -0
- package/dist/ui/sidebar.d.ts +168 -0
- package/dist/ui/sidebar.js +1 -0
- package/dist/ui/skeleton.cjs +1 -0
- package/dist/ui/skeleton.d.cts +11 -0
- package/dist/ui/skeleton.d.ts +11 -0
- package/dist/ui/skeleton.js +1 -0
- package/dist/ui/slider.cjs +2 -0
- package/dist/ui/slider.cjs.map +1 -0
- package/dist/ui/slider.d.cts +16 -0
- package/dist/ui/slider.d.ts +16 -0
- package/dist/ui/slider.js +2 -0
- package/dist/ui/slider.js.map +1 -0
- package/dist/ui/sonner.cjs +2 -0
- package/dist/ui/sonner.cjs.map +1 -0
- package/dist/ui/sonner.d.cts +7 -0
- package/dist/ui/sonner.d.ts +7 -0
- package/dist/ui/sonner.js +2 -0
- package/dist/ui/sonner.js.map +1 -0
- package/dist/ui/switch.cjs +2 -0
- package/dist/ui/switch.cjs.map +1 -0
- package/dist/ui/switch.d.cts +12 -0
- package/dist/ui/switch.d.ts +12 -0
- package/dist/ui/switch.js +2 -0
- package/dist/ui/switch.js.map +1 -0
- package/dist/ui/table.cjs +1 -0
- package/dist/ui/table.d.cts +39 -0
- package/dist/ui/table.d.ts +39 -0
- package/dist/ui/table.js +1 -0
- package/dist/ui/tabs.cjs +2 -0
- package/dist/ui/tabs.cjs.map +1 -0
- package/dist/ui/tabs.d.cts +24 -0
- package/dist/ui/tabs.d.ts +24 -0
- package/dist/ui/tabs.js +2 -0
- package/dist/ui/tabs.js.map +1 -0
- package/dist/ui/textarea.cjs +2 -0
- package/dist/ui/textarea.cjs.map +1 -0
- package/dist/ui/textarea.d.cts +15 -0
- package/dist/ui/textarea.d.ts +15 -0
- package/dist/ui/textarea.js +2 -0
- package/dist/ui/textarea.js.map +1 -0
- package/dist/ui/toggle-group.cjs +2 -0
- package/dist/ui/toggle-group.cjs.map +1 -0
- package/dist/ui/toggle-group.d.cts +24 -0
- package/dist/ui/toggle-group.d.ts +24 -0
- package/dist/ui/toggle-group.js +2 -0
- package/dist/ui/toggle-group.js.map +1 -0
- package/dist/ui/toggle.cjs +1 -0
- package/dist/ui/toggle.d.cts +2 -0
- package/dist/ui/toggle.d.ts +2 -0
- package/dist/ui/toggle.js +1 -0
- package/dist/ui/tooltip.cjs +1 -0
- package/dist/ui/tooltip.d.cts +2 -0
- package/dist/ui/tooltip.d.ts +2 -0
- package/dist/ui/tooltip.js +1 -0
- package/dist/utils-BsjVK5EW.cjs +2 -0
- package/dist/utils-BsjVK5EW.cjs.map +1 -0
- package/dist/utils-D9AH0PUV.js +2 -0
- package/dist/utils-D9AH0PUV.js.map +1 -0
- package/package.json +285 -8
- package/dist/alert.cjs +0 -2
- package/dist/alert.cjs.map +0 -1
- package/dist/alert.js +0 -2
- package/dist/alert.js.map +0 -1
- package/dist/button.cjs +0 -2
- package/dist/button.cjs.map +0 -1
- package/dist/button.js +0 -2
- package/dist/button.js.map +0 -1
- package/dist/utils-Bo7GM4B-.cjs.map +0 -1
- package/dist/utils-CGQEF8PW.js +0 -2
- package/dist/utils-CGQEF8PW.js.map +0 -1
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
//#region packages/components/data-display/data-list.d.ts
|
|
4
|
+
type DataListProps = {
|
|
5
|
+
title?: string;
|
|
6
|
+
};
|
|
7
|
+
declare const DataList: React.FC<React.PropsWithChildren<DataListProps>>;
|
|
8
|
+
type DataListItemProps = {
|
|
9
|
+
label: string;
|
|
10
|
+
value: string | number | React.ReactNode;
|
|
11
|
+
minLabelWidth?: string;
|
|
12
|
+
};
|
|
13
|
+
declare const DataListItem: React.FC<React.PropsWithChildren<DataListItemProps>>;
|
|
14
|
+
//#endregion
|
|
15
|
+
export { DataList, DataListItem };
|
|
16
|
+
//# sourceMappingURL=data-list.d.ts.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"../utils-D9AH0PUV.js";import{Flex as e}from"../flex-ILvQrYMJ.js";import t from"react";import{jsx as n,jsxs as r}from"react/jsx-runtime";const i=({children:t})=>n(e,{vertical:!0,padding:`none`,gap:`md`,width:`full`,children:t}),a=({label:t,value:i,minLabelWidth:a=`120px`})=>r(e,{align:`center`,justify:`start`,width:`full`,padding:`none`,gap:`md`,children:[n(`div`,{style:{minWidth:a},className:`text-muted-foreground text-sm`,children:t}),n(`div`,{className:`text-secondary-foreground text-sm`,children:i})]});export{i as DataList,a as DataListItem};
|
|
2
|
+
//# sourceMappingURL=data-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-list.js","names":["DataList: React.FC<React.PropsWithChildren<DataListProps>>","DataListItem: React.FC<\n React.PropsWithChildren<DataListItemProps>\n>"],"sources":["../../packages/components/data-display/data-list.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { Flex } from \"../layouts/flex\";\n\ntype DataListProps = {\n title?: string;\n};\nexport const DataList: React.FC<React.PropsWithChildren<DataListProps>> = ({\n children,\n}) => {\n return (\n <Flex vertical padding=\"none\" gap=\"md\" width=\"full\">\n {children}\n </Flex>\n );\n};\n\ntype DataListItemProps = {\n label: string;\n value: string | number | React.ReactNode;\n minLabelWidth?: string;\n};\n\nexport const DataListItem: React.FC<\n React.PropsWithChildren<DataListItemProps>\n> = ({ label, value, minLabelWidth = \"120px\" }) => {\n return (\n <Flex align=\"center\" justify=\"start\" width=\"full\" padding=\"none\" gap=\"md\">\n <div\n style={{ minWidth: minLabelWidth }}\n className=\"text-muted-foreground text-sm\"\n >\n {label}\n </div>\n <div className=\"text-secondary-foreground text-sm\">{value}</div>\n </Flex>\n );\n};\n"],"mappings":"+IAOA,MAAaA,GAA8D,CACzE,WACD,GAEG,EAAC,EAAA,CAAK,SAAA,GAAS,QAAQ,OAAO,IAAI,KAAK,MAAM,OAC1C,aAWMC,GAER,CAAE,QAAO,QAAO,gBAAgB,QAAS,GAE1C,EAAC,EAAA,CAAK,MAAM,SAAS,QAAQ,QAAQ,MAAM,OAAO,QAAQ,OAAO,IAAI,eACnE,EAAC,MAAA,CACC,MAAO,CAAE,SAAU,EAAe,CAClC,UAAU,yCAET,IAEH,EAAC,MAAA,CAAI,UAAU,6CAAqC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require(`../utils-BsjVK5EW.cjs`);const e=require(`../date-nd8WkPlx.cjs`);exports.DateDisplay=e.DateDisplay;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
//#region packages/components/data-display/date.d.ts
|
|
4
|
+
interface Props {
|
|
5
|
+
date: Date | string | number;
|
|
6
|
+
format?: "short" | "medium" | "long" | "full" | "relative" | "datetime" | "time" | "smart";
|
|
7
|
+
showHoliday?: boolean;
|
|
8
|
+
showTime?: boolean;
|
|
9
|
+
className?: string;
|
|
10
|
+
title?: string;
|
|
11
|
+
}
|
|
12
|
+
declare const DateDisplay: React.FC<Props>;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { DateDisplay };
|
|
15
|
+
//# sourceMappingURL=date.d.cts.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
//#region packages/components/data-display/date.d.ts
|
|
4
|
+
interface Props {
|
|
5
|
+
date: Date | string | number;
|
|
6
|
+
format?: "short" | "medium" | "long" | "full" | "relative" | "datetime" | "time" | "smart";
|
|
7
|
+
showHoliday?: boolean;
|
|
8
|
+
showTime?: boolean;
|
|
9
|
+
className?: string;
|
|
10
|
+
title?: string;
|
|
11
|
+
}
|
|
12
|
+
declare const DateDisplay: React.FC<Props>;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { DateDisplay };
|
|
15
|
+
//# sourceMappingURL=date.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"../utils-D9AH0PUV.js";import{DateDisplay as e}from"../date-BMq_DNsv.js";export{e as DateDisplay};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";const e=require(`../chunk-CUT6urMc.cjs`);require(`../utils-BsjVK5EW.cjs`);const t=require(`../flex-CNA_SId-.cjs`),n=e.__toESM(require(`react/jsx-runtime`)),r=e.__toESM(require(`lucide-react`)),i=()=>(0,n.jsxs)(t.Flex,{vertical:!0,justify:`center`,align:`center`,gap:`sm`,className:`size-full`,children:[(0,n.jsx)(r.PackageOpenIcon,{size:52,strokeWidth:1,className:`text-muted-foreground`}),(0,n.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:`Không có dữ liệu nào để hiển thị.`})]});exports.EmptyDisplay=i;
|
|
2
|
+
//# sourceMappingURL=empty.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty.cjs","names":["Flex","PackageOpenIcon"],"sources":["../../packages/components/data-display/empty.tsx"],"sourcesContent":["\"use client\";\nimport { PackageOpenIcon } from \"lucide-react\";\n\nimport { Flex } from \"../layouts/flex\";\n\nexport const EmptyDisplay = () => {\n return (\n <Flex\n vertical\n justify=\"center\"\n align=\"center\"\n gap=\"sm\"\n className=\"size-full\"\n >\n <PackageOpenIcon\n size={52}\n strokeWidth={1}\n className=\"text-muted-foreground\"\n />\n <p className=\"text-muted-foreground text-sm\">\n Không có dữ liệu nào để hiển thị.\n </p>\n </Flex>\n );\n};\n"],"mappings":"8MAKa,OAET,EAAA,EAAA,MAACA,EAAAA,KAAAA,CACC,SAAA,GACA,QAAQ,SACR,MAAM,SACN,IAAI,KACJ,UAAU,uBAEV,EAAA,EAAA,KAACC,EAAAA,gBAAAA,CACC,KAAM,GACN,YAAa,EACb,UAAU,2BAEZ,EAAA,EAAA,KAAC,IAAA,CAAE,UAAU,yCAAgC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";import"../utils-D9AH0PUV.js";import{Flex as e}from"../flex-ILvQrYMJ.js";import{jsx as t,jsxs as n}from"react/jsx-runtime";import{PackageOpenIcon as r}from"lucide-react";const i=()=>n(e,{vertical:!0,justify:`center`,align:`center`,gap:`sm`,className:`size-full`,children:[t(r,{size:52,strokeWidth:1,className:`text-muted-foreground`}),t(`p`,{className:`text-muted-foreground text-sm`,children:`Không có dữ liệu nào để hiển thị.`})]});export{i as EmptyDisplay};
|
|
2
|
+
//# sourceMappingURL=empty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty.js","names":[],"sources":["../../packages/components/data-display/empty.tsx"],"sourcesContent":["\"use client\";\nimport { PackageOpenIcon } from \"lucide-react\";\n\nimport { Flex } from \"../layouts/flex\";\n\nexport const EmptyDisplay = () => {\n return (\n <Flex\n vertical\n justify=\"center\"\n align=\"center\"\n gap=\"sm\"\n className=\"size-full\"\n >\n <PackageOpenIcon\n size={52}\n strokeWidth={1}\n className=\"text-muted-foreground\"\n />\n <p className=\"text-muted-foreground text-sm\">\n Không có dữ liệu nào để hiển thị.\n </p>\n </Flex>\n );\n};\n"],"mappings":"sLAKA,MAAa,MAET,EAAC,EAAA,CACC,SAAA,GACA,QAAQ,SACR,MAAM,SACN,IAAI,KACJ,UAAU,sBAEV,EAAC,EAAA,CACC,KAAM,GACN,YAAa,EACb,UAAU,0BAEZ,EAAC,IAAA,CAAE,UAAU,yCAAgC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`../chunk-CUT6urMc.cjs`);require(`../utils-BsjVK5EW.cjs`);const t=require(`../paragraph-ZxI8zxuf.cjs`),n=require(`../tooltip-Beb-_EPp.cjs`),r=e.__toESM(require(`react`)),i=e.__toESM(require(`react/jsx-runtime`)),a=({name:e})=>(0,i.jsxs)(n.Tooltip,{children:[(0,i.jsx)(n.TooltipTrigger,{children:(0,i.jsx)(t.Paragraph,{variant:`sm`,className:`line-clamp-2 cursor-help`,children:e})}),(0,i.jsx)(n.TooltipContent,{className:`max-w-80 text-wrap break-keep whitespace-pre-line`,children:e})]});exports.NameDisplay=a;
|
|
2
|
+
//# sourceMappingURL=name.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"name.cjs","names":["NameDisplay: React.FC<\n React.PropsWithChildren<NameDisplayProps>\n>","Tooltip","TooltipTrigger","Paragraph","TooltipContent"],"sources":["../../packages/components/data-display/name.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { Paragraph } from \"../typography/paragraph\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../ui/tooltip\";\n\ntype NameDisplayProps = {\n name: string;\n};\n\nexport const NameDisplay: React.FC<\n React.PropsWithChildren<NameDisplayProps>\n> = ({ name }) => {\n return (\n <Tooltip>\n <TooltipTrigger>\n <Paragraph variant=\"sm\" className=\"line-clamp-2 cursor-help\">\n {name}\n </Paragraph>\n </TooltipTrigger>\n <TooltipContent className=\"max-w-80 text-wrap break-keep whitespace-pre-line\">\n {name}\n </TooltipContent>\n </Tooltip>\n );\n};\n"],"mappings":"oOASaA,GAER,CAAE,OAAM,IAET,EAAA,EAAA,MAACC,EAAAA,QAAAA,CAAAA,SAAAA,EACC,EAAA,EAAA,KAACC,EAAAA,eAAAA,CAAAA,UACC,EAAA,EAAA,KAACC,EAAAA,UAAAA,CAAU,QAAQ,KAAK,UAAU,oCAC/B,OAGL,EAAA,EAAA,KAACC,EAAAA,eAAAA,CAAe,UAAU,6DACvB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
//#region packages/components/data-display/name.d.ts
|
|
4
|
+
type NameDisplayProps = {
|
|
5
|
+
name: string;
|
|
6
|
+
};
|
|
7
|
+
declare const NameDisplay: React.FC<React.PropsWithChildren<NameDisplayProps>>;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { NameDisplay };
|
|
10
|
+
//# sourceMappingURL=name.d.cts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
//#region packages/components/data-display/name.d.ts
|
|
4
|
+
type NameDisplayProps = {
|
|
5
|
+
name: string;
|
|
6
|
+
};
|
|
7
|
+
declare const NameDisplay: React.FC<React.PropsWithChildren<NameDisplayProps>>;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { NameDisplay };
|
|
10
|
+
//# sourceMappingURL=name.d.ts.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"../utils-D9AH0PUV.js";import{Paragraph as e}from"../paragraph-Bey03JkA.js";import{Tooltip as t,TooltipContent as n,TooltipTrigger as r}from"../tooltip-Dzyf5smh.js";import i from"react";import{jsx as a,jsxs as o}from"react/jsx-runtime";const s=({name:i})=>o(t,{children:[a(r,{children:a(e,{variant:`sm`,className:`line-clamp-2 cursor-help`,children:i})}),a(n,{className:`max-w-80 text-wrap break-keep whitespace-pre-line`,children:i})]});export{s as NameDisplay};
|
|
2
|
+
//# sourceMappingURL=name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"name.js","names":["NameDisplay: React.FC<\n React.PropsWithChildren<NameDisplayProps>\n>"],"sources":["../../packages/components/data-display/name.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { Paragraph } from \"../typography/paragraph\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../ui/tooltip\";\n\ntype NameDisplayProps = {\n name: string;\n};\n\nexport const NameDisplay: React.FC<\n React.PropsWithChildren<NameDisplayProps>\n> = ({ name }) => {\n return (\n <Tooltip>\n <TooltipTrigger>\n <Paragraph variant=\"sm\" className=\"line-clamp-2 cursor-help\">\n {name}\n </Paragraph>\n </TooltipTrigger>\n <TooltipContent className=\"max-w-80 text-wrap break-keep whitespace-pre-line\">\n {name}\n </TooltipContent>\n </Tooltip>\n );\n};\n"],"mappings":"kPASA,MAAaA,GAER,CAAE,OAAM,GAET,EAAC,EAAA,CAAA,SAAA,CACC,EAAC,EAAA,CAAA,SACC,EAAC,EAAA,CAAU,QAAQ,KAAK,UAAU,oCAC/B,MAGL,EAAC,EAAA,CAAe,UAAU,6DACvB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`../chunk-CUT6urMc.cjs`);require(`../utils-BsjVK5EW.cjs`);const t=require(`../tooltip-Beb-_EPp.cjs`),n=e.__toESM(require(`react/jsx-runtime`)),r=({value:e})=>(0,n.jsxs)(t.Tooltip,{children:[(0,n.jsx)(t.TooltipTrigger,{asChild:!0,children:(0,n.jsx)(`p`,{className:`font-number text-secondary-foreground text-sm`,children:e.replace(/(\d{3})(\d{3})(\d{4})/,`($1) $2-$3`)})}),(0,n.jsx)(t.TooltipContent,{children:(0,n.jsx)(`p`,{children:e.slice(1).replace(/(\d{2})(\d{3})(\d{4})/,`(00) (+84) ($1) $2-$3`)})})]});exports.PhoneNumberDisplay=r;
|
|
2
|
+
//# sourceMappingURL=phone-number.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phone-number.cjs","names":["PhoneNumberDisplay: React.FC<\n React.PropsWithChildren<{ value: string }>\n>","Tooltip","TooltipTrigger","TooltipContent"],"sources":["../../packages/components/data-display/phone-number.tsx"],"sourcesContent":["import { Tooltip, TooltipContent, TooltipTrigger } from \"../ui/tooltip\";\n\nexport const PhoneNumberDisplay: React.FC<\n React.PropsWithChildren<{ value: string }>\n> = ({ value }) => {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <p className=\"font-number text-secondary-foreground text-sm\">\n {value.replace(/(\\d{3})(\\d{3})(\\d{4})/, \"($1) $2-$3\")}\n </p>\n </TooltipTrigger>\n <TooltipContent>\n <p>\n {value\n .slice(1)\n .replace(/(\\d{2})(\\d{3})(\\d{4})/, \"(00) (+84) ($1) $2-$3\")}\n </p>\n </TooltipContent>\n </Tooltip>\n );\n};\n"],"mappings":"+JAEaA,GAER,CAAE,QAAO,IAEV,EAAA,EAAA,MAACC,EAAAA,QAAAA,CAAAA,SAAAA,EACC,EAAA,EAAA,KAACC,EAAAA,eAAAA,CAAe,QAAA,aACd,EAAA,EAAA,KAAC,IAAA,CAAE,UAAU,yDACV,EAAM,QAAQ,wBAAyB,mBAG5C,EAAA,EAAA,KAACC,EAAAA,eAAAA,CAAAA,UACC,EAAA,EAAA,KAAC,IAAA,CAAA,SACE,EACE,MAAM,GACN,QAAQ,wBAAyB,yBAAA,EAAA,EAAA,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"../utils-D9AH0PUV.js";import{Tooltip as e,TooltipContent as t,TooltipTrigger as n}from"../tooltip-Dzyf5smh.js";import{jsx as r,jsxs as i}from"react/jsx-runtime";const a=({value:a})=>i(e,{children:[r(n,{asChild:!0,children:r(`p`,{className:`font-number text-secondary-foreground text-sm`,children:a.replace(/(\d{3})(\d{3})(\d{4})/,`($1) $2-$3`)})}),r(t,{children:r(`p`,{children:a.slice(1).replace(/(\d{2})(\d{3})(\d{4})/,`(00) (+84) ($1) $2-$3`)})})]});export{a as PhoneNumberDisplay};
|
|
2
|
+
//# sourceMappingURL=phone-number.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phone-number.js","names":["PhoneNumberDisplay: React.FC<\n React.PropsWithChildren<{ value: string }>\n>"],"sources":["../../packages/components/data-display/phone-number.tsx"],"sourcesContent":["import { Tooltip, TooltipContent, TooltipTrigger } from \"../ui/tooltip\";\n\nexport const PhoneNumberDisplay: React.FC<\n React.PropsWithChildren<{ value: string }>\n> = ({ value }) => {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <p className=\"font-number text-secondary-foreground text-sm\">\n {value.replace(/(\\d{3})(\\d{3})(\\d{4})/, \"($1) $2-$3\")}\n </p>\n </TooltipTrigger>\n <TooltipContent>\n <p>\n {value\n .slice(1)\n .replace(/(\\d{2})(\\d{3})(\\d{4})/, \"(00) (+84) ($1) $2-$3\")}\n </p>\n </TooltipContent>\n </Tooltip>\n );\n};\n"],"mappings":"wKAEA,MAAaA,GAER,CAAE,QAAO,GAEV,EAAC,EAAA,CAAA,SAAA,CACC,EAAC,EAAA,CAAe,QAAA,YACd,EAAC,IAAA,CAAE,UAAU,yDACV,EAAM,QAAQ,wBAAyB,kBAG5C,EAAC,EAAA,CAAA,SACC,EAAC,IAAA,CAAA,SACE,EACE,MAAM,GACN,QAAQ,wBAAyB,yBAAA,EAAA,EAAA,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`../chunk-CUT6urMc.cjs`);require(`../utils-BsjVK5EW.cjs`);const t=require(`../types-CrbWxjnp.cjs`),n=require(`../badge-CRXT2dH_.cjs`),r=e.__toESM(require(`react`)),i=e.__toESM(require(`react/jsx-runtime`)),a=({status:e})=>{let a=r.default.useMemo(()=>({[t.ERole.ADMIN]:`red`,[t.ERole.SUPER_ADMIN]:`purple`,[t.ERole.MODERATOR]:`indigo`,[t.ERole.STAFF]:`green`,[t.ERole.USER]:`blue`}),[]);return(0,i.jsxs)(n.Badge,{color:a[e],className:`min-w-24 justify-center`,children:[e===t.ERole.SUPER_ADMIN&&`Super Admin`,e===t.ERole.ADMIN&&`Admin`,e===t.ERole.MODERATOR&&`Moderator`,e===t.ERole.STAFF&&`Staff`,e===t.ERole.USER&&`User`]})};exports.RoleBadge=a;
|
|
2
|
+
//# sourceMappingURL=role-badge.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role-badge.cjs","names":["RoleBadge: React.FC<React.PropsWithChildren<Props>>","React","ERole","Badge"],"sources":["../../packages/components/data-display/role-badge.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { ERole } from \"@/types\";\n\nimport { Badge } from \"../ui/badge\";\n\ntype Props = {\n status: ERole;\n};\nexport const RoleBadge: React.FC<React.PropsWithChildren<Props>> = ({\n status,\n}) => {\n const colors = React.useMemo<\n Record<ERole, React.ComponentProps<typeof Badge>[\"color\"]>\n >(() => {\n return {\n [ERole.ADMIN]: \"red\",\n [ERole.SUPER_ADMIN]: \"purple\",\n [ERole.MODERATOR]: \"indigo\",\n [ERole.STAFF]: \"green\",\n [ERole.USER]: \"blue\",\n };\n }, []);\n return (\n <Badge color={colors[status]} className=\"min-w-24 justify-center\">\n {status === ERole.SUPER_ADMIN && \"Super Admin\"}\n {status === ERole.ADMIN && \"Admin\"}\n {status === ERole.MODERATOR && \"Moderator\"}\n {status === ERole.STAFF && \"Staff\"}\n {status === ERole.USER && \"User\"}\n </Badge>\n );\n};\n"],"mappings":"8NASaA,GAAuD,CAClE,SACD,GAAK,CACJ,IAAM,EAASC,EAAAA,QAAM,aAGZ,EACJC,EAAAA,MAAM,OAAQ,OACdA,EAAAA,MAAM,aAAc,UACpBA,EAAAA,MAAM,WAAY,UAClBA,EAAAA,MAAM,OAAQ,SACdA,EAAAA,MAAM,MAAO,OACf,EACA,EAAE,EACL,OACE,EAAA,EAAA,MAACC,EAAAA,MAAAA,CAAM,MAAO,EAAO,GAAS,UAAU,oCACrC,IAAWD,EAAAA,MAAM,aAAe,cAChC,IAAWA,EAAAA,MAAM,OAAS,QAC1B,IAAWA,EAAAA,MAAM,WAAa,YAC9B,IAAWA,EAAAA,MAAM,OAAS,QAC1B,IAAWA,EAAAA,MAAM,MAAQ,SAG/B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ERole } from "../types-B0V1F4Ml.cjs";
|
|
2
|
+
import React from "react";
|
|
3
|
+
|
|
4
|
+
//#region packages/components/data-display/role-badge.d.ts
|
|
5
|
+
type Props = {
|
|
6
|
+
status: ERole;
|
|
7
|
+
};
|
|
8
|
+
declare const RoleBadge: React.FC<React.PropsWithChildren<Props>>;
|
|
9
|
+
//#endregion
|
|
10
|
+
export { RoleBadge };
|
|
11
|
+
//# sourceMappingURL=role-badge.d.cts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ERole } from "../types-DLrIc2fL.js";
|
|
2
|
+
import React from "react";
|
|
3
|
+
|
|
4
|
+
//#region packages/components/data-display/role-badge.d.ts
|
|
5
|
+
type Props = {
|
|
6
|
+
status: ERole;
|
|
7
|
+
};
|
|
8
|
+
declare const RoleBadge: React.FC<React.PropsWithChildren<Props>>;
|
|
9
|
+
//#endregion
|
|
10
|
+
export { RoleBadge };
|
|
11
|
+
//# sourceMappingURL=role-badge.d.ts.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"../utils-D9AH0PUV.js";import{ERole as e}from"../types-DaIHddx7.js";import{Badge as t}from"../badge-D_qEoSL8.js";import n from"react";import{jsxs as r}from"react/jsx-runtime";const i=({status:i})=>{let a=n.useMemo(()=>({[e.ADMIN]:`red`,[e.SUPER_ADMIN]:`purple`,[e.MODERATOR]:`indigo`,[e.STAFF]:`green`,[e.USER]:`blue`}),[]);return r(t,{color:a[i],className:`min-w-24 justify-center`,children:[i===e.SUPER_ADMIN&&`Super Admin`,i===e.ADMIN&&`Admin`,i===e.MODERATOR&&`Moderator`,i===e.STAFF&&`Staff`,i===e.USER&&`User`]})};export{i as RoleBadge};
|
|
2
|
+
//# sourceMappingURL=role-badge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role-badge.js","names":["RoleBadge: React.FC<React.PropsWithChildren<Props>>"],"sources":["../../packages/components/data-display/role-badge.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { ERole } from \"@/types\";\n\nimport { Badge } from \"../ui/badge\";\n\ntype Props = {\n status: ERole;\n};\nexport const RoleBadge: React.FC<React.PropsWithChildren<Props>> = ({\n status,\n}) => {\n const colors = React.useMemo<\n Record<ERole, React.ComponentProps<typeof Badge>[\"color\"]>\n >(() => {\n return {\n [ERole.ADMIN]: \"red\",\n [ERole.SUPER_ADMIN]: \"purple\",\n [ERole.MODERATOR]: \"indigo\",\n [ERole.STAFF]: \"green\",\n [ERole.USER]: \"blue\",\n };\n }, []);\n return (\n <Badge color={colors[status]} className=\"min-w-24 justify-center\">\n {status === ERole.SUPER_ADMIN && \"Super Admin\"}\n {status === ERole.ADMIN && \"Admin\"}\n {status === ERole.MODERATOR && \"Moderator\"}\n {status === ERole.STAFF && \"Staff\"}\n {status === ERole.USER && \"User\"}\n </Badge>\n );\n};\n"],"mappings":"qLASA,MAAaA,GAAuD,CAClE,SACD,GAAK,CACJ,IAAM,EAAS,EAAM,aAGZ,EACJ,EAAM,OAAQ,OACd,EAAM,aAAc,UACpB,EAAM,WAAY,UAClB,EAAM,OAAQ,SACd,EAAM,MAAO,OACf,EACA,EAAE,EACL,OACE,EAAC,EAAA,CAAM,MAAO,EAAO,GAAS,UAAU,oCACrC,IAAW,EAAM,aAAe,cAChC,IAAW,EAAM,OAAS,QAC1B,IAAW,EAAM,WAAa,YAC9B,IAAW,EAAM,OAAS,QAC1B,IAAW,EAAM,MAAQ,SAG/B"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`../chunk-CUT6urMc.cjs`),t=require(`../utils-BsjVK5EW.cjs`),n=require(`../flex-CNA_SId-.cjs`),r=e.__toESM(require(`react`)),i=e.__toESM(require(`react/jsx-runtime`)),a=r.default.memo(({decimalSeparator:e=`.`,groupSeparator:a=`,`,prefix:o,suffix:s,precision:c,roundingMode:l=`round`,showTrailingZeros:u=!1,size:d=`lg`,value:f})=>{let p=r.default.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;case`round`:default:return Math.round(e*n)/n}},[l]),m=r.default.useMemo(()=>{let e={};return typeof c==`number`&&c>=0&&(u&&(e.minimumFractionDigits=c),e.maximumFractionDigits=c),e},[c,u]),h=r.default.useCallback(e=>{let t=e;return typeof c==`number`&&c>=0&&(t=p(e,c)),t.toLocaleString(`en-US`,m)},[p,m,c]),g=r.default.useMemo(()=>{if(typeof f==`number`)return isNaN(f)||!isFinite(f)?`N/A`:h(f);if(typeof f==`string`){let e=f.trim();if(!e)return`N/A`;let t=Number(e);return isNaN(t)||!isFinite(t)?`N/A`:h(t)}return`N/A`},[f,h]),_=r.default.useMemo(()=>e===`.`&&a===`,`?g:g.replace(/,/g,a).replace(/\./g,e),[g,e,a]);return(0,i.jsxs)(n.Flex,{padding:`none`,className:t.cn(`text-secondary-foreground font-number text-lg`,d===`xs`&&`text-xs`,d===`sm`&&`text-sm`,d===`md`&&`text-base`,d===`lg`&&`text-lg`,d===`xl`&&`text-xl`),children:[o,(0,i.jsx)(`p`,{children:_}),s]})});a.displayName=`Statistic`,exports.Statistic=a;
|
|
2
|
+
//# sourceMappingURL=statistic.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statistic.cjs","names":["React","options: Intl.NumberFormatOptions","Flex","cn"],"sources":["../../packages/components/data-display/statistic.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nimport { Flex } from \"../layouts/flex\";\n\ntype Props = {\n decimalSeparator?: string;\n groupSeparator?: string;\n prefix?: React.ReactNode;\n suffix?: React.ReactNode;\n precision?: number; // Số chữ số thập phân\n roundingMode?: \"round\" | \"floor\" | \"ceil\"; // Kiểu làm tròn\n showTrailingZeros?: boolean; // Hiển thị số 0 cuối\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\"; // Kích thước của component\n value: number | string;\n};\nexport const Statistic = React.memo(\n ({\n decimalSeparator = \".\",\n groupSeparator = \",\",\n prefix: Prefix,\n suffix: Suffix,\n precision,\n roundingMode = \"round\",\n showTrailingZeros = false,\n size = \"lg\",\n value,\n }: Props) => {\n // Memoize rounding function\n const applyRounding = React.useCallback(\n (num: number, precisionValue: number): number => {\n const multiplier = Math.pow(10, precisionValue);\n\n switch (roundingMode) {\n case \"floor\":\n return Math.floor(num * multiplier) / multiplier;\n case \"ceil\":\n return Math.ceil(num * multiplier) / multiplier;\n case \"round\":\n default:\n return Math.round(num * multiplier) / multiplier;\n }\n },\n [roundingMode],\n );\n\n // Memoize number formatting options\n const formatOptions = React.useMemo((): Intl.NumberFormatOptions => {\n const options: Intl.NumberFormatOptions = {};\n\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\n return options;\n }, [precision, showTrailingZeros]);\n\n const formatNumber = React.useCallback(\n (num: number): string => {\n let processedNum = num;\n\n // Áp dụng làm tròn nếu có precision\n if (typeof precision === \"number\" && precision >= 0) {\n processedNum = applyRounding(num, precision);\n }\n\n return processedNum.toLocaleString(\"en-US\", formatOptions);\n },\n [applyRounding, formatOptions, precision],\n );\n\n // Memoize value processing\n const processedValue = React.useMemo((): string => {\n // Xử lý giá trị number\n if (typeof value === \"number\") {\n if (isNaN(value) || !isFinite(value)) {\n return \"N/A\";\n }\n return formatNumber(value);\n }\n\n // Xử lý giá trị string\n if (typeof value === \"string\") {\n const trimmedValue = value.trim();\n\n // Nếu là chuỗi rỗng\n if (!trimmedValue) {\n return \"N/A\";\n }\n\n // Thử convert sang number\n const numValue = Number(trimmedValue);\n\n if (isNaN(numValue) || !isFinite(numValue)) {\n // Nếu không phải số, trả về string gốc\n return \"N/A\";\n }\n\n return formatNumber(numValue);\n }\n\n return \"N/A\";\n }, [value, formatNumber]);\n\n // Memoize separator replacement\n const finalFormattedValue = React.useMemo((): string => {\n // Chỉ thay thế separators nếu khác mặc định\n if (decimalSeparator === \".\" && groupSeparator === \",\") {\n return processedValue;\n }\n return processedValue\n .replace(/,/g, groupSeparator)\n .replace(/\\./g, decimalSeparator);\n }, [processedValue, decimalSeparator, groupSeparator]);\n\n return (\n <Flex\n padding=\"none\"\n className={cn(\n \"text-secondary-foreground font-number text-lg\",\n size === \"xs\" && \"text-xs\",\n size === \"sm\" && \"text-sm\",\n size === \"md\" && \"text-base\",\n size === \"lg\" && \"text-lg\",\n size === \"xl\" && \"text-xl\",\n )}\n >\n {Prefix}\n <p>{finalFormattedValue}</p>\n {Suffix}\n </Flex>\n );\n },\n);\nStatistic.displayName = \"Statistic\";\n"],"mappings":"sLAiBa,EAAYA,EAAAA,QAAM,MAC5B,CACC,mBAAmB,IACnB,iBAAiB,IACjB,OAAQ,EACR,OAAQ,EACR,YACA,eAAe,QACf,oBAAoB,GACpB,OAAO,KACP,QACM,GAAK,CAEX,IAAM,EAAgBA,EAAAA,QAAM,aACzB,EAAa,IAAmC,CAC/C,IAAM,EAAsB,IAAI,EAEhC,OAAQ,EAAR,CACE,IAAK,QACH,OAAO,KAAK,MAAM,EAAM,GAAc,EACxC,IAAK,OACH,OAAO,KAAK,KAAK,EAAM,GAAc,EACvC,IAAK,QACL,QACE,OAAO,KAAK,MAAM,EAAM,GAAc,CACzC,CACF,EACD,CAAC,EAAa,EAIV,EAAgBA,EAAAA,QAAM,YAAwC,CAClE,IAAMC,EAAoC,EAAE,CAW5C,OATI,OAAO,GAAc,UAAY,GAAa,IAC5C,IACF,EAAQ,sBAAwB,GAGhC,EAAQ,sBAAwB,GAI7B,CACR,EAAE,CAAC,EAAW,EAAkB,EAE3B,EAAeD,EAAAA,QAAM,YACxB,GAAwB,CACvB,IAAI,EAAe,EAOnB,OAJI,OAAO,GAAc,UAAY,GAAa,IAChD,EAAe,EAAc,EAAK,IAG7B,EAAa,eAAe,QAAS,EAC7C,EACD,CAAC,EAAe,EAAe,EAAU,EAIrC,EAAiBA,EAAAA,QAAM,YAAsB,CAEjD,GAAI,OAAO,GAAU,SAInB,OAHI,MAAM,IAAU,CAAC,SAAS,GACrB,MAEF,EAAa,GAItB,GAAI,OAAO,GAAU,SAAU,CAC7B,IAAM,EAAe,EAAM,OAG3B,GAAI,CAAC,EACH,MAAO,MAIT,IAAM,EAAW,OAAO,GAOxB,OALI,MAAM,IAAa,CAAC,SAAS,GAExB,MAGF,EAAa,EACrB,CAED,MAAO,KACR,EAAE,CAAC,EAAO,EAAa,EAGlB,EAAsBA,EAAAA,QAAM,YAE5B,IAAqB,KAAO,IAAmB,IAC1C,EAEF,EACJ,QAAQ,KAAM,GACd,QAAQ,MAAO,GACjB,CAAC,EAAgB,EAAkB,EAAe,EAErD,OACE,EAAA,EAAA,MAACE,EAAAA,KAAAA,CACC,QAAQ,OACR,UAAWC,EAAAA,GACT,gDACA,IAAS,MAAQ,UACjB,IAAS,MAAQ,UACjB,IAAS,MAAQ,YACjB,IAAS,MAAQ,UACjB,IAAS,MAAQ,qBAGlB,GACD,EAAA,EAAA,KAAC,IAAA,CAAA,SAAG,EAAA,EACH,IAGN,GAEH,EAAU,YAAc"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as react_jsx_runtime3 from "react/jsx-runtime";
|
|
2
|
+
import React from "react";
|
|
3
|
+
|
|
4
|
+
//#region packages/components/data-display/statistic.d.ts
|
|
5
|
+
type Props = {
|
|
6
|
+
decimalSeparator?: string;
|
|
7
|
+
groupSeparator?: string;
|
|
8
|
+
prefix?: React.ReactNode;
|
|
9
|
+
suffix?: React.ReactNode;
|
|
10
|
+
precision?: number;
|
|
11
|
+
roundingMode?: "round" | "floor" | "ceil";
|
|
12
|
+
showTrailingZeros?: boolean;
|
|
13
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl";
|
|
14
|
+
value: number | string;
|
|
15
|
+
};
|
|
16
|
+
declare const Statistic: React.MemoExoticComponent<({
|
|
17
|
+
decimalSeparator,
|
|
18
|
+
groupSeparator,
|
|
19
|
+
prefix: Prefix,
|
|
20
|
+
suffix: Suffix,
|
|
21
|
+
precision,
|
|
22
|
+
roundingMode,
|
|
23
|
+
showTrailingZeros,
|
|
24
|
+
size,
|
|
25
|
+
value
|
|
26
|
+
}: Props) => react_jsx_runtime3.JSX.Element>;
|
|
27
|
+
//#endregion
|
|
28
|
+
export { Statistic };
|
|
29
|
+
//# sourceMappingURL=statistic.d.cts.map
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import * as react_jsx_runtime2 from "react/jsx-runtime";
|
|
3
|
+
|
|
4
|
+
//#region packages/components/data-display/statistic.d.ts
|
|
5
|
+
type Props = {
|
|
6
|
+
decimalSeparator?: string;
|
|
7
|
+
groupSeparator?: string;
|
|
8
|
+
prefix?: React.ReactNode;
|
|
9
|
+
suffix?: React.ReactNode;
|
|
10
|
+
precision?: number;
|
|
11
|
+
roundingMode?: "round" | "floor" | "ceil";
|
|
12
|
+
showTrailingZeros?: boolean;
|
|
13
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl";
|
|
14
|
+
value: number | string;
|
|
15
|
+
};
|
|
16
|
+
declare const Statistic: React.MemoExoticComponent<({
|
|
17
|
+
decimalSeparator,
|
|
18
|
+
groupSeparator,
|
|
19
|
+
prefix: Prefix,
|
|
20
|
+
suffix: Suffix,
|
|
21
|
+
precision,
|
|
22
|
+
roundingMode,
|
|
23
|
+
showTrailingZeros,
|
|
24
|
+
size,
|
|
25
|
+
value
|
|
26
|
+
}: Props) => react_jsx_runtime2.JSX.Element>;
|
|
27
|
+
//#endregion
|
|
28
|
+
export { Statistic };
|
|
29
|
+
//# sourceMappingURL=statistic.d.ts.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{cn as e}from"../utils-D9AH0PUV.js";import{Flex as t}from"../flex-ILvQrYMJ.js";import n from"react";import{jsx as r,jsxs as i}from"react/jsx-runtime";const a=n.memo(({decimalSeparator:a=`.`,groupSeparator:o=`,`,prefix:s,suffix:c,precision:l,roundingMode:u=`round`,showTrailingZeros:d=!1,size:f=`lg`,value:p})=>{let m=n.useCallback((e,t)=>{let n=10**t;switch(u){case`floor`:return Math.floor(e*n)/n;case`ceil`:return Math.ceil(e*n)/n;case`round`:default:return Math.round(e*n)/n}},[u]),h=n.useMemo(()=>{let e={};return typeof l==`number`&&l>=0&&(d&&(e.minimumFractionDigits=l),e.maximumFractionDigits=l),e},[l,d]),g=n.useCallback(e=>{let t=e;return typeof l==`number`&&l>=0&&(t=m(e,l)),t.toLocaleString(`en-US`,h)},[m,h,l]),_=n.useMemo(()=>{if(typeof p==`number`)return isNaN(p)||!isFinite(p)?`N/A`:g(p);if(typeof p==`string`){let e=p.trim();if(!e)return`N/A`;let t=Number(e);return isNaN(t)||!isFinite(t)?`N/A`:g(t)}return`N/A`},[p,g]),v=n.useMemo(()=>a===`.`&&o===`,`?_:_.replace(/,/g,o).replace(/\./g,a),[_,a,o]);return i(t,{padding:`none`,className:e(`text-secondary-foreground font-number text-lg`,f===`xs`&&`text-xs`,f===`sm`&&`text-sm`,f===`md`&&`text-base`,f===`lg`&&`text-lg`,f===`xl`&&`text-xl`),children:[s,r(`p`,{children:v}),c]})});a.displayName=`Statistic`;export{a 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":["import React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nimport { Flex } from \"../layouts/flex\";\n\ntype Props = {\n decimalSeparator?: string;\n groupSeparator?: string;\n prefix?: React.ReactNode;\n suffix?: React.ReactNode;\n precision?: number; // Số chữ số thập phân\n roundingMode?: \"round\" | \"floor\" | \"ceil\"; // Kiểu làm tròn\n showTrailingZeros?: boolean; // Hiển thị số 0 cuối\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\"; // Kích thước của component\n value: number | string;\n};\nexport const Statistic = React.memo(\n ({\n decimalSeparator = \".\",\n groupSeparator = \",\",\n prefix: Prefix,\n suffix: Suffix,\n precision,\n roundingMode = \"round\",\n showTrailingZeros = false,\n size = \"lg\",\n value,\n }: Props) => {\n // Memoize rounding function\n const applyRounding = React.useCallback(\n (num: number, precisionValue: number): number => {\n const multiplier = Math.pow(10, precisionValue);\n\n switch (roundingMode) {\n case \"floor\":\n return Math.floor(num * multiplier) / multiplier;\n case \"ceil\":\n return Math.ceil(num * multiplier) / multiplier;\n case \"round\":\n default:\n return Math.round(num * multiplier) / multiplier;\n }\n },\n [roundingMode],\n );\n\n // Memoize number formatting options\n const formatOptions = React.useMemo((): Intl.NumberFormatOptions => {\n const options: Intl.NumberFormatOptions = {};\n\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\n return options;\n }, [precision, showTrailingZeros]);\n\n const formatNumber = React.useCallback(\n (num: number): string => {\n let processedNum = num;\n\n // Áp dụng làm tròn nếu có precision\n if (typeof precision === \"number\" && precision >= 0) {\n processedNum = applyRounding(num, precision);\n }\n\n return processedNum.toLocaleString(\"en-US\", formatOptions);\n },\n [applyRounding, formatOptions, precision],\n );\n\n // Memoize value processing\n const processedValue = React.useMemo((): string => {\n // Xử lý giá trị number\n if (typeof value === \"number\") {\n if (isNaN(value) || !isFinite(value)) {\n return \"N/A\";\n }\n return formatNumber(value);\n }\n\n // Xử lý giá trị string\n if (typeof value === \"string\") {\n const trimmedValue = value.trim();\n\n // Nếu là chuỗi rỗng\n if (!trimmedValue) {\n return \"N/A\";\n }\n\n // Thử convert sang number\n const numValue = Number(trimmedValue);\n\n if (isNaN(numValue) || !isFinite(numValue)) {\n // Nếu không phải số, trả về string gốc\n return \"N/A\";\n }\n\n return formatNumber(numValue);\n }\n\n return \"N/A\";\n }, [value, formatNumber]);\n\n // Memoize separator replacement\n const finalFormattedValue = React.useMemo((): string => {\n // Chỉ thay thế separators nếu khác mặc định\n if (decimalSeparator === \".\" && groupSeparator === \",\") {\n return processedValue;\n }\n return processedValue\n .replace(/,/g, groupSeparator)\n .replace(/\\./g, decimalSeparator);\n }, [processedValue, decimalSeparator, groupSeparator]);\n\n return (\n <Flex\n padding=\"none\"\n className={cn(\n \"text-secondary-foreground font-number text-lg\",\n size === \"xs\" && \"text-xs\",\n size === \"sm\" && \"text-sm\",\n size === \"md\" && \"text-base\",\n size === \"lg\" && \"text-lg\",\n size === \"xl\" && \"text-xl\",\n )}\n >\n {Prefix}\n <p>{finalFormattedValue}</p>\n {Suffix}\n </Flex>\n );\n },\n);\nStatistic.displayName = \"Statistic\";\n"],"mappings":"4JAiBA,MAAa,EAAY,EAAM,MAC5B,CACC,mBAAmB,IACnB,iBAAiB,IACjB,OAAQ,EACR,OAAQ,EACR,YACA,eAAe,QACf,oBAAoB,GACpB,OAAO,KACP,QACM,GAAK,CAEX,IAAM,EAAgB,EAAM,aACzB,EAAa,IAAmC,CAC/C,IAAM,EAAsB,IAAI,EAEhC,OAAQ,EAAR,CACE,IAAK,QACH,OAAO,KAAK,MAAM,EAAM,GAAc,EACxC,IAAK,OACH,OAAO,KAAK,KAAK,EAAM,GAAc,EACvC,IAAK,QACL,QACE,OAAO,KAAK,MAAM,EAAM,GAAc,CACzC,CACF,EACD,CAAC,EAAa,EAIV,EAAgB,EAAM,YAAwC,CAClE,IAAMA,EAAoC,EAAE,CAW5C,OATI,OAAO,GAAc,UAAY,GAAa,IAC5C,IACF,EAAQ,sBAAwB,GAGhC,EAAQ,sBAAwB,GAI7B,CACR,EAAE,CAAC,EAAW,EAAkB,EAE3B,EAAe,EAAM,YACxB,GAAwB,CACvB,IAAI,EAAe,EAOnB,OAJI,OAAO,GAAc,UAAY,GAAa,IAChD,EAAe,EAAc,EAAK,IAG7B,EAAa,eAAe,QAAS,EAC7C,EACD,CAAC,EAAe,EAAe,EAAU,EAIrC,EAAiB,EAAM,YAAsB,CAEjD,GAAI,OAAO,GAAU,SAInB,OAHI,MAAM,IAAU,CAAC,SAAS,GACrB,MAEF,EAAa,GAItB,GAAI,OAAO,GAAU,SAAU,CAC7B,IAAM,EAAe,EAAM,OAG3B,GAAI,CAAC,EACH,MAAO,MAIT,IAAM,EAAW,OAAO,GAOxB,OALI,MAAM,IAAa,CAAC,SAAS,GAExB,MAGF,EAAa,EACrB,CAED,MAAO,KACR,EAAE,CAAC,EAAO,EAAa,EAGlB,EAAsB,EAAM,YAE5B,IAAqB,KAAO,IAAmB,IAC1C,EAEF,EACJ,QAAQ,KAAM,GACd,QAAQ,MAAO,GACjB,CAAC,EAAgB,EAAkB,EAAe,EAErD,OACE,EAAC,EAAA,CACC,QAAQ,OACR,UAAW,EACT,gDACA,IAAS,MAAQ,UACjB,IAAS,MAAQ,UACjB,IAAS,MAAQ,YACjB,IAAS,MAAQ,UACjB,IAAS,MAAQ,qBAGlB,EACD,EAAC,IAAA,CAAA,SAAG,EAAA,EACH,IAGN,GAEH,EAAU,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{cn as e}from"./utils-D9AH0PUV.js";import t from"react";import{jsx as n}from"react/jsx-runtime";import{format as r,isThisMonth as i,isThisWeek as a,isThisYear as o,isToday as s,isTomorrow as c,isValid as l,isYesterday as u,parseISO as d}from"date-fns";const f={weekdays:[`Chủ Nhật`,`Thứ Hai`,`Thứ Ba`,`Thứ Tư`,`Thứ Năm`,`Thứ Sáu`,`Thứ Bảy`],weekdaysShort:[`CN`,`T2`,`T3`,`T4`,`T5`,`T6`,`T7`],months:[`Tháng 1`,`Tháng 2`,`Tháng 3`,`Tháng 4`,`Tháng 5`,`Tháng 6`,`Tháng 7`,`Tháng 8`,`Tháng 9`,`Tháng 10`,`Tháng 11`,`Tháng 12`],monthsShort:[`T1`,`T2`,`T3`,`T4`,`T5`,`T6`,`T7`,`T8`,`T9`,`T10`,`T11`,`T12`]},p={"01-01":`Tết Dương lịch`,"03-08":`Quốc tế Phụ nữ`,"04-30":`Ngày Giải phóng miền Nam`,"05-01":`Quốc tế Lao động`,"09-02":`Quốc khánh`,"10-20":`Ngày Phụ nữ Việt Nam`,"11-20":`Ngày Nhà giáo Việt Nam`};Object.freeze({SECOND:1e3,MINUTE:60*1e3,HOUR:3600*1e3,DAY:1440*60*1e3,WEEK:10080*60*1e3,MONTH:720*60*60*1e3,YEAR:365*24*60*60*1e3});const m=Object.freeze({MINUTE:60,HOUR:3600,DAY:1440*60,WEEK:10080*60,MONTH:720*60*60,YEAR:365*24*60*60});Object.freeze({HOUR:60,DAY:1440,WEEK:10080,MONTH:720*60});const h=({date:h,format:g=`medium`,showHoliday:_=!1,showTime:v=!1,className:y=``,title:b})=>{let x=t.useMemo(()=>{try{if(h instanceof Date)return l(h)?h:null;if(typeof h==`string`){let e=d(h);return l(e)?e:new Date(h)}if(typeof h==`number`){let e=new Date(h);return l(e)?e:null}return null}catch{return null}},[h]),S=t.useCallback(e=>{let t=new Date,n=Math.floor((t.getTime()-e.getTime())/1e3);return n<60?`Vừa xong`:n<3600?`${Math.floor(n/m.MINUTE)} phút trước`:n<86400?`${Math.floor(n/m.HOUR)} giờ trước`:n<604800?`${Math.floor(n/m.DAY)} ngày trước`:n<2592e3?`${Math.floor(n/m.WEEK)} tuần trước`:n<31536e3?`${Math.floor(n/m.MONTH)} tháng trước`:`${Math.floor(n/m.YEAR)} năm trước`},[]),C=t.useCallback((e,t=!1)=>{let n=e.getDay();return t?f.weekdaysShort[n]:f.weekdays[n]},[]),w=t.useCallback((e,t=!1)=>{let n=e.getMonth();return t?f.monthsShort[n]:f.months[n]},[]),T=t.useCallback(e=>{let t=r(e,`MM-dd`);return p[t]||null},[]),E=t.useCallback(e=>{if(s(e))return v?`Hôm nay ${r(e,`HH:mm`)}`:`Hôm nay`;if(u(e))return v?`Hôm qua ${r(e,`HH:mm`)}`:`Hôm qua`;if(c(e))return v?`Ngày mai ${r(e,`HH:mm`)}`:`Ngày mai`;if(a(e)){let t=C(e);return v?`${t} ${r(e,`HH:mm`)}`:t}if(i(e)){let t=r(e,`d`);return v?`${t}/${r(e,`M`)} ${r(e,`HH:mm`)}`:`${t}/${r(e,`M`)}`}return o(e)?v?r(e,`d/M HH:mm`):r(e,`d/M`):v?r(e,`d/M/yyyy HH:mm`):r(e,`d/M/yyyy`)},[C,v]),D=t.useCallback((e,t)=>{let n=v?r(e,`, HH:mm`):``;switch(t){case`short`:return r(e,`d/M/yy`)+n;case`medium`:return r(e,`dd/MM/yyyy`)+n;case`long`:return`${r(e,`d`)} ${w(e)} ${r(e,`yyyy`)}`+n;case`full`:{let t=`${C(e)}, ngày ${r(e,`d`)} ${w(e)} năm ${r(e,`yyyy`)}`;return t+n}case`relative`:return S(e);case`datetime`:return r(e,`d/M/yyyy HH:mm`);case`time`:return r(e,`HH:mm`);case`smart`:return E(e);default:return r(e,`d/M/yyyy`)+n}},[E,w,C,S,v]);if(!x)return n(`span`,{className:e(`text-muted-foreground text-sm`,y),children:`--/--/----`});let O=D(x,g),k=_?T(x):null,A=k?`${O} (${k})`:O,j=b||r(x,`EEEE, d MMMM yyyy HH:mm:ss`);return n(`time`,{dateTime:x.toISOString(),className:e(`text-accent-foreground font-number text-sm`,y),title:j,children:A})};export{h as DateDisplay};
|
|
2
|
+
//# sourceMappingURL=date-BMq_DNsv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-BMq_DNsv.js","names":["DateDisplay: React.FC<Props>","date"],"sources":["../packages/constants.tsx","../packages/components/data-display/date.tsx"],"sourcesContent":["// Vietnamese locale configuration\nexport const vietnameseLocale = {\n weekdays: [\n \"Chủ Nhật\",\n \"Thứ Hai\",\n \"Thứ Ba\",\n \"Thứ Tư\",\n \"Thứ Năm\",\n \"Thứ Sáu\",\n \"Thứ Bảy\",\n ],\n weekdaysShort: [\"CN\", \"T2\", \"T3\", \"T4\", \"T5\", \"T6\", \"T7\"],\n months: [\n \"Tháng 1\",\n \"Tháng 2\",\n \"Tháng 3\",\n \"Tháng 4\",\n \"Tháng 5\",\n \"Tháng 6\",\n \"Tháng 7\",\n \"Tháng 8\",\n \"Tháng 9\",\n \"Tháng 10\",\n \"Tháng 11\",\n \"Tháng 12\",\n ],\n monthsShort: [\n \"T1\",\n \"T2\",\n \"T3\",\n \"T4\",\n \"T5\",\n \"T6\",\n \"T7\",\n \"T8\",\n \"T9\",\n \"T10\",\n \"T11\",\n \"T12\",\n ],\n};\n\n// Vietnamese holidays\nexport const vietnameseHolidays = {\n \"01-01\": \"Tết Dương lịch\",\n \"03-08\": \"Quốc tế Phụ nữ\",\n \"04-30\": \"Ngày Giải phóng miền Nam\",\n \"05-01\": \"Quốc tế Lao động\",\n \"09-02\": \"Quốc khánh\",\n \"10-20\": \"Ngày Phụ nữ Việt Nam\",\n \"11-20\": \"Ngày Nhà giáo Việt Nam\",\n};\n\n// Time Constants in milliseconds, seconds, and minutes\nexport const TIME_IN_MS = Object.freeze({\n SECOND: 1000,\n MINUTE: 60 * 1000,\n HOUR: 60 * 60 * 1000,\n DAY: 24 * 60 * 60 * 1000,\n WEEK: 7 * 24 * 60 * 60 * 1000,\n MONTH: 30 * 24 * 60 * 60 * 1000, // Approximation for month length = 30 days\n YEAR: 365 * 24 * 60 * 60 * 1000,\n});\n\nexport const TIME_IN_SECONDS = Object.freeze({\n MINUTE: 60,\n HOUR: 60 * 60,\n DAY: 24 * 60 * 60,\n WEEK: 7 * 24 * 60 * 60,\n MONTH: 30 * 24 * 60 * 60,\n YEAR: 365 * 24 * 60 * 60,\n});\n\nexport const TIME_IN_MINUTES = Object.freeze({\n HOUR: 60,\n DAY: 24 * 60,\n WEEK: 7 * 24 * 60,\n MONTH: 30 * 24 * 60,\n});\n","import React from \"react\";\nimport {\n format,\n isThisMonth,\n isThisWeek,\n isThisYear,\n isToday,\n isTomorrow,\n isValid,\n isYesterday,\n parseISO,\n} from \"date-fns\";\n\nimport {\n TIME_IN_SECONDS,\n vietnameseHolidays,\n vietnameseLocale,\n} from \"@/constants\";\nimport { cn } from \"@/lib/utils\";\n\ninterface Props {\n date: Date | string | number;\n format?:\n | \"short\" // 15/03/24\n | \"medium\" // 15/03/2024\n | \"long\" // 15 tháng 3, 2024\n | \"full\" // Thứ Sáu, ngày 15 tháng 3 năm 2024\n | \"relative\" // 2 giờ trước\n | \"datetime\" // 15/03/2024 14:30\n | \"time\" // 14:30\n | \"smart\"; // Tự động chọn format phù hợp\n showHoliday?: boolean;\n showTime?: boolean;\n className?: string;\n title?: string; // Tooltip khi hover\n}\n\nexport const DateDisplay: React.FC<Props> = ({\n date,\n format: formatType = \"medium\",\n showHoliday = false,\n showTime = false,\n className = \"\",\n title,\n}) => {\n const parsedDate = React.useMemo(() => {\n try {\n if (date instanceof Date) {\n return isValid(date) ? date : null;\n }\n if (typeof date === \"string\") {\n const parsed = parseISO(date);\n return isValid(parsed) ? parsed : new Date(date);\n }\n if (typeof date === \"number\") {\n const parsed = new Date(date);\n return isValid(parsed) ? parsed : null;\n }\n return null;\n } catch {\n return null;\n }\n }, [date]);\n\n // Format relative time in Vietnamese\n const formatRelativeTime = React.useCallback((date: Date): string => {\n const now = new Date();\n const diffInSeconds = Math.floor((now.getTime() - date.getTime()) / 1000);\n\n if (diffInSeconds < 60) return \"Vừa xong\";\n if (diffInSeconds < 3600)\n return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.MINUTE)} phút trước`;\n if (diffInSeconds < 86400)\n return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.HOUR)} giờ trước`;\n if (diffInSeconds < 604800)\n return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.DAY)} ngày trước`;\n if (diffInSeconds < 2592000)\n return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.WEEK)} tuần trước`;\n if (diffInSeconds < 31536000)\n return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.MONTH)} tháng trước`;\n return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.YEAR)} năm trước`;\n }, []);\n\n // Vietnamese weekday\n const getVietnameseWeekday = React.useCallback(\n (date: Date, short: boolean = false): string => {\n const dayIndex = date.getDay();\n return short\n ? vietnameseLocale.weekdaysShort[dayIndex]\n : vietnameseLocale.weekdays[dayIndex];\n },\n [],\n );\n\n // Vietnamese month\n const getVietnameseMonth = React.useCallback(\n (date: Date, short: boolean = false): string => {\n const monthIndex = date.getMonth();\n return short\n ? vietnameseLocale.monthsShort[monthIndex]\n : vietnameseLocale.months[monthIndex];\n },\n [],\n );\n\n // Check holiday\n const getHoliday = React.useCallback((date: Date): string | null => {\n const monthDay = format(date, \"MM-dd\") as keyof typeof vietnameseHolidays;\n return vietnameseHolidays[monthDay] || null;\n }, []);\n\n // Smart format - choose appropriate format based on date\n const getSmartFormat = React.useCallback(\n (date: Date): string => {\n if (isToday(date)) {\n return showTime ? `Hôm nay ${format(date, \"HH:mm\")}` : \"Hôm nay\";\n }\n if (isYesterday(date)) {\n return showTime ? `Hôm qua ${format(date, \"HH:mm\")}` : \"Hôm qua\";\n }\n if (isTomorrow(date)) {\n return showTime ? `Ngày mai ${format(date, \"HH:mm\")}` : \"Ngày mai\";\n }\n if (isThisWeek(date)) {\n const weekday = getVietnameseWeekday(date);\n return showTime ? `${weekday} ${format(date, \"HH:mm\")}` : weekday;\n }\n if (isThisMonth(date)) {\n const day = format(date, \"d\");\n return showTime\n ? `${day}/${format(date, \"M\")} ${format(date, \"HH:mm\")}`\n : `${day}/${format(date, \"M\")}`;\n }\n if (isThisYear(date)) {\n return showTime ? format(date, \"d/M HH:mm\") : format(date, \"d/M\");\n }\n return showTime\n ? format(date, \"d/M/yyyy HH:mm\")\n : format(date, \"d/M/yyyy\");\n },\n [getVietnameseWeekday, showTime],\n );\n\n // Main formatting function\n const formatDate = React.useCallback(\n (date: Date, type: string): string => {\n const timeStr = showTime ? format(date, \", HH:mm\") : \"\";\n\n switch (type) {\n case \"short\":\n return format(date, \"d/M/yy\") + timeStr;\n\n case \"medium\":\n return format(date, \"dd/MM/yyyy\") + timeStr;\n\n case \"long\":\n return (\n `${format(date, \"d\")} ${getVietnameseMonth(date)} ${format(date, \"yyyy\")}` +\n timeStr\n );\n\n case \"full\": {\n const data = `${getVietnameseWeekday(date)}, ngày ${format(date, \"d\")} ${getVietnameseMonth(date)} năm ${format(date, \"yyyy\")}`;\n return data + timeStr;\n }\n\n case \"relative\":\n return formatRelativeTime(date);\n\n case \"datetime\":\n return format(date, \"d/M/yyyy HH:mm\");\n\n case \"time\":\n return format(date, \"HH:mm\");\n\n case \"smart\":\n return getSmartFormat(date);\n\n default:\n return format(date, \"d/M/yyyy\") + timeStr;\n }\n },\n [\n getSmartFormat,\n getVietnameseMonth,\n getVietnameseWeekday,\n formatRelativeTime,\n showTime,\n ],\n );\n\n if (!parsedDate) {\n return (\n <span className={cn(\"text-muted-foreground text-sm\", className)}>\n --/--/----\n </span>\n );\n }\n\n const formattedDate = formatDate(parsedDate, formatType);\n const holiday = showHoliday ? getHoliday(parsedDate) : null;\n const displayText = holiday ? `${formattedDate} (${holiday})` : formattedDate;\n const tooltipTitle =\n title || format(parsedDate, \"EEEE, d MMMM yyyy HH:mm:ss\");\n\n return (\n <time\n dateTime={parsedDate.toISOString()}\n className={cn(\"text-accent-foreground font-number text-sm\", className)}\n title={tooltipTitle}\n >\n {displayText}\n </time>\n );\n};\n"],"mappings":"kQACA,MAAa,EAAmB,CAC9B,SAAU,CACR,WACA,UACA,SACA,SACA,UACA,UACA,UACD,CACD,cAAe,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAK,CACzD,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,WACD,CACD,YAAa,CACX,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACD,CACF,CAGY,EAAqB,CAChC,QAAS,iBACT,QAAS,iBACT,QAAS,2BACT,QAAS,mBACT,QAAS,aACT,QAAS,uBACT,QAAS,yBACV,CAGyB,OAAO,OAAO,CACtC,OAAQ,IACR,OAAQ,GAAK,IACb,KAAM,KAAU,IAChB,IAAK,KAAU,GAAK,IACpB,KAAM,MAAc,GAAK,IACzB,MAAO,IAAU,GAAK,GAAK,IAC3B,KAAM,IAAM,GAAK,GAAK,GAAK,IAC5B,EAED,MAAa,EAAkB,OAAO,OAAO,CAC3C,OAAQ,GACR,KAAM,KACN,IAAK,KAAU,GACf,KAAM,MAAc,GACpB,MAAO,IAAU,GAAK,GACtB,KAAM,IAAM,GAAK,GAAK,GACvB,EAE8B,OAAO,OAAO,CAC3C,KAAM,GACN,IAAK,KACL,KAAM,MACN,MAAO,IAAU,GAClB,ECzCD,MAAaA,GAAgC,CAC3C,OACA,OAAQ,EAAa,SACrB,cAAc,GACd,WAAW,GACX,YAAY,GACZ,QACD,GAAK,CACJ,IAAM,EAAa,EAAM,YAAc,CACrC,GAAI,CACF,GAAI,aAAgB,KAClB,OAAO,EAAQ,GAAQ,EAAO,KAEhC,GAAI,OAAO,GAAS,SAAU,CAC5B,IAAM,EAAS,EAAS,GACxB,OAAO,EAAQ,GAAU,EAAS,IAAI,KAAK,EAC5C,CACD,GAAI,OAAO,GAAS,SAAU,CAC5B,IAAM,EAAS,IAAI,KAAK,GACxB,OAAO,EAAQ,GAAU,EAAS,IACnC,CACD,OAAO,IACR,MAAO,CACN,OAAO,IACR,CACF,EAAE,CAAC,EAAK,EAGH,EAAqB,EAAM,YAAa,GAAuB,CACnE,IAAM,EAAM,IAAI,KACV,EAAgB,KAAK,OAAO,EAAI,UAAYC,EAAK,WAAa,KAapE,OAXI,EAAgB,GAAW,WAC3B,EAAgB,KACX,GAAG,KAAK,MAAM,EAAgB,EAAgB,QAAQ,aAC3D,EAAgB,MACX,GAAG,KAAK,MAAM,EAAgB,EAAgB,MAAM,YACzD,EAAgB,OACX,GAAG,KAAK,MAAM,EAAgB,EAAgB,KAAK,aACxD,EAAgB,OACX,GAAG,KAAK,MAAM,EAAgB,EAAgB,MAAM,aACzD,EAAgB,QACX,GAAG,KAAK,MAAM,EAAgB,EAAgB,OAAO,cACvD,GAAG,KAAK,MAAM,EAAgB,EAAgB,MAAM,WAC5D,EAAE,EAAE,EAGC,EAAuB,EAAM,aAChC,EAAY,EAAiB,KAAkB,CAC9C,IAAM,EAAWA,EAAK,SACtB,OAAO,EACH,EAAiB,cAAc,GAC/B,EAAiB,SAAS,EAC/B,EACD,EAAE,EAIE,EAAqB,EAAM,aAC9B,EAAY,EAAiB,KAAkB,CAC9C,IAAM,EAAaA,EAAK,WACxB,OAAO,EACH,EAAiB,YAAY,GAC7B,EAAiB,OAAO,EAC7B,EACD,EAAE,EAIE,EAAa,EAAM,YAAa,GAA8B,CAClE,IAAM,EAAW,EAAOA,EAAM,SAC9B,OAAO,EAAmB,IAAa,IACxC,EAAE,EAAE,EAGC,EAAiB,EAAM,YAC1B,GAAuB,CACtB,GAAI,EAAQA,GACV,OAAO,EAAW,WAAW,EAAOA,EAAM,WAAa,UAEzD,GAAI,EAAYA,GACd,OAAO,EAAW,WAAW,EAAOA,EAAM,WAAa,UAEzD,GAAI,EAAWA,GACb,OAAO,EAAW,YAAY,EAAOA,EAAM,WAAa,WAE1D,GAAI,EAAWA,GAAO,CACpB,IAAM,EAAU,EAAqBA,GACrC,OAAO,EAAW,GAAG,EAAQ,GAAG,EAAOA,EAAM,WAAa,CAC3D,CACD,GAAI,EAAYA,GAAO,CACrB,IAAM,EAAM,EAAOA,EAAM,KACzB,OAAO,EACH,GAAG,EAAI,GAAG,EAAOA,EAAM,KAAK,GAAG,EAAOA,EAAM,WAC5C,GAAG,EAAI,GAAG,EAAOA,EAAM,MAC5B,CAID,OAHI,EAAWA,GACN,EAAW,EAAOA,EAAM,aAAe,EAAOA,EAAM,OAEtD,EACH,EAAOA,EAAM,kBACb,EAAOA,EAAM,WAClB,EACD,CAAC,EAAsB,EAAS,EAI5B,EAAa,EAAM,aACtB,EAAY,IAAyB,CACpC,IAAM,EAAU,EAAW,EAAOA,EAAM,WAAa,GAErD,OAAQ,EAAR,CACE,IAAK,QACH,OAAO,EAAOA,EAAM,UAAY,EAElC,IAAK,SACH,OAAO,EAAOA,EAAM,cAAgB,EAEtC,IAAK,OACH,MACE,GAAG,EAAOA,EAAM,KAAK,GAAG,EAAmBA,GAAM,GAAG,EAAOA,EAAM,UACjE,EAGJ,IAAK,OAAQ,CACX,IAAM,EAAO,GAAG,EAAqBA,GAAM,SAAS,EAAOA,EAAM,KAAK,GAAG,EAAmBA,GAAM,OAAO,EAAOA,EAAM,UACtH,OAAO,EAAO,CACf,CAED,IAAK,WACH,OAAO,EAAmBA,GAE5B,IAAK,WACH,OAAO,EAAOA,EAAM,kBAEtB,IAAK,OACH,OAAO,EAAOA,EAAM,SAEtB,IAAK,QACH,OAAO,EAAeA,GAExB,QACE,OAAO,EAAOA,EAAM,YAAc,CACrC,CACF,EACD,CACE,EACA,EACA,EACA,EACA,EACD,EAGH,GAAI,CAAC,EACH,OACE,EAAC,OAAA,CAAK,UAAW,EAAG,gCAAiC,YAAY,eAMrE,IAAM,EAAgB,EAAW,EAAY,GACvC,EAAU,EAAc,EAAW,GAAc,KACjD,EAAc,EAAU,GAAG,EAAc,IAAI,EAAQ,GAAK,EAC1D,EACJ,GAAS,EAAO,EAAY,8BAE9B,OACE,EAAC,OAAA,CACC,SAAU,EAAW,cACrB,UAAW,EAAG,6CAA8C,GAC5D,MAAO,WAEN,GAGN"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`./chunk-CUT6urMc.cjs`),t=require(`./utils-BsjVK5EW.cjs`),n=e.__toESM(require(`react`)),r=e.__toESM(require(`react/jsx-runtime`)),i=e.__toESM(require(`date-fns`)),a={weekdays:[`Chủ Nhật`,`Thứ Hai`,`Thứ Ba`,`Thứ Tư`,`Thứ Năm`,`Thứ Sáu`,`Thứ Bảy`],weekdaysShort:[`CN`,`T2`,`T3`,`T4`,`T5`,`T6`,`T7`],months:[`Tháng 1`,`Tháng 2`,`Tháng 3`,`Tháng 4`,`Tháng 5`,`Tháng 6`,`Tháng 7`,`Tháng 8`,`Tháng 9`,`Tháng 10`,`Tháng 11`,`Tháng 12`],monthsShort:[`T1`,`T2`,`T3`,`T4`,`T5`,`T6`,`T7`,`T8`,`T9`,`T10`,`T11`,`T12`]},o={"01-01":`Tết Dương lịch`,"03-08":`Quốc tế Phụ nữ`,"04-30":`Ngày Giải phóng miền Nam`,"05-01":`Quốc tế Lao động`,"09-02":`Quốc khánh`,"10-20":`Ngày Phụ nữ Việt Nam`,"11-20":`Ngày Nhà giáo Việt Nam`},s=Object.freeze({SECOND:1e3,MINUTE:60*1e3,HOUR:3600*1e3,DAY:1440*60*1e3,WEEK:10080*60*1e3,MONTH:720*60*60*1e3,YEAR:365*24*60*60*1e3}),c=Object.freeze({MINUTE:60,HOUR:3600,DAY:1440*60,WEEK:10080*60,MONTH:720*60*60,YEAR:365*24*60*60}),l=Object.freeze({HOUR:60,DAY:1440,WEEK:10080,MONTH:720*60}),u=({date:e,format:s=`medium`,showHoliday:l=!1,showTime:u=!1,className:d=``,title:f})=>{let p=n.default.useMemo(()=>{try{if(e instanceof Date)return(0,i.isValid)(e)?e:null;if(typeof e==`string`){let t=(0,i.parseISO)(e);return(0,i.isValid)(t)?t:new Date(e)}if(typeof e==`number`){let t=new Date(e);return(0,i.isValid)(t)?t:null}return null}catch{return null}},[e]),m=n.default.useCallback(e=>{let t=new Date,n=Math.floor((t.getTime()-e.getTime())/1e3);return n<60?`Vừa xong`:n<3600?`${Math.floor(n/c.MINUTE)} phút trước`:n<86400?`${Math.floor(n/c.HOUR)} giờ trước`:n<604800?`${Math.floor(n/c.DAY)} ngày trước`:n<2592e3?`${Math.floor(n/c.WEEK)} tuần trước`:n<31536e3?`${Math.floor(n/c.MONTH)} tháng trước`:`${Math.floor(n/c.YEAR)} năm trước`},[]),h=n.default.useCallback((e,t=!1)=>{let n=e.getDay();return t?a.weekdaysShort[n]:a.weekdays[n]},[]),g=n.default.useCallback((e,t=!1)=>{let n=e.getMonth();return t?a.monthsShort[n]:a.months[n]},[]),_=n.default.useCallback(e=>{let t=(0,i.format)(e,`MM-dd`);return o[t]||null},[]),v=n.default.useCallback(e=>{if((0,i.isToday)(e))return u?`Hôm nay ${(0,i.format)(e,`HH:mm`)}`:`Hôm nay`;if((0,i.isYesterday)(e))return u?`Hôm qua ${(0,i.format)(e,`HH:mm`)}`:`Hôm qua`;if((0,i.isTomorrow)(e))return u?`Ngày mai ${(0,i.format)(e,`HH:mm`)}`:`Ngày mai`;if((0,i.isThisWeek)(e)){let t=h(e);return u?`${t} ${(0,i.format)(e,`HH:mm`)}`:t}if((0,i.isThisMonth)(e)){let t=(0,i.format)(e,`d`);return u?`${t}/${(0,i.format)(e,`M`)} ${(0,i.format)(e,`HH:mm`)}`:`${t}/${(0,i.format)(e,`M`)}`}return(0,i.isThisYear)(e)?u?(0,i.format)(e,`d/M HH:mm`):(0,i.format)(e,`d/M`):u?(0,i.format)(e,`d/M/yyyy HH:mm`):(0,i.format)(e,`d/M/yyyy`)},[h,u]),y=n.default.useCallback((e,t)=>{let n=u?(0,i.format)(e,`, HH:mm`):``;switch(t){case`short`:return(0,i.format)(e,`d/M/yy`)+n;case`medium`:return(0,i.format)(e,`dd/MM/yyyy`)+n;case`long`:return`${(0,i.format)(e,`d`)} ${g(e)} ${(0,i.format)(e,`yyyy`)}`+n;case`full`:{let t=`${h(e)}, ngày ${(0,i.format)(e,`d`)} ${g(e)} năm ${(0,i.format)(e,`yyyy`)}`;return t+n}case`relative`:return m(e);case`datetime`:return(0,i.format)(e,`d/M/yyyy HH:mm`);case`time`:return(0,i.format)(e,`HH:mm`);case`smart`:return v(e);default:return(0,i.format)(e,`d/M/yyyy`)+n}},[v,g,h,m,u]);if(!p)return(0,r.jsx)(`span`,{className:t.cn(`text-muted-foreground text-sm`,d),children:`--/--/----`});let b=y(p,s),x=l?_(p):null,S=x?`${b} (${x})`:b,C=f||(0,i.format)(p,`EEEE, d MMMM yyyy HH:mm:ss`);return(0,r.jsx)(`time`,{dateTime:p.toISOString(),className:t.cn(`text-accent-foreground font-number text-sm`,d),title:C,children:S})};Object.defineProperty(exports,`DateDisplay`,{enumerable:!0,get:function(){return u}});
|
|
2
|
+
//# sourceMappingURL=date-nd8WkPlx.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-nd8WkPlx.cjs","names":["DateDisplay: React.FC<Props>","React","date","cn"],"sources":["../packages/constants.tsx","../packages/components/data-display/date.tsx"],"sourcesContent":["// Vietnamese locale configuration\nexport const vietnameseLocale = {\n weekdays: [\n \"Chủ Nhật\",\n \"Thứ Hai\",\n \"Thứ Ba\",\n \"Thứ Tư\",\n \"Thứ Năm\",\n \"Thứ Sáu\",\n \"Thứ Bảy\",\n ],\n weekdaysShort: [\"CN\", \"T2\", \"T3\", \"T4\", \"T5\", \"T6\", \"T7\"],\n months: [\n \"Tháng 1\",\n \"Tháng 2\",\n \"Tháng 3\",\n \"Tháng 4\",\n \"Tháng 5\",\n \"Tháng 6\",\n \"Tháng 7\",\n \"Tháng 8\",\n \"Tháng 9\",\n \"Tháng 10\",\n \"Tháng 11\",\n \"Tháng 12\",\n ],\n monthsShort: [\n \"T1\",\n \"T2\",\n \"T3\",\n \"T4\",\n \"T5\",\n \"T6\",\n \"T7\",\n \"T8\",\n \"T9\",\n \"T10\",\n \"T11\",\n \"T12\",\n ],\n};\n\n// Vietnamese holidays\nexport const vietnameseHolidays = {\n \"01-01\": \"Tết Dương lịch\",\n \"03-08\": \"Quốc tế Phụ nữ\",\n \"04-30\": \"Ngày Giải phóng miền Nam\",\n \"05-01\": \"Quốc tế Lao động\",\n \"09-02\": \"Quốc khánh\",\n \"10-20\": \"Ngày Phụ nữ Việt Nam\",\n \"11-20\": \"Ngày Nhà giáo Việt Nam\",\n};\n\n// Time Constants in milliseconds, seconds, and minutes\nexport const TIME_IN_MS = Object.freeze({\n SECOND: 1000,\n MINUTE: 60 * 1000,\n HOUR: 60 * 60 * 1000,\n DAY: 24 * 60 * 60 * 1000,\n WEEK: 7 * 24 * 60 * 60 * 1000,\n MONTH: 30 * 24 * 60 * 60 * 1000, // Approximation for month length = 30 days\n YEAR: 365 * 24 * 60 * 60 * 1000,\n});\n\nexport const TIME_IN_SECONDS = Object.freeze({\n MINUTE: 60,\n HOUR: 60 * 60,\n DAY: 24 * 60 * 60,\n WEEK: 7 * 24 * 60 * 60,\n MONTH: 30 * 24 * 60 * 60,\n YEAR: 365 * 24 * 60 * 60,\n});\n\nexport const TIME_IN_MINUTES = Object.freeze({\n HOUR: 60,\n DAY: 24 * 60,\n WEEK: 7 * 24 * 60,\n MONTH: 30 * 24 * 60,\n});\n","import React from \"react\";\nimport {\n format,\n isThisMonth,\n isThisWeek,\n isThisYear,\n isToday,\n isTomorrow,\n isValid,\n isYesterday,\n parseISO,\n} from \"date-fns\";\n\nimport {\n TIME_IN_SECONDS,\n vietnameseHolidays,\n vietnameseLocale,\n} from \"@/constants\";\nimport { cn } from \"@/lib/utils\";\n\ninterface Props {\n date: Date | string | number;\n format?:\n | \"short\" // 15/03/24\n | \"medium\" // 15/03/2024\n | \"long\" // 15 tháng 3, 2024\n | \"full\" // Thứ Sáu, ngày 15 tháng 3 năm 2024\n | \"relative\" // 2 giờ trước\n | \"datetime\" // 15/03/2024 14:30\n | \"time\" // 14:30\n | \"smart\"; // Tự động chọn format phù hợp\n showHoliday?: boolean;\n showTime?: boolean;\n className?: string;\n title?: string; // Tooltip khi hover\n}\n\nexport const DateDisplay: React.FC<Props> = ({\n date,\n format: formatType = \"medium\",\n showHoliday = false,\n showTime = false,\n className = \"\",\n title,\n}) => {\n const parsedDate = React.useMemo(() => {\n try {\n if (date instanceof Date) {\n return isValid(date) ? date : null;\n }\n if (typeof date === \"string\") {\n const parsed = parseISO(date);\n return isValid(parsed) ? parsed : new Date(date);\n }\n if (typeof date === \"number\") {\n const parsed = new Date(date);\n return isValid(parsed) ? parsed : null;\n }\n return null;\n } catch {\n return null;\n }\n }, [date]);\n\n // Format relative time in Vietnamese\n const formatRelativeTime = React.useCallback((date: Date): string => {\n const now = new Date();\n const diffInSeconds = Math.floor((now.getTime() - date.getTime()) / 1000);\n\n if (diffInSeconds < 60) return \"Vừa xong\";\n if (diffInSeconds < 3600)\n return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.MINUTE)} phút trước`;\n if (diffInSeconds < 86400)\n return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.HOUR)} giờ trước`;\n if (diffInSeconds < 604800)\n return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.DAY)} ngày trước`;\n if (diffInSeconds < 2592000)\n return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.WEEK)} tuần trước`;\n if (diffInSeconds < 31536000)\n return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.MONTH)} tháng trước`;\n return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.YEAR)} năm trước`;\n }, []);\n\n // Vietnamese weekday\n const getVietnameseWeekday = React.useCallback(\n (date: Date, short: boolean = false): string => {\n const dayIndex = date.getDay();\n return short\n ? vietnameseLocale.weekdaysShort[dayIndex]\n : vietnameseLocale.weekdays[dayIndex];\n },\n [],\n );\n\n // Vietnamese month\n const getVietnameseMonth = React.useCallback(\n (date: Date, short: boolean = false): string => {\n const monthIndex = date.getMonth();\n return short\n ? vietnameseLocale.monthsShort[monthIndex]\n : vietnameseLocale.months[monthIndex];\n },\n [],\n );\n\n // Check holiday\n const getHoliday = React.useCallback((date: Date): string | null => {\n const monthDay = format(date, \"MM-dd\") as keyof typeof vietnameseHolidays;\n return vietnameseHolidays[monthDay] || null;\n }, []);\n\n // Smart format - choose appropriate format based on date\n const getSmartFormat = React.useCallback(\n (date: Date): string => {\n if (isToday(date)) {\n return showTime ? `Hôm nay ${format(date, \"HH:mm\")}` : \"Hôm nay\";\n }\n if (isYesterday(date)) {\n return showTime ? `Hôm qua ${format(date, \"HH:mm\")}` : \"Hôm qua\";\n }\n if (isTomorrow(date)) {\n return showTime ? `Ngày mai ${format(date, \"HH:mm\")}` : \"Ngày mai\";\n }\n if (isThisWeek(date)) {\n const weekday = getVietnameseWeekday(date);\n return showTime ? `${weekday} ${format(date, \"HH:mm\")}` : weekday;\n }\n if (isThisMonth(date)) {\n const day = format(date, \"d\");\n return showTime\n ? `${day}/${format(date, \"M\")} ${format(date, \"HH:mm\")}`\n : `${day}/${format(date, \"M\")}`;\n }\n if (isThisYear(date)) {\n return showTime ? format(date, \"d/M HH:mm\") : format(date, \"d/M\");\n }\n return showTime\n ? format(date, \"d/M/yyyy HH:mm\")\n : format(date, \"d/M/yyyy\");\n },\n [getVietnameseWeekday, showTime],\n );\n\n // Main formatting function\n const formatDate = React.useCallback(\n (date: Date, type: string): string => {\n const timeStr = showTime ? format(date, \", HH:mm\") : \"\";\n\n switch (type) {\n case \"short\":\n return format(date, \"d/M/yy\") + timeStr;\n\n case \"medium\":\n return format(date, \"dd/MM/yyyy\") + timeStr;\n\n case \"long\":\n return (\n `${format(date, \"d\")} ${getVietnameseMonth(date)} ${format(date, \"yyyy\")}` +\n timeStr\n );\n\n case \"full\": {\n const data = `${getVietnameseWeekday(date)}, ngày ${format(date, \"d\")} ${getVietnameseMonth(date)} năm ${format(date, \"yyyy\")}`;\n return data + timeStr;\n }\n\n case \"relative\":\n return formatRelativeTime(date);\n\n case \"datetime\":\n return format(date, \"d/M/yyyy HH:mm\");\n\n case \"time\":\n return format(date, \"HH:mm\");\n\n case \"smart\":\n return getSmartFormat(date);\n\n default:\n return format(date, \"d/M/yyyy\") + timeStr;\n }\n },\n [\n getSmartFormat,\n getVietnameseMonth,\n getVietnameseWeekday,\n formatRelativeTime,\n showTime,\n ],\n );\n\n if (!parsedDate) {\n return (\n <span className={cn(\"text-muted-foreground text-sm\", className)}>\n --/--/----\n </span>\n );\n }\n\n const formattedDate = formatDate(parsedDate, formatType);\n const holiday = showHoliday ? getHoliday(parsedDate) : null;\n const displayText = holiday ? `${formattedDate} (${holiday})` : formattedDate;\n const tooltipTitle =\n title || format(parsedDate, \"EEEE, d MMMM yyyy HH:mm:ss\");\n\n return (\n <time\n dateTime={parsedDate.toISOString()}\n className={cn(\"text-accent-foreground font-number text-sm\", className)}\n title={tooltipTitle}\n >\n {displayText}\n </time>\n );\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{cn as e}from"./utils-D9AH0PUV.js";import t from"react";import{jsx as n,jsxs as r}from"react/jsx-runtime";import{XIcon as i}from"lucide-react";import{Dialog as a}from"radix-ui";function o({...e}){return n(a.Root,{"data-slot":`dialog`,...e})}function s({...e}){return n(a.Trigger,{"data-slot":`dialog-trigger`,...e})}function c({...e}){return n(a.Portal,{"data-slot":`dialog-portal`,...e})}function l({...e}){return n(a.Close,{"data-slot":`dialog-close`,...e})}function u({className:t,...r}){return n(a.Overlay,{"data-slot":`dialog-overlay`,className:e(`fixed inset-0 z-50 bg-black/50`,`data-[state=open]:animate-in`,`data-[state=open]:fade-in-0`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0`,t),...r})}function d({className:t,children:o,showCloseButton:s=!0,...l}){return r(c,{"data-slot":`dialog-portal`,children:[n(u,{}),n(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:r(a.Content,{"data-slot":`dialog-content`,className:e(`bg-background relative dark:border`,`z-50 grid max-h-[85svh] w-full max-w-[calc(100%-2rem)]`,`gap-4 rounded-2xl p-6 shadow-lg duration-200 sm:max-w-lg`,`data-[state=open]:animate-in`,`data-[state=open]:fade-in-0`,`data-[state=open]:zoom-in-80`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0`,`data-[state=closed]:zoom-out-80`,t),...l,children:[o,s&&r(a.Close,{"data-slot":`dialog-close`,tabIndex:-1,className:e(`btnClose`,`absolute top-3 right-3 rounded-full p-2 opacity-70`,`cursor-pointer transition-all`,`outline-0`,`focus:ring-2`,`focus:ring-border`,`hover:opacity-100`,`hover:bg-accent`,`data-[state=open]:bg-accent`,`data-[state=open]:text-muted-foreground`,`disabled:pointer-events-none`,`[&_svg]:text-accent-foreground/60`,`[&_svg]:hover:text-accent-foreground`,`[&_svg]:pointer-events-none`,`[&_svg]:shrink-0`,`[&_svg:not([class*='size-'])]:size-5`),children:[n(i,{}),n(`span`,{className:`sr-only`,children:`Close`})]})]})})]})}function f({className:t,...r}){return n(`div`,{"data-slot":`dialog-header`,className:e(`flex flex-col gap-2 text-center sm:text-left`,t),...r})}function p({className:t,...r}){return n(`div`,{"data-slot":`dialog-footer`,className:e(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,t),...r})}function m({className:t,...r}){return n(a.Title,{"data-slot":`dialog-title`,className:e(`text-lg leading-none font-semibold`,t),...r})}function h({className:t,...r}){return n(a.Description,{"data-slot":`dialog-description`,className:e(`text-muted-foreground text-sm`,t),...r})}export{o as Dialog,l as DialogClose,d as DialogContent,h as DialogDescription,p as DialogFooter,f as DialogHeader,u as DialogOverlay,c as DialogPortal,m as DialogTitle,s as DialogTrigger};
|
|
2
|
+
//# sourceMappingURL=dialog-C4hf-Puw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog-C4hf-Puw.js","names":["Dialog","DialogPrimitive"],"sources":["../packages/components/ui/dialog.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { Dialog as DialogPrimitive } from \"radix-ui\";\nimport { XIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Dialog({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n \"fixed inset-0 z-50 bg-black/50\",\n \"data-[state=open]:animate-in\",\n \"data-[state=open]:fade-in-0\",\n \"data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean;\n}) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\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 \"bg-background relative dark:border\",\n \"z-50 grid max-h-[85svh] w-full max-w-[calc(100%-2rem)]\",\n \"gap-4 rounded-2xl p-6 shadow-lg duration-200 sm:max-w-lg\",\n \"data-[state=open]:animate-in\",\n \"data-[state=open]:fade-in-0\",\n \"data-[state=open]:zoom-in-80\",\n \"data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0\",\n \"data-[state=closed]:zoom-out-80\",\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n tabIndex={-1}\n className={cn(\n \"btnClose\",\n \"absolute top-3 right-3 rounded-full p-2 opacity-70\",\n \"cursor-pointer transition-all\",\n \"outline-0\",\n \"focus:ring-2\",\n \"focus:ring-border\",\n \"hover:opacity-100\",\n \"hover:bg-accent\",\n \"data-[state=open]:bg-accent\",\n \"data-[state=open]:text-muted-foreground\",\n \"disabled:pointer-events-none\",\n \"[&_svg]:text-accent-foreground/60\",\n \"[&_svg]:hover:text-accent-foreground\",\n \"[&_svg]:pointer-events-none\",\n \"[&_svg]:shrink-0\",\n \"[&_svg:not([class*='size-'])]:size-5\",\n )}\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </div>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\"text-lg leading-none font-semibold\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\n"],"mappings":"uLAOA,SAASA,EAAO,CACd,GAAG,EAC+C,CAAE,CACpD,OAAO,EAACC,EAAgB,KAAA,CAAK,YAAU,SAAS,GAAI,GACrD,CAED,SAAS,EAAc,CACrB,GAAG,EACkD,CAAE,CACvD,OAAO,EAACA,EAAgB,QAAA,CAAQ,YAAU,iBAAiB,GAAI,GAChE,CAED,SAAS,EAAa,CACpB,GAAG,EACiD,CAAE,CACtD,OAAO,EAACA,EAAgB,OAAA,CAAO,YAAU,gBAAgB,GAAI,GAC9D,CAED,SAAS,EAAY,CACnB,GAAG,EACgD,CAAE,CACrD,OAAO,EAACA,EAAgB,MAAA,CAAM,YAAU,eAAe,GAAI,GAC5D,CAED,SAAS,EAAc,CACrB,YACA,GAAG,EACkD,CAAE,CACvD,OACE,EAACA,EAAgB,QAAA,CACf,YAAU,iBACV,UAAW,EACT,iCACA,+BACA,8BACA,kCACA,iCACA,GAEF,GAAI,GAGT,CAED,SAAS,EAAc,CACrB,YACA,WACA,kBAAkB,GAClB,GAAG,EAGJ,CAAE,CACD,OACE,EAAC,EAAA,CAAa,YAAU,0BACtB,EAAC,EAAA,EAAA,EACD,EAAC,MAAA,CAAI,UAAU,+DACb,EAACA,EAAgB,QAAA,CACf,YAAU,iBACV,UAAW,EACT,qCACA,yDACA,2DACA,+BACA,8BACA,+BACA,kCACA,iCACA,kCACA,GAEF,GAAI,YAEH,EACA,GACC,EAACA,EAAgB,MAAA,CACf,YAAU,eACV,SAAU,GACV,UAAW,EACT,WACA,qDACA,gCACA,YACA,eACA,oBACA,oBACA,kBACA,8BACA,0CACA,+BACA,oCACA,uCACA,8BACA,mBACA,kDAGF,EAAC,EAAA,EAAA,EACD,EAAC,OAAA,CAAK,UAAU,mBAAU,oBAOvC,CAED,SAAS,EAAa,CAAE,YAAW,GAAG,EAAoC,CAAE,CAC1E,OACE,EAAC,MAAA,CACC,YAAU,gBACV,UAAW,EAAG,+CAAgD,GAC9D,GAAI,GAGT,CAED,SAAS,EAAa,CAAE,YAAW,GAAG,EAAoC,CAAE,CAC1E,OACE,EAAC,MAAA,CACC,YAAU,gBACV,UAAW,EACT,yDACA,GAEF,GAAI,GAGT,CAED,SAAS,EAAY,CACnB,YACA,GAAG,EACgD,CAAE,CACrD,OACE,EAACA,EAAgB,MAAA,CACf,YAAU,eACV,UAAW,EAAG,qCAAsC,GACpD,GAAI,GAGT,CAED,SAAS,EAAkB,CACzB,YACA,GAAG,EACsD,CAAE,CAC3D,OACE,EAACA,EAAgB,YAAA,CACf,YAAU,qBACV,UAAW,EAAG,gCAAiC,GAC/C,GAAI,GAGT"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import * as react_jsx_runtime38 from "react/jsx-runtime";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { Dialog } from "radix-ui";
|
|
4
|
+
|
|
5
|
+
//#region packages/components/ui/dialog.d.ts
|
|
6
|
+
declare function Dialog$1({
|
|
7
|
+
...props
|
|
8
|
+
}: React.ComponentProps<typeof Dialog.Root>): react_jsx_runtime38.JSX.Element;
|
|
9
|
+
declare function DialogTrigger({
|
|
10
|
+
...props
|
|
11
|
+
}: React.ComponentProps<typeof Dialog.Trigger>): react_jsx_runtime38.JSX.Element;
|
|
12
|
+
declare function DialogPortal({
|
|
13
|
+
...props
|
|
14
|
+
}: React.ComponentProps<typeof Dialog.Portal>): react_jsx_runtime38.JSX.Element;
|
|
15
|
+
declare function DialogClose({
|
|
16
|
+
...props
|
|
17
|
+
}: React.ComponentProps<typeof Dialog.Close>): react_jsx_runtime38.JSX.Element;
|
|
18
|
+
declare function DialogOverlay({
|
|
19
|
+
className,
|
|
20
|
+
...props
|
|
21
|
+
}: React.ComponentProps<typeof Dialog.Overlay>): react_jsx_runtime38.JSX.Element;
|
|
22
|
+
declare function DialogContent({
|
|
23
|
+
className,
|
|
24
|
+
children,
|
|
25
|
+
showCloseButton,
|
|
26
|
+
...props
|
|
27
|
+
}: React.ComponentProps<typeof Dialog.Content> & {
|
|
28
|
+
showCloseButton?: boolean;
|
|
29
|
+
}): react_jsx_runtime38.JSX.Element;
|
|
30
|
+
declare function DialogHeader({
|
|
31
|
+
className,
|
|
32
|
+
...props
|
|
33
|
+
}: React.ComponentProps<"div">): react_jsx_runtime38.JSX.Element;
|
|
34
|
+
declare function DialogFooter({
|
|
35
|
+
className,
|
|
36
|
+
...props
|
|
37
|
+
}: React.ComponentProps<"div">): react_jsx_runtime38.JSX.Element;
|
|
38
|
+
declare function DialogTitle({
|
|
39
|
+
className,
|
|
40
|
+
...props
|
|
41
|
+
}: React.ComponentProps<typeof Dialog.Title>): react_jsx_runtime38.JSX.Element;
|
|
42
|
+
declare function DialogDescription({
|
|
43
|
+
className,
|
|
44
|
+
...props
|
|
45
|
+
}: React.ComponentProps<typeof Dialog.Description>): react_jsx_runtime38.JSX.Element;
|
|
46
|
+
//#endregion
|
|
47
|
+
export { Dialog$1 as Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
|
|
48
|
+
//# sourceMappingURL=dialog-CQI6CMkF.d.cts.map
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import * as react_jsx_runtime113 from "react/jsx-runtime";
|
|
3
|
+
import { Dialog } from "radix-ui";
|
|
4
|
+
|
|
5
|
+
//#region packages/components/ui/dialog.d.ts
|
|
6
|
+
declare function Dialog$1({
|
|
7
|
+
...props
|
|
8
|
+
}: React.ComponentProps<typeof Dialog.Root>): react_jsx_runtime113.JSX.Element;
|
|
9
|
+
declare function DialogTrigger({
|
|
10
|
+
...props
|
|
11
|
+
}: React.ComponentProps<typeof Dialog.Trigger>): react_jsx_runtime113.JSX.Element;
|
|
12
|
+
declare function DialogPortal({
|
|
13
|
+
...props
|
|
14
|
+
}: React.ComponentProps<typeof Dialog.Portal>): react_jsx_runtime113.JSX.Element;
|
|
15
|
+
declare function DialogClose({
|
|
16
|
+
...props
|
|
17
|
+
}: React.ComponentProps<typeof Dialog.Close>): react_jsx_runtime113.JSX.Element;
|
|
18
|
+
declare function DialogOverlay({
|
|
19
|
+
className,
|
|
20
|
+
...props
|
|
21
|
+
}: React.ComponentProps<typeof Dialog.Overlay>): react_jsx_runtime113.JSX.Element;
|
|
22
|
+
declare function DialogContent({
|
|
23
|
+
className,
|
|
24
|
+
children,
|
|
25
|
+
showCloseButton,
|
|
26
|
+
...props
|
|
27
|
+
}: React.ComponentProps<typeof Dialog.Content> & {
|
|
28
|
+
showCloseButton?: boolean;
|
|
29
|
+
}): react_jsx_runtime113.JSX.Element;
|
|
30
|
+
declare function DialogHeader({
|
|
31
|
+
className,
|
|
32
|
+
...props
|
|
33
|
+
}: React.ComponentProps<"div">): react_jsx_runtime113.JSX.Element;
|
|
34
|
+
declare function DialogFooter({
|
|
35
|
+
className,
|
|
36
|
+
...props
|
|
37
|
+
}: React.ComponentProps<"div">): react_jsx_runtime113.JSX.Element;
|
|
38
|
+
declare function DialogTitle({
|
|
39
|
+
className,
|
|
40
|
+
...props
|
|
41
|
+
}: React.ComponentProps<typeof Dialog.Title>): react_jsx_runtime113.JSX.Element;
|
|
42
|
+
declare function DialogDescription({
|
|
43
|
+
className,
|
|
44
|
+
...props
|
|
45
|
+
}: React.ComponentProps<typeof Dialog.Description>): react_jsx_runtime113.JSX.Element;
|
|
46
|
+
//#endregion
|
|
47
|
+
export { Dialog$1 as Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
|
|
48
|
+
//# sourceMappingURL=dialog-I7tlD4sO.d.ts.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`./chunk-CUT6urMc.cjs`),t=require(`./utils-BsjVK5EW.cjs`),n=e.__toESM(require(`react`)),r=e.__toESM(require(`react/jsx-runtime`)),i=e.__toESM(require(`lucide-react`)),a=e.__toESM(require(`radix-ui`));function o({...e}){return(0,r.jsx)(a.Dialog.Root,{"data-slot":`dialog`,...e})}function s({...e}){return(0,r.jsx)(a.Dialog.Trigger,{"data-slot":`dialog-trigger`,...e})}function c({...e}){return(0,r.jsx)(a.Dialog.Portal,{"data-slot":`dialog-portal`,...e})}function l({...e}){return(0,r.jsx)(a.Dialog.Close,{"data-slot":`dialog-close`,...e})}function u({className:e,...n}){return(0,r.jsx)(a.Dialog.Overlay,{"data-slot":`dialog-overlay`,className:t.cn(`fixed inset-0 z-50 bg-black/50`,`data-[state=open]:animate-in`,`data-[state=open]:fade-in-0`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0`,e),...n})}function d({className:e,children:n,showCloseButton:o=!0,...s}){return(0,r.jsxs)(c,{"data-slot":`dialog-portal`,children:[(0,r.jsx)(u,{}),(0,r.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:(0,r.jsxs)(a.Dialog.Content,{"data-slot":`dialog-content`,className:t.cn(`bg-background relative dark:border`,`z-50 grid max-h-[85svh] w-full max-w-[calc(100%-2rem)]`,`gap-4 rounded-2xl p-6 shadow-lg duration-200 sm:max-w-lg`,`data-[state=open]:animate-in`,`data-[state=open]:fade-in-0`,`data-[state=open]:zoom-in-80`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0`,`data-[state=closed]:zoom-out-80`,e),...s,children:[n,o&&(0,r.jsxs)(a.Dialog.Close,{"data-slot":`dialog-close`,tabIndex:-1,className:t.cn(`btnClose`,`absolute top-3 right-3 rounded-full p-2 opacity-70`,`cursor-pointer transition-all`,`outline-0`,`focus:ring-2`,`focus:ring-border`,`hover:opacity-100`,`hover:bg-accent`,`data-[state=open]:bg-accent`,`data-[state=open]:text-muted-foreground`,`disabled:pointer-events-none`,`[&_svg]:text-accent-foreground/60`,`[&_svg]:hover:text-accent-foreground`,`[&_svg]:pointer-events-none`,`[&_svg]:shrink-0`,`[&_svg:not([class*='size-'])]:size-5`),children:[(0,r.jsx)(i.XIcon,{}),(0,r.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})})]})}function f({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`dialog-header`,className:t.cn(`flex flex-col gap-2 text-center sm:text-left`,e),...n})}function p({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`dialog-footer`,className:t.cn(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e),...n})}function m({className:e,...n}){return(0,r.jsx)(a.Dialog.Title,{"data-slot":`dialog-title`,className:t.cn(`text-lg leading-none font-semibold`,e),...n})}function h({className:e,...n}){return(0,r.jsx)(a.Dialog.Description,{"data-slot":`dialog-description`,className:t.cn(`text-muted-foreground text-sm`,e),...n})}Object.defineProperty(exports,`Dialog`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`DialogClose`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`DialogContent`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`DialogDescription`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`DialogFooter`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`DialogHeader`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`DialogOverlay`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`DialogPortal`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`DialogTitle`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`DialogTrigger`,{enumerable:!0,get:function(){return s}});
|
|
2
|
+
//# sourceMappingURL=dialog-W-DmDMEE.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog-W-DmDMEE.cjs","names":["DialogPrimitive","cn","XIcon"],"sources":["../packages/components/ui/dialog.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { Dialog as DialogPrimitive } from \"radix-ui\";\nimport { XIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Dialog({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n \"fixed inset-0 z-50 bg-black/50\",\n \"data-[state=open]:animate-in\",\n \"data-[state=open]:fade-in-0\",\n \"data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean;\n}) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\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 \"bg-background relative dark:border\",\n \"z-50 grid max-h-[85svh] w-full max-w-[calc(100%-2rem)]\",\n \"gap-4 rounded-2xl p-6 shadow-lg duration-200 sm:max-w-lg\",\n \"data-[state=open]:animate-in\",\n \"data-[state=open]:fade-in-0\",\n \"data-[state=open]:zoom-in-80\",\n \"data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0\",\n \"data-[state=closed]:zoom-out-80\",\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n tabIndex={-1}\n className={cn(\n \"btnClose\",\n \"absolute top-3 right-3 rounded-full p-2 opacity-70\",\n \"cursor-pointer transition-all\",\n \"outline-0\",\n \"focus:ring-2\",\n \"focus:ring-border\",\n \"hover:opacity-100\",\n \"hover:bg-accent\",\n \"data-[state=open]:bg-accent\",\n \"data-[state=open]:text-muted-foreground\",\n \"disabled:pointer-events-none\",\n \"[&_svg]:text-accent-foreground/60\",\n \"[&_svg]:hover:text-accent-foreground\",\n \"[&_svg]:pointer-events-none\",\n \"[&_svg]:shrink-0\",\n \"[&_svg:not([class*='size-'])]:size-5\",\n )}\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </div>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\"text-lg leading-none font-semibold\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\n"],"mappings":"wNAOA,SAAS,EAAO,CACd,GAAG,EAC+C,CAAE,CACpD,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,KAAA,CAAK,YAAU,SAAS,GAAI,GACrD,CAED,SAAS,EAAc,CACrB,GAAG,EACkD,CAAE,CACvD,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,QAAA,CAAQ,YAAU,iBAAiB,GAAI,GAChE,CAED,SAAS,EAAa,CACpB,GAAG,EACiD,CAAE,CACtD,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,OAAA,CAAO,YAAU,gBAAgB,GAAI,GAC9D,CAED,SAAS,EAAY,CACnB,GAAG,EACgD,CAAE,CACrD,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CAAM,YAAU,eAAe,GAAI,GAC5D,CAED,SAAS,EAAc,CACrB,YACA,GAAG,EACkD,CAAE,CACvD,OACE,EAAA,EAAA,KAACA,EAAAA,OAAgB,QAAA,CACf,YAAU,iBACV,UAAWC,EAAAA,GACT,iCACA,+BACA,8BACA,kCACA,iCACA,GAEF,GAAI,GAGT,CAED,SAAS,EAAc,CACrB,YACA,WACA,kBAAkB,GAClB,GAAG,EAGJ,CAAE,CACD,OACE,EAAA,EAAA,MAAC,EAAA,CAAa,YAAU,2BACtB,EAAA,EAAA,KAAC,EAAA,EAAA,GACD,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,gEACb,EAAA,EAAA,MAACD,EAAAA,OAAgB,QAAA,CACf,YAAU,iBACV,UAAWC,EAAAA,GACT,qCACA,yDACA,2DACA,+BACA,8BACA,+BACA,kCACA,iCACA,kCACA,GAEF,GAAI,YAEH,EACA,IACC,EAAA,EAAA,MAACD,EAAAA,OAAgB,MAAA,CACf,YAAU,eACV,SAAU,GACV,UAAWC,EAAAA,GACT,WACA,qDACA,gCACA,YACA,eACA,oBACA,oBACA,kBACA,8BACA,0CACA,+BACA,oCACA,uCACA,8BACA,mBACA,mDAGF,EAAA,EAAA,KAACC,EAAAA,MAAAA,EAAAA,GACD,EAAA,EAAA,KAAC,OAAA,CAAK,UAAU,mBAAU,oBAOvC,CAED,SAAS,EAAa,CAAE,YAAW,GAAG,EAAoC,CAAE,CAC1E,OACE,EAAA,EAAA,KAAC,MAAA,CACC,YAAU,gBACV,UAAWD,EAAAA,GAAG,+CAAgD,GAC9D,GAAI,GAGT,CAED,SAAS,EAAa,CAAE,YAAW,GAAG,EAAoC,CAAE,CAC1E,OACE,EAAA,EAAA,KAAC,MAAA,CACC,YAAU,gBACV,UAAWA,EAAAA,GACT,yDACA,GAEF,GAAI,GAGT,CAED,SAAS,EAAY,CACnB,YACA,GAAG,EACgD,CAAE,CACrD,OACE,EAAA,EAAA,KAACD,EAAAA,OAAgB,MAAA,CACf,YAAU,eACV,UAAWC,EAAAA,GAAG,qCAAsC,GACpD,GAAI,GAGT,CAED,SAAS,EAAkB,CACzB,YACA,GAAG,EACsD,CAAE,CAC3D,OACE,EAAA,EAAA,KAACD,EAAAA,OAAgB,YAAA,CACf,YAAU,qBACV,UAAWC,EAAAA,GAAG,gCAAiC,GAC/C,GAAI,GAGT"}
|