@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 @@
|
|
|
1
|
+
{"version":3,"file":"drawer.js","sources":["../../../../src/components/layout/drawer/drawer.tsx"],"sourcesContent":["import { ReactNode } from 'react';\nimport { createPortal } from 'react-dom';\nimport useOverlay from '../../feedback/overlay/useOverlay';\n\nimport { overlaySizes, OverlaySize } from '../../../theme/size-tokens';\nimport IconButton from '../../forms/button/button';\n\nexport type DrawerProps = {\n /** Controls drawer visibility */\n isOpen: boolean;\n /** Callback fired when drawer should close */\n onClose: () => void;\n /** Drawer content */\n children: ReactNode;\n /** Side of the screen from which drawer slides in */\n position?: 'left' | 'right' | 'top' | 'bottom';\n /** Additional CSS classes applied to the drawer panel */\n className?: string;\n /** Optional header title displayed at the top of the drawer */\n title?: string;\n /** Size - uses unified overlay sizes */\n size?: OverlaySize;\n /** Close drawer when Escape key is pressed */\n closeOnEscape?: boolean;\n /** Close drawer when clicking outside the panel (on backdrop) */\n closeOnOutside?: boolean;\n /** Unmount drawer from DOM after exit animation completes */\n unmountOnExit?: boolean;\n /** Disable slide animation for instant open/close */\n noAnimation?: boolean;\n};\n\n/**\n * Drawer - Simple, reliable slide-in panel\n */\nfunction Drawer({\n isOpen,\n onClose,\n children,\n position = 'right',\n className = '',\n title,\n size = 'md',\n closeOnEscape = true,\n closeOnOutside = true,\n unmountOnExit = true,\n noAnimation = false\n}: Readonly<DrawerProps>) {\n const { phase, shouldRender, ref, getPhaseClass } = useOverlay<HTMLDivElement>({\n isOpen,\n lockScroll: true,\n restoreFocus: true,\n focusTrap: true,\n unmountOnExit,\n exitDuration: noAnimation ? 0 : 250,\n animationFrames: noAnimation ? 0 : 0\n });\n\n // If closed & unmounting, skip render\n if (!shouldRender) return null;\n\n const sizeClasses = overlaySizes[size];\n\n const edgeClasses: Record<string, string> = {\n left: 'left-0 top-0 bottom-0',\n right: 'right-0 top-0 bottom-0',\n top: 'top-0 left-0 right-0 h-96',\n bottom: 'bottom-0 left-0 right-0 h-96'\n };\n\n const closedTransform: Record<string, string> = {\n left: '-translate-x-full',\n right: 'translate-x-full',\n top: '-translate-y-full',\n bottom: 'translate-y-full'\n };\n\n const openTransform = 'translate-x-0 translate-y-0';\n const panelTransform = noAnimation ? '' : getPhaseClass(openTransform, closedTransform[position]);\n const overlayOpacity = noAnimation ? 'opacity-100' : getPhaseClass('opacity-100', 'opacity-0');\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Escape' && closeOnEscape) {\n e.stopPropagation();\n onClose();\n }\n };\n\n const panel = (\n <>\n {/* Overlay */}\n <button\n type=\"button\"\n className={`fixed inset-0 z-999 bg-black/50 backdrop-blur-sm transition-opacity duration-250 ease-in-out ${overlayOpacity} border-0 p-0 m-0`}\n aria-label={closeOnOutside ? 'Close overlay' : undefined}\n aria-hidden={!closeOnOutside}\n tabIndex={closeOnOutside ? 0 : -1}\n onClick={() => closeOnOutside && onClose()}\n onKeyDown={(e) => {\n if (!closeOnOutside) return;\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onClose();\n }\n }}\n data-phase={phase}\n />\n {/* Panel */}\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions -- This <div> is used as a dialog with role=\"dialog\" and appropriate ARIA attributes. Keyboard interactions are handled for accessibility compliance. */}\n <div\n ref={ref}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={title || 'Drawer'}\n tabIndex={-1}\n data-phase={phase}\n data-position={position}\n className={`fixed ${edgeClasses[position]} ${position === 'left' || position === 'right' ? sizeClasses : ''} bg-card text-card-foreground shadow-2xl z-1000 flex flex-col outline-none ${panelTransform} ${noAnimation ? '' : 'transition-transform duration-250 ease-out will-change-transform'} ${className}`}\n onKeyDown={handleKeyDown}\n >\n {title && (\n <div className=\"flex items-center justify-between px-5 py-4 border-b border-border/60 bg-card/95 backdrop-blur-sm\">\n <h2 className=\"text-base font-semibold tracking-tight\">{title}</h2>\n <IconButton\n ariaLabel=\"Close drawer\"\n style=\"ghost\"\n icon=\"IconX\"\n onClick={onClose}\n aria-label=\"Close drawer\"\n />\n </div>\n )}\n <div className=\"flex-1 overflow-y-auto p-5 flex flex-col gap-4\">{children}</div>\n </div>\n </>\n );\n\n return createPortal(panel, document.body);\n}\n\nDrawer.displayName = 'Drawer';\n\nexport default Drawer;\n"],"names":["IconButton"],"mappings":";;;;;AAmCA,SAAS,OAAO;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,YAAY;AAAA,EACZ;AAAA,EACA,OAAO;AAAA,EACP,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,cAAc;AAChB,GAA0B;AACxB,QAAM,EAAE,OAAO,cAAc,KAAK,cAAA,IAAkB,WAA2B;AAAA,IAC7E;AAAA,IACA,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,WAAW;AAAA,IACX;AAAA,IACA,cAAc,cAAc,IAAI;AAAA,IAChC,iBAAiB,cAAc,IAAI;AAAA,EAAA,CACpC;AAGD,MAAI,CAAC,aAAc,QAAO;AAE1B,QAAM,cAAc,aAAa,IAAI;AAErC,QAAM,cAAsC;AAAA,IAC1C,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,IACL,QAAQ;AAAA,EAAA;AAGV,QAAM,kBAA0C;AAAA,IAC9C,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,IACL,QAAQ;AAAA,EAAA;AAGV,QAAM,gBAAgB;AACtB,QAAM,iBAAiB,cAAc,KAAK,cAAc,eAAe,gBAAgB,QAAQ,CAAC;AAChG,QAAM,iBAAiB,cAAc,gBAAgB,cAAc,eAAe,WAAW;AAE7F,QAAM,gBAAgB,CAAC,MAA2B;AAChD,QAAI,EAAE,QAAQ,YAAY,eAAe;AACvC,QAAE,gBAAA;AACF,cAAA;AAAA,IACF;AAAA,EACF;AAEA,QAAM,QACJ,qBAAA,UAAA,EAEE,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAW,gGAAgG,cAAc;AAAA,QACzH,cAAY,iBAAiB,kBAAkB;AAAA,QAC/C,eAAa,CAAC;AAAA,QACd,UAAU,iBAAiB,IAAI;AAAA,QAC/B,SAAS,MAAM,kBAAkB,QAAA;AAAA,QACjC,WAAW,CAAC,MAAM;AAChB,cAAI,CAAC,eAAgB;AACrB,cAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,KAAK;AACtC,cAAE,eAAA;AACF,oBAAA;AAAA,UACF;AAAA,QACF;AAAA,QACA,cAAY;AAAA,MAAA;AAAA,IAAA;AAAA,IAId;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,MAAK;AAAA,QACL,cAAW;AAAA,QACX,cAAY,SAAS;AAAA,QACrB,UAAU;AAAA,QACV,cAAY;AAAA,QACZ,iBAAe;AAAA,QACf,WAAW,SAAS,YAAY,QAAQ,CAAC,IAAI,aAAa,UAAU,aAAa,UAAU,cAAc,EAAE,8EAA8E,cAAc,IAAI,cAAc,KAAK,kEAAkE,IAAI,SAAS;AAAA,QAC7S,WAAW;AAAA,QAEV,UAAA;AAAA,UAAA,SACC,qBAAC,OAAA,EAAI,WAAU,qGACb,UAAA;AAAA,YAAA,oBAAC,MAAA,EAAG,WAAU,0CAA0C,UAAA,OAAM;AAAA,YAC9D;AAAA,cAACA;AAAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,OAAM;AAAA,gBACN,MAAK;AAAA,gBACL,SAAS;AAAA,gBACT,cAAW;AAAA,cAAA;AAAA,YAAA;AAAA,UACb,GACF;AAAA,UAEF,oBAAC,OAAA,EAAI,WAAU,kDAAkD,SAAA,CAAS;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAC5E,GACF;AAGF,SAAO,aAAa,OAAO,SAAS,IAAI;AAC1C;AAEA,OAAO,cAAc;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/drawer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export type Feature = {
|
|
3
|
+
/** Icon component to display for the feature */
|
|
4
|
+
icon: ReactNode;
|
|
5
|
+
/** Feature title text */
|
|
6
|
+
title: string;
|
|
7
|
+
/** Feature description text */
|
|
8
|
+
description: string;
|
|
9
|
+
};
|
|
10
|
+
export type FeatureSectionProps = {
|
|
11
|
+
/** Optional section title displayed above features */
|
|
12
|
+
title?: string;
|
|
13
|
+
/** Optional section description displayed below title */
|
|
14
|
+
description?: string;
|
|
15
|
+
/** Array of feature objects to display in the grid */
|
|
16
|
+
features: Feature[];
|
|
17
|
+
/** Maximum number of columns in the feature grid */
|
|
18
|
+
columns?: 2 | 3 | 4;
|
|
19
|
+
/** Whether feature content is centered horizontally */
|
|
20
|
+
centered?: boolean;
|
|
21
|
+
/** Additional CSS classes applied to the section */
|
|
22
|
+
className?: string;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* FeatureSection Component - Features grid
|
|
26
|
+
* - Display features with icons in a responsive grid
|
|
27
|
+
* - Configurable column count
|
|
28
|
+
* - Optional section title and description
|
|
29
|
+
* - Icon-first design pattern
|
|
30
|
+
*/
|
|
31
|
+
declare function FeatureSection({ title, description, features, columns, centered, className }: Readonly<FeatureSectionProps>): import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
declare namespace FeatureSection {
|
|
33
|
+
var displayName: string;
|
|
34
|
+
}
|
|
35
|
+
export default FeatureSection;
|
|
36
|
+
//# sourceMappingURL=feature-section.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-section.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/feature-section/feature-section.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQlC,MAAM,MAAM,OAAO,GAAG;IACpB,gDAAgD;IAChD,IAAI,EAAE,SAAS,CAAC;IAChB,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,oDAAoD;IACpD,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;GAMG;AACH,iBAAS,cAAc,CAAC,EACtB,KAAK,EACL,WAAW,EACX,QAAQ,EACR,OAAW,EACX,QAAe,EACf,SAAc,EACf,EAAE,QAAQ,CAAC,mBAAmB,CAAC,2CAqC/B;kBA5CQ,cAAc;;;AAgDvB,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import Container from "../container/container.js";
|
|
3
|
+
import Grid from "../grid/grid.js";
|
|
4
|
+
import Heading from "../../typography/heading/heading.js";
|
|
5
|
+
import Text from "../../typography/text/text.js";
|
|
6
|
+
import Stack from "../stack/stack.js";
|
|
7
|
+
function FeatureSection({
|
|
8
|
+
title,
|
|
9
|
+
description,
|
|
10
|
+
features,
|
|
11
|
+
columns = 3,
|
|
12
|
+
centered = true,
|
|
13
|
+
className = ""
|
|
14
|
+
}) {
|
|
15
|
+
return /* @__PURE__ */ jsx("section", { className: `py-16 md:py-20 ${className}`, children: /* @__PURE__ */ jsxs(Container, { marginX: "sm", children: [
|
|
16
|
+
(title || description) && /* @__PURE__ */ jsxs(Stack, { spacing: "md", className: `mb-12 md:mb-16 ${centered ? "text-center max-w-3xl mx-auto" : "max-w-3xl"}`, children: [
|
|
17
|
+
title && /* @__PURE__ */ jsx(Heading, { level: 2, hasMargin: true, children: title }),
|
|
18
|
+
description && /* @__PURE__ */ jsx(Text, { className: "text-lg md:text-xl", children: description })
|
|
19
|
+
] }),
|
|
20
|
+
/* @__PURE__ */ jsx(Grid, { itemSize: "md", maxCols: columns, gap: "lg", children: features.map((feature, index) => /* @__PURE__ */ jsxs("article", { className: centered ? "text-center" : "", children: [
|
|
21
|
+
/* @__PURE__ */ jsx(
|
|
22
|
+
"span",
|
|
23
|
+
{
|
|
24
|
+
className: `inline-flex items-center justify-center w-12 h-12 md:w-16 md:h-16 rounded-lg md:rounded-xl bg-primary/10 text-primary mb-4 md:mb-6 ${centered ? "" : "mr-auto"}`,
|
|
25
|
+
children: feature.icon
|
|
26
|
+
}
|
|
27
|
+
),
|
|
28
|
+
/* @__PURE__ */ jsx(Heading, { level: 3, className: "text-xl font-semibold mb-2 md:mb-3", children: feature.title }),
|
|
29
|
+
/* @__PURE__ */ jsx(Text, { variant: "muted", className: "text-sm md:text-base", children: feature.description })
|
|
30
|
+
] }, index)) })
|
|
31
|
+
] }) });
|
|
32
|
+
}
|
|
33
|
+
FeatureSection.displayName = "FeatureSection";
|
|
34
|
+
export {
|
|
35
|
+
FeatureSection as default
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=feature-section.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-section.js","sources":["../../../../src/components/layout/feature-section/feature-section.tsx"],"sourcesContent":["import { ReactNode } from 'react';\n\nimport Container from '../container/container';\nimport Grid from '../grid/grid';\nimport Heading from '../../typography/heading/heading';\nimport Text from '../../typography/text/text';\nimport Stack from '../stack/stack';\n\nexport type Feature = {\n /** Icon component to display for the feature */\n icon: ReactNode;\n /** Feature title text */\n title: string;\n /** Feature description text */\n description: string;\n};\n\nexport type FeatureSectionProps = {\n /** Optional section title displayed above features */\n title?: string;\n /** Optional section description displayed below title */\n description?: string;\n /** Array of feature objects to display in the grid */\n features: Feature[];\n /** Maximum number of columns in the feature grid */\n columns?: 2 | 3 | 4;\n /** Whether feature content is centered horizontally */\n centered?: boolean;\n /** Additional CSS classes applied to the section */\n className?: string;\n};\n\n/**\n * FeatureSection Component - Features grid\n * - Display features with icons in a responsive grid\n * - Configurable column count\n * - Optional section title and description\n * - Icon-first design pattern\n */\nfunction FeatureSection({\n title,\n description,\n features,\n columns = 3,\n centered = true,\n className = ''\n}: Readonly<FeatureSectionProps>) {\n return (\n <section className={`py-16 md:py-20 ${className}`}>\n <Container marginX=\"sm\">\n {(title || description) && (\n <Stack spacing=\"md\" className={`mb-12 md:mb-16 ${centered ? 'text-center max-w-3xl mx-auto' : 'max-w-3xl'}`}>\n {title && (\n <Heading level={2} hasMargin>\n {title}\n </Heading>\n )}\n {description && <Text className=\"text-lg md:text-xl\">{description}</Text>}\n </Stack>\n )}\n\n <Grid itemSize=\"md\" maxCols={columns} gap=\"lg\">\n {features.map((feature, index) => (\n <article key={index} className={centered ? 'text-center' : ''}>\n <span\n className={`inline-flex items-center justify-center w-12 h-12 md:w-16 md:h-16 rounded-lg md:rounded-xl bg-primary/10 text-primary mb-4 md:mb-6 ${\n centered ? '' : 'mr-auto'\n }`}\n >\n {feature.icon}\n </span>\n <Heading level={3} className=\"text-xl font-semibold mb-2 md:mb-3\">\n {feature.title}\n </Heading>\n <Text variant=\"muted\" className=\"text-sm md:text-base\">\n {feature.description}\n </Text>\n </article>\n ))}\n </Grid>\n </Container>\n </section>\n );\n}\n\nFeatureSection.displayName = 'FeatureSection';\n\nexport default FeatureSection;\n"],"names":[],"mappings":";;;;;;AAuCA,SAAS,eAAe;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,WAAW;AAAA,EACX,YAAY;AACd,GAAkC;AAChC,SACE,oBAAC,aAAQ,WAAW,kBAAkB,SAAS,IAC7C,UAAA,qBAAC,WAAA,EAAU,SAAQ,MACf,UAAA;AAAA,KAAA,SAAS,gBACT,qBAAC,OAAA,EAAM,SAAQ,MAAK,WAAW,kBAAkB,WAAW,kCAAkC,WAAW,IACtG,UAAA;AAAA,MAAA,6BACE,SAAA,EAAQ,OAAO,GAAG,WAAS,MACzB,UAAA,OACH;AAAA,MAED,eAAe,oBAAC,MAAA,EAAK,WAAU,sBAAsB,UAAA,YAAA,CAAY;AAAA,IAAA,GACpE;AAAA,wBAGD,MAAA,EAAK,UAAS,MAAK,SAAS,SAAS,KAAI,MACvC,UAAA,SAAS,IAAI,CAAC,SAAS,UACtB,qBAAC,aAAoB,WAAW,WAAW,gBAAgB,IACzD,UAAA;AAAA,MAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW,sIACT,WAAW,KAAK,SAClB;AAAA,UAEC,UAAA,QAAQ;AAAA,QAAA;AAAA,MAAA;AAAA,0BAEV,SAAA,EAAQ,OAAO,GAAG,WAAU,sCAC1B,kBAAQ,OACX;AAAA,0BACC,MAAA,EAAK,SAAQ,SAAQ,WAAU,wBAC7B,kBAAQ,YAAA,CACX;AAAA,IAAA,EAAA,GAbY,KAcd,CACD,EAAA,CACH;AAAA,EAAA,EAAA,CACF,EAAA,CACF;AAEJ;AAEA,eAAe,cAAc;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/feature-section/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { MarginXSize } from '../../../theme/size-tokens';
|
|
3
|
+
export type FooterSection = {
|
|
4
|
+
/** Section heading text */
|
|
5
|
+
title: string;
|
|
6
|
+
/** Array of links with label, href, and optional external flag */
|
|
7
|
+
links: Array<{
|
|
8
|
+
label: string;
|
|
9
|
+
href: string;
|
|
10
|
+
external?: boolean;
|
|
11
|
+
}>;
|
|
12
|
+
};
|
|
13
|
+
export type FooterProps = {
|
|
14
|
+
/** Array of footer sections containing grouped links */
|
|
15
|
+
sections?: FooterSection[];
|
|
16
|
+
/** Copyright text displayed at the bottom */
|
|
17
|
+
copyright?: string;
|
|
18
|
+
/** Social media icons or links to display */
|
|
19
|
+
social?: ReactNode;
|
|
20
|
+
/** Additional CSS classes applied to the footer element */
|
|
21
|
+
className?: string;
|
|
22
|
+
/** Horizontal margin spacing using unified size system */
|
|
23
|
+
marginX?: MarginXSize;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Footer Component - Site footer
|
|
27
|
+
* - Multi-column link sections
|
|
28
|
+
* - Copyright text
|
|
29
|
+
* - Social media icons
|
|
30
|
+
* - Responsive layout
|
|
31
|
+
*/
|
|
32
|
+
declare function Footer({ sections, copyright, social, className, marginX }: Readonly<FooterProps>): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
declare namespace Footer {
|
|
34
|
+
var displayName: string;
|
|
35
|
+
}
|
|
36
|
+
export default Footer;
|
|
37
|
+
//# sourceMappingURL=footer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"footer.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/footer/footer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMlC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,MAAM,aAAa,GAAG;IAC1B,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,KAAK,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACnE,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAC3B,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB,CAAC;AAEF;;;;;;GAMG;AACH,iBAAS,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,SAAc,EAAE,OAAc,EAAE,EAAE,QAAQ,CAAC,WAAW,CAAC,2CA0CrG;kBA1CQ,MAAM;;;AA8Cf,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import Container from "../container/container.js";
|
|
3
|
+
import Grid from "../grid/grid.js";
|
|
4
|
+
import Text from "../../typography/text/text.js";
|
|
5
|
+
import Link from "../../typography/link/link.js";
|
|
6
|
+
function Footer({ sections, copyright, social, className = "", marginX = "sm" }) {
|
|
7
|
+
return /* @__PURE__ */ jsx("footer", { className: `border-t border-border bg-muted/20 ${className}`, children: /* @__PURE__ */ jsxs(Container, { marginX, children: [
|
|
8
|
+
sections && sections.length > 0 && /* @__PURE__ */ jsx("div", { className: "py-12 md:py-16", children: /* @__PURE__ */ jsx(Grid, { itemSize: "xs", maxCols: 4, gap: "lg", children: sections.map((section, index) => /* @__PURE__ */ jsxs("div", { children: [
|
|
9
|
+
/* @__PURE__ */ jsx("h3", { className: "font-semibold text-foreground mb-4", children: section.title }),
|
|
10
|
+
/* @__PURE__ */ jsx("ul", { className: "space-y-3", children: section.links.map((link, linkIndex) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
|
|
11
|
+
Link,
|
|
12
|
+
{
|
|
13
|
+
href: link.href,
|
|
14
|
+
external: link.external,
|
|
15
|
+
className: "text-sm text-muted hover:text-foreground transition-colors",
|
|
16
|
+
children: link.label
|
|
17
|
+
}
|
|
18
|
+
) }, linkIndex)) })
|
|
19
|
+
] }, index)) }) }),
|
|
20
|
+
/* @__PURE__ */ jsxs(
|
|
21
|
+
"div",
|
|
22
|
+
{
|
|
23
|
+
className: `${sections && sections.length > 0 ? "border-t border-border" : ""} py-6 flex flex-col md:flex-row items-center justify-between gap-4`,
|
|
24
|
+
children: [
|
|
25
|
+
copyright && /* @__PURE__ */ jsx(Text, { hasMargin: true, variant: "muted", className: "text-sm text-center md:text-left", children: copyright }),
|
|
26
|
+
social && /* @__PURE__ */ jsx("div", { className: "flex items-center space-x-4", children: social })
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
)
|
|
30
|
+
] }) });
|
|
31
|
+
}
|
|
32
|
+
Footer.displayName = "Footer";
|
|
33
|
+
export {
|
|
34
|
+
Footer as default
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=footer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"footer.js","sources":["../../../../src/components/layout/footer/footer.tsx"],"sourcesContent":["import { ReactNode } from 'react';\n\nimport Container from '../container/container';\nimport Grid from '../grid/grid';\nimport Text from '../../typography/text/text';\nimport Link from '../../typography/link/link';\nimport { MarginXSize } from '@/theme/size-tokens';\n\nexport type FooterSection = {\n /** Section heading text */\n title: string;\n /** Array of links with label, href, and optional external flag */\n links: Array<{ label: string; href: string; external?: boolean }>;\n};\n\nexport type FooterProps = {\n /** Array of footer sections containing grouped links */\n sections?: FooterSection[];\n /** Copyright text displayed at the bottom */\n copyright?: string;\n /** Social media icons or links to display */\n social?: ReactNode;\n /** Additional CSS classes applied to the footer element */\n className?: string;\n /** Horizontal margin spacing using unified size system */\n marginX?: MarginXSize;\n};\n\n/**\n * Footer Component - Site footer\n * - Multi-column link sections\n * - Copyright text\n * - Social media icons\n * - Responsive layout\n */\nfunction Footer({ sections, copyright, social, className = '', marginX = 'sm' }: Readonly<FooterProps>) {\n return (\n <footer className={`border-t border-border bg-muted/20 ${className}`}>\n <Container marginX={marginX}>\n {sections && sections.length > 0 && (\n <div className=\"py-12 md:py-16\">\n <Grid itemSize=\"xs\" maxCols={4} gap=\"lg\">\n {sections.map((section, index) => (\n <div key={index}>\n <h3 className=\"font-semibold text-foreground mb-4\">{section.title}</h3>\n <ul className=\"space-y-3\">\n {section.links.map((link, linkIndex) => (\n <li key={linkIndex}>\n <Link\n href={link.href}\n external={link.external}\n className=\"text-sm text-muted hover:text-foreground transition-colors\"\n >\n {link.label}\n </Link>\n </li>\n ))}\n </ul>\n </div>\n ))}\n </Grid>\n </div>\n )}\n\n <div\n className={`${sections && sections.length > 0 ? 'border-t border-border' : ''} py-6 flex flex-col md:flex-row items-center justify-between gap-4`}\n >\n {copyright && (\n <Text hasMargin variant=\"muted\" className=\"text-sm text-center md:text-left\">\n {copyright}\n </Text>\n )}\n {social && <div className=\"flex items-center space-x-4\">{social}</div>}\n </div>\n </Container>\n </footer>\n );\n}\n\nFooter.displayName = 'Footer';\n\nexport default Footer;\n"],"names":[],"mappings":";;;;;AAmCA,SAAS,OAAO,EAAE,UAAU,WAAW,QAAQ,YAAY,IAAI,UAAU,QAA+B;AACtG,SACE,oBAAC,YAAO,WAAW,sCAAsC,SAAS,IAChE,UAAA,qBAAC,aAAU,SACR,UAAA;AAAA,IAAA,YAAY,SAAS,SAAS,KAC7B,oBAAC,SAAI,WAAU,kBACb,8BAAC,MAAA,EAAK,UAAS,MAAK,SAAS,GAAG,KAAI,MACjC,UAAA,SAAS,IAAI,CAAC,SAAS,UACtB,qBAAC,OAAA,EACC,UAAA;AAAA,MAAA,oBAAC,MAAA,EAAG,WAAU,sCAAsC,UAAA,QAAQ,OAAM;AAAA,MAClE,oBAAC,MAAA,EAAG,WAAU,aACX,UAAA,QAAQ,MAAM,IAAI,CAAC,MAAM,cACxB,oBAAC,MAAA,EACC,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAM,KAAK;AAAA,UACX,UAAU,KAAK;AAAA,UACf,WAAU;AAAA,UAET,UAAA,KAAK;AAAA,QAAA;AAAA,MAAA,EACR,GAPO,SAQT,CACD,EAAA,CACH;AAAA,IAAA,EAAA,GAdQ,KAeV,CACD,EAAA,CACH,GACF;AAAA,IAGF;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW,GAAG,YAAY,SAAS,SAAS,IAAI,2BAA2B,EAAE;AAAA,QAE5E,UAAA;AAAA,UAAA,aACC,oBAAC,QAAK,WAAS,MAAC,SAAQ,SAAQ,WAAU,oCACvC,UAAA,UAAA,CACH;AAAA,UAED,UAAU,oBAAC,OAAA,EAAI,WAAU,+BAA+B,UAAA,OAAA,CAAO;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAClE,EAAA,CACF,EAAA,CACF;AAEJ;AAEA,OAAO,cAAc;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/footer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export type GridProps = {
|
|
3
|
+
/** Grid items to be laid out in responsive columns */
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
/** Additional CSS classes applied to the grid container */
|
|
6
|
+
className?: string;
|
|
7
|
+
/** Size of grid items (controls minimum width before wrapping) */
|
|
8
|
+
itemSize?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
|
|
9
|
+
/** Maximum number of columns (optional constraint) */
|
|
10
|
+
maxCols?: number;
|
|
11
|
+
/** Gap between grid items - uses unified size system */
|
|
12
|
+
gap?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
|
|
13
|
+
/** Responsive column configuration for different breakpoints */
|
|
14
|
+
responsive?: {
|
|
15
|
+
sm?: number;
|
|
16
|
+
md?: number;
|
|
17
|
+
lg?: number;
|
|
18
|
+
xl?: number;
|
|
19
|
+
};
|
|
20
|
+
/** Align items vertically */
|
|
21
|
+
alignItems?: 'start' | 'center' | 'end' | 'stretch';
|
|
22
|
+
/** Justify items horizontally */
|
|
23
|
+
justifyItems?: 'start' | 'center' | 'end' | 'stretch';
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Grid - Responsive grid layout component
|
|
27
|
+
*
|
|
28
|
+
* Features:
|
|
29
|
+
* - Auto-responsive grid using CSS Grid auto-fit/auto-fill
|
|
30
|
+
* - Configurable minimum item width (items wrap when too narrow)
|
|
31
|
+
* - Optional responsive column overrides for specific breakpoints
|
|
32
|
+
* - Flexible gap spacing
|
|
33
|
+
* - Alignment controls
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```tsx
|
|
37
|
+
* // Auto-responsive grid with md (250px) item size
|
|
38
|
+
* <Grid itemSize="md" gap="md">
|
|
39
|
+
* <Card>Item 1</Card>
|
|
40
|
+
* <Card>Item 2</Card>
|
|
41
|
+
* <Card>Item 3</Card>
|
|
42
|
+
* </Grid>
|
|
43
|
+
*
|
|
44
|
+
* // Responsive grid with breakpoint overrides
|
|
45
|
+
* <Grid
|
|
46
|
+
* itemSize="sm"
|
|
47
|
+
* responsive={{ sm: 1, md: 2, lg: 3, xl: 4 }}
|
|
48
|
+
* gap="lg"
|
|
49
|
+
* >
|
|
50
|
+
* <Card>Item 1</Card>
|
|
51
|
+
* <Card>Item 2</Card>
|
|
52
|
+
* </Grid>
|
|
53
|
+
*
|
|
54
|
+
* // Fixed max columns with auto-fit
|
|
55
|
+
* <Grid itemSize="xs" maxCols={4} gap="md">
|
|
56
|
+
* <Card>Item 1</Card>
|
|
57
|
+
* <Card>Item 2</Card>
|
|
58
|
+
* </Grid>
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
declare function Grid({ children, className, itemSize, maxCols, gap, responsive, alignItems, justifyItems }: Readonly<GridProps>): import("react/jsx-runtime").JSX.Element;
|
|
62
|
+
declare namespace Grid {
|
|
63
|
+
var displayName: string;
|
|
64
|
+
}
|
|
65
|
+
export default Grid;
|
|
66
|
+
//# sourceMappingURL=grid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/grid/grid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,MAAM,SAAS,GAAG;IACtB,sDAAsD;IACtD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;IACpD,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;IACxD,gEAAgE;IAChE,UAAU,CAAC,EAAE;QACX,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;IACF,6BAA6B;IAC7B,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;IACpD,iCAAiC;IACjC,YAAY,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;CACvD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,iBAAS,IAAI,CAAC,EACZ,QAAQ,EACR,SAAc,EACd,QAAe,EACf,OAAO,EACP,GAAU,EACV,UAAU,EACV,UAAsB,EACtB,YAAwB,EACzB,EAAE,QAAQ,CAAC,SAAS,CAAC,2CAmErB;kBA5EQ,IAAI;;;AAgFb,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { gapSizes } from "../../../theme/size-tokens.js";
|
|
3
|
+
function Grid({
|
|
4
|
+
children,
|
|
5
|
+
className = "",
|
|
6
|
+
itemSize = "md",
|
|
7
|
+
maxCols,
|
|
8
|
+
gap = "md",
|
|
9
|
+
responsive,
|
|
10
|
+
alignItems = "stretch",
|
|
11
|
+
justifyItems = "stretch"
|
|
12
|
+
}) {
|
|
13
|
+
const itemSizeValues = {
|
|
14
|
+
xs: "150px",
|
|
15
|
+
sm: "200px",
|
|
16
|
+
md: "250px",
|
|
17
|
+
lg: "300px",
|
|
18
|
+
xl: "350px",
|
|
19
|
+
"2xl": "400px"
|
|
20
|
+
};
|
|
21
|
+
const gapClass = gapSizes[gap];
|
|
22
|
+
const alignItemsClasses = {
|
|
23
|
+
start: "items-start",
|
|
24
|
+
center: "items-center",
|
|
25
|
+
end: "items-end",
|
|
26
|
+
stretch: "items-stretch"
|
|
27
|
+
};
|
|
28
|
+
const justifyItemsClasses = {
|
|
29
|
+
start: "justify-items-start",
|
|
30
|
+
center: "justify-items-center",
|
|
31
|
+
end: "justify-items-end",
|
|
32
|
+
stretch: "justify-items-stretch"
|
|
33
|
+
};
|
|
34
|
+
const responsiveClasses = responsive ? Object.entries(responsive).map(([breakpoint, cols]) => {
|
|
35
|
+
const breakpointPrefix = breakpoint === "sm" ? "sm:" : breakpoint === "md" ? "md:" : breakpoint === "lg" ? "lg:" : "xl:";
|
|
36
|
+
return `${breakpointPrefix}grid-cols-${cols}`;
|
|
37
|
+
}).join(" ") : "";
|
|
38
|
+
const minWidth = itemSizeValues[itemSize];
|
|
39
|
+
const gridStyle = !responsive ? {
|
|
40
|
+
gridTemplateColumns: maxCols ? `repeat(auto-fit, minmax(min(${minWidth}, 100%), 1fr))` : `repeat(auto-fill, minmax(min(${minWidth}, 100%), 1fr))`
|
|
41
|
+
} : void 0;
|
|
42
|
+
return /* @__PURE__ */ jsx(
|
|
43
|
+
"div",
|
|
44
|
+
{
|
|
45
|
+
className: `
|
|
46
|
+
grid
|
|
47
|
+
${!responsive ? "" : responsiveClasses}
|
|
48
|
+
${gapClass}
|
|
49
|
+
${alignItemsClasses[alignItems]}
|
|
50
|
+
${justifyItemsClasses[justifyItems]}
|
|
51
|
+
${className}
|
|
52
|
+
`.trim(),
|
|
53
|
+
style: gridStyle,
|
|
54
|
+
children
|
|
55
|
+
}
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
Grid.displayName = "Grid";
|
|
59
|
+
export {
|
|
60
|
+
Grid as default
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=grid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grid.js","sources":["../../../../src/components/layout/grid/grid.tsx"],"sourcesContent":["import React from 'react';\n\nimport { gapSizes } from '../../../theme/size-tokens';\n\nexport type GridProps = {\n /** Grid items to be laid out in responsive columns */\n children: React.ReactNode;\n /** Additional CSS classes applied to the grid container */\n className?: string;\n /** Size of grid items (controls minimum width before wrapping) */\n itemSize?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n /** Maximum number of columns (optional constraint) */\n maxCols?: number;\n /** Gap between grid items - uses unified size system */\n gap?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n /** Responsive column configuration for different breakpoints */\n responsive?: {\n sm?: number; // min-width: 640px\n md?: number; // min-width: 768px\n lg?: number; // min-width: 1024px\n xl?: number; // min-width: 1280px\n };\n /** Align items vertically */\n alignItems?: 'start' | 'center' | 'end' | 'stretch';\n /** Justify items horizontally */\n justifyItems?: 'start' | 'center' | 'end' | 'stretch';\n};\n\n/**\n * Grid - Responsive grid layout component\n *\n * Features:\n * - Auto-responsive grid using CSS Grid auto-fit/auto-fill\n * - Configurable minimum item width (items wrap when too narrow)\n * - Optional responsive column overrides for specific breakpoints\n * - Flexible gap spacing\n * - Alignment controls\n *\n * @example\n * ```tsx\n * // Auto-responsive grid with md (250px) item size\n * <Grid itemSize=\"md\" gap=\"md\">\n * <Card>Item 1</Card>\n * <Card>Item 2</Card>\n * <Card>Item 3</Card>\n * </Grid>\n *\n * // Responsive grid with breakpoint overrides\n * <Grid\n * itemSize=\"sm\"\n * responsive={{ sm: 1, md: 2, lg: 3, xl: 4 }}\n * gap=\"lg\"\n * >\n * <Card>Item 1</Card>\n * <Card>Item 2</Card>\n * </Grid>\n *\n * // Fixed max columns with auto-fit\n * <Grid itemSize=\"xs\" maxCols={4} gap=\"md\">\n * <Card>Item 1</Card>\n * <Card>Item 2</Card>\n * </Grid>\n * ```\n */\nfunction Grid({\n children,\n className = '',\n itemSize = 'md',\n maxCols,\n gap = 'md',\n responsive,\n alignItems = 'stretch',\n justifyItems = 'stretch'\n}: Readonly<GridProps>) {\n const itemSizeValues = {\n xs: '150px',\n sm: '200px',\n md: '250px',\n lg: '300px',\n xl: '350px',\n '2xl': '400px'\n };\n\n // Use unified gap sizes\n const gapClass = gapSizes[gap];\n\n const alignItemsClasses = {\n start: 'items-start',\n center: 'items-center',\n end: 'items-end',\n stretch: 'items-stretch'\n };\n\n const justifyItemsClasses = {\n start: 'justify-items-start',\n center: 'justify-items-center',\n end: 'justify-items-end',\n stretch: 'justify-items-stretch'\n };\n\n // Build responsive column classes if provided\n const responsiveClasses = responsive\n ? Object.entries(responsive)\n .map(([breakpoint, cols]) => {\n const breakpointPrefix =\n breakpoint === 'sm' ? 'sm:' : breakpoint === 'md' ? 'md:' : breakpoint === 'lg' ? 'lg:' : 'xl:';\n return `${breakpointPrefix}grid-cols-${cols}`;\n })\n .join(' ')\n : '';\n\n // Get minimum width value from variant\n const minWidth = itemSizeValues[itemSize];\n\n // Build grid template columns style\n // If responsive classes are provided, use them via Tailwind\n // Otherwise, use CSS custom property for auto-fit/auto-fill\n const gridStyle = !responsive\n ? {\n gridTemplateColumns: maxCols\n ? `repeat(auto-fit, minmax(min(${minWidth}, 100%), 1fr))`\n : `repeat(auto-fill, minmax(min(${minWidth}, 100%), 1fr))`\n }\n : undefined;\n\n return (\n <div\n className={`\n grid\n ${!responsive ? '' : responsiveClasses}\n ${gapClass}\n ${alignItemsClasses[alignItems]}\n ${justifyItemsClasses[justifyItems]}\n ${className}\n `.trim()}\n style={gridStyle}\n >\n {children}\n </div>\n );\n}\n\nGrid.displayName = 'Grid';\n\nexport default Grid;\n"],"names":[],"mappings":";;AAgEA,SAAS,KAAK;AAAA,EACZ;AAAA,EACA,YAAY;AAAA,EACZ,WAAW;AAAA,EACX;AAAA,EACA,MAAM;AAAA,EACN;AAAA,EACA,aAAa;AAAA,EACb,eAAe;AACjB,GAAwB;AACtB,QAAM,iBAAiB;AAAA,IACrB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,OAAO;AAAA,EAAA;AAIT,QAAM,WAAW,SAAS,GAAG;AAE7B,QAAM,oBAAoB;AAAA,IACxB,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,SAAS;AAAA,EAAA;AAGX,QAAM,sBAAsB;AAAA,IAC1B,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,SAAS;AAAA,EAAA;AAIX,QAAM,oBAAoB,aACtB,OAAO,QAAQ,UAAU,EACtB,IAAI,CAAC,CAAC,YAAY,IAAI,MAAM;AAC3B,UAAM,mBACJ,eAAe,OAAO,QAAQ,eAAe,OAAO,QAAQ,eAAe,OAAO,QAAQ;AAC5F,WAAO,GAAG,gBAAgB,aAAa,IAAI;AAAA,EAC7C,CAAC,EACA,KAAK,GAAG,IACX;AAGJ,QAAM,WAAW,eAAe,QAAQ;AAKxC,QAAM,YAAY,CAAC,aACf;AAAA,IACE,qBAAqB,UACjB,+BAA+B,QAAQ,mBACvC,gCAAgC,QAAQ;AAAA,EAAA,IAE9C;AAEJ,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA;AAAA,UAEP,CAAC,aAAa,KAAK,iBAAiB;AAAA,UACpC,QAAQ;AAAA,UACR,kBAAkB,UAAU,CAAC;AAAA,UAC7B,oBAAoB,YAAY,CAAC;AAAA,UACjC,SAAS;AAAA,QACX,KAAA;AAAA,MACF,OAAO;AAAA,MAEN;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,KAAK,cAAc;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/grid/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export type HeroAction = {
|
|
3
|
+
/** Button label text */
|
|
4
|
+
label: string;
|
|
5
|
+
/** Click handler for the button */
|
|
6
|
+
onClick: () => void;
|
|
7
|
+
/** Button color variant */
|
|
8
|
+
variant?: 'primary' | 'neutral' | 'error' | 'accent';
|
|
9
|
+
/** Button style variant */
|
|
10
|
+
style?: 'solid' | 'outline' | 'ghost';
|
|
11
|
+
/** Whether the button shows a loading state */
|
|
12
|
+
loading?: boolean;
|
|
13
|
+
/** Optional icon to display in the button */
|
|
14
|
+
icon?: ReactNode;
|
|
15
|
+
};
|
|
16
|
+
export type HeroProps = {
|
|
17
|
+
/** Main hero heading text */
|
|
18
|
+
title: string;
|
|
19
|
+
/** Optional subtitle displayed above the title */
|
|
20
|
+
subtitle?: string;
|
|
21
|
+
/** Optional description text displayed below the title */
|
|
22
|
+
description?: string;
|
|
23
|
+
/** Primary call-to-action button configuration */
|
|
24
|
+
primaryAction?: HeroAction;
|
|
25
|
+
/** Secondary call-to-action button configuration */
|
|
26
|
+
secondaryAction?: HeroAction;
|
|
27
|
+
/** Optional custom content to display below actions */
|
|
28
|
+
children?: ReactNode;
|
|
29
|
+
/** Additional CSS classes applied to the hero section */
|
|
30
|
+
className?: string;
|
|
31
|
+
/** Visual background variant */
|
|
32
|
+
variant?: 'gradient' | 'solid' | 'minimal';
|
|
33
|
+
/** Whether content is centered horizontally */
|
|
34
|
+
centered?: boolean;
|
|
35
|
+
/** Size preset controlling padding and typography scale */
|
|
36
|
+
size?: 'sm' | 'md' | 'lg';
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Hero Component - Eye-catching hero section
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```tsx
|
|
43
|
+
* <Hero
|
|
44
|
+
* title="Build Amazing Products"
|
|
45
|
+
* subtitle="The modern way to ship"
|
|
46
|
+
* description="Start building with our component library."
|
|
47
|
+
* primaryAction={{
|
|
48
|
+
* label: 'Get Started',
|
|
49
|
+
* onClick: () => {},
|
|
50
|
+
* variant: 'primary'
|
|
51
|
+
* }}
|
|
52
|
+
* variant="gradient"
|
|
53
|
+
* />
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
declare function Hero({ title, subtitle, description, primaryAction, secondaryAction, children, className, variant, centered, size }: Readonly<HeroProps>): import("react/jsx-runtime").JSX.Element;
|
|
57
|
+
declare namespace Hero {
|
|
58
|
+
var displayName: string;
|
|
59
|
+
}
|
|
60
|
+
export default Hero;
|
|
61
|
+
//# sourceMappingURL=hero.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hero.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/hero/hero.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASlC,MAAM,MAAM,UAAU,GAAG;IACvB,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrD,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IACtC,+CAA+C;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,oDAAoD;IACpD,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,uDAAuD;IACvD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;IAC3C,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,iBAAS,IAAI,CAAC,EACZ,KAAK,EACL,QAAQ,EACR,WAAW,EACX,aAAa,EACb,eAAe,EACf,QAAQ,EACR,SAAc,EACd,OAAoB,EACpB,QAAe,EACf,IAAW,EACZ,EAAE,QAAQ,CAAC,SAAS,CAAC,2CAoFrB;kBA/FQ,IAAI;;;AAmGb,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import Container from "../container/container.js";
|
|
3
|
+
import Heading from "../../typography/heading/heading.js";
|
|
4
|
+
import Text from "../../typography/text/text.js";
|
|
5
|
+
import Stack from "../stack/stack.js";
|
|
6
|
+
import Button from "../../forms/button/button.js";
|
|
7
|
+
import { sectionPadding } from "../../../theme/size-tokens.js";
|
|
8
|
+
function Hero({
|
|
9
|
+
title,
|
|
10
|
+
subtitle,
|
|
11
|
+
description,
|
|
12
|
+
primaryAction,
|
|
13
|
+
secondaryAction,
|
|
14
|
+
children,
|
|
15
|
+
className = "",
|
|
16
|
+
variant = "gradient",
|
|
17
|
+
centered = true,
|
|
18
|
+
size = "lg"
|
|
19
|
+
}) {
|
|
20
|
+
const sizeClasses = {
|
|
21
|
+
sm: sectionPadding.md,
|
|
22
|
+
md: sectionPadding.lg,
|
|
23
|
+
lg: "pt-32 pb-20 md:pt-36 md:pb-28"
|
|
24
|
+
// Custom hero-specific padding
|
|
25
|
+
};
|
|
26
|
+
const titleSizes = {
|
|
27
|
+
sm: "text-3xl md:text-4xl",
|
|
28
|
+
md: "text-4xl md:text-5xl",
|
|
29
|
+
lg: "text-5xl md:text-6xl lg:text-7xl"
|
|
30
|
+
};
|
|
31
|
+
const variantClasses = {
|
|
32
|
+
gradient: "bg-gradient-to-b from-primary/10 via-primary/5 to-background",
|
|
33
|
+
solid: "bg-muted/30",
|
|
34
|
+
minimal: "bg-background"
|
|
35
|
+
};
|
|
36
|
+
return /* @__PURE__ */ jsxs("section", { className: `relative ${sizeClasses[size]} ${variantClasses[variant]} ${className}`, children: [
|
|
37
|
+
variant === "gradient" && /* @__PURE__ */ jsx("div", { className: "absolute inset-x-0 top-0 h-px bg-linear-to-r from-transparent via-primary/20 to-transparent" }),
|
|
38
|
+
/* @__PURE__ */ jsx("div", { className: "absolute inset-x-0 bottom-0 h-32 bg-linear-to-t from-background to-transparent pointer-events-none" }),
|
|
39
|
+
/* @__PURE__ */ jsx(Container, { marginX: "sm", children: /* @__PURE__ */ jsxs("div", { className: centered ? "text-center mx-auto max-w-4xl" : "max-w-4xl", children: [
|
|
40
|
+
subtitle && /* @__PURE__ */ jsx(Text, { hasMargin: true, className: "text-lg md:text-xl font-semibold text-primary", weight: "semibold", children: subtitle }),
|
|
41
|
+
/* @__PURE__ */ jsx(Heading, { level: 1, className: `${titleSizes[size]} font-extrabold mb-6 tracking-tight`, children: title }),
|
|
42
|
+
description && /* @__PURE__ */ jsx(Text, { hasMargin: true, className: "text-lg md:text-xl mb-8 text-muted-foreground max-w-2xl mx-auto", children: description }),
|
|
43
|
+
(primaryAction || secondaryAction) && /* @__PURE__ */ jsxs(Stack, { direction: "horizontal", spacing: "md", justify: centered ? "center" : "start", children: [
|
|
44
|
+
primaryAction && /* @__PURE__ */ jsx(
|
|
45
|
+
Button,
|
|
46
|
+
{
|
|
47
|
+
size: "lg",
|
|
48
|
+
variant: primaryAction.variant || "primary",
|
|
49
|
+
style: primaryAction.style,
|
|
50
|
+
onClick: primaryAction.onClick,
|
|
51
|
+
loading: primaryAction.loading,
|
|
52
|
+
icon: primaryAction.icon,
|
|
53
|
+
className: "shadow-lg shadow-primary/20 hover:shadow-xl hover:shadow-primary/30 transition-all",
|
|
54
|
+
children: primaryAction.label
|
|
55
|
+
}
|
|
56
|
+
),
|
|
57
|
+
secondaryAction && /* @__PURE__ */ jsx(
|
|
58
|
+
Button,
|
|
59
|
+
{
|
|
60
|
+
size: "lg",
|
|
61
|
+
variant: secondaryAction.variant || "neutral",
|
|
62
|
+
style: secondaryAction.style || "outline",
|
|
63
|
+
onClick: secondaryAction.onClick,
|
|
64
|
+
loading: secondaryAction.loading,
|
|
65
|
+
icon: secondaryAction.icon,
|
|
66
|
+
className: "hover:shadow-md transition-all",
|
|
67
|
+
children: secondaryAction.label
|
|
68
|
+
}
|
|
69
|
+
)
|
|
70
|
+
] }),
|
|
71
|
+
children && /* @__PURE__ */ jsx("div", { className: "mt-10", children })
|
|
72
|
+
] }) })
|
|
73
|
+
] });
|
|
74
|
+
}
|
|
75
|
+
Hero.displayName = "Hero";
|
|
76
|
+
export {
|
|
77
|
+
Hero as default
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=hero.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hero.js","sources":["../../../../src/components/layout/hero/hero.tsx"],"sourcesContent":["import { ReactNode } from 'react';\n\nimport Container from '../container/container';\nimport Heading from '../../typography/heading/heading';\nimport Text from '../../typography/text/text';\nimport Stack from '../stack/stack';\nimport Button from '../../forms/button/button';\nimport { sectionPadding } from '../../../theme/size-tokens';\n\nexport type HeroAction = {\n /** Button label text */\n label: string;\n /** Click handler for the button */\n onClick: () => void;\n /** Button color variant */\n variant?: 'primary' | 'neutral' | 'error' | 'accent';\n /** Button style variant */\n style?: 'solid' | 'outline' | 'ghost';\n /** Whether the button shows a loading state */\n loading?: boolean;\n /** Optional icon to display in the button */\n icon?: ReactNode;\n};\n\nexport type HeroProps = {\n /** Main hero heading text */\n title: string;\n /** Optional subtitle displayed above the title */\n subtitle?: string;\n /** Optional description text displayed below the title */\n description?: string;\n /** Primary call-to-action button configuration */\n primaryAction?: HeroAction;\n /** Secondary call-to-action button configuration */\n secondaryAction?: HeroAction;\n /** Optional custom content to display below actions */\n children?: ReactNode;\n /** Additional CSS classes applied to the hero section */\n className?: string;\n /** Visual background variant */\n variant?: 'gradient' | 'solid' | 'minimal';\n /** Whether content is centered horizontally */\n centered?: boolean;\n /** Size preset controlling padding and typography scale */\n size?: 'sm' | 'md' | 'lg';\n};\n\n/**\n * Hero Component - Eye-catching hero section\n *\n * @example\n * ```tsx\n * <Hero\n * title=\"Build Amazing Products\"\n * subtitle=\"The modern way to ship\"\n * description=\"Start building with our component library.\"\n * primaryAction={{\n * label: 'Get Started',\n * onClick: () => {},\n * variant: 'primary'\n * }}\n * variant=\"gradient\"\n * />\n * ```\n */\nfunction Hero({\n title,\n subtitle,\n description,\n primaryAction,\n secondaryAction,\n children,\n className = '',\n variant = 'gradient',\n centered = true,\n size = 'lg'\n}: Readonly<HeroProps>) {\n // Hero-specific size classes (extends sectionPadding)\n const sizeClasses = {\n sm: sectionPadding.md,\n md: sectionPadding.lg,\n lg: 'pt-32 pb-20 md:pt-36 md:pb-28' // Custom hero-specific padding\n };\n\n const titleSizes = {\n sm: 'text-3xl md:text-4xl',\n md: 'text-4xl md:text-5xl',\n lg: 'text-5xl md:text-6xl lg:text-7xl'\n };\n\n const variantClasses = {\n gradient: 'bg-gradient-to-b from-primary/10 via-primary/5 to-background',\n solid: 'bg-muted/30',\n minimal: 'bg-background'\n };\n\n return (\n <section className={`relative ${sizeClasses[size]} ${variantClasses[variant]} ${className}`}>\n {/* Top border with subtle glow */}\n {variant === 'gradient' && (\n <div className=\"absolute inset-x-0 top-0 h-px bg-linear-to-r from-transparent via-primary/20 to-transparent\" />\n )}\n\n {/* Bottom shadow fade */}\n <div className=\"absolute inset-x-0 bottom-0 h-32 bg-linear-to-t from-background to-transparent pointer-events-none\" />\n\n <Container marginX=\"sm\">\n <div className={centered ? 'text-center mx-auto max-w-4xl' : 'max-w-4xl'}>\n {subtitle && (\n <Text hasMargin className=\"text-lg md:text-xl font-semibold text-primary\" weight=\"semibold\">\n {subtitle}\n </Text>\n )}\n\n <Heading level={1} className={`${titleSizes[size]} font-extrabold mb-6 tracking-tight`}>\n {title}\n </Heading>\n\n {description && (\n <Text hasMargin className=\"text-lg md:text-xl mb-8 text-muted-foreground max-w-2xl mx-auto\">\n {description}\n </Text>\n )}\n\n {(primaryAction || secondaryAction) && (\n <Stack direction=\"horizontal\" spacing=\"md\" justify={centered ? 'center' : 'start'}>\n {primaryAction && (\n <Button\n size=\"lg\"\n variant={primaryAction.variant || 'primary'}\n style={primaryAction.style}\n onClick={primaryAction.onClick}\n loading={primaryAction.loading}\n icon={primaryAction.icon}\n className=\"shadow-lg shadow-primary/20 hover:shadow-xl hover:shadow-primary/30 transition-all\"\n >\n {primaryAction.label}\n </Button>\n )}\n {secondaryAction && (\n <Button\n size=\"lg\"\n variant={secondaryAction.variant || 'neutral'}\n style={secondaryAction.style || 'outline'}\n onClick={secondaryAction.onClick}\n loading={secondaryAction.loading}\n icon={secondaryAction.icon}\n className=\"hover:shadow-md transition-all\"\n >\n {secondaryAction.label}\n </Button>\n )}\n </Stack>\n )}\n\n {children && <div className=\"mt-10\">{children}</div>}\n </div>\n </Container>\n </section>\n );\n}\n\nHero.displayName = 'Hero';\n\nexport default Hero;\n"],"names":[],"mappings":";;;;;;;AAiEA,SAAS,KAAK;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,WAAW;AAAA,EACX,OAAO;AACT,GAAwB;AAEtB,QAAM,cAAc;AAAA,IAClB,IAAI,eAAe;AAAA,IACnB,IAAI,eAAe;AAAA,IACnB,IAAI;AAAA;AAAA,EAAA;AAGN,QAAM,aAAa;AAAA,IACjB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EAAA;AAGN,QAAM,iBAAiB;AAAA,IACrB,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,EAAA;AAGX,SACE,qBAAC,WAAA,EAAQ,WAAW,YAAY,YAAY,IAAI,CAAC,IAAI,eAAe,OAAO,CAAC,IAAI,SAAS,IAEtF,UAAA;AAAA,IAAA,YAAY,cACX,oBAAC,OAAA,EAAI,WAAU,+FAA8F;AAAA,IAI/G,oBAAC,OAAA,EAAI,WAAU,qGAAA,CAAqG;AAAA,IAEpH,oBAAC,aAAU,SAAQ,MACjB,+BAAC,OAAA,EAAI,WAAW,WAAW,kCAAkC,aAC1D,UAAA;AAAA,MAAA,YACC,oBAAC,QAAK,WAAS,MAAC,WAAU,iDAAgD,QAAO,YAC9E,UAAA,SAAA,CACH;AAAA,MAGF,oBAAC,SAAA,EAAQ,OAAO,GAAG,WAAW,GAAG,WAAW,IAAI,CAAC,uCAC9C,UAAA,MAAA,CACH;AAAA,MAEC,eACC,oBAAC,MAAA,EAAK,WAAS,MAAC,WAAU,mEACvB,UAAA,aACH;AAAA,OAGA,iBAAiB,oBACjB,qBAAC,OAAA,EAAM,WAAU,cAAa,SAAQ,MAAK,SAAS,WAAW,WAAW,SACvE,UAAA;AAAA,QAAA,iBACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAS,cAAc,WAAW;AAAA,YAClC,OAAO,cAAc;AAAA,YACrB,SAAS,cAAc;AAAA,YACvB,SAAS,cAAc;AAAA,YACvB,MAAM,cAAc;AAAA,YACpB,WAAU;AAAA,YAET,UAAA,cAAc;AAAA,UAAA;AAAA,QAAA;AAAA,QAGlB,mBACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAS,gBAAgB,WAAW;AAAA,YACpC,OAAO,gBAAgB,SAAS;AAAA,YAChC,SAAS,gBAAgB;AAAA,YACzB,SAAS,gBAAgB;AAAA,YACzB,MAAM,gBAAgB;AAAA,YACtB,WAAU;AAAA,YAET,UAAA,gBAAgB;AAAA,UAAA;AAAA,QAAA;AAAA,MACnB,GAEJ;AAAA,MAGD,YAAY,oBAAC,OAAA,EAAI,WAAU,SAAS,SAAA,CAAS;AAAA,IAAA,EAAA,CAChD,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;AAEA,KAAK,cAAc;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/hero/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { default } from './left-nav-layout';
|
|
2
|
+
export { default as LeftNavItem } from './left-nav-item';
|
|
3
|
+
export { default as LeftNavSection } from './left-nav-section';
|
|
4
|
+
export type { LeftNavLayoutProps } from './left-nav-layout';
|
|
5
|
+
export type { LeftNavItemProps } from './left-nav-item';
|
|
6
|
+
export type { LeftNavSectionProps } from './left-nav-section';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/left-nav-layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE/D,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
|