@noambz/ui 0.7.0
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 +230 -0
- package/dist/__test-setup__.d.ts +2 -0
- package/dist/__test-setup__.d.ts.map +1 -0
- package/dist/components/atoms/avatar/avatar.d.ts +16 -0
- package/dist/components/atoms/avatar/avatar.d.ts.map +1 -0
- package/dist/components/atoms/avatar/avatar.js +58 -0
- package/dist/components/atoms/avatar/avatar.js.map +1 -0
- package/dist/components/atoms/avatar/avatar.stories.d.ts +9 -0
- package/dist/components/atoms/avatar/avatar.stories.d.ts.map +1 -0
- package/dist/components/atoms/avatar/index.d.ts +3 -0
- package/dist/components/atoms/avatar/index.d.ts.map +1 -0
- package/dist/components/atoms/avatar/index.js +7 -0
- package/dist/components/atoms/avatar/index.js.map +1 -0
- package/dist/components/atoms/checkbox/checkbox.d.ts +15 -0
- package/dist/components/atoms/checkbox/checkbox.d.ts.map +1 -0
- package/dist/components/atoms/checkbox/checkbox.js +44 -0
- package/dist/components/atoms/checkbox/checkbox.js.map +1 -0
- package/dist/components/atoms/checkbox/checkbox.stories.d.ts +11 -0
- package/dist/components/atoms/checkbox/checkbox.stories.d.ts.map +1 -0
- package/dist/components/atoms/checkbox/index.d.ts +3 -0
- package/dist/components/atoms/checkbox/index.d.ts.map +1 -0
- package/dist/components/atoms/checkbox/index.js +5 -0
- package/dist/components/atoms/checkbox/index.js.map +1 -0
- package/dist/components/atoms/index.d.ts +17 -0
- package/dist/components/atoms/index.d.ts.map +1 -0
- package/dist/components/atoms/index.js +17 -0
- package/dist/components/atoms/index.js.map +1 -0
- package/dist/components/atoms/input/index.d.ts +4 -0
- package/dist/components/atoms/input/index.d.ts.map +1 -0
- package/dist/components/atoms/input/index.js +9 -0
- package/dist/components/atoms/input/index.js.map +1 -0
- package/dist/components/atoms/input/input.d.ts +16 -0
- package/dist/components/atoms/input/input.d.ts.map +1 -0
- package/dist/components/atoms/input/input.js +45 -0
- package/dist/components/atoms/input/input.js.map +1 -0
- package/dist/components/atoms/input/input.stories.d.ts +13 -0
- package/dist/components/atoms/input/input.stories.d.ts.map +1 -0
- package/dist/components/atoms/input/input.type.d.ts +10 -0
- package/dist/components/atoms/input/input.type.d.ts.map +1 -0
- package/dist/components/atoms/input/input.type.js +16 -0
- package/dist/components/atoms/input/input.type.js.map +1 -0
- package/dist/components/atoms/kbd/index.d.ts +3 -0
- package/dist/components/atoms/kbd/index.d.ts.map +1 -0
- package/dist/components/atoms/kbd/index.js +5 -0
- package/dist/components/atoms/kbd/index.js.map +1 -0
- package/dist/components/atoms/kbd/kbd.d.ts +10 -0
- package/dist/components/atoms/kbd/kbd.d.ts.map +1 -0
- package/dist/components/atoms/kbd/kbd.js +21 -0
- package/dist/components/atoms/kbd/kbd.js.map +1 -0
- package/dist/components/atoms/kbd/kbd.stories.d.ts +9 -0
- package/dist/components/atoms/kbd/kbd.stories.d.ts.map +1 -0
- package/dist/components/atoms/label/index.d.ts +3 -0
- package/dist/components/atoms/label/index.d.ts.map +1 -0
- package/dist/components/atoms/label/index.js +5 -0
- package/dist/components/atoms/label/index.js.map +1 -0
- package/dist/components/atoms/label/label.d.ts +16 -0
- package/dist/components/atoms/label/label.d.ts.map +1 -0
- package/dist/components/atoms/label/label.js +28 -0
- package/dist/components/atoms/label/label.js.map +1 -0
- package/dist/components/atoms/label/label.stories.d.ts +9 -0
- package/dist/components/atoms/label/label.stories.d.ts.map +1 -0
- package/dist/components/atoms/popover/index.d.ts +2 -0
- package/dist/components/atoms/popover/index.d.ts.map +1 -0
- package/dist/components/atoms/popover/index.js +9 -0
- package/dist/components/atoms/popover/index.js.map +1 -0
- package/dist/components/atoms/popover/popover.d.ts +7 -0
- package/dist/components/atoms/popover/popover.d.ts.map +1 -0
- package/dist/components/atoms/popover/popover.js +31 -0
- package/dist/components/atoms/popover/popover.js.map +1 -0
- package/dist/components/atoms/popover/popover.stories.d.ts +7 -0
- package/dist/components/atoms/popover/popover.stories.d.ts.map +1 -0
- package/dist/components/atoms/radio-group/index.d.ts +3 -0
- package/dist/components/atoms/radio-group/index.d.ts.map +1 -0
- package/dist/components/atoms/radio-group/index.js +6 -0
- package/dist/components/atoms/radio-group/index.js.map +1 -0
- package/dist/components/atoms/radio-group/radio-group.d.ts +13 -0
- package/dist/components/atoms/radio-group/radio-group.d.ts.map +1 -0
- package/dist/components/atoms/radio-group/radio-group.js +30 -0
- package/dist/components/atoms/radio-group/radio-group.js.map +1 -0
- package/dist/components/atoms/radio-group/radio-group.stories.d.ts +7 -0
- package/dist/components/atoms/radio-group/radio-group.stories.d.ts.map +1 -0
- package/dist/components/atoms/separator/index.d.ts +3 -0
- package/dist/components/atoms/separator/index.d.ts.map +1 -0
- package/dist/components/atoms/separator/index.js +5 -0
- package/dist/components/atoms/separator/index.js.map +1 -0
- package/dist/components/atoms/separator/separator.d.ts +10 -0
- package/dist/components/atoms/separator/separator.d.ts.map +1 -0
- package/dist/components/atoms/separator/separator.js +26 -0
- package/dist/components/atoms/separator/separator.js.map +1 -0
- package/dist/components/atoms/separator/separator.stories.d.ts +8 -0
- package/dist/components/atoms/separator/separator.stories.d.ts.map +1 -0
- package/dist/components/atoms/skeleton/index.d.ts +3 -0
- package/dist/components/atoms/skeleton/index.d.ts.map +1 -0
- package/dist/components/atoms/skeleton/index.js +6 -0
- package/dist/components/atoms/skeleton/index.js.map +1 -0
- package/dist/components/atoms/skeleton/skeleton.d.ts +30 -0
- package/dist/components/atoms/skeleton/skeleton.d.ts.map +1 -0
- package/dist/components/atoms/skeleton/skeleton.js +53 -0
- package/dist/components/atoms/skeleton/skeleton.js.map +1 -0
- package/dist/components/atoms/skeleton/skeleton.stories.d.ts +10 -0
- package/dist/components/atoms/skeleton/skeleton.stories.d.ts.map +1 -0
- package/dist/components/atoms/spinner/index.d.ts +3 -0
- package/dist/components/atoms/spinner/index.d.ts.map +1 -0
- package/dist/components/atoms/spinner/index.js +5 -0
- package/dist/components/atoms/spinner/index.js.map +1 -0
- package/dist/components/atoms/spinner/spinner.d.ts +16 -0
- package/dist/components/atoms/spinner/spinner.d.ts.map +1 -0
- package/dist/components/atoms/spinner/spinner.js +43 -0
- package/dist/components/atoms/spinner/spinner.js.map +1 -0
- package/dist/components/atoms/spinner/spinner.stories.d.ts +9 -0
- package/dist/components/atoms/spinner/spinner.stories.d.ts.map +1 -0
- package/dist/components/atoms/switch/index.d.ts +3 -0
- package/dist/components/atoms/switch/index.d.ts.map +1 -0
- package/dist/components/atoms/switch/index.js +5 -0
- package/dist/components/atoms/switch/index.js.map +1 -0
- package/dist/components/atoms/switch/switch.d.ts +10 -0
- package/dist/components/atoms/switch/switch.d.ts.map +1 -0
- package/dist/components/atoms/switch/switch.js +35 -0
- package/dist/components/atoms/switch/switch.js.map +1 -0
- package/dist/components/atoms/tag/index.d.ts +4 -0
- package/dist/components/atoms/tag/index.d.ts.map +1 -0
- package/dist/components/atoms/tag/index.js +10 -0
- package/dist/components/atoms/tag/index.js.map +1 -0
- package/dist/components/atoms/tag/tag.d.ts +22 -0
- package/dist/components/atoms/tag/tag.d.ts.map +1 -0
- package/dist/components/atoms/tag/tag.js +50 -0
- package/dist/components/atoms/tag/tag.js.map +1 -0
- package/dist/components/atoms/tag/tag.stories.d.ts +9 -0
- package/dist/components/atoms/tag/tag.stories.d.ts.map +1 -0
- package/dist/components/atoms/tag/tag.type.d.ts +13 -0
- package/dist/components/atoms/tag/tag.type.d.ts.map +1 -0
- package/dist/components/atoms/tag/tag.type.js +19 -0
- package/dist/components/atoms/tag/tag.type.js.map +1 -0
- package/dist/components/atoms/textarea/index.d.ts +3 -0
- package/dist/components/atoms/textarea/index.d.ts.map +1 -0
- package/dist/components/atoms/textarea/index.js +6 -0
- package/dist/components/atoms/textarea/index.js.map +1 -0
- package/dist/components/atoms/textarea/textarea.d.ts +15 -0
- package/dist/components/atoms/textarea/textarea.d.ts.map +1 -0
- package/dist/components/atoms/textarea/textarea.js +43 -0
- package/dist/components/atoms/textarea/textarea.js.map +1 -0
- package/dist/components/atoms/textarea/textarea.stories.d.ts +11 -0
- package/dist/components/atoms/textarea/textarea.stories.d.ts.map +1 -0
- package/dist/components/atoms/toggle/index.d.ts +3 -0
- package/dist/components/atoms/toggle/index.d.ts.map +1 -0
- package/dist/components/atoms/toggle/index.js +5 -0
- package/dist/components/atoms/toggle/index.js.map +1 -0
- package/dist/components/atoms/toggle/toggle.d.ts +15 -0
- package/dist/components/atoms/toggle/toggle.d.ts.map +1 -0
- package/dist/components/atoms/toggle/toggle.js +44 -0
- package/dist/components/atoms/toggle/toggle.js.map +1 -0
- package/dist/components/atoms/toggle/toggle.stories.d.ts +10 -0
- package/dist/components/atoms/toggle/toggle.stories.d.ts.map +1 -0
- package/dist/components/atoms/typography/index.d.ts +3 -0
- package/dist/components/atoms/typography/index.d.ts.map +1 -0
- package/dist/components/atoms/typography/index.js +5 -0
- package/dist/components/atoms/typography/index.js.map +1 -0
- package/dist/components/atoms/typography/typography.d.ts +22 -0
- package/dist/components/atoms/typography/typography.d.ts.map +1 -0
- package/dist/components/atoms/typography/typography.js +55 -0
- package/dist/components/atoms/typography/typography.js.map +1 -0
- package/dist/components/atoms/typography/typography.stories.d.ts +8 -0
- package/dist/components/atoms/typography/typography.stories.d.ts.map +1 -0
- package/dist/components/atoms/visually-hidden/index.d.ts +3 -0
- package/dist/components/atoms/visually-hidden/index.d.ts.map +1 -0
- package/dist/components/atoms/visually-hidden/index.js +5 -0
- package/dist/components/atoms/visually-hidden/index.js.map +1 -0
- package/dist/components/atoms/visually-hidden/visually-hidden.d.ts +9 -0
- package/dist/components/atoms/visually-hidden/visually-hidden.d.ts.map +1 -0
- package/dist/components/atoms/visually-hidden/visually-hidden.js +10 -0
- package/dist/components/atoms/visually-hidden/visually-hidden.js.map +1 -0
- package/dist/components/atoms/visually-hidden/visually-hidden.stories.d.ts +6 -0
- package/dist/components/atoms/visually-hidden/visually-hidden.stories.d.ts.map +1 -0
- package/dist/components/index.d.ts +5 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +5 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/molecules/accordion/accordion.d.ts +6 -0
- package/dist/components/molecules/accordion/accordion.d.ts.map +1 -0
- package/dist/components/molecules/accordion/accordion.js +52 -0
- package/dist/components/molecules/accordion/accordion.js.map +1 -0
- package/dist/components/molecules/accordion/accordion.stories.d.ts +7 -0
- package/dist/components/molecules/accordion/accordion.stories.d.ts.map +1 -0
- package/dist/components/molecules/accordion/index.d.ts +2 -0
- package/dist/components/molecules/accordion/index.d.ts.map +1 -0
- package/dist/components/molecules/accordion/index.js +8 -0
- package/dist/components/molecules/accordion/index.js.map +1 -0
- package/dist/components/molecules/alert/alert.d.ts +21 -0
- package/dist/components/molecules/alert/alert.d.ts.map +1 -0
- package/dist/components/molecules/alert/alert.js +70 -0
- package/dist/components/molecules/alert/alert.js.map +1 -0
- package/dist/components/molecules/alert/alert.stories.d.ts +12 -0
- package/dist/components/molecules/alert/alert.stories.d.ts.map +1 -0
- package/dist/components/molecules/alert/index.d.ts +3 -0
- package/dist/components/molecules/alert/index.d.ts.map +1 -0
- package/dist/components/molecules/alert/index.js +5 -0
- package/dist/components/molecules/alert/index.js.map +1 -0
- package/dist/components/molecules/breadcrumbs/breadcrumbs.d.ts +23 -0
- package/dist/components/molecules/breadcrumbs/breadcrumbs.d.ts.map +1 -0
- package/dist/components/molecules/breadcrumbs/breadcrumbs.js +27 -0
- package/dist/components/molecules/breadcrumbs/breadcrumbs.js.map +1 -0
- package/dist/components/molecules/breadcrumbs/breadcrumbs.stories.d.ts +8 -0
- package/dist/components/molecules/breadcrumbs/breadcrumbs.stories.d.ts.map +1 -0
- package/dist/components/molecules/breadcrumbs/index.d.ts +3 -0
- package/dist/components/molecules/breadcrumbs/index.d.ts.map +1 -0
- package/dist/components/molecules/breadcrumbs/index.js +5 -0
- package/dist/components/molecules/breadcrumbs/index.js.map +1 -0
- package/dist/components/molecules/button/button.d.ts +26 -0
- package/dist/components/molecules/button/button.d.ts.map +1 -0
- package/dist/components/molecules/button/button.js +73 -0
- package/dist/components/molecules/button/button.js.map +1 -0
- package/dist/components/molecules/button/button.stories.d.ts +12 -0
- package/dist/components/molecules/button/button.stories.d.ts.map +1 -0
- package/dist/components/molecules/button/button.type.d.ts +15 -0
- package/dist/components/molecules/button/button.type.d.ts.map +1 -0
- package/dist/components/molecules/button/button.type.js +21 -0
- package/dist/components/molecules/button/button.type.js.map +1 -0
- package/dist/components/molecules/button/index.d.ts +4 -0
- package/dist/components/molecules/button/index.d.ts.map +1 -0
- package/dist/components/molecules/button/index.js +9 -0
- package/dist/components/molecules/button/index.js.map +1 -0
- package/dist/components/molecules/card/card.d.ts +19 -0
- package/dist/components/molecules/card/card.d.ts.map +1 -0
- package/dist/components/molecules/card/card.js +61 -0
- package/dist/components/molecules/card/card.js.map +1 -0
- package/dist/components/molecules/card/card.stories.d.ts +8 -0
- package/dist/components/molecules/card/card.stories.d.ts.map +1 -0
- package/dist/components/molecules/card/index.d.ts +3 -0
- package/dist/components/molecules/card/index.d.ts.map +1 -0
- package/dist/components/molecules/card/index.js +21 -0
- package/dist/components/molecules/card/index.js.map +1 -0
- package/dist/components/molecules/dropdown-menu/dropdown-menu.d.ts +21 -0
- package/dist/components/molecules/dropdown-menu/dropdown-menu.d.ts.map +1 -0
- package/dist/components/molecules/dropdown-menu/dropdown-menu.js +103 -0
- package/dist/components/molecules/dropdown-menu/dropdown-menu.js.map +1 -0
- package/dist/components/molecules/dropdown-menu/dropdown-menu.stories.d.ts +8 -0
- package/dist/components/molecules/dropdown-menu/dropdown-menu.stories.d.ts.map +1 -0
- package/dist/components/molecules/dropdown-menu/index.d.ts +3 -0
- package/dist/components/molecules/dropdown-menu/index.d.ts.map +1 -0
- package/dist/components/molecules/dropdown-menu/index.js +35 -0
- package/dist/components/molecules/dropdown-menu/index.js.map +1 -0
- package/dist/components/molecules/empty-state/empty-state.d.ts +19 -0
- package/dist/components/molecules/empty-state/empty-state.d.ts.map +1 -0
- package/dist/components/molecules/empty-state/empty-state.js +41 -0
- package/dist/components/molecules/empty-state/empty-state.js.map +1 -0
- package/dist/components/molecules/empty-state/empty-state.stories.d.ts +9 -0
- package/dist/components/molecules/empty-state/empty-state.stories.d.ts.map +1 -0
- package/dist/components/molecules/empty-state/index.d.ts +3 -0
- package/dist/components/molecules/empty-state/index.d.ts.map +1 -0
- package/dist/components/molecules/empty-state/index.js +6 -0
- package/dist/components/molecules/empty-state/index.js.map +1 -0
- package/dist/components/molecules/form/form.d.ts +98 -0
- package/dist/components/molecules/form/form.d.ts.map +1 -0
- package/dist/components/molecules/form/form.js +151 -0
- package/dist/components/molecules/form/form.js.map +1 -0
- package/dist/components/molecules/form/form.stories.d.ts +6 -0
- package/dist/components/molecules/form/form.stories.d.ts.map +1 -0
- package/dist/components/molecules/form/form.test.d.ts +2 -0
- package/dist/components/molecules/form/form.test.d.ts.map +1 -0
- package/dist/components/molecules/form/index.d.ts +3 -0
- package/dist/components/molecules/form/index.d.ts.map +1 -0
- package/dist/components/molecules/form/index.js +7 -0
- package/dist/components/molecules/form/index.js.map +1 -0
- package/dist/components/molecules/form-field/form-field.d.ts +16 -0
- package/dist/components/molecules/form-field/form-field.d.ts.map +1 -0
- package/dist/components/molecules/form-field/form-field.js +34 -0
- package/dist/components/molecules/form-field/form-field.js.map +1 -0
- package/dist/components/molecules/form-field/form-field.stories.d.ts +9 -0
- package/dist/components/molecules/form-field/form-field.stories.d.ts.map +1 -0
- package/dist/components/molecules/form-field/index.d.ts +3 -0
- package/dist/components/molecules/form-field/index.d.ts.map +1 -0
- package/dist/components/molecules/form-field/index.js +5 -0
- package/dist/components/molecules/form-field/index.js.map +1 -0
- package/dist/components/molecules/index.d.ts +29 -0
- package/dist/components/molecules/index.d.ts.map +1 -0
- package/dist/components/molecules/index.js +29 -0
- package/dist/components/molecules/index.js.map +1 -0
- package/dist/components/molecules/labeled-switch/index.d.ts +2 -0
- package/dist/components/molecules/labeled-switch/index.d.ts.map +1 -0
- package/dist/components/molecules/labeled-switch/index.js +2 -0
- package/dist/components/molecules/labeled-switch/index.js.map +1 -0
- package/dist/components/molecules/labeled-switch/labeled-switch.d.ts +14 -0
- package/dist/components/molecules/labeled-switch/labeled-switch.d.ts.map +1 -0
- package/dist/components/molecules/labeled-switch/labeled-switch.js +26 -0
- package/dist/components/molecules/labeled-switch/labeled-switch.js.map +1 -0
- package/dist/components/molecules/language-toggle/index.d.ts +3 -0
- package/dist/components/molecules/language-toggle/index.d.ts.map +1 -0
- package/dist/components/molecules/language-toggle/index.js +5 -0
- package/dist/components/molecules/language-toggle/index.js.map +1 -0
- package/dist/components/molecules/language-toggle/language-toggle.d.ts +18 -0
- package/dist/components/molecules/language-toggle/language-toggle.d.ts.map +1 -0
- package/dist/components/molecules/language-toggle/language-toggle.js +27 -0
- package/dist/components/molecules/language-toggle/language-toggle.js.map +1 -0
- package/dist/components/molecules/language-toggle/language-toggle.stories.d.ts +9 -0
- package/dist/components/molecules/language-toggle/language-toggle.stories.d.ts.map +1 -0
- package/dist/components/molecules/multi-toggle/index.d.ts +3 -0
- package/dist/components/molecules/multi-toggle/index.d.ts.map +1 -0
- package/dist/components/molecules/multi-toggle/index.js +5 -0
- package/dist/components/molecules/multi-toggle/index.js.map +1 -0
- package/dist/components/molecules/multi-toggle/multi-toggle.d.ts +26 -0
- package/dist/components/molecules/multi-toggle/multi-toggle.d.ts.map +1 -0
- package/dist/components/molecules/multi-toggle/multi-toggle.js +75 -0
- package/dist/components/molecules/multi-toggle/multi-toggle.js.map +1 -0
- package/dist/components/molecules/multi-toggle/multi-toggle.stories.d.ts +9 -0
- package/dist/components/molecules/multi-toggle/multi-toggle.stories.d.ts.map +1 -0
- package/dist/components/molecules/number-input/index.d.ts +2 -0
- package/dist/components/molecules/number-input/index.d.ts.map +1 -0
- package/dist/components/molecules/number-input/index.js +5 -0
- package/dist/components/molecules/number-input/index.js.map +1 -0
- package/dist/components/molecules/number-input/number-input.d.ts +22 -0
- package/dist/components/molecules/number-input/number-input.d.ts.map +1 -0
- package/dist/components/molecules/number-input/number-input.js +115 -0
- package/dist/components/molecules/number-input/number-input.js.map +1 -0
- package/dist/components/molecules/number-input/number-input.stories.d.ts +10 -0
- package/dist/components/molecules/number-input/number-input.stories.d.ts.map +1 -0
- package/dist/components/molecules/number-input/number-input.test.d.ts +2 -0
- package/dist/components/molecules/number-input/number-input.test.d.ts.map +1 -0
- package/dist/components/molecules/otp-input/index.d.ts +2 -0
- package/dist/components/molecules/otp-input/index.d.ts.map +1 -0
- package/dist/components/molecules/otp-input/index.js +5 -0
- package/dist/components/molecules/otp-input/index.js.map +1 -0
- package/dist/components/molecules/otp-input/otp-input.d.ts +27 -0
- package/dist/components/molecules/otp-input/otp-input.d.ts.map +1 -0
- package/dist/components/molecules/otp-input/otp-input.js +134 -0
- package/dist/components/molecules/otp-input/otp-input.js.map +1 -0
- package/dist/components/molecules/otp-input/otp-input.stories.d.ts +10 -0
- package/dist/components/molecules/otp-input/otp-input.stories.d.ts.map +1 -0
- package/dist/components/molecules/otp-input/otp-input.test.d.ts +2 -0
- package/dist/components/molecules/otp-input/otp-input.test.d.ts.map +1 -0
- package/dist/components/molecules/page-header/index.d.ts +2 -0
- package/dist/components/molecules/page-header/index.d.ts.map +1 -0
- package/dist/components/molecules/page-header/index.js +2 -0
- package/dist/components/molecules/page-header/index.js.map +1 -0
- package/dist/components/molecules/page-header/page-header.d.ts +12 -0
- package/dist/components/molecules/page-header/page-header.d.ts.map +1 -0
- package/dist/components/molecules/page-header/page-header.js +18 -0
- package/dist/components/molecules/page-header/page-header.js.map +1 -0
- package/dist/components/molecules/pagination/index.d.ts +3 -0
- package/dist/components/molecules/pagination/index.d.ts.map +1 -0
- package/dist/components/molecules/pagination/index.js +5 -0
- package/dist/components/molecules/pagination/index.js.map +1 -0
- package/dist/components/molecules/pagination/pagination.d.ts +19 -0
- package/dist/components/molecules/pagination/pagination.d.ts.map +1 -0
- package/dist/components/molecules/pagination/pagination.js +45 -0
- package/dist/components/molecules/pagination/pagination.js.map +1 -0
- package/dist/components/molecules/pagination/pagination.stories.d.ts +11 -0
- package/dist/components/molecules/pagination/pagination.stories.d.ts.map +1 -0
- package/dist/components/molecules/progress/index.d.ts +3 -0
- package/dist/components/molecules/progress/index.d.ts.map +1 -0
- package/dist/components/molecules/progress/index.js +5 -0
- package/dist/components/molecules/progress/index.js.map +1 -0
- package/dist/components/molecules/progress/progress.d.ts +20 -0
- package/dist/components/molecules/progress/progress.d.ts.map +1 -0
- package/dist/components/molecules/progress/progress.js +63 -0
- package/dist/components/molecules/progress/progress.js.map +1 -0
- package/dist/components/molecules/progress/progress.stories.d.ts +12 -0
- package/dist/components/molecules/progress/progress.stories.d.ts.map +1 -0
- package/dist/components/molecules/query-state/index.d.ts +2 -0
- package/dist/components/molecules/query-state/index.d.ts.map +1 -0
- package/dist/components/molecules/query-state/index.js +2 -0
- package/dist/components/molecules/query-state/index.js.map +1 -0
- package/dist/components/molecules/query-state/query-state.d.ts +18 -0
- package/dist/components/molecules/query-state/query-state.d.ts.map +1 -0
- package/dist/components/molecules/query-state/query-state.js +54 -0
- package/dist/components/molecules/query-state/query-state.js.map +1 -0
- package/dist/components/molecules/search-input/index.d.ts +2 -0
- package/dist/components/molecules/search-input/index.d.ts.map +1 -0
- package/dist/components/molecules/search-input/index.js +5 -0
- package/dist/components/molecules/search-input/index.js.map +1 -0
- package/dist/components/molecules/search-input/search-input.d.ts +22 -0
- package/dist/components/molecules/search-input/search-input.d.ts.map +1 -0
- package/dist/components/molecules/search-input/search-input.js +127 -0
- package/dist/components/molecules/search-input/search-input.js.map +1 -0
- package/dist/components/molecules/search-input/search-input.stories.d.ts +9 -0
- package/dist/components/molecules/search-input/search-input.stories.d.ts.map +1 -0
- package/dist/components/molecules/search-input/search-input.test.d.ts +2 -0
- package/dist/components/molecules/search-input/search-input.test.d.ts.map +1 -0
- package/dist/components/molecules/signal-card/index.d.ts +3 -0
- package/dist/components/molecules/signal-card/index.d.ts.map +1 -0
- package/dist/components/molecules/signal-card/index.js +5 -0
- package/dist/components/molecules/signal-card/index.js.map +1 -0
- package/dist/components/molecules/signal-card/signal-card.d.ts +32 -0
- package/dist/components/molecules/signal-card/signal-card.d.ts.map +1 -0
- package/dist/components/molecules/signal-card/signal-card.js +80 -0
- package/dist/components/molecules/signal-card/signal-card.js.map +1 -0
- package/dist/components/molecules/signal-card/signal-card.stories.d.ts +9 -0
- package/dist/components/molecules/signal-card/signal-card.stories.d.ts.map +1 -0
- package/dist/components/molecules/signal-severity-badge/index.d.ts +4 -0
- package/dist/components/molecules/signal-severity-badge/index.d.ts.map +1 -0
- package/dist/components/molecules/signal-severity-badge/index.js +7 -0
- package/dist/components/molecules/signal-severity-badge/index.js.map +1 -0
- package/dist/components/molecules/signal-severity-badge/signal-severity-badge.d.ts +19 -0
- package/dist/components/molecules/signal-severity-badge/signal-severity-badge.d.ts.map +1 -0
- package/dist/components/molecules/signal-severity-badge/signal-severity-badge.js +49 -0
- package/dist/components/molecules/signal-severity-badge/signal-severity-badge.js.map +1 -0
- package/dist/components/molecules/signal-severity-badge/signal-severity-badge.stories.d.ts +9 -0
- package/dist/components/molecules/signal-severity-badge/signal-severity-badge.stories.d.ts.map +1 -0
- package/dist/components/molecules/signal-severity-badge/signal-severity-badge.type.d.ts +7 -0
- package/dist/components/molecules/signal-severity-badge/signal-severity-badge.type.d.ts.map +1 -0
- package/dist/components/molecules/signal-severity-badge/signal-severity-badge.type.js +11 -0
- package/dist/components/molecules/signal-severity-badge/signal-severity-badge.type.js.map +1 -0
- package/dist/components/molecules/stat-grid/index.d.ts +2 -0
- package/dist/components/molecules/stat-grid/index.d.ts.map +1 -0
- package/dist/components/molecules/stat-grid/index.js +2 -0
- package/dist/components/molecules/stat-grid/index.js.map +1 -0
- package/dist/components/molecules/stat-grid/stat-grid.d.ts +15 -0
- package/dist/components/molecules/stat-grid/stat-grid.d.ts.map +1 -0
- package/dist/components/molecules/stat-grid/stat-grid.js +19 -0
- package/dist/components/molecules/stat-grid/stat-grid.js.map +1 -0
- package/dist/components/molecules/summary-header/index.d.ts +3 -0
- package/dist/components/molecules/summary-header/index.d.ts.map +1 -0
- package/dist/components/molecules/summary-header/index.js +5 -0
- package/dist/components/molecules/summary-header/index.js.map +1 -0
- package/dist/components/molecules/summary-header/summary-header.d.ts +23 -0
- package/dist/components/molecules/summary-header/summary-header.d.ts.map +1 -0
- package/dist/components/molecules/summary-header/summary-header.js +57 -0
- package/dist/components/molecules/summary-header/summary-header.js.map +1 -0
- package/dist/components/molecules/summary-header/summary-header.stories.d.ts +8 -0
- package/dist/components/molecules/summary-header/summary-header.stories.d.ts.map +1 -0
- package/dist/components/molecules/tabs/index.d.ts +2 -0
- package/dist/components/molecules/tabs/index.d.ts.map +1 -0
- package/dist/components/molecules/tabs/index.js +8 -0
- package/dist/components/molecules/tabs/index.js.map +1 -0
- package/dist/components/molecules/tabs/tabs.d.ts +6 -0
- package/dist/components/molecules/tabs/tabs.d.ts.map +1 -0
- package/dist/components/molecules/tabs/tabs.js +46 -0
- package/dist/components/molecules/tabs/tabs.js.map +1 -0
- package/dist/components/molecules/tabs/tabs.stories.d.ts +7 -0
- package/dist/components/molecules/tabs/tabs.stories.d.ts.map +1 -0
- package/dist/components/molecules/tag-input/index.d.ts +2 -0
- package/dist/components/molecules/tag-input/index.d.ts.map +1 -0
- package/dist/components/molecules/tag-input/index.js +5 -0
- package/dist/components/molecules/tag-input/index.js.map +1 -0
- package/dist/components/molecules/tag-input/tag-input.d.ts +27 -0
- package/dist/components/molecules/tag-input/tag-input.d.ts.map +1 -0
- package/dist/components/molecules/tag-input/tag-input.js +143 -0
- package/dist/components/molecules/tag-input/tag-input.js.map +1 -0
- package/dist/components/molecules/tag-input/tag-input.stories.d.ts +10 -0
- package/dist/components/molecules/tag-input/tag-input.stories.d.ts.map +1 -0
- package/dist/components/molecules/tag-input/tag-input.test.d.ts +2 -0
- package/dist/components/molecules/tag-input/tag-input.test.d.ts.map +1 -0
- package/dist/components/molecules/text-artifact-card/index.d.ts +2 -0
- package/dist/components/molecules/text-artifact-card/index.d.ts.map +1 -0
- package/dist/components/molecules/text-artifact-card/index.js +2 -0
- package/dist/components/molecules/text-artifact-card/index.js.map +1 -0
- package/dist/components/molecules/text-artifact-card/text-artifact-card.d.ts +16 -0
- package/dist/components/molecules/text-artifact-card/text-artifact-card.d.ts.map +1 -0
- package/dist/components/molecules/text-artifact-card/text-artifact-card.js +49 -0
- package/dist/components/molecules/text-artifact-card/text-artifact-card.js.map +1 -0
- package/dist/components/molecules/theme-toggle/index.d.ts +6 -0
- package/dist/components/molecules/theme-toggle/index.d.ts.map +1 -0
- package/dist/components/molecules/theme-toggle/index.js +10 -0
- package/dist/components/molecules/theme-toggle/index.js.map +1 -0
- package/dist/components/molecules/theme-toggle/theme-toggle-connected.d.ts +10 -0
- package/dist/components/molecules/theme-toggle/theme-toggle-connected.d.ts.map +1 -0
- package/dist/components/molecules/theme-toggle/theme-toggle-connected.js +12 -0
- package/dist/components/molecules/theme-toggle/theme-toggle-connected.js.map +1 -0
- package/dist/components/molecules/theme-toggle/theme-toggle.d.ts +19 -0
- package/dist/components/molecules/theme-toggle/theme-toggle.d.ts.map +1 -0
- package/dist/components/molecules/theme-toggle/theme-toggle.js +100 -0
- package/dist/components/molecules/theme-toggle/theme-toggle.js.map +1 -0
- package/dist/components/molecules/theme-toggle/theme-toggle.stories.d.ts +10 -0
- package/dist/components/molecules/theme-toggle/theme-toggle.stories.d.ts.map +1 -0
- package/dist/components/molecules/theme-toggle/theme-toggle.type.d.ts +11 -0
- package/dist/components/molecules/theme-toggle/theme-toggle.type.d.ts.map +1 -0
- package/dist/components/molecules/theme-toggle/theme-toggle.type.js +17 -0
- package/dist/components/molecules/theme-toggle/theme-toggle.type.js.map +1 -0
- package/dist/components/molecules/tooltip/index.d.ts +3 -0
- package/dist/components/molecules/tooltip/index.d.ts.map +1 -0
- package/dist/components/molecules/tooltip/index.js +19 -0
- package/dist/components/molecules/tooltip/index.js.map +1 -0
- package/dist/components/molecules/tooltip/tooltip.d.ts +27 -0
- package/dist/components/molecules/tooltip/tooltip.d.ts.map +1 -0
- package/dist/components/molecules/tooltip/tooltip.js +39 -0
- package/dist/components/molecules/tooltip/tooltip.js.map +1 -0
- package/dist/components/molecules/tooltip/tooltip.stories.d.ts +8 -0
- package/dist/components/molecules/tooltip/tooltip.stories.d.ts.map +1 -0
- package/dist/components/organisms/app-shell/app-shell-layout.d.ts +23 -0
- package/dist/components/organisms/app-shell/app-shell-layout.d.ts.map +1 -0
- package/dist/components/organisms/app-shell/app-shell-layout.js +46 -0
- package/dist/components/organisms/app-shell/app-shell-layout.js.map +1 -0
- package/dist/components/organisms/app-shell/app-shell-preset.d.ts +44 -0
- package/dist/components/organisms/app-shell/app-shell-preset.d.ts.map +1 -0
- package/dist/components/organisms/app-shell/app-shell-preset.js +137 -0
- package/dist/components/organisms/app-shell/app-shell-preset.js.map +1 -0
- package/dist/components/organisms/app-shell/app-shell.stories.d.ts +9 -0
- package/dist/components/organisms/app-shell/app-shell.stories.d.ts.map +1 -0
- package/dist/components/organisms/app-shell/index.d.ts +9 -0
- package/dist/components/organisms/app-shell/index.d.ts.map +1 -0
- package/dist/components/organisms/app-shell/index.js +11 -0
- package/dist/components/organisms/app-shell/index.js.map +1 -0
- package/dist/components/organisms/app-shell/module-subnav.d.ts +21 -0
- package/dist/components/organisms/app-shell/module-subnav.d.ts.map +1 -0
- package/dist/components/organisms/app-shell/module-subnav.js +33 -0
- package/dist/components/organisms/app-shell/module-subnav.js.map +1 -0
- package/dist/components/organisms/app-shell/module-subnav.stories.d.ts +8 -0
- package/dist/components/organisms/app-shell/module-subnav.stories.d.ts.map +1 -0
- package/dist/components/organisms/app-shell/module-subnav.test.d.ts +2 -0
- package/dist/components/organisms/app-shell/module-subnav.test.d.ts.map +1 -0
- package/dist/components/organisms/app-shell/sidebar-nav.d.ts +21 -0
- package/dist/components/organisms/app-shell/sidebar-nav.d.ts.map +1 -0
- package/dist/components/organisms/app-shell/sidebar-nav.js +25 -0
- package/dist/components/organisms/app-shell/sidebar-nav.js.map +1 -0
- package/dist/components/organisms/app-shell/sidebar-nav.stories.d.ts +7 -0
- package/dist/components/organisms/app-shell/sidebar-nav.stories.d.ts.map +1 -0
- package/dist/components/organisms/app-shell/sidebar-nav.test.d.ts +2 -0
- package/dist/components/organisms/app-shell/sidebar-nav.test.d.ts.map +1 -0
- package/dist/components/organisms/autocomplete/autocomplete.d.ts +43 -0
- package/dist/components/organisms/autocomplete/autocomplete.d.ts.map +1 -0
- package/dist/components/organisms/autocomplete/autocomplete.js +276 -0
- package/dist/components/organisms/autocomplete/autocomplete.js.map +1 -0
- package/dist/components/organisms/autocomplete/autocomplete.stories.d.ts +14 -0
- package/dist/components/organisms/autocomplete/autocomplete.stories.d.ts.map +1 -0
- package/dist/components/organisms/autocomplete/index.d.ts +3 -0
- package/dist/components/organisms/autocomplete/index.d.ts.map +1 -0
- package/dist/components/organisms/autocomplete/index.js +5 -0
- package/dist/components/organisms/autocomplete/index.js.map +1 -0
- package/dist/components/organisms/charts/bar-chart.d.ts +24 -0
- package/dist/components/organisms/charts/bar-chart.d.ts.map +1 -0
- package/dist/components/organisms/charts/bar-chart.js +83 -0
- package/dist/components/organisms/charts/bar-chart.js.map +1 -0
- package/dist/components/organisms/charts/charts.stories.d.ts +8 -0
- package/dist/components/organisms/charts/charts.stories.d.ts.map +1 -0
- package/dist/components/organisms/charts/index.d.ts +7 -0
- package/dist/components/organisms/charts/index.d.ts.map +1 -0
- package/dist/components/organisms/charts/index.js +9 -0
- package/dist/components/organisms/charts/index.js.map +1 -0
- package/dist/components/organisms/charts/line-chart.d.ts +27 -0
- package/dist/components/organisms/charts/line-chart.d.ts.map +1 -0
- package/dist/components/organisms/charts/line-chart.js +114 -0
- package/dist/components/organisms/charts/line-chart.js.map +1 -0
- package/dist/components/organisms/charts/sparkline.d.ts +19 -0
- package/dist/components/organisms/charts/sparkline.d.ts.map +1 -0
- package/dist/components/organisms/charts/sparkline.js +52 -0
- package/dist/components/organisms/charts/sparkline.js.map +1 -0
- package/dist/components/organisms/command-palette/command-palette.d.ts +94 -0
- package/dist/components/organisms/command-palette/command-palette.d.ts.map +1 -0
- package/dist/components/organisms/command-palette/command-palette.js +143 -0
- package/dist/components/organisms/command-palette/command-palette.js.map +1 -0
- package/dist/components/organisms/command-palette/command-palette.stories.d.ts +8 -0
- package/dist/components/organisms/command-palette/command-palette.stories.d.ts.map +1 -0
- package/dist/components/organisms/command-palette/index.d.ts +2 -0
- package/dist/components/organisms/command-palette/index.d.ts.map +1 -0
- package/dist/components/organisms/command-palette/index.js +23 -0
- package/dist/components/organisms/command-palette/index.js.map +1 -0
- package/dist/components/organisms/custom-select/custom-select.d.ts +18 -0
- package/dist/components/organisms/custom-select/custom-select.d.ts.map +1 -0
- package/dist/components/organisms/custom-select/custom-select.js +69 -0
- package/dist/components/organisms/custom-select/custom-select.js.map +1 -0
- package/dist/components/organisms/custom-select/index.d.ts +3 -0
- package/dist/components/organisms/custom-select/index.d.ts.map +1 -0
- package/dist/components/organisms/custom-select/index.js +5 -0
- package/dist/components/organisms/custom-select/index.js.map +1 -0
- package/dist/components/organisms/data-grid/data-grid.d.ts +74 -0
- package/dist/components/organisms/data-grid/data-grid.d.ts.map +1 -0
- package/dist/components/organisms/data-grid/data-grid.js +289 -0
- package/dist/components/organisms/data-grid/data-grid.js.map +1 -0
- package/dist/components/organisms/data-grid/data-grid.stories.d.ts +19 -0
- package/dist/components/organisms/data-grid/data-grid.stories.d.ts.map +1 -0
- package/dist/components/organisms/data-grid/data-grid.type.d.ts +10 -0
- package/dist/components/organisms/data-grid/data-grid.type.d.ts.map +1 -0
- package/dist/components/organisms/data-grid/data-grid.type.js +16 -0
- package/dist/components/organisms/data-grid/data-grid.type.js.map +1 -0
- package/dist/components/organisms/data-grid/index.d.ts +4 -0
- package/dist/components/organisms/data-grid/index.d.ts.map +1 -0
- package/dist/components/organisms/data-grid/index.js +8 -0
- package/dist/components/organisms/data-grid/index.js.map +1 -0
- package/dist/components/organisms/date-picker/calendar.d.ts +16 -0
- package/dist/components/organisms/date-picker/calendar.d.ts.map +1 -0
- package/dist/components/organisms/date-picker/calendar.js +60 -0
- package/dist/components/organisms/date-picker/calendar.js.map +1 -0
- package/dist/components/organisms/date-picker/date-picker.d.ts +35 -0
- package/dist/components/organisms/date-picker/date-picker.d.ts.map +1 -0
- package/dist/components/organisms/date-picker/date-picker.js +110 -0
- package/dist/components/organisms/date-picker/date-picker.js.map +1 -0
- package/dist/components/organisms/date-picker/date-picker.stories.d.ts +8 -0
- package/dist/components/organisms/date-picker/date-picker.stories.d.ts.map +1 -0
- package/dist/components/organisms/date-picker/index.d.ts +5 -0
- package/dist/components/organisms/date-picker/index.d.ts.map +1 -0
- package/dist/components/organisms/date-picker/index.js +8 -0
- package/dist/components/organisms/date-picker/index.js.map +1 -0
- package/dist/components/organisms/drawer/drawer.d.ts +55 -0
- package/dist/components/organisms/drawer/drawer.d.ts.map +1 -0
- package/dist/components/organisms/drawer/drawer.js +137 -0
- package/dist/components/organisms/drawer/drawer.js.map +1 -0
- package/dist/components/organisms/drawer/drawer.stories.d.ts +9 -0
- package/dist/components/organisms/drawer/drawer.stories.d.ts.map +1 -0
- package/dist/components/organisms/drawer/index.d.ts +3 -0
- package/dist/components/organisms/drawer/index.d.ts.map +1 -0
- package/dist/components/organisms/drawer/index.js +29 -0
- package/dist/components/organisms/drawer/index.js.map +1 -0
- package/dist/components/organisms/file-upload/file-upload.d.ts +38 -0
- package/dist/components/organisms/file-upload/file-upload.d.ts.map +1 -0
- package/dist/components/organisms/file-upload/file-upload.js +192 -0
- package/dist/components/organisms/file-upload/file-upload.js.map +1 -0
- package/dist/components/organisms/file-upload/file-upload.stories.d.ts +10 -0
- package/dist/components/organisms/file-upload/file-upload.stories.d.ts.map +1 -0
- package/dist/components/organisms/file-upload/index.d.ts +2 -0
- package/dist/components/organisms/file-upload/index.d.ts.map +1 -0
- package/dist/components/organisms/file-upload/index.js +5 -0
- package/dist/components/organisms/file-upload/index.js.map +1 -0
- package/dist/components/organisms/index.d.ts +15 -0
- package/dist/components/organisms/index.d.ts.map +1 -0
- package/dist/components/organisms/index.js +15 -0
- package/dist/components/organisms/index.js.map +1 -0
- package/dist/components/organisms/modal/index.d.ts +3 -0
- package/dist/components/organisms/modal/index.d.ts.map +1 -0
- package/dist/components/organisms/modal/index.js +27 -0
- package/dist/components/organisms/modal/index.js.map +1 -0
- package/dist/components/organisms/modal/modal.d.ts +38 -0
- package/dist/components/organisms/modal/modal.d.ts.map +1 -0
- package/dist/components/organisms/modal/modal.js +100 -0
- package/dist/components/organisms/modal/modal.js.map +1 -0
- package/dist/components/organisms/modal/modal.stories.d.ts +8 -0
- package/dist/components/organisms/modal/modal.stories.d.ts.map +1 -0
- package/dist/components/organisms/page-scaffolds/full-page-error.d.ts +22 -0
- package/dist/components/organisms/page-scaffolds/full-page-error.d.ts.map +1 -0
- package/dist/components/organisms/page-scaffolds/full-page-error.js +75 -0
- package/dist/components/organisms/page-scaffolds/full-page-error.js.map +1 -0
- package/dist/components/organisms/page-scaffolds/full-page-loading.d.ts +13 -0
- package/dist/components/organisms/page-scaffolds/full-page-loading.d.ts.map +1 -0
- package/dist/components/organisms/page-scaffolds/full-page-loading.js +30 -0
- package/dist/components/organisms/page-scaffolds/full-page-loading.js.map +1 -0
- package/dist/components/organisms/page-scaffolds/index.d.ts +4 -0
- package/dist/components/organisms/page-scaffolds/index.d.ts.map +1 -0
- package/dist/components/organisms/page-scaffolds/index.js +15 -0
- package/dist/components/organisms/page-scaffolds/index.js.map +1 -0
- package/dist/components/organisms/page-scaffolds/not-found-state.d.ts +17 -0
- package/dist/components/organisms/page-scaffolds/not-found-state.d.ts.map +1 -0
- package/dist/components/organisms/page-scaffolds/not-found-state.js +43 -0
- package/dist/components/organisms/page-scaffolds/not-found-state.js.map +1 -0
- package/dist/components/organisms/page-scaffolds/page-scaffolds.stories.d.ts +8 -0
- package/dist/components/organisms/page-scaffolds/page-scaffolds.stories.d.ts.map +1 -0
- package/dist/components/organisms/paginated-data-grid/index.d.ts +2 -0
- package/dist/components/organisms/paginated-data-grid/index.d.ts.map +1 -0
- package/dist/components/organisms/paginated-data-grid/index.js +7 -0
- package/dist/components/organisms/paginated-data-grid/index.js.map +1 -0
- package/dist/components/organisms/paginated-data-grid/paginated-data-grid.d.ts +24 -0
- package/dist/components/organisms/paginated-data-grid/paginated-data-grid.d.ts.map +1 -0
- package/dist/components/organisms/paginated-data-grid/paginated-data-grid.js +40 -0
- package/dist/components/organisms/paginated-data-grid/paginated-data-grid.js.map +1 -0
- package/dist/components/organisms/paginated-data-grid/paginated-data-grid.stories.d.ts +14 -0
- package/dist/components/organisms/paginated-data-grid/paginated-data-grid.stories.d.ts.map +1 -0
- package/dist/components/organisms/select/index.d.ts +2 -0
- package/dist/components/organisms/select/index.d.ts.map +1 -0
- package/dist/components/organisms/select/index.js +21 -0
- package/dist/components/organisms/select/index.js.map +1 -0
- package/dist/components/organisms/select/select.d.ts +10 -0
- package/dist/components/organisms/select/select.d.ts.map +1 -0
- package/dist/components/organisms/select/select.js +85 -0
- package/dist/components/organisms/select/select.js.map +1 -0
- package/dist/components/organisms/select/select.stories.d.ts +8 -0
- package/dist/components/organisms/select/select.stories.d.ts.map +1 -0
- package/dist/components/organisms/shortcut-help-overlay/index.d.ts +3 -0
- package/dist/components/organisms/shortcut-help-overlay/index.d.ts.map +1 -0
- package/dist/components/organisms/shortcut-help-overlay/index.js +5 -0
- package/dist/components/organisms/shortcut-help-overlay/index.js.map +1 -0
- package/dist/components/organisms/shortcut-help-overlay/shortcut-help-overlay.d.ts +21 -0
- package/dist/components/organisms/shortcut-help-overlay/shortcut-help-overlay.d.ts.map +1 -0
- package/dist/components/organisms/shortcut-help-overlay/shortcut-help-overlay.js +70 -0
- package/dist/components/organisms/shortcut-help-overlay/shortcut-help-overlay.js.map +1 -0
- package/dist/components/organisms/shortcut-help-overlay/shortcut-help-overlay.stories.d.ts +7 -0
- package/dist/components/organisms/shortcut-help-overlay/shortcut-help-overlay.stories.d.ts.map +1 -0
- package/dist/components/utility-wrappers/index.d.ts +8 -0
- package/dist/components/utility-wrappers/index.d.ts.map +1 -0
- package/dist/components/utility-wrappers/index.js +8 -0
- package/dist/components/utility-wrappers/index.js.map +1 -0
- package/dist/components/utility-wrappers/install-prompt/index.d.ts +3 -0
- package/dist/components/utility-wrappers/install-prompt/index.d.ts.map +1 -0
- package/dist/components/utility-wrappers/install-prompt/index.js +5 -0
- package/dist/components/utility-wrappers/install-prompt/index.js.map +1 -0
- package/dist/components/utility-wrappers/install-prompt/install-prompt.d.ts +21 -0
- package/dist/components/utility-wrappers/install-prompt/install-prompt.d.ts.map +1 -0
- package/dist/components/utility-wrappers/install-prompt/install-prompt.js +82 -0
- package/dist/components/utility-wrappers/install-prompt/install-prompt.js.map +1 -0
- package/dist/components/utility-wrappers/locale-sync/index.d.ts +3 -0
- package/dist/components/utility-wrappers/locale-sync/index.d.ts.map +1 -0
- package/dist/components/utility-wrappers/locale-sync/index.js +5 -0
- package/dist/components/utility-wrappers/locale-sync/index.js.map +1 -0
- package/dist/components/utility-wrappers/locale-sync/locale-sync.d.ts +12 -0
- package/dist/components/utility-wrappers/locale-sync/locale-sync.d.ts.map +1 -0
- package/dist/components/utility-wrappers/locale-sync/locale-sync.js +15 -0
- package/dist/components/utility-wrappers/locale-sync/locale-sync.js.map +1 -0
- package/dist/components/utility-wrappers/query-provider/index.d.ts +3 -0
- package/dist/components/utility-wrappers/query-provider/index.d.ts.map +1 -0
- package/dist/components/utility-wrappers/query-provider/index.js +5 -0
- package/dist/components/utility-wrappers/query-provider/index.js.map +1 -0
- package/dist/components/utility-wrappers/query-provider/query-provider.d.ts +14 -0
- package/dist/components/utility-wrappers/query-provider/query-provider.d.ts.map +1 -0
- package/dist/components/utility-wrappers/query-provider/query-provider.js +29 -0
- package/dist/components/utility-wrappers/query-provider/query-provider.js.map +1 -0
- package/dist/components/utility-wrappers/service-worker-registration/index.d.ts +3 -0
- package/dist/components/utility-wrappers/service-worker-registration/index.d.ts.map +1 -0
- package/dist/components/utility-wrappers/service-worker-registration/index.js +5 -0
- package/dist/components/utility-wrappers/service-worker-registration/index.js.map +1 -0
- package/dist/components/utility-wrappers/service-worker-registration/service-worker-registration.d.ts +15 -0
- package/dist/components/utility-wrappers/service-worker-registration/service-worker-registration.d.ts.map +1 -0
- package/dist/components/utility-wrappers/service-worker-registration/service-worker-registration.js +35 -0
- package/dist/components/utility-wrappers/service-worker-registration/service-worker-registration.js.map +1 -0
- package/dist/components/utility-wrappers/theme-provider/index.d.ts +3 -0
- package/dist/components/utility-wrappers/theme-provider/index.d.ts.map +1 -0
- package/dist/components/utility-wrappers/theme-provider/index.js +5 -0
- package/dist/components/utility-wrappers/theme-provider/index.js.map +1 -0
- package/dist/components/utility-wrappers/theme-provider/theme-provider.d.ts +14 -0
- package/dist/components/utility-wrappers/theme-provider/theme-provider.d.ts.map +1 -0
- package/dist/components/utility-wrappers/theme-provider/theme-provider.js +29 -0
- package/dist/components/utility-wrappers/theme-provider/theme-provider.js.map +1 -0
- package/dist/components/utility-wrappers/theme-provider/theme-provider.stories.d.ts +6 -0
- package/dist/components/utility-wrappers/theme-provider/theme-provider.stories.d.ts.map +1 -0
- package/dist/components/utility-wrappers/themed-toaster/index.d.ts +3 -0
- package/dist/components/utility-wrappers/themed-toaster/index.d.ts.map +1 -0
- package/dist/components/utility-wrappers/themed-toaster/index.js +5 -0
- package/dist/components/utility-wrappers/themed-toaster/index.js.map +1 -0
- package/dist/components/utility-wrappers/themed-toaster/themed-toaster.d.ts +12 -0
- package/dist/components/utility-wrappers/themed-toaster/themed-toaster.d.ts.map +1 -0
- package/dist/components/utility-wrappers/themed-toaster/themed-toaster.js +24 -0
- package/dist/components/utility-wrappers/themed-toaster/themed-toaster.js.map +1 -0
- package/dist/components/utility-wrappers/toast/index.d.ts +3 -0
- package/dist/components/utility-wrappers/toast/index.d.ts.map +1 -0
- package/dist/components/utility-wrappers/toast/index.js +7 -0
- package/dist/components/utility-wrappers/toast/index.js.map +1 -0
- package/dist/hooks/index.d.ts +17 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +21 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useClickOutside.d.ts +15 -0
- package/dist/hooks/useClickOutside.d.ts.map +1 -0
- package/dist/hooks/useClickOutside.js +24 -0
- package/dist/hooks/useClickOutside.js.map +1 -0
- package/dist/hooks/useCopyToClipboard.d.ts +15 -0
- package/dist/hooks/useCopyToClipboard.d.ts.map +1 -0
- package/dist/hooks/useCopyToClipboard.js +38 -0
- package/dist/hooks/useCopyToClipboard.js.map +1 -0
- package/dist/hooks/useDebounce.d.ts +10 -0
- package/dist/hooks/useDebounce.d.ts.map +1 -0
- package/dist/hooks/useDebounce.js +15 -0
- package/dist/hooks/useDebounce.js.map +1 -0
- package/dist/hooks/useDisclosure.d.ts +17 -0
- package/dist/hooks/useDisclosure.d.ts.map +1 -0
- package/dist/hooks/useDisclosure.js +13 -0
- package/dist/hooks/useDisclosure.js.map +1 -0
- package/dist/hooks/useKeyboardShortcuts.d.ts +27 -0
- package/dist/hooks/useKeyboardShortcuts.d.ts.map +1 -0
- package/dist/hooks/useKeyboardShortcuts.js +34 -0
- package/dist/hooks/useKeyboardShortcuts.js.map +1 -0
- package/dist/hooks/useLocalStorage.d.ts +18 -0
- package/dist/hooks/useLocalStorage.d.ts.map +1 -0
- package/dist/hooks/useLocalStorage.js +62 -0
- package/dist/hooks/useLocalStorage.js.map +1 -0
- package/dist/hooks/useLocale.d.ts +14 -0
- package/dist/hooks/useLocale.d.ts.map +1 -0
- package/dist/hooks/useLocale.js +45 -0
- package/dist/hooks/useLocale.js.map +1 -0
- package/dist/hooks/useMediaQuery.d.ts +10 -0
- package/dist/hooks/useMediaQuery.d.ts.map +1 -0
- package/dist/hooks/useMediaQuery.js +20 -0
- package/dist/hooks/useMediaQuery.js.map +1 -0
- package/dist/hooks/usePaginatedQuery.d.ts +31 -0
- package/dist/hooks/usePaginatedQuery.d.ts.map +1 -0
- package/dist/hooks/usePaginatedQuery.js +44 -0
- package/dist/hooks/usePaginatedQuery.js.map +1 -0
- package/dist/i18n/createI18n.d.ts +16 -0
- package/dist/i18n/createI18n.d.ts.map +1 -0
- package/dist/i18n/createI18n.js +26 -0
- package/dist/i18n/createI18n.js.map +1 -0
- package/dist/i18n/index.d.ts +3 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +5 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/api-client.d.ts +33 -0
- package/dist/utils/api-client.d.ts.map +1 -0
- package/dist/utils/api-client.js +69 -0
- package/dist/utils/api-client.js.map +1 -0
- package/dist/utils/cn.d.ts +12 -0
- package/dist/utils/cn.d.ts.map +1 -0
- package/dist/utils/cn.js +9 -0
- package/dist/utils/cn.js.map +1 -0
- package/dist/utils/format.d.ts +69 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +141 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +28 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/pagination.d.ts +34 -0
- package/dist/utils/pagination.d.ts.map +1 -0
- package/dist/utils/pagination.js +28 -0
- package/dist/utils/pagination.js.map +1 -0
- package/package.json +148 -0
- package/src/styles/theme.css +130 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import { useEffect, useState } from "react";
|
|
5
|
+
import { cn } from "../../../utils/cn.js";
|
|
6
|
+
import { ThemeValueEnum } from "./theme-toggle.type.js";
|
|
7
|
+
const themeToggleVariants = cva(
|
|
8
|
+
"inline-flex items-center justify-center rounded-lg border border-border-strong transition-colors hover:bg-surface-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
9
|
+
{
|
|
10
|
+
variants: {
|
|
11
|
+
size: {
|
|
12
|
+
sm: "h-7 w-7 p-1",
|
|
13
|
+
md: "h-9 w-9 p-1.5",
|
|
14
|
+
lg: "h-11 w-11 p-2"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
defaultVariants: {
|
|
18
|
+
size: "md"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
);
|
|
22
|
+
const DEFAULT_LABELS = {
|
|
23
|
+
[ThemeValueEnum.LIGHT]: "Light",
|
|
24
|
+
[ThemeValueEnum.DARK]: "Dark",
|
|
25
|
+
[ThemeValueEnum.SYSTEM]: "System"
|
|
26
|
+
};
|
|
27
|
+
const CYCLE = {
|
|
28
|
+
[ThemeValueEnum.LIGHT]: ThemeValueEnum.DARK,
|
|
29
|
+
[ThemeValueEnum.DARK]: ThemeValueEnum.SYSTEM,
|
|
30
|
+
[ThemeValueEnum.SYSTEM]: ThemeValueEnum.LIGHT
|
|
31
|
+
};
|
|
32
|
+
function MoonIcon() {
|
|
33
|
+
return /* @__PURE__ */ jsx("svg", { className: "h-4 w-4", fill: "none", viewBox: "0 0 24 24", strokeWidth: 2, stroke: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
|
|
34
|
+
"path",
|
|
35
|
+
{
|
|
36
|
+
strokeLinecap: "round",
|
|
37
|
+
strokeLinejoin: "round",
|
|
38
|
+
d: "M21.752 15.002A9.72 9.72 0 0118 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 003 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 009.002-5.998z"
|
|
39
|
+
}
|
|
40
|
+
) });
|
|
41
|
+
}
|
|
42
|
+
function SunIcon() {
|
|
43
|
+
return /* @__PURE__ */ jsx("svg", { className: "h-4 w-4", fill: "none", viewBox: "0 0 24 24", strokeWidth: 2, stroke: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
|
|
44
|
+
"path",
|
|
45
|
+
{
|
|
46
|
+
strokeLinecap: "round",
|
|
47
|
+
strokeLinejoin: "round",
|
|
48
|
+
d: "M12 3v2.25m6.364.386l-1.591 1.591M21 12h-2.25m-.386 6.364l-1.591-1.591M12 18.75V21m-4.773-4.227l-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0z"
|
|
49
|
+
}
|
|
50
|
+
) });
|
|
51
|
+
}
|
|
52
|
+
function SystemIcon() {
|
|
53
|
+
return /* @__PURE__ */ jsx("svg", { className: "h-4 w-4", fill: "none", viewBox: "0 0 24 24", strokeWidth: 2, stroke: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
|
|
54
|
+
"path",
|
|
55
|
+
{
|
|
56
|
+
strokeLinecap: "round",
|
|
57
|
+
strokeLinejoin: "round",
|
|
58
|
+
d: "M9 17.25v1.007a3 3 0 01-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0115 18.257V17.25m6-12V15a2.25 2.25 0 01-2.25 2.25H5.25A2.25 2.25 0 013 15V5.25A2.25 2.25 0 015.25 3h13.5A2.25 2.25 0 0121 5.25z"
|
|
59
|
+
}
|
|
60
|
+
) });
|
|
61
|
+
}
|
|
62
|
+
function iconFor(theme) {
|
|
63
|
+
if (theme === ThemeValueEnum.DARK) return /* @__PURE__ */ jsx(MoonIcon, {});
|
|
64
|
+
if (theme === ThemeValueEnum.LIGHT) return /* @__PURE__ */ jsx(SunIcon, {});
|
|
65
|
+
return /* @__PURE__ */ jsx(SystemIcon, {});
|
|
66
|
+
}
|
|
67
|
+
function ThemeToggle({
|
|
68
|
+
theme,
|
|
69
|
+
setTheme,
|
|
70
|
+
labels = DEFAULT_LABELS,
|
|
71
|
+
ariaLabel = "Toggle theme",
|
|
72
|
+
size,
|
|
73
|
+
className
|
|
74
|
+
}) {
|
|
75
|
+
const [mounted, setMounted] = useState(false);
|
|
76
|
+
useEffect(() => setMounted(true), []);
|
|
77
|
+
const cycle = () => {
|
|
78
|
+
const next = theme ? CYCLE[theme] ?? ThemeValueEnum.LIGHT : ThemeValueEnum.LIGHT;
|
|
79
|
+
setTheme(next);
|
|
80
|
+
};
|
|
81
|
+
if (!mounted) {
|
|
82
|
+
return /* @__PURE__ */ jsx("button", { type: "button", className: cn(themeToggleVariants({ size }), className), "aria-label": ariaLabel, children: /* @__PURE__ */ jsx("div", { className: "h-4 w-4" }) });
|
|
83
|
+
}
|
|
84
|
+
const resolvedLabel = theme === ThemeValueEnum.LIGHT || theme === ThemeValueEnum.DARK || theme === ThemeValueEnum.SYSTEM ? labels[theme] : void 0;
|
|
85
|
+
return /* @__PURE__ */ jsx(
|
|
86
|
+
"button",
|
|
87
|
+
{
|
|
88
|
+
type: "button",
|
|
89
|
+
onClick: cycle,
|
|
90
|
+
className: cn(themeToggleVariants({ size }), className),
|
|
91
|
+
"aria-label": ariaLabel,
|
|
92
|
+
title: resolvedLabel,
|
|
93
|
+
children: iconFor(theme)
|
|
94
|
+
}
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
export {
|
|
98
|
+
ThemeToggle
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=theme-toggle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/molecules/theme-toggle/theme-toggle.tsx"],"sourcesContent":["\"use client\";\n\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { useEffect, useState } from \"react\";\nimport { cn } from \"../../../utils/cn.js\";\nimport { ThemeValueEnum } from \"./theme-toggle.type.js\";\n\nexport interface IThemeToggleProps extends VariantProps<typeof themeToggleVariants> {\n theme: string | undefined;\n setTheme: (theme: string) => void;\n labels?: Partial<Record<ThemeValueEnum, string>>;\n ariaLabel?: string;\n className?: string;\n}\n\nconst themeToggleVariants = cva(\n \"inline-flex items-center justify-center rounded-lg border border-border-strong transition-colors hover:bg-surface-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n {\n variants: {\n size: {\n sm: \"h-7 w-7 p-1\",\n md: \"h-9 w-9 p-1.5\",\n lg: \"h-11 w-11 p-2\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n\nconst DEFAULT_LABELS: Record<ThemeValueEnum, string> = {\n [ThemeValueEnum.LIGHT]: \"Light\",\n [ThemeValueEnum.DARK]: \"Dark\",\n [ThemeValueEnum.SYSTEM]: \"System\",\n};\n\nconst CYCLE: Record<string, string> = {\n [ThemeValueEnum.LIGHT]: ThemeValueEnum.DARK,\n [ThemeValueEnum.DARK]: ThemeValueEnum.SYSTEM,\n [ThemeValueEnum.SYSTEM]: ThemeValueEnum.LIGHT,\n};\n\nfunction MoonIcon() {\n return (\n <svg className=\"h-4 w-4\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth={2} stroke=\"currentColor\" aria-hidden=\"true\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M21.752 15.002A9.72 9.72 0 0118 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 003 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 009.002-5.998z\"\n />\n </svg>\n );\n}\n\nfunction SunIcon() {\n return (\n <svg className=\"h-4 w-4\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth={2} stroke=\"currentColor\" aria-hidden=\"true\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M12 3v2.25m6.364.386l-1.591 1.591M21 12h-2.25m-.386 6.364l-1.591-1.591M12 18.75V21m-4.773-4.227l-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0z\"\n />\n </svg>\n );\n}\n\nfunction SystemIcon() {\n return (\n <svg className=\"h-4 w-4\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth={2} stroke=\"currentColor\" aria-hidden=\"true\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M9 17.25v1.007a3 3 0 01-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0115 18.257V17.25m6-12V15a2.25 2.25 0 01-2.25 2.25H5.25A2.25 2.25 0 013 15V5.25A2.25 2.25 0 015.25 3h13.5A2.25 2.25 0 0121 5.25z\"\n />\n </svg>\n );\n}\n\nfunction iconFor(theme: string | undefined) {\n if (theme === ThemeValueEnum.DARK) return <MoonIcon />;\n if (theme === ThemeValueEnum.LIGHT) return <SunIcon />;\n return <SystemIcon />;\n}\n\n/**\n * Three-state theme cycler: light -> dark -> system -> light. Guards against\n * hydration mismatches by rendering a placeholder until mounted on the client.\n */\nexport function ThemeToggle({\n theme,\n setTheme,\n labels = DEFAULT_LABELS,\n ariaLabel = \"Toggle theme\",\n size,\n className,\n}: IThemeToggleProps) {\n const [mounted, setMounted] = useState(false);\n useEffect(() => setMounted(true), []);\n\n const cycle = () => {\n const next = theme ? CYCLE[theme] ?? ThemeValueEnum.LIGHT : ThemeValueEnum.LIGHT;\n setTheme(next);\n };\n\n if (!mounted) {\n return (\n <button type=\"button\" className={cn(themeToggleVariants({ size }), className)} aria-label={ariaLabel}>\n <div className=\"h-4 w-4\" />\n </button>\n );\n }\n\n const resolvedLabel =\n theme === ThemeValueEnum.LIGHT || theme === ThemeValueEnum.DARK || theme === ThemeValueEnum.SYSTEM\n ? labels[theme]\n : undefined;\n\n return (\n <button\n type=\"button\"\n onClick={cycle}\n className={cn(themeToggleVariants({ size }), className)}\n aria-label={ariaLabel}\n title={resolvedLabel}\n >\n {iconFor(theme)}\n </button>\n );\n}\n"],"mappings":";AA8CM;AA5CN,SAAS,WAA8B;AACvC,SAAS,WAAW,gBAAgB;AACpC,SAAS,UAAU;AACnB,SAAS,sBAAsB;AAU/B,MAAM,sBAAsB;AAAA,EAC1B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,MAAM,iBAAiD;AAAA,EACrD,CAAC,eAAe,KAAK,GAAG;AAAA,EACxB,CAAC,eAAe,IAAI,GAAG;AAAA,EACvB,CAAC,eAAe,MAAM,GAAG;AAC3B;AAEA,MAAM,QAAgC;AAAA,EACpC,CAAC,eAAe,KAAK,GAAG,eAAe;AAAA,EACvC,CAAC,eAAe,IAAI,GAAG,eAAe;AAAA,EACtC,CAAC,eAAe,MAAM,GAAG,eAAe;AAC1C;AAEA,SAAS,WAAW;AAClB,SACE,oBAAC,SAAI,WAAU,WAAU,MAAK,QAAO,SAAQ,aAAY,aAAa,GAAG,QAAO,gBAAe,eAAY,QACzG;AAAA,IAAC;AAAA;AAAA,MACC,eAAc;AAAA,MACd,gBAAe;AAAA,MACf,GAAE;AAAA;AAAA,EACJ,GACF;AAEJ;AAEA,SAAS,UAAU;AACjB,SACE,oBAAC,SAAI,WAAU,WAAU,MAAK,QAAO,SAAQ,aAAY,aAAa,GAAG,QAAO,gBAAe,eAAY,QACzG;AAAA,IAAC;AAAA;AAAA,MACC,eAAc;AAAA,MACd,gBAAe;AAAA,MACf,GAAE;AAAA;AAAA,EACJ,GACF;AAEJ;AAEA,SAAS,aAAa;AACpB,SACE,oBAAC,SAAI,WAAU,WAAU,MAAK,QAAO,SAAQ,aAAY,aAAa,GAAG,QAAO,gBAAe,eAAY,QACzG;AAAA,IAAC;AAAA;AAAA,MACC,eAAc;AAAA,MACd,gBAAe;AAAA,MACf,GAAE;AAAA;AAAA,EACJ,GACF;AAEJ;AAEA,SAAS,QAAQ,OAA2B;AAC1C,MAAI,UAAU,eAAe,KAAM,QAAO,oBAAC,YAAS;AACpD,MAAI,UAAU,eAAe,MAAO,QAAO,oBAAC,WAAQ;AACpD,SAAO,oBAAC,cAAW;AACrB;AAMO,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT,YAAY;AAAA,EACZ;AAAA,EACA;AACF,GAAsB;AACpB,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAC5C,YAAU,MAAM,WAAW,IAAI,GAAG,CAAC,CAAC;AAEpC,QAAM,QAAQ,MAAM;AAClB,UAAM,OAAO,QAAQ,MAAM,KAAK,KAAK,eAAe,QAAQ,eAAe;AAC3E,aAAS,IAAI;AAAA,EACf;AAEA,MAAI,CAAC,SAAS;AACZ,WACE,oBAAC,YAAO,MAAK,UAAS,WAAW,GAAG,oBAAoB,EAAE,KAAK,CAAC,GAAG,SAAS,GAAG,cAAY,WACzF,8BAAC,SAAI,WAAU,WAAU,GAC3B;AAAA,EAEJ;AAEA,QAAM,gBACJ,UAAU,eAAe,SAAS,UAAU,eAAe,QAAQ,UAAU,eAAe,SACxF,OAAO,KAAK,IACZ;AAEN,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,SAAS;AAAA,MACT,WAAW,GAAG,oBAAoB,EAAE,KAAK,CAAC,GAAG,SAAS;AAAA,MACtD,cAAY;AAAA,MACZ,OAAO;AAAA,MAEN,kBAAQ,KAAK;AAAA;AAAA,EAChB;AAEJ;","names":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react-vite";
|
|
2
|
+
import { ThemeToggle } from "./theme-toggle.js";
|
|
3
|
+
declare const meta: Meta<typeof ThemeToggle>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof ThemeToggle>;
|
|
6
|
+
export declare const Light: Story;
|
|
7
|
+
export declare const Dark: Story;
|
|
8
|
+
export declare const System: Story;
|
|
9
|
+
export declare const AllSizes: Story;
|
|
10
|
+
//# sourceMappingURL=theme-toggle.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-toggle.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/theme-toggle/theme-toggle.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CA4BlC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,WAAW,CAAC,CAAC;AAE1C,eAAO,MAAM,KAAK,EAAE,KASnB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,KAGlB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAGpB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAWtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-toggle.type.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/theme-toggle/theme-toggle.type.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED,oBAAY,mBAAmB;IAC7B,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;CACV"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
var ThemeValueEnum = /* @__PURE__ */ ((ThemeValueEnum2) => {
|
|
2
|
+
ThemeValueEnum2["LIGHT"] = "light";
|
|
3
|
+
ThemeValueEnum2["DARK"] = "dark";
|
|
4
|
+
ThemeValueEnum2["SYSTEM"] = "system";
|
|
5
|
+
return ThemeValueEnum2;
|
|
6
|
+
})(ThemeValueEnum || {});
|
|
7
|
+
var ThemeToggleSizeEnum = /* @__PURE__ */ ((ThemeToggleSizeEnum2) => {
|
|
8
|
+
ThemeToggleSizeEnum2["SM"] = "sm";
|
|
9
|
+
ThemeToggleSizeEnum2["MD"] = "md";
|
|
10
|
+
ThemeToggleSizeEnum2["LG"] = "lg";
|
|
11
|
+
return ThemeToggleSizeEnum2;
|
|
12
|
+
})(ThemeToggleSizeEnum || {});
|
|
13
|
+
export {
|
|
14
|
+
ThemeToggleSizeEnum,
|
|
15
|
+
ThemeValueEnum
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=theme-toggle.type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/molecules/theme-toggle/theme-toggle.type.ts"],"sourcesContent":["export enum ThemeValueEnum {\n LIGHT = \"light\",\n DARK = \"dark\",\n SYSTEM = \"system\",\n}\n\nexport enum ThemeToggleSizeEnum {\n SM = \"sm\",\n MD = \"md\",\n LG = \"lg\",\n}\n"],"mappings":"AAAO,IAAK,iBAAL,kBAAKA,oBAAL;AACL,EAAAA,gBAAA,WAAQ;AACR,EAAAA,gBAAA,UAAO;AACP,EAAAA,gBAAA,YAAS;AAHC,SAAAA;AAAA,GAAA;AAML,IAAK,sBAAL,kBAAKC,yBAAL;AACL,EAAAA,qBAAA,QAAK;AACL,EAAAA,qBAAA,QAAK;AACL,EAAAA,qBAAA,QAAK;AAHK,SAAAA;AAAA,GAAA;","names":["ThemeValueEnum","ThemeToggleSizeEnum"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/tooltip/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,eAAe,EACf,WAAW,EACX,cAAc,EACd,cAAc,EACd,aAAa,EACb,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Tooltip,
|
|
3
|
+
TooltipProvider,
|
|
4
|
+
TooltipRoot,
|
|
5
|
+
TooltipTrigger,
|
|
6
|
+
TooltipContent,
|
|
7
|
+
TooltipPortal,
|
|
8
|
+
TooltipPanel
|
|
9
|
+
} from "./tooltip.js";
|
|
10
|
+
export {
|
|
11
|
+
Tooltip,
|
|
12
|
+
TooltipContent,
|
|
13
|
+
TooltipPanel,
|
|
14
|
+
TooltipPortal,
|
|
15
|
+
TooltipProvider,
|
|
16
|
+
TooltipRoot,
|
|
17
|
+
TooltipTrigger
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/molecules/tooltip/index.ts"],"sourcesContent":["export {\n Tooltip,\n TooltipProvider,\n TooltipRoot,\n TooltipTrigger,\n TooltipContent,\n TooltipPortal,\n TooltipPanel,\n} from \"./tooltip.js\";\nexport type { ITooltipPanelProps } from \"./tooltip.js\";\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;","names":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as RadixTooltip from "@radix-ui/react-tooltip";
|
|
2
|
+
import { type ComponentPropsWithoutRef, type ReactNode } from "react";
|
|
3
|
+
export declare const TooltipProvider: import("react").FC<RadixTooltip.TooltipProviderProps>;
|
|
4
|
+
export declare const Tooltip: import("react").FC<RadixTooltip.TooltipProps>;
|
|
5
|
+
export declare const TooltipRoot: import("react").FC<RadixTooltip.TooltipProps>;
|
|
6
|
+
export declare const TooltipTrigger: import("react").ForwardRefExoticComponent<RadixTooltip.TooltipTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
7
|
+
export declare const TooltipPortal: import("react").FC<RadixTooltip.TooltipPortalProps>;
|
|
8
|
+
export declare const TooltipContent: import("react").ForwardRefExoticComponent<Omit<RadixTooltip.TooltipContentProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
9
|
+
export interface ITooltipPanelProps extends ComponentPropsWithoutRef<typeof RadixTooltip.Root> {
|
|
10
|
+
content: ReactNode;
|
|
11
|
+
side?: ComponentPropsWithoutRef<typeof RadixTooltip.Content>["side"];
|
|
12
|
+
align?: ComponentPropsWithoutRef<typeof RadixTooltip.Content>["align"];
|
|
13
|
+
children: ReactNode;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* All-in-one tooltip preset. Mounts Provider + Root + Trigger + Content in a
|
|
17
|
+
* single usage. Use the primitives directly (`<TooltipProvider>`, `<Tooltip>`,
|
|
18
|
+
* `<TooltipTrigger>`, `<TooltipContent>`) when you need finer control (e.g.
|
|
19
|
+
* multiple tooltips sharing one provider, portalled custom content).
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* <TooltipPanel content="Edit">
|
|
23
|
+
* <Button variant="ghost">Pencil</Button>
|
|
24
|
+
* </TooltipPanel>
|
|
25
|
+
*/
|
|
26
|
+
export declare function TooltipPanel({ content, side, align, children, ...rootProps }: ITooltipPanelProps): import("react").JSX.Element;
|
|
27
|
+
//# sourceMappingURL=tooltip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/tooltip/tooltip.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAc,KAAK,wBAAwB,EAAmB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGnG,eAAO,MAAM,eAAe,uDAAwB,CAAC;AACrD,eAAO,MAAM,OAAO,+CAAoB,CAAC;AACzC,eAAO,MAAM,WAAW,+CAAoB,CAAC;AAC7C,eAAO,MAAM,cAAc,gIAAuB,CAAC;AACnD,eAAO,MAAM,aAAa,qDAAsB,CAAC;AAEjD,eAAO,MAAM,cAAc,0LAazB,CAAC;AAGH,MAAM,WAAW,kBAAmB,SAAQ,wBAAwB,CAAC,OAAO,YAAY,CAAC,IAAI,CAAC;IAC5F,OAAO,EAAE,SAAS,CAAC;IACnB,IAAI,CAAC,EAAE,wBAAwB,CAAC,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;IACrE,KAAK,CAAC,EAAE,wBAAwB,CAAC,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;IACvE,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,IAAY,EAAE,KAAgB,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,EAAE,kBAAkB,+BAanH"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as RadixTooltip from "@radix-ui/react-tooltip";
|
|
4
|
+
import { forwardRef } from "react";
|
|
5
|
+
import { cn } from "../../../utils/cn.js";
|
|
6
|
+
const TooltipProvider = RadixTooltip.Provider;
|
|
7
|
+
const Tooltip = RadixTooltip.Root;
|
|
8
|
+
const TooltipRoot = RadixTooltip.Root;
|
|
9
|
+
const TooltipTrigger = RadixTooltip.Trigger;
|
|
10
|
+
const TooltipPortal = RadixTooltip.Portal;
|
|
11
|
+
const TooltipContent = forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
12
|
+
RadixTooltip.Content,
|
|
13
|
+
{
|
|
14
|
+
ref,
|
|
15
|
+
sideOffset,
|
|
16
|
+
className: cn(
|
|
17
|
+
"z-50 overflow-hidden rounded-md bg-zinc-900 px-2 py-1 text-xs text-white shadow-md data-[state=delayed-open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=delayed-open]:fade-in-0 dark:bg-zinc-100 dark:text-zinc-900",
|
|
18
|
+
className
|
|
19
|
+
),
|
|
20
|
+
...props
|
|
21
|
+
}
|
|
22
|
+
));
|
|
23
|
+
TooltipContent.displayName = "TooltipContent";
|
|
24
|
+
function TooltipPanel({ content, side = "top", align = "center", children, ...rootProps }) {
|
|
25
|
+
return /* @__PURE__ */ jsx(TooltipProvider, { delayDuration: 200, children: /* @__PURE__ */ jsxs(RadixTooltip.Root, { ...rootProps, children: [
|
|
26
|
+
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children }),
|
|
27
|
+
/* @__PURE__ */ jsx(TooltipPortal, { children: /* @__PURE__ */ jsx(TooltipContent, { side, align, children: content }) })
|
|
28
|
+
] }) });
|
|
29
|
+
}
|
|
30
|
+
export {
|
|
31
|
+
Tooltip,
|
|
32
|
+
TooltipContent,
|
|
33
|
+
TooltipPanel,
|
|
34
|
+
TooltipPortal,
|
|
35
|
+
TooltipProvider,
|
|
36
|
+
TooltipRoot,
|
|
37
|
+
TooltipTrigger
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/molecules/tooltip/tooltip.tsx"],"sourcesContent":["\"use client\";\n\nimport * as RadixTooltip from \"@radix-ui/react-tooltip\";\nimport { forwardRef, type ComponentPropsWithoutRef, type ElementRef, type ReactNode } from \"react\";\nimport { cn } from \"../../../utils/cn.js\";\n\nexport const TooltipProvider = RadixTooltip.Provider;\nexport const Tooltip = RadixTooltip.Root;\nexport const TooltipRoot = RadixTooltip.Root;\nexport const TooltipTrigger = RadixTooltip.Trigger;\nexport const TooltipPortal = RadixTooltip.Portal;\n\nexport const TooltipContent = forwardRef<\n ElementRef<typeof RadixTooltip.Content>,\n ComponentPropsWithoutRef<typeof RadixTooltip.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <RadixTooltip.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 overflow-hidden rounded-md bg-zinc-900 px-2 py-1 text-xs text-white shadow-md data-[state=delayed-open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=delayed-open]:fade-in-0 dark:bg-zinc-100 dark:text-zinc-900\",\n className,\n )}\n {...props}\n />\n));\nTooltipContent.displayName = \"TooltipContent\";\n\nexport interface ITooltipPanelProps extends ComponentPropsWithoutRef<typeof RadixTooltip.Root> {\n content: ReactNode;\n side?: ComponentPropsWithoutRef<typeof RadixTooltip.Content>[\"side\"];\n align?: ComponentPropsWithoutRef<typeof RadixTooltip.Content>[\"align\"];\n children: ReactNode;\n}\n\n/**\n * All-in-one tooltip preset. Mounts Provider + Root + Trigger + Content in a\n * single usage. Use the primitives directly (`<TooltipProvider>`, `<Tooltip>`,\n * `<TooltipTrigger>`, `<TooltipContent>`) when you need finer control (e.g.\n * multiple tooltips sharing one provider, portalled custom content).\n *\n * @example\n * <TooltipPanel content=\"Edit\">\n * <Button variant=\"ghost\">Pencil</Button>\n * </TooltipPanel>\n */\nexport function TooltipPanel({ content, side = \"top\", align = \"center\", children, ...rootProps }: ITooltipPanelProps) {\n return (\n <TooltipProvider delayDuration={200}>\n <RadixTooltip.Root {...rootProps}>\n <TooltipTrigger asChild>{children}</TooltipTrigger>\n <TooltipPortal>\n <TooltipContent side={side} align={align}>\n {content}\n </TooltipContent>\n </TooltipPortal>\n </RadixTooltip.Root>\n </TooltipProvider>\n );\n}\n"],"mappings":";AAgBE,cAiCI,YAjCJ;AAdF,YAAY,kBAAkB;AAC9B,SAAS,kBAAkF;AAC3F,SAAS,UAAU;AAEZ,MAAM,kBAAkB,aAAa;AACrC,MAAM,UAAU,aAAa;AAC7B,MAAM,cAAc,aAAa;AACjC,MAAM,iBAAiB,aAAa;AACpC,MAAM,gBAAgB,aAAa;AAEnC,MAAM,iBAAiB,WAG5B,CAAC,EAAE,WAAW,aAAa,GAAG,GAAG,MAAM,GAAG,QAC1C;AAAA,EAAC,aAAa;AAAA,EAAb;AAAA,IACC;AAAA,IACA;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,eAAe,cAAc;AAoBtB,SAAS,aAAa,EAAE,SAAS,OAAO,OAAO,QAAQ,UAAU,UAAU,GAAG,UAAU,GAAuB;AACpH,SACE,oBAAC,mBAAgB,eAAe,KAC9B,+BAAC,aAAa,MAAb,EAAmB,GAAG,WACrB;AAAA,wBAAC,kBAAe,SAAO,MAAE,UAAS;AAAA,IAClC,oBAAC,iBACC,8BAAC,kBAAe,MAAY,OACzB,mBACH,GACF;AAAA,KACF,GACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react-vite";
|
|
2
|
+
import { TooltipPanel } from "./tooltip.js";
|
|
3
|
+
declare const meta: Meta<typeof TooltipPanel>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof TooltipPanel>;
|
|
6
|
+
export declare const Default: Story;
|
|
7
|
+
export declare const Sides: Story;
|
|
8
|
+
//# sourceMappingURL=tooltip.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/tooltip/tooltip.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,YAAY,CAInC,CAAC;AACF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,YAAY,CAAC,CAAC;AAE3C,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAiBnB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
export interface IAppShellLayoutProps {
|
|
3
|
+
header?: ReactNode;
|
|
4
|
+
sidebar?: ReactNode;
|
|
5
|
+
footer?: ReactNode;
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
dir?: "ltr" | "rtl";
|
|
8
|
+
className?: string;
|
|
9
|
+
mainClassName?: string;
|
|
10
|
+
maxWidth?: "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl" | "7xl" | "full";
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Unopinionated slot-based app shell: renders a sticky header, optional
|
|
14
|
+
* sidebar, main content, and footer. Contains no navigation, theming, or
|
|
15
|
+
* i18n concerns; those are the consumer's responsibility.
|
|
16
|
+
*
|
|
17
|
+
* For a flight-finder-shaped default (top-nav header with active links,
|
|
18
|
+
* mobile hamburger, locale/theme toggles), use AppShellPreset instead.
|
|
19
|
+
* For sidebar link lists and module sub top bars, use SidebarNav and
|
|
20
|
+
* ModuleSubnav with an injected LinkComponent.
|
|
21
|
+
*/
|
|
22
|
+
export declare function AppShellLayout({ header, sidebar, footer, children, dir, className, mainClassName, maxWidth, }: IAppShellLayoutProps): import("react").JSX.Element;
|
|
23
|
+
//# sourceMappingURL=app-shell-layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-shell-layout.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/app-shell/app-shell-layout.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;IACpB,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;CAC/F;AAgBD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,OAAO,EACP,MAAM,EACN,QAAQ,EACR,GAAG,EACH,SAAc,EACd,aAAkB,EAClB,QAAgB,GACjB,EAAE,oBAAoB,+BA8BtB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
const MAX_WIDTH_CLASSES = {
|
|
4
|
+
sm: "max-w-sm",
|
|
5
|
+
md: "max-w-md",
|
|
6
|
+
lg: "max-w-lg",
|
|
7
|
+
xl: "max-w-xl",
|
|
8
|
+
"2xl": "max-w-2xl",
|
|
9
|
+
"3xl": "max-w-3xl",
|
|
10
|
+
"4xl": "max-w-4xl",
|
|
11
|
+
"5xl": "max-w-5xl",
|
|
12
|
+
"6xl": "max-w-6xl",
|
|
13
|
+
"7xl": "max-w-7xl",
|
|
14
|
+
full: "max-w-full"
|
|
15
|
+
};
|
|
16
|
+
function AppShellLayout({
|
|
17
|
+
header,
|
|
18
|
+
sidebar,
|
|
19
|
+
footer,
|
|
20
|
+
children,
|
|
21
|
+
dir,
|
|
22
|
+
className = "",
|
|
23
|
+
mainClassName = "",
|
|
24
|
+
maxWidth = "7xl"
|
|
25
|
+
}) {
|
|
26
|
+
const containerClass = `${MAX_WIDTH_CLASSES[maxWidth]} mx-auto w-full`;
|
|
27
|
+
return /* @__PURE__ */ jsxs(
|
|
28
|
+
"div",
|
|
29
|
+
{
|
|
30
|
+
dir,
|
|
31
|
+
className: `flex min-h-screen flex-col bg-background text-foreground ${className}`,
|
|
32
|
+
children: [
|
|
33
|
+
header && /* @__PURE__ */ jsx("header", { className: "sticky top-0 z-10 border-b border-border-base bg-background/80 backdrop-blur-sm", children: /* @__PURE__ */ jsx("div", { className: containerClass, children: header }) }),
|
|
34
|
+
/* @__PURE__ */ jsxs("div", { className: `flex flex-1 ${containerClass}`, children: [
|
|
35
|
+
sidebar && /* @__PURE__ */ jsx("aside", { className: "hidden w-64 shrink-0 border-e border-border-base py-6 md:block", children: sidebar }),
|
|
36
|
+
/* @__PURE__ */ jsx("main", { className: `flex-1 px-4 py-6 ${mainClassName}`, children })
|
|
37
|
+
] }),
|
|
38
|
+
footer && /* @__PURE__ */ jsx("footer", { className: "border-t border-border-base py-4 text-center text-sm text-muted-foreground", children: footer })
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
export {
|
|
44
|
+
AppShellLayout
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=app-shell-layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/organisms/app-shell/app-shell-layout.tsx"],"sourcesContent":["\"use client\";\n\nimport type { ReactNode } from \"react\";\n\nexport interface IAppShellLayoutProps {\n header?: ReactNode;\n sidebar?: ReactNode;\n footer?: ReactNode;\n children: ReactNode;\n dir?: \"ltr\" | \"rtl\";\n className?: string;\n mainClassName?: string;\n maxWidth?: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\" | \"4xl\" | \"5xl\" | \"6xl\" | \"7xl\" | \"full\";\n}\n\nconst MAX_WIDTH_CLASSES: Record<NonNullable<IAppShellLayoutProps[\"maxWidth\"]>, string> = {\n sm: \"max-w-sm\",\n md: \"max-w-md\",\n lg: \"max-w-lg\",\n xl: \"max-w-xl\",\n \"2xl\": \"max-w-2xl\",\n \"3xl\": \"max-w-3xl\",\n \"4xl\": \"max-w-4xl\",\n \"5xl\": \"max-w-5xl\",\n \"6xl\": \"max-w-6xl\",\n \"7xl\": \"max-w-7xl\",\n full: \"max-w-full\",\n};\n\n/**\n * Unopinionated slot-based app shell: renders a sticky header, optional\n * sidebar, main content, and footer. Contains no navigation, theming, or\n * i18n concerns; those are the consumer's responsibility.\n *\n * For a flight-finder-shaped default (top-nav header with active links,\n * mobile hamburger, locale/theme toggles), use AppShellPreset instead.\n * For sidebar link lists and module sub top bars, use SidebarNav and\n * ModuleSubnav with an injected LinkComponent.\n */\nexport function AppShellLayout({\n header,\n sidebar,\n footer,\n children,\n dir,\n className = \"\",\n mainClassName = \"\",\n maxWidth = \"7xl\",\n}: IAppShellLayoutProps) {\n const containerClass = `${MAX_WIDTH_CLASSES[maxWidth]} mx-auto w-full`;\n\n return (\n <div\n dir={dir}\n className={`flex min-h-screen flex-col bg-background text-foreground ${className}`}\n >\n {header && (\n <header className=\"sticky top-0 z-10 border-b border-border-base bg-background/80 backdrop-blur-sm\">\n <div className={containerClass}>{header}</div>\n </header>\n )}\n\n <div className={`flex flex-1 ${containerClass}`}>\n {sidebar && (\n <aside className=\"hidden w-64 shrink-0 border-e border-border-base py-6 md:block\">\n {sidebar}\n </aside>\n )}\n <main className={`flex-1 px-4 py-6 ${mainClassName}`}>{children}</main>\n </div>\n\n {footer && (\n <footer className=\"border-t border-border-base py-4 text-center text-sm text-muted-foreground\">\n {footer}\n </footer>\n )}\n </div>\n );\n}\n"],"mappings":";AA0DU,cAIJ,YAJI;AA3CV,MAAM,oBAAmF;AAAA,EACvF,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AACR;AAYO,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,WAAW;AACb,GAAyB;AACvB,QAAM,iBAAiB,GAAG,kBAAkB,QAAQ,CAAC;AAErD,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,4DAA4D,SAAS;AAAA,MAE/E;AAAA,kBACC,oBAAC,YAAO,WAAU,mFAChB,8BAAC,SAAI,WAAW,gBAAiB,kBAAO,GAC1C;AAAA,QAGF,qBAAC,SAAI,WAAW,eAAe,cAAc,IAC1C;AAAA,qBACC,oBAAC,WAAM,WAAU,kEACd,mBACH;AAAA,UAEF,oBAAC,UAAK,WAAW,oBAAoB,aAAa,IAAK,UAAS;AAAA,WAClE;AAAA,QAEC,UACC,oBAAC,YAAO,WAAU,8EACf,kBACH;AAAA;AAAA;AAAA,EAEJ;AAEJ;","names":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type ComponentType, type ReactNode } from "react";
|
|
2
|
+
export interface IAppShellNavItem {
|
|
3
|
+
href: string;
|
|
4
|
+
label: string;
|
|
5
|
+
visible?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface IAppShellNavGroup {
|
|
8
|
+
label: string;
|
|
9
|
+
items: readonly IAppShellNavItem[];
|
|
10
|
+
}
|
|
11
|
+
export interface IAppShellLinkProps {
|
|
12
|
+
href: string;
|
|
13
|
+
className?: string;
|
|
14
|
+
onClick?: () => void;
|
|
15
|
+
children?: ReactNode;
|
|
16
|
+
}
|
|
17
|
+
export interface IAppShellPresetProps {
|
|
18
|
+
brand: ReactNode;
|
|
19
|
+
navItems: readonly IAppShellNavItem[];
|
|
20
|
+
overflowNavItems?: readonly IAppShellNavItem[];
|
|
21
|
+
overflowNavGroups?: readonly IAppShellNavGroup[];
|
|
22
|
+
overflowNavLabel?: string;
|
|
23
|
+
LinkComponent: ComponentType<IAppShellLinkProps>;
|
|
24
|
+
usePathname: () => string;
|
|
25
|
+
rightSlot?: ReactNode;
|
|
26
|
+
mobileRightSlot?: ReactNode;
|
|
27
|
+
/** Optional content below mobile nav links (e.g. signed-in user label). */
|
|
28
|
+
mobileNavFooter?: ReactNode;
|
|
29
|
+
footer?: ReactNode;
|
|
30
|
+
dir?: "ltr" | "rtl";
|
|
31
|
+
children: ReactNode;
|
|
32
|
+
mobileMenuAriaLabel?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Opinionated top-nav app shell modeled on flight-finder's layout:
|
|
36
|
+
* - Sticky header with brand on the start, nav + right slot on the end
|
|
37
|
+
* - Active-link highlighting based on the injected usePathname()
|
|
38
|
+
* - Mobile hamburger with collapsible nav panel
|
|
39
|
+
* - Router-agnostic: consumer injects LinkComponent and usePathname so the
|
|
40
|
+
* package does not depend on next/link or next/navigation at build time
|
|
41
|
+
* - Session UI is not built-in; place any auth controls in rightSlot
|
|
42
|
+
*/
|
|
43
|
+
export declare function AppShellPreset({ brand, navItems, overflowNavItems, overflowNavGroups, overflowNavLabel, LinkComponent, usePathname, rightSlot, mobileRightSlot, mobileNavFooter, footer, dir, children, mobileMenuAriaLabel, }: IAppShellPresetProps): import("react").JSX.Element;
|
|
44
|
+
//# sourceMappingURL=app-shell-preset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-shell-preset.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/app-shell/app-shell-preset.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAYrE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACtC,gBAAgB,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC/C,iBAAiB,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACjD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACjD,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,2EAA2E;IAC3E,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,gBAAqB,EACrB,iBAAsB,EACtB,gBAAyB,EACzB,aAAa,EACb,WAAW,EACX,SAAS,EACT,eAAe,EACf,eAAe,EACf,MAAM,EACN,GAAG,EACH,QAAQ,EACR,mBAAmC,GACpC,EAAE,oBAAoB,+BAqKtB"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import {
|
|
5
|
+
DropdownMenu,
|
|
6
|
+
DropdownMenuContent,
|
|
7
|
+
DropdownMenuItem,
|
|
8
|
+
DropdownMenuLabel,
|
|
9
|
+
DropdownMenuSeparator,
|
|
10
|
+
DropdownMenuTrigger
|
|
11
|
+
} from "../../molecules/dropdown-menu/dropdown-menu.js";
|
|
12
|
+
import { AppShellLayout } from "./app-shell-layout.js";
|
|
13
|
+
function AppShellPreset({
|
|
14
|
+
brand,
|
|
15
|
+
navItems,
|
|
16
|
+
overflowNavItems = [],
|
|
17
|
+
overflowNavGroups = [],
|
|
18
|
+
overflowNavLabel = "More",
|
|
19
|
+
LinkComponent,
|
|
20
|
+
usePathname,
|
|
21
|
+
rightSlot,
|
|
22
|
+
mobileRightSlot,
|
|
23
|
+
mobileNavFooter,
|
|
24
|
+
footer,
|
|
25
|
+
dir,
|
|
26
|
+
children,
|
|
27
|
+
mobileMenuAriaLabel = "Toggle menu"
|
|
28
|
+
}) {
|
|
29
|
+
const [mobileMenuOpen, setMobileMenuOpen] = useState(false);
|
|
30
|
+
const pathname = usePathname();
|
|
31
|
+
const visibleNavItems = navItems.filter((n) => n.visible !== false);
|
|
32
|
+
const visibleOverflowNavItems = overflowNavItems.filter((n) => n.visible !== false);
|
|
33
|
+
const visibleOverflowNavGroups = overflowNavGroups.map((group) => ({
|
|
34
|
+
...group,
|
|
35
|
+
items: group.items.filter((item) => item.visible !== false)
|
|
36
|
+
})).filter((group) => group.items.length > 0);
|
|
37
|
+
const groupedOverflowNavItems = visibleOverflowNavGroups.flatMap((group) => group.items);
|
|
38
|
+
const effectiveOverflowNavItems = visibleOverflowNavGroups.length > 0 ? groupedOverflowNavItems : visibleOverflowNavItems;
|
|
39
|
+
const isActive = (href) => href === "/" ? pathname === "/" : pathname.startsWith(href);
|
|
40
|
+
const renderNavLink = ({ href, label }, onNavigate, mobile = false) => {
|
|
41
|
+
const active = isActive(href);
|
|
42
|
+
return /* @__PURE__ */ jsx(
|
|
43
|
+
LinkComponent,
|
|
44
|
+
{
|
|
45
|
+
href,
|
|
46
|
+
onClick: onNavigate,
|
|
47
|
+
className: mobile ? `block rounded-lg px-3 py-3 text-sm font-medium transition-colors ${active ? "bg-primary/10 text-primary" : "text-muted-foreground hover:bg-surface-muted"}` : active ? "text-sm font-medium text-primary" : "text-sm font-medium text-muted-foreground transition-colors hover:text-foreground",
|
|
48
|
+
children: label
|
|
49
|
+
},
|
|
50
|
+
href
|
|
51
|
+
);
|
|
52
|
+
};
|
|
53
|
+
const header = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
54
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between px-4 py-3", children: [
|
|
55
|
+
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-3", children: brand }),
|
|
56
|
+
/* @__PURE__ */ jsxs("nav", { className: "hidden items-center gap-4 md:flex", children: [
|
|
57
|
+
visibleNavItems.map((item) => renderNavLink(item)),
|
|
58
|
+
effectiveOverflowNavItems.length > 0 ? /* @__PURE__ */ jsxs(DropdownMenu, { children: [
|
|
59
|
+
/* @__PURE__ */ jsx(DropdownMenuTrigger, { className: "text-sm font-medium text-muted-foreground transition-colors hover:text-foreground", children: overflowNavLabel }),
|
|
60
|
+
/* @__PURE__ */ jsx(DropdownMenuContent, { align: "end", children: visibleOverflowNavGroups.length > 0 ? visibleOverflowNavGroups.map((group, groupIndex) => /* @__PURE__ */ jsxs("div", { children: [
|
|
61
|
+
/* @__PURE__ */ jsx(DropdownMenuLabel, { children: group.label }),
|
|
62
|
+
group.items.map((item) => /* @__PURE__ */ jsx(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ jsx(LinkComponent, { href: item.href, className: "w-full", children: item.label }) }, item.href)),
|
|
63
|
+
groupIndex < visibleOverflowNavGroups.length - 1 ? /* @__PURE__ */ jsx(DropdownMenuSeparator, {}) : null
|
|
64
|
+
] }, group.label)) : visibleOverflowNavItems.map((item) => /* @__PURE__ */ jsx(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ jsx(LinkComponent, { href: item.href, className: "w-full", children: item.label }) }, item.href)) })
|
|
65
|
+
] }) : null,
|
|
66
|
+
rightSlot
|
|
67
|
+
] }),
|
|
68
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 md:hidden", children: [
|
|
69
|
+
mobileRightSlot ?? rightSlot,
|
|
70
|
+
/* @__PURE__ */ jsx(
|
|
71
|
+
"button",
|
|
72
|
+
{
|
|
73
|
+
onClick: () => setMobileMenuOpen((o) => !o),
|
|
74
|
+
className: "min-h-11 min-w-11 rounded-lg p-2 text-muted-foreground transition-colors hover:bg-surface-muted",
|
|
75
|
+
"aria-label": mobileMenuAriaLabel,
|
|
76
|
+
children: mobileMenuOpen ? /* @__PURE__ */ jsx(
|
|
77
|
+
"svg",
|
|
78
|
+
{
|
|
79
|
+
className: "h-5 w-5",
|
|
80
|
+
fill: "none",
|
|
81
|
+
viewBox: "0 0 24 24",
|
|
82
|
+
strokeWidth: 2,
|
|
83
|
+
stroke: "currentColor",
|
|
84
|
+
children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M6 18L18 6M6 6l12 12" })
|
|
85
|
+
}
|
|
86
|
+
) : /* @__PURE__ */ jsx(
|
|
87
|
+
"svg",
|
|
88
|
+
{
|
|
89
|
+
className: "h-5 w-5",
|
|
90
|
+
fill: "none",
|
|
91
|
+
viewBox: "0 0 24 24",
|
|
92
|
+
strokeWidth: 2,
|
|
93
|
+
stroke: "currentColor",
|
|
94
|
+
children: /* @__PURE__ */ jsx(
|
|
95
|
+
"path",
|
|
96
|
+
{
|
|
97
|
+
strokeLinecap: "round",
|
|
98
|
+
strokeLinejoin: "round",
|
|
99
|
+
d: "M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"
|
|
100
|
+
}
|
|
101
|
+
)
|
|
102
|
+
}
|
|
103
|
+
)
|
|
104
|
+
}
|
|
105
|
+
)
|
|
106
|
+
] })
|
|
107
|
+
] }),
|
|
108
|
+
mobileMenuOpen && /* @__PURE__ */ jsxs("div", { className: "border-t border-border-base md:hidden", children: [
|
|
109
|
+
/* @__PURE__ */ jsxs("nav", { className: "bg-background px-4 py-2", children: [
|
|
110
|
+
visibleNavItems.map(
|
|
111
|
+
(item) => renderNavLink(item, () => setMobileMenuOpen(false), true)
|
|
112
|
+
),
|
|
113
|
+
visibleOverflowNavGroups.length > 0 ? visibleOverflowNavGroups.flatMap((group) => [
|
|
114
|
+
/* @__PURE__ */ jsx(
|
|
115
|
+
"div",
|
|
116
|
+
{
|
|
117
|
+
className: "px-3 pt-3 text-xs font-semibold uppercase tracking-wide text-muted-foreground",
|
|
118
|
+
children: group.label
|
|
119
|
+
},
|
|
120
|
+
`group-${group.label}`
|
|
121
|
+
),
|
|
122
|
+
...group.items.map(
|
|
123
|
+
(item) => renderNavLink(item, () => setMobileMenuOpen(false), true)
|
|
124
|
+
)
|
|
125
|
+
]) : effectiveOverflowNavItems.map(
|
|
126
|
+
(item) => renderNavLink(item, () => setMobileMenuOpen(false), true)
|
|
127
|
+
)
|
|
128
|
+
] }),
|
|
129
|
+
mobileNavFooter ? /* @__PURE__ */ jsx("div", { className: "border-t border-border-base px-4 py-3 text-sm text-muted-foreground", children: mobileNavFooter }) : null
|
|
130
|
+
] })
|
|
131
|
+
] });
|
|
132
|
+
return /* @__PURE__ */ jsx(AppShellLayout, { header, footer, dir, children });
|
|
133
|
+
}
|
|
134
|
+
export {
|
|
135
|
+
AppShellPreset
|
|
136
|
+
};
|
|
137
|
+
//# sourceMappingURL=app-shell-preset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/organisms/app-shell/app-shell-preset.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState, type ComponentType, type ReactNode } from \"react\";\n\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"../../molecules/dropdown-menu/dropdown-menu.js\";\nimport { AppShellLayout } from \"./app-shell-layout.js\";\n\nexport interface IAppShellNavItem {\n href: string;\n label: string;\n visible?: boolean;\n}\n\nexport interface IAppShellNavGroup {\n label: string;\n items: readonly IAppShellNavItem[];\n}\n\nexport interface IAppShellLinkProps {\n href: string;\n className?: string;\n onClick?: () => void;\n children?: ReactNode;\n}\n\nexport interface IAppShellPresetProps {\n brand: ReactNode;\n navItems: readonly IAppShellNavItem[];\n overflowNavItems?: readonly IAppShellNavItem[];\n overflowNavGroups?: readonly IAppShellNavGroup[];\n overflowNavLabel?: string;\n LinkComponent: ComponentType<IAppShellLinkProps>;\n usePathname: () => string;\n rightSlot?: ReactNode;\n mobileRightSlot?: ReactNode;\n /** Optional content below mobile nav links (e.g. signed-in user label). */\n mobileNavFooter?: ReactNode;\n footer?: ReactNode;\n dir?: \"ltr\" | \"rtl\";\n children: ReactNode;\n mobileMenuAriaLabel?: string;\n}\n\n/**\n * Opinionated top-nav app shell modeled on flight-finder's layout:\n * - Sticky header with brand on the start, nav + right slot on the end\n * - Active-link highlighting based on the injected usePathname()\n * - Mobile hamburger with collapsible nav panel\n * - Router-agnostic: consumer injects LinkComponent and usePathname so the\n * package does not depend on next/link or next/navigation at build time\n * - Session UI is not built-in; place any auth controls in rightSlot\n */\nexport function AppShellPreset({\n brand,\n navItems,\n overflowNavItems = [],\n overflowNavGroups = [],\n overflowNavLabel = \"More\",\n LinkComponent,\n usePathname,\n rightSlot,\n mobileRightSlot,\n mobileNavFooter,\n footer,\n dir,\n children,\n mobileMenuAriaLabel = \"Toggle menu\",\n}: IAppShellPresetProps) {\n const [mobileMenuOpen, setMobileMenuOpen] = useState(false);\n const pathname = usePathname();\n\n const visibleNavItems = navItems.filter((n) => n.visible !== false);\n const visibleOverflowNavItems = overflowNavItems.filter((n) => n.visible !== false);\n const visibleOverflowNavGroups = overflowNavGroups\n .map((group) => ({\n ...group,\n items: group.items.filter((item) => item.visible !== false),\n }))\n .filter((group) => group.items.length > 0);\n const groupedOverflowNavItems = visibleOverflowNavGroups.flatMap((group) => group.items);\n const effectiveOverflowNavItems =\n visibleOverflowNavGroups.length > 0\n ? groupedOverflowNavItems\n : visibleOverflowNavItems;\n\n const isActive = (href: string): boolean =>\n href === \"/\" ? pathname === \"/\" : pathname.startsWith(href);\n\n const renderNavLink = (\n { href, label }: IAppShellNavItem,\n onNavigate?: () => void,\n mobile = false,\n ) => {\n const active = isActive(href);\n\n return (\n <LinkComponent\n key={href}\n href={href}\n onClick={onNavigate}\n className={\n mobile\n ? `block rounded-lg px-3 py-3 text-sm font-medium transition-colors ${\n active\n ? \"bg-primary/10 text-primary\"\n : \"text-muted-foreground hover:bg-surface-muted\"\n }`\n : active\n ? \"text-sm font-medium text-primary\"\n : \"text-sm font-medium text-muted-foreground transition-colors hover:text-foreground\"\n }\n >\n {label}\n </LinkComponent>\n );\n };\n\n const header = (\n <>\n <div className=\"flex items-center justify-between px-4 py-3\">\n <div className=\"flex items-center gap-3\">{brand}</div>\n\n <nav className=\"hidden items-center gap-4 md:flex\">\n {visibleNavItems.map((item) => renderNavLink(item))}\n {effectiveOverflowNavItems.length > 0 ? (\n <DropdownMenu>\n <DropdownMenuTrigger className=\"text-sm font-medium text-muted-foreground transition-colors hover:text-foreground\">\n {overflowNavLabel}\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n {visibleOverflowNavGroups.length > 0\n ? visibleOverflowNavGroups.map((group, groupIndex) => (\n <div key={group.label}>\n <DropdownMenuLabel>{group.label}</DropdownMenuLabel>\n {group.items.map((item) => (\n <DropdownMenuItem key={item.href} asChild>\n <LinkComponent href={item.href} className=\"w-full\">\n {item.label}\n </LinkComponent>\n </DropdownMenuItem>\n ))}\n {groupIndex < visibleOverflowNavGroups.length - 1 ? (\n <DropdownMenuSeparator />\n ) : null}\n </div>\n ))\n : visibleOverflowNavItems.map((item) => (\n <DropdownMenuItem key={item.href} asChild>\n <LinkComponent href={item.href} className=\"w-full\">\n {item.label}\n </LinkComponent>\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n ) : null}\n {rightSlot}\n </nav>\n\n <div className=\"flex items-center gap-2 md:hidden\">\n {mobileRightSlot ?? rightSlot}\n <button\n onClick={() => setMobileMenuOpen((o) => !o)}\n className=\"min-h-11 min-w-11 rounded-lg p-2 text-muted-foreground transition-colors hover:bg-surface-muted\"\n aria-label={mobileMenuAriaLabel}\n >\n {mobileMenuOpen ? (\n <svg\n className=\"h-5 w-5\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth={2}\n stroke=\"currentColor\"\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n ) : (\n <svg\n className=\"h-5 w-5\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth={2}\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\"\n />\n </svg>\n )}\n </button>\n </div>\n </div>\n\n {mobileMenuOpen && (\n <div className=\"border-t border-border-base md:hidden\">\n <nav className=\"bg-background px-4 py-2\">\n {visibleNavItems.map((item) =>\n renderNavLink(item, () => setMobileMenuOpen(false), true),\n )}\n {visibleOverflowNavGroups.length > 0\n ? visibleOverflowNavGroups.flatMap((group) => [\n <div\n key={`group-${group.label}`}\n className=\"px-3 pt-3 text-xs font-semibold uppercase tracking-wide text-muted-foreground\"\n >\n {group.label}\n </div>,\n ...group.items.map((item) =>\n renderNavLink(item, () => setMobileMenuOpen(false), true),\n ),\n ])\n : effectiveOverflowNavItems.map((item) =>\n renderNavLink(item, () => setMobileMenuOpen(false), true),\n )}\n </nav>\n {mobileNavFooter ? (\n <div className=\"border-t border-border-base px-4 py-3 text-sm text-muted-foreground\">\n {mobileNavFooter}\n </div>\n ) : null}\n </div>\n )}\n </>\n );\n\n return (\n <AppShellLayout header={header} footer={footer} dir={dir}>\n {children}\n </AppShellLayout>\n );\n}\n"],"mappings":";AAuGM,SAsBF,UAtBE,KAoCgB,YApChB;AArGN,SAAS,gBAAoD;AAE7D;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,sBAAsB;AA+CxB,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA,mBAAmB,CAAC;AAAA,EACpB,oBAAoB,CAAC;AAAA,EACrB,mBAAmB;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,sBAAsB;AACxB,GAAyB;AACvB,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,KAAK;AAC1D,QAAM,WAAW,YAAY;AAE7B,QAAM,kBAAkB,SAAS,OAAO,CAAC,MAAM,EAAE,YAAY,KAAK;AAClE,QAAM,0BAA0B,iBAAiB,OAAO,CAAC,MAAM,EAAE,YAAY,KAAK;AAClF,QAAM,2BAA2B,kBAC9B,IAAI,CAAC,WAAW;AAAA,IACf,GAAG;AAAA,IACH,OAAO,MAAM,MAAM,OAAO,CAAC,SAAS,KAAK,YAAY,KAAK;AAAA,EAC5D,EAAE,EACD,OAAO,CAAC,UAAU,MAAM,MAAM,SAAS,CAAC;AAC3C,QAAM,0BAA0B,yBAAyB,QAAQ,CAAC,UAAU,MAAM,KAAK;AACvF,QAAM,4BACJ,yBAAyB,SAAS,IAC9B,0BACA;AAEN,QAAM,WAAW,CAAC,SAChB,SAAS,MAAM,aAAa,MAAM,SAAS,WAAW,IAAI;AAE5D,QAAM,gBAAgB,CACpB,EAAE,MAAM,MAAM,GACd,YACA,SAAS,UACN;AACH,UAAM,SAAS,SAAS,IAAI;AAE5B,WACE;AAAA,MAAC;AAAA;AAAA,QAEC;AAAA,QACA,SAAS;AAAA,QACT,WACE,SACI,oEACE,SACI,+BACA,8CACN,KACA,SACE,qCACA;AAAA,QAGP;AAAA;AAAA,MAfI;AAAA,IAgBP;AAAA,EAEJ;AAEA,QAAM,SACJ,iCACE;AAAA,yBAAC,SAAI,WAAU,+CACb;AAAA,0BAAC,SAAI,WAAU,2BAA2B,iBAAM;AAAA,MAEhD,qBAAC,SAAI,WAAU,qCACZ;AAAA,wBAAgB,IAAI,CAAC,SAAS,cAAc,IAAI,CAAC;AAAA,QACjD,0BAA0B,SAAS,IAClC,qBAAC,gBACC;AAAA,8BAAC,uBAAoB,WAAU,qFAC5B,4BACH;AAAA,UACA,oBAAC,uBAAoB,OAAM,OACxB,mCAAyB,SAAS,IAC/B,yBAAyB,IAAI,CAAC,OAAO,eACnC,qBAAC,SACC;AAAA,gCAAC,qBAAmB,gBAAM,OAAM;AAAA,YAC/B,MAAM,MAAM,IAAI,CAAC,SAChB,oBAAC,oBAAiC,SAAO,MACvC,8BAAC,iBAAc,MAAM,KAAK,MAAM,WAAU,UACvC,eAAK,OACR,KAHqB,KAAK,IAI5B,CACD;AAAA,YACA,aAAa,yBAAyB,SAAS,IAC9C,oBAAC,yBAAsB,IACrB;AAAA,eAXI,MAAM,KAYhB,CACD,IACD,wBAAwB,IAAI,CAAC,SAC3B,oBAAC,oBAAiC,SAAO,MACvC,8BAAC,iBAAc,MAAM,KAAK,MAAM,WAAU,UACvC,eAAK,OACR,KAHqB,KAAK,IAI5B,CACD,GACP;AAAA,WACF,IACE;AAAA,QACH;AAAA,SACH;AAAA,MAEA,qBAAC,SAAI,WAAU,qCACZ;AAAA,2BAAmB;AAAA,QACpB;AAAA,UAAC;AAAA;AAAA,YACC,SAAS,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAAA,YAC1C,WAAU;AAAA,YACV,cAAY;AAAA,YAEX,2BACC;AAAA,cAAC;AAAA;AAAA,gBACC,WAAU;AAAA,gBACV,MAAK;AAAA,gBACL,SAAQ;AAAA,gBACR,aAAa;AAAA,gBACb,QAAO;AAAA,gBAEP,8BAAC,UAAK,eAAc,SAAQ,gBAAe,SAAQ,GAAE,wBAAuB;AAAA;AAAA,YAC9E,IAEA;AAAA,cAAC;AAAA;AAAA,gBACC,WAAU;AAAA,gBACV,MAAK;AAAA,gBACL,SAAQ;AAAA,gBACR,aAAa;AAAA,gBACb,QAAO;AAAA,gBAEP;AAAA,kBAAC;AAAA;AAAA,oBACC,eAAc;AAAA,oBACd,gBAAe;AAAA,oBACf,GAAE;AAAA;AAAA,gBACJ;AAAA;AAAA,YACF;AAAA;AAAA,QAEJ;AAAA,SACF;AAAA,OACF;AAAA,IAEC,kBACC,qBAAC,SAAI,WAAU,yCACb;AAAA,2BAAC,SAAI,WAAU,2BACZ;AAAA,wBAAgB;AAAA,UAAI,CAAC,SACpB,cAAc,MAAM,MAAM,kBAAkB,KAAK,GAAG,IAAI;AAAA,QAC1D;AAAA,QACC,yBAAyB,SAAS,IAC/B,yBAAyB,QAAQ,CAAC,UAAU;AAAA,UAC1C;AAAA,YAAC;AAAA;AAAA,cAEC,WAAU;AAAA,cAET,gBAAM;AAAA;AAAA,YAHF,SAAS,MAAM,KAAK;AAAA,UAI3B;AAAA,UACA,GAAG,MAAM,MAAM;AAAA,YAAI,CAAC,SAClB,cAAc,MAAM,MAAM,kBAAkB,KAAK,GAAG,IAAI;AAAA,UAC1D;AAAA,QACF,CAAC,IACD,0BAA0B;AAAA,UAAI,CAAC,SAC7B,cAAc,MAAM,MAAM,kBAAkB,KAAK,GAAG,IAAI;AAAA,QAC1D;AAAA,SACN;AAAA,MACC,kBACC,oBAAC,SAAI,WAAU,uEACZ,2BACH,IACE;AAAA,OACN;AAAA,KAEJ;AAGF,SACE,oBAAC,kBAAe,QAAgB,QAAgB,KAC7C,UACH;AAEJ;","names":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react-vite";
|
|
2
|
+
import { AppShellPreset } from "./app-shell-preset.js";
|
|
3
|
+
declare const meta: Meta<typeof AppShellPreset>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof AppShellPreset>;
|
|
6
|
+
export declare const HomeActive: Story;
|
|
7
|
+
export declare const AboutActive: Story;
|
|
8
|
+
export declare const Static: Story;
|
|
9
|
+
//# sourceMappingURL=app-shell.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-shell.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/app-shell/app-shell.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,cAAc,EAA2B,MAAM,uBAAuB,CAAC;AAehF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,cAAc,CAYrC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,cAAc,CAAC,CAAC;AAgD7C,eAAO,MAAM,UAAU,EAAE,KAExB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAEzB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAiBpB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { AppShellLayout } from "./app-shell-layout.js";
|
|
2
|
+
export type { IAppShellLayoutProps } from "./app-shell-layout.js";
|
|
3
|
+
export { AppShellPreset } from "./app-shell-preset.js";
|
|
4
|
+
export type { IAppShellPresetProps, IAppShellNavItem, IAppShellNavGroup, IAppShellLinkProps, } from "./app-shell-preset.js";
|
|
5
|
+
export { SidebarNav } from "./sidebar-nav.js";
|
|
6
|
+
export type { ISidebarNavProps, ISidebarNavItem } from "./sidebar-nav.js";
|
|
7
|
+
export { ModuleSubnav } from "./module-subnav.js";
|
|
8
|
+
export type { IModuleSubnavProps, IModuleSubnavItem } from "./module-subnav.js";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|