@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
package/README.md
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# @stridge/noctis
|
|
2
|
+
|
|
3
|
+
The Stridge design system, and the single package consumers install. It pairs Base UI
|
|
4
|
+
behavior with precompiled, **framework-neutral component CSS** on the semantic token layer, and
|
|
5
|
+
ships the authoring substrate every primitive builds on — the polymorphic `Primitive` base, the
|
|
6
|
+
`Surface` elevation primitive, render utilities, `Icon`, and the unified `NoctisProvider` (CSP +
|
|
7
|
+
theme + locale/direction). It re-exports the design tokens, theme engine, and i18n through
|
|
8
|
+
subpaths so apps depend on one package.
|
|
9
|
+
|
|
10
|
+
## Styling
|
|
11
|
+
|
|
12
|
+
Components are styled by hand-authored, per-component `.css` under `@layer noctis.components`,
|
|
13
|
+
keyed off `data-slot` — no styling framework required. Import the one stylesheet:
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
// app CSS entry
|
|
17
|
+
@import "@stridge/noctis/styles.css";
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Authoring _with Tailwind_ is optional. Tailwind users additionally import the utility bridge and
|
|
21
|
+
pull class helpers from the adapter subpath:
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
@import "@stridge/noctis/tailwind.css"; // mints bg-background-style utilities
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
```tsx
|
|
28
|
+
import { cn, tv } from "@stridge/noctis/tailwind";
|
|
29
|
+
import { Primitive } from "@stridge/noctis";
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Usage
|
|
33
|
+
|
|
34
|
+
```tsx
|
|
35
|
+
import { Button, Dialog, NoctisProvider } from "@stridge/noctis";
|
|
36
|
+
|
|
37
|
+
<NoctisProvider>
|
|
38
|
+
<Button>Save</Button>
|
|
39
|
+
</NoctisProvider>;
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Subpaths
|
|
43
|
+
|
|
44
|
+
- `@stridge/noctis` — components + authoring substrate (`Primitive`, `Surface`, `NoctisProvider`, `Icon`, …).
|
|
45
|
+
- `@stridge/noctis/props` — RSC-safe `*Props()` escape-hatch builders (no `"use client"` boundary).
|
|
46
|
+
- `@stridge/noctis/styles.css` — the precompiled component stylesheet.
|
|
47
|
+
- `@stridge/noctis/tailwind.css` — the optional Tailwind utility bridge.
|
|
48
|
+
- `@stridge/noctis/tailwind` — the optional Tailwind adapter (`cn`, `tv`).
|
|
49
|
+
- `@stridge/noctis/tokens` (+ `/react`) — re-exported `@stridge/noctis-design-tokens`.
|
|
50
|
+
- `@stridge/noctis/theme` (+ `/react`) — re-exported `@stridge/noctis-theme-engine`.
|
|
51
|
+
- `@stridge/noctis/i18n` (+ `/messages`) — re-exported `@stridge/noctis-intl` + the default catalog.
|
|
52
|
+
- `@stridge/noctis/primitives` (+ `/*`) — the generated Base UI primitive re-exports.
|
|
53
|
+
|
|
54
|
+
## Build & checks
|
|
55
|
+
|
|
56
|
+
`build` runs `tsdown` then `scripts/bundle-css.mjs`; `check:publish` runs `publint` + `size-limit`.
|
|
57
|
+
Component CSS is governed by stylelint.
|
|
58
|
+
|
|
59
|
+
The component authoring contract lives in [COMPONENTS.md](./COMPONENTS.md), the slot catalog in
|
|
60
|
+
[SLOTS.md](./SLOTS.md), and the repo-wide rules in [/AGENTS.md](../../AGENTS.md).
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
//#region \0rolldown/runtime.js
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __exportAll = (all, no_symbols) => {
|
|
7
|
+
let target = {};
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
13
|
+
return target;
|
|
14
|
+
};
|
|
15
|
+
var __copyProps = (to, from, except, desc) => {
|
|
16
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
17
|
+
key = keys[i];
|
|
18
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
19
|
+
get: ((k) => from[k]).bind(null, key),
|
|
20
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
return to;
|
|
24
|
+
};
|
|
25
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
26
|
+
//#endregion
|
|
27
|
+
export { __exportAll, __reExport };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { createContext, use } from "react";
|
|
3
|
+
//#region src/components/accordion/accordion.context.ts
|
|
4
|
+
const AccordionContext = createContext(null);
|
|
5
|
+
/** Provided by `Accordion.Root`; carries the shared size/level/landmark settings. */
|
|
6
|
+
const AccordionProvider = AccordionContext.Provider;
|
|
7
|
+
/**
|
|
8
|
+
* Read the stack settings, or `null` for a part rendered outside `Accordion.Root` (the escape-hatch
|
|
9
|
+
* `*.props()` path) — it never throws, so a bare part falls back to the component defaults.
|
|
10
|
+
*/
|
|
11
|
+
function useAccordionContext() {
|
|
12
|
+
return use(AccordionContext);
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { AccordionProvider, useAccordionContext };
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { accordion_d_exports } from "../../primitives/accordion.js";
|
|
2
|
+
import { AccordionPartProps, itemProps, panelProps, rootProps, triggerProps } from "./accordion.props.js";
|
|
3
|
+
import { AccordionLevel, AccordionSize } from "./accordion.types.js";
|
|
4
|
+
import { ReactElement, ReactNode } from "react";
|
|
5
|
+
|
|
6
|
+
//#region src/components/accordion/accordion.d.ts
|
|
7
|
+
/**
|
|
8
|
+
* Groups the accordion items and owns which are expanded. Works controlled (`value` + `onValueChange`)
|
|
9
|
+
* or uncontrolled (`defaultValue`); the value is the array of open item values. By default one item is
|
|
10
|
+
* open at a time — pass `multiple` to let several stay open together. The stack-wide settings live here:
|
|
11
|
+
* `size` (sm · md), the heading `level`, and whether panels keep their `region` landmark
|
|
12
|
+
* (`landmarkPanels`).
|
|
13
|
+
*
|
|
14
|
+
* Compose one `Accordion.Item` per section, each holding an `Accordion.Trigger` over an
|
|
15
|
+
* `Accordion.Panel`.
|
|
16
|
+
*/
|
|
17
|
+
declare function AccordionRoot({
|
|
18
|
+
size,
|
|
19
|
+
level,
|
|
20
|
+
landmarkPanels,
|
|
21
|
+
role,
|
|
22
|
+
className,
|
|
23
|
+
children,
|
|
24
|
+
...props
|
|
25
|
+
}: Accordion.Root.Props): ReactElement;
|
|
26
|
+
/**
|
|
27
|
+
* One collapsible section: a trigger over a panel. Pass `value` to control or initialise its open state
|
|
28
|
+
* from `Accordion.Root`; omit it and Base UI generates a stable one. The bare item carries only the
|
|
29
|
+
* hairline rule dividing it from the next — wrap the stack or pad the item with `className` to build a
|
|
30
|
+
* bordered or card layout. Base UI stamps the live `data-open`/`data-disabled`.
|
|
31
|
+
*/
|
|
32
|
+
declare function AccordionItem({
|
|
33
|
+
className,
|
|
34
|
+
children,
|
|
35
|
+
...props
|
|
36
|
+
}: Accordion.Item.Props): ReactElement;
|
|
37
|
+
/**
|
|
38
|
+
* The full-width button that expands and collapses its panel, wrapped in its own heading so the section
|
|
39
|
+
* sits at the right rank in the document outline. Renders an `<h{level}>` around the button — the Root's
|
|
40
|
+
* `level` (default `3`) unless this trigger overrides it. Base UI wires `aria-expanded` and
|
|
41
|
+
* `aria-controls`, the roving focus, and the `data-panel-open` the muted chevron rotates a half-turn off.
|
|
42
|
+
* Pass the label as children; the chevron is appended automatically.
|
|
43
|
+
*/
|
|
44
|
+
declare function AccordionTrigger({
|
|
45
|
+
level: levelOverride,
|
|
46
|
+
className,
|
|
47
|
+
children,
|
|
48
|
+
...props
|
|
49
|
+
}: Accordion.Trigger.Props): ReactElement;
|
|
50
|
+
/**
|
|
51
|
+
* The disclosed content for one item. Its height animates open and closed via Base UI's measured
|
|
52
|
+
* `--accordion-panel-height`, respecting `prefers-reduced-motion`. Base UI labels it `role="region"` by
|
|
53
|
+
* its trigger; a large stack auto-steps that back to `group` (per `Accordion.Root`'s `landmarkPanels`)
|
|
54
|
+
* so the landmark list stays useful. Keep it mounted while closed with `keepMounted`, or expose it to
|
|
55
|
+
* in-page find with `hiddenUntilFound`.
|
|
56
|
+
*/
|
|
57
|
+
declare function AccordionPanel({
|
|
58
|
+
className,
|
|
59
|
+
children,
|
|
60
|
+
role,
|
|
61
|
+
...props
|
|
62
|
+
}: Accordion.Panel.Props): ReactElement;
|
|
63
|
+
/**
|
|
64
|
+
* A stack of collapsible sections in the shadcn recipe: each item is a heading/trigger over a panel,
|
|
65
|
+
* divided from the next by a single hairline rule, with a medium-weight edge-aligned trigger and a muted
|
|
66
|
+
* chevron that rotates a half-turn as its panel expands. The accordion carries no chrome of its own —
|
|
67
|
+
* build a bordered or card layout by wrapping the stack and padding the items with `className`.
|
|
68
|
+
*
|
|
69
|
+
* Built on Base UI's Accordion, so the stack is fully keyboard-operable (arrows move between triggers,
|
|
70
|
+
* Home/End jump to the ends, Enter/Space toggle), RTL-aware, and the height animation respects
|
|
71
|
+
* `prefers-reduced-motion`. The look is set on `Accordion.Root`: `size` (sm · md), the heading `level`,
|
|
72
|
+
* and `landmarkPanels`.
|
|
73
|
+
*
|
|
74
|
+
* Compose from parts: `Accordion.Root` owns the open value(s); each `Accordion.Item` holds an
|
|
75
|
+
* `Accordion.Trigger` over an `Accordion.Panel`.
|
|
76
|
+
*
|
|
77
|
+
* The runtime compound is a plain object (kept tree-shakeable); per-part prop and state types are
|
|
78
|
+
* exposed through the matching `Accordion` namespace — e.g. `Accordion.Item.Props`.
|
|
79
|
+
*/
|
|
80
|
+
declare const Accordion: {
|
|
81
|
+
/** Owns the open value(s) and the stack-wide settings. `Accordion.Root.props()` → its spreadable prop bag. */Root: typeof AccordionRoot & {
|
|
82
|
+
props: typeof rootProps;
|
|
83
|
+
}; /** One collapsible section. `Accordion.Item.props({ open, disabled })` → its spreadable prop bag. */
|
|
84
|
+
Item: typeof AccordionItem & {
|
|
85
|
+
props: typeof itemProps;
|
|
86
|
+
}; /** The heading/toggle button. `Accordion.Trigger.props({ open, disabled })` → its spreadable prop bag. */
|
|
87
|
+
Trigger: typeof AccordionTrigger & {
|
|
88
|
+
props: typeof triggerProps;
|
|
89
|
+
}; /** The disclosed content. `Accordion.Panel.props({ open, disabled })` → its spreadable prop bag. */
|
|
90
|
+
Panel: typeof AccordionPanel & {
|
|
91
|
+
props: typeof panelProps;
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* Per-part prop and state types, mirroring Base UI's `Component.Part.Props` convention. Types-only —
|
|
96
|
+
* it emits no runtime code and merges with the `Accordion` object above, so `Accordion.Item` is the
|
|
97
|
+
* component value while `Accordion.Item.Props` is its prop type.
|
|
98
|
+
*/
|
|
99
|
+
declare namespace Accordion {
|
|
100
|
+
/** The spreadable data-attribute prop bag every `Accordion.*.props()` returns (D12). */
|
|
101
|
+
type PartProps = AccordionPartProps;
|
|
102
|
+
/** The trigger/content size. */
|
|
103
|
+
type Size = AccordionSize;
|
|
104
|
+
/** The heading rank. */
|
|
105
|
+
type Level = AccordionLevel;
|
|
106
|
+
namespace Root {
|
|
107
|
+
type Props = Omit<accordion_d_exports.Accordion.Root.Props, "className" | "children"> & {
|
|
108
|
+
/** The trigger and content size. Defaults to `md`. */size?: AccordionSize; /** The heading rank every `Accordion.Trigger` renders (overridable per trigger). Defaults to `3`. */
|
|
109
|
+
level?: AccordionLevel;
|
|
110
|
+
/**
|
|
111
|
+
* Force the panels' `region` landmark on or off. Defaults to auto — on for stacks of six or
|
|
112
|
+
* fewer expandable items, off (a plain `group`) above, per the APG landmark-flooding guidance.
|
|
113
|
+
*/
|
|
114
|
+
landmarkPanels?: boolean; /** The `Accordion.Item`s. */
|
|
115
|
+
children?: ReactNode; /** Classes merged onto the root. */
|
|
116
|
+
className?: string;
|
|
117
|
+
};
|
|
118
|
+
type State = accordion_d_exports.Accordion.Root.State;
|
|
119
|
+
}
|
|
120
|
+
namespace Item {
|
|
121
|
+
type Props = accordion_d_exports.Accordion.Item.Props;
|
|
122
|
+
type State = accordion_d_exports.Accordion.Item.State;
|
|
123
|
+
}
|
|
124
|
+
namespace Trigger {
|
|
125
|
+
type Props = accordion_d_exports.Accordion.Trigger.Props & {
|
|
126
|
+
/** Override the Root's heading rank for this trigger's heading alone. */level?: AccordionLevel;
|
|
127
|
+
};
|
|
128
|
+
type State = accordion_d_exports.Accordion.Trigger.State;
|
|
129
|
+
}
|
|
130
|
+
namespace Panel {
|
|
131
|
+
type Props = accordion_d_exports.Accordion.Panel.Props;
|
|
132
|
+
type State = accordion_d_exports.Accordion.Panel.State;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
//#endregion
|
|
136
|
+
export { Accordion };
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Icon } from "../../icons/icon.js";
|
|
3
|
+
import { ChevronDownIcon } from "../../icons/glyphs.js";
|
|
4
|
+
import { accordion_exports } from "../../primitives/accordion.js";
|
|
5
|
+
import { AccordionProvider, useAccordionContext } from "./accordion.context.js";
|
|
6
|
+
import { ACCORDION_SLOTS } from "./accordion.slots.js";
|
|
7
|
+
import { itemProps, panelProps, rootProps, triggerProps } from "./accordion.props.js";
|
|
8
|
+
import { Children, createElement } from "react";
|
|
9
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
+
//#region src/components/accordion/accordion.tsx
|
|
11
|
+
/** APG warns against more than six simultaneously-expandable landmark regions, so auto-drop past this. */
|
|
12
|
+
const LANDMARK_ITEM_LIMIT = 6;
|
|
13
|
+
/**
|
|
14
|
+
* Groups the accordion items and owns which are expanded. Works controlled (`value` + `onValueChange`)
|
|
15
|
+
* or uncontrolled (`defaultValue`); the value is the array of open item values. By default one item is
|
|
16
|
+
* open at a time — pass `multiple` to let several stay open together. The stack-wide settings live here:
|
|
17
|
+
* `size` (sm · md), the heading `level`, and whether panels keep their `region` landmark
|
|
18
|
+
* (`landmarkPanels`).
|
|
19
|
+
*
|
|
20
|
+
* Compose one `Accordion.Item` per section, each holding an `Accordion.Trigger` over an
|
|
21
|
+
* `Accordion.Panel`.
|
|
22
|
+
*/
|
|
23
|
+
function AccordionRoot({ size = "md", level = 3, landmarkPanels, role, className, children, ...props }) {
|
|
24
|
+
const nested = useAccordionContext() !== null;
|
|
25
|
+
const landmark = landmarkPanels ?? (!nested && Children.toArray(children).length <= LANDMARK_ITEM_LIMIT);
|
|
26
|
+
return /* @__PURE__ */ jsx(accordion_exports.Accordion.Root, {
|
|
27
|
+
"data-slot": ACCORDION_SLOTS.root,
|
|
28
|
+
"data-size": size,
|
|
29
|
+
role: role ?? "group",
|
|
30
|
+
className,
|
|
31
|
+
...props,
|
|
32
|
+
children: /* @__PURE__ */ jsx(AccordionProvider, {
|
|
33
|
+
value: {
|
|
34
|
+
size,
|
|
35
|
+
level,
|
|
36
|
+
landmark
|
|
37
|
+
},
|
|
38
|
+
children
|
|
39
|
+
})
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* One collapsible section: a trigger over a panel. Pass `value` to control or initialise its open state
|
|
44
|
+
* from `Accordion.Root`; omit it and Base UI generates a stable one. The bare item carries only the
|
|
45
|
+
* hairline rule dividing it from the next — wrap the stack or pad the item with `className` to build a
|
|
46
|
+
* bordered or card layout. Base UI stamps the live `data-open`/`data-disabled`.
|
|
47
|
+
*/
|
|
48
|
+
function AccordionItem({ className, children, ...props }) {
|
|
49
|
+
return /* @__PURE__ */ jsx(accordion_exports.Accordion.Item, {
|
|
50
|
+
"data-slot": ACCORDION_SLOTS.item,
|
|
51
|
+
className,
|
|
52
|
+
...props,
|
|
53
|
+
children
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* The full-width button that expands and collapses its panel, wrapped in its own heading so the section
|
|
58
|
+
* sits at the right rank in the document outline. Renders an `<h{level}>` around the button — the Root's
|
|
59
|
+
* `level` (default `3`) unless this trigger overrides it. Base UI wires `aria-expanded` and
|
|
60
|
+
* `aria-controls`, the roving focus, and the `data-panel-open` the muted chevron rotates a half-turn off.
|
|
61
|
+
* Pass the label as children; the chevron is appended automatically.
|
|
62
|
+
*/
|
|
63
|
+
function AccordionTrigger({ level: levelOverride, className, children, ...props }) {
|
|
64
|
+
const context = useAccordionContext();
|
|
65
|
+
const level = levelOverride ?? context?.level ?? 3;
|
|
66
|
+
return /* @__PURE__ */ jsx(accordion_exports.Accordion.Header, {
|
|
67
|
+
"data-slot": ACCORDION_SLOTS.header,
|
|
68
|
+
render: createElement(`h${level}`),
|
|
69
|
+
children: /* @__PURE__ */ jsxs(accordion_exports.Accordion.Trigger, {
|
|
70
|
+
"data-slot": ACCORDION_SLOTS.trigger,
|
|
71
|
+
className,
|
|
72
|
+
...props,
|
|
73
|
+
children: [children, /* @__PURE__ */ jsx("span", {
|
|
74
|
+
"data-slot": ACCORDION_SLOTS.triggerIcon,
|
|
75
|
+
"aria-hidden": true,
|
|
76
|
+
children: /* @__PURE__ */ jsx(Icon, {
|
|
77
|
+
icon: ChevronDownIcon,
|
|
78
|
+
directional: true
|
|
79
|
+
})
|
|
80
|
+
})]
|
|
81
|
+
})
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* The disclosed content for one item. Its height animates open and closed via Base UI's measured
|
|
86
|
+
* `--accordion-panel-height`, respecting `prefers-reduced-motion`. Base UI labels it `role="region"` by
|
|
87
|
+
* its trigger; a large stack auto-steps that back to `group` (per `Accordion.Root`'s `landmarkPanels`)
|
|
88
|
+
* so the landmark list stays useful. Keep it mounted while closed with `keepMounted`, or expose it to
|
|
89
|
+
* in-page find with `hiddenUntilFound`.
|
|
90
|
+
*/
|
|
91
|
+
function AccordionPanel({ className, children, role, ...props }) {
|
|
92
|
+
const landmark = useAccordionContext()?.landmark ?? true;
|
|
93
|
+
return /* @__PURE__ */ jsx(accordion_exports.Accordion.Panel, {
|
|
94
|
+
"data-slot": ACCORDION_SLOTS.panel,
|
|
95
|
+
role: role ?? (landmark ? "region" : "group"),
|
|
96
|
+
className,
|
|
97
|
+
...props,
|
|
98
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
99
|
+
"data-slot": ACCORDION_SLOTS.panelContent,
|
|
100
|
+
children
|
|
101
|
+
})
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* A stack of collapsible sections in the shadcn recipe: each item is a heading/trigger over a panel,
|
|
106
|
+
* divided from the next by a single hairline rule, with a medium-weight edge-aligned trigger and a muted
|
|
107
|
+
* chevron that rotates a half-turn as its panel expands. The accordion carries no chrome of its own —
|
|
108
|
+
* build a bordered or card layout by wrapping the stack and padding the items with `className`.
|
|
109
|
+
*
|
|
110
|
+
* Built on Base UI's Accordion, so the stack is fully keyboard-operable (arrows move between triggers,
|
|
111
|
+
* Home/End jump to the ends, Enter/Space toggle), RTL-aware, and the height animation respects
|
|
112
|
+
* `prefers-reduced-motion`. The look is set on `Accordion.Root`: `size` (sm · md), the heading `level`,
|
|
113
|
+
* and `landmarkPanels`.
|
|
114
|
+
*
|
|
115
|
+
* Compose from parts: `Accordion.Root` owns the open value(s); each `Accordion.Item` holds an
|
|
116
|
+
* `Accordion.Trigger` over an `Accordion.Panel`.
|
|
117
|
+
*
|
|
118
|
+
* The runtime compound is a plain object (kept tree-shakeable); per-part prop and state types are
|
|
119
|
+
* exposed through the matching `Accordion` namespace — e.g. `Accordion.Item.Props`.
|
|
120
|
+
*/
|
|
121
|
+
const Accordion = {
|
|
122
|
+
/** Owns the open value(s) and the stack-wide settings. `Accordion.Root.props()` → its spreadable prop bag. */
|
|
123
|
+
Root: Object.assign(AccordionRoot, { props: rootProps }),
|
|
124
|
+
/** One collapsible section. `Accordion.Item.props({ open, disabled })` → its spreadable prop bag. */
|
|
125
|
+
Item: Object.assign(AccordionItem, { props: itemProps }),
|
|
126
|
+
/** The heading/toggle button. `Accordion.Trigger.props({ open, disabled })` → its spreadable prop bag. */
|
|
127
|
+
Trigger: Object.assign(AccordionTrigger, { props: triggerProps }),
|
|
128
|
+
/** The disclosed content. `Accordion.Panel.props({ open, disabled })` → its spreadable prop bag. */
|
|
129
|
+
Panel: Object.assign(AccordionPanel, { props: panelProps })
|
|
130
|
+
};
|
|
131
|
+
//#endregion
|
|
132
|
+
export { Accordion };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
//#region src/components/accordion/accordion.props.d.ts
|
|
2
|
+
/** A spreadable data-attribute prop bag — the shape every `Accordion.*.props()` returns. */
|
|
3
|
+
type AccordionPartProps = {
|
|
4
|
+
/** The slot value the matching `accordion.css` rules anchor on. */"data-slot": string; /** Forwarded verbatim — styling is attribute-driven, so this is an optional consumer passthrough. */
|
|
5
|
+
className?: string; /** A data-attribute present (empty string) or absent (`undefined`); never `false`. */
|
|
6
|
+
[attr: `data-${string}`]: string | undefined;
|
|
7
|
+
};
|
|
8
|
+
/** Common shape: every part's `.props()` accepts an optional `className` passthrough. */
|
|
9
|
+
interface BasePropsArgs {
|
|
10
|
+
/** Forwarded verbatim onto the returned prop bag. */
|
|
11
|
+
className?: string;
|
|
12
|
+
}
|
|
13
|
+
/** Argument to the open/disabled-aware part helpers — the per-item state the CSS keys its look off. */
|
|
14
|
+
interface AccordionStatePropsArgs extends BasePropsArgs {
|
|
15
|
+
/** Whether this item is expanded (drives the chevron rotation and panel reveal via `data-open`). */
|
|
16
|
+
open?: boolean;
|
|
17
|
+
/** Whether this item is disabled (drives the not-allowed affordance via `data-disabled`). */
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
}
|
|
20
|
+
/** Argument to a stateless part's `.props(...)` — no state of its own. */
|
|
21
|
+
type AccordionStatelessPropsArgs = BasePropsArgs;
|
|
22
|
+
/** Root prop bag: just the slot anchor (the stack metrics flow from it). */
|
|
23
|
+
declare function rootProps({
|
|
24
|
+
className
|
|
25
|
+
}?: AccordionStatelessPropsArgs): AccordionPartProps;
|
|
26
|
+
/** Item prop bag: slot anchor plus the `data-open`/`data-disabled` state. */
|
|
27
|
+
declare function itemProps({
|
|
28
|
+
open,
|
|
29
|
+
disabled,
|
|
30
|
+
className
|
|
31
|
+
}?: AccordionStatePropsArgs): AccordionPartProps;
|
|
32
|
+
/** Trigger prop bag: slot anchor plus the `data-panel-open`/`data-disabled` state. */
|
|
33
|
+
declare function triggerProps({
|
|
34
|
+
open,
|
|
35
|
+
disabled,
|
|
36
|
+
className
|
|
37
|
+
}?: AccordionStatePropsArgs): AccordionPartProps;
|
|
38
|
+
/** Panel prop bag: slot anchor plus the `data-open`/`data-disabled` state. */
|
|
39
|
+
declare function panelProps({
|
|
40
|
+
open,
|
|
41
|
+
disabled,
|
|
42
|
+
className
|
|
43
|
+
}?: AccordionStatePropsArgs): AccordionPartProps;
|
|
44
|
+
//#endregion
|
|
45
|
+
export { AccordionPartProps, itemProps, panelProps, rootProps, triggerProps };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { ACCORDION_SLOTS } from "./accordion.slots.js";
|
|
2
|
+
//#region src/components/accordion/accordion.props.ts
|
|
3
|
+
/**
|
|
4
|
+
* The D12 unified variant contract for Accordion — a spreadable, data-attribute-native prop bag per
|
|
5
|
+
* part. Each compound part exposes a `props(...)` builder returning `{ "data-slot":
|
|
6
|
+
* "noctis-accordion-<part>", ...dataAttrs }`, so spreading a part's `props()` onto a *foreign* element
|
|
7
|
+
* styles it as that part (the precompiled `accordion.css` keys every rule off the slot the bag
|
|
8
|
+
* carries):
|
|
9
|
+
*
|
|
10
|
+
* <button {...Accordion.Trigger.props({ open: true })}>Shipping</button>
|
|
11
|
+
* // → <button data-slot="noctis-accordion-trigger" data-panel-open="">
|
|
12
|
+
*
|
|
13
|
+
* Boolean state is a bare flag — present (`""`) when on, absent (`undefined`) when off — never `false`.
|
|
14
|
+
* The bag carries no className; an optional `className` passthrough is accepted and forwarded verbatim.
|
|
15
|
+
* The same variant→data-attribute→values mapping is emitted as data from the token graph
|
|
16
|
+
* (`generated/declarations.json`) so non-React / agent consumers can hand-write the markup.
|
|
17
|
+
*/
|
|
18
|
+
/** Stamp a boolean state as a bare data-attribute: present (`""`) when on, absent (`undefined`) when off. */
|
|
19
|
+
const flag = (on) => on ? "" : void 0;
|
|
20
|
+
const withClassName = (bag, className) => className === void 0 ? bag : {
|
|
21
|
+
...bag,
|
|
22
|
+
className
|
|
23
|
+
};
|
|
24
|
+
/** Root prop bag: just the slot anchor (the stack metrics flow from it). */
|
|
25
|
+
function rootProps({ className } = {}) {
|
|
26
|
+
return withClassName({ "data-slot": ACCORDION_SLOTS.root }, className);
|
|
27
|
+
}
|
|
28
|
+
/** Item prop bag: slot anchor plus the `data-open`/`data-disabled` state. */
|
|
29
|
+
function itemProps({ open, disabled, className } = {}) {
|
|
30
|
+
return withClassName({
|
|
31
|
+
"data-slot": ACCORDION_SLOTS.item,
|
|
32
|
+
"data-open": flag(open),
|
|
33
|
+
"data-disabled": flag(disabled)
|
|
34
|
+
}, className);
|
|
35
|
+
}
|
|
36
|
+
/** Trigger prop bag: slot anchor plus the `data-panel-open`/`data-disabled` state. */
|
|
37
|
+
function triggerProps({ open, disabled, className } = {}) {
|
|
38
|
+
return withClassName({
|
|
39
|
+
"data-slot": ACCORDION_SLOTS.trigger,
|
|
40
|
+
"data-panel-open": flag(open),
|
|
41
|
+
"data-disabled": flag(disabled)
|
|
42
|
+
}, className);
|
|
43
|
+
}
|
|
44
|
+
/** Panel prop bag: slot anchor plus the `data-open`/`data-disabled` state. */
|
|
45
|
+
function panelProps({ open, disabled, className } = {}) {
|
|
46
|
+
return withClassName({
|
|
47
|
+
"data-slot": ACCORDION_SLOTS.panel,
|
|
48
|
+
"data-open": flag(open),
|
|
49
|
+
"data-disabled": flag(disabled)
|
|
50
|
+
}, className);
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
53
|
+
export { itemProps, panelProps, rootProps, triggerProps };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
//#region src/components/accordion/accordion.slots.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* The `data-*` hooks `Accordion` stamps on its parts, for host-side styling and tests. Slot values
|
|
4
|
+
* mark each rendered element; the state attributes are emitted by Base UI's Accordion — pair a slot
|
|
5
|
+
* with a state to target, say, only the open item's trigger.
|
|
6
|
+
*/
|
|
7
|
+
declare enum AccordionDataAttributes {
|
|
8
|
+
/** The slot name on every rendered part. */
|
|
9
|
+
slot = "data-slot",
|
|
10
|
+
/** Present on the item, header, and panel while that item is expanded. */
|
|
11
|
+
open = "data-open",
|
|
12
|
+
/** Present on the trigger while its panel is expanded. */
|
|
13
|
+
panelOpen = "data-panel-open",
|
|
14
|
+
/** Present on a disabled item, header, trigger, and panel. */
|
|
15
|
+
disabled = "data-disabled",
|
|
16
|
+
/** The item's zero-based position in the stack. */
|
|
17
|
+
index = "data-index",
|
|
18
|
+
/** `horizontal` | `vertical` — the accordion's orientation. */
|
|
19
|
+
orientation = "data-orientation",
|
|
20
|
+
/** The transition phase of the panel — present while it animates open or closed. */
|
|
21
|
+
startingStyle = "data-starting-style"
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
export { AccordionDataAttributes };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
//#region src/components/accordion/accordion.slots.ts
|
|
2
|
+
/**
|
|
3
|
+
* The slot vocabulary every `Accordion` part stamps as its `data-slot`. The authored source the
|
|
4
|
+
* orchestration file reads from, kebab-cased `{component}-{part}`; SLOTS.md still generates from the
|
|
5
|
+
* token-graph declarations, so keep this in lockstep with the declaration's `anatomy`.
|
|
6
|
+
*/
|
|
7
|
+
const ACCORDION_SLOTS = {
|
|
8
|
+
root: "noctis-accordion",
|
|
9
|
+
item: "noctis-accordion-item",
|
|
10
|
+
header: "noctis-accordion-header",
|
|
11
|
+
trigger: "noctis-accordion-trigger",
|
|
12
|
+
triggerIcon: "noctis-accordion-trigger-icon",
|
|
13
|
+
panel: "noctis-accordion-panel",
|
|
14
|
+
panelContent: "noctis-accordion-panel-content"
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* The `data-*` hooks `Accordion` stamps on its parts, for host-side styling and tests. Slot values
|
|
18
|
+
* mark each rendered element; the state attributes are emitted by Base UI's Accordion — pair a slot
|
|
19
|
+
* with a state to target, say, only the open item's trigger.
|
|
20
|
+
*/
|
|
21
|
+
let AccordionDataAttributes = /* @__PURE__ */ function(AccordionDataAttributes) {
|
|
22
|
+
/** The slot name on every rendered part. */
|
|
23
|
+
AccordionDataAttributes["slot"] = "data-slot";
|
|
24
|
+
/** Present on the item, header, and panel while that item is expanded. */
|
|
25
|
+
AccordionDataAttributes["open"] = "data-open";
|
|
26
|
+
/** Present on the trigger while its panel is expanded. */
|
|
27
|
+
AccordionDataAttributes["panelOpen"] = "data-panel-open";
|
|
28
|
+
/** Present on a disabled item, header, trigger, and panel. */
|
|
29
|
+
AccordionDataAttributes["disabled"] = "data-disabled";
|
|
30
|
+
/** The item's zero-based position in the stack. */
|
|
31
|
+
AccordionDataAttributes["index"] = "data-index";
|
|
32
|
+
/** `horizontal` | `vertical` — the accordion's orientation. */
|
|
33
|
+
AccordionDataAttributes["orientation"] = "data-orientation";
|
|
34
|
+
/** The transition phase of the panel — present while it animates open or closed. */
|
|
35
|
+
AccordionDataAttributes["startingStyle"] = "data-starting-style";
|
|
36
|
+
return AccordionDataAttributes;
|
|
37
|
+
}({});
|
|
38
|
+
//#endregion
|
|
39
|
+
export { ACCORDION_SLOTS, AccordionDataAttributes };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
//#region src/components/accordion/accordion.types.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Shared, runtime-free Accordion option types. Kept in their own module so the orchestration, props,
|
|
4
|
+
* and context files import one shape without a cycle through `accordion.tsx`.
|
|
5
|
+
*/
|
|
6
|
+
/** Control density of the trigger rows and panel content — `sm` (compact) or `md` (default, comfortable). */
|
|
7
|
+
type AccordionSize = "sm" | "md";
|
|
8
|
+
/** The heading rank the trigger's heading renders. Defaults to `3`; set it so the stack nests correctly in the outline. */
|
|
9
|
+
type AccordionLevel = 2 | 3 | 4 | 5 | 6;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { AccordionLevel, AccordionSize };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { createContext, use } from "react";
|
|
3
|
+
//#region src/components/alert-dialog/alert-dialog.context.ts
|
|
4
|
+
const AlertDialogContext = createContext(null);
|
|
5
|
+
AlertDialogContext.displayName = "AlertDialogContext";
|
|
6
|
+
/**
|
|
7
|
+
* Reads the nearest `AlertDialog` context, throwing a part-named error when used outside an
|
|
8
|
+
* `AlertDialog.Root`. `use()` (not `useContext`) per the React 19 substrate convention.
|
|
9
|
+
*/
|
|
10
|
+
function useAlertDialogContext(part) {
|
|
11
|
+
const value = use(AlertDialogContext);
|
|
12
|
+
if (value === null) throw new Error(`AlertDialog.${part} must be rendered inside an AlertDialog.Root.`);
|
|
13
|
+
return value;
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export { AlertDialogContext, useAlertDialogContext };
|