luxen-ui 0.22.0 → 0.23.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 +47 -3
- 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 +15 -4
- package/cdn/elements/combobox/combobox.d.ts.map +1 -1
- package/cdn/elements/combobox/combobox.js +35 -33
- 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 +13 -5
- 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 -3
- 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.map +1 -1
- package/cdn/elements/dropdown-label/index.js.map +1 -1
- package/cdn/elements/form-field/form-field.d.ts +1 -0
- 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-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.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 +4 -4
- 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 +11 -5
- package/cdn/elements/select/select.d.ts.map +1 -1
- package/cdn/elements/select/select.js +62 -57
- 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 +33 -33
- 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 -4
- 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 +1 -1
- package/cdn/shared/controllers/listbox-nav.d.ts.map +1 -1
- package/cdn/shared/controllers/listbox-nav.js.map +1 -1
- package/cdn/shared/controllers/popover.d.ts +2 -2
- 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.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/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/standalone.css +273 -233
- package/cdn/standalone.js +40349 -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 +1 -48
- package/cdn/styles/elements/badge.css +202 -182
- package/cdn/styles/elements/checkbox.css +1 -4
- package/cdn/styles/elements/select.css +71 -3
- package/cdn/styles/preset.css +4 -49
- package/cdn/styles/tokens/aliases.css +1 -3
- package/cdn/styles/tokens/forms.css +5 -3
- package/cdn/styles/tokens/primitives.css +1 -3
- package/cdn/styles/tokens.css +5 -5
- 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 +1 -48
- package/dist/css/elements/badge.css +202 -182
- package/dist/css/elements/checkbox.css +1 -4
- package/dist/css/elements/select.css +71 -3
- package/dist/css/preset.css +4 -49
- package/dist/css/tokens/aliases.css +1 -3
- package/dist/css/tokens/forms.css +5 -3
- package/dist/css/tokens/primitives.css +1 -3
- package/dist/css/tokens.css +5 -5
- package/dist/custom-elements.json +47 -3
- 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 +7 -3
- package/dist/elements/combobox/combobox.d.ts +12 -1
- package/dist/elements/combobox/combobox.d.ts.map +1 -1
- package/dist/elements/combobox/combobox.js +52 -46
- 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.d.ts +8 -0
- package/dist/elements/dropdown/dropdown.d.ts.map +1 -1
- package/dist/elements/dropdown/dropdown.js +33 -8
- package/dist/elements/dropdown-item/dropdown-item.d.ts.map +1 -1
- package/dist/elements/dropdown-item/dropdown-item.js +3 -3
- package/dist/elements/dropdown-label/dropdown-label.d.ts.map +1 -1
- package/dist/elements/form-field/form-field.d.ts +1 -0
- package/dist/elements/form-field/form-field.d.ts.map +1 -1
- package/dist/elements/form-field/form-field.js +14 -2
- package/dist/elements/icon/icon.d.ts.map +1 -1
- package/dist/elements/input-group/input-group.d.ts.map +1 -1
- package/dist/elements/input-otp/input-otp.d.ts.map +1 -1
- package/dist/elements/input-stepper/input-stepper.d.ts.map +1 -1
- package/dist/elements/popover/popover.d.ts.map +1 -1
- package/dist/elements/popover/popover.js +5 -5
- 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 +12 -6
- package/dist/elements/select/select.d.ts +8 -3
- package/dist/elements/select/select.d.ts.map +1 -1
- package/dist/elements/select/select.js +68 -60
- 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.d.ts.map +1 -1
- package/dist/elements/stories-viewer/stories-viewer.js +16 -16
- 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.map +1 -1
- package/dist/elements/tooltip/tooltip.js +5 -5
- 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 +23 -2
- package/dist/metadata/index.json +47 -5
- package/dist/metadata/prose-editor.json +1 -1
- package/dist/metadata/select.json +22 -1
- 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.map +1 -1
- package/dist/shared/controllers/popover.d.ts.map +1 -1
- 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.styles.d.ts.map +1 -1
- package/dist/shared/styles/host.styles.d.ts.map +1 -1
- 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/templates/elements/combobox.md +155 -1
- package/dist/templates/elements/prose-editor.md +2 -1
- package/dist/templates/elements/radio-group.md +2 -2
- package/dist/templates/elements/select.md +212 -3
- 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
|
@@ -1,209 +1,229 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* The badge appearance lives in badge-core.css so shadow-DOM elements that render
|
|
3
|
+
* rich content (l-select / l-combobox options) can adopt it too; layered here
|
|
4
|
+
* into `@layer components`.
|
|
5
|
+
*/
|
|
1
6
|
@layer components {
|
|
7
|
+
|
|
8
|
+
/*
|
|
9
|
+
* Shared `l-badge` appearance — the single source of truth for the badge's look.
|
|
10
|
+
* Lives in the HTML tree so it is both:
|
|
11
|
+
* - `@import`ed (and layered) by src/css/elements/badge.css for light-DOM
|
|
12
|
+
* badges, and
|
|
13
|
+
* - imported `?inline` into shadow-DOM elements whose rendered content can
|
|
14
|
+
* carry a badge (l-select / l-combobox copy each rich option's markup into
|
|
15
|
+
* their shadow root, where the global badge stylesheet cannot reach).
|
|
16
|
+
*
|
|
17
|
+
* Intentionally UNLAYERED, like button-core.css: the light-DOM import wraps it in
|
|
18
|
+
* `@layer components` via `@import … layer(components)`, while shadow consumers
|
|
19
|
+
* want it unlayered alongside their own (also unlayered) styles.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/*
|
|
23
|
+
Autonomous custom elements
|
|
24
|
+
https://blog.jim-nielsen.com/2021/custom-elements-without-js/
|
|
25
|
+
*/
|
|
26
|
+
l-badge {
|
|
27
|
+
/* Per-variant primitives — set by [variant], consumed by appearance. The
|
|
28
|
+
public hooks that override them are threaded at the declaration sites
|
|
29
|
+
below rather than here, so this whole machinery stays untouched: a
|
|
30
|
+
consumer value is not competing with `[variant]` / `[appearance]` /
|
|
31
|
+
`[pill]` on specificity, it sits under them.
|
|
32
|
+
|
|
33
|
+
Four hooks, and each one earns its place by hiding something a consumer
|
|
34
|
+
would otherwise have to know:
|
|
35
|
+
|
|
36
|
+
--text-color the line is a tint of it, so one declaration
|
|
37
|
+
repaints the whole chip
|
|
38
|
+
--background-color which per-appearance token it is replacing
|
|
39
|
+
--border-color the 30% mix, and that it holds through `filled`,
|
|
40
|
+
whose default line is transparent
|
|
41
|
+
--border-radius that the corner is a squircle, not a plain arc
|
|
42
|
+
|
|
43
|
+
Size and spacing get no hook on purpose. `--height` / `--font-size` /
|
|
44
|
+
`--padding-inline` would be pass-throughs to the identically named
|
|
45
|
+
properties declared a few lines below, hiding nothing — and `size` is
|
|
46
|
+
already the API for that axis. Three steps are the design; a badge that
|
|
47
|
+
can be dialled to any height stops being a size step and starts being a
|
|
48
|
+
box.
|
|
49
|
+
|
|
50
|
+
The line derives from `currentColor` rather than from `--_text-color`, so
|
|
51
|
+
it follows the ink whoever set it — the hook, a variant, or a consumer's
|
|
52
|
+
own `color` declaration. */
|
|
53
|
+
--_text-color: var(--l-color-text-neutral);
|
|
54
|
+
--_background-color: transparent;
|
|
55
|
+
--_border-color: color-mix(in oklab, currentColor 30%, transparent);
|
|
56
|
+
--_border-radius: var(--l-radius-md);
|
|
57
|
+
|
|
58
|
+
/* Size defaults (md) */
|
|
59
|
+
--_height: 1.375rem;
|
|
60
|
+
--_font-size: var(--l-text-xs);
|
|
61
|
+
--_padding-inline: 0.375rem;
|
|
62
|
+
--_gap: 0.25rem;
|
|
63
|
+
|
|
64
|
+
display: inline-flex;
|
|
65
|
+
align-items: center;
|
|
66
|
+
gap: var(--_gap);
|
|
67
|
+
min-height: var(--_height);
|
|
68
|
+
padding-block: 0.25rem;
|
|
69
|
+
padding-inline: var(--_padding-inline);
|
|
70
|
+
border: 1px solid var(--border-color, var(--_border-color));
|
|
71
|
+
border-radius: var(--border-radius, var(--_border-radius));
|
|
72
|
+
corner-shape: squircle;
|
|
73
|
+
background-color: var(--background-color, var(--_background-color));
|
|
74
|
+
color: var(--text-color, var(--_text-color));
|
|
75
|
+
font-family: var(--l-font-neo-grotesque);
|
|
76
|
+
font-size: var(--_font-size);
|
|
77
|
+
font-weight: var(--l-font-weight-medium);
|
|
78
|
+
line-height: 1;
|
|
79
|
+
text-box: trim-both cap alphabetic;
|
|
80
|
+
|
|
2
81
|
/*
|
|
3
|
-
|
|
4
|
-
|
|
82
|
+
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
|
|
83
|
+
🆂🅸🆉🅴🆂
|
|
84
|
+
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
|
|
5
85
|
*/
|
|
6
|
-
l-badge {
|
|
7
|
-
/* Per-variant primitives — set by [variant], consumed by appearance. The
|
|
8
|
-
public hooks that override them are threaded at the declaration sites
|
|
9
|
-
below rather than here, so this whole machinery stays untouched: a
|
|
10
|
-
consumer value is not competing with `[variant]` / `[appearance]` /
|
|
11
|
-
`[pill]` on specificity, it sits under them.
|
|
12
|
-
|
|
13
|
-
Four hooks, and each one earns its place by hiding something a consumer
|
|
14
|
-
would otherwise have to know:
|
|
15
|
-
|
|
16
|
-
--text-color the line is a tint of it, so one declaration
|
|
17
|
-
repaints the whole chip
|
|
18
|
-
--background-color which per-appearance token it is replacing
|
|
19
|
-
--border-color the 30% mix, and that it holds through `filled`,
|
|
20
|
-
whose default line is transparent
|
|
21
|
-
--border-radius that the corner is a squircle, not a plain arc
|
|
22
|
-
|
|
23
|
-
Size and spacing get no hook on purpose. `--height` / `--font-size` /
|
|
24
|
-
`--padding-inline` would be pass-throughs to the identically named
|
|
25
|
-
properties declared a few lines below, hiding nothing — and `size` is
|
|
26
|
-
already the API for that axis. Three steps are the design; a badge that
|
|
27
|
-
can be dialled to any height stops being a size step and starts being a
|
|
28
|
-
box.
|
|
29
|
-
|
|
30
|
-
The line derives from `currentColor` rather than from `--_text-color`, so
|
|
31
|
-
it follows the ink whoever set it — the hook, a variant, or a consumer's
|
|
32
|
-
own `color` declaration. */
|
|
33
|
-
--_text-color: var(--l-color-text-neutral);
|
|
34
|
-
--_background-color: transparent;
|
|
35
|
-
--_border-color: color-mix(in oklab, currentColor 30%, transparent);
|
|
36
|
-
--_border-radius: var(--l-radius-md);
|
|
37
|
-
|
|
38
|
-
/* Size defaults (md) */
|
|
39
|
-
--_height: 1.375rem;
|
|
40
|
-
--_font-size: var(--l-text-xs);
|
|
41
|
-
--_padding-inline: 0.375rem;
|
|
42
|
-
--_gap: 0.25rem;
|
|
43
|
-
|
|
44
|
-
display: inline-flex;
|
|
45
|
-
align-items: center;
|
|
46
|
-
gap: var(--_gap);
|
|
47
|
-
min-height: var(--_height);
|
|
48
|
-
padding-block: 0.25rem;
|
|
49
|
-
padding-inline: var(--_padding-inline);
|
|
50
|
-
border: 1px solid var(--border-color, var(--_border-color));
|
|
51
|
-
border-radius: var(--border-radius, var(--_border-radius));
|
|
52
|
-
corner-shape: squircle;
|
|
53
|
-
background-color: var(--background-color, var(--_background-color));
|
|
54
|
-
color: var(--text-color, var(--_text-color));
|
|
55
|
-
font-family: var(--l-font-neo-grotesque);
|
|
56
|
-
font-size: var(--_font-size);
|
|
57
|
-
font-weight: var(--l-font-weight-medium);
|
|
58
|
-
line-height: 1;
|
|
59
|
-
text-box: trim-both cap alphabetic;
|
|
60
|
-
|
|
61
|
-
/*
|
|
62
|
-
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
|
|
63
|
-
🆂🅸🆉🅴🆂
|
|
64
|
-
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
|
|
65
|
-
*/
|
|
66
|
-
|
|
67
|
-
&[size='sm'] {
|
|
68
|
-
--_height: 1.25rem;
|
|
69
|
-
--_padding-inline: 0.25rem;
|
|
70
|
-
--_gap: 0.125rem;
|
|
71
|
-
}
|
|
72
|
-
&[size='lg'] {
|
|
73
|
-
--_height: 1.5rem;
|
|
74
|
-
--_font-size: var(--l-text-sm);
|
|
75
|
-
--_padding-inline: 0.5rem;
|
|
76
|
-
}
|
|
77
86
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
87
|
+
&[size='sm'] {
|
|
88
|
+
--_height: 1.25rem;
|
|
89
|
+
--_padding-inline: 0.25rem;
|
|
90
|
+
--_gap: 0.125rem;
|
|
91
|
+
}
|
|
92
|
+
&[size='lg'] {
|
|
93
|
+
--_height: 1.5rem;
|
|
94
|
+
--_font-size: var(--l-text-sm);
|
|
95
|
+
--_padding-inline: 0.5rem;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/*
|
|
99
|
+
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
|
|
100
|
+
🆅🅰🆁🅸🅰🅽🆃🆂
|
|
101
|
+
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
|
|
102
|
+
*/
|
|
103
|
+
|
|
104
|
+
&[variant='info'] {
|
|
105
|
+
--_text-color: var(--l-color-text-info);
|
|
106
|
+
}
|
|
107
|
+
&[variant='success'] {
|
|
108
|
+
--_text-color: var(--l-color-text-success);
|
|
109
|
+
}
|
|
110
|
+
&[variant='warning'] {
|
|
111
|
+
--_text-color: var(--l-color-text-warning);
|
|
112
|
+
}
|
|
113
|
+
&[variant='danger'] {
|
|
114
|
+
--_text-color: var(--l-color-text-danger);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/*
|
|
118
|
+
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
|
|
119
|
+
🅰🅿🅿🅴🅰🆁🅰🅽🅲🅴
|
|
120
|
+
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
|
|
121
|
+
*/
|
|
122
|
+
|
|
123
|
+
&[appearance='filled'] {
|
|
124
|
+
--_background-color: var(--l-color-bg-fill-neutral-subtle);
|
|
125
|
+
--_border-color: transparent;
|
|
83
126
|
|
|
84
127
|
&[variant='info'] {
|
|
85
|
-
--
|
|
128
|
+
--_background-color: var(--l-color-bg-fill-info-subtle);
|
|
86
129
|
}
|
|
87
130
|
&[variant='success'] {
|
|
88
|
-
--
|
|
131
|
+
--_background-color: var(--l-color-bg-fill-success-subtle);
|
|
89
132
|
}
|
|
90
133
|
&[variant='warning'] {
|
|
91
|
-
--
|
|
134
|
+
--_background-color: var(--l-color-bg-fill-warning-subtle);
|
|
92
135
|
}
|
|
93
136
|
&[variant='danger'] {
|
|
94
|
-
--
|
|
137
|
+
--_background-color: var(--l-color-bg-fill-danger-subtle);
|
|
95
138
|
}
|
|
139
|
+
}
|
|
96
140
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
🅰🅿🅿🅴🅰🆁🅰🅽🅲🅴
|
|
100
|
-
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
|
|
101
|
-
*/
|
|
102
|
-
|
|
103
|
-
&[appearance='filled'] {
|
|
104
|
-
--_background-color: var(--l-color-bg-fill-neutral-subtle);
|
|
105
|
-
--_border-color: transparent;
|
|
106
|
-
|
|
107
|
-
&[variant='info'] {
|
|
108
|
-
--_background-color: var(--l-color-bg-fill-info-subtle);
|
|
109
|
-
}
|
|
110
|
-
&[variant='success'] {
|
|
111
|
-
--_background-color: var(--l-color-bg-fill-success-subtle);
|
|
112
|
-
}
|
|
113
|
-
&[variant='warning'] {
|
|
114
|
-
--_background-color: var(--l-color-bg-fill-warning-subtle);
|
|
115
|
-
}
|
|
116
|
-
&[variant='danger'] {
|
|
117
|
-
--_background-color: var(--l-color-bg-fill-danger-subtle);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
141
|
+
&[appearance='filled-outlined'] {
|
|
142
|
+
--_background-color: var(--l-color-bg-fill-neutral-subtle);
|
|
120
143
|
|
|
121
|
-
&[
|
|
122
|
-
--_background-color: var(--l-color-bg-fill-
|
|
123
|
-
|
|
124
|
-
&[variant='info'] {
|
|
125
|
-
--_background-color: var(--l-color-bg-fill-info-subtle);
|
|
126
|
-
}
|
|
127
|
-
&[variant='success'] {
|
|
128
|
-
--_background-color: var(--l-color-bg-fill-success-subtle);
|
|
129
|
-
}
|
|
130
|
-
&[variant='warning'] {
|
|
131
|
-
--_background-color: var(--l-color-bg-fill-warning-subtle);
|
|
132
|
-
}
|
|
133
|
-
&[variant='danger'] {
|
|
134
|
-
--_background-color: var(--l-color-bg-fill-danger-subtle);
|
|
135
|
-
}
|
|
144
|
+
&[variant='info'] {
|
|
145
|
+
--_background-color: var(--l-color-bg-fill-info-subtle);
|
|
136
146
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
--_background-color: var(--l-color-bg-fill-neutral-strong);
|
|
140
|
-
--_text-color: var(--l-color-surface);
|
|
141
|
-
--_border-color: transparent;
|
|
142
|
-
|
|
143
|
-
&[variant='info'] {
|
|
144
|
-
--_background-color: var(--l-color-bg-fill-info-strong);
|
|
145
|
-
--_text-color: white;
|
|
146
|
-
}
|
|
147
|
-
&[variant='success'] {
|
|
148
|
-
--_background-color: var(--l-color-bg-fill-success-strong);
|
|
149
|
-
}
|
|
150
|
-
&[variant='warning'] {
|
|
151
|
-
--_background-color: var(--l-color-bg-fill-warning-strong);
|
|
152
|
-
}
|
|
153
|
-
&[variant='danger'] {
|
|
154
|
-
--_background-color: var(--l-color-bg-fill-danger-strong);
|
|
155
|
-
--_text-color: white;
|
|
156
|
-
}
|
|
147
|
+
&[variant='success'] {
|
|
148
|
+
--_background-color: var(--l-color-bg-fill-success-subtle);
|
|
157
149
|
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
*/
|
|
164
|
-
|
|
165
|
-
/* `--border-radius` keeps the squircle; `pill` is what trades it for a true
|
|
166
|
-
arc, because a squircle at a full radius reads as a blob. */
|
|
167
|
-
&[pill] {
|
|
168
|
-
--_border-radius: var(--l-radius-full);
|
|
169
|
-
corner-shape: unset;
|
|
150
|
+
&[variant='warning'] {
|
|
151
|
+
--_background-color: var(--l-color-bg-fill-warning-subtle);
|
|
152
|
+
}
|
|
153
|
+
&[variant='danger'] {
|
|
154
|
+
--_background-color: var(--l-color-bg-fill-danger-subtle);
|
|
170
155
|
}
|
|
156
|
+
}
|
|
171
157
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
*/
|
|
158
|
+
&[appearance='accent'] {
|
|
159
|
+
--_background-color: var(--l-color-bg-fill-neutral-strong);
|
|
160
|
+
--_text-color: var(--l-color-surface);
|
|
161
|
+
--_border-color: transparent;
|
|
177
162
|
|
|
178
|
-
|
|
179
|
-
color:
|
|
180
|
-
|
|
163
|
+
&[variant='info'] {
|
|
164
|
+
--_background-color: var(--l-color-bg-fill-info-strong);
|
|
165
|
+
--_text-color: white;
|
|
166
|
+
}
|
|
167
|
+
&[variant='success'] {
|
|
168
|
+
--_background-color: var(--l-color-bg-fill-success-strong);
|
|
169
|
+
}
|
|
170
|
+
&[variant='warning'] {
|
|
171
|
+
--_background-color: var(--l-color-bg-fill-warning-strong);
|
|
172
|
+
}
|
|
173
|
+
&[variant='danger'] {
|
|
174
|
+
--_background-color: var(--l-color-bg-fill-danger-strong);
|
|
175
|
+
--_text-color: white;
|
|
181
176
|
}
|
|
182
177
|
}
|
|
183
178
|
|
|
184
|
-
/*
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
l-badge:has(:is(iconify-icon, l-icon, svg):first-child) {
|
|
196
|
-
padding-inline-start: 0.25rem;
|
|
179
|
+
/*
|
|
180
|
+
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
|
|
181
|
+
🅿🅸🅻🅻
|
|
182
|
+
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
|
|
183
|
+
*/
|
|
184
|
+
|
|
185
|
+
/* `--border-radius` keeps the squircle; `pill` is what trades it for a true
|
|
186
|
+
arc, because a squircle at a full radius reads as a blob. */
|
|
187
|
+
&[pill] {
|
|
188
|
+
--_border-radius: var(--l-radius-full);
|
|
189
|
+
corner-shape: unset;
|
|
197
190
|
}
|
|
198
191
|
|
|
199
|
-
/*
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
192
|
+
/*
|
|
193
|
+
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
|
|
194
|
+
🅸🅲🅾🅽
|
|
195
|
+
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
|
|
196
|
+
*/
|
|
197
|
+
|
|
198
|
+
iconify-icon {
|
|
199
|
+
color: currentColor;
|
|
200
|
+
height: 1em;
|
|
208
201
|
}
|
|
209
202
|
}
|
|
203
|
+
|
|
204
|
+
/* A glyph against an edge earns a tighter padding on that side: its bounding
|
|
205
|
+
box already reads as air, so the label keeps the full gutter and the chip
|
|
206
|
+
does not go lopsided.
|
|
207
|
+
|
|
208
|
+
Matches whichever icon element the consumer composes — the library's own
|
|
209
|
+
`l-icon`, a raw `iconify-icon`, or the inline `<svg>` a framework Iconify
|
|
210
|
+
binding renders. `l-icon` needs naming explicitly: its `iconify-icon` sits
|
|
211
|
+
in a shadow root this selector cannot see, so matching the inner element
|
|
212
|
+
alone silently skipped the correction (the icon still laid out — `l-icon`
|
|
213
|
+
is `display: contents` — it just sat 2px too far in). Same element set
|
|
214
|
+
`toast.css` and `story.css` already use. */
|
|
215
|
+
l-badge:has(:is(iconify-icon, l-icon, svg):first-child) {
|
|
216
|
+
padding-inline-start: 0.25rem;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/* `:not(:first-child)` is what makes a trailing icon addressable at all.
|
|
220
|
+
`:first-child` and `:last-child` count elements, not text, so an icon that
|
|
221
|
+
is the badge's only element child matches both — `<l-badge>Lyon <l-icon/>`
|
|
222
|
+
is indistinguishable from `<l-badge><l-icon/>Lyon`, and the rule above
|
|
223
|
+
already claims it. Requiring a preceding element keeps that case exactly as
|
|
224
|
+
it was and makes this one exact: wrap the label (`<span>Lyon</span>`) and
|
|
225
|
+
the icon is unambiguously at the end. */
|
|
226
|
+
l-badge:has(:is(iconify-icon, l-icon, svg):last-child:not(:first-child)) {
|
|
227
|
+
padding-inline-end: 0.25rem;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
@@ -5,9 +5,7 @@
|
|
|
5
5
|
`<l-tree-item>` in `selection="multiple"`). The `.l-checkbox` class is the
|
|
6
6
|
canonical primitive (works anywhere); `l-form-field` also auto-styles a bare
|
|
7
7
|
checkbox via a zero-specificity `:where()` selector, so inside a field no
|
|
8
|
-
class is needed (`unstyled` opts out). See the partial for details.
|
|
9
|
-
|
|
10
|
-
/* Shared checkbox appearance — the visual skin behind `.l-checkbox`.
|
|
8
|
+
class is needed (`unstyled` opts out). See the partial for details. *//* Shared checkbox appearance — the visual skin behind `.l-checkbox`.
|
|
11
9
|
|
|
12
10
|
Colocated with its `checkbox-appearance.styles.ts` wrapper so Shadow-DOM
|
|
13
11
|
elements that render their own native checkbox (e.g. `<l-tree-item>` in
|
|
@@ -164,7 +162,6 @@
|
|
|
164
162
|
`checkbox-appearance.css` partial: that partial is also loaded into Shadow-DOM
|
|
165
163
|
consumers (e.g. `l-tree-item`), which never opted into a hover glow. Mirrors
|
|
166
164
|
the radio and switch hover language (same `--_halo` flip, same ratio token). */
|
|
167
|
-
|
|
168
165
|
@layer components {
|
|
169
166
|
.l-checkbox,
|
|
170
167
|
:where(l-form-field:not([unstyled])) > input[type='checkbox']:not([role='switch']) {
|
|
@@ -12,6 +12,73 @@
|
|
|
12
12
|
- the picker (::picker(select)) and its items mirror the l-dropdown panel
|
|
13
13
|
(--l-color-surface-overlay / --l-color-border-overlay / --l-shadow-md). */
|
|
14
14
|
|
|
15
|
+
/* The rich-option suffix (`.l-select-item-suffix`) is shared with the
|
|
16
|
+
l-select / l-combobox shadow roots from select-item-suffix.css. */
|
|
17
|
+
|
|
18
|
+
@layer components {
|
|
19
|
+
|
|
20
|
+
/*
|
|
21
|
+
* Suffix of a rich option (`.l-select-item-suffix`) — a badge, count or
|
|
22
|
+
* status icon pinned to the inline-end of the row, after `.l-select-item-text`.
|
|
23
|
+
* One source for every tier, so they cannot drift apart:
|
|
24
|
+
* - `@import`ed (and layered) by src/css/elements/select.css for the native
|
|
25
|
+
* `select.l-select` picker, where `.l-select option` is the row, and
|
|
26
|
+
* - imported `?inline` into the l-select / l-combobox shadow roots, which copy
|
|
27
|
+
* each option's markup and cannot reach the global stylesheet; there
|
|
28
|
+
* `:host .option-rich` is the row. `:host` never matches in a document, so
|
|
29
|
+
* the light-DOM copy cannot reach a consumer's own `.option-rich`.
|
|
30
|
+
*
|
|
31
|
+
* A class, not a `slot="suffix"` attribute hook: in a customizable select the
|
|
32
|
+
* <option> has its own UA shadow root, so a child carrying a `slot` it has no
|
|
33
|
+
* slot for is not rendered at all. A class keeps one markup for every tier.
|
|
34
|
+
*
|
|
35
|
+
* Intentionally UNLAYERED, like button-core.css. Each tier hides the suffix in
|
|
36
|
+
* its own trigger next to its description rule.
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
/* The row's line box as an absolute length — the title's line, since the title
|
|
40
|
+
inherits the row's font and line-height. Registered so `1lh` resolves on the
|
|
41
|
+
row and is inherited as a length; unregistered it would resolve on the
|
|
42
|
+
smaller suffix. A shadow root ignores this rule, so rich-option.ts also
|
|
43
|
+
registers it from JS. */
|
|
44
|
+
@property --_select-item-line {
|
|
45
|
+
syntax: '<length>';
|
|
46
|
+
inherits: true;
|
|
47
|
+
initial-value: 0px;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
:is(.l-select option, :host .option-rich) {
|
|
51
|
+
--_select-item-line: 1lh;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.l-select-item-suffix {
|
|
55
|
+
display: inline-flex;
|
|
56
|
+
/* Never shrinks: the text column gives way first and its title truncates. */
|
|
57
|
+
flex: 0 0 auto;
|
|
58
|
+
align-items: center;
|
|
59
|
+
/* Sits on the title's line rather than the row's middle — like the checkmark
|
|
60
|
+
and the media — so a wrapping description never moves it: a box exactly one
|
|
61
|
+
title line tall, pinned to the top, centres its content on that line. Content
|
|
62
|
+
taller than the line (a badge in a tight row, an avatar) overflows it evenly
|
|
63
|
+
above and below, into the row's padding, and never moves the title. */
|
|
64
|
+
align-self: flex-start;
|
|
65
|
+
block-size: var(--_select-item-line);
|
|
66
|
+
gap: 0.25rem;
|
|
67
|
+
margin-inline-start: auto;
|
|
68
|
+
white-space: nowrap;
|
|
69
|
+
color: var(--l-color-text-tertiary);
|
|
70
|
+
font-size: 0.75rem;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/* In a picker row that carries a suffix, the text column is pinned to the top
|
|
74
|
+
too, so the title shares the suffix's line in a centred row (l-combobox).
|
|
75
|
+
Scoped to the rows: the trigger's copy of the selected option (where the
|
|
76
|
+
suffix is hidden) keeps its own centring. */
|
|
77
|
+
:is(.l-select option, :host .option-rich) > .l-select-item-text:has(~ .l-select-item-suffix) {
|
|
78
|
+
align-self: flex-start;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
15
82
|
@layer components {
|
|
16
83
|
.l-select {
|
|
17
84
|
/* Public knobs — mirror l-input so a select sits consistently among the
|
|
@@ -111,9 +178,10 @@
|
|
|
111
178
|
overflow: hidden;
|
|
112
179
|
}
|
|
113
180
|
|
|
114
|
-
/* Keep the trigger compact when a rich option is selected: only the
|
|
115
|
-
|
|
116
|
-
|
|
181
|
+
/* Keep the trigger compact when a rich option is selected: only the media
|
|
182
|
+
and title are mirrored into the value — the secondary description and the
|
|
183
|
+
suffix (badge, count, status icon) stay in the picker. */
|
|
184
|
+
& selectedcontent :is(.l-select-item-description, .l-select-item-suffix) {
|
|
117
185
|
display: none;
|
|
118
186
|
}
|
|
119
187
|
|