shad-m 1.0.0 → 1.0.2
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/common/interactive/list.d.ts +1 -1
- package/dist/common/interactive/select/variants.d.ts +1 -1
- package/dist/components/alert-dialog.d.ts +2 -2
- package/dist/components/badge.d.ts +3 -3
- package/dist/components/button.d.ts +4 -4
- package/dist/components/chip.d.ts +2 -2
- package/dist/components/command.d.ts +7 -7
- package/dist/components/dialog.d.ts +2 -2
- package/dist/components/input-otp.d.ts +2 -2
- package/dist/components/resizable.d.ts +1 -1
- package/dist/components/sidebar.d.ts +1 -1
- package/dist/components/spinner.d.ts +2 -2
- package/dist/components/stepper.d.ts +3 -3
- package/dist/components/toggle-group.d.ts +2 -2
- package/dist/components/toggle.d.ts +2 -2
- package/dist/index.css +43 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.ts +59 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8189 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +7846 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +34 -2
- package/dist/assets/Animation/index.js +0 -180
- package/dist/assets/Animation/index.js.map +0 -1
- package/dist/assets/Animation/index.mjs +0 -79
- package/dist/assets/Animation/index.mjs.map +0 -1
- package/dist/assets/Icon/index.js +0 -2102
- package/dist/assets/Icon/index.js.map +0 -1
- package/dist/assets/Icon/index.mjs +0 -421
- package/dist/assets/Icon/index.mjs.map +0 -1
- package/dist/assets/Image/index.js +0 -755
- package/dist/assets/Image/index.js.map +0 -1
- package/dist/assets/Image/index.mjs +0 -150
- package/dist/assets/Image/index.mjs.map +0 -1
- package/dist/common/display/countdown.js +0 -68
- package/dist/common/display/countdown.js.map +0 -1
- package/dist/common/display/countdown.mjs +0 -46
- package/dist/common/display/countdown.mjs.map +0 -1
- package/dist/common/display/display-field-group.js +0 -91
- package/dist/common/display/display-field-group.js.map +0 -1
- package/dist/common/display/display-field-group.mjs +0 -89
- package/dist/common/display/display-field-group.mjs.map +0 -1
- package/dist/common/display/display-field.js +0 -46
- package/dist/common/display/display-field.js.map +0 -1
- package/dist/common/display/display-field.mjs +0 -40
- package/dist/common/display/display-field.mjs.map +0 -1
- package/dist/common/display/display-html-string.js +0 -52
- package/dist/common/display/display-html-string.js.map +0 -1
- package/dist/common/display/display-html-string.mjs +0 -30
- package/dist/common/display/display-html-string.mjs.map +0 -1
- package/dist/common/display/index.js +0 -59
- package/dist/common/display/index.js.map +0 -1
- package/dist/common/display/index.mjs +0 -10
- package/dist/common/display/index.mjs.map +0 -1
- package/dist/common/display/page-breadcrumb.js +0 -43
- package/dist/common/display/page-breadcrumb.js.map +0 -1
- package/dist/common/display/page-breadcrumb.mjs +0 -37
- package/dist/common/display/page-breadcrumb.mjs.map +0 -1
- package/dist/common/display/page-v2.js +0 -58
- package/dist/common/display/page-v2.js.map +0 -1
- package/dist/common/display/page-v2.mjs +0 -20
- package/dist/common/display/page-v2.mjs.map +0 -1
- package/dist/common/display/page.js +0 -155
- package/dist/common/display/page.js.map +0 -1
- package/dist/common/display/page.mjs +0 -138
- package/dist/common/display/page.mjs.map +0 -1
- package/dist/common/display/score-meter.js +0 -161
- package/dist/common/display/score-meter.js.map +0 -1
- package/dist/common/display/score-meter.mjs +0 -140
- package/dist/common/display/score-meter.mjs.map +0 -1
- package/dist/common/display/sidebar/app-sidebar.js +0 -114
- package/dist/common/display/sidebar/app-sidebar.js.map +0 -1
- package/dist/common/display/sidebar/app-sidebar.mjs +0 -92
- package/dist/common/display/sidebar/app-sidebar.mjs.map +0 -1
- package/dist/common/display/sidebar/index.js +0 -89
- package/dist/common/display/sidebar/index.js.map +0 -1
- package/dist/common/display/sidebar/index.mjs +0 -81
- package/dist/common/display/sidebar/index.mjs.map +0 -1
- package/dist/common/display/sidebar/nav-main.js +0 -406
- package/dist/common/display/sidebar/nav-main.js.map +0 -1
- package/dist/common/display/sidebar/nav-main.mjs +0 -400
- package/dist/common/display/sidebar/nav-main.mjs.map +0 -1
- package/dist/common/display/sidebar/sidebar-sheet.js +0 -140
- package/dist/common/display/sidebar/sidebar-sheet.js.map +0 -1
- package/dist/common/display/sidebar/sidebar-sheet.mjs +0 -118
- package/dist/common/display/sidebar/sidebar-sheet.mjs.map +0 -1
- package/dist/common/display/sidebar/types.js +0 -4
- package/dist/common/display/sidebar/types.js.map +0 -1
- package/dist/common/display/sidebar/types.mjs +0 -3
- package/dist/common/display/sidebar/types.mjs.map +0 -1
- package/dist/common/display/status-state.js +0 -97
- package/dist/common/display/status-state.js.map +0 -1
- package/dist/common/display/status-state.mjs +0 -88
- package/dist/common/display/status-state.mjs.map +0 -1
- package/dist/common/forms/auto-form.js +0 -101
- package/dist/common/forms/auto-form.js.map +0 -1
- package/dist/common/forms/auto-form.mjs +0 -78
- package/dist/common/forms/auto-form.mjs.map +0 -1
- package/dist/common/forms/form-field.js +0 -58
- package/dist/common/forms/form-field.js.map +0 -1
- package/dist/common/forms/form-field.mjs +0 -56
- package/dist/common/forms/form-field.mjs.map +0 -1
- package/dist/common/forms/form-input-field.js +0 -64
- package/dist/common/forms/form-input-field.js.map +0 -1
- package/dist/common/forms/form-input-field.mjs +0 -62
- package/dist/common/forms/form-input-field.mjs.map +0 -1
- package/dist/common/forms/index.js +0 -22
- package/dist/common/forms/index.js.map +0 -1
- package/dist/common/forms/index.mjs +0 -5
- package/dist/common/forms/index.mjs.map +0 -1
- package/dist/common/forms/switch-field.js +0 -106
- package/dist/common/forms/switch-field.js.map +0 -1
- package/dist/common/forms/switch-field.mjs +0 -104
- package/dist/common/forms/switch-field.mjs.map +0 -1
- package/dist/common/interactive/alert-dialog-wrapper.js +0 -141
- package/dist/common/interactive/alert-dialog-wrapper.js.map +0 -1
- package/dist/common/interactive/alert-dialog-wrapper.mjs +0 -119
- package/dist/common/interactive/alert-dialog-wrapper.mjs.map +0 -1
- package/dist/common/interactive/autocomplete.js +0 -178
- package/dist/common/interactive/autocomplete.js.map +0 -1
- package/dist/common/interactive/autocomplete.mjs +0 -157
- package/dist/common/interactive/autocomplete.mjs.map +0 -1
- package/dist/common/interactive/copy-tooltip.js +0 -152
- package/dist/common/interactive/copy-tooltip.js.map +0 -1
- package/dist/common/interactive/copy-tooltip.mjs +0 -143
- package/dist/common/interactive/copy-tooltip.mjs.map +0 -1
- package/dist/common/interactive/date-field.js +0 -303
- package/dist/common/interactive/date-field.js.map +0 -1
- package/dist/common/interactive/date-field.mjs +0 -281
- package/dist/common/interactive/date-field.mjs.map +0 -1
- package/dist/common/interactive/date-input/date-input.js +0 -68
- package/dist/common/interactive/date-input/date-input.js.map +0 -1
- package/dist/common/interactive/date-input/date-input.mjs +0 -62
- package/dist/common/interactive/date-input/date-input.mjs.map +0 -1
- package/dist/common/interactive/date-input/index.js +0 -17
- package/dist/common/interactive/date-input/index.js.map +0 -1
- package/dist/common/interactive/date-input/index.mjs +0 -4
- package/dist/common/interactive/date-input/index.mjs.map +0 -1
- package/dist/common/interactive/date-input/types.js +0 -4
- package/dist/common/interactive/date-input/types.js.map +0 -1
- package/dist/common/interactive/date-input/types.mjs +0 -3
- package/dist/common/interactive/date-input/types.mjs.map +0 -1
- package/dist/common/interactive/date-input/use-typed-date.js +0 -478
- package/dist/common/interactive/date-input/use-typed-date.js.map +0 -1
- package/dist/common/interactive/date-input/use-typed-date.mjs +0 -476
- package/dist/common/interactive/date-input/use-typed-date.mjs.map +0 -1
- package/dist/common/interactive/date-input/utils.js +0 -34
- package/dist/common/interactive/date-input/utils.js.map +0 -1
- package/dist/common/interactive/date-input/utils.mjs +0 -29
- package/dist/common/interactive/date-input/utils.mjs.map +0 -1
- package/dist/common/interactive/date-picker.js +0 -616
- package/dist/common/interactive/date-picker.js.map +0 -1
- package/dist/common/interactive/date-picker.mjs +0 -594
- package/dist/common/interactive/date-picker.mjs.map +0 -1
- package/dist/common/interactive/date-range-input/date-range-input.js +0 -82
- package/dist/common/interactive/date-range-input/date-range-input.js.map +0 -1
- package/dist/common/interactive/date-range-input/date-range-input.mjs +0 -76
- package/dist/common/interactive/date-range-input/date-range-input.mjs.map +0 -1
- package/dist/common/interactive/date-range-input/index.js +0 -12
- package/dist/common/interactive/date-range-input/index.js.map +0 -1
- package/dist/common/interactive/date-range-input/index.mjs +0 -3
- package/dist/common/interactive/date-range-input/index.mjs.map +0 -1
- package/dist/common/interactive/date-range-input/types.js +0 -4
- package/dist/common/interactive/date-range-input/types.js.map +0 -1
- package/dist/common/interactive/date-range-input/types.mjs +0 -3
- package/dist/common/interactive/date-range-input/types.mjs.map +0 -1
- package/dist/common/interactive/date-range-input/use-typed-date-range.js +0 -602
- package/dist/common/interactive/date-range-input/use-typed-date-range.js.map +0 -1
- package/dist/common/interactive/date-range-input/use-typed-date-range.mjs +0 -600
- package/dist/common/interactive/date-range-input/use-typed-date-range.mjs.map +0 -1
- package/dist/common/interactive/date-time-picker.js +0 -215
- package/dist/common/interactive/date-time-picker.js.map +0 -1
- package/dist/common/interactive/date-time-picker.mjs +0 -213
- package/dist/common/interactive/date-time-picker.mjs.map +0 -1
- package/dist/common/interactive/dialog-wrapper.js +0 -124
- package/dist/common/interactive/dialog-wrapper.js.map +0 -1
- package/dist/common/interactive/dialog-wrapper.mjs +0 -102
- package/dist/common/interactive/dialog-wrapper.mjs.map +0 -1
- package/dist/common/interactive/filter.js +0 -287
- package/dist/common/interactive/filter.js.map +0 -1
- package/dist/common/interactive/filter.mjs +0 -280
- package/dist/common/interactive/filter.mjs.map +0 -1
- package/dist/common/interactive/index.js +0 -235
- package/dist/common/interactive/index.js.map +0 -1
- package/dist/common/interactive/index.mjs +0 -24
- package/dist/common/interactive/index.mjs.map +0 -1
- package/dist/common/interactive/list.js +0 -160
- package/dist/common/interactive/list.js.map +0 -1
- package/dist/common/interactive/list.mjs +0 -134
- package/dist/common/interactive/list.mjs.map +0 -1
- package/dist/common/interactive/otp-dialog/index.js +0 -35
- package/dist/common/interactive/otp-dialog/index.js.map +0 -1
- package/dist/common/interactive/otp-dialog/index.mjs +0 -6
- package/dist/common/interactive/otp-dialog/index.mjs.map +0 -1
- package/dist/common/interactive/otp-dialog/otp-dialog.js +0 -325
- package/dist/common/interactive/otp-dialog/otp-dialog.js.map +0 -1
- package/dist/common/interactive/otp-dialog/otp-dialog.mjs +0 -303
- package/dist/common/interactive/otp-dialog/otp-dialog.mjs.map +0 -1
- package/dist/common/interactive/otp-dialog/reducer.js +0 -40
- package/dist/common/interactive/otp-dialog/reducer.js.map +0 -1
- package/dist/common/interactive/otp-dialog/reducer.mjs +0 -37
- package/dist/common/interactive/otp-dialog/reducer.mjs.map +0 -1
- package/dist/common/interactive/otp-dialog/types.js +0 -15
- package/dist/common/interactive/otp-dialog/types.js.map +0 -1
- package/dist/common/interactive/otp-dialog/types.mjs +0 -13
- package/dist/common/interactive/otp-dialog/types.mjs.map +0 -1
- package/dist/common/interactive/otp-dialog/utils.js +0 -24
- package/dist/common/interactive/otp-dialog/utils.js.map +0 -1
- package/dist/common/interactive/otp-dialog/utils.mjs +0 -21
- package/dist/common/interactive/otp-dialog/utils.mjs.map +0 -1
- package/dist/common/interactive/pagination/PaginationSkeleton.js +0 -51
- package/dist/common/interactive/pagination/PaginationSkeleton.js.map +0 -1
- package/dist/common/interactive/pagination/PaginationSkeleton.mjs +0 -49
- package/dist/common/interactive/pagination/PaginationSkeleton.mjs.map +0 -1
- package/dist/common/interactive/pagination/index.js +0 -235
- package/dist/common/interactive/pagination/index.js.map +0 -1
- package/dist/common/interactive/pagination/index.mjs +0 -223
- package/dist/common/interactive/pagination/index.mjs.map +0 -1
- package/dist/common/interactive/pagination/usePagination.js +0 -28
- package/dist/common/interactive/pagination/usePagination.js.map +0 -1
- package/dist/common/interactive/pagination/usePagination.mjs +0 -25
- package/dist/common/interactive/pagination/usePagination.mjs.map +0 -1
- package/dist/common/interactive/popover-wrapper.js +0 -138
- package/dist/common/interactive/popover-wrapper.js.map +0 -1
- package/dist/common/interactive/popover-wrapper.mjs +0 -116
- package/dist/common/interactive/popover-wrapper.mjs.map +0 -1
- package/dist/common/interactive/pressable.js +0 -84
- package/dist/common/interactive/pressable.js.map +0 -1
- package/dist/common/interactive/pressable.mjs +0 -62
- package/dist/common/interactive/pressable.mjs.map +0 -1
- package/dist/common/interactive/select/context.js +0 -38
- package/dist/common/interactive/select/context.js.map +0 -1
- package/dist/common/interactive/select/context.mjs +0 -14
- package/dist/common/interactive/select/context.mjs.map +0 -1
- package/dist/common/interactive/select/index.js +0 -123
- package/dist/common/interactive/select/index.js.map +0 -1
- package/dist/common/interactive/select/index.mjs +0 -18
- package/dist/common/interactive/select/index.mjs.map +0 -1
- package/dist/common/interactive/select/select-body.js +0 -89
- package/dist/common/interactive/select/select-body.js.map +0 -1
- package/dist/common/interactive/select/select-body.mjs +0 -67
- package/dist/common/interactive/select/select-body.mjs.map +0 -1
- package/dist/common/interactive/select/select-close.js +0 -38
- package/dist/common/interactive/select/select-close.js.map +0 -1
- package/dist/common/interactive/select/select-close.mjs +0 -16
- package/dist/common/interactive/select/select-close.mjs.map +0 -1
- package/dist/common/interactive/select/select-content-auto-layout.js +0 -221
- package/dist/common/interactive/select/select-content-auto-layout.js.map +0 -1
- package/dist/common/interactive/select/select-content-auto-layout.mjs +0 -199
- package/dist/common/interactive/select/select-content-auto-layout.mjs.map +0 -1
- package/dist/common/interactive/select/select-content-group-auto-layout.js +0 -411
- package/dist/common/interactive/select/select-content-group-auto-layout.js.map +0 -1
- package/dist/common/interactive/select/select-content-group-auto-layout.mjs +0 -389
- package/dist/common/interactive/select/select-content-group-auto-layout.mjs.map +0 -1
- package/dist/common/interactive/select/select-content.js +0 -187
- package/dist/common/interactive/select/select-content.js.map +0 -1
- package/dist/common/interactive/select/select-content.mjs +0 -165
- package/dist/common/interactive/select/select-content.mjs.map +0 -1
- package/dist/common/interactive/select/select-footer.js +0 -82
- package/dist/common/interactive/select/select-footer.js.map +0 -1
- package/dist/common/interactive/select/select-footer.mjs +0 -60
- package/dist/common/interactive/select/select-footer.mjs.map +0 -1
- package/dist/common/interactive/select/select-item.js +0 -214
- package/dist/common/interactive/select/select-item.js.map +0 -1
- package/dist/common/interactive/select/select-item.mjs +0 -191
- package/dist/common/interactive/select/select-item.mjs.map +0 -1
- package/dist/common/interactive/select/select-layout.js +0 -66
- package/dist/common/interactive/select/select-layout.js.map +0 -1
- package/dist/common/interactive/select/select-layout.mjs +0 -41
- package/dist/common/interactive/select/select-layout.mjs.map +0 -1
- package/dist/common/interactive/select/select-search.js +0 -55
- package/dist/common/interactive/select/select-search.js.map +0 -1
- package/dist/common/interactive/select/select-search.mjs +0 -33
- package/dist/common/interactive/select/select-search.mjs.map +0 -1
- package/dist/common/interactive/select/select-states.js +0 -57
- package/dist/common/interactive/select/select-states.js.map +0 -1
- package/dist/common/interactive/select/select-states.mjs +0 -34
- package/dist/common/interactive/select/select-states.mjs.map +0 -1
- package/dist/common/interactive/select/select-trigger.js +0 -310
- package/dist/common/interactive/select/select-trigger.js.map +0 -1
- package/dist/common/interactive/select/select-trigger.mjs +0 -286
- package/dist/common/interactive/select/select-trigger.mjs.map +0 -1
- package/dist/common/interactive/select/select-value.js +0 -52
- package/dist/common/interactive/select/select-value.js.map +0 -1
- package/dist/common/interactive/select/select-value.mjs +0 -30
- package/dist/common/interactive/select/select-value.mjs.map +0 -1
- package/dist/common/interactive/select/select.js +0 -184
- package/dist/common/interactive/select/select.js.map +0 -1
- package/dist/common/interactive/select/select.mjs +0 -162
- package/dist/common/interactive/select/select.mjs.map +0 -1
- package/dist/common/interactive/select/types.js +0 -4
- package/dist/common/interactive/select/types.js.map +0 -1
- package/dist/common/interactive/select/types.mjs +0 -3
- package/dist/common/interactive/select/types.mjs.map +0 -1
- package/dist/common/interactive/select/utils.js +0 -31
- package/dist/common/interactive/select/utils.js.map +0 -1
- package/dist/common/interactive/select/utils.mjs +0 -28
- package/dist/common/interactive/select/utils.mjs.map +0 -1
- package/dist/common/interactive/select/variants.js +0 -27
- package/dist/common/interactive/select/variants.js.map +0 -1
- package/dist/common/interactive/select/variants.mjs +0 -25
- package/dist/common/interactive/select/variants.mjs.map +0 -1
- package/dist/common/interactive/select-chip.js +0 -76
- package/dist/common/interactive/select-chip.js.map +0 -1
- package/dist/common/interactive/select-chip.mjs +0 -74
- package/dist/common/interactive/select-chip.mjs.map +0 -1
- package/dist/common/interactive/select-level.js +0 -236
- package/dist/common/interactive/select-level.js.map +0 -1
- package/dist/common/interactive/select-level.mjs +0 -230
- package/dist/common/interactive/select-level.mjs.map +0 -1
- package/dist/common/interactive/select-range.js +0 -211
- package/dist/common/interactive/select-range.js.map +0 -1
- package/dist/common/interactive/select-range.mjs +0 -209
- package/dist/common/interactive/select-range.mjs.map +0 -1
- package/dist/common/interactive/select-with-api.js +0 -767
- package/dist/common/interactive/select-with-api.js.map +0 -1
- package/dist/common/interactive/select-with-api.mjs +0 -758
- package/dist/common/interactive/select-with-api.mjs.map +0 -1
- package/dist/common/interactive/select.js +0 -15
- package/dist/common/interactive/select.js.map +0 -1
- package/dist/common/interactive/select.mjs +0 -4
- package/dist/common/interactive/select.mjs.map +0 -1
- package/dist/common/interactive/sheet-wrapper.js +0 -105
- package/dist/common/interactive/sheet-wrapper.js.map +0 -1
- package/dist/common/interactive/sheet-wrapper.mjs +0 -83
- package/dist/common/interactive/sheet-wrapper.mjs.map +0 -1
- package/dist/common/interactive/table/enhanced-table.js +0 -390
- package/dist/common/interactive/table/enhanced-table.js.map +0 -1
- package/dist/common/interactive/table/enhanced-table.mjs +0 -388
- package/dist/common/interactive/table/enhanced-table.mjs.map +0 -1
- package/dist/common/interactive/table/index.js +0 -83
- package/dist/common/interactive/table/index.js.map +0 -1
- package/dist/common/interactive/table/index.mjs +0 -68
- package/dist/common/interactive/table/index.mjs.map +0 -1
- package/dist/common/interactive/table/table-pagination.js +0 -12
- package/dist/common/interactive/table/table-pagination.js.map +0 -1
- package/dist/common/interactive/table/table-pagination.mjs +0 -10
- package/dist/common/interactive/table/table-pagination.mjs.map +0 -1
- package/dist/common/interactive/table/types.js +0 -4
- package/dist/common/interactive/table/types.js.map +0 -1
- package/dist/common/interactive/table/types.mjs +0 -3
- package/dist/common/interactive/table/types.mjs.map +0 -1
- package/dist/common/interactive/time-picker.js +0 -313
- package/dist/common/interactive/time-picker.js.map +0 -1
- package/dist/common/interactive/time-picker.mjs +0 -307
- package/dist/common/interactive/time-picker.mjs.map +0 -1
- package/dist/common/interactive/types.js +0 -4
- package/dist/common/interactive/types.js.map +0 -1
- package/dist/common/interactive/types.mjs +0 -3
- package/dist/common/interactive/types.mjs.map +0 -1
- package/dist/common/pages/page-404.js +0 -16
- package/dist/common/pages/page-404.js.map +0 -1
- package/dist/common/pages/page-404.mjs +0 -11
- package/dist/common/pages/page-404.mjs.map +0 -1
- package/dist/common/pages/page-500.js +0 -30
- package/dist/common/pages/page-500.js.map +0 -1
- package/dist/common/pages/page-500.mjs +0 -25
- package/dist/common/pages/page-500.mjs.map +0 -1
- package/dist/components/accordion.js +0 -65
- package/dist/components/accordion.js.map +0 -1
- package/dist/components/accordion.mjs +0 -39
- package/dist/components/accordion.mjs.map +0 -1
- package/dist/components/alert-dialog.js +0 -231
- package/dist/components/alert-dialog.js.map +0 -1
- package/dist/components/alert-dialog.mjs +0 -197
- package/dist/components/alert-dialog.mjs.map +0 -1
- package/dist/components/alert.js +0 -97
- package/dist/components/alert.js.map +0 -1
- package/dist/components/alert.mjs +0 -72
- package/dist/components/alert.mjs.map +0 -1
- package/dist/components/aspect-ratio.js +0 -29
- package/dist/components/aspect-ratio.js.map +0 -1
- package/dist/components/aspect-ratio.mjs +0 -7
- package/dist/components/aspect-ratio.mjs.map +0 -1
- package/dist/components/avatar.js +0 -64
- package/dist/components/avatar.js.map +0 -1
- package/dist/components/avatar.mjs +0 -39
- package/dist/components/avatar.mjs.map +0 -1
- package/dist/components/badge.js +0 -72
- package/dist/components/badge.js.map +0 -1
- package/dist/components/badge.mjs +0 -69
- package/dist/components/badge.mjs.map +0 -1
- package/dist/components/breadcrumb.js +0 -109
- package/dist/components/breadcrumb.js.map +0 -1
- package/dist/components/breadcrumb.mjs +0 -81
- package/dist/components/breadcrumb.mjs.map +0 -1
- package/dist/components/button.js +0 -250
- package/dist/components/button.js.map +0 -1
- package/dist/components/button.mjs +0 -226
- package/dist/components/button.mjs.map +0 -1
- package/dist/components/calendar.js +0 -681
- package/dist/components/calendar.js.map +0 -1
- package/dist/components/calendar.mjs +0 -659
- package/dist/components/calendar.mjs.map +0 -1
- package/dist/components/card.js +0 -98
- package/dist/components/card.js.map +0 -1
- package/dist/components/card.mjs +0 -71
- package/dist/components/card.mjs.map +0 -1
- package/dist/components/carousel.js +0 -237
- package/dist/components/carousel.js.map +0 -1
- package/dist/components/carousel.mjs +0 -208
- package/dist/components/carousel.mjs.map +0 -1
- package/dist/components/chart.js +0 -252
- package/dist/components/chart.js.map +0 -1
- package/dist/components/chart.mjs +0 -224
- package/dist/components/chart.mjs.map +0 -1
- package/dist/components/checkbox.js +0 -97
- package/dist/components/checkbox.js.map +0 -1
- package/dist/components/checkbox.mjs +0 -74
- package/dist/components/checkbox.mjs.map +0 -1
- package/dist/components/chip.js +0 -88
- package/dist/components/chip.js.map +0 -1
- package/dist/components/chip.mjs +0 -82
- package/dist/components/chip.mjs.map +0 -1
- package/dist/components/collapsible.js +0 -33
- package/dist/components/collapsible.js.map +0 -1
- package/dist/components/collapsible.mjs +0 -9
- package/dist/components/collapsible.mjs.map +0 -1
- package/dist/components/command.js +0 -125
- package/dist/components/command.js.map +0 -1
- package/dist/components/command.mjs +0 -95
- package/dist/components/command.mjs.map +0 -1
- package/dist/components/context-menu.js +0 -168
- package/dist/components/context-menu.js.map +0 -1
- package/dist/components/context-menu.mjs +0 -131
- package/dist/components/context-menu.mjs.map +0 -1
- package/dist/components/dialog.js +0 -192
- package/dist/components/dialog.js.map +0 -1
- package/dist/components/dialog.mjs +0 -159
- package/dist/components/dialog.mjs.map +0 -1
- package/dist/components/drawer.js +0 -98
- package/dist/components/drawer.js.map +0 -1
- package/dist/components/drawer.mjs +0 -67
- package/dist/components/drawer.mjs.map +0 -1
- package/dist/components/dropdown-menu.js +0 -163
- package/dist/components/dropdown-menu.js.map +0 -1
- package/dist/components/dropdown-menu.mjs +0 -126
- package/dist/components/dropdown-menu.mjs.map +0 -1
- package/dist/components/form.js +0 -123
- package/dist/components/form.js.map +0 -1
- package/dist/components/form.mjs +0 -94
- package/dist/components/form.mjs.map +0 -1
- package/dist/components/hover-card.js +0 -50
- package/dist/components/hover-card.js.map +0 -1
- package/dist/components/hover-card.mjs +0 -25
- package/dist/components/hover-card.mjs.map +0 -1
- package/dist/components/input-otp.js +0 -84
- package/dist/components/input-otp.js.map +0 -1
- package/dist/components/input-otp.mjs +0 -59
- package/dist/components/input-otp.mjs.map +0 -1
- package/dist/components/input.js +0 -858
- package/dist/components/input.js.map +0 -1
- package/dist/components/input.mjs +0 -831
- package/dist/components/input.mjs.map +0 -1
- package/dist/components/label.js +0 -38
- package/dist/components/label.js.map +0 -1
- package/dist/components/label.mjs +0 -15
- package/dist/components/label.mjs.map +0 -1
- package/dist/components/lottie.js +0 -59
- package/dist/components/lottie.js.map +0 -1
- package/dist/components/lottie.mjs +0 -49
- package/dist/components/lottie.mjs.map +0 -1
- package/dist/components/menubar.js +0 -195
- package/dist/components/menubar.js.map +0 -1
- package/dist/components/menubar.mjs +0 -157
- package/dist/components/menubar.mjs.map +0 -1
- package/dist/components/navigation-menu.js +0 -126
- package/dist/components/navigation-menu.js.map +0 -1
- package/dist/components/navigation-menu.mjs +0 -95
- package/dist/components/navigation-menu.mjs.map +0 -1
- package/dist/components/pagination.js +0 -112
- package/dist/components/pagination.js.map +0 -1
- package/dist/components/pagination.mjs +0 -84
- package/dist/components/pagination.mjs.map +0 -1
- package/dist/components/popover.js +0 -63
- package/dist/components/popover.js.map +0 -1
- package/dist/components/popover.mjs +0 -38
- package/dist/components/popover.mjs.map +0 -1
- package/dist/components/progress.js +0 -50
- package/dist/components/progress.js.map +0 -1
- package/dist/components/progress.mjs +0 -27
- package/dist/components/progress.mjs.map +0 -1
- package/dist/components/radio-group.js +0 -91
- package/dist/components/radio-group.js.map +0 -1
- package/dist/components/radio-group.mjs +0 -67
- package/dist/components/radio-group.mjs.map +0 -1
- package/dist/components/resizable.js +0 -59
- package/dist/components/resizable.js.map +0 -1
- package/dist/components/resizable.mjs +0 -35
- package/dist/components/resizable.mjs.map +0 -1
- package/dist/components/responsive-popover.js +0 -74
- package/dist/components/responsive-popover.js.map +0 -1
- package/dist/components/responsive-popover.mjs +0 -50
- package/dist/components/responsive-popover.mjs.map +0 -1
- package/dist/components/scroll-area.js +0 -63
- package/dist/components/scroll-area.js.map +0 -1
- package/dist/components/scroll-area.mjs +0 -39
- package/dist/components/scroll-area.mjs.map +0 -1
- package/dist/components/separator.js +0 -47
- package/dist/components/separator.js.map +0 -1
- package/dist/components/separator.mjs +0 -24
- package/dist/components/separator.mjs.map +0 -1
- package/dist/components/sheet.js +0 -239
- package/dist/components/sheet.js.map +0 -1
- package/dist/components/sheet.mjs +0 -206
- package/dist/components/sheet.mjs.map +0 -1
- package/dist/components/sidebar.js +0 -888
- package/dist/components/sidebar.js.map +0 -1
- package/dist/components/sidebar.mjs +0 -842
- package/dist/components/sidebar.mjs.map +0 -1
- package/dist/components/skeleton.js +0 -153
- package/dist/components/skeleton.js.map +0 -1
- package/dist/components/skeleton.mjs +0 -127
- package/dist/components/skeleton.mjs.map +0 -1
- package/dist/components/slider.js +0 -45
- package/dist/components/slider.js.map +0 -1
- package/dist/components/slider.mjs +0 -22
- package/dist/components/slider.mjs.map +0 -1
- package/dist/components/sonner.js +0 -76
- package/dist/components/sonner.js.map +0 -1
- package/dist/components/sonner.mjs +0 -71
- package/dist/components/sonner.mjs.map +0 -1
- package/dist/components/spinner.js +0 -59
- package/dist/components/spinner.js.map +0 -1
- package/dist/components/spinner.mjs +0 -36
- package/dist/components/spinner.mjs.map +0 -1
- package/dist/components/stepper.js +0 -726
- package/dist/components/stepper.js.map +0 -1
- package/dist/components/stepper.mjs +0 -702
- package/dist/components/stepper.mjs.map +0 -1
- package/dist/components/switch.js +0 -85
- package/dist/components/switch.js.map +0 -1
- package/dist/components/switch.mjs +0 -62
- package/dist/components/switch.mjs.map +0 -1
- package/dist/components/table.js +0 -91
- package/dist/components/table.js.map +0 -1
- package/dist/components/table.mjs +0 -62
- package/dist/components/table.mjs.map +0 -1
- package/dist/components/tabs.js +0 -287
- package/dist/components/tabs.js.map +0 -1
- package/dist/components/tabs.mjs +0 -261
- package/dist/components/tabs.mjs.map +0 -1
- package/dist/components/textarea.js +0 -200
- package/dist/components/textarea.js.map +0 -1
- package/dist/components/textarea.mjs +0 -174
- package/dist/components/textarea.mjs.map +0 -1
- package/dist/components/toggle-group.js +0 -67
- package/dist/components/toggle-group.js.map +0 -1
- package/dist/components/toggle-group.mjs +0 -43
- package/dist/components/toggle-group.mjs.map +0 -1
- package/dist/components/toggle.js +0 -63
- package/dist/components/toggle.js.map +0 -1
- package/dist/components/toggle.mjs +0 -39
- package/dist/components/toggle.mjs.map +0 -1
- package/dist/components/tooltip.js +0 -172
- package/dist/components/tooltip.js.map +0 -1
- package/dist/components/tooltip.mjs +0 -145
- package/dist/components/tooltip.mjs.map +0 -1
- package/dist/hooks/index.js +0 -27
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/index.mjs +0 -6
- package/dist/hooks/index.mjs.map +0 -1
- package/dist/hooks/useCopyToClipboard.js +0 -59
- package/dist/hooks/useCopyToClipboard.js.map +0 -1
- package/dist/hooks/useCopyToClipboard.mjs +0 -57
- package/dist/hooks/useCopyToClipboard.mjs.map +0 -1
- package/dist/hooks/useDevice.js +0 -20
- package/dist/hooks/useDevice.js.map +0 -1
- package/dist/hooks/useDevice.mjs +0 -14
- package/dist/hooks/useDevice.mjs.map +0 -1
- package/dist/hooks/useDialogTracking.js +0 -113
- package/dist/hooks/useDialogTracking.js.map +0 -1
- package/dist/hooks/useDialogTracking.mjs +0 -91
- package/dist/hooks/useDialogTracking.mjs.map +0 -1
- package/dist/hooks/useIsMounted.js +0 -15
- package/dist/hooks/useIsMounted.js.map +0 -1
- package/dist/hooks/useIsMounted.mjs +0 -13
- package/dist/hooks/useIsMounted.mjs.map +0 -1
- package/dist/hooks/usePathname.js +0 -85
- package/dist/hooks/usePathname.js.map +0 -1
- package/dist/hooks/usePathname.mjs +0 -83
- package/dist/hooks/usePathname.mjs.map +0 -1
- package/dist/icons.js +0 -14
- package/dist/icons.js.map +0 -1
- package/dist/icons.mjs +0 -3
- package/dist/icons.mjs.map +0 -1
- package/dist/lib/formatCurrency.js +0 -187
- package/dist/lib/formatCurrency.js.map +0 -1
- package/dist/lib/formatCurrency.mjs +0 -185
- package/dist/lib/formatCurrency.mjs.map +0 -1
- package/dist/lib/helpers.js +0 -171
- package/dist/lib/helpers.js.map +0 -1
- package/dist/lib/helpers.mjs +0 -157
- package/dist/lib/helpers.mjs.map +0 -1
- package/dist/lib/index.js +0 -33
- package/dist/lib/index.js.map +0 -1
- package/dist/lib/index.mjs +0 -6
- package/dist/lib/index.mjs.map +0 -1
- package/dist/lib/types.js +0 -11
- package/dist/lib/types.js.map +0 -1
- package/dist/lib/types.mjs +0 -9
- package/dist/lib/types.mjs.map +0 -1
- package/dist/lib/utils.js +0 -24
- package/dist/lib/utils.js.map +0 -1
- package/dist/lib/utils.mjs +0 -19
- package/dist/lib/utils.mjs.map +0 -1
- package/dist/providers/DeviceSizeWatcher/index.js +0 -72
- package/dist/providers/DeviceSizeWatcher/index.js.map +0 -1
- package/dist/providers/DeviceSizeWatcher/index.mjs +0 -47
- package/dist/providers/DeviceSizeWatcher/index.mjs.map +0 -1
- package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.js +0 -22
- package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.js.map +0 -1
- package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.mjs +0 -20
- package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.mjs.map +0 -1
- package/dist/providers/UISystemProvider.js +0 -197
- package/dist/providers/UISystemProvider.js.map +0 -1
- package/dist/providers/UISystemProvider.mjs +0 -188
- package/dist/providers/UISystemProvider.mjs.map +0 -1
- package/dist/providers/index.js +0 -24
- package/dist/providers/index.js.map +0 -1
- package/dist/providers/index.mjs +0 -3
- package/dist/providers/index.mjs.map +0 -1
- package/dist/theme.js +0 -333
- package/dist/theme.js.map +0 -1
- package/dist/theme.mjs +0 -327
- package/dist/theme.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/calendar.tsx"],"names":["locale","vi","React","currentYear","cn","buttonVariants","format","jsx","DayPicker","ChevronLeft","ChevronRight","className","props","useDayPicker","differenceInCalendarDays","Button","ChevronsLeft","labelPrevious","labelNext","ChevronsRight","jsxs"],"mappings":"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","file":"calendar.js","sourcesContent":["'use client';\n\nimport { Button, buttonVariants } from '@/components/button';\nimport { cn } from '@/lib/utils';\nimport { differenceInCalendarDays, format } from 'date-fns';\nimport { vi, type Locale } from 'date-fns/locale';\nimport { ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight } from 'lucide-react';\nimport * as React from 'react';\nimport {\n DayPicker,\n labelNext,\n labelPrevious,\n useDayPicker,\n type DayPickerProps,\n} from 'react-day-picker';\n\nexport type CalendarProps = DayPickerProps & {\n /**\n * In the year view, the number of years to display at once.\n * @default 12\n */\n yearRange?: number;\n\n /**\n * Wether to show the year switcher in the caption.\n * @default true\n */\n showYearSwitcher?: boolean;\n\n /**\n * Locale for date formatting and labels.\n * @default vi (Vietnamese)\n */\n locale?: Locale;\n\n /**\n * Callback when the nav view changes (days, months, years)\n */\n onNavViewChange?: (navView: 'days' | 'months' | 'years') => void;\n\n monthsClassName?: string;\n monthCaptionClassName?: string;\n weekdaysClassName?: string;\n weekdayClassName?: string;\n monthClassName?: string;\n captionClassName?: string;\n captionLabelClassName?: string;\n buttonNextClassName?: string;\n buttonPreviousClassName?: string;\n navClassName?: string;\n monthGridClassName?: string;\n weekClassName?: string;\n dayClassName?: string;\n dayButtonClassName?: string;\n rangeStartClassName?: string;\n rangeEndClassName?: string;\n selectedClassName?: string;\n todayClassName?: string;\n outsideClassName?: string;\n disabledClassName?: string;\n rangeMiddleClassName?: string;\n hiddenClassName?: string;\n};\n\ntype NavView = 'days' | 'months' | 'years';\n\n/**\n * A custom calendar component built on top of react-day-picker.\n * @param props The props for the calendar.\n * @default yearRange 12\n * @returns\n */\nfunction Calendar({\n className,\n showOutsideDays = true,\n showYearSwitcher = true,\n yearRange = 12,\n numberOfMonths,\n components,\n locale = vi,\n onNavViewChange,\n ...props\n}: CalendarProps) {\n const { onNextClick, onPrevClick, startMonth, endMonth } = props;\n\n const [navView, setNavView] = React.useState<NavView>('days');\n const [currentCalendarMonth, setCurrentCalendarMonth] = React.useState<Date>(() => {\n // Initialize to current month or defaultMonth if provided\n return props.defaultMonth || new Date();\n });\n\n // Notify parent when navView changes\n React.useEffect(() => {\n onNavViewChange?.(navView);\n }, [navView, onNavViewChange]);\n const [displayYears, setDisplayYears] = React.useState<{\n from: number;\n to: number;\n }>(\n React.useMemo(() => {\n // Use startMonth and endMonth to constrain year range if available\n if (startMonth && endMonth) {\n const minYear = startMonth.getFullYear();\n const maxYear = endMonth.getFullYear();\n\n // Center the display around current year, but constrain to valid range\n const currentYear = new Date().getFullYear();\n const targetCenterYear = Math.max(minYear, Math.min(maxYear, currentYear));\n\n let from = targetCenterYear - Math.floor(yearRange / 2 - 1);\n let to = targetCenterYear + Math.ceil(yearRange / 2);\n\n // Ensure we don't go beyond the allowed range\n from = Math.max(from, minYear);\n to = Math.min(to, maxYear);\n\n // If the range is smaller than yearRange, adjust to show exactly the valid range\n if (to - from + 1 < yearRange) {\n from = minYear;\n to = maxYear;\n }\n\n return { from, to };\n }\n\n // Fallback to original behavior if no constraints\n const currentYear = new Date().getFullYear();\n return {\n from: currentYear - Math.floor(yearRange / 2 - 1),\n to: currentYear + Math.ceil(yearRange / 2),\n };\n }, [yearRange, startMonth, endMonth]),\n );\n\n const columnsDisplayed = navView === 'days' ? numberOfMonths : 1;\n const isSingleMode = !numberOfMonths || numberOfMonths === 1;\n\n const _monthsClassName = cn(\n 'relative flex',\n isSingleMode ? 'w-full' : 'ml-[-4px] w-max',\n props.monthsClassName,\n );\n const _monthCaptionClassName = cn(\n 'relative mx-16 flex h-7 items-center justify-center', // mx-16 for 4 buttons (<<, <, >, >>)\n props.monthCaptionClassName,\n );\n const _weekdaysClassName = cn(\n 'flex flex-row gap-[2px]',\n isSingleMode ? 'w-full' : '',\n props.weekdaysClassName,\n );\n const _weekdayClassName = cn(\n isSingleMode ? 'w-11 text-center' : 'w-8',\n 'text-sm font-medium text-muted-foreground',\n props.weekdayClassName,\n );\n const _monthClassName = cn('w-full', props.monthClassName);\n const _captionClassName = cn(\n 'relative flex items-center justify-center pt-1',\n props.captionClassName,\n );\n const _captionLabelClassName = cn('truncate text-sm font-medium', props.captionLabelClassName);\n const buttonNavClassName = buttonVariants({\n variant: 'outline',\n className: 'absolute h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100',\n });\n const _buttonNextClassName = cn(buttonNavClassName, 'right-0', props.buttonNextClassName);\n const _buttonPreviousClassName = cn(buttonNavClassName, 'left-0', props.buttonPreviousClassName);\n const _navClassName = cn('flex items-start', props.navClassName);\n const _monthGridClassName = cn(\n 'mt-4',\n isSingleMode ? 'w-full' : 'mx-auto',\n props.monthGridClassName,\n );\n const _weekClassName = cn(\n 'mt-1 flex items-start gap-[2px]',\n isSingleMode ? 'w-full' : 'w-max',\n props.weekClassName,\n );\n const _dayClassName = cn(\n 'flex items-center justify-center p-0 text-sm',\n isSingleMode ? 'w-11 h-11' : 'size-8 flex-1',\n props.dayClassName,\n );\n const _dayButtonClassName = cn(\n buttonVariants({ variant: 'ghost' }),\n 'rounded-full p-0 font-medium transition-none aria-selected:opacity-100',\n isSingleMode ? 'w-11 h-11' : 'size-8',\n props.dayButtonClassName,\n );\n const buttonRangeClassName =\n 'bg-primary/10 [&>button]:bg-primary [&>button]:text-primary-foreground [&>button]:hover:bg-primary [&>button]:hover:text-primary-foreground';\n const _rangeStartClassName = cn(\n buttonRangeClassName,\n 'day-range-start rounded-s-full',\n props.rangeStartClassName,\n );\n const _rangeEndClassName = cn(\n buttonRangeClassName,\n 'day-range-end rounded-e-full',\n props.rangeEndClassName,\n );\n const _rangeMiddleClassName = cn(\n 'bg-primary/10 !text-primary !font-medium [&>button]:bg-transparent [&>button]:!text-primary [&>button]:!font-medium [&>button]:hover:bg-transparent [&>button]:hover:!text-foreground',\n props.rangeMiddleClassName,\n );\n const _selectedClassName = cn(\n '[&>button]:bg-primary [&>button]:text-primary-foreground [&>button]:hover:!bg-primary [&>button]:hover:!text-primary-foreground',\n props.selectedClassName,\n );\n const _todayClassName = cn(\n '[&>button]:bg-primary/10 [&>button]:text-accent-foreground [&>button]:hover:bg-accent [&>button]:hover:text-accent-foreground',\n props.todayClassName,\n );\n const _outsideClassName = cn(\n 'day-outside text-muted-foreground opacity-50 aria-selected:bg-primary/10/50 aria-selected:text-muted-foreground aria-selected:opacity-30',\n props.outsideClassName,\n );\n const _disabledClassName = cn('text-muted-foreground opacity-50', props.disabledClassName);\n const _hiddenClassName = cn('invisible flex-1', props.hiddenClassName);\n\n // Custom formatters để hiển thị tháng và thứ dưới dạng ngắn gọn\n const formatters = {\n formatCaption: (date: Date) => {\n return `Tháng ${format(date, 'MM yyyy')}`;\n },\n formatWeekdayName: (date: Date) => {\n const dayNames = ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'];\n return dayNames[date.getDay()] || 'CN';\n },\n };\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n locale={locale}\n formatters={formatters}\n className={cn('p-0', className)}\n style={\n navView === 'years'\n ? { width: '274px' }\n : navView === 'months'\n ? { width: '312px' }\n : isSingleMode\n ? { width: '340px' }\n : {\n width: 252 * (columnsDisplayed ?? 1) + 'px',\n }\n }\n classNames={{\n months: _monthsClassName,\n month_caption: _monthCaptionClassName,\n weekdays: _weekdaysClassName,\n weekday: _weekdayClassName,\n month: _monthClassName,\n caption: _captionClassName,\n caption_label: _captionLabelClassName,\n button_next: _buttonNextClassName,\n button_previous: _buttonPreviousClassName,\n nav: _navClassName,\n month_grid: _monthGridClassName,\n week: _weekClassName,\n day: _dayClassName,\n day_button: _dayButtonClassName,\n range_start: _rangeStartClassName,\n range_middle: _rangeMiddleClassName,\n range_end: _rangeEndClassName,\n selected: _selectedClassName,\n today: _todayClassName,\n outside: _outsideClassName,\n disabled: _disabledClassName,\n hidden: _hiddenClassName,\n }}\n components={{\n Chevron: ({ orientation }) => {\n const Icon = orientation === 'left' ? ChevronLeft : ChevronRight;\n return <Icon className=\"h-4 w-4\" />;\n },\n Nav: ({ className }) => (\n <Nav\n className={className}\n displayYears={displayYears}\n navView={navView}\n setDisplayYears={setDisplayYears}\n startMonth={startMonth}\n endMonth={endMonth}\n onPrevClick={onPrevClick}\n onNextClick={onNextClick}\n currentCalendarMonth={currentCalendarMonth}\n setCurrentCalendarMonth={setCurrentCalendarMonth}\n />\n ),\n CaptionLabel: (props) => (\n <CaptionLabel\n showYearSwitcher={showYearSwitcher}\n navView={navView}\n setNavView={setNavView}\n displayYears={displayYears}\n currentCalendarMonth={currentCalendarMonth}\n {...props}\n />\n ),\n MonthGrid: ({ className, children, ...props }) => (\n <MonthGrid\n children={children}\n className={className}\n displayYears={displayYears}\n startMonth={startMonth}\n endMonth={endMonth}\n navView={navView}\n setNavView={setNavView}\n currentCalendarMonth={currentCalendarMonth}\n setCurrentCalendarMonth={setCurrentCalendarMonth}\n {...props}\n />\n ),\n ...components,\n }}\n numberOfMonths={columnsDisplayed}\n {...props}\n />\n );\n}\nCalendar.displayName = 'Calendar';\n\nfunction Nav({\n className,\n navView,\n startMonth,\n endMonth,\n displayYears,\n setDisplayYears,\n onPrevClick,\n onNextClick,\n currentCalendarMonth,\n setCurrentCalendarMonth,\n}: {\n className?: string;\n navView: NavView;\n startMonth?: Date;\n endMonth?: Date;\n displayYears: { from: number; to: number };\n setDisplayYears: React.Dispatch<React.SetStateAction<{ from: number; to: number }>>;\n onPrevClick?: (date: Date) => void;\n onNextClick?: (date: Date) => void;\n currentCalendarMonth: Date;\n setCurrentCalendarMonth: React.Dispatch<React.SetStateAction<Date>>;\n}) {\n const { nextMonth, previousMonth, goToMonth } = useDayPicker();\n const currentDate = new Date();\n\n const isPreviousDisabled = (() => {\n if (navView === 'months') {\n return true; // Disable previous navigation in months view\n }\n if (navView === 'years') {\n return (\n (startMonth &&\n differenceInCalendarDays(new Date(displayYears.from - 1, 0, 1), startMonth) < 0) ||\n (endMonth && differenceInCalendarDays(new Date(displayYears.from - 1, 0, 1), endMonth) > 0)\n );\n }\n return !previousMonth;\n })();\n\n const isNextDisabled = (() => {\n if (navView === 'months') {\n return true; // Disable next navigation in months view\n }\n if (navView === 'years') {\n return (\n (startMonth &&\n differenceInCalendarDays(new Date(displayYears.to + 1, 0, 1), startMonth) < 0) ||\n (endMonth && differenceInCalendarDays(new Date(displayYears.to + 1, 0, 1), endMonth) > 0)\n );\n }\n return !nextMonth;\n })();\n\n const handlePreviousClick = React.useCallback(() => {\n if (navView === 'months') {\n return; // Do nothing when in months view\n }\n if (navView === 'years') {\n const yearRange = displayYears.to - displayYears.from + 1;\n const newFrom = displayYears.from - yearRange;\n const newTo = displayYears.to - yearRange;\n\n // Constrain to valid range if startMonth is provided\n const minYear = startMonth?.getFullYear();\n const constrainedFrom = minYear !== undefined ? Math.max(newFrom, minYear) : newFrom;\n const constrainedTo =\n minYear !== undefined ? Math.max(newTo, minYear + yearRange - 1) : newTo;\n\n setDisplayYears({\n from: constrainedFrom,\n to: constrainedTo,\n });\n\n onPrevClick?.(new Date(constrainedFrom, 0, 1));\n return;\n }\n if (!previousMonth) return;\n setCurrentCalendarMonth(previousMonth);\n goToMonth(previousMonth);\n onPrevClick?.(previousMonth);\n }, [\n previousMonth,\n goToMonth,\n navView,\n currentDate,\n displayYears,\n setDisplayYears,\n onPrevClick,\n startMonth,\n setCurrentCalendarMonth,\n ]);\n\n const handleNextClick = React.useCallback(() => {\n if (navView === 'months') {\n return; // Do nothing when in months view\n }\n if (navView === 'years') {\n const yearRange = displayYears.to - displayYears.from + 1;\n const newFrom = displayYears.from + yearRange;\n const newTo = displayYears.to + yearRange;\n\n // Constrain to valid range if endMonth is provided\n const maxYear = endMonth?.getFullYear();\n const constrainedFrom =\n maxYear !== undefined ? Math.min(newFrom, maxYear - yearRange + 1) : newFrom;\n const constrainedTo = maxYear !== undefined ? Math.min(newTo, maxYear) : newTo;\n\n setDisplayYears({\n from: constrainedFrom,\n to: constrainedTo,\n });\n\n onNextClick?.(new Date(constrainedTo, 0, 1));\n return;\n }\n if (!nextMonth) return;\n setCurrentCalendarMonth(nextMonth);\n goToMonth(nextMonth);\n onNextClick?.(nextMonth);\n }, [\n goToMonth,\n nextMonth,\n navView,\n currentDate,\n displayYears,\n setDisplayYears,\n onNextClick,\n endMonth,\n setCurrentCalendarMonth,\n ]);\n\n // Fast navigation: Jump 2 years\n const handleFastPreviousClick = React.useCallback(() => {\n if (navView !== 'years') return;\n const yearRange = displayYears.to - displayYears.from + 1;\n const newFrom = displayYears.from - yearRange * 2;\n const newTo = displayYears.to - yearRange * 2;\n\n const minYear = startMonth?.getFullYear();\n const constrainedFrom = minYear !== undefined ? Math.max(newFrom, minYear) : newFrom;\n const constrainedTo = minYear !== undefined ? Math.max(newTo, minYear + yearRange - 1) : newTo;\n\n setDisplayYears({ from: constrainedFrom, to: constrainedTo });\n onPrevClick?.(new Date(constrainedFrom, 0, 1));\n }, [navView, displayYears, startMonth, setDisplayYears, onPrevClick]);\n\n const handleFastNextClick = React.useCallback(() => {\n if (navView !== 'years') return;\n const yearRange = displayYears.to - displayYears.from + 1;\n const newFrom = displayYears.from + yearRange * 2;\n const newTo = displayYears.to + yearRange * 2;\n\n const maxYear = endMonth?.getFullYear();\n const constrainedFrom =\n maxYear !== undefined ? Math.min(newFrom, maxYear - yearRange + 1) : newFrom;\n const constrainedTo = maxYear !== undefined ? Math.min(newTo, maxYear) : newTo;\n\n setDisplayYears({ from: constrainedFrom, to: constrainedTo });\n onNextClick?.(new Date(constrainedTo, 0, 1));\n }, [navView, displayYears, endMonth, setDisplayYears, onNextClick]);\n\n const isFastPreviousDisabled = navView !== 'years' || isPreviousDisabled;\n const isFastNextDisabled = navView !== 'years' || isNextDisabled;\n\n return (\n <nav className={cn('flex items-center justify-between', className)}>\n {/* Fast Previous (<<) - Only in years view */}\n {navView === 'years' && (\n <Button\n variant=\"outline\"\n className=\"absolute left-0 h-7 w-7 bg-transparent p-0 opacity-80 hover:opacity-100\"\n type=\"button\"\n tabIndex={isFastPreviousDisabled ? undefined : -1}\n disabled={isFastPreviousDisabled}\n aria-label=\"Go back 2 year ranges\"\n onClick={handleFastPreviousClick}\n >\n <ChevronsLeft className=\"h-4 w-4\" />\n </Button>\n )}\n\n {/* Previous (<) */}\n <Button\n variant=\"outline\"\n className={cn(\n 'absolute h-7 w-7 bg-transparent p-0 opacity-80 hover:opacity-100',\n navView === 'years' ? 'left-8' : 'left-0',\n )}\n type=\"button\"\n tabIndex={isPreviousDisabled ? undefined : -1}\n disabled={isPreviousDisabled}\n aria-label={\n navView === 'years'\n ? `Go to the previous ${displayYears.to - displayYears.from + 1} years`\n : navView === 'months'\n ? 'Go to the previous year'\n : labelPrevious(previousMonth)\n }\n onClick={handlePreviousClick}\n >\n <ChevronLeft className=\"h-4 w-4\" />\n </Button>\n\n {/* Next (>) */}\n <Button\n variant=\"outline\"\n className={cn(\n 'absolute h-7 w-7 bg-transparent p-0 opacity-80 hover:opacity-100',\n navView === 'years' ? 'right-8' : 'right-0',\n )}\n type=\"button\"\n tabIndex={isNextDisabled ? undefined : -1}\n disabled={isNextDisabled}\n aria-label={\n navView === 'years'\n ? `Go to the next ${displayYears.to - displayYears.from + 1} years`\n : navView === 'months'\n ? 'Go to the next year'\n : labelNext(nextMonth)\n }\n onClick={handleNextClick}\n >\n <ChevronRight className=\"h-4 w-4\" />\n </Button>\n\n {/* Fast Next (>>) - Only in years view */}\n {navView === 'years' && (\n <Button\n variant=\"outline\"\n className=\"absolute right-0 h-7 w-7 bg-transparent p-0 opacity-80 hover:opacity-100\"\n type=\"button\"\n tabIndex={isFastNextDisabled ? undefined : -1}\n disabled={isFastNextDisabled}\n aria-label=\"Go forward 2 year ranges\"\n onClick={handleFastNextClick}\n >\n <ChevronsRight className=\"h-4 w-4\" />\n </Button>\n )}\n </nav>\n );\n}\n\nfunction CaptionLabel({\n children,\n showYearSwitcher,\n navView,\n setNavView,\n displayYears,\n currentCalendarMonth,\n ...props\n}: {\n showYearSwitcher?: boolean;\n navView: NavView;\n setNavView: React.Dispatch<React.SetStateAction<NavView>>;\n displayYears: { from: number; to: number };\n currentCalendarMonth?: Date;\n} & React.HTMLAttributes<HTMLSpanElement>) {\n const currentDate = new Date();\n\n if (!showYearSwitcher) return <span {...props}>{children}</span>;\n\n const handleMonthsClick = () => {\n setNavView(navView === 'months' ? 'days' : 'months');\n };\n\n const handleYearsClick = () => {\n setNavView(navView === 'years' ? 'days' : 'years');\n };\n\n const getDisplayText = () => {\n switch (navView) {\n case 'days':\n return children;\n case 'months':\n return currentCalendarMonth?.getFullYear() || currentDate.getFullYear();\n case 'years':\n return displayYears.from + ' - ' + displayYears.to;\n default:\n return children;\n }\n };\n\n // If we're in months or years view, show back to days button\n if (navView === 'months' || navView === 'years') {\n return (\n <Button\n className=\"h-7 w-full truncate text-sm font-medium\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setNavView('days')}\n >\n {getDisplayText()}\n </Button>\n );\n }\n\n // If we're in days view, show both months and years buttons\n const childrenStr = children?.toString() || '';\n const parts = childrenStr.split(' ');\n\n // Extract month and year from format \"Tháng 06 2025\"\n const monthPart = parts.length >= 2 ? `${parts[0]} ${parts[1]}` : parts[0] || 'Tháng';\n const yearPart =\n parts.length >= 3 ? parts[2] : parts[parts.length - 1] || currentDate.getFullYear().toString();\n\n return (\n <div className=\"flex w-full gap-1\">\n <Button\n className=\"h-7 flex-1 truncate text-sm font-medium\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={handleMonthsClick}\n title=\"Chọn tháng\"\n >\n {monthPart}\n </Button>\n <Button\n className=\"h-7 flex-1 truncate text-sm font-medium\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={handleYearsClick}\n title=\"Chọn năm\"\n >\n {yearPart}\n </Button>\n </div>\n );\n}\n\nfunction MonthGrid({\n className,\n children,\n displayYears,\n startMonth,\n endMonth,\n navView,\n setNavView,\n currentCalendarMonth,\n setCurrentCalendarMonth,\n ...props\n}: {\n className?: string;\n children: React.ReactNode;\n displayYears: { from: number; to: number };\n startMonth?: Date;\n endMonth?: Date;\n navView: NavView;\n setNavView: React.Dispatch<React.SetStateAction<NavView>>;\n currentCalendarMonth: Date;\n setCurrentCalendarMonth: React.Dispatch<React.SetStateAction<Date>>;\n} & React.TableHTMLAttributes<HTMLTableElement>) {\n if (navView === 'years') {\n return (\n <YearGrid\n displayYears={displayYears}\n startMonth={startMonth}\n endMonth={endMonth}\n setNavView={setNavView}\n navView={navView}\n className={className}\n currentCalendarMonth={currentCalendarMonth}\n setCurrentCalendarMonth={setCurrentCalendarMonth}\n {...props}\n />\n );\n }\n\n if (navView === 'months') {\n return (\n <MonthsGrid\n startMonth={startMonth}\n endMonth={endMonth}\n setNavView={setNavView}\n navView={navView}\n className={className}\n currentCalendarMonth={currentCalendarMonth}\n setCurrentCalendarMonth={setCurrentCalendarMonth}\n {...props}\n />\n );\n }\n\n return (\n <table className={className} {...props}>\n {children}\n </table>\n );\n}\n\nfunction YearGrid({\n className,\n displayYears,\n startMonth,\n endMonth,\n setNavView,\n navView,\n currentCalendarMonth,\n setCurrentCalendarMonth,\n ...props\n}: {\n className?: string;\n displayYears: { from: number; to: number };\n startMonth?: Date;\n endMonth?: Date;\n setNavView: React.Dispatch<React.SetStateAction<NavView>>;\n navView: NavView;\n currentCalendarMonth: Date;\n setCurrentCalendarMonth: React.Dispatch<React.SetStateAction<Date>>;\n} & React.HTMLAttributes<HTMLDivElement>) {\n const { goToMonth, selected } = useDayPicker();\n\n return (\n <div className={cn('mx-auto grid w-full grid-cols-4 gap-1 px-3', className)} {...props}>\n {Array.from({ length: displayYears.to - displayYears.from + 1 }, (_, i) => {\n const isBefore =\n differenceInCalendarDays(new Date(displayYears.from + i, 11, 31), startMonth!) < 0;\n\n const isAfter =\n differenceInCalendarDays(new Date(displayYears.from + i, 0, 0), endMonth!) > 0;\n\n const isDisabled = isBefore || isAfter;\n\n // Check if this year matches the selected date's year\n const selectedYear = (() => {\n try {\n const selectedValue = selected as any;\n if (selectedValue && typeof selectedValue.getFullYear === 'function') {\n return selectedValue.getFullYear();\n }\n if (\n selectedValue &&\n selectedValue.from &&\n typeof selectedValue.from.getFullYear === 'function'\n ) {\n return selectedValue.from.getFullYear();\n }\n } catch (error) {\n // Continue with fallback\n }\n return null;\n })();\n\n const isSelectedYear = selectedYear === displayYears.from + i;\n\n return (\n <Button\n key={i}\n className={cn(\n 'text-foreground h-7 w-full text-sm font-medium',\n isSelectedYear && 'text-accent-foreground bg-primary/10 font-medium',\n displayYears.from + i === new Date().getFullYear() &&\n !isSelectedYear &&\n 'text-accent-foreground bg-accent/80 font-medium',\n )}\n variant=\"ghost\"\n onClick={() => {\n setNavView('days');\n\n // Preserve the current month from the calendar context\n const preservedMonth = currentCalendarMonth.getMonth();\n const newDate = new Date(displayYears.from + i, preservedMonth);\n\n setCurrentCalendarMonth(newDate);\n goToMonth(newDate);\n }}\n disabled={isDisabled}\n >\n {displayYears.from + i}\n </Button>\n );\n })}\n </div>\n );\n}\n\nfunction MonthsGrid({\n className,\n startMonth,\n endMonth,\n setNavView,\n navView,\n numberOfMonths,\n currentCalendarMonth,\n setCurrentCalendarMonth,\n ...props\n}: {\n className?: string;\n startMonth?: Date;\n endMonth?: Date;\n setNavView: React.Dispatch<React.SetStateAction<NavView>>;\n navView: NavView;\n numberOfMonths?: number;\n currentCalendarMonth: Date;\n setCurrentCalendarMonth: React.Dispatch<React.SetStateAction<Date>>;\n} & React.HTMLAttributes<HTMLDivElement>) {\n const { goToMonth, selected } = useDayPicker();\n const currentDate = new Date();\n\n // Preserve the current year from the calendar context\n const preservedYear = currentCalendarMonth.getFullYear();\n\n const currentMonth = currentDate.getMonth();\n\n // Check which month is selected\n const selectedMonth = (() => {\n try {\n const selectedValue = selected as any;\n if (selectedValue && typeof selectedValue.getMonth === 'function') {\n return selectedValue.getMonth();\n }\n if (\n selectedValue &&\n selectedValue.from &&\n typeof selectedValue.from.getMonth === 'function'\n ) {\n return selectedValue.from.getMonth();\n }\n } catch (error) {\n // Continue with fallback\n }\n return null;\n })();\n\n // Vietnamese month names\n const monthNames = [\n 'Tháng 01',\n 'Tháng 02',\n 'Tháng 03',\n 'Tháng 04',\n 'Tháng 05',\n 'Tháng 06',\n 'Tháng 07',\n 'Tháng 08',\n 'Tháng 09',\n 'Tháng 10',\n 'Tháng 11',\n 'Tháng 12',\n ];\n\n return (\n <div className={cn('mx-auto grid w-full grid-cols-3 gap-2 px-3', className)} {...props}>\n {monthNames.map((monthName, i) => {\n const monthDate = new Date(preservedYear, i, 1);\n const isBefore =\n startMonth && differenceInCalendarDays(new Date(preservedYear, i, 31), startMonth) < 0;\n const isAfter =\n endMonth && differenceInCalendarDays(new Date(preservedYear, i, 0), endMonth) > 0;\n const isDisabled = isBefore || isAfter;\n\n // Check if this is the selected month\n const isSelectedMonth = selectedMonth === i;\n\n // Check if this is the current month and year\n const isCurrentMonth = i === currentMonth && preservedYear === currentDate.getFullYear();\n\n return (\n <Button\n key={i}\n className={cn(\n 'text-foreground h-9 w-full text-sm font-medium',\n isSelectedMonth && 'text-accent-foreground bg-primary/10 font-medium',\n isCurrentMonth &&\n !isSelectedMonth &&\n 'text-accent-foreground bg-accent/80 font-medium',\n )}\n variant=\"ghost\"\n onClick={() => {\n setNavView('days');\n const newDate = new Date(preservedYear, i);\n setCurrentCalendarMonth(newDate);\n goToMonth(newDate);\n }}\n disabled={isDisabled}\n >\n {monthName}\n </Button>\n );\n })}\n </div>\n );\n}\n\nexport { Calendar };\n"]}
|