shad-m 1.0.0
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/README.md +260 -0
- package/dist/assets/Animation/index.d.ts +25655 -0
- package/dist/assets/Animation/index.d.ts.map +1 -0
- package/dist/assets/Animation/index.js +180 -0
- package/dist/assets/Animation/index.js.map +1 -0
- package/dist/assets/Animation/index.mjs +79 -0
- package/dist/assets/Animation/index.mjs.map +1 -0
- package/dist/assets/Icon/index.d.ts +420 -0
- package/dist/assets/Icon/index.d.ts.map +1 -0
- package/dist/assets/Icon/index.js +2102 -0
- package/dist/assets/Icon/index.js.map +1 -0
- package/dist/assets/Icon/index.mjs +421 -0
- package/dist/assets/Icon/index.mjs.map +1 -0
- package/dist/assets/Image/index.d.ts +151 -0
- package/dist/assets/Image/index.d.ts.map +1 -0
- package/dist/assets/Image/index.js +755 -0
- package/dist/assets/Image/index.js.map +1 -0
- package/dist/assets/Image/index.mjs +150 -0
- package/dist/assets/Image/index.mjs.map +1 -0
- package/dist/common/display/countdown.d.ts +26 -0
- package/dist/common/display/countdown.d.ts.map +1 -0
- package/dist/common/display/countdown.js +68 -0
- package/dist/common/display/countdown.js.map +1 -0
- package/dist/common/display/countdown.mjs +46 -0
- package/dist/common/display/countdown.mjs.map +1 -0
- package/dist/common/display/display-field-group.d.ts +59 -0
- package/dist/common/display/display-field-group.d.ts.map +1 -0
- package/dist/common/display/display-field-group.js +91 -0
- package/dist/common/display/display-field-group.js.map +1 -0
- package/dist/common/display/display-field-group.mjs +89 -0
- package/dist/common/display/display-field-group.mjs.map +1 -0
- package/dist/common/display/display-field.d.ts +45 -0
- package/dist/common/display/display-field.d.ts.map +1 -0
- package/dist/common/display/display-field.js +46 -0
- package/dist/common/display/display-field.js.map +1 -0
- package/dist/common/display/display-field.mjs +40 -0
- package/dist/common/display/display-field.mjs.map +1 -0
- package/dist/common/display/display-html-string.d.ts +7 -0
- package/dist/common/display/display-html-string.d.ts.map +1 -0
- package/dist/common/display/display-html-string.js +52 -0
- package/dist/common/display/display-html-string.js.map +1 -0
- package/dist/common/display/display-html-string.mjs +30 -0
- package/dist/common/display/display-html-string.mjs.map +1 -0
- package/dist/common/display/index.d.ts +16 -0
- package/dist/common/display/index.d.ts.map +1 -0
- package/dist/common/display/index.js +59 -0
- package/dist/common/display/index.js.map +1 -0
- package/dist/common/display/index.mjs +10 -0
- package/dist/common/display/index.mjs.map +1 -0
- package/dist/common/display/page-breadcrumb.d.ts +19 -0
- package/dist/common/display/page-breadcrumb.d.ts.map +1 -0
- package/dist/common/display/page-breadcrumb.js +43 -0
- package/dist/common/display/page-breadcrumb.js.map +1 -0
- package/dist/common/display/page-breadcrumb.mjs +37 -0
- package/dist/common/display/page-breadcrumb.mjs.map +1 -0
- package/dist/common/display/page-v2.d.ts +15 -0
- package/dist/common/display/page-v2.d.ts.map +1 -0
- package/dist/common/display/page-v2.js +58 -0
- package/dist/common/display/page-v2.js.map +1 -0
- package/dist/common/display/page-v2.mjs +20 -0
- package/dist/common/display/page-v2.mjs.map +1 -0
- package/dist/common/display/page.d.ts +53 -0
- package/dist/common/display/page.d.ts.map +1 -0
- package/dist/common/display/page.js +155 -0
- package/dist/common/display/page.js.map +1 -0
- package/dist/common/display/page.mjs +138 -0
- package/dist/common/display/page.mjs.map +1 -0
- package/dist/common/display/score-meter.d.ts +22 -0
- package/dist/common/display/score-meter.d.ts.map +1 -0
- package/dist/common/display/score-meter.js +161 -0
- package/dist/common/display/score-meter.js.map +1 -0
- package/dist/common/display/score-meter.mjs +140 -0
- package/dist/common/display/score-meter.mjs.map +1 -0
- package/dist/common/display/sidebar/app-sidebar.d.ts +28 -0
- package/dist/common/display/sidebar/app-sidebar.d.ts.map +1 -0
- package/dist/common/display/sidebar/app-sidebar.js +114 -0
- package/dist/common/display/sidebar/app-sidebar.js.map +1 -0
- package/dist/common/display/sidebar/app-sidebar.mjs +92 -0
- package/dist/common/display/sidebar/app-sidebar.mjs.map +1 -0
- package/dist/common/display/sidebar/index.d.ts +30 -0
- package/dist/common/display/sidebar/index.d.ts.map +1 -0
- package/dist/common/display/sidebar/index.js +89 -0
- package/dist/common/display/sidebar/index.js.map +1 -0
- package/dist/common/display/sidebar/index.mjs +81 -0
- package/dist/common/display/sidebar/index.mjs.map +1 -0
- package/dist/common/display/sidebar/nav-main.d.ts +17 -0
- package/dist/common/display/sidebar/nav-main.d.ts.map +1 -0
- package/dist/common/display/sidebar/nav-main.js +406 -0
- package/dist/common/display/sidebar/nav-main.js.map +1 -0
- package/dist/common/display/sidebar/nav-main.mjs +400 -0
- package/dist/common/display/sidebar/nav-main.mjs.map +1 -0
- package/dist/common/display/sidebar/sidebar-sheet.d.ts +46 -0
- package/dist/common/display/sidebar/sidebar-sheet.d.ts.map +1 -0
- package/dist/common/display/sidebar/sidebar-sheet.js +140 -0
- package/dist/common/display/sidebar/sidebar-sheet.js.map +1 -0
- package/dist/common/display/sidebar/sidebar-sheet.mjs +118 -0
- package/dist/common/display/sidebar/sidebar-sheet.mjs.map +1 -0
- package/dist/common/display/sidebar/types.d.ts +18 -0
- package/dist/common/display/sidebar/types.d.ts.map +1 -0
- package/dist/common/display/sidebar/types.js +4 -0
- package/dist/common/display/sidebar/types.js.map +1 -0
- package/dist/common/display/sidebar/types.mjs +3 -0
- package/dist/common/display/sidebar/types.mjs.map +1 -0
- package/dist/common/display/status-state.d.ts +16 -0
- package/dist/common/display/status-state.d.ts.map +1 -0
- package/dist/common/display/status-state.js +97 -0
- package/dist/common/display/status-state.js.map +1 -0
- package/dist/common/display/status-state.mjs +88 -0
- package/dist/common/display/status-state.mjs.map +1 -0
- package/dist/common/forms/auto-form.d.ts +17 -0
- package/dist/common/forms/auto-form.d.ts.map +1 -0
- package/dist/common/forms/auto-form.js +101 -0
- package/dist/common/forms/auto-form.js.map +1 -0
- package/dist/common/forms/auto-form.mjs +78 -0
- package/dist/common/forms/auto-form.mjs.map +1 -0
- package/dist/common/forms/form-field.d.ts +16 -0
- package/dist/common/forms/form-field.d.ts.map +1 -0
- package/dist/common/forms/form-field.js +58 -0
- package/dist/common/forms/form-field.js.map +1 -0
- package/dist/common/forms/form-field.mjs +56 -0
- package/dist/common/forms/form-field.mjs.map +1 -0
- package/dist/common/forms/form-input-field.d.ts +16 -0
- package/dist/common/forms/form-input-field.d.ts.map +1 -0
- package/dist/common/forms/form-input-field.js +64 -0
- package/dist/common/forms/form-input-field.js.map +1 -0
- package/dist/common/forms/form-input-field.mjs +62 -0
- package/dist/common/forms/form-input-field.mjs.map +1 -0
- package/dist/common/forms/index.d.ts +7 -0
- package/dist/common/forms/index.d.ts.map +1 -0
- package/dist/common/forms/index.js +22 -0
- package/dist/common/forms/index.js.map +1 -0
- package/dist/common/forms/index.mjs +5 -0
- package/dist/common/forms/index.mjs.map +1 -0
- package/dist/common/forms/switch-field.d.ts +19 -0
- package/dist/common/forms/switch-field.d.ts.map +1 -0
- package/dist/common/forms/switch-field.js +106 -0
- package/dist/common/forms/switch-field.js.map +1 -0
- package/dist/common/forms/switch-field.mjs +104 -0
- package/dist/common/forms/switch-field.mjs.map +1 -0
- package/dist/common/interactive/alert-dialog-wrapper.d.ts +41 -0
- package/dist/common/interactive/alert-dialog-wrapper.d.ts.map +1 -0
- package/dist/common/interactive/alert-dialog-wrapper.js +141 -0
- package/dist/common/interactive/alert-dialog-wrapper.js.map +1 -0
- package/dist/common/interactive/alert-dialog-wrapper.mjs +119 -0
- package/dist/common/interactive/alert-dialog-wrapper.mjs.map +1 -0
- package/dist/common/interactive/autocomplete.d.ts +21 -0
- package/dist/common/interactive/autocomplete.d.ts.map +1 -0
- package/dist/common/interactive/autocomplete.js +178 -0
- package/dist/common/interactive/autocomplete.js.map +1 -0
- package/dist/common/interactive/autocomplete.mjs +157 -0
- package/dist/common/interactive/autocomplete.mjs.map +1 -0
- package/dist/common/interactive/copy-tooltip.d.ts +27 -0
- package/dist/common/interactive/copy-tooltip.d.ts.map +1 -0
- package/dist/common/interactive/copy-tooltip.js +152 -0
- package/dist/common/interactive/copy-tooltip.js.map +1 -0
- package/dist/common/interactive/copy-tooltip.mjs +143 -0
- package/dist/common/interactive/copy-tooltip.mjs.map +1 -0
- package/dist/common/interactive/date-field.d.ts +98 -0
- package/dist/common/interactive/date-field.d.ts.map +1 -0
- package/dist/common/interactive/date-field.js +303 -0
- package/dist/common/interactive/date-field.js.map +1 -0
- package/dist/common/interactive/date-field.mjs +281 -0
- package/dist/common/interactive/date-field.mjs.map +1 -0
- package/dist/common/interactive/date-input/date-input.d.ts +12 -0
- package/dist/common/interactive/date-input/date-input.d.ts.map +1 -0
- package/dist/common/interactive/date-input/date-input.js +68 -0
- package/dist/common/interactive/date-input/date-input.js.map +1 -0
- package/dist/common/interactive/date-input/date-input.mjs +62 -0
- package/dist/common/interactive/date-input/date-input.mjs.map +1 -0
- package/dist/common/interactive/date-input/index.d.ts +4 -0
- package/dist/common/interactive/date-input/index.d.ts.map +1 -0
- package/dist/common/interactive/date-input/index.js +17 -0
- package/dist/common/interactive/date-input/index.js.map +1 -0
- package/dist/common/interactive/date-input/index.mjs +4 -0
- package/dist/common/interactive/date-input/index.mjs.map +1 -0
- package/dist/common/interactive/date-input/types.d.ts +17 -0
- package/dist/common/interactive/date-input/types.d.ts.map +1 -0
- package/dist/common/interactive/date-input/types.js +4 -0
- package/dist/common/interactive/date-input/types.js.map +1 -0
- package/dist/common/interactive/date-input/types.mjs +3 -0
- package/dist/common/interactive/date-input/types.mjs.map +1 -0
- package/dist/common/interactive/date-input/use-typed-date.d.ts +17 -0
- package/dist/common/interactive/date-input/use-typed-date.d.ts.map +1 -0
- package/dist/common/interactive/date-input/use-typed-date.js +478 -0
- package/dist/common/interactive/date-input/use-typed-date.js.map +1 -0
- package/dist/common/interactive/date-input/use-typed-date.mjs +476 -0
- package/dist/common/interactive/date-input/use-typed-date.mjs.map +1 -0
- package/dist/common/interactive/date-input/utils.d.ts +5 -0
- package/dist/common/interactive/date-input/utils.d.ts.map +1 -0
- package/dist/common/interactive/date-input/utils.js +34 -0
- package/dist/common/interactive/date-input/utils.js.map +1 -0
- package/dist/common/interactive/date-input/utils.mjs +29 -0
- package/dist/common/interactive/date-input/utils.mjs.map +1 -0
- package/dist/common/interactive/date-picker.d.ts +114 -0
- package/dist/common/interactive/date-picker.d.ts.map +1 -0
- package/dist/common/interactive/date-picker.js +616 -0
- package/dist/common/interactive/date-picker.js.map +1 -0
- package/dist/common/interactive/date-picker.mjs +594 -0
- package/dist/common/interactive/date-picker.mjs.map +1 -0
- package/dist/common/interactive/date-range-input/date-range-input.d.ts +23 -0
- package/dist/common/interactive/date-range-input/date-range-input.d.ts.map +1 -0
- package/dist/common/interactive/date-range-input/date-range-input.js +82 -0
- package/dist/common/interactive/date-range-input/date-range-input.js.map +1 -0
- package/dist/common/interactive/date-range-input/date-range-input.mjs +76 -0
- package/dist/common/interactive/date-range-input/date-range-input.mjs.map +1 -0
- package/dist/common/interactive/date-range-input/index.d.ts +4 -0
- package/dist/common/interactive/date-range-input/index.d.ts.map +1 -0
- package/dist/common/interactive/date-range-input/index.js +12 -0
- package/dist/common/interactive/date-range-input/index.js.map +1 -0
- package/dist/common/interactive/date-range-input/index.mjs +3 -0
- package/dist/common/interactive/date-range-input/index.mjs.map +1 -0
- package/dist/common/interactive/date-range-input/types.d.ts +35 -0
- package/dist/common/interactive/date-range-input/types.d.ts.map +1 -0
- package/dist/common/interactive/date-range-input/types.js +4 -0
- package/dist/common/interactive/date-range-input/types.js.map +1 -0
- package/dist/common/interactive/date-range-input/types.mjs +3 -0
- package/dist/common/interactive/date-range-input/types.mjs.map +1 -0
- package/dist/common/interactive/date-range-input/use-typed-date-range.d.ts +17 -0
- package/dist/common/interactive/date-range-input/use-typed-date-range.d.ts.map +1 -0
- package/dist/common/interactive/date-range-input/use-typed-date-range.js +602 -0
- package/dist/common/interactive/date-range-input/use-typed-date-range.js.map +1 -0
- package/dist/common/interactive/date-range-input/use-typed-date-range.mjs +600 -0
- package/dist/common/interactive/date-range-input/use-typed-date-range.mjs.map +1 -0
- package/dist/common/interactive/date-time-picker.d.ts +86 -0
- package/dist/common/interactive/date-time-picker.d.ts.map +1 -0
- package/dist/common/interactive/date-time-picker.js +215 -0
- package/dist/common/interactive/date-time-picker.js.map +1 -0
- package/dist/common/interactive/date-time-picker.mjs +213 -0
- package/dist/common/interactive/date-time-picker.mjs.map +1 -0
- package/dist/common/interactive/dialog-wrapper.d.ts +34 -0
- package/dist/common/interactive/dialog-wrapper.d.ts.map +1 -0
- package/dist/common/interactive/dialog-wrapper.js +124 -0
- package/dist/common/interactive/dialog-wrapper.js.map +1 -0
- package/dist/common/interactive/dialog-wrapper.mjs +102 -0
- package/dist/common/interactive/dialog-wrapper.mjs.map +1 -0
- package/dist/common/interactive/filter.d.ts +51 -0
- package/dist/common/interactive/filter.d.ts.map +1 -0
- package/dist/common/interactive/filter.js +287 -0
- package/dist/common/interactive/filter.js.map +1 -0
- package/dist/common/interactive/filter.mjs +280 -0
- package/dist/common/interactive/filter.mjs.map +1 -0
- package/dist/common/interactive/index.d.ts +41 -0
- package/dist/common/interactive/index.d.ts.map +1 -0
- package/dist/common/interactive/index.js +235 -0
- package/dist/common/interactive/index.js.map +1 -0
- package/dist/common/interactive/index.mjs +24 -0
- package/dist/common/interactive/index.mjs.map +1 -0
- package/dist/common/interactive/list.d.ts +36 -0
- package/dist/common/interactive/list.d.ts.map +1 -0
- package/dist/common/interactive/list.js +160 -0
- package/dist/common/interactive/list.js.map +1 -0
- package/dist/common/interactive/list.mjs +134 -0
- package/dist/common/interactive/list.mjs.map +1 -0
- package/dist/common/interactive/otp-dialog/index.d.ts +7 -0
- package/dist/common/interactive/otp-dialog/index.d.ts.map +1 -0
- package/dist/common/interactive/otp-dialog/index.js +35 -0
- package/dist/common/interactive/otp-dialog/index.js.map +1 -0
- package/dist/common/interactive/otp-dialog/index.mjs +6 -0
- package/dist/common/interactive/otp-dialog/index.mjs.map +1 -0
- package/dist/common/interactive/otp-dialog/otp-dialog.d.ts +34 -0
- package/dist/common/interactive/otp-dialog/otp-dialog.d.ts.map +1 -0
- package/dist/common/interactive/otp-dialog/otp-dialog.js +325 -0
- package/dist/common/interactive/otp-dialog/otp-dialog.js.map +1 -0
- package/dist/common/interactive/otp-dialog/otp-dialog.mjs +303 -0
- package/dist/common/interactive/otp-dialog/otp-dialog.mjs.map +1 -0
- package/dist/common/interactive/otp-dialog/reducer.d.ts +11 -0
- package/dist/common/interactive/otp-dialog/reducer.d.ts.map +1 -0
- package/dist/common/interactive/otp-dialog/reducer.js +40 -0
- package/dist/common/interactive/otp-dialog/reducer.js.map +1 -0
- package/dist/common/interactive/otp-dialog/reducer.mjs +37 -0
- package/dist/common/interactive/otp-dialog/reducer.mjs.map +1 -0
- package/dist/common/interactive/otp-dialog/types.d.ts +82 -0
- package/dist/common/interactive/otp-dialog/types.d.ts.map +1 -0
- package/dist/common/interactive/otp-dialog/types.js +15 -0
- package/dist/common/interactive/otp-dialog/types.js.map +1 -0
- package/dist/common/interactive/otp-dialog/types.mjs +13 -0
- package/dist/common/interactive/otp-dialog/types.mjs.map +1 -0
- package/dist/common/interactive/otp-dialog/utils.d.ts +17 -0
- package/dist/common/interactive/otp-dialog/utils.d.ts.map +1 -0
- package/dist/common/interactive/otp-dialog/utils.js +24 -0
- package/dist/common/interactive/otp-dialog/utils.js.map +1 -0
- package/dist/common/interactive/otp-dialog/utils.mjs +21 -0
- package/dist/common/interactive/otp-dialog/utils.mjs.map +1 -0
- package/dist/common/interactive/pagination/PaginationSkeleton.d.ts +6 -0
- package/dist/common/interactive/pagination/PaginationSkeleton.d.ts.map +1 -0
- package/dist/common/interactive/pagination/PaginationSkeleton.js +51 -0
- package/dist/common/interactive/pagination/PaginationSkeleton.js.map +1 -0
- package/dist/common/interactive/pagination/PaginationSkeleton.mjs +49 -0
- package/dist/common/interactive/pagination/PaginationSkeleton.mjs.map +1 -0
- package/dist/common/interactive/pagination/index.d.ts +14 -0
- package/dist/common/interactive/pagination/index.d.ts.map +1 -0
- package/dist/common/interactive/pagination/index.js +235 -0
- package/dist/common/interactive/pagination/index.js.map +1 -0
- package/dist/common/interactive/pagination/index.mjs +223 -0
- package/dist/common/interactive/pagination/index.mjs.map +1 -0
- package/dist/common/interactive/pagination/usePagination.d.ts +3 -0
- package/dist/common/interactive/pagination/usePagination.d.ts.map +1 -0
- package/dist/common/interactive/pagination/usePagination.js +28 -0
- package/dist/common/interactive/pagination/usePagination.js.map +1 -0
- package/dist/common/interactive/pagination/usePagination.mjs +25 -0
- package/dist/common/interactive/pagination/usePagination.mjs.map +1 -0
- package/dist/common/interactive/popover-wrapper.d.ts +38 -0
- package/dist/common/interactive/popover-wrapper.d.ts.map +1 -0
- package/dist/common/interactive/popover-wrapper.js +138 -0
- package/dist/common/interactive/popover-wrapper.js.map +1 -0
- package/dist/common/interactive/popover-wrapper.mjs +116 -0
- package/dist/common/interactive/popover-wrapper.mjs.map +1 -0
- package/dist/common/interactive/pressable.d.ts +11 -0
- package/dist/common/interactive/pressable.d.ts.map +1 -0
- package/dist/common/interactive/pressable.js +84 -0
- package/dist/common/interactive/pressable.js.map +1 -0
- package/dist/common/interactive/pressable.mjs +62 -0
- package/dist/common/interactive/pressable.mjs.map +1 -0
- package/dist/common/interactive/select/context.d.ts +6 -0
- package/dist/common/interactive/select/context.d.ts.map +1 -0
- package/dist/common/interactive/select/context.js +38 -0
- package/dist/common/interactive/select/context.js.map +1 -0
- package/dist/common/interactive/select/context.mjs +14 -0
- package/dist/common/interactive/select/context.mjs.map +1 -0
- package/dist/common/interactive/select/index.d.ts +18 -0
- package/dist/common/interactive/select/index.d.ts.map +1 -0
- package/dist/common/interactive/select/index.js +123 -0
- package/dist/common/interactive/select/index.js.map +1 -0
- package/dist/common/interactive/select/index.mjs +18 -0
- package/dist/common/interactive/select/index.mjs.map +1 -0
- package/dist/common/interactive/select/select-body.d.ts +5 -0
- package/dist/common/interactive/select/select-body.d.ts.map +1 -0
- package/dist/common/interactive/select/select-body.js +89 -0
- package/dist/common/interactive/select/select-body.js.map +1 -0
- package/dist/common/interactive/select/select-body.mjs +67 -0
- package/dist/common/interactive/select/select-body.mjs.map +1 -0
- package/dist/common/interactive/select/select-close.d.ts +3 -0
- package/dist/common/interactive/select/select-close.d.ts.map +1 -0
- package/dist/common/interactive/select/select-close.js +38 -0
- package/dist/common/interactive/select/select-close.js.map +1 -0
- package/dist/common/interactive/select/select-close.mjs +16 -0
- package/dist/common/interactive/select/select-close.mjs.map +1 -0
- package/dist/common/interactive/select/select-content-auto-layout.d.ts +5 -0
- package/dist/common/interactive/select/select-content-auto-layout.d.ts.map +1 -0
- package/dist/common/interactive/select/select-content-auto-layout.js +221 -0
- package/dist/common/interactive/select/select-content-auto-layout.js.map +1 -0
- package/dist/common/interactive/select/select-content-auto-layout.mjs +199 -0
- package/dist/common/interactive/select/select-content-auto-layout.mjs.map +1 -0
- package/dist/common/interactive/select/select-content-group-auto-layout.d.ts +5 -0
- package/dist/common/interactive/select/select-content-group-auto-layout.d.ts.map +1 -0
- package/dist/common/interactive/select/select-content-group-auto-layout.js +411 -0
- package/dist/common/interactive/select/select-content-group-auto-layout.js.map +1 -0
- package/dist/common/interactive/select/select-content-group-auto-layout.mjs +389 -0
- package/dist/common/interactive/select/select-content-group-auto-layout.mjs.map +1 -0
- package/dist/common/interactive/select/select-content.d.ts +5 -0
- package/dist/common/interactive/select/select-content.d.ts.map +1 -0
- package/dist/common/interactive/select/select-content.js +187 -0
- package/dist/common/interactive/select/select-content.js.map +1 -0
- package/dist/common/interactive/select/select-content.mjs +165 -0
- package/dist/common/interactive/select/select-content.mjs.map +1 -0
- package/dist/common/interactive/select/select-footer.d.ts +5 -0
- package/dist/common/interactive/select/select-footer.d.ts.map +1 -0
- package/dist/common/interactive/select/select-footer.js +82 -0
- package/dist/common/interactive/select/select-footer.js.map +1 -0
- package/dist/common/interactive/select/select-footer.mjs +60 -0
- package/dist/common/interactive/select/select-footer.mjs.map +1 -0
- package/dist/common/interactive/select/select-item.d.ts +6 -0
- package/dist/common/interactive/select/select-item.d.ts.map +1 -0
- package/dist/common/interactive/select/select-item.js +214 -0
- package/dist/common/interactive/select/select-item.js.map +1 -0
- package/dist/common/interactive/select/select-item.mjs +191 -0
- package/dist/common/interactive/select/select-item.mjs.map +1 -0
- package/dist/common/interactive/select/select-layout.d.ts +8 -0
- package/dist/common/interactive/select/select-layout.d.ts.map +1 -0
- package/dist/common/interactive/select/select-layout.js +66 -0
- package/dist/common/interactive/select/select-layout.js.map +1 -0
- package/dist/common/interactive/select/select-layout.mjs +41 -0
- package/dist/common/interactive/select/select-layout.mjs.map +1 -0
- package/dist/common/interactive/select/select-search.d.ts +8 -0
- package/dist/common/interactive/select/select-search.d.ts.map +1 -0
- package/dist/common/interactive/select/select-search.js +55 -0
- package/dist/common/interactive/select/select-search.js.map +1 -0
- package/dist/common/interactive/select/select-search.mjs +33 -0
- package/dist/common/interactive/select/select-search.mjs.map +1 -0
- package/dist/common/interactive/select/select-states.d.ts +6 -0
- package/dist/common/interactive/select/select-states.d.ts.map +1 -0
- package/dist/common/interactive/select/select-states.js +57 -0
- package/dist/common/interactive/select/select-states.js.map +1 -0
- package/dist/common/interactive/select/select-states.mjs +34 -0
- package/dist/common/interactive/select/select-states.mjs.map +1 -0
- package/dist/common/interactive/select/select-trigger.d.ts +7 -0
- package/dist/common/interactive/select/select-trigger.d.ts.map +1 -0
- package/dist/common/interactive/select/select-trigger.js +310 -0
- package/dist/common/interactive/select/select-trigger.js.map +1 -0
- package/dist/common/interactive/select/select-trigger.mjs +286 -0
- package/dist/common/interactive/select/select-trigger.mjs.map +1 -0
- package/dist/common/interactive/select/select-value.d.ts +5 -0
- package/dist/common/interactive/select/select-value.d.ts.map +1 -0
- package/dist/common/interactive/select/select-value.js +52 -0
- package/dist/common/interactive/select/select-value.js.map +1 -0
- package/dist/common/interactive/select/select-value.mjs +30 -0
- package/dist/common/interactive/select/select-value.mjs.map +1 -0
- package/dist/common/interactive/select/select.css +62 -0
- package/dist/common/interactive/select/select.d.ts +4 -0
- package/dist/common/interactive/select/select.d.ts.map +1 -0
- package/dist/common/interactive/select/select.js +184 -0
- package/dist/common/interactive/select/select.js.map +1 -0
- package/dist/common/interactive/select/select.mjs +162 -0
- package/dist/common/interactive/select/select.mjs.map +1 -0
- package/dist/common/interactive/select/types.d.ts +213 -0
- package/dist/common/interactive/select/types.d.ts.map +1 -0
- package/dist/common/interactive/select/types.js +4 -0
- package/dist/common/interactive/select/types.js.map +1 -0
- package/dist/common/interactive/select/types.mjs +3 -0
- package/dist/common/interactive/select/types.mjs.map +1 -0
- package/dist/common/interactive/select/utils.d.ts +8 -0
- package/dist/common/interactive/select/utils.d.ts.map +1 -0
- package/dist/common/interactive/select/utils.js +31 -0
- package/dist/common/interactive/select/utils.js.map +1 -0
- package/dist/common/interactive/select/utils.mjs +28 -0
- package/dist/common/interactive/select/utils.mjs.map +1 -0
- package/dist/common/interactive/select/variants.d.ts +4 -0
- package/dist/common/interactive/select/variants.d.ts.map +1 -0
- package/dist/common/interactive/select/variants.js +27 -0
- package/dist/common/interactive/select/variants.js.map +1 -0
- package/dist/common/interactive/select/variants.mjs +25 -0
- package/dist/common/interactive/select/variants.mjs.map +1 -0
- package/dist/common/interactive/select-chip.d.ts +20 -0
- package/dist/common/interactive/select-chip.d.ts.map +1 -0
- package/dist/common/interactive/select-chip.js +76 -0
- package/dist/common/interactive/select-chip.js.map +1 -0
- package/dist/common/interactive/select-chip.mjs +74 -0
- package/dist/common/interactive/select-chip.mjs.map +1 -0
- package/dist/common/interactive/select-level.d.ts +19 -0
- package/dist/common/interactive/select-level.d.ts.map +1 -0
- package/dist/common/interactive/select-level.js +236 -0
- package/dist/common/interactive/select-level.js.map +1 -0
- package/dist/common/interactive/select-level.mjs +230 -0
- package/dist/common/interactive/select-level.mjs.map +1 -0
- package/dist/common/interactive/select-range.d.ts +30 -0
- package/dist/common/interactive/select-range.d.ts.map +1 -0
- package/dist/common/interactive/select-range.js +211 -0
- package/dist/common/interactive/select-range.js.map +1 -0
- package/dist/common/interactive/select-range.mjs +209 -0
- package/dist/common/interactive/select-range.mjs.map +1 -0
- package/dist/common/interactive/select-with-api.d.ts +97 -0
- package/dist/common/interactive/select-with-api.d.ts.map +1 -0
- package/dist/common/interactive/select-with-api.js +767 -0
- package/dist/common/interactive/select-with-api.js.map +1 -0
- package/dist/common/interactive/select-with-api.mjs +758 -0
- package/dist/common/interactive/select-with-api.mjs.map +1 -0
- package/dist/common/interactive/select.d.ts +3 -0
- package/dist/common/interactive/select.d.ts.map +1 -0
- package/dist/common/interactive/select.js +15 -0
- package/dist/common/interactive/select.js.map +1 -0
- package/dist/common/interactive/select.mjs +4 -0
- package/dist/common/interactive/select.mjs.map +1 -0
- package/dist/common/interactive/sheet-wrapper.d.ts +34 -0
- package/dist/common/interactive/sheet-wrapper.d.ts.map +1 -0
- package/dist/common/interactive/sheet-wrapper.js +105 -0
- package/dist/common/interactive/sheet-wrapper.js.map +1 -0
- package/dist/common/interactive/sheet-wrapper.mjs +83 -0
- package/dist/common/interactive/sheet-wrapper.mjs.map +1 -0
- package/dist/common/interactive/table/enhanced-table.d.ts +5 -0
- package/dist/common/interactive/table/enhanced-table.d.ts.map +1 -0
- package/dist/common/interactive/table/enhanced-table.js +390 -0
- package/dist/common/interactive/table/enhanced-table.js.map +1 -0
- package/dist/common/interactive/table/enhanced-table.mjs +388 -0
- package/dist/common/interactive/table/enhanced-table.mjs.map +1 -0
- package/dist/common/interactive/table/index.d.ts +10 -0
- package/dist/common/interactive/table/index.d.ts.map +1 -0
- package/dist/common/interactive/table/index.js +83 -0
- package/dist/common/interactive/table/index.js.map +1 -0
- package/dist/common/interactive/table/index.mjs +68 -0
- package/dist/common/interactive/table/index.mjs.map +1 -0
- package/dist/common/interactive/table/table-pagination.d.ts +5 -0
- package/dist/common/interactive/table/table-pagination.d.ts.map +1 -0
- package/dist/common/interactive/table/table-pagination.js +12 -0
- package/dist/common/interactive/table/table-pagination.js.map +1 -0
- package/dist/common/interactive/table/table-pagination.mjs +10 -0
- package/dist/common/interactive/table/table-pagination.mjs.map +1 -0
- package/dist/common/interactive/table/types.d.ts +54 -0
- package/dist/common/interactive/table/types.d.ts.map +1 -0
- package/dist/common/interactive/table/types.js +4 -0
- package/dist/common/interactive/table/types.js.map +1 -0
- package/dist/common/interactive/table/types.mjs +3 -0
- package/dist/common/interactive/table/types.mjs.map +1 -0
- package/dist/common/interactive/time-picker.d.ts +74 -0
- package/dist/common/interactive/time-picker.d.ts.map +1 -0
- package/dist/common/interactive/time-picker.js +313 -0
- package/dist/common/interactive/time-picker.js.map +1 -0
- package/dist/common/interactive/time-picker.mjs +307 -0
- package/dist/common/interactive/time-picker.mjs.map +1 -0
- package/dist/common/interactive/types.d.ts +2 -0
- package/dist/common/interactive/types.d.ts.map +1 -0
- package/dist/common/interactive/types.js +4 -0
- package/dist/common/interactive/types.js.map +1 -0
- package/dist/common/interactive/types.mjs +3 -0
- package/dist/common/interactive/types.mjs.map +1 -0
- package/dist/common/pages/page-404.d.ts +3 -0
- package/dist/common/pages/page-404.d.ts.map +1 -0
- package/dist/common/pages/page-404.js +16 -0
- package/dist/common/pages/page-404.js.map +1 -0
- package/dist/common/pages/page-404.mjs +11 -0
- package/dist/common/pages/page-404.mjs.map +1 -0
- package/dist/common/pages/page-500.d.ts +9 -0
- package/dist/common/pages/page-500.d.ts.map +1 -0
- package/dist/common/pages/page-500.js +30 -0
- package/dist/common/pages/page-500.js.map +1 -0
- package/dist/common/pages/page-500.mjs +25 -0
- package/dist/common/pages/page-500.mjs.map +1 -0
- package/dist/components/accordion.d.ts +8 -0
- package/dist/components/accordion.d.ts.map +1 -0
- package/dist/components/accordion.js +65 -0
- package/dist/components/accordion.js.map +1 -0
- package/dist/components/accordion.mjs +39 -0
- package/dist/components/accordion.mjs.map +1 -0
- package/dist/components/alert-dialog.d.ts +33 -0
- package/dist/components/alert-dialog.d.ts.map +1 -0
- package/dist/components/alert-dialog.js +231 -0
- package/dist/components/alert-dialog.js.map +1 -0
- package/dist/components/alert-dialog.mjs +197 -0
- package/dist/components/alert-dialog.mjs.map +1 -0
- package/dist/components/alert.d.ts +13 -0
- package/dist/components/alert.d.ts.map +1 -0
- package/dist/components/alert.js +97 -0
- package/dist/components/alert.js.map +1 -0
- package/dist/components/alert.mjs +72 -0
- package/dist/components/alert.mjs.map +1 -0
- package/dist/components/aspect-ratio.d.ts +4 -0
- package/dist/components/aspect-ratio.d.ts.map +1 -0
- package/dist/components/aspect-ratio.js +29 -0
- package/dist/components/aspect-ratio.js.map +1 -0
- package/dist/components/aspect-ratio.mjs +7 -0
- package/dist/components/aspect-ratio.mjs.map +1 -0
- package/dist/components/avatar.d.ts +7 -0
- package/dist/components/avatar.d.ts.map +1 -0
- package/dist/components/avatar.js +64 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/avatar.mjs +39 -0
- package/dist/components/avatar.mjs.map +1 -0
- package/dist/components/badge.d.ts +12 -0
- package/dist/components/badge.d.ts.map +1 -0
- package/dist/components/badge.js +72 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/badge.mjs +69 -0
- package/dist/components/badge.mjs.map +1 -0
- package/dist/components/breadcrumb.d.ts +20 -0
- package/dist/components/breadcrumb.d.ts.map +1 -0
- package/dist/components/breadcrumb.js +109 -0
- package/dist/components/breadcrumb.js.map +1 -0
- package/dist/components/breadcrumb.mjs +81 -0
- package/dist/components/breadcrumb.mjs.map +1 -0
- package/dist/components/button.d.ts +28 -0
- package/dist/components/button.d.ts.map +1 -0
- package/dist/components/button.js +250 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/button.mjs +226 -0
- package/dist/components/button.mjs.map +1 -0
- package/dist/components/calendar.d.ts +57 -0
- package/dist/components/calendar.d.ts.map +1 -0
- package/dist/components/calendar.js +681 -0
- package/dist/components/calendar.js.map +1 -0
- package/dist/components/calendar.mjs +659 -0
- package/dist/components/calendar.mjs.map +1 -0
- package/dist/components/card.d.ts +12 -0
- package/dist/components/card.d.ts.map +1 -0
- package/dist/components/card.js +98 -0
- package/dist/components/card.js.map +1 -0
- package/dist/components/card.mjs +71 -0
- package/dist/components/card.mjs.map +1 -0
- package/dist/components/carousel.d.ts +23 -0
- package/dist/components/carousel.d.ts.map +1 -0
- package/dist/components/carousel.js +237 -0
- package/dist/components/carousel.js.map +1 -0
- package/dist/components/carousel.mjs +208 -0
- package/dist/components/carousel.mjs.map +1 -0
- package/dist/components/chart.d.ts +63 -0
- package/dist/components/chart.d.ts.map +1 -0
- package/dist/components/chart.js +252 -0
- package/dist/components/chart.js.map +1 -0
- package/dist/components/chart.mjs +224 -0
- package/dist/components/chart.mjs.map +1 -0
- package/dist/components/checkbox.d.ts +18 -0
- package/dist/components/checkbox.d.ts.map +1 -0
- package/dist/components/checkbox.js +97 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/checkbox.mjs +74 -0
- package/dist/components/checkbox.mjs.map +1 -0
- package/dist/components/chip.d.ts +30 -0
- package/dist/components/chip.d.ts.map +1 -0
- package/dist/components/chip.js +88 -0
- package/dist/components/chip.js.map +1 -0
- package/dist/components/chip.mjs +82 -0
- package/dist/components/chip.mjs.map +1 -0
- package/dist/components/collapsible.d.ts +6 -0
- package/dist/components/collapsible.d.ts.map +1 -0
- package/dist/components/collapsible.js +33 -0
- package/dist/components/collapsible.js.map +1 -0
- package/dist/components/collapsible.mjs +9 -0
- package/dist/components/collapsible.mjs.map +1 -0
- package/dist/components/command.d.ts +81 -0
- package/dist/components/command.d.ts.map +1 -0
- package/dist/components/command.js +125 -0
- package/dist/components/command.js.map +1 -0
- package/dist/components/command.mjs +95 -0
- package/dist/components/command.mjs.map +1 -0
- package/dist/components/context-menu.d.ts +28 -0
- package/dist/components/context-menu.d.ts.map +1 -0
- package/dist/components/context-menu.js +168 -0
- package/dist/components/context-menu.js.map +1 -0
- package/dist/components/context-menu.mjs +131 -0
- package/dist/components/context-menu.mjs.map +1 -0
- package/dist/components/dialog.d.ts +32 -0
- package/dist/components/dialog.d.ts.map +1 -0
- package/dist/components/dialog.js +192 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/dialog.mjs +159 -0
- package/dist/components/dialog.mjs.map +1 -0
- package/dist/components/drawer.d.ts +23 -0
- package/dist/components/drawer.d.ts.map +1 -0
- package/dist/components/drawer.js +98 -0
- package/dist/components/drawer.js.map +1 -0
- package/dist/components/drawer.mjs +67 -0
- package/dist/components/drawer.mjs.map +1 -0
- package/dist/components/dropdown-menu.d.ts +28 -0
- package/dist/components/dropdown-menu.d.ts.map +1 -0
- package/dist/components/dropdown-menu.js +163 -0
- package/dist/components/dropdown-menu.js.map +1 -0
- package/dist/components/dropdown-menu.mjs +126 -0
- package/dist/components/dropdown-menu.mjs.map +1 -0
- package/dist/components/form.d.ts +24 -0
- package/dist/components/form.d.ts.map +1 -0
- package/dist/components/form.js +123 -0
- package/dist/components/form.js.map +1 -0
- package/dist/components/form.mjs +94 -0
- package/dist/components/form.mjs.map +1 -0
- package/dist/components/hover-card.d.ts +7 -0
- package/dist/components/hover-card.d.ts.map +1 -0
- package/dist/components/hover-card.js +50 -0
- package/dist/components/hover-card.js.map +1 -0
- package/dist/components/hover-card.mjs +25 -0
- package/dist/components/hover-card.mjs.map +1 -0
- package/dist/components/input-otp.d.ts +39 -0
- package/dist/components/input-otp.d.ts.map +1 -0
- package/dist/components/input-otp.js +84 -0
- package/dist/components/input-otp.js.map +1 -0
- package/dist/components/input-otp.mjs +59 -0
- package/dist/components/input-otp.mjs.map +1 -0
- package/dist/components/input.d.ts +150 -0
- package/dist/components/input.d.ts.map +1 -0
- package/dist/components/input.js +858 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/input.mjs +831 -0
- package/dist/components/input.mjs.map +1 -0
- package/dist/components/label.d.ts +6 -0
- package/dist/components/label.d.ts.map +1 -0
- package/dist/components/label.js +38 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/label.mjs +15 -0
- package/dist/components/label.mjs.map +1 -0
- package/dist/components/lottie.d.ts +63 -0
- package/dist/components/lottie.d.ts.map +1 -0
- package/dist/components/lottie.js +59 -0
- package/dist/components/lottie.js.map +1 -0
- package/dist/components/lottie.mjs +49 -0
- package/dist/components/lottie.mjs.map +1 -0
- package/dist/components/menubar.d.ts +29 -0
- package/dist/components/menubar.d.ts.map +1 -0
- package/dist/components/menubar.js +195 -0
- package/dist/components/menubar.js.map +1 -0
- package/dist/components/menubar.mjs +157 -0
- package/dist/components/menubar.mjs.map +1 -0
- package/dist/components/navigation-menu.d.ts +13 -0
- package/dist/components/navigation-menu.d.ts.map +1 -0
- package/dist/components/navigation-menu.js +126 -0
- package/dist/components/navigation-menu.js.map +1 -0
- package/dist/components/navigation-menu.mjs +95 -0
- package/dist/components/navigation-menu.mjs.map +1 -0
- package/dist/components/pagination.d.ts +29 -0
- package/dist/components/pagination.d.ts.map +1 -0
- package/dist/components/pagination.js +112 -0
- package/dist/components/pagination.js.map +1 -0
- package/dist/components/pagination.mjs +84 -0
- package/dist/components/pagination.mjs.map +1 -0
- package/dist/components/popover.d.ts +7 -0
- package/dist/components/popover.d.ts.map +1 -0
- package/dist/components/popover.js +63 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/popover.mjs +38 -0
- package/dist/components/popover.mjs.map +1 -0
- package/dist/components/progress.d.ts +7 -0
- package/dist/components/progress.d.ts.map +1 -0
- package/dist/components/progress.js +50 -0
- package/dist/components/progress.js.map +1 -0
- package/dist/components/progress.mjs +27 -0
- package/dist/components/progress.mjs.map +1 -0
- package/dist/components/radio-group.d.ts +17 -0
- package/dist/components/radio-group.d.ts.map +1 -0
- package/dist/components/radio-group.js +91 -0
- package/dist/components/radio-group.js.map +1 -0
- package/dist/components/radio-group.mjs +67 -0
- package/dist/components/radio-group.mjs.map +1 -0
- package/dist/components/resizable.d.ts +24 -0
- package/dist/components/resizable.d.ts.map +1 -0
- package/dist/components/resizable.js +59 -0
- package/dist/components/resizable.js.map +1 -0
- package/dist/components/resizable.mjs +35 -0
- package/dist/components/resizable.mjs.map +1 -0
- package/dist/components/responsive-popover.d.ts +25 -0
- package/dist/components/responsive-popover.d.ts.map +1 -0
- package/dist/components/responsive-popover.js +74 -0
- package/dist/components/responsive-popover.js.map +1 -0
- package/dist/components/responsive-popover.mjs +50 -0
- package/dist/components/responsive-popover.mjs.map +1 -0
- package/dist/components/scroll-area.d.ts +6 -0
- package/dist/components/scroll-area.d.ts.map +1 -0
- package/dist/components/scroll-area.js +63 -0
- package/dist/components/scroll-area.js.map +1 -0
- package/dist/components/scroll-area.mjs +39 -0
- package/dist/components/scroll-area.mjs.map +1 -0
- package/dist/components/separator.d.ts +5 -0
- package/dist/components/separator.d.ts.map +1 -0
- package/dist/components/separator.js +47 -0
- package/dist/components/separator.js.map +1 -0
- package/dist/components/separator.mjs +24 -0
- package/dist/components/separator.mjs.map +1 -0
- package/dist/components/sheet.d.ts +29 -0
- package/dist/components/sheet.d.ts.map +1 -0
- package/dist/components/sheet.js +239 -0
- package/dist/components/sheet.js.map +1 -0
- package/dist/components/sheet.mjs +206 -0
- package/dist/components/sheet.mjs.map +1 -0
- package/dist/components/sidebar.d.ts +87 -0
- package/dist/components/sidebar.d.ts.map +1 -0
- package/dist/components/sidebar.js +888 -0
- package/dist/components/sidebar.js.map +1 -0
- package/dist/components/sidebar.mjs +842 -0
- package/dist/components/sidebar.mjs.map +1 -0
- package/dist/components/skeleton.d.ts +36 -0
- package/dist/components/skeleton.d.ts.map +1 -0
- package/dist/components/skeleton.js +153 -0
- package/dist/components/skeleton.js.map +1 -0
- package/dist/components/skeleton.mjs +127 -0
- package/dist/components/skeleton.mjs.map +1 -0
- package/dist/components/slider.d.ts +5 -0
- package/dist/components/slider.d.ts.map +1 -0
- package/dist/components/slider.js +45 -0
- package/dist/components/slider.js.map +1 -0
- package/dist/components/slider.mjs +22 -0
- package/dist/components/slider.mjs.map +1 -0
- package/dist/components/sonner.d.ts +4 -0
- package/dist/components/sonner.d.ts.map +1 -0
- package/dist/components/sonner.js +76 -0
- package/dist/components/sonner.js.map +1 -0
- package/dist/components/sonner.mjs +71 -0
- package/dist/components/sonner.mjs.map +1 -0
- package/dist/components/spinner.d.ts +11 -0
- package/dist/components/spinner.d.ts.map +1 -0
- package/dist/components/spinner.js +59 -0
- package/dist/components/spinner.js.map +1 -0
- package/dist/components/spinner.mjs +36 -0
- package/dist/components/spinner.mjs.map +1 -0
- package/dist/components/stepper.d.ts +114 -0
- package/dist/components/stepper.d.ts.map +1 -0
- package/dist/components/stepper.js +726 -0
- package/dist/components/stepper.js.map +1 -0
- package/dist/components/stepper.mjs +702 -0
- package/dist/components/stepper.mjs.map +1 -0
- package/dist/components/switch.d.ts +16 -0
- package/dist/components/switch.d.ts.map +1 -0
- package/dist/components/switch.js +85 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/switch.mjs +62 -0
- package/dist/components/switch.mjs.map +1 -0
- package/dist/components/table.d.ts +11 -0
- package/dist/components/table.d.ts.map +1 -0
- package/dist/components/table.js +91 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/table.mjs +62 -0
- package/dist/components/table.mjs.map +1 -0
- package/dist/components/tabs.d.ts +32 -0
- package/dist/components/tabs.d.ts.map +1 -0
- package/dist/components/tabs.js +287 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/tabs.mjs +261 -0
- package/dist/components/tabs.mjs.map +1 -0
- package/dist/components/textarea.d.ts +21 -0
- package/dist/components/textarea.d.ts.map +1 -0
- package/dist/components/textarea.js +200 -0
- package/dist/components/textarea.js.map +1 -0
- package/dist/components/textarea.mjs +174 -0
- package/dist/components/textarea.mjs.map +1 -0
- package/dist/components/toggle-group.d.ts +13 -0
- package/dist/components/toggle-group.d.ts.map +1 -0
- package/dist/components/toggle-group.js +67 -0
- package/dist/components/toggle-group.js.map +1 -0
- package/dist/components/toggle-group.mjs +43 -0
- package/dist/components/toggle-group.mjs.map +1 -0
- package/dist/components/toggle.d.ts +13 -0
- package/dist/components/toggle.d.ts.map +1 -0
- package/dist/components/toggle.js +63 -0
- package/dist/components/toggle.js.map +1 -0
- package/dist/components/toggle.mjs +39 -0
- package/dist/components/toggle.mjs.map +1 -0
- package/dist/components/tooltip.d.ts +31 -0
- package/dist/components/tooltip.d.ts.map +1 -0
- package/dist/components/tooltip.js +172 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/components/tooltip.mjs +145 -0
- package/dist/components/tooltip.mjs.map +1 -0
- package/dist/globals.css +1179 -0
- package/dist/hooks/index.d.ts +6 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +27 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/index.mjs +6 -0
- package/dist/hooks/index.mjs.map +1 -0
- package/dist/hooks/useCopyToClipboard.d.ts +26 -0
- package/dist/hooks/useCopyToClipboard.d.ts.map +1 -0
- package/dist/hooks/useCopyToClipboard.js +59 -0
- package/dist/hooks/useCopyToClipboard.js.map +1 -0
- package/dist/hooks/useCopyToClipboard.mjs +57 -0
- package/dist/hooks/useCopyToClipboard.mjs.map +1 -0
- package/dist/hooks/useDevice.d.ts +7 -0
- package/dist/hooks/useDevice.d.ts.map +1 -0
- package/dist/hooks/useDevice.js +20 -0
- package/dist/hooks/useDevice.js.map +1 -0
- package/dist/hooks/useDevice.mjs +14 -0
- package/dist/hooks/useDevice.mjs.map +1 -0
- package/dist/hooks/useDialogTracking.d.ts +17 -0
- package/dist/hooks/useDialogTracking.d.ts.map +1 -0
- package/dist/hooks/useDialogTracking.js +113 -0
- package/dist/hooks/useDialogTracking.js.map +1 -0
- package/dist/hooks/useDialogTracking.mjs +91 -0
- package/dist/hooks/useDialogTracking.mjs.map +1 -0
- package/dist/hooks/useIsMounted.d.ts +8 -0
- package/dist/hooks/useIsMounted.d.ts.map +1 -0
- package/dist/hooks/useIsMounted.js +15 -0
- package/dist/hooks/useIsMounted.js.map +1 -0
- package/dist/hooks/useIsMounted.mjs +13 -0
- package/dist/hooks/useIsMounted.mjs.map +1 -0
- package/dist/hooks/usePathname.d.ts +20 -0
- package/dist/hooks/usePathname.d.ts.map +1 -0
- package/dist/hooks/usePathname.js +85 -0
- package/dist/hooks/usePathname.js.map +1 -0
- package/dist/hooks/usePathname.mjs +83 -0
- package/dist/hooks/usePathname.mjs.map +1 -0
- package/dist/icons.d.ts +2 -0
- package/dist/icons.d.ts.map +1 -0
- package/dist/icons.js +14 -0
- package/dist/icons.js.map +1 -0
- package/dist/icons.mjs +3 -0
- package/dist/icons.mjs.map +1 -0
- package/dist/lib/formatCurrency.d.ts +106 -0
- package/dist/lib/formatCurrency.d.ts.map +1 -0
- package/dist/lib/formatCurrency.js +187 -0
- package/dist/lib/formatCurrency.js.map +1 -0
- package/dist/lib/formatCurrency.mjs +185 -0
- package/dist/lib/formatCurrency.mjs.map +1 -0
- package/dist/lib/helpers.d.ts +64 -0
- package/dist/lib/helpers.d.ts.map +1 -0
- package/dist/lib/helpers.js +171 -0
- package/dist/lib/helpers.js.map +1 -0
- package/dist/lib/helpers.mjs +157 -0
- package/dist/lib/helpers.mjs.map +1 -0
- package/dist/lib/index.d.ts +6 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +33 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/index.mjs +6 -0
- package/dist/lib/index.mjs.map +1 -0
- package/dist/lib/types.d.ts +37 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +11 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/types.mjs +9 -0
- package/dist/lib/types.mjs.map +1 -0
- package/dist/lib/utils.d.ts +4 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +24 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/utils.mjs +19 -0
- package/dist/lib/utils.mjs.map +1 -0
- package/dist/providers/DeviceSizeWatcher/index.d.ts +3 -0
- package/dist/providers/DeviceSizeWatcher/index.d.ts.map +1 -0
- package/dist/providers/DeviceSizeWatcher/index.js +72 -0
- package/dist/providers/DeviceSizeWatcher/index.js.map +1 -0
- package/dist/providers/DeviceSizeWatcher/index.mjs +47 -0
- package/dist/providers/DeviceSizeWatcher/index.mjs.map +1 -0
- package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.d.ts +13 -0
- package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.d.ts.map +1 -0
- package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.js +22 -0
- package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.js.map +1 -0
- package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.mjs +20 -0
- package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.mjs.map +1 -0
- package/dist/providers/UISystemProvider.d.ts +68 -0
- package/dist/providers/UISystemProvider.d.ts.map +1 -0
- package/dist/providers/UISystemProvider.js +197 -0
- package/dist/providers/UISystemProvider.js.map +1 -0
- package/dist/providers/UISystemProvider.mjs +188 -0
- package/dist/providers/UISystemProvider.mjs.map +1 -0
- package/dist/providers/index.d.ts +3 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +24 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/index.mjs +3 -0
- package/dist/providers/index.mjs.map +1 -0
- package/dist/theme.d.ts +10 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +333 -0
- package/dist/theme.js.map +1 -0
- package/dist/theme.mjs +327 -0
- package/dist/theme.mjs.map +1 -0
- package/package.json +252 -0
- package/postcss.config.mjs +6 -0
- package/tailwind.config.ts +350 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var react = require('react');
|
|
4
|
+
|
|
5
|
+
let detectedFramework = null;
|
|
6
|
+
let nextNavigationModule = null;
|
|
7
|
+
let nextRouterModule = null;
|
|
8
|
+
function detectFramework() {
|
|
9
|
+
if (detectedFramework !== null) {
|
|
10
|
+
return detectedFramework;
|
|
11
|
+
}
|
|
12
|
+
if (typeof window === "undefined") {
|
|
13
|
+
detectedFramework = "generic";
|
|
14
|
+
return detectedFramework;
|
|
15
|
+
}
|
|
16
|
+
try {
|
|
17
|
+
nextNavigationModule = require("next/navigation");
|
|
18
|
+
if (nextNavigationModule?.usePathname) {
|
|
19
|
+
detectedFramework = "next-app";
|
|
20
|
+
return detectedFramework;
|
|
21
|
+
}
|
|
22
|
+
} catch (e) {
|
|
23
|
+
}
|
|
24
|
+
try {
|
|
25
|
+
nextRouterModule = require("next/router");
|
|
26
|
+
if (nextRouterModule?.useRouter) {
|
|
27
|
+
detectedFramework = "next-pages";
|
|
28
|
+
return detectedFramework;
|
|
29
|
+
}
|
|
30
|
+
} catch (e) {
|
|
31
|
+
}
|
|
32
|
+
detectedFramework = "generic";
|
|
33
|
+
return detectedFramework;
|
|
34
|
+
}
|
|
35
|
+
function usePathname() {
|
|
36
|
+
const framework = detectFramework();
|
|
37
|
+
if (framework === "next-app" && nextNavigationModule?.usePathname) {
|
|
38
|
+
return nextNavigationModule.usePathname();
|
|
39
|
+
}
|
|
40
|
+
if (framework === "next-pages" && nextRouterModule?.useRouter) {
|
|
41
|
+
const router = nextRouterModule.useRouter();
|
|
42
|
+
return router.pathname || router.asPath?.split("?")[0] || "/";
|
|
43
|
+
}
|
|
44
|
+
return useGenericPathname();
|
|
45
|
+
}
|
|
46
|
+
function useGenericPathname() {
|
|
47
|
+
const [pathname, setPathname] = react.useState(() => {
|
|
48
|
+
if (typeof window === "undefined") {
|
|
49
|
+
return "/";
|
|
50
|
+
}
|
|
51
|
+
return window.location.pathname;
|
|
52
|
+
});
|
|
53
|
+
react.useEffect(() => {
|
|
54
|
+
if (typeof window === "undefined") {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const handleLocationChange = () => {
|
|
58
|
+
const newPathname = window.location.pathname;
|
|
59
|
+
setPathname(newPathname);
|
|
60
|
+
};
|
|
61
|
+
window.addEventListener("popstate", handleLocationChange);
|
|
62
|
+
const originalPushState = history.pushState.bind(history);
|
|
63
|
+
const originalReplaceState = history.replaceState.bind(history);
|
|
64
|
+
history.pushState = function(...args) {
|
|
65
|
+
const result = originalPushState(...args);
|
|
66
|
+
handleLocationChange();
|
|
67
|
+
return result;
|
|
68
|
+
};
|
|
69
|
+
history.replaceState = function(...args) {
|
|
70
|
+
const result = originalReplaceState(...args);
|
|
71
|
+
handleLocationChange();
|
|
72
|
+
return result;
|
|
73
|
+
};
|
|
74
|
+
return () => {
|
|
75
|
+
window.removeEventListener("popstate", handleLocationChange);
|
|
76
|
+
history.pushState = originalPushState;
|
|
77
|
+
history.replaceState = originalReplaceState;
|
|
78
|
+
};
|
|
79
|
+
}, []);
|
|
80
|
+
return pathname;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
exports.usePathname = usePathname;
|
|
84
|
+
//# sourceMappingURL=usePathname.js.map
|
|
85
|
+
//# sourceMappingURL=usePathname.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/usePathname.ts"],"names":["useState","useEffect"],"mappings":"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","file":"usePathname.js","sourcesContent":["import { useEffect, useState } from 'react';\n\n/**\n * Detect routing framework at module level (outside component)\n * This ensures we only detect once and don't violate Rules of Hooks\n */\nlet detectedFramework: 'next-app' | 'next-pages' | 'generic' | null = null;\nlet nextNavigationModule: any = null;\nlet nextRouterModule: any = null;\n\nfunction detectFramework() {\n if (detectedFramework !== null) {\n return detectedFramework;\n }\n\n // Only detect on client side\n if (typeof window === 'undefined') {\n detectedFramework = 'generic';\n return detectedFramework;\n }\n\n // Try to detect Next.js App Router (next/navigation)\n try {\n // @ts-ignore - Dynamic detection\n nextNavigationModule = require('next/navigation');\n if (nextNavigationModule?.usePathname) {\n detectedFramework = 'next-app';\n return detectedFramework;\n }\n } catch (e) {\n // Not available\n }\n\n // Try to detect Next.js Pages Router (next/router)\n try {\n // @ts-ignore - Dynamic detection\n nextRouterModule = require('next/router');\n if (nextRouterModule?.useRouter) {\n detectedFramework = 'next-pages';\n return detectedFramework;\n }\n } catch (e) {\n // Not available\n }\n\n // Fallback to generic implementation\n detectedFramework = 'generic';\n return detectedFramework;\n}\n\n/**\n * Generic pathname hook for UI package with auto-detection support\n *\n * This hook automatically detects and uses:\n * 1. Next.js App Router (next/navigation) - if available\n * 2. Next.js Pages Router (next/router) - if available\n * 3. React Router / Vanilla React - listens to popstate/pushState/replaceState events\n *\n * ✅ Works with:\n * - Next.js 13+ (App Router)\n * - Next.js 12 (Pages Router)\n * - React Router v6\n * - React Router v5\n * - Vanilla React with any routing solution\n * - Plain React without routing\n *\n * No setup required in consumer apps - works out of the box!\n */\nexport function usePathname(): string {\n const framework = detectFramework();\n\n // Next.js App Router - use their hook directly\n if (framework === 'next-app' && nextNavigationModule?.usePathname) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return nextNavigationModule.usePathname();\n }\n\n // Next.js Pages Router - use their router\n if (framework === 'next-pages' && nextRouterModule?.useRouter) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const router = nextRouterModule.useRouter();\n return router.pathname || router.asPath?.split('?')[0] || '/';\n }\n\n // Generic implementation for React Router, vanilla React, etc.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useGenericPathname();\n}\n\n/**\n * Generic pathname implementation that works with any React app\n * Listens to browser navigation events to detect route changes\n */\nfunction useGenericPathname(): string {\n const [pathname, setPathname] = useState<string>(() => {\n if (typeof window === 'undefined') {\n return '/';\n }\n return window.location.pathname;\n });\n\n useEffect(() => {\n // Only run on client side\n if (typeof window === 'undefined') {\n return;\n }\n\n // Handler to update pathname when navigation occurs\n const handleLocationChange = () => {\n const newPathname = window.location.pathname;\n setPathname(newPathname);\n };\n\n // Listen to popstate event (back/forward buttons, browser history API)\n window.addEventListener('popstate', handleLocationChange);\n\n // Intercept pushState and replaceState to detect programmatic navigation\n // This is crucial for React Router and other client-side routing solutions\n const originalPushState = history.pushState.bind(history);\n const originalReplaceState = history.replaceState.bind(history);\n\n history.pushState = function (...args) {\n const result = originalPushState(...args);\n handleLocationChange();\n return result;\n };\n\n history.replaceState = function (...args) {\n const result = originalReplaceState(...args);\n handleLocationChange();\n return result;\n };\n\n // Cleanup on unmount\n return () => {\n window.removeEventListener('popstate', handleLocationChange);\n history.pushState = originalPushState;\n history.replaceState = originalReplaceState;\n };\n }, []); // Empty deps - only set up listeners once\n\n return pathname;\n}\n"]}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { useState, useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
let detectedFramework = null;
|
|
4
|
+
let nextNavigationModule = null;
|
|
5
|
+
let nextRouterModule = null;
|
|
6
|
+
function detectFramework() {
|
|
7
|
+
if (detectedFramework !== null) {
|
|
8
|
+
return detectedFramework;
|
|
9
|
+
}
|
|
10
|
+
if (typeof window === "undefined") {
|
|
11
|
+
detectedFramework = "generic";
|
|
12
|
+
return detectedFramework;
|
|
13
|
+
}
|
|
14
|
+
try {
|
|
15
|
+
nextNavigationModule = require("next/navigation");
|
|
16
|
+
if (nextNavigationModule?.usePathname) {
|
|
17
|
+
detectedFramework = "next-app";
|
|
18
|
+
return detectedFramework;
|
|
19
|
+
}
|
|
20
|
+
} catch (e) {
|
|
21
|
+
}
|
|
22
|
+
try {
|
|
23
|
+
nextRouterModule = require("next/router");
|
|
24
|
+
if (nextRouterModule?.useRouter) {
|
|
25
|
+
detectedFramework = "next-pages";
|
|
26
|
+
return detectedFramework;
|
|
27
|
+
}
|
|
28
|
+
} catch (e) {
|
|
29
|
+
}
|
|
30
|
+
detectedFramework = "generic";
|
|
31
|
+
return detectedFramework;
|
|
32
|
+
}
|
|
33
|
+
function usePathname() {
|
|
34
|
+
const framework = detectFramework();
|
|
35
|
+
if (framework === "next-app" && nextNavigationModule?.usePathname) {
|
|
36
|
+
return nextNavigationModule.usePathname();
|
|
37
|
+
}
|
|
38
|
+
if (framework === "next-pages" && nextRouterModule?.useRouter) {
|
|
39
|
+
const router = nextRouterModule.useRouter();
|
|
40
|
+
return router.pathname || router.asPath?.split("?")[0] || "/";
|
|
41
|
+
}
|
|
42
|
+
return useGenericPathname();
|
|
43
|
+
}
|
|
44
|
+
function useGenericPathname() {
|
|
45
|
+
const [pathname, setPathname] = useState(() => {
|
|
46
|
+
if (typeof window === "undefined") {
|
|
47
|
+
return "/";
|
|
48
|
+
}
|
|
49
|
+
return window.location.pathname;
|
|
50
|
+
});
|
|
51
|
+
useEffect(() => {
|
|
52
|
+
if (typeof window === "undefined") {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const handleLocationChange = () => {
|
|
56
|
+
const newPathname = window.location.pathname;
|
|
57
|
+
setPathname(newPathname);
|
|
58
|
+
};
|
|
59
|
+
window.addEventListener("popstate", handleLocationChange);
|
|
60
|
+
const originalPushState = history.pushState.bind(history);
|
|
61
|
+
const originalReplaceState = history.replaceState.bind(history);
|
|
62
|
+
history.pushState = function(...args) {
|
|
63
|
+
const result = originalPushState(...args);
|
|
64
|
+
handleLocationChange();
|
|
65
|
+
return result;
|
|
66
|
+
};
|
|
67
|
+
history.replaceState = function(...args) {
|
|
68
|
+
const result = originalReplaceState(...args);
|
|
69
|
+
handleLocationChange();
|
|
70
|
+
return result;
|
|
71
|
+
};
|
|
72
|
+
return () => {
|
|
73
|
+
window.removeEventListener("popstate", handleLocationChange);
|
|
74
|
+
history.pushState = originalPushState;
|
|
75
|
+
history.replaceState = originalReplaceState;
|
|
76
|
+
};
|
|
77
|
+
}, []);
|
|
78
|
+
return pathname;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export { usePathname };
|
|
82
|
+
//# sourceMappingURL=usePathname.mjs.map
|
|
83
|
+
//# sourceMappingURL=usePathname.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/usePathname.ts"],"names":[],"mappings":"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","file":"usePathname.mjs","sourcesContent":["import { useEffect, useState } from 'react';\n\n/**\n * Detect routing framework at module level (outside component)\n * This ensures we only detect once and don't violate Rules of Hooks\n */\nlet detectedFramework: 'next-app' | 'next-pages' | 'generic' | null = null;\nlet nextNavigationModule: any = null;\nlet nextRouterModule: any = null;\n\nfunction detectFramework() {\n if (detectedFramework !== null) {\n return detectedFramework;\n }\n\n // Only detect on client side\n if (typeof window === 'undefined') {\n detectedFramework = 'generic';\n return detectedFramework;\n }\n\n // Try to detect Next.js App Router (next/navigation)\n try {\n // @ts-ignore - Dynamic detection\n nextNavigationModule = require('next/navigation');\n if (nextNavigationModule?.usePathname) {\n detectedFramework = 'next-app';\n return detectedFramework;\n }\n } catch (e) {\n // Not available\n }\n\n // Try to detect Next.js Pages Router (next/router)\n try {\n // @ts-ignore - Dynamic detection\n nextRouterModule = require('next/router');\n if (nextRouterModule?.useRouter) {\n detectedFramework = 'next-pages';\n return detectedFramework;\n }\n } catch (e) {\n // Not available\n }\n\n // Fallback to generic implementation\n detectedFramework = 'generic';\n return detectedFramework;\n}\n\n/**\n * Generic pathname hook for UI package with auto-detection support\n *\n * This hook automatically detects and uses:\n * 1. Next.js App Router (next/navigation) - if available\n * 2. Next.js Pages Router (next/router) - if available\n * 3. React Router / Vanilla React - listens to popstate/pushState/replaceState events\n *\n * ✅ Works with:\n * - Next.js 13+ (App Router)\n * - Next.js 12 (Pages Router)\n * - React Router v6\n * - React Router v5\n * - Vanilla React with any routing solution\n * - Plain React without routing\n *\n * No setup required in consumer apps - works out of the box!\n */\nexport function usePathname(): string {\n const framework = detectFramework();\n\n // Next.js App Router - use their hook directly\n if (framework === 'next-app' && nextNavigationModule?.usePathname) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return nextNavigationModule.usePathname();\n }\n\n // Next.js Pages Router - use their router\n if (framework === 'next-pages' && nextRouterModule?.useRouter) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const router = nextRouterModule.useRouter();\n return router.pathname || router.asPath?.split('?')[0] || '/';\n }\n\n // Generic implementation for React Router, vanilla React, etc.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useGenericPathname();\n}\n\n/**\n * Generic pathname implementation that works with any React app\n * Listens to browser navigation events to detect route changes\n */\nfunction useGenericPathname(): string {\n const [pathname, setPathname] = useState<string>(() => {\n if (typeof window === 'undefined') {\n return '/';\n }\n return window.location.pathname;\n });\n\n useEffect(() => {\n // Only run on client side\n if (typeof window === 'undefined') {\n return;\n }\n\n // Handler to update pathname when navigation occurs\n const handleLocationChange = () => {\n const newPathname = window.location.pathname;\n setPathname(newPathname);\n };\n\n // Listen to popstate event (back/forward buttons, browser history API)\n window.addEventListener('popstate', handleLocationChange);\n\n // Intercept pushState and replaceState to detect programmatic navigation\n // This is crucial for React Router and other client-side routing solutions\n const originalPushState = history.pushState.bind(history);\n const originalReplaceState = history.replaceState.bind(history);\n\n history.pushState = function (...args) {\n const result = originalPushState(...args);\n handleLocationChange();\n return result;\n };\n\n history.replaceState = function (...args) {\n const result = originalReplaceState(...args);\n handleLocationChange();\n return result;\n };\n\n // Cleanup on unmount\n return () => {\n window.removeEventListener('popstate', handleLocationChange);\n history.pushState = originalPushState;\n history.replaceState = originalReplaceState;\n };\n }, []); // Empty deps - only set up listeners once\n\n return pathname;\n}\n"]}
|
package/dist/icons.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.tsx"],"names":[],"mappings":"AACA,cAAc,qBAAqB,CAAC"}
|
package/dist/icons.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./assets/Icon/index');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.keys(index).forEach(function (k) {
|
|
8
|
+
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function () { return index[k]; }
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=icons.js.map
|
|
14
|
+
//# sourceMappingURL=icons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"icons.js","sourcesContent":[]}
|
package/dist/icons.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"icons.mjs","sourcesContent":[]}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
export interface CurrencyFormatOptions {
|
|
2
|
+
/**
|
|
3
|
+
* Thousand separator character
|
|
4
|
+
* @default ',' (International format)
|
|
5
|
+
*/
|
|
6
|
+
thousandSeparator?: string | boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Decimal separator character
|
|
9
|
+
* @default '.' (International format)
|
|
10
|
+
*/
|
|
11
|
+
decimalSeparator?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Number of decimal places
|
|
14
|
+
* @default 2
|
|
15
|
+
*/
|
|
16
|
+
decimalScale?: number;
|
|
17
|
+
/**
|
|
18
|
+
* Whether to use fixed decimal scale
|
|
19
|
+
* @default false
|
|
20
|
+
*/
|
|
21
|
+
fixedDecimalScale?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Allow negative numbers
|
|
24
|
+
* @default false
|
|
25
|
+
*/
|
|
26
|
+
allowNegative?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Currency symbol
|
|
29
|
+
* @default 'đ'
|
|
30
|
+
*/
|
|
31
|
+
currency?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Currency position
|
|
34
|
+
* @default 'suffix'
|
|
35
|
+
*/
|
|
36
|
+
currencyPosition?: 'prefix' | 'suffix';
|
|
37
|
+
/**
|
|
38
|
+
* Show Vietnamese text reading
|
|
39
|
+
* @default false
|
|
40
|
+
*/
|
|
41
|
+
showVietnameseText?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Vietnamese text unit
|
|
44
|
+
* @default 'đồng'
|
|
45
|
+
*/
|
|
46
|
+
vietnameseTextUnit?: string;
|
|
47
|
+
/**
|
|
48
|
+
* Locale for formatting
|
|
49
|
+
* @default 'vi-VN'
|
|
50
|
+
*/
|
|
51
|
+
locale?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Maximum length for integer part (before decimal)
|
|
54
|
+
* @default 14
|
|
55
|
+
*/
|
|
56
|
+
maxIntegerLength?: number;
|
|
57
|
+
/**
|
|
58
|
+
* Maximum length for decimal part (after decimal)
|
|
59
|
+
* @default 6
|
|
60
|
+
*/
|
|
61
|
+
maxDecimalLength?: number;
|
|
62
|
+
/**
|
|
63
|
+
* Show shortened currency display (k, tr, tỷ)
|
|
64
|
+
* @default false
|
|
65
|
+
*/
|
|
66
|
+
shortenedCurrencyDisplay?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Whether to round the number to remove decimal places
|
|
69
|
+
* @default false
|
|
70
|
+
*/
|
|
71
|
+
isRound?: boolean;
|
|
72
|
+
}
|
|
73
|
+
export interface CurrencyFormatResult {
|
|
74
|
+
/**
|
|
75
|
+
* Raw numeric value
|
|
76
|
+
*/
|
|
77
|
+
value: number;
|
|
78
|
+
/**
|
|
79
|
+
* Formatted value with thousand separators
|
|
80
|
+
*/
|
|
81
|
+
formatted: string;
|
|
82
|
+
/**
|
|
83
|
+
* Formatted value with currency symbol
|
|
84
|
+
*/
|
|
85
|
+
formattedWithCurrency: string;
|
|
86
|
+
/**
|
|
87
|
+
* Vietnamese text reading
|
|
88
|
+
*/
|
|
89
|
+
vietnameseText: string;
|
|
90
|
+
/**
|
|
91
|
+
* Shortened currency text (k, tr, tỷ)
|
|
92
|
+
*/
|
|
93
|
+
shortenedCurrencyText: string;
|
|
94
|
+
/**
|
|
95
|
+
* Display text (formatted + currency or vietnamese text based on options)
|
|
96
|
+
*/
|
|
97
|
+
displayText: string;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Function to format currency values with Vietnamese text support
|
|
101
|
+
* @param value - The numeric value to format
|
|
102
|
+
* @param options - Formatting options
|
|
103
|
+
* @returns Formatted currency result
|
|
104
|
+
*/
|
|
105
|
+
export declare function formatCurrency(value: string | number | null | undefined, options?: CurrencyFormatOptions): CurrencyFormatResult;
|
|
106
|
+
//# sourceMappingURL=formatCurrency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatCurrency.d.ts","sourceRoot":"","sources":["../../src/lib/formatCurrency.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAErC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAEvC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EACzC,OAAO,GAAE,qBAA0B,GAClC,oBAAoB,CAoQtB"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var readVietnameseNumber = require('read-vietnamese-number');
|
|
4
|
+
|
|
5
|
+
function formatCurrency(value, options = {}) {
|
|
6
|
+
const {
|
|
7
|
+
thousandSeparator = ",",
|
|
8
|
+
decimalSeparator = ".",
|
|
9
|
+
decimalScale = 2,
|
|
10
|
+
fixedDecimalScale = false,
|
|
11
|
+
currency = "\u0111",
|
|
12
|
+
currencyPosition = "suffix",
|
|
13
|
+
showVietnameseText = false,
|
|
14
|
+
vietnameseTextUnit = "\u0111\u1ED3ng",
|
|
15
|
+
maxIntegerLength = 14,
|
|
16
|
+
maxDecimalLength = 6,
|
|
17
|
+
shortenedCurrencyDisplay = false,
|
|
18
|
+
isRound = false
|
|
19
|
+
} = options;
|
|
20
|
+
let numericValue = 0;
|
|
21
|
+
if (value !== null && value !== void 0 && value !== "") {
|
|
22
|
+
if (typeof value === "string") {
|
|
23
|
+
const cleanValue = value.replace(/[^\d,.]/g, "");
|
|
24
|
+
let parseValue = cleanValue;
|
|
25
|
+
if (decimalSeparator === "," && thousandSeparator === ".") {
|
|
26
|
+
parseValue = cleanValue.replace(/,/g, ".");
|
|
27
|
+
} else if (decimalSeparator === "." && thousandSeparator === ",") {
|
|
28
|
+
parseValue = cleanValue.replace(/,/g, "");
|
|
29
|
+
}
|
|
30
|
+
numericValue = parseFloat(parseValue) || 0;
|
|
31
|
+
} else {
|
|
32
|
+
numericValue = value;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (numericValue < 0) {
|
|
36
|
+
numericValue = 0;
|
|
37
|
+
}
|
|
38
|
+
const applyLengthConstraints = (num) => {
|
|
39
|
+
const numStr = num.toString();
|
|
40
|
+
const [integerPart, decimalPart] = numStr.split(".");
|
|
41
|
+
if (integerPart && integerPart.length > maxIntegerLength) {
|
|
42
|
+
const limitedInteger = integerPart.slice(0, maxIntegerLength);
|
|
43
|
+
const limitedDecimal = decimalPart ? decimalPart.slice(0, maxDecimalLength) : "";
|
|
44
|
+
return parseFloat(limitedDecimal ? `${limitedInteger}.${limitedDecimal}` : limitedInteger);
|
|
45
|
+
}
|
|
46
|
+
if (decimalPart && decimalPart.length > maxDecimalLength) {
|
|
47
|
+
const limitedDecimal = decimalPart.slice(0, maxDecimalLength);
|
|
48
|
+
return parseFloat(`${integerPart}.${limitedDecimal}`);
|
|
49
|
+
}
|
|
50
|
+
return num;
|
|
51
|
+
};
|
|
52
|
+
numericValue = applyLengthConstraints(numericValue);
|
|
53
|
+
if (isRound) {
|
|
54
|
+
numericValue = Math.round(numericValue);
|
|
55
|
+
}
|
|
56
|
+
const formatNumber = (num) => {
|
|
57
|
+
if (thousandSeparator === false) {
|
|
58
|
+
if (isRound) {
|
|
59
|
+
return num.toFixed(fixedDecimalScale ? Math.min(decimalScale, maxDecimalLength) : 0);
|
|
60
|
+
} else {
|
|
61
|
+
if (fixedDecimalScale && decimalScale > 0) {
|
|
62
|
+
const numStr2 = num.toString();
|
|
63
|
+
const [integerPart2, decimalPart2] = numStr2.split(".");
|
|
64
|
+
const targetDecimals = Math.min(decimalScale, maxDecimalLength);
|
|
65
|
+
const currentDecimals = decimalPart2 || "";
|
|
66
|
+
const formattedDecimals = currentDecimals.slice(0, targetDecimals).padEnd(targetDecimals, "0");
|
|
67
|
+
return `${integerPart2}.${formattedDecimals}`;
|
|
68
|
+
}
|
|
69
|
+
return num.toString();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
const numStr = num.toString();
|
|
73
|
+
const [integerPart, decimalPart] = numStr.split(".");
|
|
74
|
+
let formattedInteger = integerPart || "0";
|
|
75
|
+
if (thousandSeparator && formattedInteger.length > 3) {
|
|
76
|
+
const separator = typeof thousandSeparator === "string" ? thousandSeparator : ",";
|
|
77
|
+
formattedInteger = formattedInteger.replace(/\B(?=(\d{3})+(?!\d))/g, separator);
|
|
78
|
+
}
|
|
79
|
+
let formattedDecimal = "";
|
|
80
|
+
if (decimalPart || fixedDecimalScale) {
|
|
81
|
+
const maxDecimals = Math.min(decimalScale, maxDecimalLength);
|
|
82
|
+
const decimals = decimalPart || "";
|
|
83
|
+
if (fixedDecimalScale) {
|
|
84
|
+
if (isRound) {
|
|
85
|
+
const rounded = Math.round(num * Math.pow(10, maxDecimals)) / Math.pow(10, maxDecimals);
|
|
86
|
+
const roundedStr = rounded.toString();
|
|
87
|
+
const [, roundedDecimal] = roundedStr.split(".");
|
|
88
|
+
formattedDecimal = (roundedDecimal || "").padEnd(maxDecimals, "0").slice(0, maxDecimals);
|
|
89
|
+
} else {
|
|
90
|
+
formattedDecimal = decimals.slice(0, maxDecimals);
|
|
91
|
+
if (maxDecimals > 0) {
|
|
92
|
+
formattedDecimal = formattedDecimal.padEnd(maxDecimals, "0");
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
if (formattedDecimal && !formattedDecimal.match(/^0+$/)) {
|
|
96
|
+
formattedDecimal = decimalSeparator + formattedDecimal;
|
|
97
|
+
} else if (maxDecimals > 0 && (decimals.length > 0 || !isRound)) {
|
|
98
|
+
formattedDecimal = decimalSeparator + formattedDecimal;
|
|
99
|
+
} else {
|
|
100
|
+
formattedDecimal = "";
|
|
101
|
+
}
|
|
102
|
+
} else {
|
|
103
|
+
formattedDecimal = decimals.slice(0, maxDecimals);
|
|
104
|
+
if (formattedDecimal) {
|
|
105
|
+
formattedDecimal = decimalSeparator + formattedDecimal;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return formattedInteger + formattedDecimal;
|
|
110
|
+
};
|
|
111
|
+
const formatted = formatNumber(numericValue);
|
|
112
|
+
const formattedWithCurrency = currencyPosition === "prefix" ? `${currency}${formatted}` : `${formatted}${currency}`;
|
|
113
|
+
let vietnameseText = "";
|
|
114
|
+
if (showVietnameseText && numericValue > 0) {
|
|
115
|
+
try {
|
|
116
|
+
const config = new readVietnameseNumber.ReadingConfig();
|
|
117
|
+
if (vietnameseTextUnit) {
|
|
118
|
+
config.unit = [vietnameseTextUnit];
|
|
119
|
+
}
|
|
120
|
+
const result = readVietnameseNumber.doReadNumber(config, numericValue.toString());
|
|
121
|
+
vietnameseText = result.charAt(0).toUpperCase() + result.slice(1);
|
|
122
|
+
} catch (error) {
|
|
123
|
+
if (!(error instanceof readVietnameseNumber.InvalidFormatError || error instanceof readVietnameseNumber.InvalidNumberError)) {
|
|
124
|
+
console.warn("Error generating Vietnamese text:", error);
|
|
125
|
+
}
|
|
126
|
+
vietnameseText = "";
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
let shortenedCurrencyText = "";
|
|
130
|
+
if (shortenedCurrencyDisplay && numericValue > 0) {
|
|
131
|
+
try {
|
|
132
|
+
let shortValue = 0;
|
|
133
|
+
let unit = "";
|
|
134
|
+
if (numericValue >= 1e9) {
|
|
135
|
+
shortValue = numericValue / 1e9;
|
|
136
|
+
unit = "t\u1EF7";
|
|
137
|
+
} else if (numericValue >= 1e6) {
|
|
138
|
+
shortValue = numericValue / 1e6;
|
|
139
|
+
unit = "tr";
|
|
140
|
+
} else if (numericValue >= 1e3) {
|
|
141
|
+
shortValue = numericValue / 1e3;
|
|
142
|
+
unit = "k";
|
|
143
|
+
} else {
|
|
144
|
+
shortenedCurrencyText = formatted;
|
|
145
|
+
unit = "";
|
|
146
|
+
}
|
|
147
|
+
if (unit) {
|
|
148
|
+
const formatShortened = (num) => {
|
|
149
|
+
const numStr = num.toString();
|
|
150
|
+
const [integerPart, decimalPart] = numStr.split(".");
|
|
151
|
+
let formattedInteger = integerPart || "0";
|
|
152
|
+
if (formattedInteger.length > 3) {
|
|
153
|
+
formattedInteger = formattedInteger.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
154
|
+
}
|
|
155
|
+
let formattedDecimal = "";
|
|
156
|
+
if (decimalPart) {
|
|
157
|
+
const maxDecimals = Math.min(decimalScale, 2);
|
|
158
|
+
let decimals = decimalPart.slice(0, maxDecimals);
|
|
159
|
+
decimals = decimals.replace(/0+$/, "");
|
|
160
|
+
if (decimals) {
|
|
161
|
+
formattedDecimal = "." + decimals;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return formattedInteger + formattedDecimal;
|
|
165
|
+
};
|
|
166
|
+
const displayValue = formatShortened(shortValue);
|
|
167
|
+
shortenedCurrencyText = `${displayValue} ${unit}`;
|
|
168
|
+
}
|
|
169
|
+
} catch (error) {
|
|
170
|
+
console.warn("Error generating shortened currency text:", error);
|
|
171
|
+
shortenedCurrencyText = "";
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
const displayText = shortenedCurrencyDisplay && shortenedCurrencyText ? shortenedCurrencyText : showVietnameseText && vietnameseText ? vietnameseText : formattedWithCurrency;
|
|
175
|
+
return {
|
|
176
|
+
value: numericValue,
|
|
177
|
+
formatted,
|
|
178
|
+
formattedWithCurrency,
|
|
179
|
+
vietnameseText,
|
|
180
|
+
shortenedCurrencyText,
|
|
181
|
+
displayText
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
exports.formatCurrency = formatCurrency;
|
|
186
|
+
//# sourceMappingURL=formatCurrency.js.map
|
|
187
|
+
//# sourceMappingURL=formatCurrency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/formatCurrency.ts"],"names":["numStr","integerPart","decimalPart","ReadingConfig","doReadNumber","InvalidFormatError","InvalidNumberError"],"mappings":"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","file":"formatCurrency.js","sourcesContent":["import {\n doReadNumber,\n InvalidFormatError,\n InvalidNumberError,\n ReadingConfig,\n} from 'read-vietnamese-number';\n\nexport interface CurrencyFormatOptions {\n /**\n * Thousand separator character\n * @default ',' (International format)\n */\n thousandSeparator?: string | boolean;\n\n /**\n * Decimal separator character\n * @default '.' (International format)\n */\n decimalSeparator?: string;\n\n /**\n * Number of decimal places\n * @default 2\n */\n decimalScale?: number;\n\n /**\n * Whether to use fixed decimal scale\n * @default false\n */\n fixedDecimalScale?: boolean;\n\n /**\n * Allow negative numbers\n * @default false\n */\n allowNegative?: boolean;\n\n /**\n * Currency symbol\n * @default 'đ'\n */\n currency?: string;\n\n /**\n * Currency position\n * @default 'suffix'\n */\n currencyPosition?: 'prefix' | 'suffix';\n\n /**\n * Show Vietnamese text reading\n * @default false\n */\n showVietnameseText?: boolean;\n\n /**\n * Vietnamese text unit\n * @default 'đồng'\n */\n vietnameseTextUnit?: string;\n\n /**\n * Locale for formatting\n * @default 'vi-VN'\n */\n locale?: string;\n\n /**\n * Maximum length for integer part (before decimal)\n * @default 14\n */\n maxIntegerLength?: number;\n\n /**\n * Maximum length for decimal part (after decimal)\n * @default 6\n */\n maxDecimalLength?: number;\n\n /**\n * Show shortened currency display (k, tr, tỷ)\n * @default false\n */\n shortenedCurrencyDisplay?: boolean;\n\n /**\n * Whether to round the number to remove decimal places\n * @default false\n */\n isRound?: boolean;\n}\n\nexport interface CurrencyFormatResult {\n /**\n * Raw numeric value\n */\n value: number;\n\n /**\n * Formatted value with thousand separators\n */\n formatted: string;\n\n /**\n * Formatted value with currency symbol\n */\n formattedWithCurrency: string;\n\n /**\n * Vietnamese text reading\n */\n vietnameseText: string;\n\n /**\n * Shortened currency text (k, tr, tỷ)\n */\n shortenedCurrencyText: string;\n\n /**\n * Display text (formatted + currency or vietnamese text based on options)\n */\n displayText: string;\n}\n\n/**\n * Function to format currency values with Vietnamese text support\n * @param value - The numeric value to format\n * @param options - Formatting options\n * @returns Formatted currency result\n */\nexport function formatCurrency(\n value: string | number | null | undefined,\n options: CurrencyFormatOptions = {},\n): CurrencyFormatResult {\n const {\n thousandSeparator = ',',\n decimalSeparator = '.',\n decimalScale = 2,\n fixedDecimalScale = false,\n currency = 'đ',\n currencyPosition = 'suffix',\n showVietnameseText = false,\n vietnameseTextUnit = 'đồng',\n maxIntegerLength = 14,\n maxDecimalLength = 6,\n shortenedCurrencyDisplay = false,\n isRound = false,\n } = options;\n\n // Parse input value\n let numericValue = 0;\n if (value !== null && value !== undefined && value !== '') {\n if (typeof value === 'string') {\n // Only allow digits, comma, and dots\n const cleanValue = value.replace(/[^\\d,.]/g, '');\n\n // Handle different separator formats\n let parseValue = cleanValue;\n if (decimalSeparator === ',' && thousandSeparator === '.') {\n // Vietnamese format: thousand='.', decimal=','\n // Replace comma with dot for parsing (since parseFloat expects dot as decimal)\n parseValue = cleanValue.replace(/,/g, '.');\n } else if (decimalSeparator === '.' && thousandSeparator === ',') {\n // International format: thousand=',', decimal='.'\n // Remove thousand separators (commas) and keep dots as decimal\n parseValue = cleanValue.replace(/,/g, '');\n }\n\n numericValue = parseFloat(parseValue) || 0;\n } else {\n numericValue = value;\n }\n }\n\n // Force positive values only\n if (numericValue < 0) {\n numericValue = 0;\n }\n\n // Apply length constraints with configurable decimal places\n const applyLengthConstraints = (num: number): number => {\n const numStr = num.toString();\n const [integerPart, decimalPart] = numStr.split('.');\n\n // Limit integer part length\n if (integerPart && integerPart.length > maxIntegerLength) {\n const limitedInteger = integerPart.slice(0, maxIntegerLength);\n const limitedDecimal = decimalPart ? decimalPart.slice(0, maxDecimalLength) : '';\n return parseFloat(limitedDecimal ? `${limitedInteger}.${limitedDecimal}` : limitedInteger);\n }\n\n // Limit decimal part to maxDecimalLength\n if (decimalPart && decimalPart.length > maxDecimalLength) {\n const limitedDecimal = decimalPart.slice(0, maxDecimalLength);\n return parseFloat(`${integerPart}.${limitedDecimal}`);\n }\n\n return num;\n };\n\n numericValue = applyLengthConstraints(numericValue);\n\n // Apply rounding if isRound option is enabled\n if (isRound) {\n numericValue = Math.round(numericValue);\n }\n\n // Format number with thousand separators\n const formatNumber = (num: number): string => {\n if (thousandSeparator === false) {\n if (isRound) {\n return num.toFixed(fixedDecimalScale ? Math.min(decimalScale, maxDecimalLength) : 0);\n } else {\n // When not rounding, format to specified decimal places without using toFixed\n if (fixedDecimalScale && decimalScale > 0) {\n const numStr = num.toString();\n const [integerPart, decimalPart] = numStr.split('.');\n const targetDecimals = Math.min(decimalScale, maxDecimalLength);\n const currentDecimals = decimalPart || '';\n\n // Truncate or pad to exact decimal places\n const formattedDecimals = currentDecimals\n .slice(0, targetDecimals)\n .padEnd(targetDecimals, '0');\n return `${integerPart}.${formattedDecimals}`;\n }\n return num.toString();\n }\n }\n\n // Format with thousand separators\n const numStr = num.toString();\n const [integerPart, decimalPart] = numStr.split('.');\n\n // Format integer part with thousand separators\n let formattedInteger = integerPart || '0';\n if (thousandSeparator && formattedInteger.length > 3) {\n const separator = typeof thousandSeparator === 'string' ? thousandSeparator : ',';\n formattedInteger = formattedInteger.replace(/\\B(?=(\\d{3})+(?!\\d))/g, separator);\n }\n\n // Format decimal part\n let formattedDecimal = '';\n if (decimalPart || fixedDecimalScale) {\n const maxDecimals = Math.min(decimalScale, maxDecimalLength);\n const decimals = decimalPart || '';\n\n if (fixedDecimalScale) {\n if (isRound) {\n // When rounding, use toFixed-like behavior but respect original separators\n const rounded = Math.round(num * Math.pow(10, maxDecimals)) / Math.pow(10, maxDecimals);\n const roundedStr = rounded.toString();\n const [, roundedDecimal] = roundedStr.split('.');\n formattedDecimal = (roundedDecimal || '').padEnd(maxDecimals, '0').slice(0, maxDecimals);\n } else {\n // When not rounding, truncate to specified decimal places without padding zeros unless needed\n formattedDecimal = decimals.slice(0, maxDecimals);\n // Pad with zeros only if we want fixed decimal scale\n if (maxDecimals > 0) {\n formattedDecimal = formattedDecimal.padEnd(maxDecimals, '0');\n }\n }\n\n // Only show decimal part if it's not all zeros (smart decimal display)\n if (formattedDecimal && !formattedDecimal.match(/^0+$/)) {\n formattedDecimal = decimalSeparator + formattedDecimal;\n } else if (maxDecimals > 0 && (decimals.length > 0 || !isRound)) {\n // Show decimal part if there are actual decimals or if we're not rounding\n formattedDecimal = decimalSeparator + formattedDecimal;\n } else {\n formattedDecimal = '';\n }\n } else {\n // Not fixed decimal scale - only show existing decimal digits\n formattedDecimal = decimals.slice(0, maxDecimals);\n if (formattedDecimal) {\n formattedDecimal = decimalSeparator + formattedDecimal;\n }\n }\n }\n\n return formattedInteger + formattedDecimal;\n };\n\n const formatted = formatNumber(numericValue);\n\n // Add currency symbol\n const formattedWithCurrency =\n currencyPosition === 'prefix' ? `${currency}${formatted}` : `${formatted}${currency}`;\n\n // Generate Vietnamese text\n let vietnameseText = '';\n if (showVietnameseText && numericValue > 0) {\n try {\n const config = new ReadingConfig();\n if (vietnameseTextUnit) {\n config.unit = [vietnameseTextUnit];\n }\n\n const result = doReadNumber(config, numericValue.toString());\n vietnameseText = result.charAt(0).toUpperCase() + result.slice(1);\n } catch (error) {\n if (!(error instanceof InvalidFormatError || error instanceof InvalidNumberError)) {\n console.warn('Error generating Vietnamese text:', error);\n }\n vietnameseText = '';\n }\n }\n\n // Generate shortened currency text\n let shortenedCurrencyText = '';\n if (shortenedCurrencyDisplay && numericValue > 0) {\n try {\n let shortValue: number = 0;\n let unit: string = '';\n\n if (numericValue >= 1000000000) {\n // >= 1 tỷ\n shortValue = numericValue / 1000000000;\n unit = 'tỷ';\n } else if (numericValue >= 1000000) {\n // >= 1 triệu\n shortValue = numericValue / 1000000;\n unit = 'tr';\n } else if (numericValue >= 1000) {\n // >= 1 nghìn\n shortValue = numericValue / 1000;\n unit = 'k';\n } else {\n // < 1 nghìn - use original formatting\n shortenedCurrencyText = formatted;\n unit = '';\n }\n\n if (unit) {\n // For shortened currency, we want Vietnamese standard format:\n // - Comma for thousands separator (12,312)\n // - Dot for decimal separator (.31)\n // - Result: \"12,312.31 tỷ\"\n\n // Create a custom formatter for shortened currency that always uses Vietnamese format\n const formatShortened = (num: number): string => {\n const numStr = num.toString();\n const [integerPart, decimalPart] = numStr.split('.');\n\n // Format integer part with comma as thousand separator\n let formattedInteger = integerPart || '0';\n if (formattedInteger.length > 3) {\n formattedInteger = formattedInteger.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n }\n\n // Format decimal part with dot as decimal separator\n let formattedDecimal = '';\n if (decimalPart) {\n const maxDecimals = Math.min(decimalScale, 2); // Max 2 decimal places for shortened\n let decimals = decimalPart.slice(0, maxDecimals);\n\n // Remove trailing zeros for clean display\n decimals = decimals.replace(/0+$/, '');\n\n if (decimals) {\n formattedDecimal = '.' + decimals;\n }\n }\n\n return formattedInteger + formattedDecimal;\n };\n\n const displayValue = formatShortened(shortValue);\n shortenedCurrencyText = `${displayValue} ${unit}`;\n }\n } catch (error) {\n console.warn('Error generating shortened currency text:', error);\n shortenedCurrencyText = '';\n }\n }\n\n // Determine display text\n const displayText =\n shortenedCurrencyDisplay && shortenedCurrencyText\n ? shortenedCurrencyText\n : showVietnameseText && vietnameseText\n ? vietnameseText\n : formattedWithCurrency;\n\n return {\n value: numericValue,\n formatted,\n formattedWithCurrency,\n vietnameseText,\n shortenedCurrencyText,\n displayText,\n };\n}\n"]}
|