@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,83 @@
|
|
|
1
|
+
async function authFetch(url, options = {}, withCredentials = true) {
|
|
2
|
+
const config = {
|
|
3
|
+
...options,
|
|
4
|
+
credentials: withCredentials ? "include" : "same-origin",
|
|
5
|
+
headers: {
|
|
6
|
+
"Content-Type": "application/json",
|
|
7
|
+
...options.headers
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
return fetch(url, config);
|
|
11
|
+
}
|
|
12
|
+
async function checkAuthStatus(authUrl) {
|
|
13
|
+
try {
|
|
14
|
+
const response = await authFetch(`${authUrl}/api/auth/status`, {
|
|
15
|
+
method: "GET"
|
|
16
|
+
});
|
|
17
|
+
return response.ok;
|
|
18
|
+
} catch {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
async function getCurrentUser(authUrl) {
|
|
23
|
+
try {
|
|
24
|
+
const response = await authFetch(`${authUrl}/api/auth/me`, {
|
|
25
|
+
method: "GET"
|
|
26
|
+
});
|
|
27
|
+
if (response.ok) {
|
|
28
|
+
return await response.json();
|
|
29
|
+
}
|
|
30
|
+
return null;
|
|
31
|
+
} catch {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
async function loginExternal(authUrl, credentials) {
|
|
36
|
+
const response = await authFetch(`${authUrl}/api/auth/login`, {
|
|
37
|
+
method: "POST",
|
|
38
|
+
body: JSON.stringify(credentials)
|
|
39
|
+
});
|
|
40
|
+
if (!response.ok) {
|
|
41
|
+
throw new Error("Login failed");
|
|
42
|
+
}
|
|
43
|
+
return await response.json();
|
|
44
|
+
}
|
|
45
|
+
async function logoutExternal(authUrl) {
|
|
46
|
+
await authFetch(`${authUrl}/api/auth/logout`, {
|
|
47
|
+
method: "POST"
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
function redirectToLogin(authUrl, returnUrl) {
|
|
51
|
+
const url = new URL(`${authUrl}/login`);
|
|
52
|
+
if (returnUrl) {
|
|
53
|
+
url.searchParams.set("returnUrl", returnUrl);
|
|
54
|
+
}
|
|
55
|
+
window.location.href = url.toString();
|
|
56
|
+
}
|
|
57
|
+
function openLoginPopup(authUrl, onSuccess) {
|
|
58
|
+
const width = 500;
|
|
59
|
+
const height = 600;
|
|
60
|
+
const left = window.screenX + (window.outerWidth - width) / 2;
|
|
61
|
+
const top = window.screenY + (window.outerHeight - height) / 2;
|
|
62
|
+
const popup = window.open(`${authUrl}/login`, "Login", `width=${width},height=${height},left=${left},top=${top}`);
|
|
63
|
+
if (popup && onSuccess) {
|
|
64
|
+
const messageHandler = (event) => {
|
|
65
|
+
if (event.origin === new URL(authUrl).origin && event.data === "login-success") {
|
|
66
|
+
onSuccess();
|
|
67
|
+
window.removeEventListener("message", messageHandler);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
window.addEventListener("message", messageHandler);
|
|
71
|
+
}
|
|
72
|
+
return popup;
|
|
73
|
+
}
|
|
74
|
+
export {
|
|
75
|
+
authFetch,
|
|
76
|
+
checkAuthStatus,
|
|
77
|
+
getCurrentUser,
|
|
78
|
+
loginExternal,
|
|
79
|
+
logoutExternal,
|
|
80
|
+
openLoginPopup,
|
|
81
|
+
redirectToLogin
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=auth-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-utils.js","sources":["../../../../src/components/system/auth-provider/auth-utils.ts"],"sourcesContent":["/**\n * Auth utilities for cross-origin authentication\n */\n\n/**\n * Fetch with credentials for cross-origin requests\n */\nexport async function authFetch(url: string, options: RequestInit = {}, withCredentials = true): Promise<Response> {\n const config: RequestInit = {\n ...options,\n credentials: withCredentials ? 'include' : 'same-origin',\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n };\n\n return fetch(url, config);\n}\n\n/**\n * Check if user is authenticated via external auth server\n */\nexport async function checkAuthStatus(authUrl: string): Promise<boolean> {\n try {\n const response = await authFetch(`${authUrl}/api/auth/status`, {\n method: 'GET'\n });\n return response.ok;\n } catch {\n return false;\n }\n}\n\n/**\n * Get current user from external auth server\n */\nexport async function getCurrentUser(authUrl: string): Promise<unknown | null> {\n try {\n const response = await authFetch(`${authUrl}/api/auth/me`, {\n method: 'GET'\n });\n\n if (response.ok) {\n return await response.json();\n }\n return null;\n } catch {\n return null;\n }\n}\n\n/**\n * Login via external auth server\n */\nexport async function loginExternal(authUrl: string, credentials: unknown): Promise<unknown> {\n const response = await authFetch(`${authUrl}/api/auth/login`, {\n method: 'POST',\n body: JSON.stringify(credentials)\n });\n\n if (!response.ok) {\n throw new Error('Login failed');\n }\n\n return await response.json();\n}\n\n/**\n * Logout via external auth server\n */\nexport async function logoutExternal(authUrl: string): Promise<void> {\n await authFetch(`${authUrl}/api/auth/logout`, {\n method: 'POST'\n });\n}\n\n/**\n * Redirect to external login page\n */\nexport function redirectToLogin(authUrl: string, returnUrl?: string): void {\n const url = new URL(`${authUrl}/login`);\n if (returnUrl) {\n url.searchParams.set('returnUrl', returnUrl);\n }\n window.location.href = url.toString();\n}\n\n/**\n * Open external login in popup window\n */\nexport function openLoginPopup(authUrl: string, onSuccess?: () => void): Window | null {\n const width = 500;\n const height = 600;\n const left = window.screenX + (window.outerWidth - width) / 2;\n const top = window.screenY + (window.outerHeight - height) / 2;\n\n const popup = window.open(`${authUrl}/login`, 'Login', `width=${width},height=${height},left=${left},top=${top}`);\n\n // Listen for message from popup\n if (popup && onSuccess) {\n const messageHandler = (event: MessageEvent) => {\n if (event.origin === new URL(authUrl).origin && event.data === 'login-success') {\n onSuccess();\n window.removeEventListener('message', messageHandler);\n }\n };\n window.addEventListener('message', messageHandler);\n }\n\n return popup;\n}\n"],"names":[],"mappings":"AAOA,eAAsB,UAAU,KAAa,UAAuB,CAAA,GAAI,kBAAkB,MAAyB;AACjH,QAAM,SAAsB;AAAA,IAC1B,GAAG;AAAA,IACH,aAAa,kBAAkB,YAAY;AAAA,IAC3C,SAAS;AAAA,MACP,gBAAgB;AAAA,MAChB,GAAG,QAAQ;AAAA,IAAA;AAAA,EACb;AAGF,SAAO,MAAM,KAAK,MAAM;AAC1B;AAKA,eAAsB,gBAAgB,SAAmC;AACvE,MAAI;AACF,UAAM,WAAW,MAAM,UAAU,GAAG,OAAO,oBAAoB;AAAA,MAC7D,QAAQ;AAAA,IAAA,CACT;AACD,WAAO,SAAS;AAAA,EAClB,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAKA,eAAsB,eAAe,SAA0C;AAC7E,MAAI;AACF,UAAM,WAAW,MAAM,UAAU,GAAG,OAAO,gBAAgB;AAAA,MACzD,QAAQ;AAAA,IAAA,CACT;AAED,QAAI,SAAS,IAAI;AACf,aAAO,MAAM,SAAS,KAAA;AAAA,IACxB;AACA,WAAO;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAKA,eAAsB,cAAc,SAAiB,aAAwC;AAC3F,QAAM,WAAW,MAAM,UAAU,GAAG,OAAO,mBAAmB;AAAA,IAC5D,QAAQ;AAAA,IACR,MAAM,KAAK,UAAU,WAAW;AAAA,EAAA,CACjC;AAED,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,IAAI,MAAM,cAAc;AAAA,EAChC;AAEA,SAAO,MAAM,SAAS,KAAA;AACxB;AAKA,eAAsB,eAAe,SAAgC;AACnE,QAAM,UAAU,GAAG,OAAO,oBAAoB;AAAA,IAC5C,QAAQ;AAAA,EAAA,CACT;AACH;AAKO,SAAS,gBAAgB,SAAiB,WAA0B;AACzE,QAAM,MAAM,IAAI,IAAI,GAAG,OAAO,QAAQ;AACtC,MAAI,WAAW;AACb,QAAI,aAAa,IAAI,aAAa,SAAS;AAAA,EAC7C;AACA,SAAO,SAAS,OAAO,IAAI,SAAA;AAC7B;AAKO,SAAS,eAAe,SAAiB,WAAuC;AACrF,QAAM,QAAQ;AACd,QAAM,SAAS;AACf,QAAM,OAAO,OAAO,WAAW,OAAO,aAAa,SAAS;AAC5D,QAAM,MAAM,OAAO,WAAW,OAAO,cAAc,UAAU;AAE7D,QAAM,QAAQ,OAAO,KAAK,GAAG,OAAO,UAAU,SAAS,SAAS,KAAK,WAAW,MAAM,SAAS,IAAI,QAAQ,GAAG,EAAE;AAGhH,MAAI,SAAS,WAAW;AACtB,UAAM,iBAAiB,CAAC,UAAwB;AAC9C,UAAI,MAAM,WAAW,IAAI,IAAI,OAAO,EAAE,UAAU,MAAM,SAAS,iBAAiB;AAC9E,kBAAA;AACA,eAAO,oBAAoB,WAAW,cAAc;AAAA,MACtD;AAAA,IACF;AACA,WAAO,iBAAiB,WAAW,cAAc;AAAA,EACnD;AAEA,SAAO;AACT;"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { default, useAuth } from './auth-provider';
|
|
2
|
+
export type { AuthUser, AuthState, AuthActions, AuthContextType, AuthProviderConfig, AuthProviderProps } from './auth-provider';
|
|
3
|
+
export { authFetch, checkAuthStatus, getCurrentUser, loginExternal, logoutExternal, redirectToLogin, openLoginPopup } from './auth-utils';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/system/auth-provider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EACV,QAAQ,EACR,SAAS,EACT,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,SAAS,EACT,eAAe,EACf,cAAc,EACd,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,EACf,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { InteractiveSize } from '../../../theme/size-tokens';
|
|
2
|
+
export type ColorModeToggleProps = {
|
|
3
|
+
/** Additional CSS classes for custom styling */
|
|
4
|
+
className?: string;
|
|
5
|
+
/** Size of the toggle button - default is 'md' */
|
|
6
|
+
size?: InteractiveSize;
|
|
7
|
+
/** Style of the toggle button - default is 'ghost' */
|
|
8
|
+
buttonStyle?: 'solid' | 'outline' | 'ghost' | 'link' | 'soft';
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* ColorModeToggle - Simple light/dark theme switcher
|
|
12
|
+
*/
|
|
13
|
+
declare function ColorModeToggle({ className, size, buttonStyle }: Readonly<ColorModeToggleProps>): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
declare namespace ColorModeToggle {
|
|
15
|
+
var displayName: string;
|
|
16
|
+
}
|
|
17
|
+
export default ColorModeToggle;
|
|
18
|
+
//# sourceMappingURL=color-mode-toggle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-mode-toggle.d.ts","sourceRoot":"","sources":["../../../../src/components/system/color-mode-toggle/color-mode-toggle.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAItD,MAAM,MAAM,oBAAoB,GAAG;IACjC,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,sDAAsD;IACtD,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;CAC/D,CAAC;AAEF;;GAEG;AACH,iBAAS,eAAe,CAAC,EAAE,SAAc,EAAE,IAAW,EAAE,WAAqB,EAAE,EAAE,QAAQ,CAAC,oBAAoB,CAAC,2CAoB9G;kBApBQ,eAAe;;;AAwBxB,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useTheme } from "../theme-provider/theme-provider.js";
|
|
3
|
+
import IconButton from "../../forms/button/icon-button.js";
|
|
4
|
+
function ColorModeToggle({ className = "", size = "md", buttonStyle = "ghost" }) {
|
|
5
|
+
const { theme, setTheme } = useTheme();
|
|
6
|
+
const toggleTheme = () => {
|
|
7
|
+
setTheme(theme === "light" ? "dark" : "light");
|
|
8
|
+
};
|
|
9
|
+
const isDark = theme === "dark";
|
|
10
|
+
const label = `Switch to ${theme === "light" ? "dark" : "light"} theme`;
|
|
11
|
+
return /* @__PURE__ */ jsx(
|
|
12
|
+
IconButton,
|
|
13
|
+
{
|
|
14
|
+
iconSize: size,
|
|
15
|
+
onClick: toggleTheme,
|
|
16
|
+
className,
|
|
17
|
+
ariaLabel: label,
|
|
18
|
+
buttonStyle,
|
|
19
|
+
icon: isDark ? "moon" : "sun"
|
|
20
|
+
}
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
ColorModeToggle.displayName = "ColorModeToggle";
|
|
24
|
+
export {
|
|
25
|
+
ColorModeToggle as default
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=color-mode-toggle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-mode-toggle.js","sources":["../../../../src/components/system/color-mode-toggle/color-mode-toggle.tsx"],"sourcesContent":["import { InteractiveSize } from '@/theme/size-tokens';\nimport { IconButton } from '../../forms/button';\nimport { useTheme } from '../theme-provider';\n\nexport type ColorModeToggleProps = {\n /** Additional CSS classes for custom styling */\n className?: string;\n /** Size of the toggle button - default is 'md' */\n size?: InteractiveSize;\n /** Style of the toggle button - default is 'ghost' */\n buttonStyle?: 'solid' | 'outline' | 'ghost' | 'link' | 'soft';\n};\n\n/**\n * ColorModeToggle - Simple light/dark theme switcher\n */\nfunction ColorModeToggle({ className = '', size = 'md', buttonStyle = 'ghost' }: Readonly<ColorModeToggleProps>) {\n const { theme, setTheme } = useTheme();\n\n const toggleTheme = () => {\n setTheme(theme === 'light' ? 'dark' : 'light');\n };\n\n const isDark = theme === 'dark';\n const label = `Switch to ${theme === 'light' ? 'dark' : 'light'} theme`;\n\n return (\n <IconButton\n iconSize={size}\n onClick={toggleTheme}\n className={className}\n ariaLabel={label}\n buttonStyle={buttonStyle}\n icon={isDark ? 'moon' : 'sun'}\n />\n );\n}\n\nColorModeToggle.displayName = 'ColorModeToggle';\n\nexport default ColorModeToggle;\n"],"names":[],"mappings":";;;AAgBA,SAAS,gBAAgB,EAAE,YAAY,IAAI,OAAO,MAAM,cAAc,WAA2C;AAC/G,QAAM,EAAE,OAAO,SAAA,IAAa,SAAA;AAE5B,QAAM,cAAc,MAAM;AACxB,aAAS,UAAU,UAAU,SAAS,OAAO;AAAA,EAC/C;AAEA,QAAM,SAAS,UAAU;AACzB,QAAM,QAAQ,aAAa,UAAU,UAAU,SAAS,OAAO;AAE/D,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,UAAU;AAAA,MACV,SAAS;AAAA,MACT;AAAA,MACA,WAAW;AAAA,MACX;AAAA,MACA,MAAM,SAAS,SAAS;AAAA,IAAA;AAAA,EAAA;AAG9B;AAEA,gBAAgB,cAAc;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/system/color-mode-toggle/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export type ErrorBoundaryProps = {
|
|
3
|
+
/** React children to be rendered within the error boundary */
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
/** Custom fallback UI render function that receives the error and reset callback
|
|
6
|
+
* If not provided, a default error UI is shown
|
|
7
|
+
*/
|
|
8
|
+
fallback?: (error: Error, reset: () => void) => React.ReactNode;
|
|
9
|
+
};
|
|
10
|
+
type ErrorBoundaryState = {
|
|
11
|
+
error: Error | null;
|
|
12
|
+
};
|
|
13
|
+
declare class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {
|
|
14
|
+
state: ErrorBoundaryState;
|
|
15
|
+
static getDerivedStateFromError(error: Error): ErrorBoundaryState;
|
|
16
|
+
reset: () => void;
|
|
17
|
+
componentDidCatch(error: Error, info: React.ErrorInfo): void;
|
|
18
|
+
render(): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
|
|
19
|
+
}
|
|
20
|
+
export default ErrorBoundary;
|
|
21
|
+
//# sourceMappingURL=error-boundary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-boundary.d.ts","sourceRoot":"","sources":["../../../../src/components/system/error-boundary/error-boundary.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,8DAA8D;IAC9D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,IAAI,KAAK,KAAK,CAAC,SAAS,CAAC;CACjE,CAAC;AAEF,KAAK,kBAAkB,GAAG;IAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAAE,CAAC;AAElD,cAAM,aAAc,SAAQ,KAAK,CAAC,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IACjF,KAAK,EAAE,kBAAkB,CAAmB;IAE5C,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,kBAAkB;IAIjE,KAAK,aAAwC;IAE7C,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS;IAKrD,MAAM;CAqBP;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ColorVariant } from '../../../theme/tokens';
|
|
2
|
+
import { Size } from '../../../theme/size-tokens';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
export type IconSize = Size;
|
|
5
|
+
export interface IconProps {
|
|
6
|
+
/** Dynamic icon name from Tabler Icons (e.g. "home", "user", "arrow-right") */
|
|
7
|
+
name: string;
|
|
8
|
+
/** Icon size using unified size system
|
|
9
|
+
* @default 'md'
|
|
10
|
+
*/
|
|
11
|
+
size?: IconSize;
|
|
12
|
+
/** Color variant or 'currentColor' to inherit text color
|
|
13
|
+
* @default 'currentColor'
|
|
14
|
+
*/
|
|
15
|
+
color?: ColorVariant | 'currentColor';
|
|
16
|
+
/** Opacity level (0-1)
|
|
17
|
+
* @default 1
|
|
18
|
+
*/
|
|
19
|
+
opacity?: number;
|
|
20
|
+
/** SVG stroke width
|
|
21
|
+
* @default 2
|
|
22
|
+
*/
|
|
23
|
+
strokeWidth?: number;
|
|
24
|
+
/** Additional CSS classes for custom styling */
|
|
25
|
+
className?: string;
|
|
26
|
+
/** Optional click handler */
|
|
27
|
+
onClick?: () => void;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Dynamic Icon component — resolves any Tabler icon by name.
|
|
31
|
+
* Uses semantic size variants and supports all icons without manual mapping.
|
|
32
|
+
*/
|
|
33
|
+
export declare const Icon: React.FC<IconProps>;
|
|
34
|
+
export default Icon;
|
|
35
|
+
//# sourceMappingURL=icon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../../src/components/system/icon/icon.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,YAAY,EAKb,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,IAAI,EAAiB,MAAM,4BAA4B,CAAC;AAEjE,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC;AAE5B,MAAM,WAAW,SAAS;IACxB,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;OAEG;IACH,KAAK,CAAC,EAAE,YAAY,GAAG,cAAc,CAAC;IACtC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAmCD;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAmEpC,CAAC;AAKF,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as TablerIcons from "@tabler/icons-react";
|
|
3
|
+
import { colors, colorClassPrefixes } from "../../../theme/tokens.js";
|
|
4
|
+
import { getIconPixels } from "../../../theme/size-tokens.js";
|
|
5
|
+
const STATUS_COLOR_MAP = {
|
|
6
|
+
neutral: "neutral",
|
|
7
|
+
primary: "primary",
|
|
8
|
+
success: "success",
|
|
9
|
+
warning: "warning",
|
|
10
|
+
error: "error",
|
|
11
|
+
info: "info",
|
|
12
|
+
accent: "accent"
|
|
13
|
+
};
|
|
14
|
+
const hasThemeColor = (token) => Object.prototype.hasOwnProperty.call(colors, token);
|
|
15
|
+
const isThemeColor = (value) => typeof value === "string" && hasThemeColor(value);
|
|
16
|
+
const isThemeColorClass = (value) => {
|
|
17
|
+
if (typeof value !== "string") return false;
|
|
18
|
+
for (const prefix of colorClassPrefixes) {
|
|
19
|
+
if (value.startsWith(`${prefix}-`)) {
|
|
20
|
+
const token = value.slice(prefix.length + 1);
|
|
21
|
+
return hasThemeColor(token);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return false;
|
|
25
|
+
};
|
|
26
|
+
const isStatusColor = (value) => typeof value === "string" && value in STATUS_COLOR_MAP;
|
|
27
|
+
const warnInvalidIconName = (value) => {
|
|
28
|
+
if (process.env.NODE_ENV === "production") return;
|
|
29
|
+
console.error("[Icon] Expected `name` to be a non-empty string. Received:", value);
|
|
30
|
+
};
|
|
31
|
+
const Icon = ({
|
|
32
|
+
name,
|
|
33
|
+
size = "md",
|
|
34
|
+
color = "currentColor",
|
|
35
|
+
opacity = 1,
|
|
36
|
+
strokeWidth = 2,
|
|
37
|
+
className = "",
|
|
38
|
+
onClick
|
|
39
|
+
}) => {
|
|
40
|
+
if (typeof name !== "string") {
|
|
41
|
+
warnInvalidIconName(name);
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
const normalizedName = name.trim();
|
|
45
|
+
if (!normalizedName) {
|
|
46
|
+
warnInvalidIconName(name);
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
const pascalName = normalizedName.split(/[-_]/).filter((s) => s).map((s) => s.charAt(0).toUpperCase() + s.slice(1)).join("");
|
|
50
|
+
const componentName = pascalName.startsWith("Icon") ? pascalName : "Icon" + pascalName;
|
|
51
|
+
const IconComponent = TablerIcons[componentName];
|
|
52
|
+
if (!IconComponent) return null;
|
|
53
|
+
const pixelSize = getIconPixels(size, "desktop");
|
|
54
|
+
let resolvedColor = color;
|
|
55
|
+
let resolvedClassName = className;
|
|
56
|
+
if (isStatusColor(color)) {
|
|
57
|
+
const mapped = STATUS_COLOR_MAP[color];
|
|
58
|
+
resolvedColor = mapped === "currentColor" ? "currentColor" : colors[mapped];
|
|
59
|
+
} else if (isThemeColor(color)) {
|
|
60
|
+
resolvedColor = colors[color];
|
|
61
|
+
} else if (isThemeColorClass(color)) {
|
|
62
|
+
resolvedClassName = [className, color].filter(Boolean).join(" ");
|
|
63
|
+
resolvedColor = "currentColor";
|
|
64
|
+
}
|
|
65
|
+
return /* @__PURE__ */ jsx(
|
|
66
|
+
IconComponent,
|
|
67
|
+
{
|
|
68
|
+
size: pixelSize,
|
|
69
|
+
color: resolvedColor,
|
|
70
|
+
strokeWidth,
|
|
71
|
+
className: resolvedClassName,
|
|
72
|
+
opacity,
|
|
73
|
+
onClick,
|
|
74
|
+
"aria-hidden": "true"
|
|
75
|
+
}
|
|
76
|
+
);
|
|
77
|
+
};
|
|
78
|
+
Icon.displayName = "Icon";
|
|
79
|
+
export {
|
|
80
|
+
Icon,
|
|
81
|
+
Icon as default
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=icon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon.js","sources":["../../../../src/components/system/icon/icon.tsx"],"sourcesContent":["import * as TablerIcons from '@tabler/icons-react';\nimport * as React from 'react';\nimport {\n ColorVariant,\n colors as themeColors,\n colorClassPrefixes,\n ThemeColor,\n ThemeColorClass\n} from '../../../theme/tokens';\n\nimport { Size, getIconPixels } from '../../../theme/size-tokens';\n\nexport type IconSize = Size;\n\nexport interface IconProps {\n /** Dynamic icon name from Tabler Icons (e.g. \"home\", \"user\", \"arrow-right\") */\n name: string;\n /** Icon size using unified size system\n * @default 'md'\n */\n size?: IconSize;\n /** Color variant or 'currentColor' to inherit text color\n * @default 'currentColor'\n */\n color?: ColorVariant | 'currentColor';\n /** Opacity level (0-1)\n * @default 1\n */\n opacity?: number;\n /** SVG stroke width\n * @default 2\n */\n strokeWidth?: number;\n /** Additional CSS classes for custom styling */\n className?: string;\n /** Optional click handler */\n onClick?: () => void;\n}\n\nconst STATUS_COLOR_MAP: Record<ColorVariant, ThemeColor | 'currentColor'> = {\n neutral: 'neutral',\n primary: 'primary',\n success: 'success',\n warning: 'warning',\n error: 'error',\n info: 'info',\n accent: 'accent'\n};\n\nconst hasThemeColor = (token: string): token is ThemeColor => Object.prototype.hasOwnProperty.call(themeColors, token);\n\nconst isThemeColor = (value: unknown): value is ThemeColor => typeof value === 'string' && hasThemeColor(value);\n\nconst isThemeColorClass = (value: unknown): value is ThemeColorClass => {\n if (typeof value !== 'string') return false;\n for (const prefix of colorClassPrefixes) {\n if (value.startsWith(`${prefix}-`)) {\n const token = value.slice(prefix.length + 1);\n return hasThemeColor(token);\n }\n }\n return false;\n};\n\nconst isStatusColor = (value: unknown): value is ColorVariant => typeof value === 'string' && value in STATUS_COLOR_MAP;\n\nconst warnInvalidIconName = (value: unknown) => {\n if (process.env.NODE_ENV === 'production') return;\n // eslint-disable-next-line no-console\n console.error('[Icon] Expected `name` to be a non-empty string. Received:', value);\n};\n\n/**\n * Dynamic Icon component — resolves any Tabler icon by name.\n * Uses semantic size variants and supports all icons without manual mapping.\n */\nexport const Icon: React.FC<IconProps> = ({\n name,\n size = 'md',\n color = 'currentColor',\n opacity = 1,\n strokeWidth = 2,\n className = '',\n onClick\n}) => {\n if (typeof name !== 'string') {\n warnInvalidIconName(name);\n return null;\n }\n\n const normalizedName = name.trim();\n\n if (!normalizedName) {\n warnInvalidIconName(name);\n return null;\n }\n\n // Convert kebab or lowercase to PascalCase (e.g. \"arrow-right\" → \"IconArrowRight\")\n const pascalName = normalizedName\n .split(/[-_]/)\n .filter((s) => s)\n .map((s) => s.charAt(0).toUpperCase() + s.slice(1))\n .join('');\n\n const componentName = pascalName.startsWith('Icon') ? pascalName : 'Icon' + pascalName;\n\n // Use ComponentType to support both function and forwardRef components\n // Tabler icon components accept standard SVG props plus a few extras\n type TablerIconComponent = React.ComponentType<\n React.SVGProps<SVGSVGElement> & { size?: number | string; strokeWidth?: number }\n >;\n\n const IconComponent = (TablerIcons as unknown as Record<string, TablerIconComponent>)[componentName];\n\n if (!IconComponent) return null;\n\n // Use desktop size for pixel-based SVG rendering\n const pixelSize = getIconPixels(size, 'desktop');\n\n let resolvedColor: string = color;\n let resolvedClassName = className;\n\n if (isStatusColor(color)) {\n const mapped = STATUS_COLOR_MAP[color];\n resolvedColor = mapped === 'currentColor' ? 'currentColor' : themeColors[mapped];\n } else if (isThemeColor(color)) {\n resolvedColor = themeColors[color];\n } else if (isThemeColorClass(color)) {\n resolvedClassName = [className, color].filter(Boolean).join(' ');\n resolvedColor = 'currentColor';\n }\n\n return (\n <IconComponent\n size={pixelSize}\n color={resolvedColor}\n strokeWidth={strokeWidth}\n className={resolvedClassName}\n opacity={opacity}\n onClick={onClick}\n aria-hidden=\"true\"\n />\n );\n};\n\nIcon.displayName = 'Icon';\n\n// Provide a default export for backwards compatibility with existing imports\nexport default Icon;\n"],"names":["themeColors"],"mappings":";;;;AAuCA,MAAM,mBAAsE;AAAA,EAC1E,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AAAA,EACN,QAAQ;AACV;AAEA,MAAM,gBAAgB,CAAC,UAAuC,OAAO,UAAU,eAAe,KAAKA,QAAa,KAAK;AAErH,MAAM,eAAe,CAAC,UAAwC,OAAO,UAAU,YAAY,cAAc,KAAK;AAE9G,MAAM,oBAAoB,CAAC,UAA6C;AACtE,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,aAAW,UAAU,oBAAoB;AACvC,QAAI,MAAM,WAAW,GAAG,MAAM,GAAG,GAAG;AAClC,YAAM,QAAQ,MAAM,MAAM,OAAO,SAAS,CAAC;AAC3C,aAAO,cAAc,KAAK;AAAA,IAC5B;AAAA,EACF;AACA,SAAO;AACT;AAEA,MAAM,gBAAgB,CAAC,UAA0C,OAAO,UAAU,YAAY,SAAS;AAEvG,MAAM,sBAAsB,CAAC,UAAmB;AAC9C,MAAI,QAAQ,IAAI,aAAa,aAAc;AAE3C,UAAQ,MAAM,8DAA8D,KAAK;AACnF;AAMO,MAAM,OAA4B,CAAC;AAAA,EACxC;AAAA,EACA,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,cAAc;AAAA,EACd,YAAY;AAAA,EACZ;AACF,MAAM;AACJ,MAAI,OAAO,SAAS,UAAU;AAC5B,wBAAoB,IAAI;AACxB,WAAO;AAAA,EACT;AAEA,QAAM,iBAAiB,KAAK,KAAA;AAE5B,MAAI,CAAC,gBAAgB;AACnB,wBAAoB,IAAI;AACxB,WAAO;AAAA,EACT;AAGA,QAAM,aAAa,eAChB,MAAM,MAAM,EACZ,OAAO,CAAC,MAAM,CAAC,EACf,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC,EACjD,KAAK,EAAE;AAEV,QAAM,gBAAgB,WAAW,WAAW,MAAM,IAAI,aAAa,SAAS;AAQ5E,QAAM,gBAAiB,YAA+D,aAAa;AAEnG,MAAI,CAAC,cAAe,QAAO;AAG3B,QAAM,YAAY,cAAc,MAAM,SAAS;AAE/C,MAAI,gBAAwB;AAC5B,MAAI,oBAAoB;AAExB,MAAI,cAAc,KAAK,GAAG;AACxB,UAAM,SAAS,iBAAiB,KAAK;AACrC,oBAAgB,WAAW,iBAAiB,iBAAiBA,OAAY,MAAM;AAAA,EACjF,WAAW,aAAa,KAAK,GAAG;AAC9B,oBAAgBA,OAAY,KAAK;AAAA,EACnC,WAAW,kBAAkB,KAAK,GAAG;AACnC,wBAAoB,CAAC,WAAW,KAAK,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAC/D,oBAAgB;AAAA,EAClB;AAEA,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAM;AAAA,MACN,OAAO;AAAA,MACP;AAAA,MACA,WAAW;AAAA,MACX;AAAA,MACA;AAAA,MACA,eAAY;AAAA,IAAA;AAAA,EAAA;AAGlB;AAEA,KAAK,cAAc;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/system/icon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/system/theme-provider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACpE,YAAY,EAAE,kBAAkB,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* hydn UI Theme System
|
|
4
|
+
* - Supports light and dark themes
|
|
5
|
+
* - Themes are applied via className on the <html> element
|
|
6
|
+
* - Define new themes in globals.css following the CSS variable pattern
|
|
7
|
+
*/
|
|
8
|
+
export type Theme = 'light' | 'dark';
|
|
9
|
+
export type ThemeContextType = {
|
|
10
|
+
theme: Theme;
|
|
11
|
+
setTheme: (theme: Theme) => void;
|
|
12
|
+
availableThemes: Theme[];
|
|
13
|
+
};
|
|
14
|
+
export type ThemeProviderProps = {
|
|
15
|
+
/** React children to be wrapped with theme context */
|
|
16
|
+
children: ReactNode;
|
|
17
|
+
/** Initial theme to use if none is stored
|
|
18
|
+
* @default 'light'
|
|
19
|
+
*/
|
|
20
|
+
defaultTheme?: Theme;
|
|
21
|
+
/** LocalStorage key for persisting theme selection
|
|
22
|
+
* @default 'hydn-theme'
|
|
23
|
+
*/
|
|
24
|
+
storageKey?: string;
|
|
25
|
+
/**
|
|
26
|
+
* List of available theme names.
|
|
27
|
+
* Defaults to ['light', 'dark']
|
|
28
|
+
*/
|
|
29
|
+
themes?: Theme[];
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* ThemeProvider - Context for managing light/dark themes
|
|
33
|
+
*/
|
|
34
|
+
export declare function ThemeProvider({ children, defaultTheme, storageKey, themes }: Readonly<ThemeProviderProps>): import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
/**
|
|
36
|
+
* useTheme - Hook to access theme context
|
|
37
|
+
*/
|
|
38
|
+
export declare function useTheme(): ThemeContextType;
|
|
39
|
+
export default ThemeProvider;
|
|
40
|
+
//# sourceMappingURL=theme-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-provider.d.ts","sourceRoot":"","sources":["../../../../src/components/system/theme-provider/theme-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA2D,SAAS,EAAe,MAAM,OAAO,CAAC;AAExG;;;;;GAKG;AAEH,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAErC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,eAAe,EAAE,KAAK,EAAE,CAAC;CAC1B,CAAC;AAIF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,sDAAsD;IACtD,QAAQ,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,YAAsB,EACtB,UAAyB,EACzB,MAA0B,EAC3B,EAAE,QAAQ,CAAC,kBAAkB,CAAC,2CA0C9B;AAED;;GAEG;AACH,wBAAgB,QAAQ,qBAMvB;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useState, useEffect, useCallback, useMemo, useContext } from "react";
|
|
3
|
+
const ThemeContext = createContext(void 0);
|
|
4
|
+
function ThemeProvider({
|
|
5
|
+
children,
|
|
6
|
+
defaultTheme = "light",
|
|
7
|
+
storageKey = "hydn-theme",
|
|
8
|
+
themes = ["light", "dark"]
|
|
9
|
+
}) {
|
|
10
|
+
const [theme, setThemeState] = useState(() => {
|
|
11
|
+
if (typeof window !== "undefined") {
|
|
12
|
+
const stored = localStorage.getItem(storageKey);
|
|
13
|
+
return stored && themes.includes(stored) ? stored : defaultTheme;
|
|
14
|
+
}
|
|
15
|
+
return defaultTheme;
|
|
16
|
+
});
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
const root = window.document.documentElement;
|
|
19
|
+
root.classList.remove(...themes);
|
|
20
|
+
root.classList.add(theme);
|
|
21
|
+
}, [theme, themes]);
|
|
22
|
+
const setTheme = useCallback(
|
|
23
|
+
(newTheme) => {
|
|
24
|
+
if (themes.includes(newTheme)) {
|
|
25
|
+
localStorage.setItem(storageKey, newTheme);
|
|
26
|
+
setThemeState(newTheme);
|
|
27
|
+
} else {
|
|
28
|
+
console.warn(`Theme "${newTheme}" is not in availableThemes. Add it to the themes prop.`);
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
[themes, storageKey]
|
|
32
|
+
);
|
|
33
|
+
const value = useMemo(
|
|
34
|
+
() => ({
|
|
35
|
+
theme,
|
|
36
|
+
setTheme,
|
|
37
|
+
availableThemes: themes
|
|
38
|
+
}),
|
|
39
|
+
[theme, themes, setTheme]
|
|
40
|
+
);
|
|
41
|
+
return /* @__PURE__ */ jsx(ThemeContext.Provider, { value, children });
|
|
42
|
+
}
|
|
43
|
+
function useTheme() {
|
|
44
|
+
const context = useContext(ThemeContext);
|
|
45
|
+
if (!context) {
|
|
46
|
+
throw new Error("useTheme must be used within a ThemeProvider");
|
|
47
|
+
}
|
|
48
|
+
return context;
|
|
49
|
+
}
|
|
50
|
+
export {
|
|
51
|
+
ThemeProvider,
|
|
52
|
+
ThemeProvider as default,
|
|
53
|
+
useTheme
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=theme-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-provider.js","sources":["../../../../src/components/system/theme-provider/theme-provider.tsx"],"sourcesContent":["import { createContext, useContext, useEffect, useState, useMemo, ReactNode, useCallback } from 'react';\n\n/**\n * hydn UI Theme System\n * - Supports light and dark themes\n * - Themes are applied via className on the <html> element\n * - Define new themes in globals.css following the CSS variable pattern\n */\n\nexport type Theme = 'light' | 'dark';\n\nexport type ThemeContextType = {\n theme: Theme;\n setTheme: (theme: Theme) => void;\n availableThemes: Theme[];\n};\n\nconst ThemeContext = createContext<ThemeContextType | undefined>(undefined);\n\nexport type ThemeProviderProps = {\n /** React children to be wrapped with theme context */\n children: ReactNode;\n /** Initial theme to use if none is stored\n * @default 'light'\n */\n defaultTheme?: Theme;\n /** LocalStorage key for persisting theme selection\n * @default 'hydn-theme'\n */\n storageKey?: string;\n /**\n * List of available theme names.\n * Defaults to ['light', 'dark']\n */\n themes?: Theme[];\n};\n\n/**\n * ThemeProvider - Context for managing light/dark themes\n */\nexport function ThemeProvider({\n children,\n defaultTheme = 'light',\n storageKey = 'hydn-theme',\n themes = ['light', 'dark']\n}: Readonly<ThemeProviderProps>) {\n const [theme, setThemeState] = useState<Theme>(() => {\n if (typeof window !== 'undefined') {\n const stored = localStorage.getItem(storageKey) as Theme;\n return stored && themes.includes(stored) ? stored : defaultTheme;\n }\n return defaultTheme;\n });\n\n useEffect(() => {\n const root = window.document.documentElement;\n\n // Remove all possible theme classes\n root.classList.remove(...themes);\n\n // Apply the theme class to <html>\n root.classList.add(theme);\n }, [theme, themes]);\n\n const setTheme = useCallback(\n (newTheme: Theme) => {\n if (themes.includes(newTheme)) {\n localStorage.setItem(storageKey, newTheme);\n setThemeState(newTheme);\n } else {\n /* eslint-disable-next-line no-console */\n console.warn(`Theme \"${newTheme}\" is not in availableThemes. Add it to the themes prop.`);\n }\n },\n [themes, storageKey]\n );\n\n const value = useMemo(\n () => ({\n theme,\n setTheme,\n availableThemes: themes\n }),\n [theme, themes, setTheme]\n );\n\n return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;\n}\n\n/**\n * useTheme - Hook to access theme context\n */\nexport function useTheme() {\n const context = useContext(ThemeContext);\n if (!context) {\n throw new Error('useTheme must be used within a ThemeProvider');\n }\n return context;\n}\n\nexport default ThemeProvider;\n"],"names":[],"mappings":";;AAiBA,MAAM,eAAe,cAA4C,MAAS;AAuBnE,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA,eAAe;AAAA,EACf,aAAa;AAAA,EACb,SAAS,CAAC,SAAS,MAAM;AAC3B,GAAiC;AAC/B,QAAM,CAAC,OAAO,aAAa,IAAI,SAAgB,MAAM;AACnD,QAAI,OAAO,WAAW,aAAa;AACjC,YAAM,SAAS,aAAa,QAAQ,UAAU;AAC9C,aAAO,UAAU,OAAO,SAAS,MAAM,IAAI,SAAS;AAAA,IACtD;AACA,WAAO;AAAA,EACT,CAAC;AAED,YAAU,MAAM;AACd,UAAM,OAAO,OAAO,SAAS;AAG7B,SAAK,UAAU,OAAO,GAAG,MAAM;AAG/B,SAAK,UAAU,IAAI,KAAK;AAAA,EAC1B,GAAG,CAAC,OAAO,MAAM,CAAC;AAElB,QAAM,WAAW;AAAA,IACf,CAAC,aAAoB;AACnB,UAAI,OAAO,SAAS,QAAQ,GAAG;AAC7B,qBAAa,QAAQ,YAAY,QAAQ;AACzC,sBAAc,QAAQ;AAAA,MACxB,OAAO;AAEL,gBAAQ,KAAK,UAAU,QAAQ,yDAAyD;AAAA,MAC1F;AAAA,IACF;AAAA,IACA,CAAC,QAAQ,UAAU;AAAA,EAAA;AAGrB,QAAM,QAAQ;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,iBAAiB;AAAA,IAAA;AAAA,IAEnB,CAAC,OAAO,QAAQ,QAAQ;AAAA,EAAA;AAG1B,SAAO,oBAAC,aAAa,UAAb,EAAsB,OAAe,SAAA,CAAS;AACxD;AAKO,SAAS,WAAW;AACzB,QAAM,UAAU,WAAW,YAAY;AACvC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,8CAA8C;AAAA,EAChE;AACA,SAAO;AACT;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export type CodeProps = {
|
|
3
|
+
/** Code content to be displayed */
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
/** Whether to render as a code block (pre + code) or inline code
|
|
6
|
+
* @default false
|
|
7
|
+
*/
|
|
8
|
+
block?: boolean;
|
|
9
|
+
/** Visual style variant
|
|
10
|
+
* @default 'default'
|
|
11
|
+
*/
|
|
12
|
+
variant?: 'default' | 'primary' | 'muted';
|
|
13
|
+
/** Additional CSS classes for custom styling */
|
|
14
|
+
className?: string;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Code - Styled code snippets (inline or block)
|
|
18
|
+
*/
|
|
19
|
+
declare function Code({ children, block, variant, className }: Readonly<CodeProps>): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
declare namespace Code {
|
|
21
|
+
var displayName: string;
|
|
22
|
+
}
|
|
23
|
+
export default Code;
|
|
24
|
+
//# sourceMappingURL=code.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../../../src/components/typography/code/code.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,MAAM,SAAS,GAAG;IACtB,mCAAmC;IACnC,QAAQ,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAC1C,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,iBAAS,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAa,EAAE,OAAmB,EAAE,SAAc,EAAE,EAAE,QAAQ,CAAC,SAAS,CAAC,2CAkBlG;kBAlBQ,IAAI;;;AAsBb,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
function Code({ children, block = false, variant = "default", className = "" }) {
|
|
3
|
+
const variantClasses = {
|
|
4
|
+
default: "bg-muted text-foreground",
|
|
5
|
+
primary: "text-primary",
|
|
6
|
+
muted: "text-muted-foreground"
|
|
7
|
+
};
|
|
8
|
+
const baseClasses = `font-mono ${variantClasses[variant]}`;
|
|
9
|
+
if (block) {
|
|
10
|
+
return /* @__PURE__ */ jsx("pre", { className: `${baseClasses} p-4 rounded-lg overflow-x-auto border border-border ${className}`, children: /* @__PURE__ */ jsx("code", { children }) });
|
|
11
|
+
}
|
|
12
|
+
return /* @__PURE__ */ jsx("code", { className: `${baseClasses} px-1.5 py-0.5 rounded text-sm ${className}`, children });
|
|
13
|
+
}
|
|
14
|
+
Code.displayName = "Code";
|
|
15
|
+
export {
|
|
16
|
+
Code as default
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=code.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code.js","sources":["../../../../src/components/typography/code/code.tsx"],"sourcesContent":["import { ReactNode } from 'react';\n\nexport type CodeProps = {\n /** Code content to be displayed */\n children: ReactNode;\n /** Whether to render as a code block (pre + code) or inline code\n * @default false\n */\n block?: boolean;\n /** Visual style variant\n * @default 'default'\n */\n variant?: 'default' | 'primary' | 'muted';\n /** Additional CSS classes for custom styling */\n className?: string;\n};\n\n/**\n * Code - Styled code snippets (inline or block)\n */\nfunction Code({ children, block = false, variant = 'default', className = '' }: Readonly<CodeProps>) {\n const variantClasses = {\n default: 'bg-muted text-foreground',\n primary: 'text-primary',\n muted: 'text-muted-foreground'\n };\n\n const baseClasses = `font-mono ${variantClasses[variant]}`;\n\n if (block) {\n return (\n <pre className={`${baseClasses} p-4 rounded-lg overflow-x-auto border border-border ${className}`}>\n <code>{children}</code>\n </pre>\n );\n }\n\n return <code className={`${baseClasses} px-1.5 py-0.5 rounded text-sm ${className}`}>{children}</code>;\n}\n\nCode.displayName = 'Code';\n\nexport default Code;\n"],"names":[],"mappings":";AAoBA,SAAS,KAAK,EAAE,UAAU,QAAQ,OAAO,UAAU,WAAW,YAAY,MAA2B;AACnG,QAAM,iBAAiB;AAAA,IACrB,SAAS;AAAA,IACT,SAAS;AAAA,IACT,OAAO;AAAA,EAAA;AAGT,QAAM,cAAc,aAAa,eAAe,OAAO,CAAC;AAExD,MAAI,OAAO;AACT,WACE,oBAAC,OAAA,EAAI,WAAW,GAAG,WAAW,wDAAwD,SAAS,IAC7F,UAAA,oBAAC,QAAA,EAAM,SAAA,CAAS,GAClB;AAAA,EAEJ;AAEA,SAAO,oBAAC,UAAK,WAAW,GAAG,WAAW,kCAAkC,SAAS,IAAK,UAAS;AACjG;AAEA,KAAK,cAAc;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/typography/code/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export type HeadingProps = {
|
|
3
|
+
/** Content to be rendered within the heading element */
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
/** Semantic heading level (h1-h6)
|
|
6
|
+
* @default 1
|
|
7
|
+
*/
|
|
8
|
+
level?: 1 | 2 | 3 | 4 | 5 | 6;
|
|
9
|
+
/**
|
|
10
|
+
* Text alignment
|
|
11
|
+
* @default 'left'
|
|
12
|
+
*/
|
|
13
|
+
align?: 'left' | 'center' | 'right' | 'justify';
|
|
14
|
+
/** Additional CSS classes for custom styling */
|
|
15
|
+
className?: string;
|
|
16
|
+
/** Whether to include default bottom margin spacing
|
|
17
|
+
* @default false
|
|
18
|
+
*/
|
|
19
|
+
hasMargin?: boolean;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Heading - Consistent typography scale (H1-H6)
|
|
23
|
+
* Includes sensible default margins for spacing and responsive font sizes
|
|
24
|
+
*/
|
|
25
|
+
declare function Heading({ children, level, align, className, hasMargin }: Readonly<HeadingProps>): import('react').DetailedReactHTMLElement<{
|
|
26
|
+
className: string;
|
|
27
|
+
}, HTMLElement>;
|
|
28
|
+
declare namespace Heading {
|
|
29
|
+
var displayName: string;
|
|
30
|
+
}
|
|
31
|
+
export default Heading;
|
|
32
|
+
//# sourceMappingURL=heading.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heading.d.ts","sourceRoot":"","sources":["../../../../src/components/typography/heading/heading.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAiB,MAAM,OAAO,CAAC;AAEjD,MAAM,MAAM,YAAY,GAAG;IACzB,wDAAwD;IACxD,QAAQ,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IAChD,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,iBAAS,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAS,EAAE,KAAK,EAAE,SAAc,EAAE,SAAiB,EAAE,EAAE,QAAQ,CAAC,YAAY,CAAC;;gBAoCzG;kBApCQ,OAAO;;;AAwChB,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { createElement } from "react";
|
|
2
|
+
function Heading({ children, level = 1, align, className = "", hasMargin = false }) {
|
|
3
|
+
const levelClasses = {
|
|
4
|
+
1: "text-3xl sm:text-4xl lg:text-5xl font-bold",
|
|
5
|
+
2: "text-2xl sm:text-3xl lg:text-4xl font-bold",
|
|
6
|
+
3: "text-xl sm:text-2xl lg:text-3xl font-semibold",
|
|
7
|
+
4: "text-lg sm:text-xl font-semibold",
|
|
8
|
+
5: "text-base sm:text-lg font-medium",
|
|
9
|
+
6: "text-sm sm:text-base font-medium"
|
|
10
|
+
};
|
|
11
|
+
const marginClasses = {
|
|
12
|
+
1: "mb-3 sm:mb-4",
|
|
13
|
+
2: "mb-2 sm:mb-3",
|
|
14
|
+
3: "mb-2 sm:mb-3",
|
|
15
|
+
4: "mb-1 sm:mb-2",
|
|
16
|
+
5: "mb-1 sm:mb-2",
|
|
17
|
+
6: "mb-1 sm:mb-2"
|
|
18
|
+
};
|
|
19
|
+
const alignClasses = {
|
|
20
|
+
left: "text-left",
|
|
21
|
+
center: "text-center",
|
|
22
|
+
right: "text-right",
|
|
23
|
+
justify: "text-justify"
|
|
24
|
+
};
|
|
25
|
+
const margin = hasMargin ? marginClasses[level] : "";
|
|
26
|
+
const alignment = align ? alignClasses[align] : "";
|
|
27
|
+
return createElement(
|
|
28
|
+
`h${level}`,
|
|
29
|
+
{
|
|
30
|
+
className: `text-foreground ${levelClasses[level]} ${margin} ${alignment} ${className}`
|
|
31
|
+
},
|
|
32
|
+
children
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
Heading.displayName = "Heading";
|
|
36
|
+
export {
|
|
37
|
+
Heading as default
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=heading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heading.js","sources":["../../../../src/components/typography/heading/heading.tsx"],"sourcesContent":["import { ReactNode, createElement } from 'react';\n\nexport type HeadingProps = {\n /** Content to be rendered within the heading element */\n children: ReactNode;\n /** Semantic heading level (h1-h6)\n * @default 1\n */\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n /**\n * Text alignment\n * @default 'left'\n */\n align?: 'left' | 'center' | 'right' | 'justify';\n /** Additional CSS classes for custom styling */\n className?: string;\n /** Whether to include default bottom margin spacing\n * @default false\n */\n hasMargin?: boolean;\n};\n\n/**\n * Heading - Consistent typography scale (H1-H6)\n * Includes sensible default margins for spacing and responsive font sizes\n */\nfunction Heading({ children, level = 1, align, className = '', hasMargin = false }: Readonly<HeadingProps>) {\n const levelClasses = {\n 1: 'text-3xl sm:text-4xl lg:text-5xl font-bold',\n 2: 'text-2xl sm:text-3xl lg:text-4xl font-bold',\n 3: 'text-xl sm:text-2xl lg:text-3xl font-semibold',\n 4: 'text-lg sm:text-xl font-semibold',\n 5: 'text-base sm:text-lg font-medium',\n 6: 'text-sm sm:text-base font-medium'\n };\n\n const marginClasses = {\n 1: 'mb-3 sm:mb-4',\n 2: 'mb-2 sm:mb-3',\n 3: 'mb-2 sm:mb-3',\n 4: 'mb-1 sm:mb-2',\n 5: 'mb-1 sm:mb-2',\n 6: 'mb-1 sm:mb-2'\n };\n\n const alignClasses = {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n justify: 'text-justify'\n };\n\n const margin = hasMargin ? marginClasses[level] : '';\n const alignment = align ? alignClasses[align] : '';\n\n return createElement(\n `h${level}`,\n {\n className: `text-foreground ${levelClasses[level]} ${margin} ${alignment} ${className}`\n },\n children\n );\n}\n\nHeading.displayName = 'Heading';\n\nexport default Heading;\n"],"names":[],"mappings":";AA0BA,SAAS,QAAQ,EAAE,UAAU,QAAQ,GAAG,OAAO,YAAY,IAAI,YAAY,SAAiC;AAC1G,QAAM,eAAe;AAAA,IACnB,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EAAA;AAGL,QAAM,gBAAgB;AAAA,IACpB,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EAAA;AAGL,QAAM,eAAe;AAAA,IACnB,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,EAAA;AAGX,QAAM,SAAS,YAAY,cAAc,KAAK,IAAI;AAClD,QAAM,YAAY,QAAQ,aAAa,KAAK,IAAI;AAEhD,SAAO;AAAA,IACL,IAAI,KAAK;AAAA,IACT;AAAA,MACE,WAAW,mBAAmB,aAAa,KAAK,CAAC,IAAI,MAAM,IAAI,SAAS,IAAI,SAAS;AAAA,IAAA;AAAA,IAEvF;AAAA,EAAA;AAEJ;AAEA,QAAQ,cAAc;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/typography/heading/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC"}
|