@hyddenlabs/hydn-ui 0.3.0-alpha.99 → 0.3.1
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 +46 -29
- package/dist/components/branding/google-logo.d.ts +14 -0
- package/dist/components/branding/google-logo.d.ts.map +1 -0
- package/dist/components/branding/google-logo.js +49 -0
- package/dist/components/branding/google-logo.js.map +1 -0
- package/dist/components/branding/hydden-logo.d.ts +14 -0
- package/dist/components/branding/hydden-logo.d.ts.map +1 -0
- package/dist/components/branding/hydden-logo.js +8 -0
- package/dist/components/branding/hydden-logo.js.map +1 -0
- package/dist/components/branding/microsoft-logo.d.ts +14 -0
- package/dist/components/branding/microsoft-logo.d.ts.map +1 -0
- package/dist/components/branding/microsoft-logo.js +25 -0
- package/dist/components/branding/microsoft-logo.js.map +1 -0
- package/dist/components/data-display/avatar/avatar.d.ts +24 -0
- package/dist/components/data-display/avatar/avatar.d.ts.map +1 -0
- package/dist/components/data-display/avatar/avatar.js +25 -0
- package/dist/components/data-display/avatar/avatar.js.map +1 -0
- package/dist/components/data-display/avatar/index.d.ts +3 -0
- package/dist/components/data-display/avatar/index.d.ts.map +1 -0
- package/dist/components/data-display/badge/badge.d.ts +24 -0
- package/dist/components/data-display/badge/badge.d.ts.map +1 -0
- package/dist/components/data-display/badge/badge.js +27 -0
- package/dist/components/data-display/badge/badge.js.map +1 -0
- package/dist/components/data-display/badge/index.d.ts +5 -0
- package/dist/components/data-display/badge/index.d.ts.map +1 -0
- package/dist/components/data-display/badge/status-label.d.ts +25 -0
- package/dist/components/data-display/badge/status-label.d.ts.map +1 -0
- package/dist/components/data-display/badge/status-label.js +63 -0
- package/dist/components/data-display/badge/status-label.js.map +1 -0
- package/dist/components/data-display/chip/chip.d.ts +42 -0
- package/dist/components/data-display/chip/chip.d.ts.map +1 -0
- package/dist/components/data-display/chip/chip.js +79 -0
- package/dist/components/data-display/chip/chip.js.map +1 -0
- package/dist/components/data-display/chip/index.d.ts +3 -0
- package/dist/components/data-display/chip/index.d.ts.map +1 -0
- package/dist/components/data-display/code-block/code-block.d.ts +17 -0
- package/dist/components/data-display/code-block/code-block.d.ts.map +1 -0
- package/dist/components/data-display/code-block/code-block.js +34 -0
- package/dist/components/data-display/code-block/code-block.js.map +1 -0
- package/dist/components/data-display/data-table/data-table.d.ts +226 -0
- package/dist/components/data-display/data-table/data-table.d.ts.map +1 -0
- package/dist/components/data-display/data-table/data-table.js +404 -0
- package/dist/components/data-display/data-table/data-table.js.map +1 -0
- package/dist/components/data-display/data-table/index.d.ts +5 -0
- package/dist/components/data-display/data-table/index.d.ts.map +1 -0
- package/dist/components/data-display/data-table/use-table.d.ts +42 -0
- package/dist/components/data-display/data-table/use-table.d.ts.map +1 -0
- package/dist/components/data-display/data-table/use-table.js +120 -0
- package/dist/components/data-display/data-table/use-table.js.map +1 -0
- package/dist/components/data-display/empty-state/empty-state.d.ts +8 -0
- package/dist/components/data-display/empty-state/empty-state.d.ts.map +1 -0
- package/dist/components/data-display/empty-state/empty-state.js +17 -0
- package/dist/components/data-display/empty-state/empty-state.js.map +1 -0
- package/dist/components/data-display/empty-state/index.d.ts +3 -0
- package/dist/components/data-display/empty-state/index.d.ts.map +1 -0
- package/dist/components/data-display/list/index.d.ts +3 -0
- package/dist/components/data-display/list/index.d.ts.map +1 -0
- package/dist/components/data-display/list/list.d.ts +31 -0
- package/dist/components/data-display/list/list.d.ts.map +1 -0
- package/dist/components/data-display/list/list.js +16 -0
- package/dist/components/data-display/list/list.js.map +1 -0
- package/dist/components/data-display/table/index.d.ts +3 -0
- package/dist/components/data-display/table/index.d.ts.map +1 -0
- package/dist/components/data-display/table/table.d.ts +101 -0
- package/dist/components/data-display/table/table.d.ts.map +1 -0
- package/dist/components/data-display/table/table.js +98 -0
- package/dist/components/data-display/table/table.js.map +1 -0
- package/dist/components/data-display/timeline/index.d.ts +3 -0
- package/dist/components/data-display/timeline/index.d.ts.map +1 -0
- package/dist/components/data-display/timeline/timeline.d.ts +57 -0
- package/dist/components/data-display/timeline/timeline.d.ts.map +1 -0
- package/dist/components/data-display/timeline/timeline.js +52 -0
- package/dist/components/data-display/timeline/timeline.js.map +1 -0
- package/dist/components/feedback/alert/alert.d.ts +27 -0
- package/dist/components/feedback/alert/alert.d.ts.map +1 -0
- package/dist/components/feedback/alert/alert.js +86 -0
- package/dist/components/feedback/alert/alert.js.map +1 -0
- package/dist/components/feedback/alert/index.d.ts +3 -0
- package/dist/components/feedback/alert/index.d.ts.map +1 -0
- package/dist/components/feedback/dialog/delete-dialog.d.ts +41 -0
- package/dist/components/feedback/dialog/delete-dialog.d.ts.map +1 -0
- package/dist/components/feedback/dialog/delete-dialog.js +52 -0
- package/dist/components/feedback/dialog/delete-dialog.js.map +1 -0
- package/dist/components/feedback/dialog/dialog.d.ts +24 -0
- package/dist/components/feedback/dialog/dialog.d.ts.map +1 -0
- package/dist/components/feedback/dialog/dialog.js +15 -0
- package/dist/components/feedback/dialog/dialog.js.map +1 -0
- package/dist/components/feedback/dialog/index.d.ts +5 -0
- package/dist/components/feedback/dialog/index.d.ts.map +1 -0
- package/dist/components/feedback/error-page/error-400.d.ts +22 -0
- package/dist/components/feedback/error-page/error-400.d.ts.map +1 -0
- package/dist/components/feedback/error-page/error-400.js +28 -0
- package/dist/components/feedback/error-page/error-400.js.map +1 -0
- package/dist/components/feedback/error-page/error-401.d.ts +26 -0
- package/dist/components/feedback/error-page/error-401.d.ts.map +1 -0
- package/dist/components/feedback/error-page/error-401.js +33 -0
- package/dist/components/feedback/error-page/error-401.js.map +1 -0
- package/dist/components/feedback/error-page/error-403.d.ts +26 -0
- package/dist/components/feedback/error-page/error-403.d.ts.map +1 -0
- package/dist/components/feedback/error-page/error-403.js +33 -0
- package/dist/components/feedback/error-page/error-403.js.map +1 -0
- package/dist/components/feedback/error-page/error-404.d.ts +26 -0
- package/dist/components/feedback/error-page/error-404.d.ts.map +1 -0
- package/dist/components/feedback/error-page/error-404.js +33 -0
- package/dist/components/feedback/error-page/error-404.js.map +1 -0
- package/dist/components/feedback/error-page/index.d.ts +9 -0
- package/dist/components/feedback/error-page/index.d.ts.map +1 -0
- package/dist/components/feedback/loading-container/index.d.ts +3 -0
- package/dist/components/feedback/loading-container/index.d.ts.map +1 -0
- package/dist/components/feedback/loading-container/loading-container.d.ts +16 -0
- package/dist/components/feedback/loading-container/loading-container.d.ts.map +1 -0
- package/dist/components/feedback/loading-container/loading-container.js +28 -0
- package/dist/components/feedback/loading-container/loading-container.js.map +1 -0
- package/dist/components/feedback/modal/index.d.ts +3 -0
- package/dist/components/feedback/modal/index.d.ts.map +1 -0
- package/dist/components/feedback/modal/modal.d.ts +33 -0
- package/dist/components/feedback/modal/modal.d.ts.map +1 -0
- package/dist/components/feedback/modal/modal.js +88 -0
- package/dist/components/feedback/modal/modal.js.map +1 -0
- package/dist/components/feedback/overlay/useOverlay.d.ts +24 -0
- package/dist/components/feedback/overlay/useOverlay.d.ts.map +1 -0
- package/dist/components/feedback/overlay/useOverlay.js +119 -0
- package/dist/components/feedback/overlay/useOverlay.js.map +1 -0
- package/dist/components/feedback/popover/index.d.ts +3 -0
- package/dist/components/feedback/popover/index.d.ts.map +1 -0
- package/dist/components/feedback/popover/popover.d.ts +25 -0
- package/dist/components/feedback/popover/popover.d.ts.map +1 -0
- package/dist/components/feedback/popover/popover.js +118 -0
- package/dist/components/feedback/popover/popover.js.map +1 -0
- package/dist/components/feedback/progress-bar/index.d.ts +3 -0
- package/dist/components/feedback/progress-bar/index.d.ts.map +1 -0
- package/dist/components/feedback/progress-bar/progress-bar.d.ts +22 -0
- package/dist/components/feedback/progress-bar/progress-bar.d.ts.map +1 -0
- package/dist/components/feedback/progress-bar/progress-bar.js +27 -0
- package/dist/components/feedback/progress-bar/progress-bar.js.map +1 -0
- package/dist/components/feedback/skeleton/index.d.ts +3 -0
- package/dist/components/feedback/skeleton/index.d.ts.map +1 -0
- package/dist/components/feedback/skeleton/skeleton.d.ts +19 -0
- package/dist/components/feedback/skeleton/skeleton.d.ts.map +1 -0
- package/dist/components/feedback/skeleton/skeleton.js +28 -0
- package/dist/components/feedback/skeleton/skeleton.js.map +1 -0
- package/dist/components/feedback/smooth-transition/index.d.ts +3 -0
- package/dist/components/feedback/smooth-transition/index.d.ts.map +1 -0
- package/dist/components/feedback/smooth-transition/smooth-transition.d.ts +68 -0
- package/dist/components/feedback/smooth-transition/smooth-transition.d.ts.map +1 -0
- package/dist/components/feedback/smooth-transition/smooth-transition.js +89 -0
- package/dist/components/feedback/smooth-transition/smooth-transition.js.map +1 -0
- package/dist/components/feedback/spinner/index.d.ts +3 -0
- package/dist/components/feedback/spinner/index.d.ts.map +1 -0
- package/dist/components/feedback/spinner/spinner.d.ts +21 -0
- package/dist/components/feedback/spinner/spinner.d.ts.map +1 -0
- package/dist/components/feedback/spinner/spinner.js +27 -0
- package/dist/components/feedback/spinner/spinner.js.map +1 -0
- package/dist/components/feedback/toast/index.d.ts +3 -0
- package/dist/components/feedback/toast/index.d.ts.map +1 -0
- package/dist/components/feedback/toast/toast.d.ts +23 -0
- package/dist/components/feedback/toast/toast.d.ts.map +1 -0
- package/dist/components/feedback/toast/toast.js +45 -0
- package/dist/components/feedback/toast/toast.js.map +1 -0
- package/dist/components/feedback/tooltip/index.d.ts +3 -0
- package/dist/components/feedback/tooltip/index.d.ts.map +1 -0
- package/dist/components/feedback/tooltip/tooltip.d.ts +39 -0
- package/dist/components/feedback/tooltip/tooltip.d.ts.map +1 -0
- package/dist/components/feedback/tooltip/tooltip.js +129 -0
- package/dist/components/feedback/tooltip/tooltip.js.map +1 -0
- package/dist/components/forms/button/button-with-icon.d.ts +18 -0
- package/dist/components/forms/button/button-with-icon.d.ts.map +1 -0
- package/dist/components/forms/button/button-with-icon.js +15 -0
- package/dist/components/forms/button/button-with-icon.js.map +1 -0
- package/dist/components/forms/button/button.d.ts +66 -0
- package/dist/components/forms/button/button.d.ts.map +1 -0
- package/dist/components/forms/button/button.examples.d.ts +73 -0
- package/dist/components/forms/button/button.examples.d.ts.map +1 -0
- package/dist/components/forms/button/button.js +118 -0
- package/dist/components/forms/button/button.js.map +1 -0
- package/dist/components/forms/button/icon-button.d.ts +23 -0
- package/dist/components/forms/button/icon-button.d.ts.map +1 -0
- package/dist/components/forms/button/icon-button.js +85 -0
- package/dist/components/forms/button/icon-button.js.map +1 -0
- package/dist/components/forms/button/index.d.ts +10 -0
- package/dist/components/forms/button/index.d.ts.map +1 -0
- package/dist/components/forms/button/inline-button.d.ts +45 -0
- package/dist/components/forms/button/inline-button.d.ts.map +1 -0
- package/dist/components/forms/button/inline-button.js +59 -0
- package/dist/components/forms/button/inline-button.js.map +1 -0
- package/dist/components/forms/button-group/button-group.d.ts +20 -0
- package/dist/components/forms/button-group/button-group.d.ts.map +1 -0
- package/dist/components/forms/button-group/button-group.js +24 -0
- package/dist/components/forms/button-group/button-group.js.map +1 -0
- package/dist/components/forms/button-group/index.d.ts +3 -0
- package/dist/components/forms/button-group/index.d.ts.map +1 -0
- package/dist/components/forms/calendar/calendar.d.ts +37 -0
- package/dist/components/forms/calendar/calendar.d.ts.map +1 -0
- package/dist/components/forms/calendar/calendar.js +131 -0
- package/dist/components/forms/calendar/calendar.js.map +1 -0
- package/dist/components/forms/calendar/index.d.ts +3 -0
- package/dist/components/forms/calendar/index.d.ts.map +1 -0
- package/dist/components/forms/checkbox/checkbox.d.ts +31 -0
- package/dist/components/forms/checkbox/checkbox.d.ts.map +1 -0
- package/dist/components/forms/checkbox/checkbox.js +39 -0
- package/dist/components/forms/checkbox/checkbox.js.map +1 -0
- package/dist/components/forms/checkbox/index.d.ts +3 -0
- package/dist/components/forms/checkbox/index.d.ts.map +1 -0
- package/dist/components/forms/code/code.d.ts +32 -0
- package/dist/components/forms/code/code.d.ts.map +1 -0
- package/dist/components/forms/code/code.js +31 -0
- package/dist/components/forms/code/code.js.map +1 -0
- package/dist/components/forms/code/index.d.ts +1 -0
- package/dist/components/forms/code/index.d.ts.map +1 -0
- package/dist/components/forms/date-picker/date-picker.d.ts +72 -0
- package/dist/components/forms/date-picker/date-picker.d.ts.map +1 -0
- package/dist/components/forms/date-picker/date-picker.js +173 -0
- package/dist/components/forms/date-picker/date-picker.js.map +1 -0
- package/dist/components/forms/date-picker/index.d.ts +3 -0
- package/dist/components/forms/date-picker/index.d.ts.map +1 -0
- package/dist/components/forms/editable-text/editable-text.d.ts +59 -0
- package/dist/components/forms/editable-text/editable-text.d.ts.map +1 -0
- package/dist/components/forms/editable-text/editable-text.js +188 -0
- package/dist/components/forms/editable-text/editable-text.js.map +1 -0
- package/dist/components/forms/editable-text/index.d.ts +3 -0
- package/dist/components/forms/editable-text/index.d.ts.map +1 -0
- package/dist/components/forms/fieldset/fieldset.d.ts +46 -0
- package/dist/components/forms/fieldset/fieldset.d.ts.map +1 -0
- package/dist/components/forms/fieldset/fieldset.js +40 -0
- package/dist/components/forms/fieldset/fieldset.js.map +1 -0
- package/dist/components/forms/fieldset/index.d.ts +3 -0
- package/dist/components/forms/fieldset/index.d.ts.map +1 -0
- package/dist/components/forms/form/form-example.d.ts +11 -0
- package/dist/components/forms/form/form-example.d.ts.map +1 -0
- package/dist/components/forms/form/form.d.ts +44 -0
- package/dist/components/forms/form/form.d.ts.map +1 -0
- package/dist/components/forms/form/form.js +39 -0
- package/dist/components/forms/form/form.js.map +1 -0
- package/dist/components/forms/form/index.d.ts +3 -0
- package/dist/components/forms/form/index.d.ts.map +1 -0
- package/dist/components/forms/form-checkbox/form-checkbox.d.ts +27 -0
- package/dist/components/forms/form-checkbox/form-checkbox.d.ts.map +1 -0
- package/dist/components/forms/form-checkbox/form-checkbox.js +58 -0
- package/dist/components/forms/form-checkbox/form-checkbox.js.map +1 -0
- package/dist/components/forms/form-checkbox/index.d.ts +3 -0
- package/dist/components/forms/form-checkbox/index.d.ts.map +1 -0
- package/dist/components/forms/form-checkbox-group/form-checkbox-group.d.ts +40 -0
- package/dist/components/forms/form-checkbox-group/form-checkbox-group.d.ts.map +1 -0
- package/dist/components/forms/form-checkbox-group/form-checkbox-group.js +74 -0
- package/dist/components/forms/form-checkbox-group/form-checkbox-group.js.map +1 -0
- package/dist/components/forms/form-field/form-field.d.ts +53 -0
- package/dist/components/forms/form-field/form-field.d.ts.map +1 -0
- package/dist/components/forms/form-field/form-field.js +56 -0
- package/dist/components/forms/form-field/form-field.js.map +1 -0
- package/dist/components/forms/form-field/index.d.ts +3 -0
- package/dist/components/forms/form-field/index.d.ts.map +1 -0
- package/dist/components/forms/form-input/form-input.d.ts +60 -0
- package/dist/components/forms/form-input/form-input.d.ts.map +1 -0
- package/dist/components/forms/form-input/form-input.js +53 -0
- package/dist/components/forms/form-input/form-input.js.map +1 -0
- package/dist/components/forms/form-select/form-select.d.ts +32 -0
- package/dist/components/forms/form-select/form-select.d.ts.map +1 -0
- package/dist/components/forms/form-select/form-select.js +34 -0
- package/dist/components/forms/form-select/form-select.js.map +1 -0
- package/dist/components/forms/form-textarea/form-textarea.d.ts +31 -0
- package/dist/components/forms/form-textarea/form-textarea.d.ts.map +1 -0
- package/dist/components/forms/form-textarea/form-textarea.js +34 -0
- package/dist/components/forms/form-textarea/form-textarea.js.map +1 -0
- package/dist/components/forms/input/index.d.ts +3 -0
- package/dist/components/forms/input/index.d.ts.map +1 -0
- package/dist/components/forms/input/input.d.ts +71 -0
- package/dist/components/forms/input/input.d.ts.map +1 -0
- package/dist/components/forms/input/input.js +64 -0
- package/dist/components/forms/input/input.js.map +1 -0
- package/dist/components/forms/input-group/index.d.ts +3 -0
- package/dist/components/forms/input-group/index.d.ts.map +1 -0
- package/dist/components/forms/input-group/input-group.d.ts +43 -0
- package/dist/components/forms/input-group/input-group.d.ts.map +1 -0
- package/dist/components/forms/input-group/input-group.js +55 -0
- package/dist/components/forms/input-group/input-group.js.map +1 -0
- package/dist/components/forms/multi-select/index.d.ts +3 -0
- package/dist/components/forms/multi-select/index.d.ts.map +1 -0
- package/dist/components/forms/multi-select/multi-select.d.ts +75 -0
- package/dist/components/forms/multi-select/multi-select.d.ts.map +1 -0
- package/dist/components/forms/multi-select/multi-select.js +259 -0
- package/dist/components/forms/multi-select/multi-select.js.map +1 -0
- package/dist/components/forms/radio/index.d.ts +3 -0
- package/dist/components/forms/radio/index.d.ts.map +1 -0
- package/dist/components/forms/radio/radio.d.ts +31 -0
- package/dist/components/forms/radio/radio.d.ts.map +1 -0
- package/dist/components/forms/radio/radio.js +74 -0
- package/dist/components/forms/radio/radio.js.map +1 -0
- package/dist/components/forms/radio-group/index.d.ts +3 -0
- package/dist/components/forms/radio-group/index.d.ts.map +1 -0
- package/dist/components/forms/radio-group/radio-group.d.ts +32 -0
- package/dist/components/forms/radio-group/radio-group.d.ts.map +1 -0
- package/dist/components/forms/radio-group/radio-group.js +28 -0
- package/dist/components/forms/radio-group/radio-group.js.map +1 -0
- package/dist/components/forms/select/index.d.ts +5 -0
- package/dist/components/forms/select/index.d.ts.map +1 -0
- package/dist/components/forms/select/select-item.d.ts +16 -0
- package/dist/components/forms/select/select-item.d.ts.map +1 -0
- package/dist/components/forms/select/select-item.js +9 -0
- package/dist/components/forms/select/select-item.js.map +1 -0
- package/dist/components/forms/select/select.d.ts +52 -0
- package/dist/components/forms/select/select.d.ts.map +1 -0
- package/dist/components/forms/select/select.js +51 -0
- package/dist/components/forms/select/select.js.map +1 -0
- package/dist/components/forms/slider/index.d.ts +3 -0
- package/dist/components/forms/slider/index.d.ts.map +1 -0
- package/dist/components/forms/slider/slider.d.ts +21 -0
- package/dist/components/forms/slider/slider.d.ts.map +1 -0
- package/dist/components/forms/slider/slider.js +65 -0
- package/dist/components/forms/slider/slider.js.map +1 -0
- package/dist/components/forms/switch/index.d.ts +3 -0
- package/dist/components/forms/switch/index.d.ts.map +1 -0
- package/dist/components/forms/switch/switch.d.ts +30 -0
- package/dist/components/forms/switch/switch.d.ts.map +1 -0
- package/dist/components/forms/switch/switch.js +104 -0
- package/dist/components/forms/switch/switch.js.map +1 -0
- package/dist/components/forms/textarea/index.d.ts +3 -0
- package/dist/components/forms/textarea/index.d.ts.map +1 -0
- package/dist/components/forms/textarea/textarea.d.ts +54 -0
- package/dist/components/forms/textarea/textarea.d.ts.map +1 -0
- package/dist/components/forms/textarea/textarea.js +55 -0
- package/dist/components/forms/textarea/textarea.js.map +1 -0
- package/dist/components/index.d.ts +124 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/layout/accordion/accordion.d.ts +30 -0
- package/dist/components/layout/accordion/accordion.d.ts.map +1 -0
- package/dist/components/layout/accordion/accordion.js +38 -0
- package/dist/components/layout/accordion/accordion.js.map +1 -0
- package/dist/components/layout/accordion/index.d.ts +3 -0
- package/dist/components/layout/accordion/index.d.ts.map +1 -0
- package/dist/components/layout/action-card/action-card.d.ts +37 -0
- package/dist/components/layout/action-card/action-card.d.ts.map +1 -0
- package/dist/components/layout/action-card/action-card.js +104 -0
- package/dist/components/layout/action-card/action-card.js.map +1 -0
- package/dist/components/layout/action-card/index.d.ts +3 -0
- package/dist/components/layout/action-card/index.d.ts.map +1 -0
- package/dist/components/layout/card/card-actions.d.ts +47 -0
- package/dist/components/layout/card/card-actions.d.ts.map +1 -0
- package/dist/components/layout/card/card-actions.js +30 -0
- package/dist/components/layout/card/card-actions.js.map +1 -0
- package/dist/components/layout/card/card-body.d.ts +26 -0
- package/dist/components/layout/card/card-body.d.ts.map +1 -0
- package/dist/components/layout/card/card-body.js +22 -0
- package/dist/components/layout/card/card-body.js.map +1 -0
- package/dist/components/layout/card/card-figure.d.ts +50 -0
- package/dist/components/layout/card/card-figure.d.ts.map +1 -0
- package/dist/components/layout/card/card-figure.js +27 -0
- package/dist/components/layout/card/card-figure.js.map +1 -0
- package/dist/components/layout/card/card-footer.d.ts +46 -0
- package/dist/components/layout/card/card-footer.d.ts.map +1 -0
- package/dist/components/layout/card/card-footer.js +39 -0
- package/dist/components/layout/card/card-footer.js.map +1 -0
- package/dist/components/layout/card/card-header.d.ts +41 -0
- package/dist/components/layout/card/card-header.d.ts.map +1 -0
- package/dist/components/layout/card/card-header.js +27 -0
- package/dist/components/layout/card/card-header.js.map +1 -0
- package/dist/components/layout/card/card-title.d.ts +43 -0
- package/dist/components/layout/card/card-title.d.ts.map +1 -0
- package/dist/components/layout/card/card-title.js +21 -0
- package/dist/components/layout/card/card-title.js.map +1 -0
- package/dist/components/layout/card/card.d.ts +74 -0
- package/dist/components/layout/card/card.d.ts.map +1 -0
- package/dist/components/layout/card/card.js +64 -0
- package/dist/components/layout/card/card.js.map +1 -0
- package/dist/components/layout/card/index.d.ts +15 -0
- package/dist/components/layout/card/index.d.ts.map +1 -0
- package/dist/components/layout/container/container.d.ts +33 -0
- package/dist/components/layout/container/container.d.ts.map +1 -0
- package/dist/components/layout/container/container.js +36 -0
- package/dist/components/layout/container/container.js.map +1 -0
- package/dist/components/layout/container/index.d.ts +3 -0
- package/dist/components/layout/container/index.d.ts.map +1 -0
- package/dist/components/layout/divider/divider.d.ts +15 -0
- package/dist/components/layout/divider/divider.d.ts.map +1 -0
- package/dist/components/layout/divider/divider.js +10 -0
- package/dist/components/layout/divider/divider.js.map +1 -0
- package/dist/components/layout/divider/index.d.ts +3 -0
- package/dist/components/layout/divider/index.d.ts.map +1 -0
- package/dist/components/layout/drawer/drawer.d.ts +35 -0
- package/dist/components/layout/drawer/drawer.d.ts.map +1 -0
- package/dist/components/layout/drawer/drawer.js +108 -0
- package/dist/components/layout/drawer/drawer.js.map +1 -0
- package/dist/components/layout/drawer/index.d.ts +3 -0
- package/dist/components/layout/drawer/index.d.ts.map +1 -0
- package/dist/components/layout/feature-section/feature-section.d.ts +36 -0
- package/dist/components/layout/feature-section/feature-section.d.ts.map +1 -0
- package/dist/components/layout/feature-section/feature-section.js +37 -0
- package/dist/components/layout/feature-section/feature-section.js.map +1 -0
- package/dist/components/layout/feature-section/index.d.ts +3 -0
- package/dist/components/layout/feature-section/index.d.ts.map +1 -0
- package/dist/components/layout/footer/footer.d.ts +37 -0
- package/dist/components/layout/footer/footer.d.ts.map +1 -0
- package/dist/components/layout/footer/footer.js +36 -0
- package/dist/components/layout/footer/footer.js.map +1 -0
- package/dist/components/layout/footer/index.d.ts +3 -0
- package/dist/components/layout/footer/index.d.ts.map +1 -0
- package/dist/components/layout/grid/grid.d.ts +66 -0
- package/dist/components/layout/grid/grid.d.ts.map +1 -0
- package/dist/components/layout/grid/grid.js +62 -0
- package/dist/components/layout/grid/grid.js.map +1 -0
- package/dist/components/layout/grid/index.d.ts +3 -0
- package/dist/components/layout/grid/index.d.ts.map +1 -0
- package/dist/components/layout/hero/hero.d.ts +61 -0
- package/dist/components/layout/hero/hero.d.ts.map +1 -0
- package/dist/components/layout/hero/hero.js +79 -0
- package/dist/components/layout/hero/hero.js.map +1 -0
- package/dist/components/layout/hero/index.d.ts +3 -0
- package/dist/components/layout/hero/index.d.ts.map +1 -0
- package/dist/components/layout/left-nav-layout/index.d.ts +7 -0
- package/dist/components/layout/left-nav-layout/index.d.ts.map +1 -0
- package/dist/components/layout/left-nav-layout/left-nav-item.d.ts +56 -0
- package/dist/components/layout/left-nav-layout/left-nav-item.d.ts.map +1 -0
- package/dist/components/layout/left-nav-layout/left-nav-item.js +105 -0
- package/dist/components/layout/left-nav-layout/left-nav-item.js.map +1 -0
- package/dist/components/layout/left-nav-layout/left-nav-layout.d.ts +67 -0
- package/dist/components/layout/left-nav-layout/left-nav-layout.d.ts.map +1 -0
- package/dist/components/layout/left-nav-layout/left-nav-layout.js +182 -0
- package/dist/components/layout/left-nav-layout/left-nav-layout.js.map +1 -0
- package/dist/components/layout/left-nav-layout/left-nav-section.d.ts +40 -0
- package/dist/components/layout/left-nav-layout/left-nav-section.d.ts.map +1 -0
- package/dist/components/layout/left-nav-layout/left-nav-section.js +119 -0
- package/dist/components/layout/left-nav-layout/left-nav-section.js.map +1 -0
- package/dist/components/layout/page/index.d.ts +3 -0
- package/dist/components/layout/page/index.d.ts.map +1 -0
- package/dist/components/layout/page/page.d.ts +17 -0
- package/dist/components/layout/page/page.d.ts.map +1 -0
- package/dist/components/layout/page/page.js +9 -0
- package/dist/components/layout/page/page.js.map +1 -0
- package/dist/components/layout/page-header/index.d.ts +3 -0
- package/dist/components/layout/page-header/index.d.ts.map +1 -0
- package/dist/components/layout/page-header/page-header.d.ts +21 -0
- package/dist/components/layout/page-header/page-header.d.ts.map +1 -0
- package/dist/components/layout/page-header/page-header.js +18 -0
- package/dist/components/layout/page-header/page-header.js.map +1 -0
- package/dist/components/layout/page-transition/index.d.ts +3 -0
- package/dist/components/layout/page-transition/index.d.ts.map +1 -0
- package/dist/components/layout/page-transition/page-transition.d.ts +52 -0
- package/dist/components/layout/page-transition/page-transition.d.ts.map +1 -0
- package/dist/components/layout/page-transition/page-transition.js +43 -0
- package/dist/components/layout/page-transition/page-transition.js.map +1 -0
- package/dist/components/layout/section/index.d.ts +3 -0
- package/dist/components/layout/section/index.d.ts.map +1 -0
- package/dist/components/layout/section/section.d.ts +35 -0
- package/dist/components/layout/section/section.d.ts.map +1 -0
- package/dist/components/layout/section/section.js +18 -0
- package/dist/components/layout/section/section.js.map +1 -0
- package/dist/components/layout/section-header/index.d.ts +3 -0
- package/dist/components/layout/section-header/index.d.ts.map +1 -0
- package/dist/components/layout/section-header/section-header.d.ts +23 -0
- package/dist/components/layout/section-header/section-header.d.ts.map +1 -0
- package/dist/components/layout/section-header/section-header.js +18 -0
- package/dist/components/layout/section-header/section-header.js.map +1 -0
- package/dist/components/layout/settings-page/index.d.ts +4 -0
- package/dist/components/layout/settings-page/index.d.ts.map +1 -0
- package/dist/components/layout/settings-page/setting-item.d.ts +52 -0
- package/dist/components/layout/settings-page/setting-item.d.ts.map +1 -0
- package/dist/components/layout/settings-page/setting-item.js +31 -0
- package/dist/components/layout/settings-page/setting-item.js.map +1 -0
- package/dist/components/layout/settings-page/settings-page.d.ts +37 -0
- package/dist/components/layout/settings-page/settings-page.d.ts.map +1 -0
- package/dist/components/layout/settings-page/settings-page.js +18 -0
- package/dist/components/layout/settings-page/settings-page.js.map +1 -0
- package/dist/components/layout/settings-page/settings-section.d.ts +35 -0
- package/dist/components/layout/settings-page/settings-section.d.ts.map +1 -0
- package/dist/components/layout/settings-page/settings-section.js +17 -0
- package/dist/components/layout/settings-page/settings-section.js.map +1 -0
- package/dist/components/layout/stack/index.d.ts +3 -0
- package/dist/components/layout/stack/index.d.ts.map +1 -0
- package/dist/components/layout/stack/stack.d.ts +33 -0
- package/dist/components/layout/stack/stack.d.ts.map +1 -0
- package/dist/components/layout/stack/stack.js +44 -0
- package/dist/components/layout/stack/stack.js.map +1 -0
- package/dist/components/navigation/breadcrumbs/breadcrumbs.d.ts +61 -0
- package/dist/components/navigation/breadcrumbs/breadcrumbs.d.ts.map +1 -0
- package/dist/components/navigation/breadcrumbs/breadcrumbs.js +30 -0
- package/dist/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -0
- package/dist/components/navigation/breadcrumbs/index.d.ts +3 -0
- package/dist/components/navigation/breadcrumbs/index.d.ts.map +1 -0
- package/dist/components/navigation/dropdown/dropdown.d.ts +83 -0
- package/dist/components/navigation/dropdown/dropdown.d.ts.map +1 -0
- package/dist/components/navigation/dropdown/dropdown.js +295 -0
- package/dist/components/navigation/dropdown/dropdown.js.map +1 -0
- package/dist/components/navigation/dropdown/index.d.ts +5 -0
- package/dist/components/navigation/dropdown/index.d.ts.map +1 -0
- package/dist/components/navigation/nav/index.d.ts +3 -0
- package/dist/components/navigation/nav/index.d.ts.map +1 -0
- package/dist/components/navigation/nav/nav.d.ts +24 -0
- package/dist/components/navigation/nav/nav.d.ts.map +1 -0
- package/dist/components/navigation/nav/nav.js +32 -0
- package/dist/components/navigation/nav/nav.js.map +1 -0
- package/dist/components/navigation/nav-dropdown/index.d.ts +5 -0
- package/dist/components/navigation/nav-dropdown/index.d.ts.map +1 -0
- package/dist/components/navigation/nav-dropdown/nav-dropdown-item.d.ts +17 -0
- package/dist/components/navigation/nav-dropdown/nav-dropdown-item.d.ts.map +1 -0
- package/dist/components/navigation/nav-dropdown/nav-dropdown-item.js +17 -0
- package/dist/components/navigation/nav-dropdown/nav-dropdown-item.js.map +1 -0
- package/dist/components/navigation/nav-dropdown/nav-dropdown.d.ts +20 -0
- package/dist/components/navigation/nav-dropdown/nav-dropdown.d.ts.map +1 -0
- package/dist/components/navigation/nav-dropdown/nav-dropdown.js +24 -0
- package/dist/components/navigation/nav-dropdown/nav-dropdown.js.map +1 -0
- package/dist/components/navigation/navbar/index.d.ts +9 -0
- package/dist/components/navigation/navbar/index.d.ts.map +1 -0
- package/dist/components/navigation/navbar/navbar-brand.d.ts +23 -0
- package/dist/components/navigation/navbar/navbar-brand.d.ts.map +1 -0
- package/dist/components/navigation/navbar/navbar-brand.js +21 -0
- package/dist/components/navigation/navbar/navbar-brand.js.map +1 -0
- package/dist/components/navigation/navbar/navbar-link.d.ts +23 -0
- package/dist/components/navigation/navbar/navbar-link.d.ts.map +1 -0
- package/dist/components/navigation/navbar/navbar-link.js +34 -0
- package/dist/components/navigation/navbar/navbar-link.js.map +1 -0
- package/dist/components/navigation/navbar/navbar-toggle.d.ts +34 -0
- package/dist/components/navigation/navbar/navbar-toggle.d.ts.map +1 -0
- package/dist/components/navigation/navbar/navbar-toggle.js +37 -0
- package/dist/components/navigation/navbar/navbar-toggle.js.map +1 -0
- package/dist/components/navigation/navbar/navbar.d.ts +33 -0
- package/dist/components/navigation/navbar/navbar.d.ts.map +1 -0
- package/dist/components/navigation/navbar/navbar.js +40 -0
- package/dist/components/navigation/navbar/navbar.js.map +1 -0
- package/dist/components/navigation/notification-dropdown/index.d.ts +3 -0
- package/dist/components/navigation/notification-dropdown/index.d.ts.map +1 -0
- package/dist/components/navigation/notification-dropdown/notification-dropdown.d.ts +59 -0
- package/dist/components/navigation/notification-dropdown/notification-dropdown.d.ts.map +1 -0
- package/dist/components/navigation/notification-dropdown/notification-dropdown.js +456 -0
- package/dist/components/navigation/notification-dropdown/notification-dropdown.js.map +1 -0
- package/dist/components/navigation/pagination/index.d.ts +3 -0
- package/dist/components/navigation/pagination/index.d.ts.map +1 -0
- package/dist/components/navigation/pagination/pagination.d.ts +21 -0
- package/dist/components/navigation/pagination/pagination.d.ts.map +1 -0
- package/dist/components/navigation/pagination/pagination.js +72 -0
- package/dist/components/navigation/pagination/pagination.js.map +1 -0
- package/dist/components/navigation/scroll-nav/index.d.ts +3 -0
- package/dist/components/navigation/scroll-nav/index.d.ts.map +1 -0
- package/dist/components/navigation/scroll-nav/scroll-nav.d.ts +53 -0
- package/dist/components/navigation/scroll-nav/scroll-nav.d.ts.map +1 -0
- package/dist/components/navigation/scroll-nav/scroll-nav.js +188 -0
- package/dist/components/navigation/scroll-nav/scroll-nav.js.map +1 -0
- package/dist/components/navigation/sidebar/index.d.ts +3 -0
- package/dist/components/navigation/sidebar/index.d.ts.map +1 -0
- package/dist/components/navigation/sidebar/sidebar.d.ts +18 -0
- package/dist/components/navigation/sidebar/sidebar.d.ts.map +1 -0
- package/dist/components/navigation/sidebar/sidebar.js +41 -0
- package/dist/components/navigation/sidebar/sidebar.js.map +1 -0
- package/dist/components/navigation/stepper/index.d.ts +3 -0
- package/dist/components/navigation/stepper/index.d.ts.map +1 -0
- package/dist/components/navigation/stepper/stepper.d.ts +50 -0
- package/dist/components/navigation/stepper/stepper.d.ts.map +1 -0
- package/dist/components/navigation/stepper/stepper.js +159 -0
- package/dist/components/navigation/stepper/stepper.js.map +1 -0
- package/dist/components/navigation/tabs/index.d.ts +3 -0
- package/dist/components/navigation/tabs/index.d.ts.map +1 -0
- package/dist/components/navigation/tabs/tabs.d.ts +32 -0
- package/dist/components/navigation/tabs/tabs.d.ts.map +1 -0
- package/dist/components/navigation/tabs/tabs.js +61 -0
- package/dist/components/navigation/tabs/tabs.js.map +1 -0
- package/dist/components/system/auth-provider/auth-provider.d.ts +103 -0
- package/dist/components/system/auth-provider/auth-provider.d.ts.map +1 -0
- package/dist/components/system/auth-provider/auth-provider.js +118 -0
- package/dist/components/system/auth-provider/auth-provider.js.map +1 -0
- package/dist/components/system/auth-provider/auth-utils.d.ts +32 -0
- package/dist/components/system/auth-provider/auth-utils.d.ts.map +1 -0
- package/dist/components/system/auth-provider/auth-utils.js +83 -0
- package/dist/components/system/auth-provider/auth-utils.js.map +1 -0
- package/dist/components/system/auth-provider/index.d.ts +4 -0
- package/dist/components/system/auth-provider/index.d.ts.map +1 -0
- package/dist/components/system/color-mode-toggle/color-mode-toggle.d.ts +18 -0
- package/dist/components/system/color-mode-toggle/color-mode-toggle.d.ts.map +1 -0
- package/dist/components/system/color-mode-toggle/color-mode-toggle.js +27 -0
- package/dist/components/system/color-mode-toggle/color-mode-toggle.js.map +1 -0
- package/dist/components/system/color-mode-toggle/index.d.ts +3 -0
- package/dist/components/system/color-mode-toggle/index.d.ts.map +1 -0
- package/dist/components/system/error-boundary/error-boundary.d.ts +21 -0
- package/dist/components/system/error-boundary/error-boundary.d.ts.map +1 -0
- package/dist/components/system/icon/icon.d.ts +35 -0
- package/dist/components/system/icon/icon.d.ts.map +1 -0
- package/dist/components/system/icon/icon.js +83 -0
- package/dist/components/system/icon/icon.js.map +1 -0
- package/dist/components/system/icon/index.d.ts +3 -0
- package/dist/components/system/icon/index.d.ts.map +1 -0
- package/dist/components/system/theme-provider/index.d.ts +3 -0
- package/dist/components/system/theme-provider/index.d.ts.map +1 -0
- package/dist/components/system/theme-provider/theme-provider.d.ts +40 -0
- package/dist/components/system/theme-provider/theme-provider.d.ts.map +1 -0
- package/dist/components/system/theme-provider/theme-provider.js +55 -0
- package/dist/components/system/theme-provider/theme-provider.js.map +1 -0
- package/dist/components/typography/code/code.d.ts +24 -0
- package/dist/components/typography/code/code.d.ts.map +1 -0
- package/dist/components/typography/code/code.js +18 -0
- package/dist/components/typography/code/code.js.map +1 -0
- package/dist/components/typography/code/index.d.ts +3 -0
- package/dist/components/typography/code/index.d.ts.map +1 -0
- package/dist/components/typography/heading/heading.d.ts +32 -0
- package/dist/components/typography/heading/heading.d.ts.map +1 -0
- package/dist/components/typography/heading/heading.js +39 -0
- package/dist/components/typography/heading/heading.js.map +1 -0
- package/dist/components/typography/heading/index.d.ts +3 -0
- package/dist/components/typography/heading/index.d.ts.map +1 -0
- package/dist/components/typography/link/index.d.ts +3 -0
- package/dist/components/typography/link/index.d.ts.map +1 -0
- package/dist/components/typography/link/link.d.ts +44 -0
- package/dist/components/typography/link/link.d.ts.map +1 -0
- package/dist/components/typography/link/link.js +72 -0
- package/dist/components/typography/link/link.js.map +1 -0
- package/dist/components/typography/text/index.d.ts +3 -0
- package/dist/components/typography/text/index.d.ts.map +1 -0
- package/dist/components/typography/text/text.d.ts +104 -0
- package/dist/components/typography/text/text.d.ts.map +1 -0
- package/dist/components/typography/text/text.js +148 -0
- package/dist/components/typography/text/text.js.map +1 -0
- package/dist/components.d.ts +2 -0
- package/dist/components.d.ts.map +1 -0
- package/dist/hooks/useDebounce.d.ts +29 -0
- package/dist/hooks/useDebounce.d.ts.map +1 -0
- package/dist/hooks/useDebounce.js +26 -0
- package/dist/hooks/useDebounce.js.map +1 -0
- package/dist/hooks/useScrollReset.d.ts +11 -0
- package/dist/hooks/useScrollReset.d.ts.map +1 -0
- package/dist/hooks/useScrollReset.js +55 -0
- package/dist/hooks/useScrollReset.js.map +1 -0
- package/dist/humans.txt +8 -0
- package/dist/icons/logo.svg +9 -0
- package/dist/index.d.ts +7 -1170
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +287 -4333
- package/dist/index.js.map +1 -1
- package/dist/manifest.json +16 -0
- package/dist/node_modules/clsx/dist/clsx.js +18 -0
- package/dist/node_modules/clsx/dist/clsx.js.map +1 -0
- package/dist/robots.txt +5 -0
- package/dist/sitemap.xml +8 -0
- package/dist/staticwebapp.config.json +23 -0
- package/dist/style.css +2 -2
- package/dist/styles.d.ts +9 -0
- package/dist/theme/hydn-presets.d.ts +4 -0
- package/dist/theme/hydn-presets.d.ts.map +1 -0
- package/dist/theme/size-tokens.d.ts +686 -0
- package/dist/theme/size-tokens.d.ts.map +1 -0
- package/dist/theme/size-tokens.js +636 -0
- package/dist/theme/size-tokens.js.map +1 -0
- package/dist/theme/tokens.d.ts +116 -0
- package/dist/theme/tokens.d.ts.map +1 -0
- package/dist/theme/tokens.js +164 -0
- package/dist/theme/tokens.js.map +1 -0
- package/dist/utils/debounce.d.ts +7 -0
- package/dist/utils/debounce.d.ts.map +1 -0
- package/dist/utils/debounce.js +40 -0
- package/dist/utils/debounce.js.map +1 -0
- package/package.json +49 -43
- package/dist/index.cjs +0 -4425
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -1170
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { useState, useEffect, useMemo } from "react";
|
|
2
|
+
function useTable({
|
|
3
|
+
data,
|
|
4
|
+
initialSort,
|
|
5
|
+
pageSize = 10,
|
|
6
|
+
searchQuery = "",
|
|
7
|
+
searchKeys
|
|
8
|
+
}) {
|
|
9
|
+
const [sortConfig, setSortConfig] = useState(
|
|
10
|
+
initialSort ? { key: initialSort.key, direction: initialSort.direction } : null
|
|
11
|
+
);
|
|
12
|
+
const [currentPage, setCurrentPage] = useState(1);
|
|
13
|
+
const [selectedRows, setSelectedRows] = useState(/* @__PURE__ */ new Set());
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
setCurrentPage(1);
|
|
16
|
+
}, [searchQuery]);
|
|
17
|
+
const filteredData = useMemo(() => {
|
|
18
|
+
if (!searchQuery || searchQuery.trim() === "") return data;
|
|
19
|
+
const query = searchQuery.toLowerCase();
|
|
20
|
+
return data.filter((row) => {
|
|
21
|
+
if (searchKeys && searchKeys.length > 0) {
|
|
22
|
+
return searchKeys.some((key) => {
|
|
23
|
+
const value = row[key];
|
|
24
|
+
if (value == null) return false;
|
|
25
|
+
return String(value).toLowerCase().includes(query);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return Object.values(row).some((value) => {
|
|
29
|
+
if (value == null) return false;
|
|
30
|
+
return String(value).toLowerCase().includes(query);
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
}, [data, searchQuery, searchKeys]);
|
|
34
|
+
const sortedData = useMemo(() => {
|
|
35
|
+
if (!sortConfig) return filteredData;
|
|
36
|
+
const sorted = [...filteredData].sort((a, b) => {
|
|
37
|
+
const aValue = a[sortConfig.key];
|
|
38
|
+
const bValue = b[sortConfig.key];
|
|
39
|
+
if (aValue === bValue) return 0;
|
|
40
|
+
if (aValue == null) return 1;
|
|
41
|
+
if (bValue == null) return -1;
|
|
42
|
+
if (aValue < bValue) {
|
|
43
|
+
return sortConfig.direction === "asc" ? -1 : 1;
|
|
44
|
+
}
|
|
45
|
+
return sortConfig.direction === "asc" ? 1 : -1;
|
|
46
|
+
});
|
|
47
|
+
return sorted;
|
|
48
|
+
}, [filteredData, sortConfig]);
|
|
49
|
+
const totalPages = Math.ceil(sortedData.length / pageSize);
|
|
50
|
+
const startIndex = (currentPage - 1) * pageSize;
|
|
51
|
+
const endIndex = startIndex + pageSize;
|
|
52
|
+
const currentData = sortedData.slice(startIndex, endIndex);
|
|
53
|
+
const handleSort = (key) => {
|
|
54
|
+
let direction = "asc";
|
|
55
|
+
if (sortConfig?.key === key) {
|
|
56
|
+
if (sortConfig.direction === "asc") {
|
|
57
|
+
direction = "desc";
|
|
58
|
+
} else if (sortConfig.direction === "desc") {
|
|
59
|
+
direction = null;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
setSortConfig(direction ? { key, direction } : null);
|
|
63
|
+
setCurrentPage(1);
|
|
64
|
+
};
|
|
65
|
+
const nextPage = () => {
|
|
66
|
+
setCurrentPage((prev) => Math.min(prev + 1, totalPages));
|
|
67
|
+
};
|
|
68
|
+
const prevPage = () => {
|
|
69
|
+
setCurrentPage((prev) => Math.max(prev - 1, 1));
|
|
70
|
+
};
|
|
71
|
+
const canNextPage = currentPage < totalPages;
|
|
72
|
+
const canPrevPage = currentPage > 1;
|
|
73
|
+
const toggleRow = (index) => {
|
|
74
|
+
setSelectedRows((prev) => {
|
|
75
|
+
const newSet = new Set(prev);
|
|
76
|
+
if (newSet.has(index)) {
|
|
77
|
+
newSet.delete(index);
|
|
78
|
+
} else {
|
|
79
|
+
newSet.add(index);
|
|
80
|
+
}
|
|
81
|
+
return newSet;
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
const toggleAll = () => {
|
|
85
|
+
if (selectedRows.size === currentData.length) {
|
|
86
|
+
setSelectedRows(/* @__PURE__ */ new Set());
|
|
87
|
+
} else {
|
|
88
|
+
const allIndices = currentData.map((_, idx) => startIndex + idx);
|
|
89
|
+
setSelectedRows(new Set(allIndices));
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
const isRowSelected = (index) => selectedRows.has(index);
|
|
93
|
+
const isAllSelected = currentData.length > 0 && currentData.every((_, idx) => selectedRows.has(startIndex + idx));
|
|
94
|
+
const clearSelection = () => setSelectedRows(/* @__PURE__ */ new Set());
|
|
95
|
+
return {
|
|
96
|
+
currentData,
|
|
97
|
+
sortedData,
|
|
98
|
+
filteredData,
|
|
99
|
+
sortConfig,
|
|
100
|
+
handleSort,
|
|
101
|
+
currentPage,
|
|
102
|
+
totalPages,
|
|
103
|
+
setCurrentPage,
|
|
104
|
+
nextPage,
|
|
105
|
+
prevPage,
|
|
106
|
+
canNextPage,
|
|
107
|
+
canPrevPage,
|
|
108
|
+
selectedRows,
|
|
109
|
+
toggleRow,
|
|
110
|
+
toggleAll,
|
|
111
|
+
isRowSelected,
|
|
112
|
+
isAllSelected,
|
|
113
|
+
clearSelection
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
export {
|
|
117
|
+
useTable as default,
|
|
118
|
+
useTable
|
|
119
|
+
};
|
|
120
|
+
//# sourceMappingURL=use-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-table.js","sources":["../../../../src/components/data-display/data-table/use-table.ts"],"sourcesContent":["import { useMemo, useState, useEffect } from 'react';\n\nexport type SortDirection = 'asc' | 'desc' | null;\n\nexport type SortConfig<T> = {\n key: keyof T;\n direction: SortDirection;\n} | null;\n\nexport type UseTableOptions<T> = {\n data: T[];\n initialSort?: { key: keyof T; direction: 'asc' | 'desc' };\n pageSize?: number;\n searchQuery?: string;\n searchKeys?: (keyof T)[];\n};\n\nexport type UseTableReturn<T> = {\n // Data\n currentData: T[];\n sortedData: T[];\n filteredData: T[];\n\n // Sorting\n sortConfig: SortConfig<T>;\n handleSort: (key: keyof T) => void;\n\n // Pagination\n currentPage: number;\n totalPages: number;\n setCurrentPage: (page: number) => void;\n nextPage: () => void;\n prevPage: () => void;\n canNextPage: boolean;\n canPrevPage: boolean;\n\n // Selection\n selectedRows: Set<number>;\n toggleRow: (index: number) => void;\n toggleAll: () => void;\n isRowSelected: (index: number) => boolean;\n isAllSelected: boolean;\n clearSelection: () => void;\n};\n\n/**\n * useTable Hook - Client-side table state management\n * Handles filtering, sorting, pagination, and selection\n */\nexport function useTable<T>({\n data,\n initialSort,\n pageSize = 10,\n searchQuery = '',\n searchKeys\n}: UseTableOptions<T>): UseTableReturn<T> {\n const [sortConfig, setSortConfig] = useState<SortConfig<T>>(\n initialSort ? { key: initialSort.key, direction: initialSort.direction } : null\n );\n const [currentPage, setCurrentPage] = useState(1);\n const [selectedRows, setSelectedRows] = useState<Set<number>>(new Set());\n\n // Reset to page 1 when search query changes\n useEffect(() => {\n setCurrentPage(1);\n }, [searchQuery]);\n\n // Filtering logic\n const filteredData = useMemo(() => {\n if (!searchQuery || searchQuery.trim() === '') return data;\n\n const query = searchQuery.toLowerCase();\n\n return data.filter((row) => {\n // If searchKeys are specified, only search those fields\n if (searchKeys && searchKeys.length > 0) {\n return searchKeys.some((key) => {\n const value = row[key];\n if (value == null) return false;\n return String(value).toLowerCase().includes(query);\n });\n }\n\n // Otherwise, search all fields\n return Object.values(row as Record<string, unknown>).some((value) => {\n if (value == null) return false;\n return String(value).toLowerCase().includes(query);\n });\n });\n }, [data, searchQuery, searchKeys]);\n\n // Sorting logic\n const sortedData = useMemo(() => {\n if (!sortConfig) return filteredData;\n\n const sorted = [...filteredData].sort((a, b) => {\n const aValue = a[sortConfig.key];\n const bValue = b[sortConfig.key];\n\n if (aValue === bValue) return 0;\n\n // Handle null/undefined\n if (aValue == null) return 1;\n if (bValue == null) return -1;\n\n // Compare values\n if (aValue < bValue) {\n return sortConfig.direction === 'asc' ? -1 : 1;\n }\n return sortConfig.direction === 'asc' ? 1 : -1;\n });\n\n return sorted;\n }, [filteredData, sortConfig]);\n\n // Pagination logic\n const totalPages = Math.ceil(sortedData.length / pageSize);\n const startIndex = (currentPage - 1) * pageSize;\n const endIndex = startIndex + pageSize;\n const currentData = sortedData.slice(startIndex, endIndex);\n\n // Sorting handler\n const handleSort = (key: keyof T) => {\n let direction: SortDirection = 'asc';\n\n if (sortConfig?.key === key) {\n if (sortConfig.direction === 'asc') {\n direction = 'desc';\n } else if (sortConfig.direction === 'desc') {\n direction = null;\n }\n }\n\n setSortConfig(direction ? { key, direction } : null);\n setCurrentPage(1); // Reset to first page on sort\n };\n\n // Pagination handlers\n const nextPage = () => {\n setCurrentPage((prev) => Math.min(prev + 1, totalPages));\n };\n\n const prevPage = () => {\n setCurrentPage((prev) => Math.max(prev - 1, 1));\n };\n\n const canNextPage = currentPage < totalPages;\n const canPrevPage = currentPage > 1;\n\n // Selection handlers\n const toggleRow = (index: number) => {\n setSelectedRows((prev) => {\n const newSet = new Set(prev);\n if (newSet.has(index)) {\n newSet.delete(index);\n } else {\n newSet.add(index);\n }\n return newSet;\n });\n };\n\n const toggleAll = () => {\n if (selectedRows.size === currentData.length) {\n setSelectedRows(new Set());\n } else {\n const allIndices = currentData.map((_, idx) => startIndex + idx);\n setSelectedRows(new Set(allIndices));\n }\n };\n\n const isRowSelected = (index: number) => selectedRows.has(index);\n\n const isAllSelected = currentData.length > 0 && currentData.every((_, idx) => selectedRows.has(startIndex + idx));\n\n const clearSelection = () => setSelectedRows(new Set());\n\n return {\n currentData,\n sortedData,\n filteredData,\n sortConfig,\n handleSort,\n currentPage,\n totalPages,\n setCurrentPage,\n nextPage,\n prevPage,\n canNextPage,\n canPrevPage,\n selectedRows,\n toggleRow,\n toggleAll,\n isRowSelected,\n isAllSelected,\n clearSelection\n };\n}\n\nexport default useTable;\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type EmptyStateProps = {
|
|
2
|
+
title?: string;
|
|
3
|
+
description?: string;
|
|
4
|
+
buttonText?: string;
|
|
5
|
+
onButtonClick?: () => void;
|
|
6
|
+
};
|
|
7
|
+
export default function EmptyState({ title, description, buttonText, onButtonClick }: EmptyStateProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=empty-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty-state.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/empty-state/empty-state.tsx"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,eAAe,2CAoBpG"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import Stack from "../../layout/stack/stack.js";
|
|
3
|
+
import Text from "../../typography/text/text.js";
|
|
4
|
+
import Button from "../../forms/button/button.js";
|
|
5
|
+
function EmptyState({ title, description, buttonText, onButtonClick }) {
|
|
6
|
+
return /* @__PURE__ */ jsxs(Stack, { direction: "vertical", spacing: "md", align: "center", className: "p-8", children: [
|
|
7
|
+
/* @__PURE__ */ jsxs(Stack, { direction: "vertical", spacing: "sm", align: "center", children: [
|
|
8
|
+
/* @__PURE__ */ jsx(Text, { size: "lg", weight: "bold", children: title }),
|
|
9
|
+
description && /* @__PURE__ */ jsx(Text, { variant: "body", size: "base", className: "text-center max-w-md", children: description })
|
|
10
|
+
] }),
|
|
11
|
+
buttonText && onButtonClick && /* @__PURE__ */ jsx(Button, { variant: "primary", onClick: onButtonClick, children: buttonText })
|
|
12
|
+
] });
|
|
13
|
+
}
|
|
14
|
+
export {
|
|
15
|
+
EmptyState as default
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=empty-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty-state.js","sources":["../../../../src/components/data-display/empty-state/empty-state.tsx"],"sourcesContent":["import { Button, Stack, Text } from '@components';\n\nexport type EmptyStateProps = {\n title?: string;\n description?: string;\n buttonText?: string;\n onButtonClick?: () => void;\n};\n\nexport default function EmptyState({ title, description, buttonText, onButtonClick }: EmptyStateProps) {\n return (\n <Stack direction=\"vertical\" spacing=\"md\" align=\"center\" className=\"p-8\">\n <Stack direction=\"vertical\" spacing=\"sm\" align=\"center\">\n <Text size=\"lg\" weight=\"bold\">\n {title}\n </Text>\n {description && (\n <Text variant=\"body\" size=\"base\" className=\"text-center max-w-md\">\n {description}\n </Text>\n )}\n </Stack>\n {buttonText && onButtonClick && (\n <Button variant=\"primary\" onClick={onButtonClick}>\n {buttonText}\n </Button>\n )}\n </Stack>\n );\n}\n"],"names":[],"mappings":";;;;AASA,SAAwB,WAAW,EAAE,OAAO,aAAa,YAAY,iBAAkC;AACrG,SACE,qBAAC,SAAM,WAAU,YAAW,SAAQ,MAAK,OAAM,UAAS,WAAU,OAChE,UAAA;AAAA,IAAA,qBAAC,SAAM,WAAU,YAAW,SAAQ,MAAK,OAAM,UAC7C,UAAA;AAAA,MAAA,oBAAC,MAAA,EAAK,MAAK,MAAK,QAAO,QACpB,UAAA,OACH;AAAA,MACC,mCACE,MAAA,EAAK,SAAQ,QAAO,MAAK,QAAO,WAAU,wBACxC,UAAA,YAAA,CACH;AAAA,IAAA,GAEJ;AAAA,IACC,cAAc,iBACb,oBAAC,QAAA,EAAO,SAAQ,WAAU,SAAS,eAChC,UAAA,WAAA,CACH;AAAA,EAAA,GAEJ;AAEJ;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/empty-state/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/list/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACjD,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export type ListProps = {
|
|
3
|
+
/** List items (ListItem components) */
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
/** Additional CSS classes to apply */
|
|
6
|
+
className?: string;
|
|
7
|
+
/** Whether to render as ordered list (ol) instead of unordered (ul) */
|
|
8
|
+
ordered?: boolean;
|
|
9
|
+
};
|
|
10
|
+
export type ListItemProps = {
|
|
11
|
+
/** Content of the list item */
|
|
12
|
+
children: ReactNode;
|
|
13
|
+
/** Additional CSS classes to apply */
|
|
14
|
+
className?: string;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* List - Vertical grouping of items
|
|
18
|
+
*/
|
|
19
|
+
export declare function List({ children, className, ordered }: Readonly<ListProps>): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export declare namespace List {
|
|
21
|
+
var displayName: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* ListItem - Individual list item
|
|
25
|
+
*/
|
|
26
|
+
export declare function ListItem({ children, className }: Readonly<ListItemProps>): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
export declare namespace ListItem {
|
|
28
|
+
var displayName: string;
|
|
29
|
+
}
|
|
30
|
+
export default List;
|
|
31
|
+
//# sourceMappingURL=list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/list/list.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,MAAM,SAAS,GAAG;IACtB,uCAAuC;IACvC,QAAQ,EAAE,SAAS,CAAC;IACpB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,+BAA+B;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,wBAAgB,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAc,EAAE,OAAe,EAAE,EAAE,QAAQ,CAAC,SAAS,CAAC,2CAItF;yBAJe,IAAI;;;AAQpB;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,SAAc,EAAE,EAAE,QAAQ,CAAC,aAAa,CAAC,2CAE7E;yBAFe,QAAQ;;;AAMxB,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
function List({ children, className = "", ordered = false }) {
|
|
3
|
+
const Component = ordered ? "ol" : "ul";
|
|
4
|
+
return /* @__PURE__ */ jsx(Component, { className: `divide-y divide-border ${className}`, children });
|
|
5
|
+
}
|
|
6
|
+
List.displayName = "List";
|
|
7
|
+
function ListItem({ children, className = "" }) {
|
|
8
|
+
return /* @__PURE__ */ jsx("li", { className: `py-3 ${className}`, children });
|
|
9
|
+
}
|
|
10
|
+
ListItem.displayName = "ListItem";
|
|
11
|
+
export {
|
|
12
|
+
List,
|
|
13
|
+
ListItem,
|
|
14
|
+
List as default
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sources":["../../../../src/components/data-display/list/list.tsx"],"sourcesContent":["import { ReactNode } from 'react';\n\nexport type ListProps = {\n /** List items (ListItem components) */\n children: ReactNode;\n /** Additional CSS classes to apply */\n className?: string;\n /** Whether to render as ordered list (ol) instead of unordered (ul) */\n ordered?: boolean;\n};\n\nexport type ListItemProps = {\n /** Content of the list item */\n children: ReactNode;\n /** Additional CSS classes to apply */\n className?: string;\n};\n\n/**\n * List - Vertical grouping of items\n */\nexport function List({ children, className = '', ordered = false }: Readonly<ListProps>) {\n const Component = ordered ? 'ol' : 'ul';\n\n return <Component className={`divide-y divide-border ${className}`}>{children}</Component>;\n}\n\nList.displayName = 'List';\n\n/**\n * ListItem - Individual list item\n */\nexport function ListItem({ children, className = '' }: Readonly<ListItemProps>) {\n return <li className={`py-3 ${className}`}>{children}</li>;\n}\n\nListItem.displayName = 'ListItem';\n\nexport default List;\n"],"names":[],"mappings":";AAqBO,SAAS,KAAK,EAAE,UAAU,YAAY,IAAI,UAAU,SAA8B;AACvF,QAAM,YAAY,UAAU,OAAO;AAEnC,6BAAQ,WAAA,EAAU,WAAW,0BAA0B,SAAS,IAAK,UAAS;AAChF;AAEA,KAAK,cAAc;AAKZ,SAAS,SAAS,EAAE,UAAU,YAAY,MAA+B;AAC9E,6BAAQ,MAAA,EAAG,WAAW,QAAQ,SAAS,IAAK,UAAS;AACvD;AAEA,SAAS,cAAc;"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { Table, TableHeader, TableBody, TableFooter, TableRow, TableHeadCell, TableCell } from './table';
|
|
2
|
+
export type { TableProps, TableHeaderProps, TableBodyProps, TableFooterProps, TableRowProps, TableHeadCellProps, TableCellProps } from './table';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzG,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACf,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { ReactNode, HTMLAttributes } from 'react';
|
|
2
|
+
export type TableProps = {
|
|
3
|
+
/** Table rows and sections (TableHeader, TableBody, TableFooter) */
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
/** Additional CSS classes to apply */
|
|
6
|
+
className?: string;
|
|
7
|
+
/** Whether to apply striped row styling (alternating background) */
|
|
8
|
+
striped?: boolean;
|
|
9
|
+
/** Whether to show borders around the table */
|
|
10
|
+
bordered?: boolean;
|
|
11
|
+
/** Whether rows have hover effects */
|
|
12
|
+
hoverable?: boolean;
|
|
13
|
+
/** Whether to use compact spacing for dense data */
|
|
14
|
+
compact?: boolean;
|
|
15
|
+
/** Screen-reader accessible caption for the table */
|
|
16
|
+
caption?: string;
|
|
17
|
+
} & HTMLAttributes<HTMLTableElement>;
|
|
18
|
+
export type TableHeaderProps = {
|
|
19
|
+
/** Table header rows (TableRow with TableHeadCell) */
|
|
20
|
+
children: ReactNode;
|
|
21
|
+
/** Additional CSS classes to apply */
|
|
22
|
+
className?: string;
|
|
23
|
+
} & HTMLAttributes<HTMLTableSectionElement>;
|
|
24
|
+
export type TableBodyProps = {
|
|
25
|
+
/** Table body rows (TableRow with TableCell) */
|
|
26
|
+
children: ReactNode;
|
|
27
|
+
/** Additional CSS classes to apply */
|
|
28
|
+
className?: string;
|
|
29
|
+
} & HTMLAttributes<HTMLTableSectionElement>;
|
|
30
|
+
export type TableFooterProps = {
|
|
31
|
+
/** Table footer rows (TableRow with TableCell) */
|
|
32
|
+
children: ReactNode;
|
|
33
|
+
/** Additional CSS classes to apply */
|
|
34
|
+
className?: string;
|
|
35
|
+
} & HTMLAttributes<HTMLTableSectionElement>;
|
|
36
|
+
export type TableRowProps = {
|
|
37
|
+
/** Table cells (TableCell or TableHeadCell) */
|
|
38
|
+
children: ReactNode;
|
|
39
|
+
/** Additional CSS classes to apply */
|
|
40
|
+
className?: string;
|
|
41
|
+
/** Whether the row is in a selected state */
|
|
42
|
+
selected?: boolean;
|
|
43
|
+
} & HTMLAttributes<HTMLTableRowElement>;
|
|
44
|
+
export type TableHeadCellProps = {
|
|
45
|
+
/** Content of the header cell */
|
|
46
|
+
children: ReactNode;
|
|
47
|
+
/** Additional CSS classes to apply */
|
|
48
|
+
className?: string;
|
|
49
|
+
/** Text alignment within the cell */
|
|
50
|
+
align?: 'left' | 'center' | 'right';
|
|
51
|
+
/** Scope attribute for accessibility (col for column headers, row for row headers) */
|
|
52
|
+
scope?: 'col' | 'row';
|
|
53
|
+
/** Whether text should wrap instead of truncating */
|
|
54
|
+
wrapText?: boolean;
|
|
55
|
+
} & HTMLAttributes<HTMLTableCellElement>;
|
|
56
|
+
export type TableCellProps = {
|
|
57
|
+
/** Content of the cell */
|
|
58
|
+
children: ReactNode;
|
|
59
|
+
/** Additional CSS classes to apply */
|
|
60
|
+
className?: string;
|
|
61
|
+
/** Text alignment within the cell */
|
|
62
|
+
align?: 'left' | 'center' | 'right';
|
|
63
|
+
/** Whether text should wrap instead of truncating */
|
|
64
|
+
wrapText?: boolean;
|
|
65
|
+
} & HTMLAttributes<HTMLTableCellElement>;
|
|
66
|
+
/**
|
|
67
|
+
* Table - Semantic HTML table with consistent styling
|
|
68
|
+
* - Responsive with horizontal scroll
|
|
69
|
+
* - Optional striped rows, borders, and hover effects
|
|
70
|
+
* - Compact mode for dense data
|
|
71
|
+
* - Proper semantic structure with thead, tbody, tfoot
|
|
72
|
+
*/
|
|
73
|
+
export declare function Table({ children, className, striped, bordered, hoverable, compact, caption, ...props }: Readonly<TableProps>): import("react/jsx-runtime").JSX.Element;
|
|
74
|
+
/**
|
|
75
|
+
* TableHeader - Table header section (thead)
|
|
76
|
+
*/
|
|
77
|
+
export declare function TableHeader({ children, className, ...props }: Readonly<TableHeaderProps>): import("react/jsx-runtime").JSX.Element;
|
|
78
|
+
/**
|
|
79
|
+
* TableBody - Table body section (tbody)
|
|
80
|
+
*/
|
|
81
|
+
export declare function TableBody({ children, className, ...props }: Readonly<TableBodyProps>): import("react/jsx-runtime").JSX.Element;
|
|
82
|
+
/**
|
|
83
|
+
* TableFooter - Table footer section (tfoot)
|
|
84
|
+
*/
|
|
85
|
+
export declare function TableFooter({ children, className, ...props }: Readonly<TableFooterProps>): import("react/jsx-runtime").JSX.Element;
|
|
86
|
+
/**
|
|
87
|
+
* TableRow - Table row (tr)
|
|
88
|
+
*/
|
|
89
|
+
export declare function TableRow({ children, className, selected, ...props }: Readonly<TableRowProps>): import("react/jsx-runtime").JSX.Element;
|
|
90
|
+
/**
|
|
91
|
+
* TableHeadCell - Table header cell (th)
|
|
92
|
+
* - Includes proper scope attribute for accessibility
|
|
93
|
+
* - Default scope is 'col' for column headers
|
|
94
|
+
*/
|
|
95
|
+
export declare function TableHeadCell({ children, className, align, scope, wrapText, ...props }: Readonly<TableHeadCellProps>): import("react/jsx-runtime").JSX.Element;
|
|
96
|
+
/**
|
|
97
|
+
* TableCell - Table data cell (td)
|
|
98
|
+
*/
|
|
99
|
+
export declare function TableCell({ children, className, align, wrapText, ...props }: Readonly<TableCellProps>): import("react/jsx-runtime").JSX.Element;
|
|
100
|
+
export default Table;
|
|
101
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/table/table.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
function Table({
|
|
3
|
+
children,
|
|
4
|
+
className = "",
|
|
5
|
+
striped = false,
|
|
6
|
+
bordered = false,
|
|
7
|
+
hoverable = false,
|
|
8
|
+
compact = false,
|
|
9
|
+
caption,
|
|
10
|
+
...props
|
|
11
|
+
}) {
|
|
12
|
+
const baseClasses = "w-full text-sm text-left";
|
|
13
|
+
const stripedClasses = striped ? "striped" : "";
|
|
14
|
+
const borderedClasses = bordered ? "border border-border" : "";
|
|
15
|
+
const compactClasses = compact ? "table-compact" : "";
|
|
16
|
+
return /* @__PURE__ */ jsxs("div", { className: "overflow-x-auto rounded-lg", children: [
|
|
17
|
+
/* @__PURE__ */ jsxs(
|
|
18
|
+
"table",
|
|
19
|
+
{
|
|
20
|
+
className: `${baseClasses} ${stripedClasses} ${borderedClasses} ${compactClasses} ${className}`,
|
|
21
|
+
...props,
|
|
22
|
+
children: [
|
|
23
|
+
caption && /* @__PURE__ */ jsx("caption", { className: "sr-only", children: caption }),
|
|
24
|
+
children
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
),
|
|
28
|
+
/* @__PURE__ */ jsx("style", { children: `
|
|
29
|
+
.striped tbody tr:nth-child(even) {
|
|
30
|
+
background-color: var(--muted) / 0.3;
|
|
31
|
+
}
|
|
32
|
+
${hoverable ? `
|
|
33
|
+
table tbody tr:hover {
|
|
34
|
+
background-color: var(--muted) / 0.6 !important;
|
|
35
|
+
}
|
|
36
|
+
` : ""}
|
|
37
|
+
.table-compact td,
|
|
38
|
+
.table-compact th {
|
|
39
|
+
padding: 0.5rem;
|
|
40
|
+
}
|
|
41
|
+
` })
|
|
42
|
+
] });
|
|
43
|
+
}
|
|
44
|
+
function TableHeader({ children, className = "", ...props }) {
|
|
45
|
+
return /* @__PURE__ */ jsx("thead", { className: `text-xs text-muted-foreground uppercase bg-muted/50 ${className}`, ...props, children });
|
|
46
|
+
}
|
|
47
|
+
function TableBody({ children, className = "", ...props }) {
|
|
48
|
+
return /* @__PURE__ */ jsx("tbody", { className: `divide-y divide-border ${className}`, ...props, children });
|
|
49
|
+
}
|
|
50
|
+
function TableFooter({ children, className = "", ...props }) {
|
|
51
|
+
return /* @__PURE__ */ jsx("tfoot", { className: `text-xs font-semibold text-foreground bg-muted/30 ${className}`, ...props, children });
|
|
52
|
+
}
|
|
53
|
+
function TableRow({ children, className = "", selected = false, ...props }) {
|
|
54
|
+
const selectedClasses = selected ? "bg-primary/10" : "";
|
|
55
|
+
return /* @__PURE__ */ jsx("tr", { className: `${selectedClasses} ${className}`, ...props, children });
|
|
56
|
+
}
|
|
57
|
+
function TableHeadCell({
|
|
58
|
+
children,
|
|
59
|
+
className = "",
|
|
60
|
+
align = "left",
|
|
61
|
+
scope = "col",
|
|
62
|
+
wrapText = false,
|
|
63
|
+
...props
|
|
64
|
+
}) {
|
|
65
|
+
const alignClasses = {
|
|
66
|
+
left: "text-left",
|
|
67
|
+
center: "text-center",
|
|
68
|
+
right: "text-right"
|
|
69
|
+
};
|
|
70
|
+
const wrapClasses = wrapText ? "whitespace-normal break-words" : "whitespace-nowrap";
|
|
71
|
+
return /* @__PURE__ */ jsx("th", { scope, className: `px-6 py-3 font-medium ${alignClasses[align]} ${wrapClasses} ${className}`, ...props, children });
|
|
72
|
+
}
|
|
73
|
+
function TableCell({
|
|
74
|
+
children,
|
|
75
|
+
className = "",
|
|
76
|
+
align = "left",
|
|
77
|
+
wrapText = false,
|
|
78
|
+
...props
|
|
79
|
+
}) {
|
|
80
|
+
const alignClasses = {
|
|
81
|
+
left: "text-left",
|
|
82
|
+
center: "text-center",
|
|
83
|
+
right: "text-right"
|
|
84
|
+
};
|
|
85
|
+
const wrapClasses = wrapText ? "whitespace-normal break-words" : "whitespace-nowrap";
|
|
86
|
+
return /* @__PURE__ */ jsx("td", { className: `px-6 py-4 ${wrapClasses} ${alignClasses[align]} ${className}`, ...props, children });
|
|
87
|
+
}
|
|
88
|
+
export {
|
|
89
|
+
Table,
|
|
90
|
+
TableBody,
|
|
91
|
+
TableCell,
|
|
92
|
+
TableFooter,
|
|
93
|
+
TableHeadCell,
|
|
94
|
+
TableHeader,
|
|
95
|
+
TableRow,
|
|
96
|
+
Table as default
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.js","sources":["../../../../src/components/data-display/table/table.tsx"],"sourcesContent":["import { ReactNode, HTMLAttributes } from 'react';\n\nexport type TableProps = {\n /** Table rows and sections (TableHeader, TableBody, TableFooter) */\n children: ReactNode;\n /** Additional CSS classes to apply */\n className?: string;\n /** Whether to apply striped row styling (alternating background) */\n striped?: boolean;\n /** Whether to show borders around the table */\n bordered?: boolean;\n /** Whether rows have hover effects */\n hoverable?: boolean;\n /** Whether to use compact spacing for dense data */\n compact?: boolean;\n /** Screen-reader accessible caption for the table */\n caption?: string;\n} & HTMLAttributes<HTMLTableElement>;\n\nexport type TableHeaderProps = {\n /** Table header rows (TableRow with TableHeadCell) */\n children: ReactNode;\n /** Additional CSS classes to apply */\n className?: string;\n} & HTMLAttributes<HTMLTableSectionElement>;\n\nexport type TableBodyProps = {\n /** Table body rows (TableRow with TableCell) */\n children: ReactNode;\n /** Additional CSS classes to apply */\n className?: string;\n} & HTMLAttributes<HTMLTableSectionElement>;\n\nexport type TableFooterProps = {\n /** Table footer rows (TableRow with TableCell) */\n children: ReactNode;\n /** Additional CSS classes to apply */\n className?: string;\n} & HTMLAttributes<HTMLTableSectionElement>;\n\nexport type TableRowProps = {\n /** Table cells (TableCell or TableHeadCell) */\n children: ReactNode;\n /** Additional CSS classes to apply */\n className?: string;\n /** Whether the row is in a selected state */\n selected?: boolean;\n} & HTMLAttributes<HTMLTableRowElement>;\n\nexport type TableHeadCellProps = {\n /** Content of the header cell */\n children: ReactNode;\n /** Additional CSS classes to apply */\n className?: string;\n /** Text alignment within the cell */\n align?: 'left' | 'center' | 'right';\n /** Scope attribute for accessibility (col for column headers, row for row headers) */\n scope?: 'col' | 'row';\n /** Whether text should wrap instead of truncating */\n wrapText?: boolean;\n} & HTMLAttributes<HTMLTableCellElement>;\n\nexport type TableCellProps = {\n /** Content of the cell */\n children: ReactNode;\n /** Additional CSS classes to apply */\n className?: string;\n /** Text alignment within the cell */\n align?: 'left' | 'center' | 'right';\n /** Whether text should wrap instead of truncating */\n wrapText?: boolean;\n} & HTMLAttributes<HTMLTableCellElement>;\n\n/**\n * Table - Semantic HTML table with consistent styling\n * - Responsive with horizontal scroll\n * - Optional striped rows, borders, and hover effects\n * - Compact mode for dense data\n * - Proper semantic structure with thead, tbody, tfoot\n */\nexport function Table({\n children,\n className = '',\n striped = false,\n bordered = false,\n hoverable = false,\n compact = false,\n caption,\n ...props\n}: Readonly<TableProps>) {\n const baseClasses = 'w-full text-sm text-left';\n const stripedClasses = striped ? 'striped' : '';\n const borderedClasses = bordered ? 'border border-border' : '';\n const compactClasses = compact ? 'table-compact' : '';\n\n return (\n <div className=\"overflow-x-auto rounded-lg\">\n <table\n className={`${baseClasses} ${stripedClasses} ${borderedClasses} ${compactClasses} ${className}`}\n {...props}\n >\n {caption && <caption className=\"sr-only\">{caption}</caption>}\n {children}\n </table>\n <style>{`\n .striped tbody tr:nth-child(even) {\n background-color: var(--muted) / 0.3;\n }\n ${\n hoverable\n ? `\n table tbody tr:hover {\n background-color: var(--muted) / 0.6 !important;\n }\n `\n : ''\n }\n .table-compact td,\n .table-compact th {\n padding: 0.5rem;\n }\n `}</style>\n </div>\n );\n}\n\n/**\n * TableHeader - Table header section (thead)\n */\nexport function TableHeader({ children, className = '', ...props }: Readonly<TableHeaderProps>) {\n return (\n <thead className={`text-xs text-muted-foreground uppercase bg-muted/50 ${className}`} {...props}>\n {children}\n </thead>\n );\n}\n\n/**\n * TableBody - Table body section (tbody)\n */\nexport function TableBody({ children, className = '', ...props }: Readonly<TableBodyProps>) {\n return (\n <tbody className={`divide-y divide-border ${className}`} {...props}>\n {children}\n </tbody>\n );\n}\n\n/**\n * TableFooter - Table footer section (tfoot)\n */\nexport function TableFooter({ children, className = '', ...props }: Readonly<TableFooterProps>) {\n return (\n <tfoot className={`text-xs font-semibold text-foreground bg-muted/30 ${className}`} {...props}>\n {children}\n </tfoot>\n );\n}\n\n/**\n * TableRow - Table row (tr)\n */\nexport function TableRow({ children, className = '', selected = false, ...props }: Readonly<TableRowProps>) {\n const selectedClasses = selected ? 'bg-primary/10' : '';\n\n return (\n <tr className={`${selectedClasses} ${className}`} {...props}>\n {children}\n </tr>\n );\n}\n\n/**\n * TableHeadCell - Table header cell (th)\n * - Includes proper scope attribute for accessibility\n * - Default scope is 'col' for column headers\n */\nexport function TableHeadCell({\n children,\n className = '',\n align = 'left',\n scope = 'col',\n wrapText = false,\n ...props\n}: Readonly<TableHeadCellProps>) {\n const alignClasses = {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right'\n };\n\n const wrapClasses = wrapText ? 'whitespace-normal break-words' : 'whitespace-nowrap';\n\n return (\n <th scope={scope} className={`px-6 py-3 font-medium ${alignClasses[align]} ${wrapClasses} ${className}`} {...props}>\n {children}\n </th>\n );\n}\n\n/**\n * TableCell - Table data cell (td)\n */\nexport function TableCell({\n children,\n className = '',\n align = 'left',\n wrapText = false,\n ...props\n}: Readonly<TableCellProps>) {\n const alignClasses = {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right'\n };\n\n const wrapClasses = wrapText ? 'whitespace-normal break-words' : 'whitespace-nowrap';\n\n return (\n <td className={`px-6 py-4 ${wrapClasses} ${alignClasses[align]} ${className}`} {...props}>\n {children}\n </td>\n );\n}\n\nexport default Table;\n"],"names":[],"mappings":";AAgFO,SAAS,MAAM;AAAA,EACpB;AAAA,EACA,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,UAAU;AAAA,EACV;AAAA,EACA,GAAG;AACL,GAAyB;AACvB,QAAM,cAAc;AACpB,QAAM,iBAAiB,UAAU,YAAY;AAC7C,QAAM,kBAAkB,WAAW,yBAAyB;AAC5D,QAAM,iBAAiB,UAAU,kBAAkB;AAEnD,SACE,qBAAC,OAAA,EAAI,WAAU,8BACb,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW,GAAG,WAAW,IAAI,cAAc,IAAI,eAAe,IAAI,cAAc,IAAI,SAAS;AAAA,QAC5F,GAAG;AAAA,QAEH,UAAA;AAAA,UAAA,WAAW,oBAAC,WAAA,EAAQ,WAAU,WAAW,UAAA,SAAQ;AAAA,UACjD;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,wBAEF,SAAA,EAAO,UAAA;AAAA;AAAA;AAAA;AAAA,UAKJ,YACI;AAAA;AAAA;AAAA;AAAA,YAKA,EACN;AAAA;AAAA;AAAA;AAAA;AAAA,QAAA,CAKA;AAAA,EAAA,GACJ;AAEJ;AAKO,SAAS,YAAY,EAAE,UAAU,YAAY,IAAI,GAAG,SAAqC;AAC9F,SACE,oBAAC,WAAM,WAAW,uDAAuD,SAAS,IAAK,GAAG,OACvF,UACH;AAEJ;AAKO,SAAS,UAAU,EAAE,UAAU,YAAY,IAAI,GAAG,SAAmC;AAC1F,SACE,oBAAC,WAAM,WAAW,0BAA0B,SAAS,IAAK,GAAG,OAC1D,UACH;AAEJ;AAKO,SAAS,YAAY,EAAE,UAAU,YAAY,IAAI,GAAG,SAAqC;AAC9F,SACE,oBAAC,WAAM,WAAW,qDAAqD,SAAS,IAAK,GAAG,OACrF,UACH;AAEJ;AAKO,SAAS,SAAS,EAAE,UAAU,YAAY,IAAI,WAAW,OAAO,GAAG,SAAkC;AAC1G,QAAM,kBAAkB,WAAW,kBAAkB;AAErD,SACE,oBAAC,MAAA,EAAG,WAAW,GAAG,eAAe,IAAI,SAAS,IAAK,GAAG,OACnD,SAAA,CACH;AAEJ;AAOO,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,GAAG;AACL,GAAiC;AAC/B,QAAM,eAAe;AAAA,IACnB,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAGT,QAAM,cAAc,WAAW,kCAAkC;AAEjE,SACE,oBAAC,MAAA,EAAG,OAAc,WAAW,yBAAyB,aAAa,KAAK,CAAC,IAAI,WAAW,IAAI,SAAS,IAAK,GAAG,OAC1G,UACH;AAEJ;AAKO,SAAS,UAAU;AAAA,EACxB;AAAA,EACA,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,GAAG;AACL,GAA6B;AAC3B,QAAM,eAAe;AAAA,IACnB,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAGT,QAAM,cAAc,WAAW,kCAAkC;AAEjE,SACE,oBAAC,MAAA,EAAG,WAAW,aAAa,WAAW,IAAI,aAAa,KAAK,CAAC,IAAI,SAAS,IAAK,GAAG,OAChF,UACH;AAEJ;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/timeline/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/D,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Size } from '../../../theme/size-tokens';
|
|
2
|
+
import { ColorVariant } from '../../../theme/tokens';
|
|
3
|
+
import { ReactNode } from 'react';
|
|
4
|
+
export type TimelineItemProps = {
|
|
5
|
+
/** Main content of the timeline item */
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
/** Additional CSS classes to apply */
|
|
8
|
+
className?: string;
|
|
9
|
+
/** Icon name to display in the timeline marker (if not provided, shows a dot) */
|
|
10
|
+
icon?: string;
|
|
11
|
+
/** Size of the icon */
|
|
12
|
+
iconSize?: Size;
|
|
13
|
+
/** Color variant for the icon */
|
|
14
|
+
iconColor?: ColorVariant;
|
|
15
|
+
/** Main title/heading for the timeline event */
|
|
16
|
+
title?: string;
|
|
17
|
+
/** Secondary subtitle text */
|
|
18
|
+
subtitle?: string;
|
|
19
|
+
/** Timestamp or date string to display */
|
|
20
|
+
timestamp?: string;
|
|
21
|
+
/** Whether this is the last item (hides connector line) */
|
|
22
|
+
isLast?: boolean;
|
|
23
|
+
};
|
|
24
|
+
export type TimelineProps = {
|
|
25
|
+
/** Timeline items (TimelineItem components) */
|
|
26
|
+
children: ReactNode;
|
|
27
|
+
/** Additional CSS classes to apply */
|
|
28
|
+
className?: string;
|
|
29
|
+
/** Horizontal alignment of the timeline */
|
|
30
|
+
position?: 'left' | 'center' | 'right';
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* TimelineItem - Individual event in timeline
|
|
34
|
+
*/
|
|
35
|
+
export declare function TimelineItem({ children, className, icon, iconSize, iconColor, title, subtitle, timestamp, isLast }: Readonly<TimelineItemProps>): import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
/**
|
|
37
|
+
* Timeline - Vertical timeline for events, activities, history
|
|
38
|
+
*
|
|
39
|
+
* Features:
|
|
40
|
+
* - Vertical layout with connector lines
|
|
41
|
+
* - Custom icons or default dots
|
|
42
|
+
* - Color-coded events
|
|
43
|
+
* - Titles, subtitles, timestamps
|
|
44
|
+
* - Flexible content
|
|
45
|
+
*
|
|
46
|
+
* Common uses:
|
|
47
|
+
* - Activity feeds
|
|
48
|
+
* - Order tracking
|
|
49
|
+
* - Version history
|
|
50
|
+
* - Process steps
|
|
51
|
+
*/
|
|
52
|
+
declare function Timeline({ children, className, position }: Readonly<TimelineProps>): import("react/jsx-runtime").JSX.Element;
|
|
53
|
+
declare namespace Timeline {
|
|
54
|
+
var displayName: string;
|
|
55
|
+
}
|
|
56
|
+
export default Timeline;
|
|
57
|
+
//# sourceMappingURL=timeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeline.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/timeline/timeline.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,wCAAwC;IACxC,QAAQ,EAAE,SAAS,CAAC;IACpB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,iCAAiC;IACjC,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,+CAA+C;IAC/C,QAAQ,EAAE,SAAS,CAAC;IACpB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;CACxC,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,SAAc,EACd,IAAI,EACJ,QAAe,EACf,SAAqB,EACrB,KAAK,EACL,QAAQ,EACR,SAAS,EACT,MAAc,EACf,EAAE,QAAQ,CAAC,iBAAiB,CAAC,2CA0C7B;AAED;;;;;;;;;;;;;;;GAeG;AACH,iBAAS,QAAQ,CAAC,EAAE,QAAQ,EAAE,SAAc,EAAE,QAAiB,EAAE,EAAE,QAAQ,CAAC,aAAa,CAAC,2CAQzF;kBARQ,QAAQ;;;AAYjB,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Icon } from "../../system/icon/icon.js";
|
|
3
|
+
function TimelineItem({
|
|
4
|
+
children,
|
|
5
|
+
className = "",
|
|
6
|
+
icon,
|
|
7
|
+
iconSize = "sm",
|
|
8
|
+
iconColor = "neutral",
|
|
9
|
+
title,
|
|
10
|
+
subtitle,
|
|
11
|
+
timestamp,
|
|
12
|
+
isLast = false
|
|
13
|
+
}) {
|
|
14
|
+
return /* @__PURE__ */ jsxs("div", { className: `flex gap-4 ${className}`, children: [
|
|
15
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center", children: [
|
|
16
|
+
/* @__PURE__ */ jsx(
|
|
17
|
+
"div",
|
|
18
|
+
{
|
|
19
|
+
className: `
|
|
20
|
+
flex items-center justify-center
|
|
21
|
+
w-8 h-8 rounded-full
|
|
22
|
+
shrink-0
|
|
23
|
+
`,
|
|
24
|
+
children: icon ? /* @__PURE__ */ jsx(Icon, { name: icon, size: iconSize, color: iconColor }) : /* @__PURE__ */ jsx("div", { className: "w-2 h-2 rounded-full bg-current" })
|
|
25
|
+
}
|
|
26
|
+
),
|
|
27
|
+
!isLast && /* @__PURE__ */ jsx("div", { className: "w-0.5 flex-1 bg-border mt-2" })
|
|
28
|
+
] }),
|
|
29
|
+
/* @__PURE__ */ jsxs("div", { className: `flex-1 ${!isLast ? "pb-8" : ""}`, children: [
|
|
30
|
+
(title || timestamp) && /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-4 mb-1", children: [
|
|
31
|
+
title && /* @__PURE__ */ jsx("h4", { className: "font-semibold text-foreground", children: title }),
|
|
32
|
+
timestamp && /* @__PURE__ */ jsx("time", { className: "text-sm text-muted-foreground whitespace-nowrap", children: timestamp })
|
|
33
|
+
] }),
|
|
34
|
+
subtitle && /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground mb-2", children: subtitle }),
|
|
35
|
+
children && /* @__PURE__ */ jsx("div", { className: "text-sm text-foreground", children })
|
|
36
|
+
] })
|
|
37
|
+
] });
|
|
38
|
+
}
|
|
39
|
+
function Timeline({ children, className = "", position = "left" }) {
|
|
40
|
+
const positionClasses = {
|
|
41
|
+
left: "",
|
|
42
|
+
center: "mx-auto max-w-2xl",
|
|
43
|
+
right: "ml-auto max-w-2xl"
|
|
44
|
+
};
|
|
45
|
+
return /* @__PURE__ */ jsx("div", { className: `${positionClasses[position]} ${className}`, children });
|
|
46
|
+
}
|
|
47
|
+
Timeline.displayName = "Timeline";
|
|
48
|
+
export {
|
|
49
|
+
TimelineItem,
|
|
50
|
+
Timeline as default
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=timeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeline.js","sources":["../../../../src/components/data-display/timeline/timeline.tsx"],"sourcesContent":["import { Size } from '@/theme/size-tokens';\nimport { ColorVariant } from '../../../theme/tokens';\nimport { ReactNode } from 'react';\nimport Icon from '../../system/icon/icon';\n\nexport type TimelineItemProps = {\n /** Main content of the timeline item */\n children: ReactNode;\n /** Additional CSS classes to apply */\n className?: string;\n /** Icon name to display in the timeline marker (if not provided, shows a dot) */\n icon?: string;\n /** Size of the icon */\n iconSize?: Size;\n /** Color variant for the icon */\n iconColor?: ColorVariant;\n /** Main title/heading for the timeline event */\n title?: string;\n /** Secondary subtitle text */\n subtitle?: string;\n /** Timestamp or date string to display */\n timestamp?: string;\n /** Whether this is the last item (hides connector line) */\n isLast?: boolean;\n};\n\nexport type TimelineProps = {\n /** Timeline items (TimelineItem components) */\n children: ReactNode;\n /** Additional CSS classes to apply */\n className?: string;\n /** Horizontal alignment of the timeline */\n position?: 'left' | 'center' | 'right';\n};\n\n/**\n * TimelineItem - Individual event in timeline\n */\nexport function TimelineItem({\n children,\n className = '',\n icon,\n iconSize = 'sm',\n iconColor = 'neutral',\n title,\n subtitle,\n timestamp,\n isLast = false\n}: Readonly<TimelineItemProps>) {\n return (\n <div className={`flex gap-4 ${className}`}>\n {/* Icon/Dot Column */}\n <div className=\"flex flex-col items-center\">\n {/* Icon or Dot */}\n <div\n className={`\n flex items-center justify-center\n w-8 h-8 rounded-full\n shrink-0\n `}\n >\n {icon ? (\n <Icon name={icon} size={iconSize} color={iconColor} />\n ) : (\n <div className=\"w-2 h-2 rounded-full bg-current\" />\n )}\n </div>\n\n {/* Connector Line */}\n {!isLast && <div className=\"w-0.5 flex-1 bg-border mt-2\" />}\n </div>\n\n {/* Content Column */}\n <div className={`flex-1 ${!isLast ? 'pb-8' : ''}`}>\n {/* Header */}\n {(title || timestamp) && (\n <div className=\"flex items-start justify-between gap-4 mb-1\">\n {title && <h4 className=\"font-semibold text-foreground\">{title}</h4>}\n {timestamp && <time className=\"text-sm text-muted-foreground whitespace-nowrap\">{timestamp}</time>}\n </div>\n )}\n\n {/* Subtitle */}\n {subtitle && <p className=\"text-sm text-muted-foreground mb-2\">{subtitle}</p>}\n\n {/* Content */}\n {children && <div className=\"text-sm text-foreground\">{children}</div>}\n </div>\n </div>\n );\n}\n\n/**\n * Timeline - Vertical timeline for events, activities, history\n *\n * Features:\n * - Vertical layout with connector lines\n * - Custom icons or default dots\n * - Color-coded events\n * - Titles, subtitles, timestamps\n * - Flexible content\n *\n * Common uses:\n * - Activity feeds\n * - Order tracking\n * - Version history\n * - Process steps\n */\nfunction Timeline({ children, className = '', position = 'left' }: Readonly<TimelineProps>) {\n const positionClasses = {\n left: '',\n center: 'mx-auto max-w-2xl',\n right: 'ml-auto max-w-2xl'\n };\n\n return <div className={`${positionClasses[position]} ${className}`}>{children}</div>;\n}\n\nTimeline.displayName = 'Timeline';\n\nexport default Timeline;\n"],"names":[],"mappings":";;AAsCO,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA,WAAW;AAAA,EACX,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS;AACX,GAAgC;AAC9B,SACE,qBAAC,OAAA,EAAI,WAAW,cAAc,SAAS,IAErC,UAAA;AAAA,IAAA,qBAAC,OAAA,EAAI,WAAU,8BAEb,UAAA;AAAA,MAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,UAMV,UAAA,OACC,oBAAC,MAAA,EAAK,MAAM,MAAM,MAAM,UAAU,OAAO,UAAA,CAAW,IAEpD,oBAAC,OAAA,EAAI,WAAU,kCAAA,CAAkC;AAAA,QAAA;AAAA,MAAA;AAAA,MAKpD,CAAC,UAAU,oBAAC,OAAA,EAAI,WAAU,8BAAA,CAA8B;AAAA,IAAA,GAC3D;AAAA,IAGA,qBAAC,SAAI,WAAW,UAAU,CAAC,SAAS,SAAS,EAAE,IAE3C,UAAA;AAAA,OAAA,SAAS,cACT,qBAAC,OAAA,EAAI,WAAU,+CACZ,UAAA;AAAA,QAAA,SAAS,oBAAC,MAAA,EAAG,WAAU,iCAAiC,UAAA,OAAM;AAAA,QAC9D,aAAa,oBAAC,QAAA,EAAK,WAAU,mDAAmD,UAAA,UAAA,CAAU;AAAA,MAAA,GAC7F;AAAA,MAID,YAAY,oBAAC,KAAA,EAAE,WAAU,sCAAsC,UAAA,UAAS;AAAA,MAGxE,YAAY,oBAAC,OAAA,EAAI,WAAU,2BAA2B,SAAA,CAAS;AAAA,IAAA,EAAA,CAClE;AAAA,EAAA,GACF;AAEJ;AAkBA,SAAS,SAAS,EAAE,UAAU,YAAY,IAAI,WAAW,UAAmC;AAC1F,QAAM,kBAAkB;AAAA,IACtB,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAGT,SAAO,oBAAC,OAAA,EAAI,WAAW,GAAG,gBAAgB,QAAQ,CAAC,IAAI,SAAS,IAAK,SAAA,CAAS;AAChF;AAEA,SAAS,cAAc;"}
|