@lerianstudio/sindarian-ui 1.2.0 → 1.3.0-beta.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/charts/chart.d.ts +64 -0
- package/dist/charts/chart.d.ts.map +1 -0
- package/dist/charts/chart.js +232 -0
- package/dist/charts/index.d.ts +3 -0
- package/dist/charts/index.d.ts.map +1 -0
- package/dist/charts/index.js +11 -0
- package/dist/components/breadcrumb/get-breadcrumb-paths.js +5 -2
- package/dist/components/form/date-time-picker-field/index.js +1 -1
- package/dist/components/form/file-upload-field/index.d.ts +52 -0
- package/dist/components/form/file-upload-field/index.d.ts.map +1 -0
- package/dist/components/form/file-upload-field/index.js +64 -0
- package/dist/components/form/index.d.ts +3 -0
- package/dist/components/form/index.d.ts.map +1 -1
- package/dist/components/form/index.js +3 -0
- package/dist/components/form/radio-group-field/index.d.ts +32 -0
- package/dist/components/form/radio-group-field/index.d.ts.map +1 -0
- package/dist/components/form/radio-group-field/index.js +36 -0
- package/dist/components/form/renderable-label.d.ts +35 -0
- package/dist/components/form/renderable-label.d.ts.map +1 -0
- package/dist/components/form/renderable-label.js +57 -0
- package/dist/components/form/textarea-field/index.d.ts +31 -0
- package/dist/components/form/textarea-field/index.d.ts.map +1 -0
- package/dist/components/form/textarea-field/index.js +23 -0
- package/dist/components/table/id-table-cell.js +5 -2
- package/dist/components/ui/accordion/index.d.ts +14 -0
- package/dist/components/ui/accordion/index.d.ts.map +1 -0
- package/dist/components/ui/accordion/index.js +62 -0
- package/dist/components/ui/alert-dialog/index.d.ts +15 -0
- package/dist/components/ui/alert-dialog/index.d.ts.map +1 -0
- package/dist/components/ui/alert-dialog/index.js +84 -0
- package/dist/components/ui/autocomplete/index.d.ts +1 -1
- package/dist/components/ui/autocomplete/index.d.ts.map +1 -1
- package/dist/components/ui/autocomplete/index.js +45 -9
- package/dist/components/ui/badge/index.d.ts.map +1 -1
- package/dist/components/ui/badge/index.js +2 -2
- package/dist/components/ui/button/index.d.ts.map +1 -1
- package/dist/components/ui/button/index.js +1 -1
- package/dist/components/ui/copy-field/index.d.ts +56 -0
- package/dist/components/ui/copy-field/index.d.ts.map +1 -0
- package/dist/components/ui/copy-field/index.js +155 -0
- package/dist/components/ui/dialog/styles.css +3 -3
- package/dist/components/ui/file-upload/index.d.ts +94 -0
- package/dist/components/ui/file-upload/index.d.ts.map +1 -0
- package/dist/components/ui/file-upload/index.js +237 -0
- package/dist/components/ui/hover-card/index.d.ts +7 -0
- package/dist/components/ui/hover-card/index.d.ts.map +1 -0
- package/dist/components/ui/hover-card/index.js +51 -0
- package/dist/components/ui/icon-button/styles.css +24 -24
- package/dist/components/ui/input/index.d.ts.map +1 -1
- package/dist/components/ui/input/index.js +6 -5
- package/dist/components/ui/input/styles.css +6 -2
- package/dist/components/ui/otp-input/index.d.ts.map +1 -1
- package/dist/components/ui/otp-input/index.js +1 -1
- package/dist/components/ui/qr-code/index.d.ts +26 -0
- package/dist/components/ui/qr-code/index.d.ts.map +1 -0
- package/dist/components/ui/qr-code/index.js +27 -0
- package/dist/components/ui/radio-group/index.d.ts +6 -0
- package/dist/components/ui/radio-group/index.d.ts.map +1 -0
- package/dist/components/ui/radio-group/index.js +48 -0
- package/dist/components/ui/scroll-area/index.d.ts +6 -0
- package/dist/components/ui/scroll-area/index.d.ts.map +1 -0
- package/dist/components/ui/scroll-area/index.js +49 -0
- package/dist/components/ui/sidebar/index.d.ts +1 -0
- package/dist/components/ui/sidebar/index.d.ts.map +1 -1
- package/dist/components/ui/sidebar/index.js +1 -0
- package/dist/components/ui/sidebar/next-router.cjs +119 -0
- package/dist/components/ui/sidebar/next-router.d.cts +7 -0
- package/dist/components/ui/sidebar/sidebar-item-button.d.ts +2 -2
- package/dist/components/ui/sidebar/sidebar-item-button.d.ts.map +1 -1
- package/dist/components/ui/sidebar/sidebar-item-button.js +3 -5
- package/dist/components/ui/sidebar/sidebar-item-icon-button.d.ts +3 -3
- package/dist/components/ui/sidebar/sidebar-item-icon-button.d.ts.map +1 -1
- package/dist/components/ui/sidebar/sidebar-item-icon-button.js +5 -7
- package/dist/components/ui/sidebar/sidebar-item.d.ts.map +1 -1
- package/dist/components/ui/sidebar/sidebar-item.js +3 -2
- package/dist/components/ui/sidebar/sidebar-router.d.ts +82 -0
- package/dist/components/ui/sidebar/sidebar-router.d.ts.map +1 -0
- package/dist/components/ui/sidebar/sidebar-router.js +126 -0
- package/dist/components/ui/toast/index.d.ts +1 -1
- package/dist/components/ui/toast/index.d.ts.map +1 -1
- package/dist/components/ui/toggle-group/index.d.ts +18 -0
- package/dist/components/ui/toggle-group/index.d.ts.map +1 -0
- package/dist/components/ui/toggle-group/index.js +87 -0
- package/dist/domain/blotter/index.d.ts +40 -0
- package/dist/domain/blotter/index.d.ts.map +1 -0
- package/dist/domain/blotter/index.js +16 -0
- package/dist/domain/delinquency-aging/aging-buckets.d.ts +57 -0
- package/dist/domain/delinquency-aging/aging-buckets.d.ts.map +1 -0
- package/dist/domain/delinquency-aging/aging-buckets.js +110 -0
- package/dist/domain/delinquency-aging/index.d.ts +71 -0
- package/dist/domain/delinquency-aging/index.d.ts.map +1 -0
- package/dist/domain/delinquency-aging/index.js +213 -0
- package/dist/domain/figure/index.d.ts +30 -0
- package/dist/domain/figure/index.d.ts.map +1 -0
- package/dist/domain/figure/index.js +18 -0
- package/dist/domain/format.d.ts +79 -0
- package/dist/domain/format.d.ts.map +1 -0
- package/dist/domain/format.js +137 -0
- package/dist/domain/index.d.ts +23 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +43 -0
- package/dist/domain/key-id/index.d.ts +31 -0
- package/dist/domain/key-id/index.d.ts.map +1 -0
- package/dist/domain/key-id/index.js +174 -0
- package/dist/domain/ledger-sheet/index.d.ts +45 -0
- package/dist/domain/ledger-sheet/index.d.ts.map +1 -0
- package/dist/domain/ledger-sheet/index.js +28 -0
- package/dist/domain/money-diff.d.ts +28 -0
- package/dist/domain/money-diff.d.ts.map +1 -0
- package/dist/domain/money-diff.js +48 -0
- package/dist/domain/money-math.d.ts +32 -0
- package/dist/domain/money-math.d.ts.map +1 -0
- package/dist/domain/money-math.js +104 -0
- package/dist/domain/money-text/index.d.ts +37 -0
- package/dist/domain/money-text/index.d.ts.map +1 -0
- package/dist/domain/money-text/index.js +115 -0
- package/dist/domain/section-label/index.d.ts +21 -0
- package/dist/domain/section-label/index.d.ts.map +1 -0
- package/dist/domain/section-label/index.js +13 -0
- package/dist/domain/status-rail/index.d.ts +40 -0
- package/dist/domain/status-rail/index.d.ts.map +1 -0
- package/dist/domain/status-rail/index.js +72 -0
- package/dist/domain/threshold-gauge/index.d.ts +84 -0
- package/dist/domain/threshold-gauge/index.d.ts.map +1 -0
- package/dist/domain/threshold-gauge/index.js +157 -0
- package/dist/enterprise/alert-banner/index.d.ts +30 -0
- package/dist/enterprise/alert-banner/index.d.ts.map +1 -0
- package/dist/enterprise/alert-banner/index.js +24 -0
- package/dist/enterprise/app-shell/index.d.ts +61 -0
- package/dist/enterprise/app-shell/index.d.ts.map +1 -0
- package/dist/enterprise/app-shell/index.js +87 -0
- package/dist/enterprise/cursor-pager/index.d.ts +21 -0
- package/dist/enterprise/cursor-pager/index.d.ts.map +1 -0
- package/dist/enterprise/cursor-pager/index.js +26 -0
- package/dist/enterprise/data-table/index.d.ts +88 -0
- package/dist/enterprise/data-table/index.d.ts.map +1 -0
- package/dist/enterprise/data-table/index.js +245 -0
- package/dist/enterprise/date-range-picker/index.d.ts +37 -0
- package/dist/enterprise/date-range-picker/index.d.ts.map +1 -0
- package/dist/enterprise/date-range-picker/index.js +92 -0
- package/dist/enterprise/detail-panel/index.d.ts +54 -0
- package/dist/enterprise/detail-panel/index.d.ts.map +1 -0
- package/dist/enterprise/detail-panel/index.js +20 -0
- package/dist/enterprise/empty-state/index.d.ts +32 -0
- package/dist/enterprise/empty-state/index.d.ts.map +1 -0
- package/dist/enterprise/empty-state/index.js +13 -0
- package/dist/enterprise/index.d.ts +26 -0
- package/dist/enterprise/index.d.ts.map +1 -0
- package/dist/enterprise/index.js +39 -0
- package/dist/enterprise/number-input/index.d.ts +55 -0
- package/dist/enterprise/number-input/index.d.ts.map +1 -0
- package/dist/enterprise/number-input/index.js +252 -0
- package/dist/enterprise/search-input/index.d.ts +32 -0
- package/dist/enterprise/search-input/index.d.ts.map +1 -0
- package/dist/enterprise/search-input/index.js +121 -0
- package/dist/enterprise/stat-card/index.d.ts +43 -0
- package/dist/enterprise/stat-card/index.d.ts.map +1 -0
- package/dist/enterprise/stat-card/index.js +67 -0
- package/dist/enterprise/status-badge/index.d.ts +31 -0
- package/dist/enterprise/status-badge/index.d.ts.map +1 -0
- package/dist/enterprise/status-badge/index.js +120 -0
- package/dist/enterprise/use-is-mobile.d.ts +20 -0
- package/dist/enterprise/use-is-mobile.d.ts.map +1 -0
- package/dist/enterprise/use-is-mobile.js +68 -0
- package/dist/enterprise/virtualized-table/index.d.ts +26 -0
- package/dist/enterprise/virtualized-table/index.d.ts.map +1 -0
- package/dist/enterprise/virtualized-table/index.js +114 -0
- package/dist/esm/charts/chart.d.ts +64 -0
- package/dist/esm/charts/chart.d.ts.map +1 -0
- package/dist/esm/charts/chart.js +191 -0
- package/dist/esm/charts/index.d.ts +3 -0
- package/dist/esm/charts/index.d.ts.map +1 -0
- package/dist/esm/charts/index.js +3 -0
- package/dist/esm/components/breadcrumb/get-breadcrumb-paths.d.ts +10 -0
- package/dist/esm/components/breadcrumb/get-breadcrumb-paths.d.ts.map +1 -0
- package/dist/esm/components/breadcrumb/get-breadcrumb-paths.js +12 -0
- package/dist/esm/components/breadcrumb/index.d.ts +11 -0
- package/dist/esm/components/breadcrumb/index.d.ts.map +1 -0
- package/dist/esm/components/breadcrumb/index.js +6 -0
- package/dist/esm/components/card/account-card/index.d.ts +32 -0
- package/dist/esm/components/card/account-card/index.d.ts.map +1 -0
- package/dist/esm/components/card/account-card/index.js +53 -0
- package/dist/esm/components/card/basic-card/index.d.ts +6 -0
- package/dist/esm/components/card/basic-card/index.d.ts.map +1 -0
- package/dist/esm/components/card/basic-card/index.js +14 -0
- package/dist/esm/components/card/dashboard-card/index.d.ts +5 -0
- package/dist/esm/components/card/dashboard-card/index.d.ts.map +1 -0
- package/dist/esm/components/card/dashboard-card/index.js +14 -0
- package/dist/esm/components/card/entity-card/index.d.ts +22 -0
- package/dist/esm/components/card/entity-card/index.d.ts.map +1 -0
- package/dist/esm/components/card/entity-card/index.js +48 -0
- package/dist/esm/components/card/index.d.ts +5 -0
- package/dist/esm/components/card/index.d.ts.map +1 -0
- package/dist/esm/components/card/index.js +4 -0
- package/dist/esm/components/dialog/confirmation-dialog/index.d.ts +16 -0
- package/dist/esm/components/dialog/confirmation-dialog/index.d.ts.map +1 -0
- package/dist/esm/components/dialog/confirmation-dialog/index.js +25 -0
- package/dist/esm/components/dialog/confirmation-dialog/use-confirm-dialog.d.ts +31 -0
- package/dist/esm/components/dialog/confirmation-dialog/use-confirm-dialog.d.ts.map +1 -0
- package/dist/esm/components/dialog/confirmation-dialog/use-confirm-dialog.js +49 -0
- package/dist/esm/components/dialog/index.d.ts +4 -0
- package/dist/esm/components/dialog/index.d.ts.map +1 -0
- package/dist/esm/components/dialog/index.js +3 -0
- package/dist/esm/components/dialog/large-dialog/index.d.ts +11 -0
- package/dist/esm/components/dialog/large-dialog/index.d.ts.map +1 -0
- package/dist/esm/components/dialog/large-dialog/index.js +16 -0
- package/dist/esm/components/entity-box/index.d.ts +17 -0
- package/dist/esm/components/entity-box/index.d.ts.map +1 -0
- package/dist/esm/components/entity-box/index.js +31 -0
- package/dist/esm/components/entity-data-table/index.d.ts +17 -0
- package/dist/esm/components/entity-data-table/index.d.ts.map +1 -0
- package/dist/esm/components/entity-data-table/index.js +17 -0
- package/dist/esm/components/form/combo-box-field/index.d.ts +14 -0
- package/dist/esm/components/form/combo-box-field/index.d.ts.map +1 -0
- package/dist/esm/components/form/combo-box-field/index.js +28 -0
- package/dist/esm/components/form/country-field/index.d.ts +5 -0
- package/dist/esm/components/form/country-field/index.d.ts.map +1 -0
- package/dist/esm/components/form/country-field/index.js +7 -0
- package/dist/esm/components/form/date-picker-field/index.d.ts +21 -0
- package/dist/esm/components/form/date-picker-field/index.d.ts.map +1 -0
- package/dist/esm/components/form/date-picker-field/index.js +38 -0
- package/dist/esm/components/form/date-range-field/index.d.ts +21 -0
- package/dist/esm/components/form/date-range-field/index.d.ts.map +1 -0
- package/dist/esm/components/form/date-range-field/index.js +17 -0
- package/dist/esm/components/form/date-time-picker-field/index.d.ts +23 -0
- package/dist/esm/components/form/date-time-picker-field/index.d.ts.map +1 -0
- package/dist/esm/components/form/date-time-picker-field/index.js +73 -0
- package/dist/esm/components/form/file-upload-field/index.d.ts +52 -0
- package/dist/esm/components/form/file-upload-field/index.d.ts.map +1 -0
- package/dist/esm/components/form/file-upload-field/index.js +60 -0
- package/dist/esm/components/form/index.d.ts +16 -0
- package/dist/esm/components/form/index.d.ts.map +1 -0
- package/dist/esm/components/form/index.js +15 -0
- package/dist/esm/components/form/input-field/index.d.ts +26 -0
- package/dist/esm/components/form/input-field/index.d.ts.map +1 -0
- package/dist/esm/components/form/input-field/index.js +10 -0
- package/dist/esm/components/form/otp-field/index.d.ts +18 -0
- package/dist/esm/components/form/otp-field/index.d.ts.map +1 -0
- package/dist/esm/components/form/otp-field/index.js +15 -0
- package/dist/esm/components/form/pagination-limit-field/index.d.ts +9 -0
- package/dist/esm/components/form/pagination-limit-field/index.d.ts.map +1 -0
- package/dist/esm/components/form/pagination-limit-field/index.js +6 -0
- package/dist/esm/components/form/password-field/index.d.ts +14 -0
- package/dist/esm/components/form/password-field/index.d.ts.map +1 -0
- package/dist/esm/components/form/password-field/index.js +10 -0
- package/dist/esm/components/form/radio-group-field/index.d.ts +32 -0
- package/dist/esm/components/form/radio-group-field/index.d.ts.map +1 -0
- package/dist/esm/components/form/radio-group-field/index.js +32 -0
- package/dist/esm/components/form/renderable-label.d.ts +35 -0
- package/dist/esm/components/form/renderable-label.d.ts.map +1 -0
- package/dist/esm/components/form/renderable-label.js +54 -0
- package/dist/esm/components/form/select-field/index.d.ts +20 -0
- package/dist/esm/components/form/select-field/index.d.ts.map +1 -0
- package/dist/esm/components/form/select-field/index.js +16 -0
- package/dist/esm/components/form/state-field/index.d.ts +10 -0
- package/dist/esm/components/form/state-field/index.d.ts.map +1 -0
- package/dist/esm/components/form/state-field/index.js +35 -0
- package/dist/esm/components/form/switch-field/index.d.ts +15 -0
- package/dist/esm/components/form/switch-field/index.d.ts.map +1 -0
- package/dist/esm/components/form/switch-field/index.js +7 -0
- package/dist/esm/components/form/textarea-field/index.d.ts +31 -0
- package/dist/esm/components/form/textarea-field/index.d.ts.map +1 -0
- package/dist/esm/components/form/textarea-field/index.js +19 -0
- package/dist/esm/components/page/index.d.ts +4 -0
- package/dist/esm/components/page/index.d.ts.map +1 -0
- package/dist/esm/components/page/index.js +11 -0
- package/dist/esm/components/page-header/index.d.ts +33 -0
- package/dist/esm/components/page-header/index.d.ts.map +1 -0
- package/dist/esm/components/page-header/index.js +40 -0
- package/dist/esm/components/pagination/index.d.ts +8 -0
- package/dist/esm/components/pagination/index.d.ts.map +1 -0
- package/dist/esm/components/pagination/index.js +6 -0
- package/dist/esm/components/table/id-table-cell.d.ts +7 -0
- package/dist/esm/components/table/id-table-cell.d.ts.map +1 -0
- package/dist/esm/components/table/id-table-cell.js +12 -0
- package/dist/esm/components/table/index.d.ts +3 -0
- package/dist/esm/components/table/index.d.ts.map +1 -0
- package/dist/esm/components/table/index.js +2 -0
- package/dist/esm/components/table/locked-table-actions.d.ts +7 -0
- package/dist/esm/components/table/locked-table-actions.d.ts.map +1 -0
- package/dist/esm/components/table/locked-table-actions.js +7 -0
- package/dist/esm/components/table/name-table-cell.d.ts +6 -0
- package/dist/esm/components/table/name-table-cell.d.ts.map +1 -0
- package/dist/esm/components/table/name-table-cell.js +6 -0
- package/dist/esm/components/ui/accordion/index.d.ts +14 -0
- package/dist/esm/components/ui/accordion/index.d.ts.map +1 -0
- package/dist/esm/components/ui/accordion/index.js +24 -0
- package/dist/esm/components/ui/alert/index.d.ts +15 -0
- package/dist/esm/components/ui/alert/index.d.ts.map +1 -0
- package/dist/esm/components/ui/alert/index.js +38 -0
- package/dist/esm/components/ui/alert-dialog/index.d.ts +15 -0
- package/dist/esm/components/ui/alert-dialog/index.d.ts.map +1 -0
- package/dist/esm/components/ui/alert-dialog/index.js +39 -0
- package/dist/esm/components/ui/autocomplete/index.d.ts +54 -0
- package/dist/esm/components/ui/autocomplete/index.d.ts.map +1 -0
- package/dist/esm/components/ui/autocomplete/index.js +312 -0
- package/dist/esm/components/ui/autosize-textarea/index.d.ts +15 -0
- package/dist/esm/components/ui/autosize-textarea/index.d.ts.map +1 -0
- package/dist/esm/components/ui/autosize-textarea/index.js +51 -0
- package/dist/esm/components/ui/avatar/index.d.ts +7 -0
- package/dist/esm/components/ui/avatar/index.d.ts.map +1 -0
- package/dist/esm/components/ui/avatar/index.js +14 -0
- package/dist/esm/components/ui/badge/index.d.ts +11 -0
- package/dist/esm/components/ui/badge/index.d.ts.map +1 -0
- package/dist/esm/components/ui/badge/index.js +29 -0
- package/dist/esm/components/ui/breadcrumb/index.d.ts +12 -0
- package/dist/esm/components/ui/breadcrumb/index.d.ts.map +1 -0
- package/dist/esm/components/ui/breadcrumb/index.js +27 -0
- package/dist/esm/components/ui/button/index.d.ts +22 -0
- package/dist/esm/components/ui/button/index.d.ts.map +1 -0
- package/dist/esm/components/ui/button/index.js +59 -0
- package/dist/esm/components/ui/calendar/index.d.ts +9 -0
- package/dist/esm/components/ui/calendar/index.d.ts.map +1 -0
- package/dist/esm/components/ui/calendar/index.js +79 -0
- package/dist/esm/components/ui/card/index.d.ts +10 -0
- package/dist/esm/components/ui/card/index.d.ts.map +1 -0
- package/dist/esm/components/ui/card/index.js +24 -0
- package/dist/esm/components/ui/checkbox/index.d.ts +5 -0
- package/dist/esm/components/ui/checkbox/index.d.ts.map +1 -0
- package/dist/esm/components/ui/checkbox/index.js +9 -0
- package/dist/esm/components/ui/collapsible/index.d.ts +6 -0
- package/dist/esm/components/ui/collapsible/index.d.ts.map +1 -0
- package/dist/esm/components/ui/collapsible/index.js +13 -0
- package/dist/esm/components/ui/command/index.d.ts +14 -0
- package/dist/esm/components/ui/command/index.d.ts.map +1 -0
- package/dist/esm/components/ui/command/index.js +51 -0
- package/dist/esm/components/ui/copy-field/index.d.ts +56 -0
- package/dist/esm/components/ui/copy-field/index.d.ts.map +1 -0
- package/dist/esm/components/ui/copy-field/index.js +119 -0
- package/dist/esm/components/ui/dialog/index.d.ts +16 -0
- package/dist/esm/components/ui/dialog/index.d.ts.map +1 -0
- package/dist/esm/components/ui/dialog/index.js +36 -0
- package/dist/esm/components/ui/dropdown-menu/index.d.ts +27 -0
- package/dist/esm/components/ui/dropdown-menu/index.d.ts.map +1 -0
- package/dist/esm/components/ui/dropdown-menu/index.js +57 -0
- package/dist/esm/components/ui/field/index.d.ts +25 -0
- package/dist/esm/components/ui/field/index.d.ts.map +1 -0
- package/dist/esm/components/ui/field/index.js +68 -0
- package/dist/esm/components/ui/file-upload/index.d.ts +94 -0
- package/dist/esm/components/ui/file-upload/index.d.ts.map +1 -0
- package/dist/esm/components/ui/file-upload/index.js +200 -0
- package/dist/esm/components/ui/form.d.ts +39 -0
- package/dist/esm/components/ui/form.d.ts.map +1 -0
- package/dist/esm/components/ui/form.js +67 -0
- package/dist/esm/components/ui/hover-card/index.d.ts +7 -0
- package/dist/esm/components/ui/hover-card/index.d.ts.map +1 -0
- package/dist/esm/components/ui/hover-card/index.js +14 -0
- package/dist/esm/components/ui/icon-button/index.d.ts +13 -0
- package/dist/esm/components/ui/icon-button/index.d.ts.map +1 -0
- package/dist/esm/components/ui/icon-button/index.js +31 -0
- package/dist/esm/components/ui/input/adornment.d.ts +9 -0
- package/dist/esm/components/ui/input/adornment.d.ts.map +1 -0
- package/dist/esm/components/ui/input/adornment.js +17 -0
- package/dist/esm/components/ui/input/index.d.ts +18 -0
- package/dist/esm/components/ui/input/index.d.ts.map +1 -0
- package/dist/esm/components/ui/input/index.js +60 -0
- package/dist/esm/components/ui/label/index.d.ts +7 -0
- package/dist/esm/components/ui/label/index.d.ts.map +1 -0
- package/dist/esm/components/ui/label/index.js +10 -0
- package/dist/esm/components/ui/loading-button/index.d.ts +8 -0
- package/dist/esm/components/ui/loading-button/index.d.ts.map +1 -0
- package/dist/esm/components/ui/loading-button/index.js +7 -0
- package/dist/esm/components/ui/multiple-select/index.d.ts +91 -0
- package/dist/esm/components/ui/multiple-select/index.d.ts.map +1 -0
- package/dist/esm/components/ui/multiple-select/index.js +196 -0
- package/dist/esm/components/ui/otp-input/index.d.ts +13 -0
- package/dist/esm/components/ui/otp-input/index.d.ts.map +1 -0
- package/dist/esm/components/ui/otp-input/index.js +21 -0
- package/dist/esm/components/ui/paper/index.d.ts +4 -0
- package/dist/esm/components/ui/paper/index.d.ts.map +1 -0
- package/dist/esm/components/ui/paper/index.js +5 -0
- package/dist/esm/components/ui/paper-collapsible/index.d.ts +9 -0
- package/dist/esm/components/ui/paper-collapsible/index.d.ts.map +1 -0
- package/dist/esm/components/ui/paper-collapsible/index.js +19 -0
- package/dist/esm/components/ui/popover/index.d.ts +8 -0
- package/dist/esm/components/ui/popover/index.d.ts.map +1 -0
- package/dist/esm/components/ui/popover/index.js +17 -0
- package/dist/esm/components/ui/progress/index.d.ts +8 -0
- package/dist/esm/components/ui/progress/index.d.ts.map +1 -0
- package/dist/esm/components/ui/progress/index.js +8 -0
- package/dist/esm/components/ui/qr-code/index.d.ts +26 -0
- package/dist/esm/components/ui/qr-code/index.d.ts.map +1 -0
- package/dist/esm/components/ui/qr-code/index.js +24 -0
- package/dist/esm/components/ui/radio-group/index.d.ts +6 -0
- package/dist/esm/components/ui/radio-group/index.d.ts.map +1 -0
- package/dist/esm/components/ui/radio-group/index.js +12 -0
- package/dist/esm/components/ui/scroll-area/index.d.ts +6 -0
- package/dist/esm/components/ui/scroll-area/index.d.ts.map +1 -0
- package/dist/esm/components/ui/scroll-area/index.js +13 -0
- package/dist/esm/components/ui/select/index.d.ts +18 -0
- package/dist/esm/components/ui/select/index.d.ts.map +1 -0
- package/dist/esm/components/ui/select/index.js +47 -0
- package/dist/esm/components/ui/separator/index.d.ts +5 -0
- package/dist/esm/components/ui/separator/index.d.ts.map +1 -0
- package/dist/esm/components/ui/separator/index.js +8 -0
- package/dist/esm/components/ui/sheet/index.d.ts +19 -0
- package/dist/esm/components/ui/sheet/index.d.ts.map +1 -0
- package/dist/esm/components/ui/sheet/index.js +59 -0
- package/dist/esm/components/ui/sidebar/index.d.ts +11 -0
- package/dist/esm/components/ui/sidebar/index.d.ts.map +1 -0
- package/dist/esm/components/ui/sidebar/index.js +10 -0
- package/dist/esm/components/ui/sidebar/next-router.cjs +119 -0
- package/dist/esm/components/ui/sidebar/next-router.d.cts +7 -0
- package/dist/esm/components/ui/sidebar/sidebar-back-button.d.ts +3 -0
- package/dist/esm/components/ui/sidebar/sidebar-back-button.d.ts.map +1 -0
- package/dist/esm/components/ui/sidebar/sidebar-back-button.js +5 -0
- package/dist/esm/components/ui/sidebar/sidebar-components.d.ts +23 -0
- package/dist/esm/components/ui/sidebar/sidebar-components.d.ts.map +1 -0
- package/dist/esm/components/ui/sidebar/sidebar-components.js +15 -0
- package/dist/esm/components/ui/sidebar/sidebar-expand-button.d.ts +7 -0
- package/dist/esm/components/ui/sidebar/sidebar-expand-button.d.ts.map +1 -0
- package/dist/esm/components/ui/sidebar/sidebar-expand-button.js +12 -0
- package/dist/esm/components/ui/sidebar/sidebar-item-button.d.ts +12 -0
- package/dist/esm/components/ui/sidebar/sidebar-item-button.d.ts.map +1 -0
- package/dist/esm/components/ui/sidebar/sidebar-item-button.js +18 -0
- package/dist/esm/components/ui/sidebar/sidebar-item-collapsible.d.ts +12 -0
- package/dist/esm/components/ui/sidebar/sidebar-item-collapsible.d.ts.map +1 -0
- package/dist/esm/components/ui/sidebar/sidebar-item-collapsible.js +44 -0
- package/dist/esm/components/ui/sidebar/sidebar-item-icon-button.d.ts +12 -0
- package/dist/esm/components/ui/sidebar/sidebar-item-icon-button.d.ts.map +1 -0
- package/dist/esm/components/ui/sidebar/sidebar-item-icon-button.js +14 -0
- package/dist/esm/components/ui/sidebar/sidebar-item.d.ts +13 -0
- package/dist/esm/components/ui/sidebar/sidebar-item.d.ts.map +1 -0
- package/dist/esm/components/ui/sidebar/sidebar-item.js +16 -0
- package/dist/esm/components/ui/sidebar/sidebar-provider.d.ts +12 -0
- package/dist/esm/components/ui/sidebar/sidebar-provider.d.ts.map +1 -0
- package/dist/esm/components/ui/sidebar/sidebar-provider.js +51 -0
- package/dist/esm/components/ui/sidebar/sidebar-root.d.ts +3 -0
- package/dist/esm/components/ui/sidebar/sidebar-root.d.ts.map +1 -0
- package/dist/esm/components/ui/sidebar/sidebar-root.js +20 -0
- package/dist/esm/components/ui/sidebar/sidebar-router.d.ts +82 -0
- package/dist/esm/components/ui/sidebar/sidebar-router.d.ts.map +1 -0
- package/dist/esm/components/ui/sidebar/sidebar-router.js +89 -0
- package/dist/esm/components/ui/skeleton/index.d.ts +3 -0
- package/dist/esm/components/ui/skeleton/index.d.ts.map +1 -0
- package/dist/esm/components/ui/skeleton/index.js +6 -0
- package/dist/esm/components/ui/stepper/index.d.ts +18 -0
- package/dist/esm/components/ui/stepper/index.d.ts.map +1 -0
- package/dist/esm/components/ui/stepper/index.js +20 -0
- package/dist/esm/components/ui/switch/index.d.ts +5 -0
- package/dist/esm/components/ui/switch/index.d.ts.map +1 -0
- package/dist/esm/components/ui/switch/index.js +8 -0
- package/dist/esm/components/ui/table/index.d.ts +21 -0
- package/dist/esm/components/ui/table/index.d.ts.map +1 -0
- package/dist/esm/components/ui/table/index.js +44 -0
- package/dist/esm/components/ui/tabs/index.d.ts +8 -0
- package/dist/esm/components/ui/tabs/index.d.ts.map +1 -0
- package/dist/esm/components/ui/tabs/index.js +17 -0
- package/dist/esm/components/ui/textarea/index.d.ts +4 -0
- package/dist/esm/components/ui/textarea/index.d.ts.map +1 -0
- package/dist/esm/components/ui/textarea/index.js +6 -0
- package/dist/esm/components/ui/time-picker/index.d.ts +18 -0
- package/dist/esm/components/ui/time-picker/index.d.ts.map +1 -0
- package/dist/esm/components/ui/time-picker/index.js +49 -0
- package/dist/esm/components/ui/toast/index.d.ts +18 -0
- package/dist/esm/components/ui/toast/index.d.ts.map +1 -0
- package/dist/esm/components/ui/toast/index.js +2 -0
- package/dist/esm/components/ui/toast/toaster.d.ts +6 -0
- package/dist/esm/components/ui/toast/toaster.d.ts.map +1 -0
- package/dist/esm/components/ui/toast/toaster.js +8 -0
- package/dist/esm/components/ui/toggle-group/index.d.ts +18 -0
- package/dist/esm/components/ui/toggle-group/index.d.ts.map +1 -0
- package/dist/esm/components/ui/toggle-group/index.js +51 -0
- package/dist/esm/components/ui/tooltip/index.d.ts +11 -0
- package/dist/esm/components/ui/tooltip/index.d.ts.map +1 -0
- package/dist/esm/components/ui/tooltip/index.js +28 -0
- package/dist/esm/domain/blotter/index.d.ts +40 -0
- package/dist/esm/domain/blotter/index.d.ts.map +1 -0
- package/dist/esm/domain/blotter/index.js +12 -0
- package/dist/esm/domain/delinquency-aging/aging-buckets.d.ts +57 -0
- package/dist/esm/domain/delinquency-aging/aging-buckets.d.ts.map +1 -0
- package/dist/esm/domain/delinquency-aging/aging-buckets.js +105 -0
- package/dist/esm/domain/delinquency-aging/index.d.ts +71 -0
- package/dist/esm/domain/delinquency-aging/index.d.ts.map +1 -0
- package/dist/esm/domain/delinquency-aging/index.js +209 -0
- package/dist/esm/domain/figure/index.d.ts +30 -0
- package/dist/esm/domain/figure/index.d.ts.map +1 -0
- package/dist/esm/domain/figure/index.js +14 -0
- package/dist/esm/domain/format.d.ts +79 -0
- package/dist/esm/domain/format.d.ts.map +1 -0
- package/dist/esm/domain/format.js +128 -0
- package/dist/esm/domain/index.d.ts +23 -0
- package/dist/esm/domain/index.d.ts.map +1 -0
- package/dist/esm/domain/index.js +19 -0
- package/dist/esm/domain/key-id/index.d.ts +31 -0
- package/dist/esm/domain/key-id/index.d.ts.map +1 -0
- package/dist/esm/domain/key-id/index.js +169 -0
- package/dist/esm/domain/ledger-sheet/index.d.ts +45 -0
- package/dist/esm/domain/ledger-sheet/index.d.ts.map +1 -0
- package/dist/esm/domain/ledger-sheet/index.js +24 -0
- package/dist/esm/domain/money-diff.d.ts +28 -0
- package/dist/esm/domain/money-diff.d.ts.map +1 -0
- package/dist/esm/domain/money-diff.js +45 -0
- package/dist/esm/domain/money-math.d.ts +32 -0
- package/dist/esm/domain/money-math.d.ts.map +1 -0
- package/dist/esm/domain/money-math.js +98 -0
- package/dist/esm/domain/money-text/index.d.ts +37 -0
- package/dist/esm/domain/money-text/index.d.ts.map +1 -0
- package/dist/esm/domain/money-text/index.js +110 -0
- package/dist/esm/domain/section-label/index.d.ts +21 -0
- package/dist/esm/domain/section-label/index.d.ts.map +1 -0
- package/dist/esm/domain/section-label/index.js +10 -0
- package/dist/esm/domain/status-rail/index.d.ts +40 -0
- package/dist/esm/domain/status-rail/index.d.ts.map +1 -0
- package/dist/esm/domain/status-rail/index.js +67 -0
- package/dist/esm/domain/threshold-gauge/index.d.ts +84 -0
- package/dist/esm/domain/threshold-gauge/index.d.ts.map +1 -0
- package/dist/esm/domain/threshold-gauge/index.js +153 -0
- package/dist/esm/enterprise/alert-banner/index.d.ts +30 -0
- package/dist/esm/enterprise/alert-banner/index.d.ts.map +1 -0
- package/dist/esm/enterprise/alert-banner/index.js +21 -0
- package/dist/esm/enterprise/app-shell/index.d.ts +61 -0
- package/dist/esm/enterprise/app-shell/index.d.ts.map +1 -0
- package/dist/esm/enterprise/app-shell/index.js +51 -0
- package/dist/esm/enterprise/cursor-pager/index.d.ts +21 -0
- package/dist/esm/enterprise/cursor-pager/index.d.ts.map +1 -0
- package/dist/esm/enterprise/cursor-pager/index.js +23 -0
- package/dist/esm/enterprise/data-table/index.d.ts +88 -0
- package/dist/esm/enterprise/data-table/index.d.ts.map +1 -0
- package/dist/esm/enterprise/data-table/index.js +242 -0
- package/dist/esm/enterprise/date-range-picker/index.d.ts +37 -0
- package/dist/esm/enterprise/date-range-picker/index.d.ts.map +1 -0
- package/dist/esm/enterprise/date-range-picker/index.js +89 -0
- package/dist/esm/enterprise/detail-panel/index.d.ts +54 -0
- package/dist/esm/enterprise/detail-panel/index.d.ts.map +1 -0
- package/dist/esm/enterprise/detail-panel/index.js +17 -0
- package/dist/esm/enterprise/empty-state/index.d.ts +32 -0
- package/dist/esm/enterprise/empty-state/index.d.ts.map +1 -0
- package/dist/esm/enterprise/empty-state/index.js +10 -0
- package/dist/esm/enterprise/index.d.ts +26 -0
- package/dist/esm/enterprise/index.d.ts.map +1 -0
- package/dist/esm/enterprise/index.js +22 -0
- package/dist/esm/enterprise/number-input/index.d.ts +55 -0
- package/dist/esm/enterprise/number-input/index.d.ts.map +1 -0
- package/dist/esm/enterprise/number-input/index.js +214 -0
- package/dist/esm/enterprise/search-input/index.d.ts +32 -0
- package/dist/esm/enterprise/search-input/index.d.ts.map +1 -0
- package/dist/esm/enterprise/search-input/index.js +85 -0
- package/dist/esm/enterprise/stat-card/index.d.ts +43 -0
- package/dist/esm/enterprise/stat-card/index.d.ts.map +1 -0
- package/dist/esm/enterprise/stat-card/index.js +64 -0
- package/dist/esm/enterprise/status-badge/index.d.ts +31 -0
- package/dist/esm/enterprise/status-badge/index.d.ts.map +1 -0
- package/dist/esm/enterprise/status-badge/index.js +116 -0
- package/dist/esm/enterprise/use-is-mobile.d.ts +20 -0
- package/dist/esm/enterprise/use-is-mobile.d.ts.map +1 -0
- package/dist/esm/enterprise/use-is-mobile.js +31 -0
- package/dist/esm/enterprise/virtualized-table/index.d.ts +26 -0
- package/dist/esm/enterprise/virtualized-table/index.d.ts.map +1 -0
- package/dist/esm/enterprise/virtualized-table/index.js +111 -0
- package/dist/esm/hooks/use-click-away.d.ts +9 -0
- package/dist/esm/hooks/use-click-away.d.ts.map +1 -0
- package/dist/esm/hooks/use-click-away.js +22 -0
- package/dist/esm/hooks/use-pagination.d.ts +13 -0
- package/dist/esm/hooks/use-pagination.d.ts.map +1 -0
- package/dist/esm/hooks/use-pagination.js +38 -0
- package/dist/esm/hooks/use-stepper.d.ts +11 -0
- package/dist/esm/hooks/use-stepper.d.ts.map +1 -0
- package/dist/esm/hooks/use-stepper.js +22 -0
- package/dist/esm/hooks/use-time.d.ts +6 -0
- package/dist/esm/hooks/use-time.d.ts.map +1 -0
- package/dist/esm/hooks/use-time.js +13 -0
- package/dist/esm/hooks/use-toast.d.ts +31 -0
- package/dist/esm/hooks/use-toast.d.ts.map +1 -0
- package/dist/esm/hooks/use-toast.js +63 -0
- package/dist/esm/index.d.ts +69 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +74 -0
- package/dist/esm/lib/storage/get-storage-object.d.ts +2 -0
- package/dist/esm/lib/storage/get-storage-object.d.ts.map +1 -0
- package/dist/esm/lib/storage/get-storage-object.js +17 -0
- package/dist/esm/lib/storage/get-storage.d.ts +2 -0
- package/dist/esm/lib/storage/get-storage.d.ts.map +1 -0
- package/dist/esm/lib/storage/get-storage.js +14 -0
- package/dist/esm/lib/storage/index.d.ts +3 -0
- package/dist/esm/lib/storage/index.d.ts.map +1 -0
- package/dist/esm/lib/storage/index.js +2 -0
- package/dist/esm/lib/typography.d.ts +17 -0
- package/dist/esm/lib/typography.d.ts.map +1 -0
- package/dist/esm/lib/typography.js +16 -0
- package/dist/esm/lib/utils.d.ts +3 -0
- package/dist/esm/lib/utils.d.ts.map +1 -0
- package/dist/esm/lib/utils.js +5 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/public/countries.json +21210 -0
- package/dist/esm/theme/get-theme-script.d.ts +3 -0
- package/dist/esm/theme/get-theme-script.d.ts.map +1 -0
- package/dist/esm/theme/get-theme-script.js +41 -0
- package/dist/esm/theme/index.d.ts +6 -0
- package/dist/esm/theme/index.d.ts.map +1 -0
- package/dist/esm/theme/index.js +4 -0
- package/dist/esm/theme/mode-toggle.d.ts +25 -0
- package/dist/esm/theme/mode-toggle.d.ts.map +1 -0
- package/dist/esm/theme/mode-toggle.js +45 -0
- package/dist/esm/theme/theme-provider.d.ts +38 -0
- package/dist/esm/theme/theme-provider.d.ts.map +1 -0
- package/dist/esm/theme/theme-provider.js +112 -0
- package/dist/esm/toast/helpers.d.ts +16 -0
- package/dist/esm/toast/helpers.d.ts.map +1 -0
- package/dist/esm/toast/helpers.js +29 -0
- package/dist/esm/toast/index.d.ts +3 -0
- package/dist/esm/toast/index.d.ts.map +1 -0
- package/dist/esm/toast/index.js +4 -0
- package/dist/esm/types/metadata-type.d.ts +2 -0
- package/dist/esm/types/metadata-type.d.ts.map +1 -0
- package/dist/esm/types/metadata-type.js +1 -0
- package/dist/esm/utils/countries.cjs +17 -0
- package/dist/esm/utils/countries.d.cts +14 -0
- package/dist/esm/utils/country-utils.d.ts +17 -0
- package/dist/esm/utils/country-utils.d.ts.map +1 -0
- package/dist/esm/utils/country-utils.js +18 -0
- package/dist/esm/utils/currency-codes.d.ts +5 -0
- package/dist/esm/utils/currency-codes.d.ts.map +1 -0
- package/dist/esm/utils/currency-codes.js +181 -0
- package/dist/globals.css +74 -0
- package/dist/hooks/use-toast.d.ts +1 -1
- package/dist/hooks/use-toast.d.ts.map +1 -1
- package/dist/hooks/use-toast.js +4 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -1
- package/dist/lib/storage/get-storage-object.d.ts.map +1 -1
- package/dist/lib/storage/get-storage-object.js +6 -2
- package/dist/lib/typography.d.ts +17 -0
- package/dist/lib/typography.d.ts.map +1 -0
- package/dist/lib/typography.js +19 -0
- package/dist/public/countries.json +21200 -21200
- package/dist/theme/get-theme-script.d.ts +3 -0
- package/dist/theme/get-theme-script.d.ts.map +1 -0
- package/dist/theme/get-theme-script.js +44 -0
- package/dist/theme/index.d.ts +6 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +11 -0
- package/dist/theme/mode-toggle.d.ts +25 -0
- package/dist/theme/mode-toggle.d.ts.map +1 -0
- package/dist/theme/mode-toggle.js +48 -0
- package/dist/theme/theme-provider.d.ts +38 -0
- package/dist/theme/theme-provider.d.ts.map +1 -0
- package/dist/theme/theme-provider.js +149 -0
- package/dist/toast/helpers.d.ts +16 -0
- package/dist/toast/helpers.d.ts.map +1 -0
- package/dist/toast/helpers.js +34 -0
- package/dist/toast/index.d.ts +3 -0
- package/dist/toast/index.d.ts.map +1 -0
- package/dist/toast/index.js +10 -0
- package/dist/utils/countries.cjs +17 -0
- package/dist/utils/countries.d.cts +14 -0
- package/dist/utils/country-utils.js +2 -2
- package/package.json +55 -18
- package/dist/components/ui/label/label.stories.d.ts +0 -5
- package/dist/components/ui/label/label.stories.d.ts.map +0 -1
- package/dist/components/ui/label/label.stories.js +0 -24
- package/dist/components/ui/sidebar/sidebar-provider.test.d.ts +0 -2
- package/dist/components/ui/sidebar/sidebar-provider.test.d.ts.map +0 -1
- package/dist/components/ui/sidebar/sidebar-provider.test.js +0 -170
- package/dist/hooks/use-click-away.test.d.ts +0 -2
- package/dist/hooks/use-click-away.test.d.ts.map +0 -1
- package/dist/hooks/use-click-away.test.js +0 -39
- package/dist/hooks/use-stepper.test.d.ts +0 -2
- package/dist/hooks/use-stepper.test.d.ts.map +0 -1
- package/dist/hooks/use-stepper.test.js +0 -45
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* StatusBadge maps a status/severity string to a Badge variant and a humanized
|
|
4
|
+
* label. Unknown values fall back to a neutral "outline" badge with a
|
|
5
|
+
* title-cased label, so new server enum values never render raw or crash.
|
|
6
|
+
*
|
|
7
|
+
* The variant map is injectable (`variantMap`) and shallow-merges over a
|
|
8
|
+
* generic lifecycle default, so apps extend it with their own domain statuses
|
|
9
|
+
* without forking the component.
|
|
10
|
+
*
|
|
11
|
+
* INVARIANT (WCAG 1.4.1): the bare badge is color-only — the variant tint is the
|
|
12
|
+
* sole carrier of severity. That is a non-color-cue failure for a severity badge
|
|
13
|
+
* (a CRITICAL risk band must read as critical in grayscale and to a color-blind
|
|
14
|
+
* reader). `withIcon` opts the badge into the non-color canon: a leading
|
|
15
|
+
* severity GLYPH plus an sr-only severity word, with the tint as reinforcement
|
|
16
|
+
* only. It is opt-in so existing color-only usage is unaffected.
|
|
17
|
+
*
|
|
18
|
+
* Pure display: no directive, no interactivity. A leading lucide glyph is
|
|
19
|
+
* server-safe, so the component stays RSC-safe for the consuming Next.js app.
|
|
20
|
+
*/
|
|
21
|
+
import { Check, Minus, OctagonX, TriangleAlert } from 'lucide-react';
|
|
22
|
+
import { Badge } from '../../components/ui/badge/index.js';
|
|
23
|
+
import { cn } from '../../lib/utils.js';
|
|
24
|
+
/**
|
|
25
|
+
* Generic lifecycle defaults — extend per-app via the `variantMap` prop.
|
|
26
|
+
*
|
|
27
|
+
* The KEYS are the frozen legacy contract (apps merge their own domain statuses
|
|
28
|
+
* into this map). The VALUES are sindarian-ui Badge variants: sindarian-ui is
|
|
29
|
+
* senior, so the legacy `muted`/`warning` variants resolve to sindarian-ui's
|
|
30
|
+
* `inactive`/`alert`.
|
|
31
|
+
*/
|
|
32
|
+
export const DEFAULT_STATUS_VARIANTS = {
|
|
33
|
+
DRAFT: 'inactive',
|
|
34
|
+
ACTIVE: 'success',
|
|
35
|
+
ENABLED: 'success',
|
|
36
|
+
INACTIVE: 'inactive',
|
|
37
|
+
DISABLED: 'inactive',
|
|
38
|
+
PAUSED: 'alert',
|
|
39
|
+
ARCHIVED: 'inactive',
|
|
40
|
+
QUEUED: 'secondary',
|
|
41
|
+
PENDING: 'alert',
|
|
42
|
+
PROCESSING: 'alert',
|
|
43
|
+
RUNNING: 'alert',
|
|
44
|
+
COMPLETE: 'success',
|
|
45
|
+
COMPLETED: 'success',
|
|
46
|
+
SUCCEEDED: 'success',
|
|
47
|
+
SUCCESS: 'success',
|
|
48
|
+
FAILED: 'destructive',
|
|
49
|
+
ERROR: 'destructive',
|
|
50
|
+
CANCELED: 'inactive',
|
|
51
|
+
CANCELLED: 'inactive',
|
|
52
|
+
EXPIRED: 'inactive',
|
|
53
|
+
OPEN: 'alert',
|
|
54
|
+
RESOLVED: 'success',
|
|
55
|
+
REJECTED: 'destructive',
|
|
56
|
+
CONFIRMED: 'success',
|
|
57
|
+
LOW: 'inactive',
|
|
58
|
+
MEDIUM: 'secondary',
|
|
59
|
+
HIGH: 'alert',
|
|
60
|
+
CRITICAL: 'destructive'
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Variant → non-color severity cue: a distinct glyph + an sr-only severity word.
|
|
64
|
+
* This is the load-bearing cue when `withIcon` is set; the Badge's own tint only
|
|
65
|
+
* reinforces it, so severity survives grayscale and color-vision deficiency.
|
|
66
|
+
*
|
|
67
|
+
* A constant lookup keyed on the Badge variant — the variant already encodes the
|
|
68
|
+
* severity, so the glyph follows the variant rather than re-deriving severity
|
|
69
|
+
* from the raw status. `secondary` is a neutral bucket (e.g. MEDIUM/QUEUED) and,
|
|
70
|
+
* like `inactive`, carries the calm dash glyph. The pure color-carrier variants
|
|
71
|
+
* and the unknown `outline` fallback have no severity semantics, so they render
|
|
72
|
+
* no glyph.
|
|
73
|
+
*/
|
|
74
|
+
const SEVERITY_CUE = {
|
|
75
|
+
success: { Icon: Check, word: 'OK' },
|
|
76
|
+
alert: { Icon: TriangleAlert, word: 'Warning' },
|
|
77
|
+
destructive: { Icon: OctagonX, word: 'Critical' },
|
|
78
|
+
inactive: { Icon: Minus, word: 'Neutral' },
|
|
79
|
+
secondary: { Icon: Minus, word: 'Neutral' }
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Merge a caller's map over the defaults, upper-casing its KEYS.
|
|
83
|
+
*
|
|
84
|
+
* Lookup has always upper-cased the incoming `status`, but sindarian-x merged
|
|
85
|
+
* `variantMap` verbatim — so `{ reconciled: 'success' }` could never match and
|
|
86
|
+
* fell through to the neutral `outline` badge, silently. That was an unstated
|
|
87
|
+
* requirement rather than a design choice: lender's own call sites work around
|
|
88
|
+
* it by hand (`variantMap={{ [reason.toUpperCase()]: 'destructive' }}`).
|
|
89
|
+
* Normalising here is strictly additive — already-uppercase keys are unchanged.
|
|
90
|
+
*/
|
|
91
|
+
function mergeVariants(variantMap) {
|
|
92
|
+
if (!variantMap)
|
|
93
|
+
return DEFAULT_STATUS_VARIANTS;
|
|
94
|
+
const merged = { ...DEFAULT_STATUS_VARIANTS };
|
|
95
|
+
for (const [key, variant] of Object.entries(variantMap)) {
|
|
96
|
+
merged[key.toUpperCase()] = variant;
|
|
97
|
+
}
|
|
98
|
+
return merged;
|
|
99
|
+
}
|
|
100
|
+
function humanize(value) {
|
|
101
|
+
return value
|
|
102
|
+
.toLowerCase()
|
|
103
|
+
.split(/[_\s]+/)
|
|
104
|
+
.map((w) => (w[0] ? w[0].toUpperCase() + w.slice(1) : w))
|
|
105
|
+
.join(' ');
|
|
106
|
+
}
|
|
107
|
+
export function StatusBadge({ status, label, variantMap, withIcon = false, unknownLabel = 'Unknown', className }) {
|
|
108
|
+
if (!status) {
|
|
109
|
+
return (_jsx(Badge, { variant: "outline", className: cn('text-muted-foreground', className), children: label ?? unknownLabel }));
|
|
110
|
+
}
|
|
111
|
+
const variant = mergeVariants(variantMap)[status.toUpperCase()] ?? 'outline';
|
|
112
|
+
// The glyph follows the resolved variant; an unknown/non-severity variant has
|
|
113
|
+
// no cue, so the badge gracefully renders label-only even with withIcon set.
|
|
114
|
+
const cue = withIcon ? SEVERITY_CUE[variant] : undefined;
|
|
115
|
+
return (_jsxs(Badge, { variant: variant, className: cn('gap-1', className), children: [cue ? (_jsxs(_Fragment, { children: [_jsx(cue.Icon, { "aria-hidden": true, className: "size-3.5 shrink-0" }), _jsxs("span", { className: "sr-only", children: [cue.word, ": "] })] })) : null, label ?? humanize(status)] }));
|
|
116
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** The one breakpoint the hook subscribes at. Exported so its tests can bind to
|
|
2
|
+
* it instead of re-stating the number. */
|
|
3
|
+
export declare const MOBILE_BREAKPOINT = 768;
|
|
4
|
+
/**
|
|
5
|
+
* True while the viewport is narrower than the 768px mobile breakpoint.
|
|
6
|
+
*
|
|
7
|
+
* Always false on the FIRST render, server and client alike, so a narrow
|
|
8
|
+
* viewport can never produce a hydration mismatch. The correction lands in a
|
|
9
|
+
* `useEffect`, which runs AFTER the browser paints: on a narrow viewport the
|
|
10
|
+
* first painted frame therefore shows the desktop branch and the mobile branch
|
|
11
|
+
* appears on the next frame. That one frame is the deliberate price of
|
|
12
|
+
* hydration safety — a layout effect would remove it but would also change the
|
|
13
|
+
* render timing every existing consumer is built on.
|
|
14
|
+
*
|
|
15
|
+
* Every reading comes from the media query itself rather than a mix of
|
|
16
|
+
* `matchMedia` and `window.innerWidth`, so the initial value and the change
|
|
17
|
+
* events can never disagree at the breakpoint boundary.
|
|
18
|
+
*/
|
|
19
|
+
export declare function useIsMobile(): boolean;
|
|
20
|
+
//# sourceMappingURL=use-is-mobile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-is-mobile.d.ts","sourceRoot":"","sources":["../../../src/enterprise/use-is-mobile.ts"],"names":[],"mappings":"AAIA;2CAC2C;AAC3C,eAAO,MAAM,iBAAiB,MAAM,CAAA;AAEpC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,YAY1B"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
/** The one breakpoint the hook subscribes at. Exported so its tests can bind to
|
|
4
|
+
* it instead of re-stating the number. */
|
|
5
|
+
export const MOBILE_BREAKPOINT = 768;
|
|
6
|
+
/**
|
|
7
|
+
* True while the viewport is narrower than the 768px mobile breakpoint.
|
|
8
|
+
*
|
|
9
|
+
* Always false on the FIRST render, server and client alike, so a narrow
|
|
10
|
+
* viewport can never produce a hydration mismatch. The correction lands in a
|
|
11
|
+
* `useEffect`, which runs AFTER the browser paints: on a narrow viewport the
|
|
12
|
+
* first painted frame therefore shows the desktop branch and the mobile branch
|
|
13
|
+
* appears on the next frame. That one frame is the deliberate price of
|
|
14
|
+
* hydration safety — a layout effect would remove it but would also change the
|
|
15
|
+
* render timing every existing consumer is built on.
|
|
16
|
+
*
|
|
17
|
+
* Every reading comes from the media query itself rather than a mix of
|
|
18
|
+
* `matchMedia` and `window.innerWidth`, so the initial value and the change
|
|
19
|
+
* events can never disagree at the breakpoint boundary.
|
|
20
|
+
*/
|
|
21
|
+
export function useIsMobile() {
|
|
22
|
+
const [isMobile, setIsMobile] = React.useState(false);
|
|
23
|
+
React.useEffect(() => {
|
|
24
|
+
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
25
|
+
const onChange = () => setIsMobile(mql.matches);
|
|
26
|
+
onChange();
|
|
27
|
+
mql.addEventListener('change', onChange);
|
|
28
|
+
return () => mql.removeEventListener('change', onChange);
|
|
29
|
+
}, []);
|
|
30
|
+
return isMobile;
|
|
31
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type ColumnDef } from '@tanstack/react-table';
|
|
2
|
+
export type VirtualizedTableProps<TData> = {
|
|
3
|
+
/** Same shape as DataTable: standard TanStack `ColumnDef<T>`. */
|
|
4
|
+
columns: ColumnDef<TData, unknown>[];
|
|
5
|
+
/** The full dataset, already in memory. Only the visible window renders. */
|
|
6
|
+
data: TData[];
|
|
7
|
+
/**
|
|
8
|
+
* Row height in px, fed to the virtualizer's `estimateSize`. Rows are
|
|
9
|
+
* rendered at this FIXED height — content taller than `rowHeight` will clip
|
|
10
|
+
* (cells use `truncate`). Use only for flat, single-line rows; this is not a
|
|
11
|
+
* variable-height table. Defaults to 40.
|
|
12
|
+
*/
|
|
13
|
+
rowHeight?: number;
|
|
14
|
+
/**
|
|
15
|
+
* Max height of the scroll viewport (the inner overflow container, NOT the
|
|
16
|
+
* outer wrapper). A `number` is treated as px; a `string` is used verbatim
|
|
17
|
+
* (e.g. `'60vh'`). Defaults to `480` → `480px`.
|
|
18
|
+
*/
|
|
19
|
+
maxHeight?: number | string;
|
|
20
|
+
/** Accessible name announced for the viewport while it is scrollable. */
|
|
21
|
+
scrollAreaLabel?: string;
|
|
22
|
+
/** Applied to the outer wrapper (the scroll container's parent). */
|
|
23
|
+
className?: string;
|
|
24
|
+
};
|
|
25
|
+
export declare function VirtualizedTable<TData>({ columns, data, rowHeight, maxHeight, scrollAreaLabel, className }: VirtualizedTableProps<TData>): import("react").JSX.Element;
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/enterprise/virtualized-table/index.tsx"],"names":[],"mappings":"AA+BA,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,uBAAuB,CAAA;AAK9B,MAAM,MAAM,qBAAqB,CAAC,KAAK,IAAI;IACzC,iEAAiE;IACjE,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAA;IACpC,4EAA4E;IAC5E,IAAI,EAAE,KAAK,EAAE,CAAA;IACb;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC3B,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAKD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,EACtC,OAAO,EACP,IAAI,EACJ,SAAc,EACd,SAAe,EACf,eAAyC,EACzC,SAAS,EACV,EAAE,qBAAqB,CAAC,KAAK,CAAC,+BAiM9B"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* VirtualizedTable — a windowed table for very large, flat datasets.
|
|
5
|
+
*
|
|
6
|
+
* Mirrors DataTable's column/data API (standard TanStack `ColumnDef<T>`, cells
|
|
7
|
+
* receive the row's `original`), so screens reuse the exact same column
|
|
8
|
+
* definitions. The difference is the rendering strategy: where DataTable
|
|
9
|
+
* renders every row, VirtualizedTable renders only the rows inside (and just
|
|
10
|
+
* past) the scroll viewport via `@tanstack/react-virtual`. Tens of thousands of
|
|
11
|
+
* rows stay scroll-smooth because the DOM only ever holds the visible window.
|
|
12
|
+
*
|
|
13
|
+
* Layout is div-based (role="table"/"row"/"cell"), not a real `<table>`:
|
|
14
|
+
* absolute positioning by `virtualItem.start` is incompatible with table
|
|
15
|
+
* layout, so a windowed table cannot use `<tbody>`. The header is a sibling
|
|
16
|
+
* above the scroll region: it stays put by layout (it simply sits above an
|
|
17
|
+
* overflow box), not via `position: sticky`. Inside the scroll container an
|
|
18
|
+
* inner spacer sized to `getTotalSize()` reserves the full scroll height, and
|
|
19
|
+
* each virtual row is absolutely positioned within that spacer.
|
|
20
|
+
*
|
|
21
|
+
* Rows are fixed-height (= `rowHeight`): cell content taller than `rowHeight`
|
|
22
|
+
* will clip — cells use `truncate`. This component is for flat, single-line
|
|
23
|
+
* datasets only; it does NOT measure rows, so it is not suitable for
|
|
24
|
+
* variable-height content.
|
|
25
|
+
*
|
|
26
|
+
* This is deliberately leaner than DataTable: no pagination, selection,
|
|
27
|
+
* keyboard nav, loading or empty affordances — it is the right tool only when
|
|
28
|
+
* the whole dataset is already in memory and the row count is the problem.
|
|
29
|
+
* For server-paged lists, reach for DataTable + CursorPager instead.
|
|
30
|
+
*/
|
|
31
|
+
import { useEffect, useRef, useState } from 'react';
|
|
32
|
+
import { flexRender, getCoreRowModel, useReactTable } from '@tanstack/react-table';
|
|
33
|
+
import { useVirtualizer } from '@tanstack/react-virtual';
|
|
34
|
+
import { cn } from '../../lib/utils.js';
|
|
35
|
+
/** Rows rendered just outside the viewport to keep fast scrolls smooth. */
|
|
36
|
+
const OVERSCAN = 8;
|
|
37
|
+
export function VirtualizedTable({ columns, data, rowHeight = 40, maxHeight = 480, scrollAreaLabel = 'Scrollable table rows', className }) {
|
|
38
|
+
const scrollRef = useRef(null);
|
|
39
|
+
const [isScrollable, setIsScrollable] = useState(false);
|
|
40
|
+
// A number is px; a string is used verbatim (e.g. '60vh').
|
|
41
|
+
const viewportMaxHeight = typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight;
|
|
42
|
+
const table = useReactTable({
|
|
43
|
+
data,
|
|
44
|
+
columns,
|
|
45
|
+
getCoreRowModel: getCoreRowModel()
|
|
46
|
+
});
|
|
47
|
+
const rows = table.getRowModel().rows;
|
|
48
|
+
// Grouped columns (a ColumnDef with nested `columns`) render one header row
|
|
49
|
+
// per depth level, so the header is not always a single row.
|
|
50
|
+
const headerGroups = table.getHeaderGroups();
|
|
51
|
+
const headerRowCount = headerGroups.length;
|
|
52
|
+
// The table's real column geometry is its LEAF columns: a grouped ColumnDef
|
|
53
|
+
// contributes one spanning header cell but no column of its own, so counting
|
|
54
|
+
// top-level defs both under-reports aria-colcount and misplaces every
|
|
55
|
+
// aria-colindex to its right.
|
|
56
|
+
const leafColumns = table.getVisibleLeafColumns();
|
|
57
|
+
const leafPosition = new Map(leafColumns.map((column, i) => [column.id, i]));
|
|
58
|
+
const virtualizer = useVirtualizer({
|
|
59
|
+
count: rows.length,
|
|
60
|
+
getScrollElement: () => scrollRef.current,
|
|
61
|
+
estimateSize: () => rowHeight,
|
|
62
|
+
overscan: OVERSCAN
|
|
63
|
+
});
|
|
64
|
+
const virtualRows = virtualizer.getVirtualItems();
|
|
65
|
+
const totalSize = virtualizer.getTotalSize();
|
|
66
|
+
// `estimateSize` is read through a closure the virtualizer caches per item, so
|
|
67
|
+
// changing rowHeight leaves every already-measured row at its old size until
|
|
68
|
+
// the cache is dropped explicitly.
|
|
69
|
+
useEffect(() => {
|
|
70
|
+
virtualizer.measure();
|
|
71
|
+
}, [rowHeight, virtualizer]);
|
|
72
|
+
useEffect(() => {
|
|
73
|
+
const viewport = scrollRef.current;
|
|
74
|
+
if (!viewport)
|
|
75
|
+
return;
|
|
76
|
+
const updateScrollability = () => {
|
|
77
|
+
const nextIsScrollable = viewport.scrollHeight > viewport.clientHeight ||
|
|
78
|
+
viewport.scrollWidth > viewport.clientWidth;
|
|
79
|
+
setIsScrollable((current) => current === nextIsScrollable ? current : nextIsScrollable);
|
|
80
|
+
};
|
|
81
|
+
updateScrollability();
|
|
82
|
+
if (typeof ResizeObserver === 'undefined')
|
|
83
|
+
return;
|
|
84
|
+
const observer = new ResizeObserver(updateScrollability);
|
|
85
|
+
observer.observe(viewport);
|
|
86
|
+
const content = viewport.firstElementChild;
|
|
87
|
+
if (content)
|
|
88
|
+
observer.observe(content);
|
|
89
|
+
return () => observer.disconnect();
|
|
90
|
+
}, [totalSize, viewportMaxHeight]);
|
|
91
|
+
return (_jsx("div", { className: cn('border-border bg-card text-card-foreground rounded-lg border', className), children: _jsxs("div", { role: "table", "aria-rowcount": rows.length + headerRowCount, "aria-colcount": leafColumns.length, children: [_jsx("div", { role: "rowgroup", className: "bg-card z-10", children: headerGroups.map((headerGroup, groupIndex) => (_jsx("div", { role: "row", "aria-rowindex": groupIndex + 1, className: "border-border flex border-b", children: headerGroup.headers.map((header) => {
|
|
92
|
+
// Anchor the cell on its leftmost leaf column, so a spanning
|
|
93
|
+
// group reports the column it actually starts at rather than
|
|
94
|
+
// its position among its siblings.
|
|
95
|
+
const firstLeaf = header.column.getLeafColumns()[0];
|
|
96
|
+
const start = leafPosition.get(firstLeaf?.id ?? header.column.id);
|
|
97
|
+
return (_jsx("div", { role: "columnheader", "aria-colindex": (start ?? 0) + 1, "aria-colspan": header.colSpan > 1 ? header.colSpan : undefined, style: { flex: `${header.colSpan} 1 0%` },
|
|
98
|
+
// Header height is independent of rowHeight: pinning it to a
|
|
99
|
+
// small rowHeight (32) clipped the uppercase label against its
|
|
100
|
+
// own padding. Padding sizes it; min-h keeps a stable rule.
|
|
101
|
+
className: "text-muted-foreground min-h-10 px-4 py-2.5 text-left text-xs font-medium tracking-wide uppercase", children: header.isPlaceholder
|
|
102
|
+
? null
|
|
103
|
+
: flexRender(header.column.columnDef.header, header.getContext()) }, header.id));
|
|
104
|
+
}) }, headerGroup.id))) }), _jsx("div", { ref: scrollRef, role: "rowgroup", "data-testid": "virtualized-table-viewport", "aria-label": isScrollable ? scrollAreaLabel : undefined, tabIndex: isScrollable ? 0 : undefined, className: "focus-visible:ring-ring relative overflow-auto focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none", style: { maxHeight: viewportMaxHeight }, children: _jsx("div", { role: "presentation", className: "relative w-full", style: { height: totalSize }, children: virtualRows.map((virtualItem) => {
|
|
105
|
+
const row = rows[virtualItem.index];
|
|
106
|
+
return (_jsx("div", { role: "row", "aria-rowindex": virtualItem.index + headerRowCount + 1, "data-index": virtualItem.index, className: "border-border absolute left-0 flex w-full items-center border-b text-sm", style: {
|
|
107
|
+
height: virtualItem.size,
|
|
108
|
+
transform: `translateY(${virtualItem.start}px)`
|
|
109
|
+
}, children: row.getVisibleCells().map((cell, i) => (_jsx("div", { role: "cell", "aria-colindex": i + 1, className: "flex-1 truncate px-4", children: flexRender(cell.column.columnDef.cell, cell.getContext()) }, cell.id))) }, row.id));
|
|
110
|
+
}) }) })] }) }));
|
|
111
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Detects clicks outside of a specified component and triggers a callback function.
|
|
4
|
+
*
|
|
5
|
+
* @param ref Component reference
|
|
6
|
+
* @param onClickAway Callback function to be called when a click is detected outside the component
|
|
7
|
+
*/
|
|
8
|
+
export declare const useClickAway: (ref: React.RefObject<HTMLElement | null>, onClickAway: (event: MouseEvent | TouchEvent) => void) => void;
|
|
9
|
+
//# sourceMappingURL=use-click-away.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-click-away.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-click-away.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GACvB,KAAK,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EACxC,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,KAAK,IAAI,SAoBtD,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Detects clicks outside of a specified component and triggers a callback function.
|
|
4
|
+
*
|
|
5
|
+
* @param ref Component reference
|
|
6
|
+
* @param onClickAway Callback function to be called when a click is detected outside the component
|
|
7
|
+
*/
|
|
8
|
+
export const useClickAway = (ref, onClickAway) => {
|
|
9
|
+
const handleClick = React.useCallback((event) => {
|
|
10
|
+
if (ref.current && !ref.current.contains(event.target)) {
|
|
11
|
+
onClickAway(event);
|
|
12
|
+
}
|
|
13
|
+
}, [ref, onClickAway]);
|
|
14
|
+
React.useEffect(() => {
|
|
15
|
+
document.addEventListener('mousedown', handleClick);
|
|
16
|
+
document.addEventListener('touchend', handleClick);
|
|
17
|
+
return () => {
|
|
18
|
+
document.removeEventListener('mousedown', handleClick);
|
|
19
|
+
document.removeEventListener('touchend', handleClick);
|
|
20
|
+
};
|
|
21
|
+
}, [ref, handleClick]);
|
|
22
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type UsePaginationProps = {
|
|
2
|
+
total?: number;
|
|
3
|
+
};
|
|
4
|
+
export declare function usePagination({ total }: UsePaginationProps): {
|
|
5
|
+
page: number;
|
|
6
|
+
limit: number;
|
|
7
|
+
setLimit: (limit: number) => void;
|
|
8
|
+
setPage: (page: number) => void;
|
|
9
|
+
nextPage: () => void;
|
|
10
|
+
previousPage: () => void;
|
|
11
|
+
};
|
|
12
|
+
export type UsePaginationReturn = ReturnType<typeof usePagination>;
|
|
13
|
+
//# sourceMappingURL=use-pagination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-pagination.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-pagination.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,wBAAgB,aAAa,CAAC,EAAE,KAAS,EAAE,EAAE,kBAAkB;;;sBA8BpC,MAAM;oBARR,MAAM;;;EAwB9B;AAED,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { useState } from 'react';
|
|
2
|
+
export function usePagination({ total = 1 }) {
|
|
3
|
+
const [page, _setPage] = useState(1);
|
|
4
|
+
const [limit, _setLimit] = useState(10);
|
|
5
|
+
const totalPages = Math.ceil(total / limit);
|
|
6
|
+
const nextPage = () => {
|
|
7
|
+
if (page + 1 > totalPages) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
_setPage((page) => page + 1);
|
|
11
|
+
};
|
|
12
|
+
const previousPage = () => {
|
|
13
|
+
if (page - 1 < 1) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
_setPage((page) => page - 1);
|
|
17
|
+
};
|
|
18
|
+
const setPage = (page) => {
|
|
19
|
+
if (page < 1 || page > totalPages) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
_setPage(page);
|
|
23
|
+
};
|
|
24
|
+
const setLimit = (limit) => {
|
|
25
|
+
if (limit < 1) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
_setLimit(limit);
|
|
29
|
+
};
|
|
30
|
+
return {
|
|
31
|
+
page,
|
|
32
|
+
limit,
|
|
33
|
+
setLimit,
|
|
34
|
+
setPage,
|
|
35
|
+
nextPage,
|
|
36
|
+
previousPage
|
|
37
|
+
};
|
|
38
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type UseStepperProps = {
|
|
2
|
+
defaultStep?: number;
|
|
3
|
+
maxSteps?: number;
|
|
4
|
+
};
|
|
5
|
+
export declare const useStepper: ({ defaultStep, maxSteps }: UseStepperProps) => {
|
|
6
|
+
step: number;
|
|
7
|
+
setStep: import("react").Dispatch<import("react").SetStateAction<number>>;
|
|
8
|
+
handleNext: () => void;
|
|
9
|
+
handlePrevious: () => void;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=use-stepper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-stepper.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-stepper.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,2BAGxB,eAAe;;;;;CAyBjB,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useState } from 'react';
|
|
2
|
+
export const useStepper = ({ defaultStep = 0, maxSteps = 2 }) => {
|
|
3
|
+
const [step, setStep] = useState(defaultStep);
|
|
4
|
+
const handleNext = () => {
|
|
5
|
+
if (maxSteps && step >= maxSteps - 1) {
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
setStep((prev) => prev + 1);
|
|
9
|
+
};
|
|
10
|
+
const handlePrevious = () => {
|
|
11
|
+
if (step <= 0) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
setStep((prev) => prev - 1);
|
|
15
|
+
};
|
|
16
|
+
return {
|
|
17
|
+
step,
|
|
18
|
+
setStep,
|
|
19
|
+
handleNext,
|
|
20
|
+
handlePrevious
|
|
21
|
+
};
|
|
22
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-time.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-time.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,wBAA+B,YAAY,SAclE,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export const useTime = ({ interval = 1000, onUpdate }) => {
|
|
3
|
+
const [time, setTime] = React.useState(new Date());
|
|
4
|
+
React.useEffect(() => {
|
|
5
|
+
const timer = setInterval(() => {
|
|
6
|
+
const newTime = new Date();
|
|
7
|
+
setTime(newTime);
|
|
8
|
+
onUpdate?.(newTime);
|
|
9
|
+
}, interval);
|
|
10
|
+
return () => clearInterval(timer);
|
|
11
|
+
}, [interval, onUpdate]);
|
|
12
|
+
return time;
|
|
13
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { ToastActionElement } from '../components/ui/toast/index.js';
|
|
2
|
+
type ToastVariant = 'default' | 'success' | 'warning' | 'destructive';
|
|
3
|
+
type ToasterToast = {
|
|
4
|
+
id: string | number;
|
|
5
|
+
title?: React.ReactNode;
|
|
6
|
+
description?: React.ReactNode;
|
|
7
|
+
variant?: ToastVariant;
|
|
8
|
+
action?: ToastActionElement;
|
|
9
|
+
};
|
|
10
|
+
type Toast = Omit<ToasterToast, 'id'>;
|
|
11
|
+
declare function toast({ title, description, variant, ...rest }: Toast): {
|
|
12
|
+
id: string | number;
|
|
13
|
+
dismiss: () => string | number;
|
|
14
|
+
update: (props: Partial<ToasterToast>) => void;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Backward-compatible hook that wraps Sonner's toast API.
|
|
18
|
+
*
|
|
19
|
+
* Returns the same shape as the original Radix-based useToast:
|
|
20
|
+
* - `toast()` to create a toast
|
|
21
|
+
* - `dismiss()` to dismiss a toast by id (or all if no id)
|
|
22
|
+
* - `toasts` array (always empty -- Sonner manages its own state internally)
|
|
23
|
+
*/
|
|
24
|
+
declare function useToast(): {
|
|
25
|
+
toast: typeof toast;
|
|
26
|
+
dismiss: (toastId?: string | number) => void;
|
|
27
|
+
toasts: ToasterToast[];
|
|
28
|
+
};
|
|
29
|
+
export { useToast, toast };
|
|
30
|
+
export type { ToasterToast, Toast, ToastVariant };
|
|
31
|
+
//# sourceMappingURL=use-toast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-toast.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-toast.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAI/D,KAAK,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAA;AAErE,KAAK,YAAY,GAAG;IAClB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,MAAM,CAAC,EAAE,kBAAkB,CAAA;CAC5B,CAAA;AAED,KAAK,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;AAErC,iBAAS,KAAK,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,KAAK;;;oBA+B1C,OAAO,CAAC,YAAY,CAAC;EAQxC;AAED;;;;;;;GAOG;AACH,iBAAS,QAAQ;;wBAGO,MAAM,GAAG,MAAM;YAOrB,YAAY,EAAE;EAE/B;AAED,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;AAC1B,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,CAAA"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { toast as sonnerToast } from 'sonner';
|
|
3
|
+
const DEFAULT_DURATION = 10000;
|
|
4
|
+
function toast({ title, description, variant, ...rest }) {
|
|
5
|
+
const message = title ?? '';
|
|
6
|
+
const options = {
|
|
7
|
+
description,
|
|
8
|
+
...rest
|
|
9
|
+
};
|
|
10
|
+
let id;
|
|
11
|
+
switch (variant) {
|
|
12
|
+
case 'success':
|
|
13
|
+
options.duration = DEFAULT_DURATION;
|
|
14
|
+
id = sonnerToast.success(message, options);
|
|
15
|
+
break;
|
|
16
|
+
case 'warning':
|
|
17
|
+
options.duration = DEFAULT_DURATION;
|
|
18
|
+
id = sonnerToast.warning(message, options);
|
|
19
|
+
break;
|
|
20
|
+
case 'destructive':
|
|
21
|
+
options.duration = DEFAULT_DURATION;
|
|
22
|
+
id = sonnerToast.error(message, options);
|
|
23
|
+
break;
|
|
24
|
+
default:
|
|
25
|
+
options.duration = DEFAULT_DURATION;
|
|
26
|
+
id = sonnerToast(message, options);
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
id,
|
|
31
|
+
dismiss: () => sonnerToast.dismiss(id),
|
|
32
|
+
update: (props) => {
|
|
33
|
+
sonnerToast(props.title ?? message, {
|
|
34
|
+
id,
|
|
35
|
+
description: props.description ?? description,
|
|
36
|
+
...rest
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Backward-compatible hook that wraps Sonner's toast API.
|
|
43
|
+
*
|
|
44
|
+
* Returns the same shape as the original Radix-based useToast:
|
|
45
|
+
* - `toast()` to create a toast
|
|
46
|
+
* - `dismiss()` to dismiss a toast by id (or all if no id)
|
|
47
|
+
* - `toasts` array (always empty -- Sonner manages its own state internally)
|
|
48
|
+
*/
|
|
49
|
+
function useToast() {
|
|
50
|
+
return {
|
|
51
|
+
toast,
|
|
52
|
+
dismiss: (toastId) => {
|
|
53
|
+
if (toastId !== undefined) {
|
|
54
|
+
sonnerToast.dismiss(toastId);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
sonnerToast.dismiss();
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
toasts: []
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
export { useToast, toast };
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export * from './components/ui/alert/index.js';
|
|
2
|
+
export * from './components/ui/autocomplete/index.js';
|
|
3
|
+
export * from './components/ui/autosize-textarea/index.js';
|
|
4
|
+
export * from './components/ui/avatar/index.js';
|
|
5
|
+
export * from './components/ui/badge/index.js';
|
|
6
|
+
export * from './components/ui/breadcrumb/index.js';
|
|
7
|
+
export * from './components/ui/button/index.js';
|
|
8
|
+
export * from './components/ui/icon-button/index.js';
|
|
9
|
+
export * from './components/ui/calendar/index.js';
|
|
10
|
+
export * from './components/ui/card/index.js';
|
|
11
|
+
export * from './components/ui/checkbox/index.js';
|
|
12
|
+
export * from './components/ui/collapsible/index.js';
|
|
13
|
+
export * from './components/ui/command/index.js';
|
|
14
|
+
export * from './components/ui/copy-field/index.js';
|
|
15
|
+
export * from './components/ui/dialog/index.js';
|
|
16
|
+
export * from './components/ui/dropdown-menu/index.js';
|
|
17
|
+
export * from './components/ui/input/index.js';
|
|
18
|
+
export * from './components/ui/otp-input/index.js';
|
|
19
|
+
export * from './components/ui/label/index.js';
|
|
20
|
+
export * from './components/ui/loading-button/index.js';
|
|
21
|
+
export * from './components/ui/multiple-select/index.js';
|
|
22
|
+
export * from './components/ui/paper/index.js';
|
|
23
|
+
export * from './components/ui/paper-collapsible/index.js';
|
|
24
|
+
export * from './components/ui/popover/index.js';
|
|
25
|
+
export * from './components/ui/progress/index.js';
|
|
26
|
+
export * from './components/ui/qr-code/index.js';
|
|
27
|
+
export * from './components/ui/select/index.js';
|
|
28
|
+
export * from './components/ui/separator/index.js';
|
|
29
|
+
export * from './components/ui/sheet/index.js';
|
|
30
|
+
export * from './components/ui/sidebar/index.js';
|
|
31
|
+
export * from './components/ui/skeleton/index.js';
|
|
32
|
+
export * from './components/ui/stepper/index.js';
|
|
33
|
+
export * from './hooks/use-stepper.js';
|
|
34
|
+
export * from './components/ui/switch/index.js';
|
|
35
|
+
export * from './components/ui/table/index.js';
|
|
36
|
+
export * from './components/ui/tabs/index.js';
|
|
37
|
+
export * from './components/ui/textarea/index.js';
|
|
38
|
+
export * from './components/ui/toast/index.js';
|
|
39
|
+
export * from './components/ui/toast/toaster.js';
|
|
40
|
+
export * from './hooks/use-toast.js';
|
|
41
|
+
export * from './components/ui/time-picker/index.js';
|
|
42
|
+
export * from './components/ui/tooltip/index.js';
|
|
43
|
+
export * from './components/ui/form.js';
|
|
44
|
+
export { Breadcrumb as ApplicationBreadcrumb } from './components/breadcrumb/index.js';
|
|
45
|
+
export * from './components/breadcrumb/get-breadcrumb-paths.js';
|
|
46
|
+
export * from './components/card/index.js';
|
|
47
|
+
export * from './components/dialog/index.js';
|
|
48
|
+
export * from './components/entity-box/index.js';
|
|
49
|
+
export * from './components/entity-data-table/index.js';
|
|
50
|
+
export * from './components/form/index.js';
|
|
51
|
+
export * from './components/page/index.js';
|
|
52
|
+
export * from './components/page-header/index.js';
|
|
53
|
+
export * from './components/pagination/index.js';
|
|
54
|
+
export * from './components/table/index.js';
|
|
55
|
+
export * from './enterprise/index.js';
|
|
56
|
+
export * from './theme/index.js';
|
|
57
|
+
export * from './toast/index.js';
|
|
58
|
+
export * from './charts/index.js';
|
|
59
|
+
export * from './domain/index.js';
|
|
60
|
+
export * from './components/ui/accordion/index.js';
|
|
61
|
+
export * from './components/ui/alert-dialog/index.js';
|
|
62
|
+
export * from './components/ui/file-upload/index.js';
|
|
63
|
+
export * from './components/ui/hover-card/index.js';
|
|
64
|
+
export * from './components/ui/radio-group/index.js';
|
|
65
|
+
export * from './components/ui/scroll-area/index.js';
|
|
66
|
+
export * from './components/ui/toggle-group/index.js';
|
|
67
|
+
export { cn } from './lib/utils.js';
|
|
68
|
+
export * from './lib/typography.js';
|
|
69
|
+
//# sourceMappingURL=index.d.ts.map
|