@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,17 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import Text from "../../typography/text/text.js";
|
|
3
|
+
import Stack from "../stack/stack.js";
|
|
4
|
+
const SettingsSection = ({ title, description, children, className = "" }) => {
|
|
5
|
+
return /* @__PURE__ */ jsxs(Stack, { spacing: "md", className, children: [
|
|
6
|
+
/* @__PURE__ */ jsxs(Stack, { spacing: "sm", children: [
|
|
7
|
+
/* @__PURE__ */ jsx(Text, { size: "lg", weight: "medium", children: title }),
|
|
8
|
+
description && /* @__PURE__ */ jsx(Text, { variant: "muted", size: "sm", children: description })
|
|
9
|
+
] }),
|
|
10
|
+
/* @__PURE__ */ jsx(Stack, { spacing: "md", children })
|
|
11
|
+
] });
|
|
12
|
+
};
|
|
13
|
+
SettingsSection.displayName = "SettingsSection";
|
|
14
|
+
export {
|
|
15
|
+
SettingsSection
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=settings-section.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-section.js","sources":["../../../../src/components/layout/settings-page/settings-section.tsx"],"sourcesContent":["import { ReactNode } from 'react';\n\nimport Text from '../../typography/text/text';\nimport Stack from '../stack/stack';\n\nexport interface SettingsSectionProps {\n /** Section title */\n title: string;\n /** Section description (optional) */\n description?: string;\n /** Setting items or custom content */\n children: ReactNode;\n /** Additional CSS classes */\n className?: string;\n}\n\n/**\n * SettingsSection - Group related settings together\n *\n * Creates a visually distinct section within a SettingsPage.\n * Use with SettingItem components for individual settings.\n *\n * @example\n * ```tsx\n * <SettingsSection\n * title=\"Appearance\"\n * description=\"Customize how the app looks\"\n * >\n * <SettingItem label=\"Theme\">\n * <FormSelect value={theme}>...</FormSelect>\n * </SettingItem>\n * </SettingsSection>\n * ```\n */\nexport const SettingsSection = ({ title, description, children, className = '' }: SettingsSectionProps) => {\n return (\n <Stack spacing=\"md\" className={className}>\n <Stack spacing=\"sm\">\n <Text size=\"lg\" weight=\"medium\">\n {title}\n </Text>\n {description && (\n <Text variant=\"muted\" size=\"sm\">\n {description}\n </Text>\n )}\n </Stack>\n <Stack spacing=\"md\">{children}</Stack>\n </Stack>\n );\n};\n\nSettingsSection.displayName = 'SettingsSection';\n\nexport default SettingsSection;\n"],"names":[],"mappings":";;;AAkCO,MAAM,kBAAkB,CAAC,EAAE,OAAO,aAAa,UAAU,YAAY,SAA+B;AACzG,SACE,qBAAC,OAAA,EAAM,SAAQ,MAAK,WAClB,UAAA;AAAA,IAAA,qBAAC,OAAA,EAAM,SAAQ,MACb,UAAA;AAAA,MAAA,oBAAC,MAAA,EAAK,MAAK,MAAK,QAAO,UACpB,UAAA,OACH;AAAA,MACC,eACC,oBAAC,MAAA,EAAK,SAAQ,SAAQ,MAAK,MACxB,UAAA,YAAA,CACH;AAAA,IAAA,GAEJ;AAAA,IACA,oBAAC,OAAA,EAAM,SAAQ,MAAM,SAAA,CAAS;AAAA,EAAA,GAChC;AAEJ;AAEA,gBAAgB,cAAc;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/stack/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { GapSize } from '../../../theme/size-tokens';
|
|
3
|
+
type StackDirection = 'vertical' | 'horizontal';
|
|
4
|
+
type StackAlign = 'start' | 'center' | 'end' | 'stretch' | 'baseline';
|
|
5
|
+
type StackJustify = 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';
|
|
6
|
+
export type StackProps = {
|
|
7
|
+
/** Stack content - typically a list of child elements to be arranged */
|
|
8
|
+
children: React.ReactNode;
|
|
9
|
+
/** Additional CSS classes applied to the stack */
|
|
10
|
+
className?: string;
|
|
11
|
+
/** Flex direction - vertical stacks by default */
|
|
12
|
+
direction?: StackDirection;
|
|
13
|
+
/** Gap between children using the shared spacing scale */
|
|
14
|
+
spacing?: GapSize;
|
|
15
|
+
/** Cross-axis alignment of children */
|
|
16
|
+
align?: StackAlign;
|
|
17
|
+
/** Main-axis distribution of children */
|
|
18
|
+
justify?: StackJustify;
|
|
19
|
+
/** Allows items to wrap onto multiple lines */
|
|
20
|
+
wrap?: boolean;
|
|
21
|
+
/** Switches between flex and inline-flex */
|
|
22
|
+
inline?: boolean;
|
|
23
|
+
} & Omit<React.HTMLAttributes<HTMLDivElement>, 'children' | 'className'>;
|
|
24
|
+
/**
|
|
25
|
+
* Stack layout primitive
|
|
26
|
+
* Provides a flex container with direction, spacing, and alignment controls.
|
|
27
|
+
*/
|
|
28
|
+
declare function Stack({ children, className, direction, spacing, align, justify, wrap, inline, ...props }: Readonly<StackProps>): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
declare namespace Stack {
|
|
30
|
+
var displayName: string;
|
|
31
|
+
}
|
|
32
|
+
export default Stack;
|
|
33
|
+
//# sourceMappingURL=stack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/stack/stack.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAEpE,KAAK,cAAc,GAAG,UAAU,GAAG,YAAY,CAAC;AAChD,KAAK,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,CAAC;AACtE,KAAK,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAmBjF,MAAM,MAAM,UAAU,GAAG;IACvB,wEAAwE;IACxE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,0DAA0D;IAC1D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,yCAAyC;IACzC,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,CAAC;AAEzE;;;GAGG;AACH,iBAAS,KAAK,CAAC,EACb,QAAQ,EACR,SAAc,EACd,SAAsB,EACtB,OAAc,EACd,KAAiB,EACjB,OAAO,EACP,IAAY,EACZ,MAAc,EACd,GAAG,KAAK,EACT,EAAE,QAAQ,CAAC,UAAU,CAAC,2CAkBtB;kBA5BQ,KAAK;;;AAgCd,eAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { gapSizes } from "../../../theme/size-tokens.js";
|
|
3
|
+
const alignClasses = {
|
|
4
|
+
start: "items-start",
|
|
5
|
+
center: "items-center",
|
|
6
|
+
end: "items-end",
|
|
7
|
+
stretch: "items-stretch",
|
|
8
|
+
baseline: "items-baseline"
|
|
9
|
+
};
|
|
10
|
+
const justifyClasses = {
|
|
11
|
+
start: "justify-start",
|
|
12
|
+
center: "justify-center",
|
|
13
|
+
end: "justify-end",
|
|
14
|
+
between: "justify-between",
|
|
15
|
+
around: "justify-around",
|
|
16
|
+
evenly: "justify-evenly"
|
|
17
|
+
};
|
|
18
|
+
function Stack({
|
|
19
|
+
children,
|
|
20
|
+
className = "",
|
|
21
|
+
direction = "vertical",
|
|
22
|
+
spacing = "md",
|
|
23
|
+
align = "stretch",
|
|
24
|
+
justify,
|
|
25
|
+
wrap = false,
|
|
26
|
+
inline = false,
|
|
27
|
+
...props
|
|
28
|
+
}) {
|
|
29
|
+
const classes = [
|
|
30
|
+
inline ? "inline-flex" : "flex",
|
|
31
|
+
direction === "horizontal" ? "flex-row" : "flex-col",
|
|
32
|
+
gapSizes[spacing],
|
|
33
|
+
alignClasses[align],
|
|
34
|
+
justify && justifyClasses[justify],
|
|
35
|
+
wrap ? "flex-wrap" : "flex-nowrap",
|
|
36
|
+
className
|
|
37
|
+
].filter(Boolean).join(" ");
|
|
38
|
+
return /* @__PURE__ */ jsx("div", { "data-component": "Stack", className: classes, ...props, children });
|
|
39
|
+
}
|
|
40
|
+
Stack.displayName = "Stack";
|
|
41
|
+
export {
|
|
42
|
+
Stack as default
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=stack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stack.js","sources":["../../../../src/components/layout/stack/stack.tsx"],"sourcesContent":["import React from 'react';\n\nimport { gapSizes, type GapSize } from '../../../theme/size-tokens';\n\ntype StackDirection = 'vertical' | 'horizontal';\ntype StackAlign = 'start' | 'center' | 'end' | 'stretch' | 'baseline';\ntype StackJustify = 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';\n\nconst alignClasses: Record<StackAlign, string> = {\n start: 'items-start',\n center: 'items-center',\n end: 'items-end',\n stretch: 'items-stretch',\n baseline: 'items-baseline'\n};\n\nconst justifyClasses: Record<StackJustify, string> = {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly'\n};\n\nexport type StackProps = {\n /** Stack content - typically a list of child elements to be arranged */\n children: React.ReactNode;\n /** Additional CSS classes applied to the stack */\n className?: string;\n /** Flex direction - vertical stacks by default */\n direction?: StackDirection;\n /** Gap between children using the shared spacing scale */\n spacing?: GapSize;\n /** Cross-axis alignment of children */\n align?: StackAlign;\n /** Main-axis distribution of children */\n justify?: StackJustify;\n /** Allows items to wrap onto multiple lines */\n wrap?: boolean;\n /** Switches between flex and inline-flex */\n inline?: boolean;\n} & Omit<React.HTMLAttributes<HTMLDivElement>, 'children' | 'className'>;\n\n/**\n * Stack layout primitive\n * Provides a flex container with direction, spacing, and alignment controls.\n */\nfunction Stack({\n children,\n className = '',\n direction = 'vertical',\n spacing = 'md',\n align = 'stretch',\n justify,\n wrap = false,\n inline = false,\n ...props\n}: Readonly<StackProps>) {\n const classes = [\n inline ? 'inline-flex' : 'flex',\n direction === 'horizontal' ? 'flex-row' : 'flex-col',\n gapSizes[spacing],\n alignClasses[align],\n justify && justifyClasses[justify],\n wrap ? 'flex-wrap' : 'flex-nowrap',\n className\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div data-component=\"Stack\" className={classes} {...props}>\n {children}\n </div>\n );\n}\n\nStack.displayName = 'Stack';\n\nexport default Stack;\n"],"names":[],"mappings":";;AAQA,MAAM,eAA2C;AAAA,EAC/C,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,SAAS;AAAA,EACT,UAAU;AACZ;AAEA,MAAM,iBAA+C;AAAA,EACnD,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AACV;AAyBA,SAAS,MAAM;AAAA,EACb;AAAA,EACA,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,QAAQ;AAAA,EACR;AAAA,EACA,OAAO;AAAA,EACP,SAAS;AAAA,EACT,GAAG;AACL,GAAyB;AACvB,QAAM,UAAU;AAAA,IACd,SAAS,gBAAgB;AAAA,IACzB,cAAc,eAAe,aAAa;AAAA,IAC1C,SAAS,OAAO;AAAA,IAChB,aAAa,KAAK;AAAA,IAClB,WAAW,eAAe,OAAO;AAAA,IACjC,OAAO,cAAc;AAAA,IACrB;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,oBAAC,SAAI,kBAAe,SAAQ,WAAW,SAAU,GAAG,OACjD,UACH;AAEJ;AAEA,MAAM,cAAc;"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { ComponentType, MouseEvent, ReactNode } from 'react';
|
|
2
|
+
import { ColorVariant } from '../../../theme/tokens';
|
|
3
|
+
export type BreadcrumbItem = {
|
|
4
|
+
/** Display text for the breadcrumb */
|
|
5
|
+
label: string;
|
|
6
|
+
/** Optional navigation link (last item typically has no href) */
|
|
7
|
+
href?: string;
|
|
8
|
+
/** Optional click handler for client-side navigation */
|
|
9
|
+
onClick?: (event: MouseEvent<HTMLAnchorElement>) => void;
|
|
10
|
+
/** Additional props passed to the link component (e.g., 'to' for React Router Link) */
|
|
11
|
+
[key: string]: unknown;
|
|
12
|
+
/** Color variant for the breadcrumb link (defaults to standard link color) */
|
|
13
|
+
variant?: ColorVariant;
|
|
14
|
+
};
|
|
15
|
+
export type BreadcrumbsProps = {
|
|
16
|
+
/** Array of breadcrumb items to display in hierarchical order */
|
|
17
|
+
items: BreadcrumbItem[];
|
|
18
|
+
/** Custom separator to display between items (defaults to '/') */
|
|
19
|
+
separator?: ReactNode;
|
|
20
|
+
/** Additional CSS classes for the breadcrumb container */
|
|
21
|
+
className?: string;
|
|
22
|
+
/** Custom link component (e.g., React Router Link) for client-side navigation */
|
|
23
|
+
linkComponent?: ComponentType<{
|
|
24
|
+
className?: string;
|
|
25
|
+
onClick?: (e: MouseEvent<HTMLAnchorElement>) => void;
|
|
26
|
+
[key: string]: unknown;
|
|
27
|
+
}>;
|
|
28
|
+
variant?: ColorVariant;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Breadcrumbs - Hierarchical path display
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* // With onClick handlers
|
|
35
|
+
* <Breadcrumbs
|
|
36
|
+
* items={[
|
|
37
|
+
* { label: 'Home', href: '/', onClick: () => navigate('/') },
|
|
38
|
+
* { label: 'Products', href: '/products', onClick: () => navigate('/products') },
|
|
39
|
+
* { label: 'Item' }
|
|
40
|
+
* ]}
|
|
41
|
+
* />
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* // With React Router Link component
|
|
45
|
+
* import { Link } from 'react-router-dom';
|
|
46
|
+
*
|
|
47
|
+
* <Breadcrumbs
|
|
48
|
+
* linkComponent={Link}
|
|
49
|
+
* items={[
|
|
50
|
+
* { label: 'Home', to: '/' },
|
|
51
|
+
* { label: 'Products', to: '/products' },
|
|
52
|
+
* { label: 'Item' }
|
|
53
|
+
* ]}
|
|
54
|
+
* />
|
|
55
|
+
*/
|
|
56
|
+
declare function Breadcrumbs({ items, separator, className, linkComponent, variant }: Readonly<BreadcrumbsProps>): import("react/jsx-runtime").JSX.Element;
|
|
57
|
+
declare namespace Breadcrumbs {
|
|
58
|
+
var displayName: string;
|
|
59
|
+
}
|
|
60
|
+
export default Breadcrumbs;
|
|
61
|
+
//# sourceMappingURL=breadcrumbs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"breadcrumbs.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/breadcrumbs/breadcrumbs.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAiB,MAAM,uBAAuB,CAAC;AAEpE,MAAM,MAAM,cAAc,GAAG;IAC3B,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACzD,uFAAuF;IACvF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,iEAAiE;IACjE,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,kEAAkE;IAClE,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,aAAa,CAAC,EAAE,aAAa,CAAC;QAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;QACrD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,iBAAS,WAAW,CAAC,EACnB,KAAK,EACL,SAAe,EACf,SAAc,EACd,aAAa,EACb,OAAmB,EACpB,EAAE,QAAQ,CAAC,gBAAgB,CAAC,2CAwC5B;kBA9CQ,WAAW;;;AAkDpB,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { colorVariants } from "../../../theme/tokens.js";
|
|
3
|
+
function Breadcrumbs({
|
|
4
|
+
items,
|
|
5
|
+
separator = "/",
|
|
6
|
+
className = "",
|
|
7
|
+
linkComponent,
|
|
8
|
+
variant = "neutral"
|
|
9
|
+
}) {
|
|
10
|
+
const LinkComponent = linkComponent || "a";
|
|
11
|
+
return /* @__PURE__ */ jsx("nav", { "aria-label": "Breadcrumb", className, children: /* @__PURE__ */ jsx("ol", { className: "flex items-center space-x-2 text-sm", children: items.map((item, index) => {
|
|
12
|
+
const isLast = index === items.length - 1;
|
|
13
|
+
const key = item.href || item.label;
|
|
14
|
+
const { label: _label, onClick, href, ...linkProps } = item;
|
|
15
|
+
const hasLinkProps = href || onClick || Object.keys(linkProps).length > 0;
|
|
16
|
+
const shouldRenderLink = hasLinkProps && !isLast;
|
|
17
|
+
const itemVariant = item.variant ?? variant;
|
|
18
|
+
const linkClasses = colorVariants.breadcrumb.link[itemVariant];
|
|
19
|
+
const activeClasses = colorVariants.breadcrumb.active[itemVariant];
|
|
20
|
+
return /* @__PURE__ */ jsxs("li", { className: "flex items-center", children: [
|
|
21
|
+
shouldRenderLink ? /* @__PURE__ */ jsx(LinkComponent, { ...href ? { href } : {}, ...linkProps, onClick, className: linkClasses, children: item.label }) : /* @__PURE__ */ jsx("span", { className: isLast ? activeClasses : "text-muted-foreground", children: item.label }),
|
|
22
|
+
!isLast && /* @__PURE__ */ jsx("span", { className: "mx-2 text-muted-foreground select-none", "aria-hidden": "true", children: separator })
|
|
23
|
+
] }, key);
|
|
24
|
+
}) }) });
|
|
25
|
+
}
|
|
26
|
+
Breadcrumbs.displayName = "Breadcrumbs";
|
|
27
|
+
export {
|
|
28
|
+
Breadcrumbs as default
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=breadcrumbs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"breadcrumbs.js","sources":["../../../../src/components/navigation/breadcrumbs/breadcrumbs.tsx"],"sourcesContent":["import { ComponentType, MouseEvent, ReactNode } from 'react';\nimport { ColorVariant, colorVariants } from '../../../theme/tokens';\n\nexport type BreadcrumbItem = {\n /** Display text for the breadcrumb */\n label: string;\n /** Optional navigation link (last item typically has no href) */\n href?: string;\n /** Optional click handler for client-side navigation */\n onClick?: (event: MouseEvent<HTMLAnchorElement>) => void;\n /** Additional props passed to the link component (e.g., 'to' for React Router Link) */\n [key: string]: unknown;\n /** Color variant for the breadcrumb link (defaults to standard link color) */\n variant?: ColorVariant;\n};\n\nexport type BreadcrumbsProps = {\n /** Array of breadcrumb items to display in hierarchical order */\n items: BreadcrumbItem[];\n /** Custom separator to display between items (defaults to '/') */\n separator?: ReactNode;\n /** Additional CSS classes for the breadcrumb container */\n className?: string;\n /** Custom link component (e.g., React Router Link) for client-side navigation */\n linkComponent?: ComponentType<{\n className?: string;\n onClick?: (e: MouseEvent<HTMLAnchorElement>) => void;\n [key: string]: unknown;\n }>;\n variant?: ColorVariant;\n};\n\n/**\n * Breadcrumbs - Hierarchical path display\n *\n * @example\n * // With onClick handlers\n * <Breadcrumbs\n * items={[\n * { label: 'Home', href: '/', onClick: () => navigate('/') },\n * { label: 'Products', href: '/products', onClick: () => navigate('/products') },\n * { label: 'Item' }\n * ]}\n * />\n *\n * @example\n * // With React Router Link component\n * import { Link } from 'react-router-dom';\n *\n * <Breadcrumbs\n * linkComponent={Link}\n * items={[\n * { label: 'Home', to: '/' },\n * { label: 'Products', to: '/products' },\n * { label: 'Item' }\n * ]}\n * />\n */\nfunction Breadcrumbs({\n items,\n separator = '/',\n className = '',\n linkComponent,\n variant = 'neutral'\n}: Readonly<BreadcrumbsProps>) {\n const LinkComponent = linkComponent || 'a';\n\n return (\n <nav aria-label=\"Breadcrumb\" className={className}>\n <ol className=\"flex items-center space-x-2 text-sm\">\n {items.map((item, index) => {\n const isLast = index === items.length - 1;\n const key = item.href || item.label;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { label: _label, onClick, href, ...linkProps } = item;\n\n const hasLinkProps = href || onClick || Object.keys(linkProps).length > 0;\n const shouldRenderLink = hasLinkProps && !isLast;\n\n const itemVariant = item.variant ?? variant;\n const linkClasses = colorVariants.breadcrumb.link[itemVariant];\n const activeClasses = colorVariants.breadcrumb.active[itemVariant];\n\n return (\n <li key={key} className=\"flex items-center\">\n {shouldRenderLink ? (\n <LinkComponent {...(href ? { href } : {})} {...linkProps} onClick={onClick} className={linkClasses}>\n {item.label}\n </LinkComponent>\n ) : (\n <span className={isLast ? activeClasses : 'text-muted-foreground'}>{item.label}</span>\n )}\n {!isLast && (\n <span className=\"mx-2 text-muted-foreground select-none\" aria-hidden=\"true\">\n {separator}\n </span>\n )}\n </li>\n );\n })}\n </ol>\n </nav>\n );\n}\n\nBreadcrumbs.displayName = 'Breadcrumbs';\n\nexport default Breadcrumbs;\n"],"names":[],"mappings":";;AA0DA,SAAS,YAAY;AAAA,EACnB;AAAA,EACA,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ;AAAA,EACA,UAAU;AACZ,GAA+B;AAC7B,QAAM,gBAAgB,iBAAiB;AAEvC,SACE,oBAAC,OAAA,EAAI,cAAW,cAAa,WAC3B,UAAA,oBAAC,MAAA,EAAG,WAAU,uCACX,UAAA,MAAM,IAAI,CAAC,MAAM,UAAU;AAC1B,UAAM,SAAS,UAAU,MAAM,SAAS;AACxC,UAAM,MAAM,KAAK,QAAQ,KAAK;AAG9B,UAAM,EAAE,OAAO,QAAQ,SAAS,MAAM,GAAG,cAAc;AAEvD,UAAM,eAAe,QAAQ,WAAW,OAAO,KAAK,SAAS,EAAE,SAAS;AACxE,UAAM,mBAAmB,gBAAgB,CAAC;AAE1C,UAAM,cAAc,KAAK,WAAW;AACpC,UAAM,cAAc,cAAc,WAAW,KAAK,WAAW;AAC7D,UAAM,gBAAgB,cAAc,WAAW,OAAO,WAAW;AAEjE,WACE,qBAAC,MAAA,EAAa,WAAU,qBACrB,UAAA;AAAA,MAAA,mBACC,oBAAC,eAAA,EAAe,GAAI,OAAO,EAAE,SAAS,CAAA,GAAM,GAAG,WAAW,SAAkB,WAAW,aACpF,UAAA,KAAK,MAAA,CACR,IAEA,oBAAC,QAAA,EAAK,WAAW,SAAS,gBAAgB,yBAA0B,UAAA,KAAK,MAAA,CAAM;AAAA,MAEhF,CAAC,UACA,oBAAC,QAAA,EAAK,WAAU,0CAAyC,eAAY,QAClE,UAAA,UAAA,CACH;AAAA,IAAA,EAAA,GAXK,GAaT;AAAA,EAEJ,CAAC,GACH,GACF;AAEJ;AAEA,YAAY,cAAc;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/breadcrumbs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ButtonProps } from '../../forms/button/button';
|
|
3
|
+
import { Size } from '../../../theme/size-tokens';
|
|
4
|
+
export type DropdownTriggerProps = {
|
|
5
|
+
/** Main label text */
|
|
6
|
+
title: string;
|
|
7
|
+
/** Optional secondary text shown below the title */
|
|
8
|
+
subtitle?: string;
|
|
9
|
+
/** Optional leading icon */
|
|
10
|
+
icon?: string;
|
|
11
|
+
/** Size of the leading icon */
|
|
12
|
+
iconSize?: Size;
|
|
13
|
+
/** Size variant for the trigger button */
|
|
14
|
+
triggerSize?: ButtonProps['size'];
|
|
15
|
+
/** Optional trailing icon */
|
|
16
|
+
endIcon?: string;
|
|
17
|
+
};
|
|
18
|
+
export type DropdownProps = {
|
|
19
|
+
/** Trigger configuration - rendered as an accessible Button */
|
|
20
|
+
trigger: DropdownTriggerProps;
|
|
21
|
+
children: React.ReactNode;
|
|
22
|
+
className?: string;
|
|
23
|
+
align?: 'start' | 'center' | 'end';
|
|
24
|
+
autoClose?: boolean;
|
|
25
|
+
/** Size of the dropdown panel and items */
|
|
26
|
+
size?: ButtonProps['size'];
|
|
27
|
+
/** Button variant for the trigger */
|
|
28
|
+
variant?: ButtonProps['variant'];
|
|
29
|
+
/** Button style for the trigger */
|
|
30
|
+
buttonStyle?: ButtonProps['style'];
|
|
31
|
+
/** Minimum width for the dropdown menu and all items (e.g., '200px', '16rem') */
|
|
32
|
+
minWidth?: string;
|
|
33
|
+
/** Maximum width for the dropdown menu (e.g., '400px', '24rem') */
|
|
34
|
+
maxWidth?: string;
|
|
35
|
+
/** Additional styles for the dropdown menu */
|
|
36
|
+
menuClassName?: string;
|
|
37
|
+
};
|
|
38
|
+
type DropdownContextValue = {
|
|
39
|
+
requestClose: () => void;
|
|
40
|
+
autoClose: boolean;
|
|
41
|
+
registerItem?: (el: HTMLButtonElement | null, index?: number) => void;
|
|
42
|
+
minWidth?: string;
|
|
43
|
+
size?: ButtonProps['size'];
|
|
44
|
+
};
|
|
45
|
+
export declare function useDropdown(): DropdownContextValue;
|
|
46
|
+
/**
|
|
47
|
+
* Dropdown component with click-outside handling
|
|
48
|
+
*/
|
|
49
|
+
declare function Dropdown({ trigger, children, className, align, autoClose, size, variant, buttonStyle, minWidth, maxWidth, menuClassName }: Readonly<DropdownProps>): import("react/jsx-runtime").JSX.Element;
|
|
50
|
+
declare namespace Dropdown {
|
|
51
|
+
var displayName: string;
|
|
52
|
+
}
|
|
53
|
+
export default Dropdown;
|
|
54
|
+
export type DropdownItemProps = {
|
|
55
|
+
children: React.ReactNode;
|
|
56
|
+
onSelect?: () => void;
|
|
57
|
+
/** Semantic color variant */
|
|
58
|
+
variant?: 'neutral' | 'primary' | 'accent' | 'info' | 'success' | 'warning' | 'error';
|
|
59
|
+
disabled?: boolean;
|
|
60
|
+
className?: string;
|
|
61
|
+
/** Optional muted description below main label */
|
|
62
|
+
description?: string;
|
|
63
|
+
/** Leading icon */
|
|
64
|
+
icon?: string;
|
|
65
|
+
iconSize?: Size;
|
|
66
|
+
/** Trailing icon (e.g., checkmark for selected items) */
|
|
67
|
+
endIcon?: string;
|
|
68
|
+
/** Inherit size from dropdown or override */
|
|
69
|
+
size?: 'sm' | 'md';
|
|
70
|
+
/** Marks item as selected with enhanced background and optional checkmark */
|
|
71
|
+
selected?: boolean;
|
|
72
|
+
__dropdownIndex?: number;
|
|
73
|
+
__registerItem?: (el: HTMLButtonElement | null, index: number) => void;
|
|
74
|
+
};
|
|
75
|
+
export declare function DropdownItem({ children, onSelect, variant, disabled, className, description, icon, iconSize, endIcon, size, selected }: Readonly<DropdownItemProps>): import("react/jsx-runtime").JSX.Element;
|
|
76
|
+
/**
|
|
77
|
+
* DropdownSeparator - Visual divider for grouping dropdown items
|
|
78
|
+
* Use between items to create visual separation (e.g., separating error actions)
|
|
79
|
+
*/
|
|
80
|
+
export declare function DropdownSeparator({ className }: Readonly<{
|
|
81
|
+
className?: string;
|
|
82
|
+
}>): import("react/jsx-runtime").JSX.Element;
|
|
83
|
+
//# sourceMappingURL=dropdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dropdown.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/dropdown/dropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+F,MAAM,OAAO,CAAC;AAEpH,OAAe,EAAE,KAAK,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,EAAY,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,MAAM,oBAAoB,GAAG;IACjC,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,6BAA6B;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,+DAA+D;IAC/D,OAAO,EAAE,oBAAoB,CAAC;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,qCAAqC;IACrC,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACjC,mCAAmC;IACnC,WAAW,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACnC,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,iBAAiB,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC5B,CAAC;AAIF,wBAAgB,WAAW,yBAI1B;AAED;;GAEG;AACH,iBAAS,QAAQ,CAAC,EAChB,OAAO,EACP,QAAQ,EACR,SAAc,EACd,KAAe,EACf,SAAgB,EAChB,IAAW,EACX,OAAmB,EACnB,WAAqB,EACrB,QAAQ,EACR,QAAQ,EACR,aAAkB,EACnB,EAAE,QAAQ,CAAC,aAAa,CAAC,2CA4MzB;kBAxNQ,QAAQ;;;AA4NjB,eAAe,QAAQ,CAAC;AA+BxB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACtF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,iBAAiB,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACxE,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,QAAQ,EACR,OAAmB,EACnB,QAAgB,EAChB,SAAc,EACd,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,QAAgB,EACjB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,2CAoE7B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,SAAc,EAAE,EAAE,QAAQ,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,2CAErF"}
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useRef, useCallback, useEffect, useLayoutEffect, useContext, createContext } from "react";
|
|
3
|
+
import { createPortal } from "react-dom";
|
|
4
|
+
import Button from "../../forms/button/button.js";
|
|
5
|
+
import { Icon } from "../../system/icon/icon.js";
|
|
6
|
+
import { gapSizes } from "../../../theme/size-tokens.js";
|
|
7
|
+
const DropdownContext = createContext(null);
|
|
8
|
+
function Dropdown({
|
|
9
|
+
trigger,
|
|
10
|
+
children,
|
|
11
|
+
className = "",
|
|
12
|
+
align = "start",
|
|
13
|
+
autoClose = true,
|
|
14
|
+
size = "md",
|
|
15
|
+
variant = "neutral",
|
|
16
|
+
buttonStyle = "solid",
|
|
17
|
+
minWidth,
|
|
18
|
+
maxWidth,
|
|
19
|
+
menuClassName = ""
|
|
20
|
+
}) {
|
|
21
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
22
|
+
const dropdownRef = useRef(null);
|
|
23
|
+
const triggerRef = useRef(null);
|
|
24
|
+
const menuRef = useRef(null);
|
|
25
|
+
const itemsRef = useRef([]);
|
|
26
|
+
const [activeIndex, setActiveIndex] = useState(-1);
|
|
27
|
+
const [menuPosition, setMenuPosition] = useState(null);
|
|
28
|
+
const close = useCallback(() => setIsOpen(false), []);
|
|
29
|
+
const open = useCallback(() => setIsOpen(true), []);
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
if (!isOpen) return;
|
|
32
|
+
const handleKey = (e) => {
|
|
33
|
+
if (!menuRef.current) return;
|
|
34
|
+
const itemEls = itemsRef.current.filter(Boolean);
|
|
35
|
+
if (["ArrowDown", "ArrowUp", "Home", "End"].includes(e.key)) {
|
|
36
|
+
e.preventDefault();
|
|
37
|
+
if (itemEls.length === 0) return;
|
|
38
|
+
let nextIndex = activeIndex;
|
|
39
|
+
if (e.key === "ArrowDown") nextIndex = (activeIndex + 1) % itemEls.length;
|
|
40
|
+
if (e.key === "ArrowUp") nextIndex = (activeIndex - 1 + itemEls.length) % itemEls.length;
|
|
41
|
+
if (e.key === "Home") nextIndex = 0;
|
|
42
|
+
if (e.key === "End") nextIndex = itemEls.length - 1;
|
|
43
|
+
setActiveIndex(nextIndex);
|
|
44
|
+
itemEls[nextIndex]?.focus();
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (e.key === "Escape") {
|
|
48
|
+
e.preventDefault();
|
|
49
|
+
close();
|
|
50
|
+
triggerRef.current?.focus();
|
|
51
|
+
}
|
|
52
|
+
if (e.key === "Tab") {
|
|
53
|
+
e.preventDefault();
|
|
54
|
+
const itemEls2 = itemsRef.current.filter(Boolean);
|
|
55
|
+
if (itemEls2.length === 0) return;
|
|
56
|
+
const dir = e.shiftKey ? -1 : 1;
|
|
57
|
+
const nextIndex = (activeIndex + dir + itemEls2.length) % itemEls2.length;
|
|
58
|
+
setActiveIndex(nextIndex);
|
|
59
|
+
itemEls2[nextIndex]?.focus();
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
document.addEventListener("keydown", handleKey);
|
|
63
|
+
return () => document.removeEventListener("keydown", handleKey);
|
|
64
|
+
}, [isOpen, activeIndex, close]);
|
|
65
|
+
useEffect(() => {
|
|
66
|
+
if (!isOpen) return;
|
|
67
|
+
const handleClickOutside = (event) => {
|
|
68
|
+
const isClickInTrigger = dropdownRef.current && dropdownRef.current.contains(event.target);
|
|
69
|
+
const isClickInMenu = menuRef.current && menuRef.current.contains(event.target);
|
|
70
|
+
if (!isClickInTrigger && !isClickInMenu) {
|
|
71
|
+
close();
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
75
|
+
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
76
|
+
}, [isOpen, close]);
|
|
77
|
+
useLayoutEffect(() => {
|
|
78
|
+
if (isOpen && triggerRef.current) {
|
|
79
|
+
const rect = triggerRef.current.getBoundingClientRect();
|
|
80
|
+
setMenuPosition({
|
|
81
|
+
top: rect.bottom,
|
|
82
|
+
left: rect.left,
|
|
83
|
+
width: rect.width
|
|
84
|
+
});
|
|
85
|
+
} else {
|
|
86
|
+
setMenuPosition(null);
|
|
87
|
+
}
|
|
88
|
+
}, [isOpen]);
|
|
89
|
+
useEffect(() => {
|
|
90
|
+
if (!isOpen) return;
|
|
91
|
+
const handleScrollOrResize = (event) => {
|
|
92
|
+
if (event && event.target && menuRef.current?.contains(event.target)) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
close();
|
|
96
|
+
};
|
|
97
|
+
window.addEventListener("scroll", handleScrollOrResize, true);
|
|
98
|
+
window.addEventListener("resize", handleScrollOrResize);
|
|
99
|
+
return () => {
|
|
100
|
+
window.removeEventListener("scroll", handleScrollOrResize, true);
|
|
101
|
+
window.removeEventListener("resize", handleScrollOrResize);
|
|
102
|
+
};
|
|
103
|
+
}, [isOpen, close]);
|
|
104
|
+
useLayoutEffect(() => {
|
|
105
|
+
let raf;
|
|
106
|
+
if (isOpen) {
|
|
107
|
+
const itemEls = itemsRef.current.filter(Boolean);
|
|
108
|
+
if (itemEls.length) {
|
|
109
|
+
raf = requestAnimationFrame(() => {
|
|
110
|
+
setActiveIndex(0);
|
|
111
|
+
itemEls[0]?.focus();
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
} else {
|
|
115
|
+
raf = requestAnimationFrame(() => setActiveIndex(-1));
|
|
116
|
+
}
|
|
117
|
+
return () => {
|
|
118
|
+
if (raf) cancelAnimationFrame(raf);
|
|
119
|
+
};
|
|
120
|
+
}, [isOpen]);
|
|
121
|
+
const registerItem = useCallback((el, index) => {
|
|
122
|
+
if (typeof index === "number" && index >= 0) {
|
|
123
|
+
itemsRef.current[index] = el;
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
if (el === null) {
|
|
127
|
+
itemsRef.current = itemsRef.current.filter((x) => x !== el && x != null);
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
if (!itemsRef.current.includes(el)) itemsRef.current.push(el);
|
|
131
|
+
}, []);
|
|
132
|
+
const { title, subtitle, icon, iconSize = "md", triggerSize = size, endIcon } = trigger;
|
|
133
|
+
const iconNode = icon ? /* @__PURE__ */ jsx(Icon, { name: icon, size: iconSize, color: "currentColor" }) : null;
|
|
134
|
+
const endIconNode = endIcon ? /* @__PURE__ */ jsx(Icon, { name: endIcon, size: iconSize, color: "currentColor" }) : null;
|
|
135
|
+
const getAlignmentStyle = () => {
|
|
136
|
+
if (!menuPosition) return {};
|
|
137
|
+
const baseStyle = {
|
|
138
|
+
top: menuPosition.top + 4,
|
|
139
|
+
// slightly lower than trigger
|
|
140
|
+
minWidth: minWidth || void 0,
|
|
141
|
+
maxWidth: maxWidth || void 0
|
|
142
|
+
};
|
|
143
|
+
if (align === "start") {
|
|
144
|
+
baseStyle.left = menuPosition.left;
|
|
145
|
+
} else if (align === "end") {
|
|
146
|
+
baseStyle.right = window.innerWidth - (menuPosition.left + menuPosition.width);
|
|
147
|
+
} else {
|
|
148
|
+
baseStyle.left = menuPosition.left + menuPosition.width / 2;
|
|
149
|
+
baseStyle.transform = "translateX(-50%)";
|
|
150
|
+
}
|
|
151
|
+
return baseStyle;
|
|
152
|
+
};
|
|
153
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
154
|
+
/* @__PURE__ */ jsx("div", { ref: dropdownRef, className: `inline-block ${className}`, children: /* @__PURE__ */ jsx(
|
|
155
|
+
Button,
|
|
156
|
+
{
|
|
157
|
+
ref: triggerRef,
|
|
158
|
+
variant,
|
|
159
|
+
style: buttonStyle,
|
|
160
|
+
onClick: () => isOpen ? close() : open(),
|
|
161
|
+
"aria-expanded": isOpen,
|
|
162
|
+
"aria-haspopup": "true",
|
|
163
|
+
"aria-controls": isOpen ? "dropdown-menu" : void 0,
|
|
164
|
+
size: triggerSize,
|
|
165
|
+
children: /* @__PURE__ */ jsxs("span", { className: `flex items-center ${gapSizes[iconSize]}`, children: [
|
|
166
|
+
iconNode && /* @__PURE__ */ jsx("span", { className: "shrink-0", children: iconNode }),
|
|
167
|
+
(title || subtitle) && /* @__PURE__ */ jsxs("span", { className: subtitle ? "text-left" : "", children: [
|
|
168
|
+
/* @__PURE__ */ jsx("span", { className: subtitle ? "block font-semibold" : "", children: title }),
|
|
169
|
+
subtitle && /* @__PURE__ */ jsx("span", { className: "block text-xs text-muted-foreground font-normal", children: subtitle })
|
|
170
|
+
] }),
|
|
171
|
+
endIconNode && /* @__PURE__ */ jsx("span", { className: "shrink-0", children: endIconNode })
|
|
172
|
+
] })
|
|
173
|
+
}
|
|
174
|
+
) }),
|
|
175
|
+
isOpen && menuPosition && createPortal(
|
|
176
|
+
/* @__PURE__ */ jsx(DropdownContext.Provider, { value: { requestClose: close, autoClose, registerItem, minWidth, size }, children: /* @__PURE__ */ jsx(
|
|
177
|
+
"div",
|
|
178
|
+
{
|
|
179
|
+
id: "dropdown-menu",
|
|
180
|
+
ref: menuRef,
|
|
181
|
+
className: `fixed bg-popover text-popover-foreground border border-border rounded-md shadow-lg z-50 ${size === "sm" ? "min-w-36 text-xs py-1" : "min-w-44"} max-h-80 overflow-y-auto origin-top animate-scaleIn focus:outline-none ${menuClassName}`,
|
|
182
|
+
style: getAlignmentStyle(),
|
|
183
|
+
role: "menu",
|
|
184
|
+
"aria-orientation": "vertical",
|
|
185
|
+
tabIndex: -1,
|
|
186
|
+
children
|
|
187
|
+
}
|
|
188
|
+
) }),
|
|
189
|
+
document.body
|
|
190
|
+
)
|
|
191
|
+
] });
|
|
192
|
+
}
|
|
193
|
+
Dropdown.displayName = "Dropdown";
|
|
194
|
+
const sizeTextMap = {
|
|
195
|
+
xs: "text-xs",
|
|
196
|
+
sm: "text-sm",
|
|
197
|
+
md: "text-base",
|
|
198
|
+
lg: "text-lg",
|
|
199
|
+
xl: "text-xl"
|
|
200
|
+
};
|
|
201
|
+
const descriptionTextMap = {
|
|
202
|
+
xs: "text-[10px]",
|
|
203
|
+
// smaller than xs
|
|
204
|
+
sm: "text-xs",
|
|
205
|
+
md: "text-sm",
|
|
206
|
+
lg: "text-base",
|
|
207
|
+
xl: "text-lg"
|
|
208
|
+
};
|
|
209
|
+
const sizePaddingMap = {
|
|
210
|
+
xs: "px-2 py-1",
|
|
211
|
+
sm: "px-2.5 py-1.5",
|
|
212
|
+
md: "px-3.5 py-2",
|
|
213
|
+
lg: "px-4 py-2.5",
|
|
214
|
+
xl: "px-5 py-3"
|
|
215
|
+
};
|
|
216
|
+
function DropdownItem({
|
|
217
|
+
children,
|
|
218
|
+
onSelect,
|
|
219
|
+
variant = "neutral",
|
|
220
|
+
disabled = false,
|
|
221
|
+
className = "",
|
|
222
|
+
description,
|
|
223
|
+
icon,
|
|
224
|
+
iconSize,
|
|
225
|
+
endIcon,
|
|
226
|
+
size,
|
|
227
|
+
selected = false
|
|
228
|
+
}) {
|
|
229
|
+
const ctx = useContext(DropdownContext);
|
|
230
|
+
const effectiveSize = size ?? ctx?.size ?? "md";
|
|
231
|
+
const effectiveIconSize = iconSize ?? effectiveSize;
|
|
232
|
+
const base = `${sizeTextMap[effectiveSize] || sizeTextMap.md} ${sizePaddingMap[effectiveSize] || sizePaddingMap.md} w-full text-left select-none transition-colors outline-none disabled:opacity-40 disabled:pointer-events-none`;
|
|
233
|
+
const focus = "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-popover";
|
|
234
|
+
const palette = {
|
|
235
|
+
default: "text-foreground/90 hover:bg-muted active:bg-muted/80",
|
|
236
|
+
primary: "text-primary hover:bg-primary/15 active:bg-primary/25 focus-visible:ring-primary",
|
|
237
|
+
accent: "text-accent hover:bg-accent/15 active:bg-accent/25 focus-visible:ring-accent",
|
|
238
|
+
info: "text-info hover:bg-info/15 active:bg-info/25 focus-visible:ring-info",
|
|
239
|
+
success: "text-success hover:bg-success/15 active:bg-success/25 focus-visible:ring-success",
|
|
240
|
+
warning: "text-warning hover:bg-warning/18 active:bg-warning/28 focus-visible:ring-warning",
|
|
241
|
+
error: "text-error hover:bg-error/15 active:bg-error/25 focus-visible:ring-error"
|
|
242
|
+
};
|
|
243
|
+
const selectedPalette = {
|
|
244
|
+
default: "bg-muted text-foreground hover:bg-muted-hover hover:text-foreground",
|
|
245
|
+
primary: "bg-primary text-primary-foreground hover:bg-primary-hover hover:text-primary-foreground",
|
|
246
|
+
accent: "bg-accent text-accent-foreground hover:bg-accent-hover hover:text-accent-foreground",
|
|
247
|
+
info: "bg-info text-info-foreground hover:bg-info-hover hover:text-info-foreground",
|
|
248
|
+
success: "bg-success text-success-foreground hover:bg-success-hover hover:text-success-foreground",
|
|
249
|
+
warning: "bg-warning text-warning-foreground hover:bg-warning-hover hover:text-warning-foreground",
|
|
250
|
+
error: "bg-error text-error-foreground hover:bg-error-hover hover:text-error-foreground"
|
|
251
|
+
};
|
|
252
|
+
const variantClasses = selected ? selectedPalette[variant] || selectedPalette.default : palette[variant] || palette.default;
|
|
253
|
+
const hasIcons = icon || endIcon;
|
|
254
|
+
const iconNode = icon ? /* @__PURE__ */ jsx(Icon, { name: icon, size: effectiveIconSize, color: "currentColor" }) : null;
|
|
255
|
+
const endIconNode = endIcon ? /* @__PURE__ */ jsx(Icon, { name: endIcon, size: effectiveIconSize, color: "currentColor" }) : null;
|
|
256
|
+
return /* @__PURE__ */ jsxs(
|
|
257
|
+
"button",
|
|
258
|
+
{
|
|
259
|
+
ref: (el) => ctx?.registerItem?.(el),
|
|
260
|
+
role: "menuitem",
|
|
261
|
+
type: "button",
|
|
262
|
+
disabled,
|
|
263
|
+
"aria-current": selected ? "true" : void 0,
|
|
264
|
+
onClick: () => {
|
|
265
|
+
if (disabled) return;
|
|
266
|
+
onSelect?.();
|
|
267
|
+
if (ctx?.autoClose) ctx.requestClose();
|
|
268
|
+
},
|
|
269
|
+
className: `${base} ${focus} ${variantClasses} ${hasIcons ? "flex flex-row items-center gap-2.5" : "flex flex-col"} ${className} cursor-pointer`,
|
|
270
|
+
children: [
|
|
271
|
+
iconNode && /* @__PURE__ */ jsx("span", { className: "shrink-0", children: iconNode }),
|
|
272
|
+
/* @__PURE__ */ jsxs("span", { className: "flex-1 min-w-0", children: [
|
|
273
|
+
/* @__PURE__ */ jsx("span", { className: `block font-medium leading-snug`, children }),
|
|
274
|
+
description && /* @__PURE__ */ jsx(
|
|
275
|
+
"span",
|
|
276
|
+
{
|
|
277
|
+
className: `block ${descriptionTextMap[effectiveSize] || descriptionTextMap.md} text-foreground/60 mt-0.5 line-clamp-2`,
|
|
278
|
+
children: description
|
|
279
|
+
}
|
|
280
|
+
)
|
|
281
|
+
] }),
|
|
282
|
+
endIconNode && /* @__PURE__ */ jsx("span", { className: "shrink-0", children: endIconNode })
|
|
283
|
+
]
|
|
284
|
+
}
|
|
285
|
+
);
|
|
286
|
+
}
|
|
287
|
+
function DropdownSeparator({ className = "" }) {
|
|
288
|
+
return /* @__PURE__ */ jsx("div", { role: "separator", className: `h-px bg-border ${className}` });
|
|
289
|
+
}
|
|
290
|
+
export {
|
|
291
|
+
DropdownItem,
|
|
292
|
+
DropdownSeparator,
|
|
293
|
+
Dropdown as default
|
|
294
|
+
};
|
|
295
|
+
//# sourceMappingURL=dropdown.js.map
|