luxen-ui 0.22.1 → 0.24.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/bin/cli.mjs +1 -1
- package/cdn/chunks/decorate.js +1 -1
- package/cdn/chunks/decorate.js.map +1 -1
- package/cdn/chunks/directive.js.map +1 -1
- package/cdn/chunks/floating-ui.dom.js +1 -1
- package/cdn/chunks/floating-ui.dom.js.map +1 -1
- package/cdn/chunks/iconify-icon.js +1 -1
- package/cdn/chunks/iconify-icon.js.map +1 -1
- package/cdn/chunks/lit-html.js +1 -1
- package/cdn/chunks/lit-html.js.map +1 -1
- package/cdn/chunks/lit.js.map +1 -1
- package/cdn/chunks/map.js.map +1 -1
- package/cdn/chunks/picker.js +2 -2
- package/cdn/chunks/picker.js.map +1 -1
- package/cdn/chunks/query.js +2 -0
- package/cdn/chunks/query.js.map +1 -0
- package/cdn/chunks/static-html.js +1 -1
- package/cdn/chunks/static-html.js.map +1 -1
- package/cdn/chunks/unsafe-html.js.map +1 -1
- package/cdn/color-scheme.d.ts.map +1 -1
- package/cdn/color-scheme.js +1 -1
- package/cdn/color-scheme.js.map +1 -1
- package/cdn/custom-elements.json +819 -742
- package/cdn/define.d.ts +1 -1
- package/cdn/define.js.map +1 -1
- package/cdn/elements/alert/alert.d.ts +2 -1
- package/cdn/elements/alert/alert.d.ts.map +1 -1
- package/cdn/elements/alert/alert.js +1 -1
- package/cdn/elements/alert/alert.js.map +1 -1
- package/cdn/elements/alert/index.js.map +1 -1
- package/cdn/elements/alert-dialog/alert-dialog.d.ts +4 -3
- package/cdn/elements/alert-dialog/alert-dialog.d.ts.map +1 -1
- package/cdn/elements/alert-dialog/alert-dialog.js +5 -5
- package/cdn/elements/alert-dialog/alert-dialog.js.map +1 -1
- package/cdn/elements/alert-dialog/index.js.map +1 -1
- package/cdn/elements/avatar/avatar.d.ts +2 -2
- package/cdn/elements/avatar/avatar.d.ts.map +1 -1
- package/cdn/elements/avatar/avatar.js +8 -8
- package/cdn/elements/avatar/avatar.js.map +1 -1
- package/cdn/elements/avatar/index.js.map +1 -1
- package/cdn/elements/badge/badge.d.ts.map +1 -1
- package/cdn/elements/badge/badge.js +1 -1
- package/cdn/elements/badge/badge.js.map +1 -1
- package/cdn/elements/badge/index.js.map +1 -1
- package/cdn/elements/button-group/button-group.d.ts.map +1 -1
- package/cdn/elements/button-group/button-group.js +1 -1
- package/cdn/elements/button-group/button-group.js.map +1 -1
- package/cdn/elements/button-group/index.js.map +1 -1
- package/cdn/elements/carousel/carousel.d.ts +6 -6
- package/cdn/elements/carousel/carousel.d.ts.map +1 -1
- package/cdn/elements/carousel/carousel.js +4 -4
- package/cdn/elements/carousel/carousel.js.map +1 -1
- package/cdn/elements/carousel/index.js.map +1 -1
- package/cdn/elements/carousel-item/carousel-item.d.ts +2 -2
- package/cdn/elements/carousel-item/carousel-item.d.ts.map +1 -1
- package/cdn/elements/carousel-item/carousel-item.js.map +1 -1
- package/cdn/elements/carousel-item/index.js.map +1 -1
- package/cdn/elements/color-scheme-icon/color-scheme-icon.d.ts +3 -3
- package/cdn/elements/color-scheme-icon/color-scheme-icon.d.ts.map +1 -1
- package/cdn/elements/color-scheme-icon/color-scheme-icon.js +2 -2
- package/cdn/elements/color-scheme-icon/color-scheme-icon.js.map +1 -1
- package/cdn/elements/color-scheme-icon/index.js.map +1 -1
- package/cdn/elements/combobox/combobox.d.ts +21 -5
- package/cdn/elements/combobox/combobox.d.ts.map +1 -1
- package/cdn/elements/combobox/combobox.js +42 -38
- package/cdn/elements/combobox/combobox.js.map +1 -1
- package/cdn/elements/combobox/index.js.map +1 -1
- package/cdn/elements/dialog/dialog.d.ts +4 -4
- package/cdn/elements/dialog/dialog.d.ts.map +1 -1
- package/cdn/elements/dialog/dialog.js +13 -13
- package/cdn/elements/dialog/dialog.js.map +1 -1
- package/cdn/elements/dialog/dialog.styles.d.ts +1 -1
- package/cdn/elements/dialog/dialog.styles.d.ts.map +1 -1
- package/cdn/elements/dialog/dialog.styles.js.map +1 -1
- package/cdn/elements/dialog/index.js.map +1 -1
- package/cdn/elements/divider/divider.d.ts.map +1 -1
- package/cdn/elements/divider/divider.js +1 -1
- package/cdn/elements/divider/divider.js.map +1 -1
- package/cdn/elements/divider/index.js.map +1 -1
- package/cdn/elements/drawer/drawer.d.ts +2 -2
- package/cdn/elements/drawer/drawer.js +1 -1
- package/cdn/elements/drawer/drawer.js.map +1 -1
- package/cdn/elements/drawer/index.js.map +1 -1
- package/cdn/elements/dropdown/dropdown.d.ts +11 -12
- package/cdn/elements/dropdown/dropdown.d.ts.map +1 -1
- package/cdn/elements/dropdown/dropdown.js +2 -2
- package/cdn/elements/dropdown/dropdown.js.map +1 -1
- package/cdn/elements/dropdown/index.js.map +1 -1
- package/cdn/elements/dropdown-item/dropdown-item.d.ts +3 -4
- package/cdn/elements/dropdown-item/dropdown-item.d.ts.map +1 -1
- package/cdn/elements/dropdown-item/dropdown-item.js +5 -5
- package/cdn/elements/dropdown-item/dropdown-item.js.map +1 -1
- package/cdn/elements/dropdown-item/index.js.map +1 -1
- package/cdn/elements/dropdown-label/dropdown-label.d.ts +2 -2
- package/cdn/elements/dropdown-label/dropdown-label.d.ts.map +1 -1
- package/cdn/elements/dropdown-label/dropdown-label.js +1 -1
- package/cdn/elements/dropdown-label/dropdown-label.js.map +1 -1
- package/cdn/elements/dropdown-label/index.js.map +1 -1
- package/cdn/elements/form-field/form-field.d.ts +2 -1
- package/cdn/elements/form-field/form-field.d.ts.map +1 -1
- package/cdn/elements/form-field/form-field.js +1 -1
- package/cdn/elements/form-field/form-field.js.map +1 -1
- package/cdn/elements/form-field/index.js.map +1 -1
- package/cdn/elements/icon/icon.d.ts +3 -3
- package/cdn/elements/icon/icon.d.ts.map +1 -1
- package/cdn/elements/icon/icon.js +1 -1
- package/cdn/elements/icon/icon.js.map +1 -1
- package/cdn/elements/icon/index.js.map +1 -1
- package/cdn/elements/input/input.meta.d.ts +2 -0
- package/cdn/elements/input/input.meta.d.ts.map +1 -1
- package/cdn/elements/input-group/index.js.map +1 -1
- package/cdn/elements/input-group/input-group.d.ts.map +1 -1
- package/cdn/elements/input-group/input-group.js +1 -1
- package/cdn/elements/input-group/input-group.js.map +1 -1
- package/cdn/elements/input-otp/index.js.map +1 -1
- package/cdn/elements/input-otp/input-otp.d.ts +3 -3
- package/cdn/elements/input-otp/input-otp.d.ts.map +1 -1
- package/cdn/elements/input-otp/input-otp.js +1 -1
- package/cdn/elements/input-otp/input-otp.js.map +1 -1
- package/cdn/elements/input-stepper/index.js.map +1 -1
- package/cdn/elements/input-stepper/input-stepper.d.ts.map +1 -1
- package/cdn/elements/input-stepper/input-stepper.js +1 -1
- package/cdn/elements/input-stepper/input-stepper.js.map +1 -1
- package/cdn/elements/popover/index.js.map +1 -1
- package/cdn/elements/popover/popover.d.ts +7 -8
- package/cdn/elements/popover/popover.d.ts.map +1 -1
- package/cdn/elements/popover/popover.js +6 -6
- package/cdn/elements/popover/popover.js.map +1 -1
- package/cdn/elements/prose-editor/index.js.map +1 -1
- package/cdn/elements/prose-editor/prose-editor.d.ts +73 -3
- package/cdn/elements/prose-editor/prose-editor.d.ts.map +1 -1
- package/cdn/elements/prose-editor/prose-editor.js +56 -71
- package/cdn/elements/prose-editor/prose-editor.js.map +1 -1
- package/cdn/elements/rating/index.js.map +1 -1
- package/cdn/elements/rating/rating.d.ts +3 -3
- package/cdn/elements/rating/rating.d.ts.map +1 -1
- package/cdn/elements/rating/rating.js +6 -6
- package/cdn/elements/rating/rating.js.map +1 -1
- package/cdn/elements/segmented-control/index.js.map +1 -1
- package/cdn/elements/segmented-control/segmented-control.d.ts.map +1 -1
- package/cdn/elements/segmented-control/segmented-control.js +1 -1
- package/cdn/elements/segmented-control/segmented-control.js.map +1 -1
- package/cdn/elements/select/index.js.map +1 -1
- package/cdn/elements/select/select.d.ts +17 -6
- package/cdn/elements/select/select.d.ts.map +1 -1
- package/cdn/elements/select/select.js +64 -58
- package/cdn/elements/select/select.js.map +1 -1
- package/cdn/elements/skeleton/index.js.map +1 -1
- package/cdn/elements/skeleton/skeleton.d.ts.map +1 -1
- package/cdn/elements/skeleton/skeleton.js.map +1 -1
- package/cdn/elements/slider/index.js.map +1 -1
- package/cdn/elements/slider/slider.d.ts +3 -3
- package/cdn/elements/slider/slider.d.ts.map +1 -1
- package/cdn/elements/slider/slider.js +2 -2
- package/cdn/elements/slider/slider.js.map +1 -1
- package/cdn/elements/spinner/index.js.map +1 -1
- package/cdn/elements/spinner/spinner.d.ts +2 -2
- package/cdn/elements/spinner/spinner.d.ts.map +1 -1
- package/cdn/elements/spinner/spinner.js.map +1 -1
- package/cdn/elements/sticky-bar/index.js.map +1 -1
- package/cdn/elements/sticky-bar/sticky-bar.d.ts +3 -3
- package/cdn/elements/sticky-bar/sticky-bar.d.ts.map +1 -1
- package/cdn/elements/sticky-bar/sticky-bar.js +1 -1
- package/cdn/elements/sticky-bar/sticky-bar.js.map +1 -1
- package/cdn/elements/stories/index.js.map +1 -1
- package/cdn/elements/stories/stories.d.ts +1 -1
- package/cdn/elements/stories/stories.d.ts.map +1 -1
- package/cdn/elements/stories/stories.js +1 -1
- package/cdn/elements/stories/stories.js.map +1 -1
- package/cdn/elements/stories-viewer/index.js.map +1 -1
- package/cdn/elements/stories-viewer/stories-viewer.d.ts +4 -4
- package/cdn/elements/stories-viewer/stories-viewer.d.ts.map +1 -1
- package/cdn/elements/stories-viewer/stories-viewer.js +35 -35
- package/cdn/elements/stories-viewer/stories-viewer.js.map +1 -1
- package/cdn/elements/story/index.js.map +1 -1
- package/cdn/elements/story/story.d.ts +1 -1
- package/cdn/elements/story/story.d.ts.map +1 -1
- package/cdn/elements/story/story.js +8 -8
- package/cdn/elements/story/story.js.map +1 -1
- package/cdn/elements/tabs/index.js.map +1 -1
- package/cdn/elements/tabs/tabs.d.ts.map +1 -1
- package/cdn/elements/tabs/tabs.js +1 -1
- package/cdn/elements/tabs/tabs.js.map +1 -1
- package/cdn/elements/tag/index.js.map +1 -1
- package/cdn/elements/tag/tag.d.ts +2 -2
- package/cdn/elements/tag/tag.d.ts.map +1 -1
- package/cdn/elements/tag/tag.js +3 -3
- package/cdn/elements/tag/tag.js.map +1 -1
- package/cdn/elements/toast/index.js.map +1 -1
- package/cdn/elements/toast/toast.d.ts.map +1 -1
- package/cdn/elements/toast/toast.js +1 -1
- package/cdn/elements/toast/toast.js.map +1 -1
- package/cdn/elements/tooltip/index.js.map +1 -1
- package/cdn/elements/tooltip/tooltip.d.ts +4 -5
- package/cdn/elements/tooltip/tooltip.d.ts.map +1 -1
- package/cdn/elements/tooltip/tooltip.js +6 -6
- package/cdn/elements/tooltip/tooltip.js.map +1 -1
- package/cdn/elements/tree/index.js.map +1 -1
- package/cdn/elements/tree/tree.d.ts +4 -4
- package/cdn/elements/tree/tree.d.ts.map +1 -1
- package/cdn/elements/tree/tree.js +2 -2
- package/cdn/elements/tree/tree.js.map +1 -1
- package/cdn/elements/tree-item/index.js.map +1 -1
- package/cdn/elements/tree-item/tree-item.d.ts +3 -3
- package/cdn/elements/tree-item/tree-item.d.ts.map +1 -1
- package/cdn/elements/tree-item/tree-item.js +33 -33
- package/cdn/elements/tree-item/tree-item.js.map +1 -1
- package/cdn/events/after-hide.d.ts.map +1 -1
- package/cdn/events/after-hide.js.map +1 -1
- package/cdn/events/after-show.d.ts.map +1 -1
- package/cdn/events/after-show.js.map +1 -1
- package/cdn/events/hide.d.ts.map +1 -1
- package/cdn/events/hide.js.map +1 -1
- package/cdn/events/show.d.ts.map +1 -1
- package/cdn/events/show.js.map +1 -1
- package/cdn/registry.js +1 -1
- package/cdn/registry.js.map +1 -1
- package/cdn/shared/controllers/datalist-observer.d.ts +1 -1
- package/cdn/shared/controllers/datalist-observer.d.ts.map +1 -1
- package/cdn/shared/controllers/datalist-observer.js.map +1 -1
- package/cdn/shared/controllers/has-slot-controller.d.ts +1 -1
- package/cdn/shared/controllers/has-slot-controller.d.ts.map +1 -1
- package/cdn/shared/controllers/has-slot-controller.js +1 -1
- package/cdn/shared/controllers/has-slot-controller.js.map +1 -1
- package/cdn/shared/controllers/listbox-nav.d.ts +16 -2
- package/cdn/shared/controllers/listbox-nav.d.ts.map +1 -1
- package/cdn/shared/controllers/listbox-nav.js +1 -1
- package/cdn/shared/controllers/listbox-nav.js.map +1 -1
- package/cdn/shared/controllers/popover.d.ts +12 -4
- package/cdn/shared/controllers/popover.d.ts.map +1 -1
- package/cdn/shared/controllers/popover.js +1 -1
- package/cdn/shared/controllers/popover.js.map +1 -1
- package/cdn/shared/highlight.d.ts +16 -0
- package/cdn/shared/highlight.d.ts.map +1 -0
- package/cdn/shared/highlight.js +2 -0
- package/cdn/shared/highlight.js.map +1 -0
- package/cdn/shared/localize.d.ts +1 -1
- package/cdn/shared/localize.d.ts.map +1 -1
- package/cdn/shared/localize.js +1 -1
- package/cdn/shared/localize.js.map +1 -1
- package/cdn/shared/luxen-element.js.map +1 -1
- package/cdn/shared/luxen-form-associated-element.d.ts.map +1 -1
- package/cdn/shared/luxen-form-associated-element.js +1 -1
- package/cdn/shared/luxen-form-associated-element.js.map +1 -1
- package/cdn/shared/rich-option.d.ts +20 -0
- package/cdn/shared/rich-option.d.ts.map +1 -0
- package/cdn/shared/rich-option.js +2 -0
- package/cdn/shared/rich-option.js.map +1 -0
- package/cdn/shared/styles/badge-core.styles.d.ts +9 -0
- package/cdn/shared/styles/badge-core.styles.d.ts.map +1 -0
- package/cdn/shared/styles/badge-core.styles.js +2 -0
- package/cdn/shared/styles/badge-core.styles.js.map +1 -0
- package/cdn/shared/styles/button-core.styles.d.ts +1 -1
- package/cdn/shared/styles/button-core.styles.d.ts.map +1 -1
- package/cdn/shared/styles/button-core.styles.js.map +1 -1
- package/cdn/shared/styles/checkbox-appearance.styles.d.ts +1 -1
- package/cdn/shared/styles/checkbox-appearance.styles.d.ts.map +1 -1
- package/cdn/shared/styles/checkbox-appearance.styles.js +1 -1
- package/cdn/shared/styles/checkbox-appearance.styles.js.map +1 -1
- package/cdn/shared/styles/host.styles.d.ts +1 -1
- package/cdn/shared/styles/host.styles.d.ts.map +1 -1
- package/cdn/shared/styles/host.styles.js.map +1 -1
- package/cdn/shared/styles/menu-panel.styles.d.ts +8 -0
- package/cdn/shared/styles/menu-panel.styles.d.ts.map +1 -0
- package/cdn/shared/styles/menu-panel.styles.js +2 -0
- package/cdn/shared/styles/menu-panel.styles.js.map +1 -0
- package/cdn/shared/styles/picker-core.styles.d.ts +9 -0
- package/cdn/shared/styles/picker-core.styles.d.ts.map +1 -0
- package/cdn/shared/styles/picker-core.styles.js +2 -0
- package/cdn/shared/styles/picker-core.styles.js.map +1 -0
- package/cdn/shared/styles/select-item-suffix.styles.d.ts +8 -0
- package/cdn/shared/styles/select-item-suffix.styles.d.ts.map +1 -0
- package/cdn/shared/styles/select-item-suffix.styles.js +2 -0
- package/cdn/shared/styles/select-item-suffix.styles.js.map +1 -0
- package/cdn/shared/styles/select-item.styles.d.ts +8 -0
- package/cdn/shared/styles/select-item.styles.d.ts.map +1 -0
- package/cdn/shared/styles/select-item.styles.js +2 -0
- package/cdn/shared/styles/select-item.styles.js.map +1 -0
- package/cdn/shared/styles/visually-hidden.styles.d.ts +8 -0
- package/cdn/shared/styles/visually-hidden.styles.d.ts.map +1 -0
- package/cdn/shared/styles/visually-hidden.styles.js +2 -0
- package/cdn/shared/styles/visually-hidden.styles.js.map +1 -0
- package/cdn/standalone.css +632 -423
- package/cdn/standalone.js +40422 -105
- package/cdn/standalone.js.map +1 -1
- package/cdn/static-tag.d.ts +2 -2
- package/cdn/static-tag.js +1 -1
- package/cdn/static-tag.js.map +1 -1
- package/cdn/styles/base.css +31 -68
- package/cdn/styles/elements/badge.css +202 -182
- package/cdn/styles/elements/checkbox.css +3 -6
- package/cdn/styles/elements/form-field.css +16 -9
- package/cdn/styles/elements/input-otp.css +16 -9
- package/cdn/styles/elements/input-stepper/default.css +4 -4
- package/cdn/styles/elements/input-stepper/pill.css +4 -4
- package/cdn/styles/elements/input-stepper/rounded.css +3 -3
- package/cdn/styles/elements/input.css +82 -27
- package/cdn/styles/elements/radio.css +2 -2
- package/cdn/styles/elements/select.css +202 -77
- package/cdn/styles/elements/switch.css +3 -3
- package/cdn/styles/elements/textarea.css +5 -5
- package/cdn/styles/preset.css +96 -98
- package/cdn/styles/tokens/aliases.css +1 -3
- package/cdn/styles/tokens/forms.css +38 -33
- package/cdn/styles/tokens/primitives.css +1 -3
- package/cdn/styles/tokens.css +67 -34
- package/cdn/translations/en.d.ts +1 -1
- package/cdn/translations/en.d.ts.map +1 -1
- package/cdn/translations/en.js.map +1 -1
- package/cdn/translations/fr.d.ts +1 -1
- package/cdn/translations/fr.d.ts.map +1 -1
- package/cdn/translations/fr.js.map +1 -1
- package/cdn/translations/ko.d.ts +1 -1
- package/cdn/translations/ko.d.ts.map +1 -1
- package/cdn/translations/ko.js.map +1 -1
- package/dist/color-scheme.d.ts.map +1 -1
- package/dist/css/base.css +31 -68
- package/dist/css/elements/badge.css +202 -182
- package/dist/css/elements/checkbox.css +3 -6
- package/dist/css/elements/form-field.css +16 -9
- package/dist/css/elements/input-otp.css +16 -9
- package/dist/css/elements/input-stepper/default.css +4 -4
- package/dist/css/elements/input-stepper/pill.css +4 -4
- package/dist/css/elements/input-stepper/rounded.css +3 -3
- package/dist/css/elements/input.css +82 -27
- package/dist/css/elements/radio.css +2 -2
- package/dist/css/elements/select.css +202 -77
- package/dist/css/elements/switch.css +3 -3
- package/dist/css/elements/textarea.css +5 -5
- package/dist/css/preset.css +96 -98
- package/dist/css/tokens/aliases.css +1 -3
- package/dist/css/tokens/forms.css +38 -33
- package/dist/css/tokens/primitives.css +1 -3
- package/dist/css/tokens.css +67 -34
- package/dist/custom-elements.json +819 -742
- package/dist/elements/alert/alert.d.ts.map +1 -1
- package/dist/elements/alert-dialog/alert-dialog.d.ts.map +1 -1
- package/dist/elements/avatar/avatar.d.ts.map +1 -1
- package/dist/elements/badge/badge.d.ts.map +1 -1
- package/dist/elements/button-group/button-group.d.ts.map +1 -1
- package/dist/elements/carousel/carousel.d.ts.map +1 -1
- package/dist/elements/carousel-item/carousel-item.d.ts.map +1 -1
- package/dist/elements/color-scheme-icon/color-scheme-icon.d.ts.map +1 -1
- package/dist/elements/combobox/combobox.css +30 -183
- package/dist/elements/combobox/combobox.d.ts +18 -2
- package/dist/elements/combobox/combobox.d.ts.map +1 -1
- package/dist/elements/combobox/combobox.js +88 -54
- package/dist/elements/dialog/dialog.d.ts.map +1 -1
- package/dist/elements/dialog/dialog.js +10 -10
- package/dist/elements/dialog/dialog.styles.d.ts.map +1 -1
- package/dist/elements/divider/divider.d.ts.map +1 -1
- package/dist/elements/drawer/drawer.d.ts +1 -1
- package/dist/elements/dropdown/dropdown.css +7 -30
- package/dist/elements/dropdown/dropdown.d.ts +6 -7
- package/dist/elements/dropdown/dropdown.d.ts.map +1 -1
- package/dist/elements/dropdown/dropdown.js +17 -14
- package/dist/elements/dropdown-item/dropdown-item.css +7 -36
- package/dist/elements/dropdown-item/dropdown-item.d.ts +0 -1
- package/dist/elements/dropdown-item/dropdown-item.d.ts.map +1 -1
- package/dist/elements/dropdown-item/dropdown-item.js +7 -10
- package/dist/elements/dropdown-label/dropdown-label.css +3 -3
- package/dist/elements/dropdown-label/dropdown-label.d.ts.map +1 -1
- package/dist/elements/form-field/form-field.d.ts +2 -1
- package/dist/elements/form-field/form-field.d.ts.map +1 -1
- package/dist/elements/form-field/form-field.js +16 -4
- package/dist/elements/icon/icon.d.ts.map +1 -1
- package/dist/elements/input/input.meta.d.ts +2 -0
- package/dist/elements/input/input.meta.d.ts.map +1 -1
- package/dist/elements/input/input.meta.js +2 -0
- package/dist/elements/input-group/input-group.d.ts.map +1 -1
- package/dist/elements/input-otp/input-otp.d.ts +3 -3
- package/dist/elements/input-otp/input-otp.d.ts.map +1 -1
- package/dist/elements/input-otp/input-otp.js +3 -3
- package/dist/elements/input-stepper/input-stepper.d.ts.map +1 -1
- package/dist/elements/popover/popover.css +4 -4
- package/dist/elements/popover/popover.d.ts +3 -4
- package/dist/elements/popover/popover.d.ts.map +1 -1
- package/dist/elements/popover/popover.js +10 -14
- package/dist/elements/prose-editor/prose-editor.d.ts +69 -0
- package/dist/elements/prose-editor/prose-editor.d.ts.map +1 -1
- package/dist/elements/prose-editor/prose-editor.js +183 -22
- package/dist/elements/rating/rating.d.ts.map +1 -1
- package/dist/elements/rating/rating.js +5 -5
- package/dist/elements/segmented-control/segmented-control.d.ts.map +1 -1
- package/dist/elements/select/select.css +26 -256
- package/dist/elements/select/select.d.ts +14 -4
- package/dist/elements/select/select.d.ts.map +1 -1
- package/dist/elements/select/select.js +87 -61
- package/dist/elements/skeleton/skeleton.d.ts.map +1 -1
- package/dist/elements/slider/slider.d.ts.map +1 -1
- package/dist/elements/spinner/spinner.d.ts.map +1 -1
- package/dist/elements/sticky-bar/sticky-bar.d.ts.map +1 -1
- package/dist/elements/stories/stories.d.ts.map +1 -1
- package/dist/elements/stories-viewer/stories-viewer.css +0 -12
- package/dist/elements/stories-viewer/stories-viewer.d.ts.map +1 -1
- package/dist/elements/stories-viewer/stories-viewer.js +20 -19
- package/dist/elements/story/story.d.ts.map +1 -1
- package/dist/elements/tabs/tabs.d.ts.map +1 -1
- package/dist/elements/tag/tag.css +10 -9
- package/dist/elements/tag/tag.d.ts.map +1 -1
- package/dist/elements/toast/toast.d.ts.map +1 -1
- package/dist/elements/tooltip/tooltip.d.ts +0 -1
- package/dist/elements/tooltip/tooltip.d.ts.map +1 -1
- package/dist/elements/tooltip/tooltip.js +7 -11
- package/dist/elements/tree/tree.d.ts.map +1 -1
- package/dist/elements/tree-item/tree-item.css +17 -7
- package/dist/elements/tree-item/tree-item.d.ts.map +1 -1
- package/dist/elements/tree-item/tree-item.js +29 -29
- package/dist/events/after-hide.d.ts.map +1 -1
- package/dist/events/after-show.d.ts.map +1 -1
- package/dist/events/hide.d.ts.map +1 -1
- package/dist/events/show.d.ts.map +1 -1
- package/dist/metadata/combobox.json +39 -3
- package/dist/metadata/dropdown.json +10 -10
- package/dist/metadata/form-field.json +1 -1
- package/dist/metadata/index.json +103 -26
- package/dist/metadata/input-otp.json +3 -3
- package/dist/metadata/input.json +5 -0
- package/dist/metadata/popover.json +5 -5
- package/dist/metadata/prose-editor.json +1 -1
- package/dist/metadata/select.json +38 -2
- package/dist/shared/controllers/datalist-observer.d.ts.map +1 -1
- package/dist/shared/controllers/has-slot-controller.d.ts.map +1 -1
- package/dist/shared/controllers/listbox-nav.d.ts +15 -1
- package/dist/shared/controllers/listbox-nav.d.ts.map +1 -1
- package/dist/shared/controllers/listbox-nav.js +32 -1
- package/dist/shared/controllers/popover.d.ts +10 -2
- package/dist/shared/controllers/popover.d.ts.map +1 -1
- package/dist/shared/controllers/popover.js +16 -2
- package/dist/shared/highlight.d.ts +16 -0
- package/dist/shared/highlight.d.ts.map +1 -0
- package/dist/shared/highlight.js +140 -0
- package/dist/shared/localize.d.ts.map +1 -1
- package/dist/shared/localize.js +1 -1
- package/dist/shared/luxen-form-associated-element.d.ts.map +1 -1
- package/dist/shared/rich-option.d.ts +20 -0
- package/dist/shared/rich-option.d.ts.map +1 -0
- package/dist/shared/rich-option.js +82 -0
- package/dist/shared/styles/badge-core.css +221 -0
- package/dist/shared/styles/badge-core.styles.d.ts +9 -0
- package/dist/shared/styles/badge-core.styles.d.ts.map +1 -0
- package/dist/shared/styles/badge-core.styles.js +9 -0
- package/dist/shared/styles/button-core.styles.d.ts.map +1 -1
- package/dist/shared/styles/checkbox-appearance.css +2 -2
- package/dist/shared/styles/checkbox-appearance.styles.d.ts.map +1 -1
- package/dist/shared/styles/host.styles.d.ts.map +1 -1
- package/dist/shared/styles/menu-panel.css +37 -0
- package/dist/shared/styles/menu-panel.styles.d.ts +8 -0
- package/dist/shared/styles/menu-panel.styles.d.ts.map +1 -0
- package/dist/shared/styles/menu-panel.styles.js +8 -0
- package/dist/shared/styles/picker-core.css +250 -0
- package/dist/shared/styles/picker-core.styles.d.ts +9 -0
- package/dist/shared/styles/picker-core.styles.d.ts.map +1 -0
- package/dist/shared/styles/picker-core.styles.js +9 -0
- package/dist/shared/styles/select-item-suffix.css +60 -0
- package/dist/shared/styles/select-item-suffix.styles.d.ts +8 -0
- package/dist/shared/styles/select-item-suffix.styles.d.ts.map +1 -0
- package/dist/shared/styles/select-item-suffix.styles.js +8 -0
- package/dist/shared/styles/select-item.css +98 -0
- package/dist/shared/styles/select-item.styles.d.ts +8 -0
- package/dist/shared/styles/select-item.styles.d.ts.map +1 -0
- package/dist/shared/styles/select-item.styles.js +8 -0
- package/dist/shared/styles/visually-hidden.css +27 -0
- package/dist/shared/styles/visually-hidden.styles.d.ts +8 -0
- package/dist/shared/styles/visually-hidden.styles.d.ts.map +1 -0
- package/dist/shared/styles/visually-hidden.styles.js +8 -0
- package/dist/templates/elements/combobox.md +181 -2
- package/dist/templates/elements/disclosure.md +2 -0
- package/dist/templates/elements/dropdown.md +6 -6
- package/dist/templates/elements/form-field.md +2 -2
- package/dist/templates/elements/input-otp.md +3 -3
- package/dist/templates/elements/input.md +1 -0
- package/dist/templates/elements/popover.md +3 -3
- package/dist/templates/elements/prose-editor.md +2 -1
- package/dist/templates/elements/radio-group.md +2 -2
- package/dist/templates/elements/select.md +242 -4
- package/dist/templates/elements/textarea.md +2 -4
- package/dist/translations/en.d.ts.map +1 -1
- package/dist/translations/fr.d.ts.map +1 -1
- package/dist/translations/ko.d.ts.map +1 -1
- package/package.json +21 -21
package/dist/css/preset.css
CHANGED
|
@@ -33,7 +33,6 @@ Negates a value (returns the negative).
|
|
|
33
33
|
@returns {Number} The negated value.
|
|
34
34
|
@example padding: --negate(1em);
|
|
35
35
|
*/
|
|
36
|
-
|
|
37
36
|
@function --negate(--value) {
|
|
38
37
|
result: calc(-1 * var(--value));
|
|
39
38
|
}
|
|
@@ -47,7 +46,6 @@ Linear interpolation between two values.
|
|
|
47
46
|
@returns {Number} Interpolated value.
|
|
48
47
|
@example width: --lerp(100px, 200px, 0.5);
|
|
49
48
|
*/
|
|
50
|
-
|
|
51
49
|
@function --lerp(--from, --to, --progress) {
|
|
52
50
|
result: calc(var(--from) + (var(--to) - var(--from)) * var(--progress));
|
|
53
51
|
}
|
|
@@ -63,7 +61,6 @@ Maps a value from one range to another.
|
|
|
63
61
|
@returns {Number} Mapped value.
|
|
64
62
|
@example font-size: --map-range(50vw, 320px, 1920px, 14px, 24px);
|
|
65
63
|
*/
|
|
66
|
-
|
|
67
64
|
@function --map-range(--value, --in-min, --in-max, --out-min, --out-max) {
|
|
68
65
|
--progress: clamp(0, calc((var(--value) - var(--in-min)) / (var(--in-max) - var(--in-min))), 1);
|
|
69
66
|
result: calc(var(--out-min) + (var(--out-max) - var(--out-min)) * var(--progress));
|
|
@@ -77,7 +74,6 @@ Returns the ratio of two values. Supports values with different units, unlike re
|
|
|
77
74
|
@returns {Number} The ratio between two values.
|
|
78
75
|
@example scale: --ratio(16px, 1em);
|
|
79
76
|
*/
|
|
80
|
-
|
|
81
77
|
@function --ratio(--value, --to-value) {
|
|
82
78
|
result: tan(atan2(var(--value), var(--to-value)));
|
|
83
79
|
}
|
|
@@ -94,7 +90,6 @@ Returns a semi-transparent version of any color.
|
|
|
94
90
|
@returns {Color} Color with opacity.
|
|
95
91
|
@example background: --opacity(blue, 50%);
|
|
96
92
|
*/
|
|
97
|
-
|
|
98
93
|
@function --opacity(--color, --opacity) {
|
|
99
94
|
result: rgb(from var(--color) r g b / var(--opacity));
|
|
100
95
|
}
|
|
@@ -109,7 +104,6 @@ Uses OKLab color space for perceptually uniform mixing.
|
|
|
109
104
|
@returns {Color} Lightened color.
|
|
110
105
|
@example background: --tint(blue, 20%);
|
|
111
106
|
*/
|
|
112
|
-
|
|
113
107
|
@function --tint(--color, --amount: 10%) {
|
|
114
108
|
result: color-mix(in oklab, var(--color), white var(--amount));
|
|
115
109
|
}
|
|
@@ -124,7 +118,6 @@ Uses OKLab color space for perceptually uniform mixing.
|
|
|
124
118
|
@returns {Color} Darkened color.
|
|
125
119
|
@example background: --shade(blue, 20%);
|
|
126
120
|
*/
|
|
127
|
-
|
|
128
121
|
@function --shade(--color, --amount: 10%) {
|
|
129
122
|
result: color-mix(in oklab, var(--color), black var(--amount));
|
|
130
123
|
}
|
|
@@ -139,7 +132,6 @@ Uses OKLCH color space for perceptually uniform chroma adjustment. Chroma is cla
|
|
|
139
132
|
@returns {Color} Adjusted color.
|
|
140
133
|
@example color: --saturate(red, 1.5);
|
|
141
134
|
*/
|
|
142
|
-
|
|
143
135
|
@function --saturate(--color, --amount: 1.2) {
|
|
144
136
|
result: oklch(from var(--color) l clamp(0, calc(c * var(--amount)), 0.4) h);
|
|
145
137
|
}
|
|
@@ -154,7 +146,6 @@ Uses OKLCH color space for perceptually uniform lightness adjustment. Maintains
|
|
|
154
146
|
@returns {Color} Adjusted color.
|
|
155
147
|
@example background: --lighten(blue, 20%);
|
|
156
148
|
*/
|
|
157
|
-
|
|
158
149
|
@function --lighten(--color, --amount: 10%) {
|
|
159
150
|
result: oklch(from var(--color) clamp(0, calc(l + var(--amount) / 100%), 1) c h);
|
|
160
151
|
}
|
|
@@ -169,7 +160,6 @@ Uses OKLCH color space for perceptually uniform lightness adjustment. Unlike `--
|
|
|
169
160
|
@returns {Color} Darkened color.
|
|
170
161
|
@example background: --darken(blue, 20%);
|
|
171
162
|
*/
|
|
172
|
-
|
|
173
163
|
@function --darken(--color, --amount: 10%) {
|
|
174
164
|
result: oklch(from var(--color) clamp(0, calc(l - var(--amount) / 100%), 1) c h);
|
|
175
165
|
}
|
|
@@ -184,7 +174,6 @@ Uses OKLCH color space for perceptually uniform hue rotation.
|
|
|
184
174
|
@returns {Color} Color with rotated hue.
|
|
185
175
|
@example background: --rotate-hue(blue, 180deg);
|
|
186
176
|
*/
|
|
187
|
-
|
|
188
177
|
@function --rotate-hue(--color, --degrees: 30deg) {
|
|
189
178
|
result: oklch(from var(--color) l c calc(h + var(--degrees)));
|
|
190
179
|
}
|
|
@@ -198,7 +187,6 @@ Uses OKLCH color space for perceptually accurate complementary colors.
|
|
|
198
187
|
@returns {Color} Complementary color.
|
|
199
188
|
@example border-color: --complement(blue);
|
|
200
189
|
*/
|
|
201
|
-
|
|
202
190
|
@function --complement(--color) {
|
|
203
191
|
result: oklch(from var(--color) l c calc(h + 180deg));
|
|
204
192
|
}
|
|
@@ -210,7 +198,6 @@ Inverts a color.
|
|
|
210
198
|
@returns {Color} Inverted color.
|
|
211
199
|
@example background: --invert(white);
|
|
212
200
|
*/
|
|
213
|
-
|
|
214
201
|
@function --invert(--color) {
|
|
215
202
|
result: rgb(from var(--color) calc(255 - r) calc(255 - g) calc(255 - b) / alpha);
|
|
216
203
|
}
|
|
@@ -224,7 +211,6 @@ Uses OKLCH color space by setting chroma to 0.
|
|
|
224
211
|
@returns {Color} Grayscale color.
|
|
225
212
|
@example filter: --grayscale(var(--brand-color));
|
|
226
213
|
*/
|
|
227
|
-
|
|
228
214
|
@function --grayscale(--color) {
|
|
229
215
|
result: oklch(from var(--color) l 0 h);
|
|
230
216
|
}
|
|
@@ -232,7 +218,6 @@ Uses OKLCH color space by setting chroma to 0.
|
|
|
232
218
|
/*
|
|
233
219
|
Uses HWB color space trick: converts to grayscale in OKLCH, then uses HWB's blackness/whiteness values amplified by a large multiplier to create a binary black/white decision based on brightness. This provides excellent contrast decisions without needing numeric luminance extraction.
|
|
234
220
|
*/
|
|
235
|
-
|
|
236
221
|
/**
|
|
237
222
|
Returns black or white text color for optimal contrast on a background.
|
|
238
223
|
|
|
@@ -240,7 +225,6 @@ Returns black or white text color for optimal contrast on a background.
|
|
|
240
225
|
@returns {Color} Black or white for optimal readability.
|
|
241
226
|
@example color: --text-on(var(--bg-color));
|
|
242
227
|
*/
|
|
243
|
-
|
|
244
228
|
@function --text-on(--bg) {
|
|
245
229
|
result: hwb(from oklch(from var(--bg) l 0 0) h calc((b - 50) * 999) calc((w - 50) * 999));
|
|
246
230
|
}
|
|
@@ -252,7 +236,6 @@ Removes transparency from a color, making it fully opaque.
|
|
|
252
236
|
@returns {Color} Fully opaque version of the color.
|
|
253
237
|
@example background: --opaque(var(--semi-transparent-bg));
|
|
254
238
|
*/
|
|
255
|
-
|
|
256
239
|
@function --opaque(--color) {
|
|
257
240
|
result: rgb(from var(--color) r g b / 1);
|
|
258
241
|
}
|
|
@@ -268,7 +251,6 @@ Uses perceptually uniform OKLab color space for natural-looking color mixing.
|
|
|
268
251
|
@returns {Color} Mixed color.
|
|
269
252
|
@example background: --mix(red, blue, 30%);
|
|
270
253
|
*/
|
|
271
|
-
|
|
272
254
|
@function --mix(--color1, --color2, --amount: 50%) {
|
|
273
255
|
result: color-mix(in oklab, var(--color1), var(--color2) var(--amount));
|
|
274
256
|
}
|
|
@@ -283,7 +265,6 @@ Triadic colors are evenly spaced around the color wheel (120° apart).
|
|
|
283
265
|
@returns {Color} Triadic color.
|
|
284
266
|
@example color: --triadic(blue, 1);
|
|
285
267
|
*/
|
|
286
|
-
|
|
287
268
|
@function --triadic(--color, --index: 1) {
|
|
288
269
|
result: oklch(from var(--color) l c calc(h + 120deg * var(--index)));
|
|
289
270
|
}
|
|
@@ -298,7 +279,6 @@ Tetradic colors are evenly spaced around the color wheel (90° apart).
|
|
|
298
279
|
@returns {Color} Tetradic color.
|
|
299
280
|
@example color: --tetradic(blue, 2);
|
|
300
281
|
*/
|
|
301
|
-
|
|
302
282
|
@function --tetradic(--color, --index: 1) {
|
|
303
283
|
result: oklch(from var(--color) l c calc(h + 90deg * var(--index)));
|
|
304
284
|
}
|
|
@@ -310,7 +290,6 @@ Creates a semi-transparent black.
|
|
|
310
290
|
@returns {Color} Semi-transparent black.
|
|
311
291
|
@example box-shadow: 0 2px 4px --black(20%);
|
|
312
292
|
*/
|
|
313
|
-
|
|
314
293
|
@function --black(--opacity: 50%) {
|
|
315
294
|
result: rgb(0 0 0 / var(--opacity));
|
|
316
295
|
}
|
|
@@ -322,7 +301,6 @@ Creates a semi-transparent white.
|
|
|
322
301
|
@returns {Color} Semi-transparent white.
|
|
323
302
|
@example background: --white(90%);
|
|
324
303
|
*/
|
|
325
|
-
|
|
326
304
|
@function --white(--opacity: 50%) {
|
|
327
305
|
result: rgb(255 255 255 / var(--opacity));
|
|
328
306
|
}
|
|
@@ -343,7 +321,6 @@ NOTE: This function is mathematically equivalent to `--responsive-value()` but o
|
|
|
343
321
|
@returns {Length} Fluid font size.
|
|
344
322
|
@example font-size: --fluid-type(16px, 24px, 320px, 1280px);
|
|
345
323
|
*/
|
|
346
|
-
|
|
347
324
|
@function --fluid-type(--min, --max, --min-viewport: 320px, --max-viewport: 1280px) {
|
|
348
325
|
--slope: calc((var(--max) - var(--min)) / (var(--max-viewport) - var(--min-viewport)));
|
|
349
326
|
--intercept: calc(var(--min) - var(--slope) * var(--min-viewport));
|
|
@@ -359,7 +336,6 @@ Creates a modular scale value.
|
|
|
359
336
|
@returns {Length} Scaled value.
|
|
360
337
|
@example font-size: --modular-scale(1rem, 1.25, 3);
|
|
361
338
|
*/
|
|
362
|
-
|
|
363
339
|
@function --modular-scale(--base: 1rem, --ratio: 1.25, --step: 0) {
|
|
364
340
|
result: calc(var(--base) * pow(var(--ratio), var(--step)));
|
|
365
341
|
}
|
|
@@ -374,7 +350,6 @@ Returns a length (e.g., 24px) rather than a unitless ratio. Use this when you ne
|
|
|
374
350
|
@returns {Length} Line height as a length.
|
|
375
351
|
@example line-height: --line-height-length(16px, 1.6);
|
|
376
352
|
*/
|
|
377
|
-
|
|
378
353
|
@function --line-height-length(--font-size, --multiplier: 1.5) {
|
|
379
354
|
result: calc(var(--font-size) * var(--multiplier));
|
|
380
355
|
}
|
|
@@ -389,7 +364,6 @@ Returns a number (e.g., 1.5) which is recommended for better inheritance in CSS.
|
|
|
389
364
|
@returns {Number} Unitless line height ratio.
|
|
390
365
|
@example line-height: --line-height-ratio(24px, 16px);
|
|
391
366
|
*/
|
|
392
|
-
|
|
393
367
|
@function --line-height-ratio(--line-height, --font-size) {
|
|
394
368
|
result: calc(var(--line-height) / var(--font-size));
|
|
395
369
|
}
|
|
@@ -404,7 +378,6 @@ NOTE: Only works correctly with pixel font sizes. For rem/em values, use `--line
|
|
|
404
378
|
@returns {Number} Unitless line height.
|
|
405
379
|
@example line-height: --line-height-unitless(16px, 1.5);
|
|
406
380
|
*/
|
|
407
|
-
|
|
408
381
|
@function --line-height-unitless(--font-size: 16px, --multiplier: 1.5) {
|
|
409
382
|
result: calc(var(--font-size) * var(--multiplier) / 1px);
|
|
410
383
|
}
|
|
@@ -421,7 +394,6 @@ Creates responsive sidebar layout columns.
|
|
|
421
394
|
@returns {Length} Grid template columns value.
|
|
422
395
|
@example grid-template-columns: --sidebar-layout(250px, 20ch);
|
|
423
396
|
*/
|
|
424
|
-
|
|
425
397
|
@function --sidebar-layout(--sidebar-width: 20ch, --content-min: 20ch) {
|
|
426
398
|
result: minmax(var(--sidebar-width), 1fr) minmax(var(--content-min), 3fr);
|
|
427
399
|
}
|
|
@@ -434,7 +406,6 @@ Conditional border radius that removes at viewport edges.
|
|
|
434
406
|
@returns {Length} Computed border radius.
|
|
435
407
|
@example border-radius: --conditional-radius(1rem, 8px);
|
|
436
408
|
*/
|
|
437
|
-
|
|
438
409
|
@function --conditional-radius(--radius, --edge-dist: 4px) {
|
|
439
410
|
/* Multiply by large number to amplify small differences, creating binary 0/radius effect */
|
|
440
411
|
result: clamp(0px, ((100vw - var(--edge-dist)) - 100%) * 1e5, var(--radius));
|
|
@@ -452,7 +423,6 @@ NOTE: This function is mathematically equivalent to `--fluid-type()` but uses a
|
|
|
452
423
|
@returns {Length} Responsive value.
|
|
453
424
|
@example padding: --responsive-value(1rem, 2rem, 320px, 1200px);
|
|
454
425
|
*/
|
|
455
|
-
|
|
456
426
|
@function --responsive-value(--small, --large, --viewport-min: 320px, --viewport-max: 1200px) {
|
|
457
427
|
--progress: calc((100vw - var(--viewport-min)) / (var(--viewport-max) - var(--viewport-min)));
|
|
458
428
|
--clamped-progress: clamp(0, var(--progress), 1);
|
|
@@ -468,7 +438,6 @@ Calculates height from aspect ratio and maximum constraints.
|
|
|
468
438
|
@returns {Length} Computed height.
|
|
469
439
|
@example height: --aspect-height(16/9, 100vw, 100vh);
|
|
470
440
|
*/
|
|
471
|
-
|
|
472
441
|
@function --aspect-height(--ratio: 1, --max-width: 100%, --max-height: 100%) {
|
|
473
442
|
--computed-height: calc(var(--max-width) / var(--ratio));
|
|
474
443
|
result: min(var(--computed-height), var(--max-height));
|
|
@@ -483,7 +452,6 @@ Calculates width from aspect ratio and maximum constraints.
|
|
|
483
452
|
@returns {Length} Computed width.
|
|
484
453
|
@example width: --aspect-width(16/9, 100vh, 100vw);
|
|
485
454
|
*/
|
|
486
|
-
|
|
487
455
|
@function --aspect-width(--ratio: 1, --max-height: 100%, --max-width: 100%) {
|
|
488
456
|
--computed-width: calc(var(--max-height) * var(--ratio));
|
|
489
457
|
result: min(var(--computed-width), var(--max-width));
|
|
@@ -503,7 +471,6 @@ Recommended range: 0-10. Higher values create exponentially larger spacing.
|
|
|
503
471
|
@returns {Length} Computed spacing.
|
|
504
472
|
@example margin: --spacing(3);
|
|
505
473
|
*/
|
|
506
|
-
|
|
507
474
|
@function --spacing(--level: 1, --base: 0.25rem) {
|
|
508
475
|
result: calc(var(--base) * pow(2, var(--level)));
|
|
509
476
|
}
|
|
@@ -516,7 +483,6 @@ Creates inset spacing for containers.
|
|
|
516
483
|
@returns {Length} Responsive padding.
|
|
517
484
|
@example padding: --container-padding(2rem, 1200px);
|
|
518
485
|
*/
|
|
519
|
-
|
|
520
486
|
@function --container-padding(--padding: 1rem, --max-width: 1200px) {
|
|
521
487
|
--available: calc(100vw - var(--max-width));
|
|
522
488
|
--side-space: max(var(--padding), calc(var(--available) / 2));
|
|
@@ -534,7 +500,6 @@ Creates a simple easing curve value.
|
|
|
534
500
|
@returns {Number} Eased value.
|
|
535
501
|
@example transform: translateY(--ease-out(var(--progress)));
|
|
536
502
|
*/
|
|
537
|
-
|
|
538
503
|
@function --ease-out(--progress) {
|
|
539
504
|
--inverse: calc(1 - var(--progress));
|
|
540
505
|
result: calc(1 - var(--inverse) * var(--inverse));
|
|
@@ -548,7 +513,6 @@ Creates elastic easing.
|
|
|
548
513
|
@returns {Number} Eased value.
|
|
549
514
|
@example transform: scale(--elastic-ease(var(--progress), 1.2));
|
|
550
515
|
*/
|
|
551
|
-
|
|
552
516
|
@function --elastic-ease(--progress, --amplitude: 1) {
|
|
553
517
|
--p: calc(var(--progress) * 3.14159);
|
|
554
518
|
result: calc(var(--amplitude) * sin(var(--p) * 10) * exp(calc(-5 * var(--progress))));
|
|
@@ -566,7 +530,6 @@ Converts pixels to rem.
|
|
|
566
530
|
@returns {Length} Rem value.
|
|
567
531
|
@example font-size: --px-to-rem(24px);
|
|
568
532
|
*/
|
|
569
|
-
|
|
570
533
|
@function --px-to-rem(--pixels, --base: 16px) {
|
|
571
534
|
result: calc(var(--pixels) / var(--base) * 1rem);
|
|
572
535
|
}
|
|
@@ -579,7 +542,6 @@ Converts rem to pixels.
|
|
|
579
542
|
@returns {Length} Pixel value.
|
|
580
543
|
@example width: --rem-to-px(2rem);
|
|
581
544
|
*/
|
|
582
|
-
|
|
583
545
|
@function --rem-to-px(--rems, --base: 16px) {
|
|
584
546
|
result: calc(var(--rems) / 1rem * var(--base));
|
|
585
547
|
}
|
|
@@ -596,7 +558,6 @@ Creates responsive grid columns.
|
|
|
596
558
|
@returns {Grid} Grid template columns value.
|
|
597
559
|
@example grid-template-columns: --auto-grid(250px, 4);
|
|
598
560
|
*/
|
|
599
|
-
|
|
600
561
|
@function --auto-grid(--min-width: 250px, --max-cols: 4) {
|
|
601
562
|
result: repeat(
|
|
602
563
|
auto-fit,
|
|
@@ -614,7 +575,6 @@ Ensures the span is an integer value.
|
|
|
614
575
|
@returns {Span} Grid column span (rounded to integer).
|
|
615
576
|
@example grid-column: --grid-span(3, 12);
|
|
616
577
|
*/
|
|
617
|
-
|
|
618
578
|
@function --grid-span(--columns: 1, --total: 12) {
|
|
619
579
|
result: span round(clamp(1, var(--columns), var(--total)));
|
|
620
580
|
}
|
|
@@ -634,7 +594,6 @@ Generates three shadow layers. The spread-factor controls how distributed the sh
|
|
|
634
594
|
@returns {Shadow} Layered box shadow.
|
|
635
595
|
@example box-shadow: --smooth-shadow(black, 20px, 3);
|
|
636
596
|
*/
|
|
637
|
-
|
|
638
597
|
@function --smooth-shadow(--color: rgb(0 0 0 / 0.2), --size: 12px, --spread-factor: 3) {
|
|
639
598
|
--step: calc(var(--size) / var(--spread-factor));
|
|
640
599
|
result:
|
|
@@ -652,7 +611,6 @@ Creates a glow effect.
|
|
|
652
611
|
@returns {Shadow} Glow shadow.
|
|
653
612
|
@example box-shadow: --glow(cyan, 10px, 0.5);
|
|
654
613
|
*/
|
|
655
|
-
|
|
656
614
|
@function --glow(--color: white, --size: 10px, --intensity: 0.5) {
|
|
657
615
|
result: 0 0 var(--size) rgb(from var(--color) r g b / var(--intensity));
|
|
658
616
|
}
|
|
@@ -677,7 +635,6 @@ Works with ANY value type (colors, lengths, etc.), not just colors.
|
|
|
677
635
|
@example background-image: --light-dark(url(light.svg), url(dark.svg));
|
|
678
636
|
@example padding: --light-dark(0.75rem, 1rem);
|
|
679
637
|
*/
|
|
680
|
-
|
|
681
638
|
@function --light-dark(--light, --dark) {
|
|
682
639
|
result: if(color-scheme(dark): var(--dark); else: var(--light));
|
|
683
640
|
}
|
|
@@ -696,35 +653,43 @@ In dark mode, mixes the base color with black (default 15% black).
|
|
|
696
653
|
@returns {Color} Theme-adjusted color.
|
|
697
654
|
@example background: --theme-color(blue, 80%, 20%);
|
|
698
655
|
*/
|
|
699
|
-
|
|
700
656
|
@function --theme-color(--base, --light-mix: 85%, --dark-mix: 15%) {
|
|
701
657
|
--light-result: color-mix(in oklab, white var(--light-mix), var(--base));
|
|
702
658
|
--dark-result: color-mix(in oklab, black var(--dark-mix), var(--base));
|
|
703
659
|
result: if(color-scheme(dark): var(--dark-result); else: var(--light-result));
|
|
704
660
|
}
|
|
705
|
-
|
|
661
|
+
/* `.l-visually-hidden`: shared with the shadow roots that need it. */
|
|
706
662
|
@layer base {
|
|
707
|
-
.l-visually-hidden {
|
|
708
|
-
/* Visually hide this, but keep it accessible to keyboard,
|
|
709
|
-
screen reader and other assistive technologies.
|
|
710
|
-
|
|
711
|
-
Also know as CSS helper: `.visually-hidden` / `.sr-only`
|
|
712
|
-
|
|
713
|
-
References:
|
|
714
|
-
- https://www.tpgi.com/the-anatomy-of-visually-hidden/
|
|
715
|
-
- https://youtu.be/ob_M_qXeDVE?t=677
|
|
716
|
-
*/
|
|
717
|
-
position: absolute;
|
|
718
|
-
width: 1px;
|
|
719
|
-
height: 1px;
|
|
720
|
-
padding: 0;
|
|
721
|
-
margin: -1px;
|
|
722
|
-
overflow: hidden;
|
|
723
|
-
clip: rect(0, 0, 0, 0); /* for IE only */
|
|
724
|
-
white-space: nowrap;
|
|
725
|
-
border: 0;
|
|
726
|
-
}
|
|
727
663
|
|
|
664
|
+
/*
|
|
665
|
+
* `.l-visually-hidden` — hides content visually while keeping it available to
|
|
666
|
+
* screen readers and other assistive technologies (a.k.a. `.sr-only`).
|
|
667
|
+
* One source for both tiers, like button-core.css:
|
|
668
|
+
* - `@import`ed (and layered) by src/css/base/_base.css, the global helper
|
|
669
|
+
* consumers use in the light DOM, and
|
|
670
|
+
* - imported `?inline` (through visually-hidden.styles.ts) into the shadow
|
|
671
|
+
* roots that need it (l-select, l-combobox, l-stories-viewer), which the
|
|
672
|
+
* global class cannot reach. Templates bind it through `cls('visually-hidden')`
|
|
673
|
+
* so a renamed prefix keeps both in sync.
|
|
674
|
+
*
|
|
675
|
+
* References:
|
|
676
|
+
* - https://www.tpgi.com/the-anatomy-of-visually-hidden/
|
|
677
|
+
* - https://youtu.be/ob_M_qXeDVE?t=677
|
|
678
|
+
*/
|
|
679
|
+
|
|
680
|
+
.l-visually-hidden {
|
|
681
|
+
position: absolute;
|
|
682
|
+
inline-size: 1px;
|
|
683
|
+
block-size: 1px;
|
|
684
|
+
margin: -1px;
|
|
685
|
+
padding: 0;
|
|
686
|
+
overflow: hidden;
|
|
687
|
+
clip-path: inset(50%);
|
|
688
|
+
white-space: nowrap;
|
|
689
|
+
border: 0;
|
|
690
|
+
}
|
|
691
|
+
}
|
|
692
|
+
@layer base {
|
|
728
693
|
/* Hide Shadow-DOM overlay elements until their custom element upgrades.
|
|
729
694
|
Without this, slotted/inner content flashes inline before the upgrade. */
|
|
730
695
|
l-dialog:not(:defined),
|
|
@@ -735,9 +700,7 @@ In dark mode, mixes the base color with black (default 15% black).
|
|
|
735
700
|
display: none;
|
|
736
701
|
}
|
|
737
702
|
}
|
|
738
|
-
|
|
739
703
|
/* Design tokens — primitives (palette + scales) and semantic aliases. */
|
|
740
|
-
|
|
741
704
|
/* Luxen design tokens — primitives (core 5 color families + spacing + radius
|
|
742
705
|
+ text + …) and semantic aliases (text-primary, bg-fill-brand, …) in one
|
|
743
706
|
import. Equivalent to combining:
|
|
@@ -745,9 +708,7 @@ In dark mode, mixes the base color with black (default 15% black).
|
|
|
745
708
|
@import 'luxen-ui/css/tokens/primitives';
|
|
746
709
|
@import 'luxen-ui/css/tokens/aliases';
|
|
747
710
|
*/
|
|
748
|
-
|
|
749
711
|
/* Luxen design-tokens entry — imports primitives + semantic aliases. */
|
|
750
|
-
|
|
751
712
|
/* Luxen design-tokens — primitives (palette). */
|
|
752
713
|
|
|
753
714
|
:root {
|
|
@@ -983,7 +944,7 @@ In dark mode, mixes the base color with black (default 15% black).
|
|
|
983
944
|
--l-size-control-xl: 2.75rem;
|
|
984
945
|
}
|
|
985
946
|
|
|
986
|
-
/* Form component tokens (--l-form-control
|
|
947
|
+
/* Form component tokens (--l-form-control-*). */
|
|
987
948
|
|
|
988
949
|
/* Luxen design-tokens — form component tokens.
|
|
989
950
|
Opt-in via `@import "luxen-ui/css/tokens/forms"` (already bundled in the
|
|
@@ -992,56 +953,62 @@ In dark mode, mixes the base color with black (default 15% black).
|
|
|
992
953
|
:root {
|
|
993
954
|
/* Color of a control when activated (checked checkbox, selected radio, on switch). Form-wide accent, akin to native `accent-color`. A stable, saturated color that does not invert between light and dark, so the baked white glyph stays legible in both modes — override per brand. */
|
|
994
955
|
--l-form-control-activated-color: var(--l-color-blue-600);
|
|
995
|
-
/* Color of the
|
|
956
|
+
/* Color of the switch thumb on the activated (on) track. Pairs with the stable accent. The checkbox checkmark and the radio dot do not read it: they are baked-white SVGs (background-image cannot take a color), so on a light accent swap them through the elements' `--checkmark` / `--dot` properties. */
|
|
996
957
|
--l-form-control-activated-content-color: var(--l-color-white);
|
|
997
|
-
/*
|
|
958
|
+
/* Background of every form control at rest: text fields (input, textarea, select) and the box of an unchecked checkbox or radio. */
|
|
998
959
|
--l-form-control-background-color: var(--l-color-surface);
|
|
999
960
|
/* Color of the user-entered value text. */
|
|
1000
961
|
--l-form-control-value-color: var(--l-color-text-primary);
|
|
1001
962
|
/* Placeholder text color. */
|
|
1002
963
|
--l-form-control-placeholder-color: var(--l-color-text-tertiary);
|
|
1003
|
-
/*
|
|
964
|
+
/* Border color of every form control at rest: text fields and the box of a checkbox or radio. */
|
|
1004
965
|
--l-form-control-border-color: var(--l-color-border);
|
|
1005
|
-
/*
|
|
966
|
+
/* Border width of text fields and of the checkbox and radio box. */
|
|
1006
967
|
--l-form-control-border-width: 1px;
|
|
1007
|
-
/*
|
|
968
|
+
/* Corner radius of text fields (input, textarea, select, input group). Toggles keep their own shape. */
|
|
1008
969
|
--l-form-control-border-radius: var(--l-radius-md);
|
|
1009
|
-
/*
|
|
970
|
+
/* Border color of a hovered form control (text fields, checkbox, radio). Also tints the hover halo of an unchecked checkbox or radio. */
|
|
1010
971
|
--l-form-control-border-color-hover: var(--l-color-text-tertiary);
|
|
1011
|
-
/*
|
|
972
|
+
/* Border color of an invalid form control (text fields, checkbox, radio), and the ring around an invalid switch. */
|
|
1012
973
|
--l-form-control-border-color-invalid: var(--l-color-bg-fill-danger-strong);
|
|
1013
|
-
/* Background of a disabled
|
|
1014
|
-
--l-form-control-disabled
|
|
1015
|
-
/* Border color of a disabled text
|
|
1016
|
-
--l-form-control-disabled
|
|
1017
|
-
/*
|
|
1018
|
-
--l-form-control-
|
|
1019
|
-
/* Mark on a disabled control that greys out through tokens rather than fading — currently the switch's thumb when it is off and disabled, sitting on the pale --l-form-control-disabled
|
|
1020
|
-
--l-form-control-
|
|
974
|
+
/* Background of a disabled form control: text fields, the box of an unchecked checkbox or radio, and the track of an off switch — a faint ink wash (reinforces non-interactivity, instead of fading the whole control with opacity). Translucent rather than a solid grey so it composites onto whatever sits behind: a disabled field reads the same on a card, an alert, or a dialog, where an opaque fill would show as a mismatched patch. On the default surface it lands within a step of the former solid --l-color-bg-disabled, in both light and dark. */
|
|
975
|
+
--l-form-control-background-color-disabled: color-mix(in oklab, var(--l-color-text-primary) 6%, transparent);
|
|
976
|
+
/* Border color of a disabled form control: text fields and the box of an unchecked checkbox or radio. Translucent for the same reason as --l-form-control-background-color-disabled, and derived from the same ink so fill and border stay in step under any theme. 20% is the alpha that reproduces the former solid --l-color-border-disabled on the default surface in both modes; 25% (the CSSWG default-UA proposal) drifts bright enough in dark mode to read as an enabled border. */
|
|
977
|
+
--l-form-control-border-color-disabled: color-mix(in oklab, var(--l-color-text-primary) 20%, transparent);
|
|
978
|
+
/* Text color of a disabled control and of its field: the value and placeholder, plus the label, hint and required indicator of a disabled `l-form-field` (and the legend and labels of a `fieldset:disabled`). Deliberately opaque, unlike the fill and border: text is the one layer that must not composite. An ink-derived alpha assumes the backdrop luminance matches the color scheme, so on a dark card in light mode a translucent value would fade dark-on-dark to nothing — a solid grey stays legible either way. */
|
|
979
|
+
--l-form-control-text-color-disabled: var(--l-color-text-disabled);
|
|
980
|
+
/* Mark on a disabled control that greys out through tokens rather than fading — currently the switch's thumb when it is off and disabled, sitting on the pale --l-form-control-background-color-disabled. A mid grey that holds in both light and dark, so the mark keeps past 3:1 against that fill either way; the lighter --l-form-control-text-color-disabled would drop below it. Decoupled from text tokens for the same reason as --l-form-control-track-color-off. Activated controls (checked checkbox, selected radio, on switch) do not use this — they fade instead, keeping their accent tint. */
|
|
981
|
+
--l-form-control-mark-color-disabled: var(--l-color-gray-500);
|
|
1021
982
|
/* Box size of toggle controls (checkbox, radio, switch). Relative to font size so it scales with the label. */
|
|
1022
983
|
--l-form-control-toggle-size: 1.25em;
|
|
1023
984
|
/* Thickness of the hover halo ring on toggle controls (checkbox, radio, switch), as a fraction of the toggle size. Single source for the shared toggle hover language. */
|
|
1024
985
|
--l-form-control-toggle-halo-ratio: 0.22;
|
|
1025
986
|
/* Off-state track fill of the switch. A mid grey that holds in both light and dark so the white thumb keeps ~5:1 contrast either way — decoupled from text tokens so re-theming body text never moves the track. */
|
|
1026
|
-
--l-form-control-track-off
|
|
1027
|
-
/* Height of text
|
|
987
|
+
--l-form-control-track-color-off: var(--l-color-gray-500);
|
|
988
|
+
/* Height of text fields (input, textarea, select, input group, l-select, l-combobox). Checkbox, radio and switch are sized by --l-form-control-toggle-size instead. */
|
|
1028
989
|
--l-form-control-height: var(--l-size-control-md);
|
|
1029
|
-
/* Horizontal padding of text
|
|
990
|
+
/* Horizontal padding of text fields (input, textarea, select, input group). */
|
|
1030
991
|
--l-form-control-padding-inline: var(--l-spacing-3);
|
|
1031
|
-
/*
|
|
992
|
+
/* Glyph size of the actions and indicators at the end of a text control: the clear (×) and the chevron of l-select / l-combobox, the chevron of the native `.l-select`, the native search clear and date/time picker icon of an input, and the password toggle of l-input-group. Only the glyph — each action's hit area follows the control height. Relative to font size by default; set a length to enlarge the glyphs on taller controls. */
|
|
993
|
+
--l-form-control-icon-size: 1em;
|
|
994
|
+
/* Color of an `l-form-field` label (and of a radio group legend). */
|
|
1032
995
|
--l-form-control-label-color: var(--l-color-text-primary);
|
|
1033
|
-
/*
|
|
996
|
+
/* Color of the helper text below a control (`.l-hint`). */
|
|
1034
997
|
--l-form-control-hint-color: var(--l-color-text-secondary);
|
|
1035
|
-
/*
|
|
1036
|
-
--l-form-control-error-color: var(--l-color-text-danger);
|
|
1037
|
-
/*
|
|
998
|
+
/* Color of the error message text (`.l-error`) shown when the field is invalid. The message only — the invalid border is --l-form-control-border-color-invalid. */
|
|
999
|
+
--l-form-control-error-message-color: var(--l-color-text-danger);
|
|
1000
|
+
/* Indicator appended to the label of a required field, as a CSS `content` value: a symbol (the default asterisk) or text, e.g. `" (required)"`. */
|
|
1038
1001
|
--l-form-control-required-content: '*';
|
|
1039
|
-
/* Color of the required
|
|
1002
|
+
/* Color of the required indicator (--l-form-control-required-content). */
|
|
1040
1003
|
--l-form-control-required-color: var(--l-color-text-danger);
|
|
1041
|
-
/*
|
|
1042
|
-
--l-form-
|
|
1043
|
-
/* Horizontal
|
|
1044
|
-
--l-form-
|
|
1004
|
+
/* Space between the parts inside one `l-form-field`: label, control, hint and error, stacked vertically (in an inline field, between the label and its messages). Tight, so the label and helper text sit close to the control. Not the space between two fields — the form layout owns that. */
|
|
1005
|
+
--l-form-control-label-gap: var(--l-spacing-1);
|
|
1006
|
+
/* Horizontal space between a toggle control (checkbox, radio, switch) and its label in an inline `l-form-field`. */
|
|
1007
|
+
--l-form-control-choice-label-gap: var(--l-spacing-2);
|
|
1008
|
+
/* Background of the `<mark>` wrapping the part of an option that matches the search query, in the listbox of `l-combobox` and searchable `l-select` (plain label, or a rich option's title and description). A soft marker tint, light enough to keep the option text readable on a hovered or active row. Setting it to `transparent` leaves only --l-form-control-match-font-weight to mark the match — pick a weight above the option text's then, since a rich `l-select` title is already semibold. */
|
|
1009
|
+
--l-form-control-match-background-color: light-dark(var(--l-color-yellow-100), var(--l-color-yellow-900));
|
|
1010
|
+
/* Font weight of the search-query match in `l-combobox` and searchable `l-select` options. Pairs with --l-form-control-match-background-color; set to `inherit` to mark the match with the background alone. */
|
|
1011
|
+
--l-form-control-match-font-weight: var(--l-font-weight-semibold);
|
|
1045
1012
|
}
|
|
1046
1013
|
|
|
1047
1014
|
/* Tooltip component token (--l-tooltip-background-color). */
|
|
@@ -1055,3 +1022,34 @@ In dark mode, mixes the base color with black (default 15% black).
|
|
|
1055
1022
|
/* Tooltip surface color — dark in light mode, light in dark mode. Neutral by design; not tied to --l-color-bg-fill-brand, so changing the brand color does not recolor tooltips. Override globally to re-skin every tooltip, or use the per-instance --background-color custom property on a single `<l-tooltip>`. */
|
|
1056
1023
|
--l-tooltip-background-color: light-dark(var(--l-color-gray-900), var(--l-color-gray-50));
|
|
1057
1024
|
}
|
|
1025
|
+
|
|
1026
|
+
/* Popover and menu-item tokens (--l-popover-*, --l-menu-item-*): panels
|
|
1027
|
+
anchored to a trigger and their rows. */
|
|
1028
|
+
|
|
1029
|
+
/* Luxen design-tokens — popover and menu-item component tokens.
|
|
1030
|
+
Bundled in the Luxen preset via `luxen-ui/css/tokens`. Geometry and type of
|
|
1031
|
+
the panels anchored to a trigger (dropdown, popover, listbox, select picker)
|
|
1032
|
+
and of the rows inside them. */
|
|
1033
|
+
|
|
1034
|
+
:root {
|
|
1035
|
+
/* Corner radius of a panel anchored to a trigger (dropdown menu, popover, listbox, select picker). Each element still exposes its own `--border-radius` knob for a one-off override. Not for dialogs or drawers. */
|
|
1036
|
+
--l-popover-border-radius: var(--l-radius-md);
|
|
1037
|
+
/* Inset between a menu or listbox panel's border and its rows. Also the vertical margin of an `<hr>` separator, which bleeds through it to the panel edges. Not applied to `l-popover`, whose content brings its own spacing. */
|
|
1038
|
+
--l-popover-padding: var(--l-spacing-1);
|
|
1039
|
+
/* Elevation of a panel anchored to a trigger. Aliases --l-shadow-md so popovers can be re-elevated without moving every medium shadow. Modal surfaces use their own, higher elevation. */
|
|
1040
|
+
--l-popover-shadow: var(--l-shadow-md);
|
|
1041
|
+
/* Text size inside an anchored panel — menu items, listbox options, popover body. */
|
|
1042
|
+
--l-popover-font-size: var(--l-text-sm);
|
|
1043
|
+
/* Line height inside an anchored panel. Pairs with --l-popover-font-size; a row's first line box (font-size × line-height) is what checkmarks and suffixes centre on. */
|
|
1044
|
+
--l-popover-line-height: 1.5;
|
|
1045
|
+
/* Minimum height of a row in a menu or listbox — `l-dropdown-item`, `l-select` / `l-combobox` options, native `.l-select` options (36px). A comfortable pointer and touch target, well above the WCAG 2.5.8 24px floor. Rich rows (description, media) grow past it. */
|
|
1046
|
+
--l-menu-item-min-height: 2.25rem;
|
|
1047
|
+
/* Vertical padding of a menu item or listbox option. Select rows never go below it, and centre a single line on --l-menu-item-min-height. */
|
|
1048
|
+
--l-menu-item-padding-block: var(--l-spacing-1_5);
|
|
1049
|
+
/* Horizontal padding of a menu item or listbox option. Section labels (`l-dropdown-label`) use it too, so they line up with the rows below them. */
|
|
1050
|
+
--l-menu-item-padding-inline: var(--l-spacing-2);
|
|
1051
|
+
/* Gap between the parts of a menu item or option — check, icon, label, suffix. */
|
|
1052
|
+
--l-menu-item-gap: var(--l-spacing-2);
|
|
1053
|
+
/* Corner radius of a row's hover / active tint, inset inside the popover's own radius. */
|
|
1054
|
+
--l-menu-item-border-radius: var(--l-radius-sm);
|
|
1055
|
+
}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
/* Luxen semantic aliases only — text-primary, bg-fill-brand, border-interactive, …
|
|
2
2
|
Each one references a primitive via `var(--l-color-*)`, so primitives must be
|
|
3
3
|
defined (either via 'luxen-ui/css/tokens/primitives' or by your own mapping).
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
/* Luxen design-tokens — semantic aliases. */
|
|
4
|
+
*//* Luxen design-tokens — semantic aliases. */
|
|
7
5
|
|
|
8
6
|
:root {
|
|
9
7
|
/* Main body text, headings, and high-emphasis content. Use as the default text color throughout the UI. */
|