@stridge/noctis 1.0.0-beta.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 +60 -0
- package/dist/_virtual/_rolldown/runtime.js +27 -0
- package/dist/components/accordion/accordion.context.js +15 -0
- package/dist/components/accordion/accordion.d.ts +136 -0
- package/dist/components/accordion/accordion.js +132 -0
- package/dist/components/accordion/accordion.props.d.ts +45 -0
- package/dist/components/accordion/accordion.props.js +53 -0
- package/dist/components/accordion/accordion.slots.d.ts +24 -0
- package/dist/components/accordion/accordion.slots.js +39 -0
- package/dist/components/accordion/accordion.types.d.ts +11 -0
- package/dist/components/accordion/index.d.ts +3 -0
- package/dist/components/alert-dialog/alert-dialog.context.js +16 -0
- package/dist/components/alert-dialog/alert-dialog.d.ts +324 -0
- package/dist/components/alert-dialog/alert-dialog.js +279 -0
- package/dist/components/alert-dialog/alert-dialog.props.d.ts +85 -0
- package/dist/components/alert-dialog/alert-dialog.props.js +84 -0
- package/dist/components/alert-dialog/alert-dialog.slots.d.ts +29 -0
- package/dist/components/alert-dialog/alert-dialog.slots.js +52 -0
- package/dist/components/alert-dialog/alert-dialog.types.d.ts +22 -0
- package/dist/components/alert-dialog/index.d.ts +3 -0
- package/dist/components/autocomplete/autocomplete.context.d.ts +5 -0
- package/dist/components/autocomplete/autocomplete.context.js +13 -0
- package/dist/components/autocomplete/autocomplete.d.ts +364 -0
- package/dist/components/autocomplete/autocomplete.js +373 -0
- package/dist/components/autocomplete/autocomplete.props.d.ts +83 -0
- package/dist/components/autocomplete/autocomplete.props.js +63 -0
- package/dist/components/autocomplete/autocomplete.slots.d.ts +32 -0
- package/dist/components/autocomplete/autocomplete.slots.js +61 -0
- package/dist/components/autocomplete/index.d.ts +3 -0
- package/dist/components/avatar/avatar.context.js +21 -0
- package/dist/components/avatar/avatar.d.ts +235 -0
- package/dist/components/avatar/avatar.js +208 -0
- package/dist/components/avatar/avatar.props.d.ts +86 -0
- package/dist/components/avatar/avatar.props.js +78 -0
- package/dist/components/avatar/avatar.slots.d.ts +35 -0
- package/dist/components/avatar/avatar.slots.js +49 -0
- package/dist/components/avatar/avatar.types.d.ts +28 -0
- package/dist/components/avatar/index.d.ts +2 -0
- package/dist/components/button/button.d.ts +91 -0
- package/dist/components/button/button.js +82 -0
- package/dist/components/button/button.props.d.ts +48 -0
- package/dist/components/button/button.props.js +25 -0
- package/dist/components/button/button.slots.d.ts +30 -0
- package/dist/components/button/button.slots.js +40 -0
- package/dist/components/button/button.types.d.ts +12 -0
- package/dist/components/button/index.d.ts +2 -0
- package/dist/components/button-group/button-group.context.js +15 -0
- package/dist/components/button-group/button-group.d.ts +60 -0
- package/dist/components/button-group/button-group.js +50 -0
- package/dist/components/button-group/button-group.props.d.ts +22 -0
- package/dist/components/button-group/button-group.props.js +33 -0
- package/dist/components/button-group/button-group.slots.d.ts +12 -0
- package/dist/components/button-group/button-group.slots.js +18 -0
- package/dist/components/button-group/index.d.ts +2 -0
- package/dist/components/checkbox/checkbox-group.d.ts +46 -0
- package/dist/components/checkbox/checkbox-group.js +31 -0
- package/dist/components/checkbox/checkbox.context.js +15 -0
- package/dist/components/checkbox/checkbox.d.ts +130 -0
- package/dist/components/checkbox/checkbox.js +117 -0
- package/dist/components/checkbox/checkbox.props.d.ts +84 -0
- package/dist/components/checkbox/checkbox.props.js +49 -0
- package/dist/components/checkbox/checkbox.slots.d.ts +27 -0
- package/dist/components/checkbox/checkbox.slots.js +40 -0
- package/dist/components/checkbox/index.d.ts +3 -0
- package/dist/components/code-block/brand-logo.d.ts +37 -0
- package/dist/components/code-block/brand-logo.js +212 -0
- package/dist/components/code-block/code-block.context.js +13 -0
- package/dist/components/code-block/code-block.d.ts +190 -0
- package/dist/components/code-block/code-block.js +267 -0
- package/dist/components/code-block/code-block.props.d.ts +42 -0
- package/dist/components/code-block/code-block.props.js +51 -0
- package/dist/components/code-block/code-block.slots.d.ts +16 -0
- package/dist/components/code-block/code-block.slots.js +31 -0
- package/dist/components/code-block/index.d.ts +3 -0
- package/dist/components/code-block/language-label.js +43 -0
- package/dist/components/collapsible/collapsible.context.js +18 -0
- package/dist/components/collapsible/collapsible.d.ts +167 -0
- package/dist/components/collapsible/collapsible.js +182 -0
- package/dist/components/collapsible/collapsible.props.d.ts +33 -0
- package/dist/components/collapsible/collapsible.props.js +44 -0
- package/dist/components/collapsible/collapsible.slots.d.ts +25 -0
- package/dist/components/collapsible/collapsible.slots.js +40 -0
- package/dist/components/collapsible/collapsible.types.d.ts +23 -0
- package/dist/components/collapsible/index.d.ts +2 -0
- package/dist/components/color-picker/area.d.ts +11 -0
- package/dist/components/color-picker/area.js +148 -0
- package/dist/components/color-picker/color-picker.d.ts +110 -0
- package/dist/components/color-picker/color-picker.js +149 -0
- package/dist/components/color-picker/color-picker.props.d.ts +69 -0
- package/dist/components/color-picker/color-picker.props.js +74 -0
- package/dist/components/color-picker/color-picker.slots.js +21 -0
- package/dist/components/color-picker/color.d.ts +18 -0
- package/dist/components/color-picker/color.js +224 -0
- package/dist/components/color-picker/context.d.ts +25 -0
- package/dist/components/color-picker/context.js +23 -0
- package/dist/components/color-picker/eyedropper.d.ts +14 -0
- package/dist/components/color-picker/eyedropper.js +50 -0
- package/dist/components/color-picker/format-tabs.d.ts +11 -0
- package/dist/components/color-picker/format-tabs.js +35 -0
- package/dist/components/color-picker/index.d.ts +3 -0
- package/dist/components/color-picker/inputs.d.ts +16 -0
- package/dist/components/color-picker/inputs.js +61 -0
- package/dist/components/color-picker/sliders.d.ts +17 -0
- package/dist/components/color-picker/sliders.js +94 -0
- package/dist/components/color-picker/store.js +48 -0
- package/dist/components/color-picker/swatch.d.ts +15 -0
- package/dist/components/color-picker/swatch.js +25 -0
- package/dist/components/color-swatch/color-swatch-picker.d.ts +87 -0
- package/dist/components/color-swatch/color-swatch-picker.js +73 -0
- package/dist/components/color-swatch/color-swatch.context.js +8 -0
- package/dist/components/color-swatch/color-swatch.d.ts +55 -0
- package/dist/components/color-swatch/color-swatch.js +48 -0
- package/dist/components/color-swatch/color-swatch.props.d.ts +54 -0
- package/dist/components/color-swatch/color-swatch.props.js +32 -0
- package/dist/components/color-swatch/color-swatch.slots.js +13 -0
- package/dist/components/color-swatch/index.d.ts +2 -0
- package/dist/components/combobox/combobox.context.js +13 -0
- package/dist/components/combobox/combobox.d.ts +328 -0
- package/dist/components/combobox/combobox.js +315 -0
- package/dist/components/combobox/combobox.props.d.ts +85 -0
- package/dist/components/combobox/combobox.props.js +79 -0
- package/dist/components/combobox/combobox.slots.d.ts +28 -0
- package/dist/components/combobox/combobox.slots.js +63 -0
- package/dist/components/combobox/index.d.ts +2 -0
- package/dist/components/context-menu/context-menu.d.ts +254 -0
- package/dist/components/context-menu/context-menu.js +150 -0
- package/dist/components/context-menu/context-menu.props.d.ts +22 -0
- package/dist/components/context-menu/context-menu.props.js +32 -0
- package/dist/components/context-menu/context-menu.slots.d.ts +24 -0
- package/dist/components/context-menu/context-menu.slots.js +42 -0
- package/dist/components/context-menu/index.d.ts +2 -0
- package/dist/components/copy-button/copy-button.d.ts +56 -0
- package/dist/components/copy-button/copy-button.js +88 -0
- package/dist/components/copy-button/copy-button.props.d.ts +27 -0
- package/dist/components/copy-button/copy-button.props.js +51 -0
- package/dist/components/copy-button/copy-button.slots.d.ts +20 -0
- package/dist/components/copy-button/copy-button.slots.js +36 -0
- package/dist/components/copy-button/index.d.ts +2 -0
- package/dist/components/dialog/dialog.context.js +15 -0
- package/dist/components/dialog/dialog.d.ts +299 -0
- package/dist/components/dialog/dialog.js +263 -0
- package/dist/components/dialog/dialog.props.d.ts +71 -0
- package/dist/components/dialog/dialog.props.js +75 -0
- package/dist/components/dialog/dialog.slots.d.ts +26 -0
- package/dist/components/dialog/dialog.slots.js +46 -0
- package/dist/components/dialog/dialog.types.d.ts +16 -0
- package/dist/components/dialog/index.d.ts +3 -0
- package/dist/components/field/field.d.ts +221 -0
- package/dist/components/field/field.js +192 -0
- package/dist/components/field/field.props.d.ts +66 -0
- package/dist/components/field/field.props.js +65 -0
- package/dist/components/field/field.slots.d.ts +35 -0
- package/dist/components/field/field.slots.js +54 -0
- package/dist/components/field/field.types.d.ts +5 -0
- package/dist/components/field/index.d.ts +4 -0
- package/dist/components/inline-code/index.d.ts +1 -0
- package/dist/components/inline-code/inline-code.d.ts +46 -0
- package/dist/components/inline-code/inline-code.js +36 -0
- package/dist/components/inline-code/inline-code.props.d.ts +17 -0
- package/dist/components/inline-code/inline-code.props.js +27 -0
- package/dist/components/inline-code/inline-code.slots.js +8 -0
- package/dist/components/input/index.d.ts +3 -0
- package/dist/components/input/input.context.js +13 -0
- package/dist/components/input/input.d.ts +161 -0
- package/dist/components/input/input.js +117 -0
- package/dist/components/input/input.props.d.ts +51 -0
- package/dist/components/input/input.props.js +50 -0
- package/dist/components/input/input.slots.d.ts +35 -0
- package/dist/components/input/input.slots.js +46 -0
- package/dist/components/input/input.types.d.ts +12 -0
- package/dist/components/kbd/glyphs.js +45 -0
- package/dist/components/kbd/index.d.ts +1 -0
- package/dist/components/kbd/kbd.d.ts +61 -0
- package/dist/components/kbd/kbd.js +233 -0
- package/dist/components/kbd/kbd.props.d.ts +30 -0
- package/dist/components/kbd/kbd.props.js +39 -0
- package/dist/components/kbd/kbd.slots.js +14 -0
- package/dist/components/kbd/use-apple-platform.js +25 -0
- package/dist/components/menu/index.d.ts +2 -0
- package/dist/components/menu/menu.d.ts +355 -0
- package/dist/components/menu/menu.js +263 -0
- package/dist/components/menu/menu.props.d.ts +92 -0
- package/dist/components/menu/menu.props.js +97 -0
- package/dist/components/menu/menu.slots.d.ts +32 -0
- package/dist/components/menu/menu.slots.js +60 -0
- package/dist/components/menubar/index.d.ts +2 -0
- package/dist/components/menubar/menubar.context.js +13 -0
- package/dist/components/menubar/menubar.d.ts +162 -0
- package/dist/components/menubar/menubar.js +122 -0
- package/dist/components/menubar/menubar.props.d.ts +41 -0
- package/dist/components/menubar/menubar.props.js +45 -0
- package/dist/components/menubar/menubar.slots.d.ts +26 -0
- package/dist/components/menubar/menubar.slots.js +40 -0
- package/dist/components/meter/index.d.ts +2 -0
- package/dist/components/meter/meter.context.d.ts +9 -0
- package/dist/components/meter/meter.context.js +13 -0
- package/dist/components/meter/meter.d.ts +163 -0
- package/dist/components/meter/meter.js +121 -0
- package/dist/components/meter/meter.props.d.ts +50 -0
- package/dist/components/meter/meter.props.js +33 -0
- package/dist/components/meter/meter.slots.d.ts +18 -0
- package/dist/components/meter/meter.slots.js +31 -0
- package/dist/components/navigation-menu/index.d.ts +2 -0
- package/dist/components/navigation-menu/navigation-menu.d.ts +328 -0
- package/dist/components/navigation-menu/navigation-menu.js +274 -0
- package/dist/components/navigation-menu/navigation-menu.props.d.ts +98 -0
- package/dist/components/navigation-menu/navigation-menu.props.js +90 -0
- package/dist/components/navigation-menu/navigation-menu.slots.d.ts +34 -0
- package/dist/components/navigation-menu/navigation-menu.slots.js +60 -0
- package/dist/components/number-field/index.d.ts +2 -0
- package/dist/components/number-field/number-field.context.d.ts +13 -0
- package/dist/components/number-field/number-field.context.js +13 -0
- package/dist/components/number-field/number-field.d.ts +197 -0
- package/dist/components/number-field/number-field.js +187 -0
- package/dist/components/number-field/number-field.props.d.ts +66 -0
- package/dist/components/number-field/number-field.props.js +50 -0
- package/dist/components/number-field/number-field.slots.d.ts +31 -0
- package/dist/components/number-field/number-field.slots.js +48 -0
- package/dist/components/otp-field/index.d.ts +3 -0
- package/dist/components/otp-field/otp-field.context.js +13 -0
- package/dist/components/otp-field/otp-field.d.ts +99 -0
- package/dist/components/otp-field/otp-field.js +76 -0
- package/dist/components/otp-field/otp-field.props.d.ts +48 -0
- package/dist/components/otp-field/otp-field.props.js +43 -0
- package/dist/components/otp-field/otp-field.slots.d.ts +28 -0
- package/dist/components/otp-field/otp-field.slots.js +39 -0
- package/dist/components/popover/index.d.ts +2 -0
- package/dist/components/popover/popover.d.ts +192 -0
- package/dist/components/popover/popover.js +152 -0
- package/dist/components/popover/popover.props.d.ts +34 -0
- package/dist/components/popover/popover.props.js +44 -0
- package/dist/components/popover/popover.slots.d.ts +22 -0
- package/dist/components/popover/popover.slots.js +42 -0
- package/dist/components/preview-card/index.d.ts +2 -0
- package/dist/components/preview-card/preview-card.d.ts +182 -0
- package/dist/components/preview-card/preview-card.js +146 -0
- package/dist/components/preview-card/preview-card.props.d.ts +37 -0
- package/dist/components/preview-card/preview-card.props.js +48 -0
- package/dist/components/preview-card/preview-card.slots.d.ts +22 -0
- package/dist/components/preview-card/preview-card.slots.js +39 -0
- package/dist/components/progress/index.d.ts +3 -0
- package/dist/components/progress/progress.context.d.ts +9 -0
- package/dist/components/progress/progress.context.js +13 -0
- package/dist/components/progress/progress.d.ts +139 -0
- package/dist/components/progress/progress.js +92 -0
- package/dist/components/progress/progress.props.d.ts +56 -0
- package/dist/components/progress/progress.props.js +38 -0
- package/dist/components/progress/progress.slots.d.ts +24 -0
- package/dist/components/progress/progress.slots.js +37 -0
- package/dist/components/radio/index.d.ts +2 -0
- package/dist/components/radio/radio.context.js +5 -0
- package/dist/components/radio/radio.d.ts +205 -0
- package/dist/components/radio/radio.js +168 -0
- package/dist/components/radio/radio.props.d.ts +106 -0
- package/dist/components/radio/radio.props.js +65 -0
- package/dist/components/radio/radio.slots.d.ts +29 -0
- package/dist/components/radio/radio.slots.js +44 -0
- package/dist/components/rail/index.d.ts +3 -0
- package/dist/components/rail/rail.context.d.ts +17 -0
- package/dist/components/rail/rail.context.js +23 -0
- package/dist/components/rail/rail.d.ts +232 -0
- package/dist/components/rail/rail.js +254 -0
- package/dist/components/rail/rail.props.d.ts +98 -0
- package/dist/components/rail/rail.props.js +64 -0
- package/dist/components/rail/rail.slots.d.ts +20 -0
- package/dist/components/rail/rail.slots.js +40 -0
- package/dist/components/scroll-area/index.d.ts +2 -0
- package/dist/components/scroll-area/scroll-area.context.js +15 -0
- package/dist/components/scroll-area/scroll-area.d.ts +217 -0
- package/dist/components/scroll-area/scroll-area.js +153 -0
- package/dist/components/scroll-area/scroll-area.props.d.ts +73 -0
- package/dist/components/scroll-area/scroll-area.props.js +64 -0
- package/dist/components/scroll-area/scroll-area.slots.d.ts +40 -0
- package/dist/components/scroll-area/scroll-area.slots.js +54 -0
- package/dist/components/scroll-area/scroll-area.types.d.ts +24 -0
- package/dist/components/search-dialog/index.d.ts +3 -0
- package/dist/components/search-dialog/parts/input.d.ts +24 -0
- package/dist/components/search-dialog/parts/input.js +53 -0
- package/dist/components/search-dialog/parts/messages.d.ts +80 -0
- package/dist/components/search-dialog/parts/messages.js +75 -0
- package/dist/components/search-dialog/parts/results.d.ts +43 -0
- package/dist/components/search-dialog/parts/results.js +63 -0
- package/dist/components/search-dialog/parts/root.d.ts +54 -0
- package/dist/components/search-dialog/parts/root.js +99 -0
- package/dist/components/search-dialog/search-dialog.context.d.ts +15 -0
- package/dist/components/search-dialog/search-dialog.context.js +20 -0
- package/dist/components/search-dialog/search-dialog.d.ts +84 -0
- package/dist/components/search-dialog/search-dialog.js +43 -0
- package/dist/components/search-dialog/search-dialog.props.d.ts +45 -0
- package/dist/components/search-dialog/search-dialog.props.js +49 -0
- package/dist/components/search-dialog/search-dialog.slots.d.ts +16 -0
- package/dist/components/search-dialog/search-dialog.slots.js +32 -0
- package/dist/components/select/index.d.ts +2 -0
- package/dist/components/select/select.context.js +17 -0
- package/dist/components/select/select.d.ts +356 -0
- package/dist/components/select/select.js +314 -0
- package/dist/components/select/select.props.d.ts +110 -0
- package/dist/components/select/select.props.js +103 -0
- package/dist/components/select/select.slots.d.ts +38 -0
- package/dist/components/select/select.slots.js +67 -0
- package/dist/components/separator/index.d.ts +2 -0
- package/dist/components/separator/separator.d.ts +69 -0
- package/dist/components/separator/separator.js +44 -0
- package/dist/components/separator/separator.props.d.ts +30 -0
- package/dist/components/separator/separator.props.js +30 -0
- package/dist/components/separator/separator.slots.d.ts +22 -0
- package/dist/components/separator/separator.slots.js +21 -0
- package/dist/components/separator/separator.types.d.ts +5 -0
- package/dist/components/sheet/index.d.ts +3 -0
- package/dist/components/sheet/sheet-stack.d.ts +106 -0
- package/dist/components/sheet/sheet-stack.js +146 -0
- package/dist/components/sheet/sheet.d.ts +279 -0
- package/dist/components/sheet/sheet.js +264 -0
- package/dist/components/sheet/sheet.props.d.ts +74 -0
- package/dist/components/sheet/sheet.props.js +77 -0
- package/dist/components/sheet/sheet.slots.js +22 -0
- package/dist/components/sheet/sheet.types.d.ts +12 -0
- package/dist/components/slider/index.d.ts +3 -0
- package/dist/components/slider/slider.context.d.ts +5 -0
- package/dist/components/slider/slider.context.js +29 -0
- package/dist/components/slider/slider.d.ts +230 -0
- package/dist/components/slider/slider.js +274 -0
- package/dist/components/slider/slider.props.d.ts +72 -0
- package/dist/components/slider/slider.props.js +59 -0
- package/dist/components/slider/slider.slots.d.ts +30 -0
- package/dist/components/slider/slider.slots.js +50 -0
- package/dist/components/surface/index.d.ts +1 -0
- package/dist/components/surface/surface.d.ts +84 -0
- package/dist/components/surface/surface.js +48 -0
- package/dist/components/surface/surface.props.d.ts +35 -0
- package/dist/components/surface/surface.props.js +26 -0
- package/dist/components/surface/surface.slots.js +9 -0
- package/dist/components/surface/surface.types.d.ts +14 -0
- package/dist/components/switch/index.d.ts +2 -0
- package/dist/components/switch/switch.context.js +14 -0
- package/dist/components/switch/switch.d.ts +110 -0
- package/dist/components/switch/switch.js +92 -0
- package/dist/components/switch/switch.props.d.ts +68 -0
- package/dist/components/switch/switch.props.js +41 -0
- package/dist/components/switch/switch.slots.d.ts +23 -0
- package/dist/components/switch/switch.slots.js +35 -0
- package/dist/components/table/index.d.ts +1 -0
- package/dist/components/table/table.d.ts +104 -0
- package/dist/components/table/table.js +92 -0
- package/dist/components/table/table.props.d.ts +38 -0
- package/dist/components/table/table.props.js +49 -0
- package/dist/components/table/table.slots.js +17 -0
- package/dist/components/tabs/index.d.ts +2 -0
- package/dist/components/tabs/tabs.context.d.ts +9 -0
- package/dist/components/tabs/tabs.context.js +13 -0
- package/dist/components/tabs/tabs.d.ts +139 -0
- package/dist/components/tabs/tabs.js +118 -0
- package/dist/components/tabs/tabs.props.d.ts +59 -0
- package/dist/components/tabs/tabs.props.js +39 -0
- package/dist/components/tabs/tabs.slots.d.ts +20 -0
- package/dist/components/tabs/tabs.slots.js +33 -0
- package/dist/components/textarea/index.d.ts +3 -0
- package/dist/components/textarea/textarea.context.js +13 -0
- package/dist/components/textarea/textarea.d.ts +142 -0
- package/dist/components/textarea/textarea.js +129 -0
- package/dist/components/textarea/textarea.props.d.ts +44 -0
- package/dist/components/textarea/textarea.props.js +32 -0
- package/dist/components/textarea/textarea.slots.d.ts +23 -0
- package/dist/components/textarea/textarea.slots.js +33 -0
- package/dist/components/textarea/textarea.types.d.ts +5 -0
- package/dist/components/toast/index.d.ts +4 -0
- package/dist/components/toast/toast.d.ts +241 -0
- package/dist/components/toast/toast.js +193 -0
- package/dist/components/toast/toast.manager.d.ts +76 -0
- package/dist/components/toast/toast.manager.js +71 -0
- package/dist/components/toast/toast.props.d.ts +66 -0
- package/dist/components/toast/toast.props.js +74 -0
- package/dist/components/toast/toast.slots.d.ts +30 -0
- package/dist/components/toast/toast.slots.js +49 -0
- package/dist/components/toast/toast.types.d.ts +19 -0
- package/dist/components/toggle/index.d.ts +2 -0
- package/dist/components/toggle/toggle.context.d.ts +11 -0
- package/dist/components/toggle/toggle.context.js +14 -0
- package/dist/components/toggle/toggle.d.ts +136 -0
- package/dist/components/toggle/toggle.js +101 -0
- package/dist/components/toggle/toggle.props.d.ts +51 -0
- package/dist/components/toggle/toggle.props.js +29 -0
- package/dist/components/toggle/toggle.slots.d.ts +26 -0
- package/dist/components/toggle/toggle.slots.js +36 -0
- package/dist/components/toolbar/index.d.ts +3 -0
- package/dist/components/toolbar/toolbar.context.js +23 -0
- package/dist/components/toolbar/toolbar.d.ts +218 -0
- package/dist/components/toolbar/toolbar.js +197 -0
- package/dist/components/toolbar/toolbar.props.d.ts +54 -0
- package/dist/components/toolbar/toolbar.props.js +55 -0
- package/dist/components/toolbar/toolbar.slots.d.ts +24 -0
- package/dist/components/toolbar/toolbar.slots.js +37 -0
- package/dist/components/toolbar/toolbar.types.d.ts +15 -0
- package/dist/components/tooltip/index.d.ts +2 -0
- package/dist/components/tooltip/tooltip.d.ts +170 -0
- package/dist/components/tooltip/tooltip.js +143 -0
- package/dist/components/tooltip/tooltip.props.d.ts +36 -0
- package/dist/components/tooltip/tooltip.props.js +42 -0
- package/dist/components/tooltip/tooltip.slots.d.ts +26 -0
- package/dist/components/tooltip/tooltip.slots.js +42 -0
- package/dist/core/derive-threshold-tone.js +35 -0
- package/dist/core/merge-class-name.d.ts +17 -0
- package/dist/core/merge-class-name.js +16 -0
- package/dist/core/noctis-provider.d.ts +38 -0
- package/dist/core/noctis-provider.js +44 -0
- package/dist/core/primitive/index.d.ts +1 -0
- package/dist/core/primitive/primitive.d.ts +44 -0
- package/dist/core/primitive/primitive.js +27 -0
- package/dist/core/radius-scope/index.d.ts +2 -0
- package/dist/core/radius-scope/radius-scope.d.ts +43 -0
- package/dist/core/radius-scope/radius-scope.js +36 -0
- package/dist/core/radius-scope/radius-scope.styles.d.ts +13 -0
- package/dist/core/radius-scope/radius-scope.styles.js +11 -0
- package/dist/core/render.d.ts +24 -0
- package/dist/core/render.js +12 -0
- package/dist/core/use-copy.d.ts +13 -0
- package/dist/core/use-copy.js +30 -0
- package/dist/core/use-injected-labels.js +55 -0
- package/dist/core/use-reduced-motion.d.ts +9 -0
- package/dist/core/use-reduced-motion.js +26 -0
- package/dist/core/visually-hidden/index.d.ts +1 -0
- package/dist/core/visually-hidden/visually-hidden.d.ts +24 -0
- package/dist/core/visually-hidden/visually-hidden.js +19 -0
- package/dist/i18n/default-messages.d.ts +12 -0
- package/dist/i18n/default-messages.js +10 -0
- package/dist/i18n/index.d.ts +2 -0
- package/dist/i18n/index.js +2 -0
- package/dist/i18n/messages/index.d.ts +2 -0
- package/dist/i18n/messages/index.js +2 -0
- package/dist/icons/glyphs.d.ts +2 -0
- package/dist/icons/glyphs.js +2 -0
- package/dist/icons/icon.d.ts +40 -0
- package/dist/icons/icon.js +26 -0
- package/dist/icons/icon.styles.d.ts +9 -0
- package/dist/icons/index.d.ts +3 -0
- package/dist/index.d.ts +126 -0
- package/dist/index.js +112 -0
- package/dist/primitives/accordion.d.ts +7 -0
- package/dist/primitives/accordion.js +8 -0
- package/dist/primitives/alert-dialog.d.ts +7 -0
- package/dist/primitives/alert-dialog.js +8 -0
- package/dist/primitives/autocomplete/autocomplete.d.ts +58 -0
- package/dist/primitives/autocomplete/autocomplete.js +58 -0
- package/dist/primitives/autocomplete/index.d.ts +1 -0
- package/dist/primitives/autocomplete.d.ts +2 -0
- package/dist/primitives/autocomplete.js +2 -0
- package/dist/primitives/avatar.d.ts +7 -0
- package/dist/primitives/avatar.js +8 -0
- package/dist/primitives/button.d.ts +7 -0
- package/dist/primitives/button.js +8 -0
- package/dist/primitives/checkbox-group.d.ts +7 -0
- package/dist/primitives/checkbox-group.js +8 -0
- package/dist/primitives/checkbox.d.ts +7 -0
- package/dist/primitives/checkbox.js +8 -0
- package/dist/primitives/collapsible.d.ts +7 -0
- package/dist/primitives/collapsible.js +8 -0
- package/dist/primitives/combobox/combobox.d.ts +71 -0
- package/dist/primitives/combobox/combobox.js +66 -0
- package/dist/primitives/combobox/index.d.ts +1 -0
- package/dist/primitives/combobox.d.ts +2 -0
- package/dist/primitives/combobox.js +2 -0
- package/dist/primitives/context-menu.d.ts +7 -0
- package/dist/primitives/context-menu.js +8 -0
- package/dist/primitives/csp-provider.d.ts +1 -0
- package/dist/primitives/csp-provider.js +2 -0
- package/dist/primitives/dialog.d.ts +7 -0
- package/dist/primitives/dialog.js +8 -0
- package/dist/primitives/direction-provider.d.ts +1 -0
- package/dist/primitives/direction-provider.js +8 -0
- package/dist/primitives/drawer.d.ts +1 -0
- package/dist/primitives/drawer.js +2 -0
- package/dist/primitives/field.d.ts +7 -0
- package/dist/primitives/field.js +8 -0
- package/dist/primitives/fieldset.d.ts +7 -0
- package/dist/primitives/fieldset.js +8 -0
- package/dist/primitives/form.d.ts +7 -0
- package/dist/primitives/form.js +8 -0
- package/dist/primitives/index.d.ts +79 -0
- package/dist/primitives/index.js +113 -0
- package/dist/primitives/input.d.ts +7 -0
- package/dist/primitives/input.js +8 -0
- package/dist/primitives/menu.d.ts +7 -0
- package/dist/primitives/menu.js +8 -0
- package/dist/primitives/menubar.d.ts +7 -0
- package/dist/primitives/menubar.js +8 -0
- package/dist/primitives/meter/index.d.ts +1 -0
- package/dist/primitives/meter/meter.d.ts +56 -0
- package/dist/primitives/meter/meter.js +59 -0
- package/dist/primitives/meter.d.ts +2 -0
- package/dist/primitives/meter.js +2 -0
- package/dist/primitives/navigation-menu.d.ts +7 -0
- package/dist/primitives/navigation-menu.js +8 -0
- package/dist/primitives/number-field/context.d.ts +13 -0
- package/dist/primitives/number-field/context.js +36 -0
- package/dist/primitives/number-field/index.d.ts +2 -0
- package/dist/primitives/number-field/number-field.d.ts +90 -0
- package/dist/primitives/number-field/number-field.js +107 -0
- package/dist/primitives/number-field.d.ts +3 -0
- package/dist/primitives/number-field.js +2 -0
- package/dist/primitives/otp-field.d.ts +7 -0
- package/dist/primitives/otp-field.js +8 -0
- package/dist/primitives/popover.d.ts +7 -0
- package/dist/primitives/popover.js +8 -0
- package/dist/primitives/preview-card.d.ts +7 -0
- package/dist/primitives/preview-card.js +8 -0
- package/dist/primitives/progress/index.d.ts +1 -0
- package/dist/primitives/progress/progress.d.ts +56 -0
- package/dist/primitives/progress/progress.js +59 -0
- package/dist/primitives/progress.d.ts +2 -0
- package/dist/primitives/progress.js +2 -0
- package/dist/primitives/radio-group.d.ts +7 -0
- package/dist/primitives/radio-group.js +8 -0
- package/dist/primitives/radio.d.ts +7 -0
- package/dist/primitives/radio.js +8 -0
- package/dist/primitives/scroll-area.d.ts +7 -0
- package/dist/primitives/scroll-area.js +8 -0
- package/dist/primitives/select.d.ts +7 -0
- package/dist/primitives/select.js +8 -0
- package/dist/primitives/separator.d.ts +7 -0
- package/dist/primitives/separator.js +8 -0
- package/dist/primitives/slider/context.d.ts +12 -0
- package/dist/primitives/slider/context.js +18 -0
- package/dist/primitives/slider/index.d.ts +2 -0
- package/dist/primitives/slider/slider.d.ts +83 -0
- package/dist/primitives/slider/slider.js +99 -0
- package/dist/primitives/slider.d.ts +3 -0
- package/dist/primitives/slider.js +2 -0
- package/dist/primitives/switch.d.ts +1 -0
- package/dist/primitives/switch.js +2 -0
- package/dist/primitives/tabs.d.ts +7 -0
- package/dist/primitives/tabs.js +8 -0
- package/dist/primitives/toast/context.d.ts +11 -0
- package/dist/primitives/toast/context.js +18 -0
- package/dist/primitives/toast/index.d.ts +2 -0
- package/dist/primitives/toast/toast.d.ts +122 -0
- package/dist/primitives/toast/toast.js +133 -0
- package/dist/primitives/toast.d.ts +3 -0
- package/dist/primitives/toast.js +2 -0
- package/dist/primitives/toggle-group.d.ts +7 -0
- package/dist/primitives/toggle-group.js +8 -0
- package/dist/primitives/toggle.d.ts +7 -0
- package/dist/primitives/toggle.js +8 -0
- package/dist/primitives/toolbar.d.ts +7 -0
- package/dist/primitives/toolbar.js +8 -0
- package/dist/primitives/tooltip.d.ts +7 -0
- package/dist/primitives/tooltip.js +8 -0
- package/dist/props.d.ts +46 -0
- package/dist/props.js +46 -0
- package/dist/styles.css +11513 -0
- package/dist/tailwind/cn.d.ts +33 -0
- package/dist/tailwind/cn.js +42 -0
- package/dist/tailwind/index.d.ts +3 -0
- package/dist/tailwind/index.js +3 -0
- package/dist/tailwind/tv.d.ts +20 -0
- package/dist/tailwind/tv.js +11 -0
- package/dist/tailwind.css +485 -0
- package/dist/theme/react.d.ts +1 -0
- package/dist/theme/react.js +1 -0
- package/dist/theme.d.ts +1 -0
- package/dist/theme.js +1 -0
- package/dist/tokens/react.d.ts +1 -0
- package/dist/tokens/react.js +1 -0
- package/dist/tokens.d.ts +1 -0
- package/dist/tokens.js +1 -0
- package/package.json +121 -0
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
import { navigation_menu_d_exports } from "../../primitives/navigation-menu.js";
|
|
2
|
+
import { NavigationMenuLinkPropsArgs, NavigationMenuPartProps, NavigationMenuRootPropsArgs, NavigationMenuTriggerPropsArgs, contentProps, footerProps, itemProps, linkDescriptionProps, linkProps, linkTitleProps, listProps, rootProps, sectionProps, sectionTitleProps, separatorProps, triggerProps, viewportProps } from "./navigation-menu.props.js";
|
|
3
|
+
import { CSSProperties, ComponentProps, ReactElement } from "react";
|
|
4
|
+
|
|
5
|
+
//#region src/components/navigation-menu/navigation-menu.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* Owns the open value and shares it across the bar. Wraps Base UI's NavigationMenu, which renders a
|
|
8
|
+
* `<nav>`. Works controlled (`value` + `onValueChange`) or uncontrolled (`defaultValue`). Carries a
|
|
9
|
+
* Noctis hover-intent `delay`/`closeDelay` (override per instance) and a `size` density knob (`md`
|
|
10
|
+
* site-nav default, `sm` compact). Compose a `NavigationMenu.List` of items with a single
|
|
11
|
+
* `NavigationMenu.Viewport`.
|
|
12
|
+
*/
|
|
13
|
+
declare function NavigationMenuRoot({
|
|
14
|
+
size,
|
|
15
|
+
orientation,
|
|
16
|
+
delay,
|
|
17
|
+
closeDelay,
|
|
18
|
+
className,
|
|
19
|
+
...props
|
|
20
|
+
}: NavigationMenu.Root.Props): ReactElement;
|
|
21
|
+
/**
|
|
22
|
+
* The bar of top-level items. Holds `NavigationMenu.Item`s; arrow keys move between them (roving
|
|
23
|
+
* focus). Base UI wires the arrows but not Home/End, so we layer those on (APG disclosure-navigation):
|
|
24
|
+
* Home/End jump to the first/last enabled bar item; the composite re-syncs off the newly focused item.
|
|
25
|
+
*/
|
|
26
|
+
declare function NavigationMenuList({
|
|
27
|
+
className,
|
|
28
|
+
onKeyDown,
|
|
29
|
+
...props
|
|
30
|
+
}: NavigationMenu.List.Props): ReactElement;
|
|
31
|
+
/** One top-level entry — wrap a `Trigger` + `Content` for a flyout, or a single `Link` for a direct page. */
|
|
32
|
+
declare function NavigationMenuItem({
|
|
33
|
+
className,
|
|
34
|
+
...props
|
|
35
|
+
}: NavigationMenu.Item.Props): ReactElement;
|
|
36
|
+
/**
|
|
37
|
+
* The control that opens an item's flyout — on hover (after the intent delay) and from the keyboard
|
|
38
|
+
* (Enter/Space, then Down to enter the panel). Carries a trailing chevron that rotates while the flyout
|
|
39
|
+
* is open. Mark it `current` to keep its fill when the section's page is the current one (the persistent
|
|
40
|
+
* "you are here" at the top level). Pair it with a `NavigationMenu.Content` inside the same `Item`.
|
|
41
|
+
*/
|
|
42
|
+
declare function NavigationMenuTrigger({
|
|
43
|
+
current,
|
|
44
|
+
disabled,
|
|
45
|
+
className,
|
|
46
|
+
children,
|
|
47
|
+
...props
|
|
48
|
+
}: NavigationMenu.Trigger.Props): ReactElement;
|
|
49
|
+
/**
|
|
50
|
+
* The flyout panel for an item, moved into the shared `Viewport` while its trigger is active. Lay out
|
|
51
|
+
* its links and sections (`NavigationMenu.Section`/`Separator`/`Footer`) with logical Tailwind utilities
|
|
52
|
+
* at the call site; the panel itself carries the content padding and the cross-panel slide transition.
|
|
53
|
+
* Set `keepMounted` to keep the panel's links in the DOM when closed — recommended for site nav so
|
|
54
|
+
* crawlers can see them (Base UI defaults it `false`).
|
|
55
|
+
*/
|
|
56
|
+
declare function NavigationMenuContent({
|
|
57
|
+
className,
|
|
58
|
+
...props
|
|
59
|
+
}: NavigationMenu.Content.Props): ReactElement;
|
|
60
|
+
/**
|
|
61
|
+
* A navigation link — usable as a top-level bar entry or as a row inside a flyout panel. Mark the
|
|
62
|
+
* current page with `active` (sets `aria-current="page"`); mark a bar link as the current section with
|
|
63
|
+
* `current` (keeps the fill when closed). For SPA routing, pass `closeOnClick` to dismiss the panel on
|
|
64
|
+
* navigation. Compose your router's link via `render` (e.g.
|
|
65
|
+
* `<NavigationMenu.Link render={<NextLink href="/docs" />}>Docs</NavigationMenu.Link>`).
|
|
66
|
+
*/
|
|
67
|
+
declare function NavigationMenuLink({
|
|
68
|
+
current,
|
|
69
|
+
disabled,
|
|
70
|
+
className,
|
|
71
|
+
onClick,
|
|
72
|
+
onKeyDown,
|
|
73
|
+
tabIndex,
|
|
74
|
+
...props
|
|
75
|
+
}: NavigationMenu.Link.Props): ReactElement;
|
|
76
|
+
/** The bold first line of a two-line panel link — the link's label. Place inside a `NavigationMenu.Link`. */
|
|
77
|
+
declare function NavigationMenuLinkTitle({
|
|
78
|
+
className,
|
|
79
|
+
...props
|
|
80
|
+
}: NavigationMenu.LinkTitle.Props): ReactElement;
|
|
81
|
+
/** The muted supporting line of a two-line panel link. Place inside a `NavigationMenu.Link`, after the title. */
|
|
82
|
+
declare function NavigationMenuLinkDescription({
|
|
83
|
+
className,
|
|
84
|
+
...props
|
|
85
|
+
}: NavigationMenu.LinkDescription.Props): ReactElement;
|
|
86
|
+
/**
|
|
87
|
+
* A titled column group inside a flyout panel — the blessed mega-panel layout (cap each at the NN/G
|
|
88
|
+
* 3–5 groups, 7–9 links rule). Stack a `NavigationMenu.SectionTitle` over the section's `Link` rows;
|
|
89
|
+
* lay multiple sections out in a row/grid at the call site.
|
|
90
|
+
*/
|
|
91
|
+
declare function NavigationMenuSection({
|
|
92
|
+
className,
|
|
93
|
+
...props
|
|
94
|
+
}: NavigationMenu.Section.Props): ReactElement;
|
|
95
|
+
/** A section's small heading label. Place as the first child of a `NavigationMenu.Section`. */
|
|
96
|
+
declare function NavigationMenuSectionTitle({
|
|
97
|
+
className,
|
|
98
|
+
...props
|
|
99
|
+
}: NavigationMenu.SectionTitle.Props): ReactElement;
|
|
100
|
+
/** A sharp 1px divider between panel groups (a native `<hr>`, implicitly a separator). */
|
|
101
|
+
declare function NavigationMenuSeparator({
|
|
102
|
+
className,
|
|
103
|
+
...props
|
|
104
|
+
}: NavigationMenu.Separator.Props): ReactElement;
|
|
105
|
+
/**
|
|
106
|
+
* A pinned "view all"/CTA row at a panel's end, set off by a hairline. Put the lead text first and the
|
|
107
|
+
* call-to-action `NavigationMenu.Link` last (it floats to the inline-end).
|
|
108
|
+
*/
|
|
109
|
+
declare function NavigationMenuFooter({
|
|
110
|
+
className,
|
|
111
|
+
...props
|
|
112
|
+
}: NavigationMenu.Footer.Props): ReactElement;
|
|
113
|
+
/**
|
|
114
|
+
* The single floating flyout container — portaled, elevated, positioned against the active trigger, and
|
|
115
|
+
* animated. Render it once inside `Root`, after the `List`. Base UI teleports each open `Content` into
|
|
116
|
+
* it, so switching items slides the panel in place. The popup paint is the composed `<Surface
|
|
117
|
+
* elevation="menu">`; `data-elevation` lands on the portaled popup so the flyout re-derives its theme.
|
|
118
|
+
* Set `backdrop` to dim the page behind a full-bleed mega-panel.
|
|
119
|
+
*
|
|
120
|
+
* Set `inline` for a nested menu whose panels should stay inside the current layout (e.g. a sidebar
|
|
121
|
+
* mega-panel): the viewport renders in place as a plain clipping window — no portal, positioner, or
|
|
122
|
+
* elevated popup — so the outer flyout's card already provides the surface. Position props are ignored
|
|
123
|
+
* in this mode.
|
|
124
|
+
*/
|
|
125
|
+
declare function NavigationMenuViewport({
|
|
126
|
+
side,
|
|
127
|
+
align,
|
|
128
|
+
sideOffset,
|
|
129
|
+
alignOffset,
|
|
130
|
+
collisionPadding,
|
|
131
|
+
collisionAvoidance,
|
|
132
|
+
backdrop,
|
|
133
|
+
inline,
|
|
134
|
+
className,
|
|
135
|
+
style,
|
|
136
|
+
...props
|
|
137
|
+
}: NavigationMenu.Viewport.Props): ReactElement;
|
|
138
|
+
/**
|
|
139
|
+
* A site navigation bar with flyout panels: a row of `Trigger`s and `Link`s, where each trigger reveals
|
|
140
|
+
* an elevated panel that slides in place as you move between items. Built on Base UI's NavigationMenu,
|
|
141
|
+
* so the bar is fully keyboard-operable (roving arrows across the bar, Enter/Space and Down to open and
|
|
142
|
+
* enter a panel, Home/End to the ends, Escape to close), RTL-aware, and the panel transitions respect
|
|
143
|
+
* `prefers-reduced-motion`.
|
|
144
|
+
*
|
|
145
|
+
* The bar reads like Tabs — muted text links that lift to a neutral ghost fill on hover/open/current
|
|
146
|
+
* (no accent chrome; the focus ring is the one accent use). Panels read like Menu — ghost-fill rows,
|
|
147
|
+
* two-line `Link`s (`LinkTitle` + `LinkDescription`), titled `Section`s, a `Separator`, and a pinned
|
|
148
|
+
* `Footer`.
|
|
149
|
+
*
|
|
150
|
+
* Compose from parts: `NavigationMenu.Root` owns the open value, `NavigationMenu.List` holds the
|
|
151
|
+
* `NavigationMenu.Item`s (each a `Trigger` + `Content`, or a single `Link`), and one
|
|
152
|
+
* `NavigationMenu.Viewport` — rendered after the list — is the elevated flyout the active panel teleports
|
|
153
|
+
* into. `NavigationMenu.Link` styles links in the bar and inside panels alike.
|
|
154
|
+
*
|
|
155
|
+
* Styling is precompiled in `navigation-menu.css`, keyed off each part's prefixed `data-slot`. Each part
|
|
156
|
+
* also carries the D12 `props()` escape hatch via `Object.assign` (e.g.
|
|
157
|
+
* `NavigationMenu.Link.props({ active })`), returning a spreadable
|
|
158
|
+
* `{ "data-slot": "noctis-navigation-menu-<part>", ...dataAttrs }` bag for a foreign element a
|
|
159
|
+
* `<NavigationMenu.*>` can't wrap.
|
|
160
|
+
*
|
|
161
|
+
* The runtime compound is a plain object (kept tree-shakeable); per-part prop and state types are
|
|
162
|
+
* exposed through the matching `NavigationMenu` namespace — e.g. `NavigationMenu.Link.Props`.
|
|
163
|
+
*/
|
|
164
|
+
declare const NavigationMenu: {
|
|
165
|
+
Root: typeof NavigationMenuRoot & {
|
|
166
|
+
props: typeof rootProps;
|
|
167
|
+
};
|
|
168
|
+
List: typeof NavigationMenuList & {
|
|
169
|
+
props: typeof listProps;
|
|
170
|
+
};
|
|
171
|
+
Item: typeof NavigationMenuItem & {
|
|
172
|
+
props: typeof itemProps;
|
|
173
|
+
};
|
|
174
|
+
Trigger: typeof NavigationMenuTrigger & {
|
|
175
|
+
props: typeof triggerProps;
|
|
176
|
+
};
|
|
177
|
+
Content: typeof NavigationMenuContent & {
|
|
178
|
+
props: typeof contentProps;
|
|
179
|
+
};
|
|
180
|
+
Link: typeof NavigationMenuLink & {
|
|
181
|
+
props: typeof linkProps;
|
|
182
|
+
};
|
|
183
|
+
LinkTitle: typeof NavigationMenuLinkTitle & {
|
|
184
|
+
props: typeof linkTitleProps;
|
|
185
|
+
};
|
|
186
|
+
LinkDescription: typeof NavigationMenuLinkDescription & {
|
|
187
|
+
props: typeof linkDescriptionProps;
|
|
188
|
+
};
|
|
189
|
+
Section: typeof NavigationMenuSection & {
|
|
190
|
+
props: typeof sectionProps;
|
|
191
|
+
};
|
|
192
|
+
SectionTitle: typeof NavigationMenuSectionTitle & {
|
|
193
|
+
props: typeof sectionTitleProps;
|
|
194
|
+
};
|
|
195
|
+
Separator: typeof NavigationMenuSeparator & {
|
|
196
|
+
props: typeof separatorProps;
|
|
197
|
+
};
|
|
198
|
+
Footer: typeof NavigationMenuFooter & {
|
|
199
|
+
props: typeof footerProps;
|
|
200
|
+
};
|
|
201
|
+
Viewport: typeof NavigationMenuViewport & {
|
|
202
|
+
props: typeof viewportProps;
|
|
203
|
+
};
|
|
204
|
+
};
|
|
205
|
+
/**
|
|
206
|
+
* Per-part prop and state types, mirroring Base UI's `Component.Part.Props` convention. Types-only — it
|
|
207
|
+
* emits no runtime code and merges with the `NavigationMenu` object above, so `NavigationMenu.Link` is
|
|
208
|
+
* the component value while `NavigationMenu.Link.Props` is its prop type.
|
|
209
|
+
*/
|
|
210
|
+
declare namespace NavigationMenu {
|
|
211
|
+
/** The spreadable data-attribute prop bag every `NavigationMenu.*.props()` returns (D12). */
|
|
212
|
+
type PartProps = NavigationMenuPartProps;
|
|
213
|
+
namespace Root {
|
|
214
|
+
type Props = navigation_menu_d_exports.NavigationMenu.Root.Props & {
|
|
215
|
+
/**
|
|
216
|
+
* The bar's control density — `md` for site nav, `sm` for a compact docs bar.
|
|
217
|
+
* @default "md"
|
|
218
|
+
*/
|
|
219
|
+
size?: "md" | "sm";
|
|
220
|
+
};
|
|
221
|
+
type State = navigation_menu_d_exports.NavigationMenu.Root.State;
|
|
222
|
+
/** Argument to the `NavigationMenu.Root.props(...)` escape-hatch helper. */
|
|
223
|
+
type PropsArgs = NavigationMenuRootPropsArgs;
|
|
224
|
+
}
|
|
225
|
+
namespace List {
|
|
226
|
+
type Props = navigation_menu_d_exports.NavigationMenu.List.Props;
|
|
227
|
+
type State = navigation_menu_d_exports.NavigationMenu.List.State;
|
|
228
|
+
}
|
|
229
|
+
namespace Item {
|
|
230
|
+
type Props = navigation_menu_d_exports.NavigationMenu.Item.Props;
|
|
231
|
+
type State = navigation_menu_d_exports.NavigationMenu.Item.State;
|
|
232
|
+
}
|
|
233
|
+
namespace Trigger {
|
|
234
|
+
type Props = navigation_menu_d_exports.NavigationMenu.Trigger.Props & {
|
|
235
|
+
/** Whether this trigger owns the current section — keeps the fill when its panel is closed. */current?: boolean;
|
|
236
|
+
};
|
|
237
|
+
type State = navigation_menu_d_exports.NavigationMenu.Trigger.State;
|
|
238
|
+
/** Argument to the `NavigationMenu.Trigger.props(...)` escape-hatch helper. */
|
|
239
|
+
type PropsArgs = NavigationMenuTriggerPropsArgs;
|
|
240
|
+
}
|
|
241
|
+
namespace Content {
|
|
242
|
+
type Props = navigation_menu_d_exports.NavigationMenu.Content.Props;
|
|
243
|
+
type State = navigation_menu_d_exports.NavigationMenu.Content.State;
|
|
244
|
+
}
|
|
245
|
+
namespace Link {
|
|
246
|
+
type Props = navigation_menu_d_exports.NavigationMenu.Link.Props & {
|
|
247
|
+
/** Whether this bar link owns the current section — keeps the fill when closed. */current?: boolean; /** Whether this link is disabled — dims it and sets `aria-disabled` (anchors can't natively disable). */
|
|
248
|
+
disabled?: boolean;
|
|
249
|
+
};
|
|
250
|
+
type State = navigation_menu_d_exports.NavigationMenu.Link.State;
|
|
251
|
+
/** Argument to the `NavigationMenu.Link.props(...)` escape-hatch helper. */
|
|
252
|
+
type PropsArgs = NavigationMenuLinkPropsArgs;
|
|
253
|
+
}
|
|
254
|
+
/** The bold first line of a two-line panel link. */
|
|
255
|
+
namespace LinkTitle {
|
|
256
|
+
type Props = ComponentProps<"span">;
|
|
257
|
+
}
|
|
258
|
+
/** The muted supporting line of a two-line panel link. */
|
|
259
|
+
namespace LinkDescription {
|
|
260
|
+
type Props = ComponentProps<"span">;
|
|
261
|
+
}
|
|
262
|
+
/** A titled column group inside a flyout panel. */
|
|
263
|
+
namespace Section {
|
|
264
|
+
type Props = ComponentProps<"div">;
|
|
265
|
+
}
|
|
266
|
+
/** A panel section's heading label. */
|
|
267
|
+
namespace SectionTitle {
|
|
268
|
+
type Props = ComponentProps<"div">;
|
|
269
|
+
}
|
|
270
|
+
/** A sharp divider between panel groups. */
|
|
271
|
+
namespace Separator {
|
|
272
|
+
type Props = ComponentProps<"hr">;
|
|
273
|
+
}
|
|
274
|
+
/** A panel's pinned "view all"/CTA row. */
|
|
275
|
+
namespace Footer {
|
|
276
|
+
type Props = ComponentProps<"div">;
|
|
277
|
+
}
|
|
278
|
+
namespace Viewport {
|
|
279
|
+
type Props = navigation_menu_d_exports.NavigationMenu.Popup.Props & {
|
|
280
|
+
/**
|
|
281
|
+
* Which side of the bar to open the flyout on.
|
|
282
|
+
* @default "bottom"
|
|
283
|
+
*/
|
|
284
|
+
side?: navigation_menu_d_exports.NavigationMenu.Positioner.Props["side"];
|
|
285
|
+
/**
|
|
286
|
+
* Alignment along that side, relative to the active trigger.
|
|
287
|
+
* @default "center"
|
|
288
|
+
*/
|
|
289
|
+
align?: navigation_menu_d_exports.NavigationMenu.Positioner.Props["align"];
|
|
290
|
+
/**
|
|
291
|
+
* Gap from the bar, in px.
|
|
292
|
+
* @default 8
|
|
293
|
+
*/
|
|
294
|
+
sideOffset?: number;
|
|
295
|
+
/**
|
|
296
|
+
* Offset along the alignment axis, in px (e.g. nudge a side-opening submenu up or down).
|
|
297
|
+
* @default 0
|
|
298
|
+
*/
|
|
299
|
+
alignOffset?: number;
|
|
300
|
+
/**
|
|
301
|
+
* Minimum space kept from the viewport edge when avoiding collisions, in px.
|
|
302
|
+
* @default 12
|
|
303
|
+
*/
|
|
304
|
+
collisionPadding?: navigation_menu_d_exports.NavigationMenu.Positioner.Props["collisionPadding"];
|
|
305
|
+
/**
|
|
306
|
+
* Collision strategy. Defaults to never flipping the flyout to the opposite side (the bar
|
|
307
|
+
* always opens downward); align still shifts to stay on-screen.
|
|
308
|
+
* @default { side: "none" }
|
|
309
|
+
*/
|
|
310
|
+
collisionAvoidance?: navigation_menu_d_exports.NavigationMenu.Positioner.Props["collisionAvoidance"];
|
|
311
|
+
/**
|
|
312
|
+
* Dim the page behind the open flyout — for full-bleed mega-panels.
|
|
313
|
+
* @default false
|
|
314
|
+
*/
|
|
315
|
+
backdrop?: boolean;
|
|
316
|
+
/**
|
|
317
|
+
* Render the viewport in place as a plain clipping window — no portal, positioner, or elevated
|
|
318
|
+
* popup — for a nested menu whose panels stay inside the current layout (e.g. a sidebar
|
|
319
|
+
* mega-panel). Position props are ignored.
|
|
320
|
+
* @default false
|
|
321
|
+
*/
|
|
322
|
+
inline?: boolean; /** Inline style merged with the popup's runtime CSS vars. */
|
|
323
|
+
style?: CSSProperties;
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
//#endregion
|
|
328
|
+
export { NavigationMenu };
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Icon } from "../../icons/icon.js";
|
|
3
|
+
import { ChevronDownIcon } from "../../icons/glyphs.js";
|
|
4
|
+
import { Surface } from "../surface/surface.js";
|
|
5
|
+
import { navigation_menu_exports } from "../../primitives/navigation-menu.js";
|
|
6
|
+
import { NAVIGATION_MENU_SLOTS } from "./navigation-menu.slots.js";
|
|
7
|
+
import { contentProps, footerProps, itemProps, linkDescriptionProps, linkProps, linkTitleProps, listProps, rootProps, sectionProps, sectionTitleProps, separatorProps, triggerProps, viewportProps } from "./navigation-menu.props.js";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
//#region src/components/navigation-menu/navigation-menu.tsx
|
|
10
|
+
/** Noctis hover-intent defaults — deliberate enough to kill the cross-item flicker Base UI's 50ms produces. */
|
|
11
|
+
const DEFAULT_DELAY = 150;
|
|
12
|
+
const DEFAULT_CLOSE_DELAY = 180;
|
|
13
|
+
/**
|
|
14
|
+
* Owns the open value and shares it across the bar. Wraps Base UI's NavigationMenu, which renders a
|
|
15
|
+
* `<nav>`. Works controlled (`value` + `onValueChange`) or uncontrolled (`defaultValue`). Carries a
|
|
16
|
+
* Noctis hover-intent `delay`/`closeDelay` (override per instance) and a `size` density knob (`md`
|
|
17
|
+
* site-nav default, `sm` compact). Compose a `NavigationMenu.List` of items with a single
|
|
18
|
+
* `NavigationMenu.Viewport`.
|
|
19
|
+
*/
|
|
20
|
+
function NavigationMenuRoot({ size = "md", orientation = "horizontal", delay = DEFAULT_DELAY, closeDelay = DEFAULT_CLOSE_DELAY, className, ...props }) {
|
|
21
|
+
return /* @__PURE__ */ jsx(navigation_menu_exports.NavigationMenu.Root, {
|
|
22
|
+
"data-slot": NAVIGATION_MENU_SLOTS.root,
|
|
23
|
+
"data-size": size,
|
|
24
|
+
"data-orientation": orientation,
|
|
25
|
+
orientation,
|
|
26
|
+
delay,
|
|
27
|
+
closeDelay,
|
|
28
|
+
className,
|
|
29
|
+
...props
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
/** Enabled bar items in roving order — triggers and direct bar links, skipping disabled ones. */
|
|
33
|
+
const BAR_ITEM_SELECTOR = "[data-slot='noctis-navigation-menu-trigger']:not([data-disabled]),[data-slot='noctis-navigation-menu-item'] > [data-slot='noctis-navigation-menu-link']:not([data-disabled])";
|
|
34
|
+
/**
|
|
35
|
+
* The bar of top-level items. Holds `NavigationMenu.Item`s; arrow keys move between them (roving
|
|
36
|
+
* focus). Base UI wires the arrows but not Home/End, so we layer those on (APG disclosure-navigation):
|
|
37
|
+
* Home/End jump to the first/last enabled bar item; the composite re-syncs off the newly focused item.
|
|
38
|
+
*/
|
|
39
|
+
function NavigationMenuList({ className, onKeyDown, ...props }) {
|
|
40
|
+
function handleKeyDown(event) {
|
|
41
|
+
onKeyDown?.(event);
|
|
42
|
+
if (event.defaultPrevented || event.key !== "Home" && event.key !== "End") return;
|
|
43
|
+
const items = event.currentTarget.querySelectorAll(BAR_ITEM_SELECTOR);
|
|
44
|
+
if (items.length === 0) return;
|
|
45
|
+
(event.key === "Home" ? items[0] : items[items.length - 1])?.focus();
|
|
46
|
+
event.preventDefault();
|
|
47
|
+
}
|
|
48
|
+
return /* @__PURE__ */ jsx(navigation_menu_exports.NavigationMenu.List, {
|
|
49
|
+
"data-slot": NAVIGATION_MENU_SLOTS.list,
|
|
50
|
+
className,
|
|
51
|
+
onKeyDown: handleKeyDown,
|
|
52
|
+
...props
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
/** One top-level entry — wrap a `Trigger` + `Content` for a flyout, or a single `Link` for a direct page. */
|
|
56
|
+
function NavigationMenuItem({ className, ...props }) {
|
|
57
|
+
return /* @__PURE__ */ jsx(navigation_menu_exports.NavigationMenu.Item, {
|
|
58
|
+
"data-slot": NAVIGATION_MENU_SLOTS.item,
|
|
59
|
+
className,
|
|
60
|
+
...props
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The control that opens an item's flyout — on hover (after the intent delay) and from the keyboard
|
|
65
|
+
* (Enter/Space, then Down to enter the panel). Carries a trailing chevron that rotates while the flyout
|
|
66
|
+
* is open. Mark it `current` to keep its fill when the section's page is the current one (the persistent
|
|
67
|
+
* "you are here" at the top level). Pair it with a `NavigationMenu.Content` inside the same `Item`.
|
|
68
|
+
*/
|
|
69
|
+
function NavigationMenuTrigger({ current, disabled, className, children, ...props }) {
|
|
70
|
+
return /* @__PURE__ */ jsxs(navigation_menu_exports.NavigationMenu.Trigger, {
|
|
71
|
+
"data-slot": NAVIGATION_MENU_SLOTS.trigger,
|
|
72
|
+
"data-current": current ? "" : void 0,
|
|
73
|
+
"data-disabled": disabled ? "" : void 0,
|
|
74
|
+
disabled,
|
|
75
|
+
className,
|
|
76
|
+
...props,
|
|
77
|
+
children: [children, /* @__PURE__ */ jsx(navigation_menu_exports.NavigationMenu.Icon, {
|
|
78
|
+
"data-slot": NAVIGATION_MENU_SLOTS.icon,
|
|
79
|
+
children: /* @__PURE__ */ jsx(Icon, {
|
|
80
|
+
icon: ChevronDownIcon,
|
|
81
|
+
size: "sm"
|
|
82
|
+
})
|
|
83
|
+
})]
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* The flyout panel for an item, moved into the shared `Viewport` while its trigger is active. Lay out
|
|
88
|
+
* its links and sections (`NavigationMenu.Section`/`Separator`/`Footer`) with logical Tailwind utilities
|
|
89
|
+
* at the call site; the panel itself carries the content padding and the cross-panel slide transition.
|
|
90
|
+
* Set `keepMounted` to keep the panel's links in the DOM when closed — recommended for site nav so
|
|
91
|
+
* crawlers can see them (Base UI defaults it `false`).
|
|
92
|
+
*/
|
|
93
|
+
function NavigationMenuContent({ className, ...props }) {
|
|
94
|
+
return /* @__PURE__ */ jsx(navigation_menu_exports.NavigationMenu.Content, {
|
|
95
|
+
"data-slot": NAVIGATION_MENU_SLOTS.content,
|
|
96
|
+
className,
|
|
97
|
+
...props
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* A navigation link — usable as a top-level bar entry or as a row inside a flyout panel. Mark the
|
|
102
|
+
* current page with `active` (sets `aria-current="page"`); mark a bar link as the current section with
|
|
103
|
+
* `current` (keeps the fill when closed). For SPA routing, pass `closeOnClick` to dismiss the panel on
|
|
104
|
+
* navigation. Compose your router's link via `render` (e.g.
|
|
105
|
+
* `<NavigationMenu.Link render={<NextLink href="/docs" />}>Docs</NavigationMenu.Link>`).
|
|
106
|
+
*/
|
|
107
|
+
function NavigationMenuLink({ current, disabled, className, onClick, onKeyDown, tabIndex, ...props }) {
|
|
108
|
+
return /* @__PURE__ */ jsx(navigation_menu_exports.NavigationMenu.Link, {
|
|
109
|
+
"data-slot": NAVIGATION_MENU_SLOTS.link,
|
|
110
|
+
"data-current": current ? "" : void 0,
|
|
111
|
+
"data-disabled": disabled ? "" : void 0,
|
|
112
|
+
"aria-disabled": disabled ? true : void 0,
|
|
113
|
+
tabIndex: disabled ? -1 : tabIndex,
|
|
114
|
+
onClick: (event) => {
|
|
115
|
+
if (disabled) {
|
|
116
|
+
event.preventDefault();
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
onClick?.(event);
|
|
120
|
+
},
|
|
121
|
+
onKeyDown: (event) => {
|
|
122
|
+
if (disabled && (event.key === "Enter" || event.key === " ")) {
|
|
123
|
+
event.preventDefault();
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
onKeyDown?.(event);
|
|
127
|
+
},
|
|
128
|
+
className,
|
|
129
|
+
...props
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
/** The bold first line of a two-line panel link — the link's label. Place inside a `NavigationMenu.Link`. */
|
|
133
|
+
function NavigationMenuLinkTitle({ className, ...props }) {
|
|
134
|
+
return /* @__PURE__ */ jsx("span", {
|
|
135
|
+
"data-slot": NAVIGATION_MENU_SLOTS.linkTitle,
|
|
136
|
+
className,
|
|
137
|
+
...props
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
/** The muted supporting line of a two-line panel link. Place inside a `NavigationMenu.Link`, after the title. */
|
|
141
|
+
function NavigationMenuLinkDescription({ className, ...props }) {
|
|
142
|
+
return /* @__PURE__ */ jsx("span", {
|
|
143
|
+
"data-slot": NAVIGATION_MENU_SLOTS.linkDescription,
|
|
144
|
+
className,
|
|
145
|
+
...props
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* A titled column group inside a flyout panel — the blessed mega-panel layout (cap each at the NN/G
|
|
150
|
+
* 3–5 groups, 7–9 links rule). Stack a `NavigationMenu.SectionTitle` over the section's `Link` rows;
|
|
151
|
+
* lay multiple sections out in a row/grid at the call site.
|
|
152
|
+
*/
|
|
153
|
+
function NavigationMenuSection({ className, ...props }) {
|
|
154
|
+
return /* @__PURE__ */ jsx("div", {
|
|
155
|
+
"data-slot": NAVIGATION_MENU_SLOTS.section,
|
|
156
|
+
className,
|
|
157
|
+
...props
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
/** A section's small heading label. Place as the first child of a `NavigationMenu.Section`. */
|
|
161
|
+
function NavigationMenuSectionTitle({ className, ...props }) {
|
|
162
|
+
return /* @__PURE__ */ jsx("div", {
|
|
163
|
+
"data-slot": NAVIGATION_MENU_SLOTS.sectionTitle,
|
|
164
|
+
className,
|
|
165
|
+
...props
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
/** A sharp 1px divider between panel groups (a native `<hr>`, implicitly a separator). */
|
|
169
|
+
function NavigationMenuSeparator({ className, ...props }) {
|
|
170
|
+
return /* @__PURE__ */ jsx("hr", {
|
|
171
|
+
"data-slot": NAVIGATION_MENU_SLOTS.separator,
|
|
172
|
+
className,
|
|
173
|
+
...props
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* A pinned "view all"/CTA row at a panel's end, set off by a hairline. Put the lead text first and the
|
|
178
|
+
* call-to-action `NavigationMenu.Link` last (it floats to the inline-end).
|
|
179
|
+
*/
|
|
180
|
+
function NavigationMenuFooter({ className, ...props }) {
|
|
181
|
+
return /* @__PURE__ */ jsx("div", {
|
|
182
|
+
"data-slot": NAVIGATION_MENU_SLOTS.footer,
|
|
183
|
+
className,
|
|
184
|
+
...props
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* The single floating flyout container — portaled, elevated, positioned against the active trigger, and
|
|
189
|
+
* animated. Render it once inside `Root`, after the `List`. Base UI teleports each open `Content` into
|
|
190
|
+
* it, so switching items slides the panel in place. The popup paint is the composed `<Surface
|
|
191
|
+
* elevation="menu">`; `data-elevation` lands on the portaled popup so the flyout re-derives its theme.
|
|
192
|
+
* Set `backdrop` to dim the page behind a full-bleed mega-panel.
|
|
193
|
+
*
|
|
194
|
+
* Set `inline` for a nested menu whose panels should stay inside the current layout (e.g. a sidebar
|
|
195
|
+
* mega-panel): the viewport renders in place as a plain clipping window — no portal, positioner, or
|
|
196
|
+
* elevated popup — so the outer flyout's card already provides the surface. Position props are ignored
|
|
197
|
+
* in this mode.
|
|
198
|
+
*/
|
|
199
|
+
function NavigationMenuViewport({ side = "bottom", align = "center", sideOffset = 8, alignOffset = 0, collisionPadding = 12, collisionAvoidance = { side: "none" }, backdrop = false, inline = false, className, style, ...props }) {
|
|
200
|
+
if (inline) return /* @__PURE__ */ jsx(navigation_menu_exports.NavigationMenu.Viewport, {
|
|
201
|
+
"data-slot": NAVIGATION_MENU_SLOTS.viewport,
|
|
202
|
+
className,
|
|
203
|
+
style
|
|
204
|
+
});
|
|
205
|
+
return /* @__PURE__ */ jsxs(navigation_menu_exports.NavigationMenu.Portal, { children: [backdrop ? /* @__PURE__ */ jsx(navigation_menu_exports.NavigationMenu.Backdrop, { "data-slot": NAVIGATION_MENU_SLOTS.backdrop }) : null, /* @__PURE__ */ jsx(navigation_menu_exports.NavigationMenu.Positioner, {
|
|
206
|
+
side,
|
|
207
|
+
align,
|
|
208
|
+
sideOffset,
|
|
209
|
+
alignOffset,
|
|
210
|
+
collisionPadding,
|
|
211
|
+
collisionAvoidance,
|
|
212
|
+
"data-slot": NAVIGATION_MENU_SLOTS.positioner,
|
|
213
|
+
children: /* @__PURE__ */ jsx(navigation_menu_exports.NavigationMenu.Popup, {
|
|
214
|
+
"data-slot": NAVIGATION_MENU_SLOTS.popup,
|
|
215
|
+
render: /* @__PURE__ */ jsx(Surface, {
|
|
216
|
+
elevation: "menu",
|
|
217
|
+
bordered: true,
|
|
218
|
+
shadow: "modal"
|
|
219
|
+
}),
|
|
220
|
+
style: {
|
|
221
|
+
transformOrigin: "var(--transform-origin)",
|
|
222
|
+
width: "var(--popup-width)",
|
|
223
|
+
height: "var(--popup-height)",
|
|
224
|
+
...style
|
|
225
|
+
},
|
|
226
|
+
className,
|
|
227
|
+
...props,
|
|
228
|
+
children: /* @__PURE__ */ jsx(navigation_menu_exports.NavigationMenu.Viewport, { "data-slot": NAVIGATION_MENU_SLOTS.viewport })
|
|
229
|
+
})
|
|
230
|
+
})] });
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* A site navigation bar with flyout panels: a row of `Trigger`s and `Link`s, where each trigger reveals
|
|
234
|
+
* an elevated panel that slides in place as you move between items. Built on Base UI's NavigationMenu,
|
|
235
|
+
* so the bar is fully keyboard-operable (roving arrows across the bar, Enter/Space and Down to open and
|
|
236
|
+
* enter a panel, Home/End to the ends, Escape to close), RTL-aware, and the panel transitions respect
|
|
237
|
+
* `prefers-reduced-motion`.
|
|
238
|
+
*
|
|
239
|
+
* The bar reads like Tabs — muted text links that lift to a neutral ghost fill on hover/open/current
|
|
240
|
+
* (no accent chrome; the focus ring is the one accent use). Panels read like Menu — ghost-fill rows,
|
|
241
|
+
* two-line `Link`s (`LinkTitle` + `LinkDescription`), titled `Section`s, a `Separator`, and a pinned
|
|
242
|
+
* `Footer`.
|
|
243
|
+
*
|
|
244
|
+
* Compose from parts: `NavigationMenu.Root` owns the open value, `NavigationMenu.List` holds the
|
|
245
|
+
* `NavigationMenu.Item`s (each a `Trigger` + `Content`, or a single `Link`), and one
|
|
246
|
+
* `NavigationMenu.Viewport` — rendered after the list — is the elevated flyout the active panel teleports
|
|
247
|
+
* into. `NavigationMenu.Link` styles links in the bar and inside panels alike.
|
|
248
|
+
*
|
|
249
|
+
* Styling is precompiled in `navigation-menu.css`, keyed off each part's prefixed `data-slot`. Each part
|
|
250
|
+
* also carries the D12 `props()` escape hatch via `Object.assign` (e.g.
|
|
251
|
+
* `NavigationMenu.Link.props({ active })`), returning a spreadable
|
|
252
|
+
* `{ "data-slot": "noctis-navigation-menu-<part>", ...dataAttrs }` bag for a foreign element a
|
|
253
|
+
* `<NavigationMenu.*>` can't wrap.
|
|
254
|
+
*
|
|
255
|
+
* The runtime compound is a plain object (kept tree-shakeable); per-part prop and state types are
|
|
256
|
+
* exposed through the matching `NavigationMenu` namespace — e.g. `NavigationMenu.Link.Props`.
|
|
257
|
+
*/
|
|
258
|
+
const NavigationMenu = {
|
|
259
|
+
Root: Object.assign(NavigationMenuRoot, { props: rootProps }),
|
|
260
|
+
List: Object.assign(NavigationMenuList, { props: listProps }),
|
|
261
|
+
Item: Object.assign(NavigationMenuItem, { props: itemProps }),
|
|
262
|
+
Trigger: Object.assign(NavigationMenuTrigger, { props: triggerProps }),
|
|
263
|
+
Content: Object.assign(NavigationMenuContent, { props: contentProps }),
|
|
264
|
+
Link: Object.assign(NavigationMenuLink, { props: linkProps }),
|
|
265
|
+
LinkTitle: Object.assign(NavigationMenuLinkTitle, { props: linkTitleProps }),
|
|
266
|
+
LinkDescription: Object.assign(NavigationMenuLinkDescription, { props: linkDescriptionProps }),
|
|
267
|
+
Section: Object.assign(NavigationMenuSection, { props: sectionProps }),
|
|
268
|
+
SectionTitle: Object.assign(NavigationMenuSectionTitle, { props: sectionTitleProps }),
|
|
269
|
+
Separator: Object.assign(NavigationMenuSeparator, { props: separatorProps }),
|
|
270
|
+
Footer: Object.assign(NavigationMenuFooter, { props: footerProps }),
|
|
271
|
+
Viewport: Object.assign(NavigationMenuViewport, { props: viewportProps })
|
|
272
|
+
};
|
|
273
|
+
//#endregion
|
|
274
|
+
export { NavigationMenu };
|