@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,314 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Icon } from "../../icons/icon.js";
|
|
3
|
+
import { CheckIcon, ChevronDownIcon, ChevronUpIcon, ChevronsUpDownIcon } from "../../icons/glyphs.js";
|
|
4
|
+
import { useNoctisStringFormatter } from "../../core/use-injected-labels.js";
|
|
5
|
+
import { Surface } from "../surface/surface.js";
|
|
6
|
+
import { select_exports } from "../../primitives/select.js";
|
|
7
|
+
import { SelectContextProvider, useSelectContext } from "./select.context.js";
|
|
8
|
+
import { SELECT_SLOTS } from "./select.slots.js";
|
|
9
|
+
import { backdropProps, groupLabelProps, groupProps, iconProps, itemDescriptionProps, itemIconProps, itemIndicatorProps, itemProps, itemTextProps, listProps, popupProps, scrollDownArrowProps, scrollUpArrowProps, separatorProps, triggerProps, valueProps } from "./select.props.js";
|
|
10
|
+
import clsx$1 from "clsx";
|
|
11
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
|
+
//#region src/components/select/select.tsx
|
|
13
|
+
/**
|
|
14
|
+
* Owns the selected value and open state, sharing the control `size` (plus the `multiple` and `invalid`
|
|
15
|
+
* flags) with the trigger and rows. Wraps Base UI's Select. Pass `value`/`defaultValue` and
|
|
16
|
+
* `onValueChange` to control the selection, `items` to let `Select.Value` render a chosen item's label
|
|
17
|
+
* instead of its raw value, and `multiple` for a multi-select (the trigger then reads "N selected").
|
|
18
|
+
* `readOnly`, `required`, `disabled`, and `name` pass straight through to Base UI; `invalid` is an
|
|
19
|
+
* additive shell override (a `Field.Root` that turns invalid already marks the trigger). `modal`
|
|
20
|
+
* defaults to `false` so the page keeps scrolling while the popup is open — set it `true`
|
|
21
|
+
* to lock page scroll and render the `Backdrop`.
|
|
22
|
+
*/
|
|
23
|
+
function SelectRoot({ size = "md", invalid = false, modal = false, children, ...props }) {
|
|
24
|
+
return /* @__PURE__ */ jsx(SelectContextProvider, {
|
|
25
|
+
value: {
|
|
26
|
+
size,
|
|
27
|
+
multiple: props.multiple === true,
|
|
28
|
+
invalid,
|
|
29
|
+
modal
|
|
30
|
+
},
|
|
31
|
+
children: /* @__PURE__ */ jsx(select_exports.Select.Root, {
|
|
32
|
+
modal,
|
|
33
|
+
...props,
|
|
34
|
+
children
|
|
35
|
+
})
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The field-shaped control that opens the popup. Wears the field look (surface, hairline border, calm
|
|
40
|
+
* ring-less focus — the accent border lights on focus) and pairs a `Select.Value` with a
|
|
41
|
+
* trailing chevron; reads the root's `size` to size itself and the root's `invalid` to paint the danger
|
|
42
|
+
* border. Base UI stamps `data-disabled`/`data-readonly` for the disabled/read-only chrome.
|
|
43
|
+
*/
|
|
44
|
+
function SelectTrigger({ className, children, ...props }) {
|
|
45
|
+
const { size, invalid } = useSelectContext("Trigger");
|
|
46
|
+
return /* @__PURE__ */ jsx(select_exports.Select.Trigger, {
|
|
47
|
+
"data-slot": SELECT_SLOTS.trigger,
|
|
48
|
+
"data-size": size,
|
|
49
|
+
...invalid ? { "data-invalid": "" } : {},
|
|
50
|
+
className: clsx$1(className),
|
|
51
|
+
...props,
|
|
52
|
+
children
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Renders the selected item's label inside the trigger, falling back to `placeholder` when nothing is
|
|
57
|
+
* selected. Pass `items` on `Select.Root` (or a formatting child function) to map a raw value to a
|
|
58
|
+
* label. Under a `multiple` root it renders a localized "N selected" summary instead — pass a child
|
|
59
|
+
* function to override the trigger display entirely (e.g. mirror the chosen row's leading glyph).
|
|
60
|
+
*/
|
|
61
|
+
function SelectValue({ className, children, placeholder, ...props }) {
|
|
62
|
+
const { multiple } = useSelectContext("Value");
|
|
63
|
+
const formatter = useNoctisStringFormatter();
|
|
64
|
+
const render = children === void 0 && multiple ? (value) => {
|
|
65
|
+
const count = Array.isArray(value) ? value.length : 0;
|
|
66
|
+
return count > 0 ? formatter.format("select.selectedCount", { count }) : placeholder ?? null;
|
|
67
|
+
} : children;
|
|
68
|
+
return /* @__PURE__ */ jsx(select_exports.Select.Value, {
|
|
69
|
+
"data-slot": SELECT_SLOTS.value,
|
|
70
|
+
placeholder,
|
|
71
|
+
className: clsx$1(className),
|
|
72
|
+
...props,
|
|
73
|
+
children: render
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
/** The trailing chevron on the trigger — a vertical double-chevron marking the control as a select. */
|
|
77
|
+
function SelectIcon({ className, children, ...props }) {
|
|
78
|
+
return /* @__PURE__ */ jsx(select_exports.Select.Icon, {
|
|
79
|
+
"data-slot": SELECT_SLOTS.icon,
|
|
80
|
+
className: clsx$1(className),
|
|
81
|
+
...props,
|
|
82
|
+
children: children ?? /* @__PURE__ */ jsx(Icon, {
|
|
83
|
+
icon: ChevronsUpDownIcon,
|
|
84
|
+
size: "sm"
|
|
85
|
+
})
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* The modal scrim painted beneath the popup. Auto-rendered inside `Select.Popup` while the select is
|
|
90
|
+
* `modal` (the default); transparent by default so the page is not dimmed, it still
|
|
91
|
+
* captures outside clicks. Re-point `--noctis-select-backdrop-background-color` to a scrim role to dim.
|
|
92
|
+
*/
|
|
93
|
+
function SelectBackdrop({ className, ...props }) {
|
|
94
|
+
return /* @__PURE__ */ jsx(select_exports.Select.Backdrop, {
|
|
95
|
+
"data-slot": SELECT_SLOTS.backdrop,
|
|
96
|
+
className: clsx$1(className),
|
|
97
|
+
...props
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* The floating listbox — portaled, elevated through `<Surface>`, and animated — holding the items,
|
|
102
|
+
* groups, and separators. Opens aligned to the trigger and caps at the available viewport height,
|
|
103
|
+
* scrolling its list while keeping the keyboard highlight in view. By default it overlaps the trigger so
|
|
104
|
+
* the selected row lines up with the trigger's value (the "overlay" variant); pass
|
|
105
|
+
* `alignItemWithTrigger={false}` to open below the trigger instead (the "below" variant). Auto-renders
|
|
106
|
+
* the modal `Backdrop` (while modal), the sticky scroll arrows, and the scrollable `List` for you.
|
|
107
|
+
*/
|
|
108
|
+
function SelectPopup({ side = "bottom", align = "start", sideOffset = 6, alignItemWithTrigger = true, collisionPadding = 8, className, style, children, ...props }) {
|
|
109
|
+
const { modal } = useSelectContext("Popup");
|
|
110
|
+
return /* @__PURE__ */ jsxs(select_exports.Select.Portal, { children: [modal ? /* @__PURE__ */ jsx(SelectBackdrop, {}) : null, /* @__PURE__ */ jsx(select_exports.Select.Positioner, {
|
|
111
|
+
side,
|
|
112
|
+
align,
|
|
113
|
+
sideOffset,
|
|
114
|
+
alignItemWithTrigger,
|
|
115
|
+
collisionPadding,
|
|
116
|
+
"data-slot": SELECT_SLOTS.positioner,
|
|
117
|
+
children: /* @__PURE__ */ jsxs(select_exports.Select.Popup, {
|
|
118
|
+
"data-slot": SELECT_SLOTS.popup,
|
|
119
|
+
render: /* @__PURE__ */ jsx(Surface, {
|
|
120
|
+
elevation: "elevated",
|
|
121
|
+
bordered: true,
|
|
122
|
+
shadow: "popover"
|
|
123
|
+
}),
|
|
124
|
+
style: {
|
|
125
|
+
transformOrigin: "var(--transform-origin)",
|
|
126
|
+
maxHeight: "var(--available-height)",
|
|
127
|
+
minInlineSize: "max(var(--_select-popup-min-width), calc(var(--anchor-width) + var(--_select-popup-overlay-inset, 0px)))",
|
|
128
|
+
maxInlineSize: "min(var(--_select-popup-max-width), var(--available-width))",
|
|
129
|
+
...style
|
|
130
|
+
},
|
|
131
|
+
className: clsx$1(className),
|
|
132
|
+
...props,
|
|
133
|
+
children: [
|
|
134
|
+
/* @__PURE__ */ jsx(SelectScrollUpArrow, {}),
|
|
135
|
+
/* @__PURE__ */ jsx(SelectList, { children }),
|
|
136
|
+
/* @__PURE__ */ jsx(SelectScrollDownArrow, {})
|
|
137
|
+
]
|
|
138
|
+
})
|
|
139
|
+
})] });
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* The sticky strip pinned to the popup's top edge that scrolls the list up on hover — a pointer
|
|
143
|
+
* affordance only (it never renders for touch, and keyboard nav scrolls via the arrow keys), so it is
|
|
144
|
+
* `aria-hidden`. Rendered for you inside `Select.Popup`; appears only while the list can scroll up.
|
|
145
|
+
*/
|
|
146
|
+
function SelectScrollUpArrow({ className, children, ...props }) {
|
|
147
|
+
return /* @__PURE__ */ jsx(select_exports.Select.ScrollUpArrow, {
|
|
148
|
+
"aria-hidden": true,
|
|
149
|
+
"data-slot": SELECT_SLOTS.scrollUpArrow,
|
|
150
|
+
className: clsx$1(className),
|
|
151
|
+
...props,
|
|
152
|
+
children: children ?? /* @__PURE__ */ jsx(Icon, {
|
|
153
|
+
icon: ChevronUpIcon,
|
|
154
|
+
size: "sm"
|
|
155
|
+
})
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* The sticky strip pinned to the popup's bottom edge that scrolls the list down on hover — a pointer
|
|
160
|
+
* affordance only (`aria-hidden`, like its sibling). Rendered for you inside `Select.Popup`; appears
|
|
161
|
+
* only while the list can scroll down.
|
|
162
|
+
*/
|
|
163
|
+
function SelectScrollDownArrow({ className, children, ...props }) {
|
|
164
|
+
return /* @__PURE__ */ jsx(select_exports.Select.ScrollDownArrow, {
|
|
165
|
+
"aria-hidden": true,
|
|
166
|
+
"data-slot": SELECT_SLOTS.scrollDownArrow,
|
|
167
|
+
className: clsx$1(className),
|
|
168
|
+
...props,
|
|
169
|
+
children: children ?? /* @__PURE__ */ jsx(Icon, {
|
|
170
|
+
icon: ChevronDownIcon,
|
|
171
|
+
size: "sm"
|
|
172
|
+
})
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* The scrollable list wrapping the popup's rows. Rendered for you inside `Select.Popup`. Its scrollbar
|
|
177
|
+
* is hidden — the sticky scroll arrows are the overflow affordance (Radix/macOS behaviour).
|
|
178
|
+
*/
|
|
179
|
+
function SelectList({ className, ...props }) {
|
|
180
|
+
return /* @__PURE__ */ jsx(select_exports.Select.List, {
|
|
181
|
+
"data-slot": SELECT_SLOTS.list,
|
|
182
|
+
className: clsx$1(className),
|
|
183
|
+
...props
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* A selectable option. Pass its `value` (any serialisable value, including an object) and label
|
|
188
|
+
* children; an optional leading `icon` (a glyph, colour dot, or avatar) sits in a reserved column, an
|
|
189
|
+
* optional `description` adds a muted second line, and a trailing check marks the selected row. Picking
|
|
190
|
+
* a row updates the value (and closes the popup for single selects).
|
|
191
|
+
*
|
|
192
|
+
* Renders its own `ItemIcon` / `ItemText` / `ItemDescription` / `ItemIndicator` from the props —
|
|
193
|
+
* compose those parts by hand only when a row needs custom inner structure.
|
|
194
|
+
*/
|
|
195
|
+
function SelectItem({ className, children, icon, description, ...props }) {
|
|
196
|
+
return /* @__PURE__ */ jsxs(select_exports.Select.Item, {
|
|
197
|
+
"data-slot": SELECT_SLOTS.item,
|
|
198
|
+
className: clsx$1(className),
|
|
199
|
+
...props,
|
|
200
|
+
children: [
|
|
201
|
+
icon != null ? /* @__PURE__ */ jsx(SelectItemIcon, { children: icon }) : null,
|
|
202
|
+
/* @__PURE__ */ jsxs("span", {
|
|
203
|
+
"data-slot": SELECT_SLOTS.itemContent,
|
|
204
|
+
children: [/* @__PURE__ */ jsx(SelectItemText, { children }), description != null ? /* @__PURE__ */ jsx(SelectItemDescription, { children: description }) : null]
|
|
205
|
+
}),
|
|
206
|
+
/* @__PURE__ */ jsx(SelectItemIndicator, { children: /* @__PURE__ */ jsx(Icon, {
|
|
207
|
+
icon: CheckIcon,
|
|
208
|
+
size: "sm"
|
|
209
|
+
}) })
|
|
210
|
+
]
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
/** The row's leading content column (icon, colour dot, or avatar), reserved so labels align. */
|
|
214
|
+
function SelectItemIcon({ className, ...props }) {
|
|
215
|
+
return /* @__PURE__ */ jsx("span", {
|
|
216
|
+
"data-slot": SELECT_SLOTS.itemIcon,
|
|
217
|
+
className: clsx$1(className),
|
|
218
|
+
...props
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
/** The row's label text, mirrored into the trigger's `Select.Value` when the row is selected. */
|
|
222
|
+
function SelectItemText({ className, ...props }) {
|
|
223
|
+
return /* @__PURE__ */ jsx(select_exports.Select.ItemText, {
|
|
224
|
+
"data-slot": SELECT_SLOTS.itemText,
|
|
225
|
+
className: clsx$1(className),
|
|
226
|
+
...props
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
/** A row's muted second line — a short hint beneath the label on a two-line row. */
|
|
230
|
+
function SelectItemDescription({ className, ...props }) {
|
|
231
|
+
return /* @__PURE__ */ jsx("span", {
|
|
232
|
+
"data-slot": SELECT_SLOTS.itemDescription,
|
|
233
|
+
className: clsx$1(className),
|
|
234
|
+
...props
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
/** The trailing check marking the selected row; Base UI mounts it only while the row is selected. */
|
|
238
|
+
function SelectItemIndicator({ className, ...props }) {
|
|
239
|
+
return /* @__PURE__ */ jsx(select_exports.Select.ItemIndicator, {
|
|
240
|
+
"data-slot": SELECT_SLOTS.itemIndicator,
|
|
241
|
+
className: clsx$1(className),
|
|
242
|
+
...props
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
/** A labelled section of related items. Put a `GroupLabel` inside to name it for screen readers. */
|
|
246
|
+
function SelectGroup({ className, ...props }) {
|
|
247
|
+
return /* @__PURE__ */ jsx(select_exports.Select.Group, {
|
|
248
|
+
"data-slot": SELECT_SLOTS.group,
|
|
249
|
+
className: clsx$1(className),
|
|
250
|
+
...props
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
/** The group's muted, non-interactive heading — announced as the group's accessible name. */
|
|
254
|
+
function SelectGroupLabel({ className, ...props }) {
|
|
255
|
+
return /* @__PURE__ */ jsx(select_exports.Select.GroupLabel, {
|
|
256
|
+
"data-slot": SELECT_SLOTS.groupLabel,
|
|
257
|
+
className: clsx$1(className),
|
|
258
|
+
...props
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* A hairline between groups of options. Presentational (`aria-hidden`) — a `role="separator"` is not a
|
|
263
|
+
* valid `listbox` child, and the grouping is already conveyed by the `Group`/`GroupLabel` structure.
|
|
264
|
+
*/
|
|
265
|
+
function SelectSeparator({ className, ...props }) {
|
|
266
|
+
return /* @__PURE__ */ jsx("div", {
|
|
267
|
+
"aria-hidden": true,
|
|
268
|
+
"data-slot": SELECT_SLOTS.separator,
|
|
269
|
+
className: clsx$1(className),
|
|
270
|
+
...props
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* A select: a field-shaped `Trigger` opens a floating listbox of options. Built on Base UI's Select for
|
|
275
|
+
* listbox semantics, keyboard navigation (arrows, Home/End, PageUp/PageDown, typeahead), focus
|
|
276
|
+
* management, scroll arrows, the modal backdrop, and `Escape`/outside-click dismissal, plus native form
|
|
277
|
+
* integration via the hidden input.
|
|
278
|
+
*
|
|
279
|
+
* Compose from parts: `Select.Root` owns the value and open state, `Select.Trigger` (holding a
|
|
280
|
+
* `Select.Value` and a `Select.Icon`) opens it, and `Select.Popup` holds the rows — `Item`s with their
|
|
281
|
+
* leading `icon`, label, optional `description`, and trailing check, `Group`s with a `GroupLabel`, and
|
|
282
|
+
* `Separator`s. The trigger wears the field look (calm ring-less accent-border focus); the popup is an
|
|
283
|
+
* elevated `<Surface>`, the highlighted row picks up a neutral fill, and the selected row is marked by
|
|
284
|
+
* its trailing check (the accent reserved for that check, not a row tint).
|
|
285
|
+
*
|
|
286
|
+
* Styling is precompiled in `select.css`, keyed off each part's prefixed `data-slot`. Each part also
|
|
287
|
+
* carries the D12 `props()` escape hatch via `Object.assign` (e.g. `Select.Item.props({ selected })`),
|
|
288
|
+
* returning a spreadable `{ "data-slot": "noctis-select-<part>", ...dataAttrs }` bag for a foreign
|
|
289
|
+
* element a `<Select.*>` can't wrap.
|
|
290
|
+
*
|
|
291
|
+
* The runtime compound is a plain object (kept tree-shakeable); per-part prop and state types are
|
|
292
|
+
* exposed through the matching `Select` namespace — e.g. `Select.Item.Props`.
|
|
293
|
+
*/
|
|
294
|
+
const Select = {
|
|
295
|
+
Root: SelectRoot,
|
|
296
|
+
Trigger: Object.assign(SelectTrigger, { props: triggerProps }),
|
|
297
|
+
Value: Object.assign(SelectValue, { props: valueProps }),
|
|
298
|
+
Icon: Object.assign(SelectIcon, { props: iconProps }),
|
|
299
|
+
Backdrop: Object.assign(SelectBackdrop, { props: backdropProps }),
|
|
300
|
+
Popup: Object.assign(SelectPopup, { props: popupProps }),
|
|
301
|
+
ScrollUpArrow: Object.assign(SelectScrollUpArrow, { props: scrollUpArrowProps }),
|
|
302
|
+
ScrollDownArrow: Object.assign(SelectScrollDownArrow, { props: scrollDownArrowProps }),
|
|
303
|
+
List: Object.assign(SelectList, { props: listProps }),
|
|
304
|
+
Item: Object.assign(SelectItem, { props: itemProps }),
|
|
305
|
+
ItemIcon: Object.assign(SelectItemIcon, { props: itemIconProps }),
|
|
306
|
+
ItemText: Object.assign(SelectItemText, { props: itemTextProps }),
|
|
307
|
+
ItemDescription: Object.assign(SelectItemDescription, { props: itemDescriptionProps }),
|
|
308
|
+
ItemIndicator: Object.assign(SelectItemIndicator, { props: itemIndicatorProps }),
|
|
309
|
+
Group: Object.assign(SelectGroup, { props: groupProps }),
|
|
310
|
+
GroupLabel: Object.assign(SelectGroupLabel, { props: groupLabelProps }),
|
|
311
|
+
Separator: Object.assign(SelectSeparator, { props: separatorProps })
|
|
312
|
+
};
|
|
313
|
+
//#endregion
|
|
314
|
+
export { Select };
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
//#region src/components/select/select.props.d.ts
|
|
2
|
+
/** A spreadable data-attribute prop bag — the shape every `Select.*.props()` returns. */
|
|
3
|
+
type SelectPartProps = {
|
|
4
|
+
/** The slot value the matching `select.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 `Select.Trigger.props(...)` — the size axis plus the open/disabled/invalid/readonly state. */
|
|
14
|
+
interface SelectTriggerPropsArgs extends BasePropsArgs {
|
|
15
|
+
/** The trigger size, stamped as `data-size` — the CSS keys the trigger's height/font metrics off it. @default "md" */
|
|
16
|
+
size?: "md" | "lg";
|
|
17
|
+
/** Whether the popup is open (drives the open affordance via `data-open`). */
|
|
18
|
+
open?: boolean;
|
|
19
|
+
/** Whether the trigger is disabled (drives the not-allowed affordance via `data-disabled`). */
|
|
20
|
+
disabled?: boolean;
|
|
21
|
+
/** Whether the field is invalid (drives the danger border/ring via `data-invalid`). */
|
|
22
|
+
invalid?: boolean;
|
|
23
|
+
/** Whether the field is read-only (drives the quiet, non-interactive chrome via `data-readonly`). */
|
|
24
|
+
readonly?: boolean;
|
|
25
|
+
}
|
|
26
|
+
/** Argument to `Select.Item.props(...)` — the per-row selected/highlighted/disabled state the CSS keys off. */
|
|
27
|
+
interface SelectItemPropsArgs extends BasePropsArgs {
|
|
28
|
+
/** Whether this row is the selected value (drives the trailing check via `data-selected`). */
|
|
29
|
+
selected?: boolean;
|
|
30
|
+
/** Whether the pointer/keyboard is over this row (drives the highlight via `data-highlighted`). */
|
|
31
|
+
highlighted?: boolean;
|
|
32
|
+
/** Whether this row is disabled (drives the not-allowed affordance via `data-disabled`). */
|
|
33
|
+
disabled?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/** Argument to a stateless part's `.props(...)` — no variants/state of its own. */
|
|
36
|
+
type SelectStatelessPropsArgs = BasePropsArgs;
|
|
37
|
+
/** Trigger prop bag: slot anchor plus the `data-size` axis and the open/disabled/invalid/readonly state. */
|
|
38
|
+
declare function triggerProps({
|
|
39
|
+
size,
|
|
40
|
+
open,
|
|
41
|
+
disabled,
|
|
42
|
+
invalid,
|
|
43
|
+
readonly,
|
|
44
|
+
className
|
|
45
|
+
}?: SelectTriggerPropsArgs): SelectPartProps;
|
|
46
|
+
/** Value prop bag: just the slot anchor. */
|
|
47
|
+
declare function valueProps({
|
|
48
|
+
className
|
|
49
|
+
}?: SelectStatelessPropsArgs): SelectPartProps;
|
|
50
|
+
/** Icon prop bag: just the slot anchor (the trailing chevron). */
|
|
51
|
+
declare function iconProps({
|
|
52
|
+
className
|
|
53
|
+
}?: SelectStatelessPropsArgs): SelectPartProps;
|
|
54
|
+
/** Backdrop prop bag: just the slot anchor (the modal scrim behind the popup). */
|
|
55
|
+
declare function backdropProps({
|
|
56
|
+
className
|
|
57
|
+
}?: SelectStatelessPropsArgs): SelectPartProps;
|
|
58
|
+
/** Popup prop bag: just the slot anchor (the popup surface paint is owned by the composed Surface). */
|
|
59
|
+
declare function popupProps({
|
|
60
|
+
className
|
|
61
|
+
}?: SelectStatelessPropsArgs): SelectPartProps;
|
|
62
|
+
/** Scroll-up-arrow prop bag: just the slot anchor (the sticky top scroll affordance). */
|
|
63
|
+
declare function scrollUpArrowProps({
|
|
64
|
+
className
|
|
65
|
+
}?: SelectStatelessPropsArgs): SelectPartProps;
|
|
66
|
+
/** Scroll-down-arrow prop bag: just the slot anchor (the sticky bottom scroll affordance). */
|
|
67
|
+
declare function scrollDownArrowProps({
|
|
68
|
+
className
|
|
69
|
+
}?: SelectStatelessPropsArgs): SelectPartProps;
|
|
70
|
+
/** List prop bag: just the slot anchor. */
|
|
71
|
+
declare function listProps({
|
|
72
|
+
className
|
|
73
|
+
}?: SelectStatelessPropsArgs): SelectPartProps;
|
|
74
|
+
/** Item prop bag: slot anchor plus the `data-selected`/`data-highlighted`/`data-disabled` state. */
|
|
75
|
+
declare function itemProps({
|
|
76
|
+
selected,
|
|
77
|
+
highlighted,
|
|
78
|
+
disabled,
|
|
79
|
+
className
|
|
80
|
+
}?: SelectItemPropsArgs): SelectPartProps;
|
|
81
|
+
/** Item-icon prop bag: just the slot anchor (the leading icon/dot/avatar column). */
|
|
82
|
+
declare function itemIconProps({
|
|
83
|
+
className
|
|
84
|
+
}?: SelectStatelessPropsArgs): SelectPartProps;
|
|
85
|
+
/** Item-text prop bag: just the slot anchor. */
|
|
86
|
+
declare function itemTextProps({
|
|
87
|
+
className
|
|
88
|
+
}?: SelectStatelessPropsArgs): SelectPartProps;
|
|
89
|
+
/** Item-description prop bag: just the slot anchor (the muted second line on a two-line row). */
|
|
90
|
+
declare function itemDescriptionProps({
|
|
91
|
+
className
|
|
92
|
+
}?: SelectStatelessPropsArgs): SelectPartProps;
|
|
93
|
+
/** Item-indicator prop bag: just the slot anchor (the trailing check). */
|
|
94
|
+
declare function itemIndicatorProps({
|
|
95
|
+
className
|
|
96
|
+
}?: SelectStatelessPropsArgs): SelectPartProps;
|
|
97
|
+
/** Group prop bag: just the slot anchor. */
|
|
98
|
+
declare function groupProps({
|
|
99
|
+
className
|
|
100
|
+
}?: SelectStatelessPropsArgs): SelectPartProps;
|
|
101
|
+
/** Group-label prop bag: just the slot anchor. */
|
|
102
|
+
declare function groupLabelProps({
|
|
103
|
+
className
|
|
104
|
+
}?: SelectStatelessPropsArgs): SelectPartProps;
|
|
105
|
+
/** Separator prop bag: just the slot anchor. */
|
|
106
|
+
declare function separatorProps({
|
|
107
|
+
className
|
|
108
|
+
}?: SelectStatelessPropsArgs): SelectPartProps;
|
|
109
|
+
//#endregion
|
|
110
|
+
export { SelectPartProps, backdropProps, groupLabelProps, groupProps, iconProps, itemDescriptionProps, itemIconProps, itemIndicatorProps, itemProps, itemTextProps, listProps, popupProps, scrollDownArrowProps, scrollUpArrowProps, separatorProps, triggerProps, valueProps };
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { SELECT_SLOTS } from "./select.slots.js";
|
|
2
|
+
//#region src/components/select/select.props.ts
|
|
3
|
+
/**
|
|
4
|
+
* The D12 unified variant contract for Select — a per-part set of `props(...)` builders that each
|
|
5
|
+
* return a **spreadable props object** of the form `{ "data-slot": "noctis-select-<part>", ...dataAttrs }`,
|
|
6
|
+
* derived from the part's variant/state inputs.
|
|
7
|
+
*
|
|
8
|
+
* Under the single-`data-slot` anchor model the `data-slot` is the only styling hook needed —
|
|
9
|
+
* `select.css` keys every rule off it — so spreading a part's `props()` onto a *foreign* element
|
|
10
|
+
* styles it as that part:
|
|
11
|
+
*
|
|
12
|
+
* <div {...Select.Item.props({ selected: true, highlighted: true })}>Apple</div>
|
|
13
|
+
* // → <div data-slot="noctis-select-item" data-selected="" data-highlighted="">
|
|
14
|
+
*
|
|
15
|
+
* The escape hatch carries no className (styling is attribute-driven); an optional `className`
|
|
16
|
+
* passthrough is accepted and forwarded verbatim. The same variant→data-attribute→values mapping is
|
|
17
|
+
* emitted as data from the token graph (`generated/declarations.json` → `variantSchema`) so non-React /
|
|
18
|
+
* agent consumers can hand-write the markup from the docs.
|
|
19
|
+
*/
|
|
20
|
+
/** Stamp a boolean state as a bare data-attribute: present (`""`) when on, absent (`undefined`) when off. */
|
|
21
|
+
const flag = (on) => on ? "" : void 0;
|
|
22
|
+
const withClassName = (bag, className) => className === void 0 ? bag : {
|
|
23
|
+
...bag,
|
|
24
|
+
className
|
|
25
|
+
};
|
|
26
|
+
/** Trigger prop bag: slot anchor plus the `data-size` axis and the open/disabled/invalid/readonly state. */
|
|
27
|
+
function triggerProps({ size = "md", open, disabled, invalid, readonly, className } = {}) {
|
|
28
|
+
return withClassName({
|
|
29
|
+
"data-slot": SELECT_SLOTS.trigger,
|
|
30
|
+
"data-size": size,
|
|
31
|
+
"data-open": flag(open),
|
|
32
|
+
"data-disabled": flag(disabled),
|
|
33
|
+
"data-invalid": flag(invalid),
|
|
34
|
+
"data-readonly": flag(readonly)
|
|
35
|
+
}, className);
|
|
36
|
+
}
|
|
37
|
+
/** Value prop bag: just the slot anchor. */
|
|
38
|
+
function valueProps({ className } = {}) {
|
|
39
|
+
return withClassName({ "data-slot": SELECT_SLOTS.value }, className);
|
|
40
|
+
}
|
|
41
|
+
/** Icon prop bag: just the slot anchor (the trailing chevron). */
|
|
42
|
+
function iconProps({ className } = {}) {
|
|
43
|
+
return withClassName({ "data-slot": SELECT_SLOTS.icon }, className);
|
|
44
|
+
}
|
|
45
|
+
/** Backdrop prop bag: just the slot anchor (the modal scrim behind the popup). */
|
|
46
|
+
function backdropProps({ className } = {}) {
|
|
47
|
+
return withClassName({ "data-slot": SELECT_SLOTS.backdrop }, className);
|
|
48
|
+
}
|
|
49
|
+
/** Popup prop bag: just the slot anchor (the popup surface paint is owned by the composed Surface). */
|
|
50
|
+
function popupProps({ className } = {}) {
|
|
51
|
+
return withClassName({ "data-slot": SELECT_SLOTS.popup }, className);
|
|
52
|
+
}
|
|
53
|
+
/** Scroll-up-arrow prop bag: just the slot anchor (the sticky top scroll affordance). */
|
|
54
|
+
function scrollUpArrowProps({ className } = {}) {
|
|
55
|
+
return withClassName({ "data-slot": SELECT_SLOTS.scrollUpArrow }, className);
|
|
56
|
+
}
|
|
57
|
+
/** Scroll-down-arrow prop bag: just the slot anchor (the sticky bottom scroll affordance). */
|
|
58
|
+
function scrollDownArrowProps({ className } = {}) {
|
|
59
|
+
return withClassName({ "data-slot": SELECT_SLOTS.scrollDownArrow }, className);
|
|
60
|
+
}
|
|
61
|
+
/** List prop bag: just the slot anchor. */
|
|
62
|
+
function listProps({ className } = {}) {
|
|
63
|
+
return withClassName({ "data-slot": SELECT_SLOTS.list }, className);
|
|
64
|
+
}
|
|
65
|
+
/** Item prop bag: slot anchor plus the `data-selected`/`data-highlighted`/`data-disabled` state. */
|
|
66
|
+
function itemProps({ selected, highlighted, disabled, className } = {}) {
|
|
67
|
+
return withClassName({
|
|
68
|
+
"data-slot": SELECT_SLOTS.item,
|
|
69
|
+
"data-selected": flag(selected),
|
|
70
|
+
"data-highlighted": flag(highlighted),
|
|
71
|
+
"data-disabled": flag(disabled)
|
|
72
|
+
}, className);
|
|
73
|
+
}
|
|
74
|
+
/** Item-icon prop bag: just the slot anchor (the leading icon/dot/avatar column). */
|
|
75
|
+
function itemIconProps({ className } = {}) {
|
|
76
|
+
return withClassName({ "data-slot": SELECT_SLOTS.itemIcon }, className);
|
|
77
|
+
}
|
|
78
|
+
/** Item-text prop bag: just the slot anchor. */
|
|
79
|
+
function itemTextProps({ className } = {}) {
|
|
80
|
+
return withClassName({ "data-slot": SELECT_SLOTS.itemText }, className);
|
|
81
|
+
}
|
|
82
|
+
/** Item-description prop bag: just the slot anchor (the muted second line on a two-line row). */
|
|
83
|
+
function itemDescriptionProps({ className } = {}) {
|
|
84
|
+
return withClassName({ "data-slot": SELECT_SLOTS.itemDescription }, className);
|
|
85
|
+
}
|
|
86
|
+
/** Item-indicator prop bag: just the slot anchor (the trailing check). */
|
|
87
|
+
function itemIndicatorProps({ className } = {}) {
|
|
88
|
+
return withClassName({ "data-slot": SELECT_SLOTS.itemIndicator }, className);
|
|
89
|
+
}
|
|
90
|
+
/** Group prop bag: just the slot anchor. */
|
|
91
|
+
function groupProps({ className } = {}) {
|
|
92
|
+
return withClassName({ "data-slot": SELECT_SLOTS.group }, className);
|
|
93
|
+
}
|
|
94
|
+
/** Group-label prop bag: just the slot anchor. */
|
|
95
|
+
function groupLabelProps({ className } = {}) {
|
|
96
|
+
return withClassName({ "data-slot": SELECT_SLOTS.groupLabel }, className);
|
|
97
|
+
}
|
|
98
|
+
/** Separator prop bag: just the slot anchor. */
|
|
99
|
+
function separatorProps({ className } = {}) {
|
|
100
|
+
return withClassName({ "data-slot": SELECT_SLOTS.separator }, className);
|
|
101
|
+
}
|
|
102
|
+
//#endregion
|
|
103
|
+
export { backdropProps, groupLabelProps, groupProps, iconProps, itemDescriptionProps, itemIconProps, itemIndicatorProps, itemProps, itemTextProps, listProps, popupProps, scrollDownArrowProps, scrollUpArrowProps, separatorProps, triggerProps, valueProps };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
//#region src/components/select/select.slots.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* The `data-*` hooks `Select` stamps on its parts, for host-side styling and tests. Slot values mark
|
|
4
|
+
* each rendered element; the state attributes are emitted by Base UI's Select — pair a slot with a
|
|
5
|
+
* state to target, say, the trigger only while its popup is open or the currently selected item.
|
|
6
|
+
*/
|
|
7
|
+
declare enum SelectDataAttributes {
|
|
8
|
+
/** The slot marker on every rendered part. */
|
|
9
|
+
slot = "data-slot",
|
|
10
|
+
/** The trigger size, mirroring the `size` prop (`md`/`lg`); the component layer keys the trigger's metrics off it. */
|
|
11
|
+
size = "data-size",
|
|
12
|
+
/** Present on the trigger and popup while the select is open. */
|
|
13
|
+
open = "data-open",
|
|
14
|
+
/** Present on the trigger and popup while the select is closed. */
|
|
15
|
+
closed = "data-closed",
|
|
16
|
+
/** Present on the trigger when no value is selected (the placeholder is showing). */
|
|
17
|
+
placeholder = "data-placeholder",
|
|
18
|
+
/** Present on the trigger while the field is invalid — paints the danger border/ring. */
|
|
19
|
+
invalid = "data-invalid",
|
|
20
|
+
/** Present on the trigger while the select is read-only — quiet, non-interactive chrome. */
|
|
21
|
+
readonly = "data-readonly",
|
|
22
|
+
/** Present on the item the pointer or keyboard is currently over. */
|
|
23
|
+
highlighted = "data-highlighted",
|
|
24
|
+
/** Present on the currently selected item (and its trailing check). */
|
|
25
|
+
selected = "data-selected",
|
|
26
|
+
/** Present on a disabled trigger or item. */
|
|
27
|
+
disabled = "data-disabled",
|
|
28
|
+
/** Present on a scroll arrow while the list can scroll in its direction (drives its fade). */
|
|
29
|
+
visible = "data-visible",
|
|
30
|
+
/** The side of the anchor the popup actually rendered on (`bottom`, `top`, …). */
|
|
31
|
+
side = "data-side",
|
|
32
|
+
/** Present on the popup/backdrop/scroll-arrows for the first frame after mount — the transition's start state. */
|
|
33
|
+
startingStyle = "data-starting-style",
|
|
34
|
+
/** Present on the popup/backdrop/scroll-arrows while they transition out before unmounting. */
|
|
35
|
+
endingStyle = "data-ending-style"
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
export { SelectDataAttributes };
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
//#region src/components/select/select.slots.ts
|
|
2
|
+
/**
|
|
3
|
+
* The slot vocabulary every `Select` part stamps as its `data-slot`. The authored source the
|
|
4
|
+
* orchestration file reads from, prefixed `noctis-{component}-{part}` (the precompiled `select.css`
|
|
5
|
+
* keys every rule off these anchors); SLOTS.md still generates from the token-graph declarations.
|
|
6
|
+
*
|
|
7
|
+
* `positioner` is a styling-only anchor (the z-index wrapper around the portalled popup) — it carries
|
|
8
|
+
* no token mints, so it lives here but not in the token-graph anatomy.
|
|
9
|
+
*/
|
|
10
|
+
const SELECT_SLOTS = {
|
|
11
|
+
trigger: "noctis-select-trigger",
|
|
12
|
+
value: "noctis-select-value",
|
|
13
|
+
icon: "noctis-select-icon",
|
|
14
|
+
backdrop: "noctis-select-backdrop",
|
|
15
|
+
positioner: "noctis-select-positioner",
|
|
16
|
+
popup: "noctis-select-popup",
|
|
17
|
+
scrollUpArrow: "noctis-select-scroll-up-arrow",
|
|
18
|
+
scrollDownArrow: "noctis-select-scroll-down-arrow",
|
|
19
|
+
list: "noctis-select-list",
|
|
20
|
+
item: "noctis-select-item",
|
|
21
|
+
itemIcon: "noctis-select-item-icon",
|
|
22
|
+
itemContent: "noctis-select-item-content",
|
|
23
|
+
itemText: "noctis-select-item-text",
|
|
24
|
+
itemDescription: "noctis-select-item-description",
|
|
25
|
+
itemIndicator: "noctis-select-item-indicator",
|
|
26
|
+
group: "noctis-select-group",
|
|
27
|
+
groupLabel: "noctis-select-group-label",
|
|
28
|
+
separator: "noctis-select-separator"
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* The `data-*` hooks `Select` stamps on its parts, for host-side styling and tests. Slot values mark
|
|
32
|
+
* each rendered element; the state attributes are emitted by Base UI's Select — pair a slot with a
|
|
33
|
+
* state to target, say, the trigger only while its popup is open or the currently selected item.
|
|
34
|
+
*/
|
|
35
|
+
let SelectDataAttributes = /* @__PURE__ */ function(SelectDataAttributes) {
|
|
36
|
+
/** The slot marker on every rendered part. */
|
|
37
|
+
SelectDataAttributes["slot"] = "data-slot";
|
|
38
|
+
/** The trigger size, mirroring the `size` prop (`md`/`lg`); the component layer keys the trigger's metrics off it. */
|
|
39
|
+
SelectDataAttributes["size"] = "data-size";
|
|
40
|
+
/** Present on the trigger and popup while the select is open. */
|
|
41
|
+
SelectDataAttributes["open"] = "data-open";
|
|
42
|
+
/** Present on the trigger and popup while the select is closed. */
|
|
43
|
+
SelectDataAttributes["closed"] = "data-closed";
|
|
44
|
+
/** Present on the trigger when no value is selected (the placeholder is showing). */
|
|
45
|
+
SelectDataAttributes["placeholder"] = "data-placeholder";
|
|
46
|
+
/** Present on the trigger while the field is invalid — paints the danger border/ring. */
|
|
47
|
+
SelectDataAttributes["invalid"] = "data-invalid";
|
|
48
|
+
/** Present on the trigger while the select is read-only — quiet, non-interactive chrome. */
|
|
49
|
+
SelectDataAttributes["readonly"] = "data-readonly";
|
|
50
|
+
/** Present on the item the pointer or keyboard is currently over. */
|
|
51
|
+
SelectDataAttributes["highlighted"] = "data-highlighted";
|
|
52
|
+
/** Present on the currently selected item (and its trailing check). */
|
|
53
|
+
SelectDataAttributes["selected"] = "data-selected";
|
|
54
|
+
/** Present on a disabled trigger or item. */
|
|
55
|
+
SelectDataAttributes["disabled"] = "data-disabled";
|
|
56
|
+
/** Present on a scroll arrow while the list can scroll in its direction (drives its fade). */
|
|
57
|
+
SelectDataAttributes["visible"] = "data-visible";
|
|
58
|
+
/** The side of the anchor the popup actually rendered on (`bottom`, `top`, …). */
|
|
59
|
+
SelectDataAttributes["side"] = "data-side";
|
|
60
|
+
/** Present on the popup/backdrop/scroll-arrows for the first frame after mount — the transition's start state. */
|
|
61
|
+
SelectDataAttributes["startingStyle"] = "data-starting-style";
|
|
62
|
+
/** Present on the popup/backdrop/scroll-arrows while they transition out before unmounting. */
|
|
63
|
+
SelectDataAttributes["endingStyle"] = "data-ending-style";
|
|
64
|
+
return SelectDataAttributes;
|
|
65
|
+
}({});
|
|
66
|
+
//#endregion
|
|
67
|
+
export { SELECT_SLOTS, SelectDataAttributes };
|