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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatar.js","names":[],"sources":["../../../src/html/elements/avatar/avatar.css?inline","../../../src/html/elements/avatar/avatar.ts"],"sourcesContent":[":host {\n --size: 40px;\n --_font-size: calc(var(--size) * 0.4);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n width: var(--size);\n height: var(--size);\n border-radius: calc(var(--size) * 0.15);\n isolation: isolate;\n vertical-align: middle;\n flex-shrink: 0;\n color: var(--l-color-text-secondary);\n}\n\n:host([size='xs']) {\n --size: 24px;\n --_font-size: 0.75rem;\n}\n:host([size='sm']) {\n --size: 32px;\n --_font-size: 0.875rem;\n}\n:host([size='lg']) {\n --size: 48px;\n --_font-size: 1.25rem;\n}\n:host([size='xl']) {\n --size: 56px;\n --_font-size: 1.25rem;\n}\n\nimg {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: inherit;\n}\n\n.initials {\n margin: auto;\n}\n\n.icon {\n width: 60%;\n height: 60%;\n color: currentColor;\n}\n\n.badge {\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 1;\n height: 12px;\n min-width: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n padding-inline: 2px;\n border-radius: 3px;\n box-shadow: 0 0 0 2px var(--l-color-surface);\n background-color: var(--l-color-surface);\n font-size: 0.625rem;\n font-weight: var(--l-font-weight-medium);\n font-variant-numeric: tabular-nums;\n line-height: 1;\n color: var(--l-color-text-primary);\n overflow: hidden;\n}\n\n/*\n * Inset ring via ::after so it renders on top of the <img>.\n * A box-shadow on :host would be covered by the image since\n * it fills the entire element with object-fit: cover.\n */\n.base::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: inherit;\n box-shadow: inset 0 0 0 1px light-dark(oklch(0 0 0 / 7%), oklch(100% 0 0 / 10%));\n pointer-events: none;\n}\n\n.base {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n border: none;\n border-radius: calc(var(--size) * 0.15);\n background-color: var(--color, var(--l-color-bg-fill-neutral-soft));\n /*\n * Text over --color, decided by the background's own luminance — never the\n * document mode, since --color is consumer-set and ignores light/dark.\n * The contrast-color() block below is the primary path (Baseline 2026); this\n * --_on calc() is the fallback for browsers predating it (Chrome ≤146,\n * Safari <26, Firefox <146). It approximates WCAG relative luminance with\n * squared sRGB channels (a cheap linearization, Rec. 709 weights) and flips at\n * 0.2, just above the black/white crossover (~0.179) to offset squaring\n * underestimating mid-tones — holding AA across saturated brand colors where an\n * OKLCH-lightness threshold collapses to ≈1:1 (OKLCH L tracks hue, not\n * luminance: a mid red reads \"light\" yet needs white text). --text-color lets\n * consumers force a specific brand text color, overriding both paths.\n */\n --_on: calc(\n 255 *\n (\n 1 -\n sign(\n 0.2126 * (r / 255) * (r / 255) + 0.7152 * (g / 255) * (g / 255) + 0.0722 * (b / 255) *\n (b / 255) - 0.2\n )\n ) /\n 2\n );\n color: var(--text-color, rgb(from var(--color) var(--_on) var(--_on) var(--_on)));\n font-size: var(--_font-size);\n font-weight: var(--l-font-weight-medium);\n line-height: 1;\n text-transform: uppercase;\n padding: 0;\n cursor: inherit;\n}\n\n/* Primary path: native, guaranteed-contrast black/white. contrast-color() is\n * Baseline Newly Available (2026) — Safari 26+, Firefox 146+, Chrome/Edge 147+ —\n * and supersedes the luminance approximation above where supported. @supports (not\n * declaration order) is required: the value contains var(), so a non-supporting\n * browser would treat contrast-color() as invalid-at-computed-value-time and reset\n * to `inherit` rather than falling back to the calc() line. No bg fallback inside,\n * so a bare avatar (no --color) keeps inheriting --l-color-text-secondary.\n * --text-color still wins here, overriding contrast-color()'s choice.\n * (The earlier `… vs black, white to AA` extended syntax was dropped from the spec.) */\n@supports (color: contrast-color(red)) {\n .base {\n color: var(--text-color, contrast-color(var(--color)));\n }\n}\n\nbutton.base {\n cursor: pointer;\n}\n\nbutton.base:focus-visible {\n outline: 2px solid var(--l-focus-ring);\n outline-offset: 2px;\n}\n\nbutton.base:hover {\n box-shadow: inset 0 0 0 1.5px var(--l-color-border-interactive);\n}\n\n@container style(--appearance: circle) {\n .base {\n border-radius: 50%;\n }\n}\n","import { html, nothing, svg, unsafeCSS } from 'lit';\nimport { LuxenElement } from '../../shared/luxen-element.js';\nimport { html as staticHtml, literal } from 'lit/static-html.js';\nimport { property, state } from 'lit/decorators.js';\nimport hostStyles from '../../shared/styles/host.styles.js';\nimport rawStyles from './avatar.css?inline';\n\nconst styles = unsafeCSS(rawStyles);\n\n/**\n * Extracts up to two uppercase initials from a name: the first letter of the\n * first word, plus the first letter of the last word when there is more than one.\n *\n * Splits on whitespace rather than relying on a `\\b`/`\\w` regex, which only\n * recognises ASCII and mangles accented or non-ASCII names.\n *\n * @param name - The name to extract initials from. Defaults to an empty string.\n * @return The uppercased initials, or an empty string when `name` is blank.\n *\n * @example getInitials('John Doe') // 'JD'\n * @example getInitials('Markus Nösterer') // 'MN' (accents preserved)\n * @example getInitials('Cher') // 'C' (single word → one initial)\n * @example getInitials(' John Doe ') // 'JD' (extra whitespace ignored)\n * @example getInitials('') // ''\n */\nfunction getInitials(name: string = ''): string {\n const words = name.normalize('NFC').trim().split(/\\s+/).filter(Boolean);\n if (words.length === 0) return '';\n\n // Spreading iterates by code point, so an accented letter (or an astral\n // character like an emoji) is taken whole instead of a broken half.\n // oxlint-disable-next-line typescript/no-misused-spread -- code-point-safe first char is the intent\n const firstLetter = (word: string) => [...word][0];\n\n const first = firstLetter(words[0]);\n const last = words.length > 1 ? firstLetter(words[words.length - 1]) : '';\n return (first + last).toUpperCase();\n}\n\nconst defaultIcon = svg`<svg class=\"icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z\" />\n</svg>`;\n\n/**\n * @summary An avatar component for displaying user images, initials, or a default icon.\n * @customElement l-avatar\n *\n * @cssproperty [--size=40px] - Box size (any length). Set it inline (e.g. `style=\"--size: 20px\"`) for an arbitrary size beyond the `size` token scale; the font then follows proportionally. The `size` attribute sets it to the matching token.\n * @cssproperty --color - Background fill color for initials and the default icon.\n * @cssproperty --text-color - Initials/icon color over `--color`. Defaults to an auto-derived readable color; set it to enforce a specific brand color (overrides the automatic choice).\n * @cssproperty --appearance - Set to `circle` for a fully circular avatar (default is a rounded square).\n *\n * @csspart base - The avatar container that paints `--color`; style it (e.g. `color`) to override the auto-derived text color.\n *\n * @cssClass .l-avatar-group - Flex wrapper that overlaps a row of stacked avatars.\n */\nexport class Avatar extends LuxenElement {\n static styles = [hostStyles, styles];\n\n /** Image URL. Falls back to initials (then the default icon) if it fails to load. */\n @property()\n src = '';\n\n /** Name used as the accessible label and to derive the initials fallback. */\n @property()\n name = '';\n\n /** Avatar size: `xs`, `sm`, `md` (default), `lg`, or `xl`. */\n @property({ reflect: true })\n size = 'md';\n\n /** Count shown in the corner badge. `0` hides the badge. */\n @property({ type: Number })\n badge = 0;\n\n /** Render as a `<button>` with focus ring and hover states. */\n @property({ type: Boolean, reflect: true })\n interactive = false;\n\n @state() private _hasError = false;\n\n willUpdate(changed: Map<string, unknown>) {\n if (changed.has('src')) {\n this._hasError = false;\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (!this.interactive && !this.hasAttribute('role')) {\n this.setAttribute('role', 'img');\n }\n }\n\n updated() {\n // An interactive avatar renders a focusable <button>, and a role=\"img\" node\n // must stay a leaf in the accessibility tree — so the host carries no role\n // or label and the inner button holds the accessible name (see render()).\n if (this.interactive) {\n if (this.getAttribute('role') === 'img') this.removeAttribute('role');\n this.removeAttribute('aria-label');\n } else {\n if (!this.hasAttribute('role')) this.setAttribute('role', 'img');\n if (this.name) this.setAttribute('aria-label', this.name);\n }\n\n const isCircle = getComputedStyle(this).getPropertyValue('--appearance').trim() === 'circle';\n this.style.borderRadius = isCircle ? '50%' : '';\n }\n\n private get _tag() {\n return this.interactive ? literal`button` : literal`div`;\n }\n\n render() {\n const content =\n this.src && !this._hasError\n ? html`<img\n src=${this.src}\n alt=${this.name || ''}\n @error=${this._onError}\n />`\n : this.name\n ? html`<span class=\"initials\">${getInitials(this.name)}</span>`\n : html`<slot>${defaultIcon}</slot>`;\n\n return staticHtml`\n <${this._tag}\n class=\"base\"\n part=\"base\"\n type=${this.interactive ? 'button' : nothing}\n aria-label=${this.interactive && this.name ? this.name : nothing}\n >\n ${content}\n </${this._tag}>\n ${\n this.badge\n ? html`<div\n class=\"badge\"\n aria-hidden=\"true\"\n >\n ${this.badge}\n </div>`\n : nothing\n }\n `;\n }\n\n private _onError = () => {\n this._hasError = true;\n };\n}\n"],"mappings":"oUCOA,IAAM,EAAS,EAAU,4mEAAS,EAkBlC,SAAS,EAAY,EAAe,GAAY,CAC9C,IAAM,EAAQ,EAAK,UAAU,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,OAAO,EACtE,GAAI,EAAM,SAAW,EAAG,MAAO,GAK/B,IAAM,EAAe,GAAiB,CAAC,GAAG,CAAI,CAAC,CAAC,GAIhD,OAFc,EAAY,EAAM,EAExB,GADK,EAAM,OAAS,EAAI,EAAY,EAAM,EAAM,OAAS,EAAE,EAAI,IAAA,CACjD,YAAY,CACpC,CAEA,IAAM,EAAc,CAAG;;QAiBV,EAAb,cAA4B,CAAa,wCAKjC,aAIC,aAIA,gBAIC,mBAIM,kBAEe,qBAqEJ,CACvB,KAAK,UAAY,EACnB,qBA7FgB,CAAC,EAAY,CAAM,EAwBnC,WAAW,EAA+B,CACpC,EAAQ,IAAI,KAAK,IACnB,KAAK,UAAY,GAErB,CAEA,mBAAoB,CAClB,MAAM,kBAAkB,EACpB,CAAC,KAAK,aAAe,CAAC,KAAK,aAAa,MAAM,GAChD,KAAK,aAAa,OAAQ,KAAK,CAEnC,CAEA,SAAU,CAIJ,KAAK,aACH,KAAK,aAAa,MAAM,IAAM,OAAO,KAAK,gBAAgB,MAAM,EACpE,KAAK,gBAAgB,YAAY,IAE5B,KAAK,aAAa,MAAM,GAAG,KAAK,aAAa,OAAQ,KAAK,EAC3D,KAAK,MAAM,KAAK,aAAa,aAAc,KAAK,IAAI,GAG1D,IAAM,EAAW,iBAAiB,IAAI,CAAC,CAAC,iBAAiB,cAAc,CAAC,CAAC,KAAK,IAAM,SACpF,KAAK,MAAM,aAAe,EAAW,MAAQ,EAC/C,CAEA,IAAY,MAAO,CACjB,OAAO,KAAK,YAAc,CAAO,SAAW,CAAO,KACrD,CAEA,QAAS,CACP,IAAM,EACJ,KAAK,KAAO,CAAC,KAAK,UACd,CAAI;kBACI,KAAK,IAAI;kBACT,KAAK,MAAQ,GAAG;qBACb,KAAK,SAAS;cAEzB,KAAK,KACH,CAAI,0BAA0B,EAAY,KAAK,IAAI,EAAE,SACrD,CAAI,SAAS,EAAY,SAEjC,MAAO,EAAU;SACZ,KAAK,KAAK;;;eAGJ,KAAK,YAAc,SAAW,EAAQ;qBAChC,KAAK,aAAe,KAAK,KAAO,KAAK,KAAO,EAAQ;;UAE/D,EAAQ;UACR,KAAK,KAAK;QAEZ,KAAK,MACD,CAAI;;;;gBAIA,KAAK,MAAM;oBAEf,EACL;KAEL,CAKF,KA3FG,EAAS,CAAA,EAAA,EAAA,UAAA,MAAA,IAAA,EAAA,KAIT,EAAS,CAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,KAIT,EAAS,CAAE,QAAS,EAAK,CAAC,CAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,KAI1B,EAAS,CAAE,KAAM,MAAO,CAAC,CAAA,EAAA,EAAA,UAAA,QAAA,IAAA,EAAA,KAIzB,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,CAAA,EAAA,EAAA,UAAA,cAAA,IAAA,EAAA,KAGzC,EAAM,CAAA,EAAA,EAAA,UAAA,YAAA,IAAA,EAAA"}
|
|
1
|
+
{"version":3,"file":"avatar.js","names":["unsafeCSS","rawStyles","hostStyles","nothing","_decorate","property","state","r","b","w","A","u","i","r$1","n","__decorate","host_styles_default","styles","getInitials","words","name","firstLetter","word","defaultIcon","Avatar","LuxenElement","_args","changed","isCircle","content"],"sources":["../../../src/html/elements/avatar/avatar.css?inline","../../../src/html/elements/avatar/avatar.ts"],"sourcesContent":[":host {\n --size: 40px;\n --_font-size: calc(var(--size) * 0.4);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n width: var(--size);\n height: var(--size);\n border-radius: calc(var(--size) * 0.15);\n isolation: isolate;\n vertical-align: middle;\n flex-shrink: 0;\n color: var(--l-color-text-secondary);\n}\n\n:host([size='xs']) {\n --size: 24px;\n --_font-size: 0.75rem;\n}\n:host([size='sm']) {\n --size: 32px;\n --_font-size: 0.875rem;\n}\n:host([size='lg']) {\n --size: 48px;\n --_font-size: 1.25rem;\n}\n:host([size='xl']) {\n --size: 56px;\n --_font-size: 1.25rem;\n}\n\nimg {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: inherit;\n}\n\n.initials {\n margin: auto;\n}\n\n.icon {\n width: 60%;\n height: 60%;\n color: currentColor;\n}\n\n.badge {\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 1;\n height: 12px;\n min-width: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n padding-inline: 2px;\n border-radius: 3px;\n box-shadow: 0 0 0 2px var(--l-color-surface);\n background-color: var(--l-color-surface);\n font-size: 0.625rem;\n font-weight: var(--l-font-weight-medium);\n font-variant-numeric: tabular-nums;\n line-height: 1;\n color: var(--l-color-text-primary);\n overflow: hidden;\n}\n\n/*\n * Inset ring via ::after so it renders on top of the <img>.\n * A box-shadow on :host would be covered by the image since\n * it fills the entire element with object-fit: cover.\n */\n.base::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: inherit;\n box-shadow: inset 0 0 0 1px light-dark(oklch(0 0 0 / 7%), oklch(100% 0 0 / 10%));\n pointer-events: none;\n}\n\n.base {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n border: none;\n border-radius: calc(var(--size) * 0.15);\n background-color: var(--color, var(--l-color-bg-fill-neutral-soft));\n /*\n * Text over --color, decided by the background's own luminance — never the\n * document mode, since --color is consumer-set and ignores light/dark.\n * The contrast-color() block below is the primary path (Baseline 2026); this\n * --_on calc() is the fallback for browsers predating it (Chrome ≤146,\n * Safari <26, Firefox <146). It approximates WCAG relative luminance with\n * squared sRGB channels (a cheap linearization, Rec. 709 weights) and flips at\n * 0.2, just above the black/white crossover (~0.179) to offset squaring\n * underestimating mid-tones — holding AA across saturated brand colors where an\n * OKLCH-lightness threshold collapses to ≈1:1 (OKLCH L tracks hue, not\n * luminance: a mid red reads \"light\" yet needs white text). --text-color lets\n * consumers force a specific brand text color, overriding both paths.\n */\n --_on: calc(\n 255 *\n (\n 1 -\n sign(\n 0.2126 * (r / 255) * (r / 255) + 0.7152 * (g / 255) * (g / 255) + 0.0722 * (b / 255) *\n (b / 255) - 0.2\n )\n ) /\n 2\n );\n color: var(--text-color, rgb(from var(--color) var(--_on) var(--_on) var(--_on)));\n font-size: var(--_font-size);\n font-weight: var(--l-font-weight-medium);\n line-height: 1;\n text-transform: uppercase;\n padding: 0;\n cursor: inherit;\n}\n\n/* Primary path: native, guaranteed-contrast black/white. contrast-color() is\n * Baseline Newly Available (2026) — Safari 26+, Firefox 146+, Chrome/Edge 147+ —\n * and supersedes the luminance approximation above where supported. @supports (not\n * declaration order) is required: the value contains var(), so a non-supporting\n * browser would treat contrast-color() as invalid-at-computed-value-time and reset\n * to `inherit` rather than falling back to the calc() line. No bg fallback inside,\n * so a bare avatar (no --color) keeps inheriting --l-color-text-secondary.\n * --text-color still wins here, overriding contrast-color()'s choice.\n * (The earlier `… vs black, white to AA` extended syntax was dropped from the spec.) */\n@supports (color: contrast-color(red)) {\n .base {\n color: var(--text-color, contrast-color(var(--color)));\n }\n}\n\nbutton.base {\n cursor: pointer;\n}\n\nbutton.base:focus-visible {\n outline: 2px solid var(--l-focus-ring);\n outline-offset: 2px;\n}\n\nbutton.base:hover {\n box-shadow: inset 0 0 0 1.5px var(--l-color-border-interactive);\n}\n\n@container style(--appearance: circle) {\n .base {\n border-radius: 50%;\n }\n}\n","import { html, nothing, svg, unsafeCSS } from 'lit';\nimport { LuxenElement } from '../../shared/luxen-element.js';\nimport { html as staticHtml, literal } from 'lit/static-html.js';\nimport { property, state } from 'lit/decorators.js';\nimport hostStyles from '../../shared/styles/host.styles.js';\nimport rawStyles from './avatar.css?inline';\n\nconst styles = unsafeCSS(rawStyles);\n\n/**\n * Extracts up to two uppercase initials from a name: the first letter of the\n * first word, plus the first letter of the last word when there is more than one.\n *\n * Splits on whitespace rather than relying on a `\\b`/`\\w` regex, which only\n * recognises ASCII and mangles accented or non-ASCII names.\n *\n * @param name - The name to extract initials from. Defaults to an empty string.\n * @return The uppercased initials, or an empty string when `name` is blank.\n *\n * @example getInitials('John Doe') // 'JD'\n * @example getInitials('Markus Nösterer') // 'MN' (accents preserved)\n * @example getInitials('Cher') // 'C' (single word → one initial)\n * @example getInitials(' John Doe ') // 'JD' (extra whitespace ignored)\n * @example getInitials('') // ''\n */\nfunction getInitials(name: string = ''): string {\n const words = name.normalize('NFC').trim().split(/\\s+/).filter(Boolean);\n if (words.length === 0) return '';\n\n // Spreading iterates by code point, so an accented letter (or an astral\n // character like an emoji) is taken whole instead of a broken half.\n // oxlint-disable-next-line typescript/no-misused-spread -- code-point-safe first char is the intent\n const firstLetter = (word: string) => [...word][0];\n\n const first = firstLetter(words[0]);\n const last = words.length > 1 ? firstLetter(words[words.length - 1]) : '';\n return (first + last).toUpperCase();\n}\n\nconst defaultIcon = svg`<svg class=\"icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z\" />\n</svg>`;\n\n/**\n * @summary An avatar component for displaying user images, initials, or a default icon.\n * @customElement l-avatar\n *\n * @cssproperty [--size=40px] - Box size (any length). Set it inline (e.g. `style=\"--size: 20px\"`) for an arbitrary size beyond the `size` token scale; the font then follows proportionally. The `size` attribute sets it to the matching token.\n * @cssproperty --color - Background fill color for initials and the default icon.\n * @cssproperty --text-color - Initials/icon color over `--color`. Defaults to an auto-derived readable color; set it to enforce a specific brand color (overrides the automatic choice).\n * @cssproperty --appearance - Set to `circle` for a fully circular avatar (default is a rounded square).\n *\n * @csspart base - The avatar container that paints `--color`; style it (e.g. `color`) to override the auto-derived text color.\n *\n * @cssClass .l-avatar-group - Flex wrapper that overlaps a row of stacked avatars.\n */\nexport class Avatar extends LuxenElement {\n static styles = [hostStyles, styles];\n\n /** Image URL. Falls back to initials (then the default icon) if it fails to load. */\n @property()\n src = '';\n\n /** Name used as the accessible label and to derive the initials fallback. */\n @property()\n name = '';\n\n /** Avatar size: `xs`, `sm`, `md` (default), `lg`, or `xl`. */\n @property({ reflect: true })\n size = 'md';\n\n /** Count shown in the corner badge. `0` hides the badge. */\n @property({ type: Number })\n badge = 0;\n\n /** Render as a `<button>` with focus ring and hover states. */\n @property({ type: Boolean, reflect: true })\n interactive = false;\n\n @state() private _hasError = false;\n\n willUpdate(changed: Map<string, unknown>) {\n if (changed.has('src')) {\n this._hasError = false;\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (!this.interactive && !this.hasAttribute('role')) {\n this.setAttribute('role', 'img');\n }\n }\n\n updated() {\n // An interactive avatar renders a focusable <button>, and a role=\"img\" node\n // must stay a leaf in the accessibility tree — so the host carries no role\n // or label and the inner button holds the accessible name (see render()).\n if (this.interactive) {\n if (this.getAttribute('role') === 'img') this.removeAttribute('role');\n this.removeAttribute('aria-label');\n } else {\n if (!this.hasAttribute('role')) this.setAttribute('role', 'img');\n if (this.name) this.setAttribute('aria-label', this.name);\n }\n\n const isCircle = getComputedStyle(this).getPropertyValue('--appearance').trim() === 'circle';\n this.style.borderRadius = isCircle ? '50%' : '';\n }\n\n private get _tag() {\n return this.interactive ? literal`button` : literal`div`;\n }\n\n render() {\n const content =\n this.src && !this._hasError\n ? html`<img\n src=${this.src}\n alt=${this.name || ''}\n @error=${this._onError}\n />`\n : this.name\n ? html`<span class=\"initials\">${getInitials(this.name)}</span>`\n : html`<slot>${defaultIcon}</slot>`;\n\n return staticHtml`\n <${this._tag}\n class=\"base\"\n part=\"base\"\n type=${this.interactive ? 'button' : nothing}\n aria-label=${this.interactive && this.name ? this.name : nothing}\n >\n ${content}\n </${this._tag}>\n ${\n this.badge\n ? html`<div\n class=\"badge\"\n aria-hidden=\"true\"\n >\n ${this.badge}\n </div>`\n : nothing\n }\n `;\n }\n\n private _onError = () => {\n this._hasError = true;\n };\n}\n"],"mappings":"A,oUCOA,IAAMiB,EAASjB,EAAUC,4mEAAS,EAkBlC,SAASiB,EAAY,EAAe,GAAY,CAC9C,IAAMC,EAAQC,EAAK,UAAU,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,OAAO,EACtE,GAAID,EAAM,SAAW,EAAG,MAAO,GAK/B,IAAME,EAAe,GAAiB,CAAC,GAAGC,CAAI,CAAC,CAAC,GAIhD,OAFcD,EAAYF,EAAM,EAExB,GADKA,EAAM,OAAS,EAAIE,EAAYF,EAAMA,EAAM,OAAS,EAAE,EAAI,IAAA,CACjD,YAAY,CACpC,CAEA,IAAMI,EAAc,CAAG;;QAiBVC,EAAb,cAA4BC,CAAa,C,8BAKjC,KAAA,IAAA,GAIC,KAAA,KAAA,GAIA,KAAA,KAAA,KAIC,KAAA,MAAA,EAIM,KAAA,YAAA,GAEe,KAAA,UAAA,GAqEJ,KAAA,aAAA,CACvB,KAAK,UAAY,EACnB,C,QA7FgB,KAAA,OAAA,CAACvB,EAAYe,CAAM,C,CAwBnC,WAAW,EAA+B,CACpCU,EAAQ,IAAI,KAAK,IACnB,KAAK,UAAY,GAErB,CAEA,mBAAoB,CAClB,MAAM,kBAAkB,EACpB,CAAC,KAAK,aAAe,CAAC,KAAK,aAAa,MAAM,GAChD,KAAK,aAAa,OAAQ,KAAK,CAEnC,CAEA,SAAU,CAIJ,KAAK,aACH,KAAK,aAAa,MAAM,IAAM,OAAO,KAAK,gBAAgB,MAAM,EACpE,KAAK,gBAAgB,YAAY,IAE5B,KAAK,aAAa,MAAM,GAAG,KAAK,aAAa,OAAQ,KAAK,EAC3D,KAAK,MAAM,KAAK,aAAa,aAAc,KAAK,IAAI,GAG1D,IAAMC,EAAW,iBAAiB,IAAI,CAAC,CAAC,iBAAiB,cAAc,CAAC,CAAC,KAAK,IAAM,SACpF,KAAK,MAAM,aAAeA,EAAW,MAAQ,EAC/C,CAEA,IAAY,MAAO,CACjB,OAAO,KAAK,YAAc,CAAO,SAAW,CAAO,KACrD,CAEA,QAAS,CACP,IAAMC,EACJ,KAAK,KAAO,CAAC,KAAK,UACd,CAAI;kBACI,KAAK,IAAI;kBACT,KAAK,MAAQ,GAAG;qBACb,KAAK,SAAS;cAEzB,KAAK,KACH,CAAI,0BAA0BX,EAAY,KAAK,IAAI,EAAE,SACrD,CAAI,SAASK,EAAY,SAEjC,MAAO,EAAU;SACZ,KAAK,KAAK;;;eAGJ,KAAK,YAAc,SAAWpB,EAAQ;qBAChC,KAAK,aAAe,KAAK,KAAO,KAAK,KAAOA,EAAQ;;UAE/D0B,EAAQ;UACR,KAAK,KAAK;QAEZ,KAAK,MACD,CAAI;;;;gBAIA,KAAK,MAAM;oBAEf1B,EACL;KAEL,CAKF,EA3FGC,EAAA,CAAAC,EAAS,CAAA,EAAAmB,EAAA,UAAA,MAAA,IAAA,EAAA,EAITpB,EAAA,CAAAC,EAAS,CAAA,EAAAmB,EAAA,UAAA,OAAA,IAAA,EAAA,EAITpB,EAAA,CAAAC,EAAS,CAAE,QAAS,EAAK,CAAC,CAAA,EAAAmB,EAAA,UAAA,OAAA,IAAA,EAAA,EAI1BpB,EAAA,CAAAC,EAAS,CAAE,KAAM,MAAO,CAAC,CAAA,EAAAmB,EAAA,UAAA,QAAA,IAAA,EAAA,EAIzBpB,EAAA,CAAAC,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,CAAA,EAAAmB,EAAA,UAAA,cAAA,IAAA,EAAA,EAGzCpB,EAAA,CAAAE,EAAM,CAAA,EAAAkB,EAAA,UAAA,YAAA,IAAA,EAAA,E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/html/elements/avatar/index.ts"],"sourcesContent":["import { define } from '../../define.js';\nimport { Avatar } from './avatar.js';\nexport * from './avatar.js';\ndefine('avatar', Avatar);\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["define","Avatar"],"sources":["../../../src/html/elements/avatar/index.ts"],"sourcesContent":["import { define } from '../../define.js';\nimport { Avatar } from './avatar.js';\nexport * from './avatar.js';\ndefine('avatar', Avatar);\n"],"mappings":"A,8EAGAA,EAAO,SAAUC,CAAM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../../src/html/elements/badge/badge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AACjF,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC3C,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,QAAQ,GAAG,iBAAiB,GAAG,QAAQ,CAAC;AAEnF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,qBAAa,KAAM,SAAQ,YAAY;IAC5B,gBAAgB;
|
|
1
|
+
{"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../../src/html/elements/badge/badge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AACjF,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC3C,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,QAAQ,GAAG,iBAAiB,GAAG,QAAQ,CAAC;AAEnF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,qBAAa,KAAM,SAAQ,YAAY;IAC5B,gBAAgB,SAExB;IAED,oFAAoF;IACvD,OAAO,CAAC,EAAE,YAAY,CAAC;IAEpD,4BAA4B;IACgB,IAAI,UAAS;IAEzD,6CAA6C;IAChB,IAAI,CAAC,EAAE,SAAS,CAAC;IAE9C,qFAAqF;IACxD,UAAU,CAAC,EAAE,eAAe,CAAC;CAC3D"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{r as e,t}from"../../chunks/decorate.js";import{LuxenElement as n}from"../../shared/luxen-element.js";var r=class extends n{constructor(...e){super(...e),this.pill=!1}createRenderRoot(){return this}};t([e({reflect:!0})],r.prototype,`variant`,void 0),t([e({type:Boolean,reflect:!0})],r.prototype,`pill`,void 0),t([e({reflect:!0})],r.prototype,`size`,void 0),t([e({reflect:!0})],r.prototype,`appearance`,void 0);export{r as Badge};
|
|
2
2
|
//# sourceMappingURL=badge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge.js","names":[],"sources":["../../../src/html/elements/badge/badge.ts"],"sourcesContent":["import { property } from 'lit/decorators.js';\nimport { LuxenElement } from '../../shared/luxen-element.js';\n\nexport type BadgeVariant = 'info' | 'success' | 'warning' | 'danger' | 'neutral';\nexport type BadgeSize = 'sm' | 'md' | 'lg';\nexport type BadgeAppearance = 'outlined' | 'filled' | 'filled-outlined' | 'accent';\n\n/**\n * A small, non-interactive label for a status, a count, or a category. Light\n * DOM and pure CSS, so a badge renders correctly before — or without — its\n * script.\n *\n * `variant` is the interface-state axis and stays the library's: `info`,\n * `success`, `warning`, `danger`. When the colour instead says *what kind of\n * thing* this is — a site, a department, an asset class — give the badge your\n * own class and set the hooks below. They win over `variant`, `appearance` and\n * `pill` rather than competing with them, so a tinted badge keeps its tint\n * through an appearance change.\n *\n * ```css\n * l-badge.chip-site {\n * --text-color: var(--brand-site-ink);\n * --background-color: var(--brand-site-soft);\n * }\n * ```\n *\n * Size stays on the `size` attribute — there is no hook for height, label size\n * or padding, and none is wanted: three steps are the design, not a default to\n * dial past.\n *\n * @summary A badge component for displaying small status indicators.\n * @customElement l-badge\n *\n * @example\n * ```html\n * <l-badge variant=\"success\">Active</l-badge>\n * <l-badge class=\"chip-site\">\n * <l-icon name=\"mdi:map-marker-outline\"></l-icon>\n * Lyon branch\n * </l-badge>\n * ```\n *\n * @cssproperty [--text-color] - Label color. The border is a tint of it, so this alone repaints an outlined badge. Defaults to the `variant` step.\n * @cssproperty [--background-color] - Badge fill. Defaults to the `appearance` step — transparent when outlined.\n * @cssproperty [--border-color] - Badge border. Defaults to a 30% tint of `--text-color`; setting it replaces that derivation and holds through `appearance=\"filled\"`, whose default line is transparent.\n * @cssproperty [--border-radius] - Corner radius. The corner stays a squircle; `pill` is what trades it for a true arc. Defaults to `--l-radius-md`.\n */\nexport class Badge extends LuxenElement {\n override createRenderRoot() {\n return this;\n }\n\n /** Style variant: `info`, `success`, `warning`, `danger`, or `neutral` (default) */\n @property({ reflect: true }) variant?: BadgeVariant;\n\n /** Display as pill shape */\n @property({ type: Boolean, reflect: true }) pill = false;\n\n /** Badge size: `sm`, `lg`. Default is md. */\n @property({ reflect: true }) size?: BadgeSize;\n\n /** Visual appearance: `filled`, `filled-outlined`, `accent`. Default is outlined. */\n @property({ reflect: true }) appearance?: BadgeAppearance;\n}\n"],"mappings":"4GA+CA,
|
|
1
|
+
{"version":3,"file":"badge.js","names":["_decorate","property","n","Badge","LuxenElement","_args","__decorate"],"sources":["../../../src/html/elements/badge/badge.ts"],"sourcesContent":["import { property } from 'lit/decorators.js';\nimport { LuxenElement } from '../../shared/luxen-element.js';\n\nexport type BadgeVariant = 'info' | 'success' | 'warning' | 'danger' | 'neutral';\nexport type BadgeSize = 'sm' | 'md' | 'lg';\nexport type BadgeAppearance = 'outlined' | 'filled' | 'filled-outlined' | 'accent';\n\n/**\n * A small, non-interactive label for a status, a count, or a category. Light\n * DOM and pure CSS, so a badge renders correctly before — or without — its\n * script.\n *\n * `variant` is the interface-state axis and stays the library's: `info`,\n * `success`, `warning`, `danger`. When the colour instead says *what kind of\n * thing* this is — a site, a department, an asset class — give the badge your\n * own class and set the hooks below. They win over `variant`, `appearance` and\n * `pill` rather than competing with them, so a tinted badge keeps its tint\n * through an appearance change.\n *\n * ```css\n * l-badge.chip-site {\n * --text-color: var(--brand-site-ink);\n * --background-color: var(--brand-site-soft);\n * }\n * ```\n *\n * Size stays on the `size` attribute — there is no hook for height, label size\n * or padding, and none is wanted: three steps are the design, not a default to\n * dial past.\n *\n * @summary A badge component for displaying small status indicators.\n * @customElement l-badge\n *\n * @example\n * ```html\n * <l-badge variant=\"success\">Active</l-badge>\n * <l-badge class=\"chip-site\">\n * <l-icon name=\"mdi:map-marker-outline\"></l-icon>\n * Lyon branch\n * </l-badge>\n * ```\n *\n * @cssproperty [--text-color] - Label color. The border is a tint of it, so this alone repaints an outlined badge. Defaults to the `variant` step.\n * @cssproperty [--background-color] - Badge fill. Defaults to the `appearance` step — transparent when outlined.\n * @cssproperty [--border-color] - Badge border. Defaults to a 30% tint of `--text-color`; setting it replaces that derivation and holds through `appearance=\"filled\"`, whose default line is transparent.\n * @cssproperty [--border-radius] - Corner radius. The corner stays a squircle; `pill` is what trades it for a true arc. Defaults to `--l-radius-md`.\n */\nexport class Badge extends LuxenElement {\n override createRenderRoot() {\n return this;\n }\n\n /** Style variant: `info`, `success`, `warning`, `danger`, or `neutral` (default) */\n @property({ reflect: true }) variant?: BadgeVariant;\n\n /** Display as pill shape */\n @property({ type: Boolean, reflect: true }) pill = false;\n\n /** Badge size: `sm`, `lg`. Default is md. */\n @property({ reflect: true }) size?: BadgeSize;\n\n /** Visual appearance: `filled`, `filled-outlined`, `accent`. Default is outlined. */\n @property({ reflect: true }) appearance?: BadgeAppearance;\n}\n"],"mappings":"A,4GA+CA,IAAaG,EAAb,cAA2BC,CAAa,C,8BASa,KAAA,KAAA,E,CARnD,kBAA4B,CAC1B,OAAO,IACT,CAaF,EAVGJ,EAAA,CAAAC,EAAS,CAAE,QAAS,EAAK,CAAC,CAAA,EAAAE,EAAA,UAAA,UAAA,IAAA,EAAA,EAG1BH,EAAA,CAAAC,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,CAAA,EAAAE,EAAA,UAAA,OAAA,IAAA,EAAA,EAGzCH,EAAA,CAAAC,EAAS,CAAE,QAAS,EAAK,CAAC,CAAA,EAAAE,EAAA,UAAA,OAAA,IAAA,EAAA,EAG1BH,EAAA,CAAAC,EAAS,CAAE,QAAS,EAAK,CAAC,CAAA,EAAAE,EAAA,UAAA,aAAA,IAAA,EAAA,E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/html/elements/badge/index.ts"],"sourcesContent":["import { define } from '../../define.js';\nimport { Badge } from './badge.js';\nexport * from './badge.js';\ndefine('badge', Badge);\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["define","Badge"],"sources":["../../../src/html/elements/badge/index.ts"],"sourcesContent":["import { define } from '../../define.js';\nimport { Badge } from './badge.js';\nexport * from './badge.js';\ndefine('badge', Badge);\n"],"mappings":"A,4EAGAA,EAAO,QAASC,CAAK"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button-group.d.ts","sourceRoot":"","sources":["../../../src/html/elements/button-group/button-group.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,UAAU,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAClC,gBAAgB;
|
|
1
|
+
{"version":3,"file":"button-group.d.ts","sourceRoot":"","sources":["../../../src/html/elements/button-group/button-group.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,UAAU,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAClC,gBAAgB,SAExB;IAED,yEAAyE;IAEzE,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IAEH,WAAW,EAAE,sBAAsB,CAAgB;IAE1C,iBAAiB,SAGzB;IAEQ,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,QAQ7C;CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{r as e,t}from"../../chunks/decorate.js";import{LuxenElement as n}from"../../shared/luxen-element.js";var r=class extends n{constructor(...e){super(...e),this.orientation=`horizontal`}createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),this.setAttribute(`role`,`group`)}updated(e){e.has(`label`)&&(this.label?this.setAttribute(`aria-label`,this.label):this.removeAttribute(`aria-label`))}};t([e({reflect:!0})],r.prototype,`label`,void 0),t([e({reflect:!0})],r.prototype,`orientation`,void 0);export{r as ButtonGroup};
|
|
2
2
|
//# sourceMappingURL=button-group.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button-group.js","names":[],"sources":["../../../src/html/elements/button-group/button-group.ts"],"sourcesContent":["import { property } from 'lit/decorators.js';\nimport { LuxenElement } from '../../shared/luxen-element.js';\n\nexport type ButtonGroupOrientation = 'horizontal' | 'vertical';\n\n/**\n * @summary A wrapper for multiple related buttons, joined into a single unit\n * with shared borders. The joined appearance is pure CSS; this element only\n * adds the group semantics (`role=\"group\"`, `aria-label`).\n *\n * The group never manages the selection: buttons that carry state expose it\n * themselves with `aria-pressed`, and the group holds no value. For a\n * single-choice control that owns a value and submits it with a form, use\n * `l-segmented-control` instead.\n *\n * @example\n * ```html\n * <l-button-group label=\"Record actions\">\n * <button class=\"l-button\">Edit</button>\n * <button class=\"l-button\">Duplicate</button>\n * <button class=\"l-button\">Archive</button>\n * </l-button-group>\n * ```\n *\n * @customElement l-button-group\n */\nexport class ButtonGroup extends LuxenElement {\n override createRenderRoot() {\n return this;\n }\n\n /** Accessible label announced for the group. Not displayed on screen. */\n @property({ reflect: true })\n label?: string;\n\n /**\n * Layout direction of the buttons. Visual only (drives the CSS via the\n * reflected attribute): ARIA 1.2 does not allow `aria-orientation` on\n * `role=\"group\"`, so no ARIA attribute is set.\n */\n @property({ reflect: true })\n orientation: ButtonGroupOrientation = 'horizontal';\n\n override connectedCallback() {\n super.connectedCallback();\n this.setAttribute('role', 'group');\n }\n\n override updated(changed: Map<string, unknown>) {\n if (changed.has('label')) {\n if (this.label) {\n this.setAttribute('aria-label', this.label);\n } else {\n this.removeAttribute('aria-label');\n }\n }\n }\n}\n"],"mappings":"4GA0BA,
|
|
1
|
+
{"version":3,"file":"button-group.js","names":["_decorate","property","n","ButtonGroup","LuxenElement","_args","changed","__decorate"],"sources":["../../../src/html/elements/button-group/button-group.ts"],"sourcesContent":["import { property } from 'lit/decorators.js';\nimport { LuxenElement } from '../../shared/luxen-element.js';\n\nexport type ButtonGroupOrientation = 'horizontal' | 'vertical';\n\n/**\n * @summary A wrapper for multiple related buttons, joined into a single unit\n * with shared borders. The joined appearance is pure CSS; this element only\n * adds the group semantics (`role=\"group\"`, `aria-label`).\n *\n * The group never manages the selection: buttons that carry state expose it\n * themselves with `aria-pressed`, and the group holds no value. For a\n * single-choice control that owns a value and submits it with a form, use\n * `l-segmented-control` instead.\n *\n * @example\n * ```html\n * <l-button-group label=\"Record actions\">\n * <button class=\"l-button\">Edit</button>\n * <button class=\"l-button\">Duplicate</button>\n * <button class=\"l-button\">Archive</button>\n * </l-button-group>\n * ```\n *\n * @customElement l-button-group\n */\nexport class ButtonGroup extends LuxenElement {\n override createRenderRoot() {\n return this;\n }\n\n /** Accessible label announced for the group. Not displayed on screen. */\n @property({ reflect: true })\n label?: string;\n\n /**\n * Layout direction of the buttons. Visual only (drives the CSS via the\n * reflected attribute): ARIA 1.2 does not allow `aria-orientation` on\n * `role=\"group\"`, so no ARIA attribute is set.\n */\n @property({ reflect: true })\n orientation: ButtonGroupOrientation = 'horizontal';\n\n override connectedCallback() {\n super.connectedCallback();\n this.setAttribute('role', 'group');\n }\n\n override updated(changed: Map<string, unknown>) {\n if (changed.has('label')) {\n if (this.label) {\n this.setAttribute('aria-label', this.label);\n } else {\n this.removeAttribute('aria-label');\n }\n }\n }\n}\n"],"mappings":"A,4GA0BA,IAAaG,EAAb,cAAiCC,CAAa,C,8BAeN,KAAA,YAAA,Y,CAdtC,kBAA4B,CAC1B,OAAO,IACT,CAcA,mBAA6B,CAC3B,MAAM,kBAAkB,EACxB,KAAK,aAAa,OAAQ,OAAO,CACnC,CAEA,QAAiB,EAA+B,CAC1CE,EAAQ,IAAI,OAAO,IACjB,KAAK,MACP,KAAK,aAAa,aAAc,KAAK,KAAK,EAE1C,KAAK,gBAAgB,YAAY,EAGvC,CACF,EAzBGN,EAAA,CAAAC,EAAS,CAAE,QAAS,EAAK,CAAC,CAAA,EAAAE,EAAA,UAAA,QAAA,IAAA,EAAA,EAQ1BH,EAAA,CAAAC,EAAS,CAAE,QAAS,EAAK,CAAC,CAAA,EAAAE,EAAA,UAAA,cAAA,IAAA,EAAA,E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/html/elements/button-group/index.ts"],"sourcesContent":["import { define } from '../../define.js';\nimport { ButtonGroup } from './button-group.js';\nexport * from './button-group.js';\ndefine('button-group', ButtonGroup);\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["define","ButtonGroup"],"sources":["../../../src/html/elements/button-group/index.ts"],"sourcesContent":["import { define } from '../../define.js';\nimport { ButtonGroup } from './button-group.js';\nexport * from './button-group.js';\ndefine('button-group', ButtonGroup);\n"],"mappings":"A,yFAGAA,EAAO,eAAgBC,CAAW"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { EmblaCarouselType, EmblaOptionsType } from 'embla-carousel';
|
|
2
|
-
import { PropertyValues, CSSResultGroup } from 'lit';
|
|
3
|
-
import { LuxenElement } from '../../shared/luxen-element.js';
|
|
1
|
+
import type { EmblaCarouselType, EmblaOptionsType } from 'embla-carousel';
|
|
4
2
|
type AxisOptionType = 'x' | 'y';
|
|
5
3
|
type AlignmentOptionType = 'start' | 'center' | 'end' | ((viewSize: number, snapSize: number, index: number) => number);
|
|
6
4
|
type SlidesToScrollOptionType = 'auto' | number;
|
|
7
5
|
type ScrollContainOptionType = 'trimSnaps' | 'keepSnaps' | false;
|
|
6
|
+
import { type PropertyValues, type CSSResultGroup } from 'lit';
|
|
7
|
+
import { LuxenElement } from '../../shared/luxen-element.js';
|
|
8
8
|
/** Fired when the active slide changes. Bubbles; not composed. */
|
|
9
9
|
export declare class CarouselSelectEvent extends Event {
|
|
10
10
|
readonly index: number;
|
|
@@ -176,10 +176,10 @@ export declare class Carousel extends LuxenElement {
|
|
|
176
176
|
slideNodes(): void;
|
|
177
177
|
slidesInView(): void;
|
|
178
178
|
isActive(): boolean;
|
|
179
|
-
renderFullscreenButton(): import(
|
|
180
|
-
renderNextPreviousButtons(): import(
|
|
179
|
+
renderFullscreenButton(): import("lit").TemplateResult<1>;
|
|
180
|
+
renderNextPreviousButtons(): import("lit").TemplateResult<1>;
|
|
181
181
|
private renderDots;
|
|
182
|
-
render(): import(
|
|
182
|
+
render(): import("lit").TemplateResult<1>;
|
|
183
183
|
}
|
|
184
184
|
export interface Carousel {
|
|
185
185
|
addEventListener<K extends keyof CarouselEventMap>(type: K, listener: (this: Carousel, ev: CarouselEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"carousel.d.ts","sourceRoot":"","sources":["../../../src/html/elements/carousel/carousel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAG1E,KAAK,cAAc,GAAG,GAAG,GAAG,GAAG,CAAC;AAChC,KAAK,mBAAmB,GACpB,OAAO,GACP,QAAQ,GACR,KAAK,GACL,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;AACpE,KAAK,wBAAwB,GAAG,MAAM,GAAG,MAAM,CAAC;AAChD,KAAK,uBAAuB,GAAG,WAAW,GAAG,WAAW,GAAG,KAAK,CAAC;AAEjE,OAAO,EAA4B,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGzF,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAO7D,kEAAkE;AAClE,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"carousel.d.ts","sourceRoot":"","sources":["../../../src/html/elements/carousel/carousel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAG1E,KAAK,cAAc,GAAG,GAAG,GAAG,GAAG,CAAC;AAChC,KAAK,mBAAmB,GACpB,OAAO,GACP,QAAQ,GACR,KAAK,GACL,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;AACpE,KAAK,wBAAwB,GAAG,MAAM,GAAG,MAAM,CAAC;AAChD,KAAK,uBAAuB,GAAG,WAAW,GAAG,WAAW,GAAG,KAAK,CAAC;AAEjE,OAAO,EAA4B,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGzF,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAO7D,kEAAkE;AAClE,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,YAAY,KAAK,EAAE,MAAM,EAGxB;CACF;AAED,oDAAoD;AACpD,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,OAAO,EAAE,MAAM,EAAE,EAG5B;CACF;AAED,qDAAqD;AACrD,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,cAEC;CACF;AAED,UAAU,gBAAgB;IACxB,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,2BAA2B;QACnC,gBAAgB,EAAE,iBAAiB,CAAC;QACpC,UAAU,EAAE,qBAAqB,CAAC;KACnC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,qBAAa,QAAS,SAAQ,YAAY;IACxC,OAAgB,MAAM,EAAE,cAAc,CAAwB;IAE9D,OAAO,CAAC,SAAS,CAAgC;IAEjD,KAAK,EAAG,iBAAiB,CAAC;IAE1B;;OAEG;IAEH,QAAQ,CAAC,QAAQ,SAAK;IAEtB;;;;OAIG;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC;IAE9B;;;;OAIG;IAEH,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAO;IAEpC;;;;OAIG;IAEH,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAW;IAE9C;;OAEG;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAM;IAE/B;;;;OAIG;IAEH,QAAQ,CAAC,IAAI,UAAS;IAEtB;;;;OAIG;IAEH,QAAQ,CAAC,QAAQ,UAAS;IAE1B;;;;OAIG;IAEH,QAAQ,CAAC,QAAQ,SAAM;IAEvB;;;;OAIG;IAEH,QAAQ,CAAC,SAAS,UAAS;IAE3B;;;;OAIG;IAEH,QAAQ,CAAC,cAAc,EAAE,wBAAwB,CAAK;IAEtD;;;;OAIG;IAEH,QAAQ,CAAC,UAAU,SAAK;IAExB;;;;OAIG;IAEH,QAAQ,CAAC,aAAa,EAAE,uBAAuB,CAAe;IAG9D,QAAQ,CAAC,MAAM,UAAS;IAGxB,QAAQ,CAAC,QAAQ,UAAS;IAG1B,QAAQ,CAAC,aAAa,UAAS;IAG/B,QAAQ,CAAC,cAAc,UAAS;IAGhC,QAAQ,CAAC,aAAa,EAAE,QAAQ,GAAG,KAAK,CAAS;IAEjD;;;;OAIG;IAEH,QAAQ,CAAC,cAAc,SAAK;IAG5B,QAAQ,CAAC,qBAAqB,EAAE,QAAQ,GAAG,SAAS,CAAY;IAEvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAK;IAElB,aAAa,EAAG,WAAW,CAAC;IAC3B,WAAW,EAAG,iBAAiB,CAAC;IACpC,OAAO,EAAG,iBAAiB,CAAC;IAC9B,SAAS,EAAG,eAAe,CAAC;IAExC,iBAAiB,IAAI,IAAI,CAGjC;IAEQ,oBAAoB,SAK5B;IAED,UAAmB,YAAY,IAAI,IAAI,CAEtC;IAED,SAAS,CAAC,WAAW,SASpB;IAED,SAAS,CAAC,cAAc,aAEtB;IAEF,SAAS,CAAC,MAAM,aAEd;IAEF,SAAS,CAAC,QAAQ,aAGhB;IAEF,SAAS,CAAC,QAAQ,aAGhB;IAEF,SAAS,CAAC,QAAQ,aAEhB;IAEF,SAAS,CAAC,oBAAoB,SAG7B;IAED,SAAS,CAAC,oBAAoB,aAG5B;IAEF,SAAS,CAAC,gBAAgB,SAQzB;IAEc,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,iBAI7D;IAED,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,gBAAgB,CAKtB;IAEF,OAAO,CAAC,cAAc,CAGpB;IAEF,OAAO,IAAI,gBAAgB,CAwB1B;IAED,IAAI,aAEF;IAEF,QAAQ,aAEN;IAEF,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,QAEtC;IAED,UAAU,SAET;IAED,YAAY,SAEX;IAED,QAAQ,YAEP;IAED,sBAAsB,oCAmBrB;IAED,yBAAyB,oCAyCxB;IAED,OAAO,CAAC,UAAU;IAgDT,MAAM,oCAiBd;CACF;AAKD,MAAM,WAAW,QAAQ;IACvB,gBAAgB,CAAC,CAAC,SAAS,MAAM,gBAAgB,EAC/C,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,IAAI,EAC3D,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC1C,IAAI,CAAC;IACR,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,EAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC1C,IAAI,CAAC;IACR,mBAAmB,CAAC,CAAC,SAAS,MAAM,gBAAgB,EAClD,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,IAAI,EAC3D,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACvC,IAAI,CAAC;IACR,mBAAmB,CACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,EAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACvC,IAAI,CAAC;CACT"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e}from"../../chunks/lit.js";import{i as t,n,r,t as i}from"../../chunks/decorate.js";import{a,t as o}from"../../chunks/lit-html.js";import{LuxenElement as s}from"../../shared/luxen-element.js";import{LocalizeController as c}from"../../shared/localize.js";import l from"../../shared/styles/host.styles.js";import{t as u}from"../../chunks/map.js";function d(e){return typeof e==`number`}function f(e){return typeof e==`string`}function p(e){return typeof e==`boolean`}function m(e){return Object.prototype.toString.call(e)===`[object Object]`}function h(e){return Math.abs(e)}function g(e){return Math.sign(e)}function _(e,t){return h(e-t)}function v(e,t){return e===0||t===0||h(e)<=h(t)?0:h(_(h(e),h(t))/e)}function y(e){return Math.round(e*100)/100}function b(e){return T(e).map(Number)}function x(e){return e[S(e)]}function S(e){return Math.max(0,e.length-1)}function C(e,t){return t===S(e)}function w(e,t=0){return Array.from(Array(e),(e,n)=>t+n)}function T(e){return Object.keys(e)}function E(e,t){return[e,t].reduce((e,t)=>(T(t).forEach(n=>{let r=e[n],i=t[n];e[n]=m(r)&&m(i)?E(r,i):i}),e),{})}function D(e,t){return t.MouseEvent!==void 0&&e instanceof t.MouseEvent}function O(e,t){let n={start:r,center:i,end:a};function r(){return 0}function i(e){return a(e)/2}function a(e){return t-e}function o(r,i){return f(e)?n[e](r):e(t,r,i)}return{measure:o}}function k(){let e=[];function t(t,n,i,a={passive:!0}){let o;if(`addEventListener`in t)t.addEventListener(n,i,a),o=()=>t.removeEventListener(n,i,a);else{let e=t;e.addListener(i),o=()=>e.removeListener(i)}return e.push(o),r}function n(){e=e.filter(e=>e())}let r={add:t,clear:n};return r}function A(e,t,n,r){let i=k(),a=1e3/60,o=null,s=0,c=0;function l(){i.add(e,`visibilitychange`,()=>{e.hidden&&m()})}function u(){p(),i.clear()}function d(e){if(!c)return;o||(o=e,n(),n());let i=e-o;for(o=e,s+=i;s>=a;)n(),s-=a;r(s/a),c&&=t.requestAnimationFrame(d)}function f(){c||=t.requestAnimationFrame(d)}function p(){t.cancelAnimationFrame(c),o=null,s=0,c=0}function m(){o=null,s=0}return{init:l,destroy:u,start:f,stop:p,update:n,render:r}}function j(e,t){let n=t===`rtl`,r=e===`y`,i=r?`y`:`x`,a=r?`x`:`y`,o=!r&&n?-1:1,s=u(),c=d();function l(e){let{height:t,width:n}=e;return r?t:n}function u(){return r?`top`:n?`right`:`left`}function d(){return r?`bottom`:n?`left`:`right`}function f(e){return e*o}return{scroll:i,cross:a,startEdge:s,endEdge:c,measureSize:l,direction:f}}function M(e=0,t=0){let n=h(e-t);function r(t){return t<e}function i(e){return e>t}function a(e){return r(e)||i(e)}function o(n){return a(n)?r(n)?e:t:n}function s(e){return n?e-n*Math.ceil((e-t)/n):e}return{length:n,max:t,min:e,constrain:o,reachedAny:a,reachedMax:i,reachedMin:r,removeOffset:s}}function ee(e,t,n){let{constrain:r}=M(0,e),i=e+1,a=o(t);function o(e){return n?h((i+e)%i):r(e)}function s(){return a}function c(e){return a=o(e),d}function l(e){return u().set(s()+e)}function u(){return ee(e,s(),n)}let d={get:s,set:c,add:l,clone:u};return d}function te(e,t,n,r,i,a,o,s,c,l,u,d,f,m,y,b,x,S,C){let{cross:w,direction:T}=e,E=[`INPUT`,`SELECT`,`TEXTAREA`],O={passive:!1},A=k(),j=k(),ee=M(50,225).constrain(m.measure(20)),te={mouse:300,touch:400},ne={mouse:500,touch:600},re=y?43:25,ie=!1,ae=0,N=0,P=!1,F=!1,I=!1,L=!1;function oe(e){if(!C)return;function n(t){(p(C)||C(e,t))&&z(t)}let r=t;A.add(r,`dragstart`,e=>e.preventDefault(),O).add(r,`touchmove`,()=>void 0,O).add(r,`touchend`,()=>void 0).add(r,`touchstart`,n).add(r,`mousedown`,n).add(r,`touchcancel`,V).add(r,`contextmenu`,V).add(r,`click`,de,!0)}function se(){A.clear(),j.clear()}function ce(){let e=L?n:t;j.add(e,`touchmove`,B,O).add(e,`touchend`,V).add(e,`mousemove`,B,O).add(e,`mouseup`,V)}function le(e){let t=e.nodeName||``;return E.includes(t)}function R(){return(y?ne:te)[L?`mouse`:`touch`]}function ue(e,t){let n=d.add(g(e)*-1),r=u.byDistance(e,!y).distance;return y||h(e)<ee?r:x&&t?r*.5:u.byIndex(n.get(),0).distance}function z(e){let t=D(e,r);L=t,I=y&&t&&!e.buttons&&ie,ie=_(i.get(),o.get())>=2,!(t&&e.button!==0)&&(le(e.target)||(P=!0,a.pointerDown(e),l.useFriction(0).useDuration(0),i.set(o),ce(),ae=a.readPoint(e),N=a.readPoint(e,w),f.emit(`pointerDown`)))}function B(e){if(!D(e,r)&&e.touches.length>=2)return V(e);let t=a.readPoint(e),n=a.readPoint(e,w),o=_(t,ae),c=_(n,N);if(!F&&!L&&(!e.cancelable||(F=o>c,!F)))return V(e);let u=a.pointerMove(e);o>b&&(I=!0),l.useFriction(.3).useDuration(.75),s.start(),i.add(T(u)),e.preventDefault()}function V(e){let t=u.byDistance(0,!1).index!==d.get(),n=a.pointerUp(e)*R(),r=ue(T(n),t),i=v(n,r),o=re-10*i,s=S+i/50;F=!1,P=!1,j.clear(),l.useDuration(o).useFriction(s),c.distance(r,!y),L=!1,f.emit(`pointerUp`)}function de(e){I&&=(e.stopPropagation(),e.preventDefault(),!1)}function fe(){return P}return{init:oe,destroy:se,pointerDown:fe}}function ne(e,t){let n,r;function i(e){return e.timeStamp}function a(n,r){let i=`client${(r||e.scroll)===`x`?`X`:`Y`}`;return(D(n,t)?n:n.touches[0])[i]}function o(e){return n=e,r=e,a(e)}function s(e){let t=a(e)-a(r),o=i(e)-i(n)>170;return r=e,o&&(n=e),t}function c(e){if(!n||!r)return 0;let t=a(r)-a(n),o=i(e)-i(n),s=i(e)-i(r)>170,c=t/o;return o&&!s&&h(c)>.1?c:0}return{pointerDown:o,pointerMove:s,pointerUp:c,readPoint:a}}function re(){function e(e){let{offsetTop:t,offsetLeft:n,offsetWidth:r,offsetHeight:i}=e;return{top:t,right:n+r,bottom:t+i,left:n,width:r,height:i}}return{measure:e}}function ie(e){function t(t){return t/100*e}return{measure:t}}function ae(e,t,n,r,i,a,o){let s=[e].concat(r),c,l,u=[],d=!1;function f(e){return i.measureSize(o.measure(e))}function m(i){if(!a)return;l=f(e),u=r.map(f);function o(n){for(let a of n){if(d)return;let n=a.target===e,o=r.indexOf(a.target),s=n?l:u[o];if(h(f(n?e:r[o])-s)>=.5){i.reInit(),t.emit(`resize`);break}}}c=new ResizeObserver(e=>{(p(a)||a(i,e))&&o(e)}),n.requestAnimationFrame(()=>{s.forEach(e=>c.observe(e))})}function g(){d=!0,c&&c.disconnect()}return{init:m,destroy:g}}function N(e,t,n,r,i,a){let o=0,s=0,c=i,l=a,u=e.get(),d=0;function f(){let t=r.get()-e.get(),i=!c,a=0;return i?(o=0,n.set(r),e.set(r),a=t):(n.set(e),o+=t/c,o*=l,u+=o,e.add(o),a=u-d),s=g(a),d=u,C}function p(){return h(r.get()-t.get())<.001}function m(){return c}function _(){return s}function v(){return o}function y(){return x(i)}function b(){return S(a)}function x(e){return c=e,C}function S(e){return l=e,C}let C={direction:_,duration:m,velocity:v,seek:f,settled:p,useBaseFriction:b,useBaseDuration:y,useFriction:S,useDuration:x};return C}function P(e,t,n,r,i){let a=i.measure(10),o=i.measure(50),s=M(.1,.99),c=!1;function l(){return!(c||!e.reachedAny(n.get())||!e.reachedAny(t.get()))}function u(i){if(!l())return;let c=h(e[e.reachedMin(t.get())?`min`:`max`]-t.get()),u=n.get()-t.get(),d=s.constrain(c/o);n.subtract(u*d),!i&&h(u)<a&&(n.set(e.constrain(n.get())),r.useDuration(25).useBaseFriction())}function d(e){c=!e}return{shouldConstrain:l,constrain:u,toggleActive:d}}function F(e,t,n,r,i){let a=M(-t+e,0),o=d(),s=u(),c=f();function l(e,t){return _(e,t)<=1}function u(){let e=o[0],t=x(o);return M(o.lastIndexOf(e),o.indexOf(t)+1)}function d(){return n.map((e,t)=>{let{min:r,max:i}=a,o=a.constrain(e),s=!t,c=C(n,t);return s?i:c||l(r,o)?r:l(i,o)?i:o}).map(e=>parseFloat(e.toFixed(3)))}function f(){if(t<=e+i)return[a.max];if(r===`keepSnaps`)return o;let{min:n,max:c}=s;return o.slice(n,c)}return{snapsContained:c,scrollContainLimit:s}}function I(e,t,n){let r=t[0];return{limit:M(n?r-e:x(t),r)}}function L(e,t,n,r){let i=.1,{reachedMin:a,reachedMax:o}=M(t.min+i,t.max+i);function s(e){return e===1?o(n.get()):e===-1?a(n.get()):!1}function c(t){if(!s(t))return;let n=t*-1*e;r.forEach(e=>e.add(n))}return{loop:c}}function oe(e){let{max:t,length:n}=e;function r(e){let r=e-t;return n?r/-n:0}return{get:r}}function se(e,t,n,r,i){let{startEdge:a,endEdge:o}=e,{groupSlides:s}=i,c=d().map(t.measure),l=f(),u=p();function d(){return s(r).map(e=>x(e)[o]-e[0][a]).map(h)}function f(){return r.map(e=>n[a]-e[a]).map(e=>-h(e))}function p(){return s(l).map(e=>e[0]).map((e,t)=>e+c[t])}return{snaps:l,snapsAligned:u}}function ce(e,t,n,r,i,a){let{groupSlides:o}=i,{min:s,max:c}=r,l=u();function u(){let r=o(a),i=!e||t===`keepSnaps`;return n.length===1?[a]:i?r:r.slice(s,c).map((e,t,n)=>{let r=!t,i=C(n,t);return r?w(x(n[0])+1):i?w(S(a)-x(n)[0]+1,x(n)[0]):e})}return{slideRegistry:l}}function le(e,t,n,r,i){let{reachedAny:a,removeOffset:o,constrain:s}=r;function c(e){return e.concat().sort((e,t)=>h(e)-h(t))[0]}function l(n){let r=e?o(n):s(n),{index:i}=t.map((e,t)=>({diff:u(e-r,0),index:t})).sort((e,t)=>h(e.diff)-h(t.diff))[0];return{index:i,distance:r}}function u(t,r){let i=[t,t+n,t-n];if(!e)return t;if(!r)return c(i);let a=i.filter(e=>g(e)===r);return a.length?c(a):x(i)-n}function d(e,n){return{index:e,distance:u(t[e]-i.get(),n)}}function f(n,r){let o=i.get()+n,{index:s,distance:c}=l(o),d=!e&&a(o);return!r||d?{index:s,distance:n}:{index:s,distance:n+u(t[s]-c,0)}}return{byDistance:f,byIndex:d,shortcut:u}}function R(e,t,n,r,i,a,o){function s(i){let s=i.distance,c=i.index!==t.get();a.add(s),s&&(r.duration()?e.start():(e.update(),e.render(1),e.update())),c&&(n.set(t.get()),t.set(i.index),o.emit(`select`))}function c(e,t){s(i.byDistance(e,t))}function l(e,n){let r=t.clone().set(e);s(i.byIndex(r.get(),n))}return{distance:c,index:l}}function ue(e,t,n,r,i,a,o,s){let c={passive:!0,capture:!0},l=0;function u(u){if(!s)return;function m(t){if(new Date().getTime()-l>10)return;o.emit(`slideFocusStart`),e.scrollLeft=0;let a=n.findIndex(e=>e.includes(t));d(a)&&(i.useDuration(0),r.index(a,0),o.emit(`slideFocus`))}a.add(document,`keydown`,f,!1),t.forEach((e,t)=>{a.add(e,`focus`,e=>{(p(s)||s(u,e))&&m(t)},c)})}function f(e){e.code===`Tab`&&(l=new Date().getTime())}return{init:u}}function z(e){let t=e;function n(){return t}function r(e){t=o(e)}function i(e){t+=o(e)}function a(e){t-=o(e)}function o(e){return d(e)?e:e.get()}return{get:n,set:r,add:i,subtract:a}}function B(e,t){let n=e.scroll===`x`?o:s,r=t.style,i=null,a=!1;function o(e){return`translate3d(${e}px,0px,0px)`}function s(e){return`translate3d(0px,${e}px,0px)`}function c(t){if(a)return;let o=y(e.direction(t));o!==i&&(r.transform=n(o),i=o)}function l(e){a=!e}function u(){a||(r.transform=``,t.getAttribute(`style`)||t.removeAttribute(`style`))}return{clear:u,to:c,toggleActive:l}}function V(e,t,n,r,i,a,o,s,c){let l=.5,u=b(i),d=b(i).reverse(),f=_().concat(v());function p(e,t){return e.reduce((e,t)=>e-i[t],t)}function m(e,t){return e.reduce((e,n)=>p(e,t)>0?e.concat([n]):e,[])}function h(e){return a.map((n,i)=>({start:n-r[i]+l+e,end:n+t-l+e}))}function g(t,r,i){let a=h(r);return t.map(t=>{let r=i?0:-n,o=i?n:0,l=i?`end`:`start`,u=a[t][l];return{index:t,loopPoint:u,slideLocation:z(-1),translate:B(e,c[t]),target:()=>s.get()>u?r:o}})}function _(){let e=o[0];return g(m(d,e),n,!1)}function v(){return g(m(u,t-o[0]-1),-n,!0)}function y(){return f.every(({index:e})=>p(u.filter(t=>t!==e),t)<=.1)}function x(){f.forEach(e=>{let{target:t,translate:n,slideLocation:r}=e,i=t();i!==r.get()&&(n.to(i),r.set(i))})}function S(){f.forEach(e=>e.translate.clear())}return{canLoop:y,clear:S,loop:x,loopPoints:f}}function de(e,t,n){let r,i=!1;function a(a){if(!n)return;function o(e){for(let n of e)if(n.type===`childList`){a.reInit(),t.emit(`slidesChanged`);break}}r=new MutationObserver(e=>{i||(p(n)||n(a,e))&&o(e)}),r.observe(e,{childList:!0})}function o(){r&&r.disconnect(),i=!0}return{init:a,destroy:o}}function fe(e,t,n,r){let i={},a=null,o=null,s,c=!1;function l(){s=new IntersectionObserver(e=>{c||(e.forEach(e=>{let n=t.indexOf(e.target);i[n]=e}),a=null,o=null,n.emit(`slidesInView`))},{root:e.parentElement,threshold:r}),t.forEach(e=>s.observe(e))}function u(){s&&s.disconnect(),c=!0}function d(e){return T(i).reduce((t,n)=>{let r=parseInt(n),{isIntersecting:a}=i[r];return(e&&a||!e&&!a)&&t.push(r),t},[])}function f(e=!0){if(e&&a)return a;if(!e&&o)return o;let t=d(e);return e&&(a=t),e||(o=t),t}return{init:l,destroy:u,get:f}}function pe(e,t,n,r,i,a){let{measureSize:o,startEdge:s,endEdge:c}=e,l=n[0]&&i,u=m(),d=g(),f=n.map(o),p=_();function m(){if(!l)return 0;let e=n[0];return h(t[s]-e[s])}function g(){if(!l)return 0;let e=a.getComputedStyle(x(r));return parseFloat(e.getPropertyValue(`margin-${c}`))}function _(){return n.map((e,t,n)=>{let r=!t,i=C(n,t);return r?f[t]+u:i?f[t]+d:n[t+1][s]-e[s]}).map(h)}return{slideSizes:f,slideSizesWithGaps:p,startGap:u,endGap:d}}function me(e,t,n,r,i,a,o,s,c){let{startEdge:l,endEdge:u,direction:f}=e,p=d(n);function m(e,t){return b(e).filter(e=>e%t===0).map(n=>e.slice(n,n+t))}function g(e){return e.length?b(e).reduce((n,d,p)=>{let m=x(n)||0,g=m===0,_=d===S(e),v=i[l]-a[m][l],y=i[l]-a[d][u],b=!r&&g?f(o):0,C=h(y-(!r&&_?f(s):0)-(v+b));return p&&C>t+c&&n.push(d),_&&n.push(e.length),n},[]).map((t,n,r)=>{let i=Math.max(r[n-1]||0);return e.slice(i,t)}):[]}function _(e){return p?m(e,n):g(e)}return{groupSlides:_}}function H(e,t,n,r,i,a,o){let{align:s,axis:c,direction:l,startIndex:u,loop:d,duration:f,dragFree:p,dragThreshold:m,inViewThreshold:h,slidesToScroll:g,skipSnaps:_,containScroll:v,watchResize:y,watchSlides:C,watchDrag:w,watchFocus:T}=a,E=re(),D=E.measure(t),M=n.map(E.measure),H=j(c,l),U=H.measureSize(D),he=ie(U),ge=O(s,U),_e=!d&&!!v,{slideSizes:ve,slideSizesWithGaps:ye,startGap:be,endGap:xe}=pe(H,D,M,n,d||!!v,i),W=me(H,U,g,d,D,M,be,xe,2),{snaps:Se,snapsAligned:Ce}=se(H,ge,D,M,W),G=-x(Se)+x(ye),{snapsContained:we,scrollContainLimit:K}=F(U,G,Ce,v,2),q=_e?we:Ce,{limit:J}=I(G,q,d),Y=ee(S(q),u,d),Te=Y.clone(),Ee=b(n),De=({dragHandler:e,scrollBody:t,scrollBounds:n,options:{loop:r}})=>{r||n.constrain(e.pointerDown()),t.seek()},Oe=({scrollBody:e,translate:t,location:n,offsetLocation:r,previousLocation:i,scrollLooper:a,slideLooper:o,dragHandler:s,animation:c,eventHandler:l,scrollBounds:u,options:{loop:d}},f)=>{let p=e.settled(),m=!u.shouldConstrain(),h=d?p:p&&m,g=h&&!s.pointerDown();g&&c.stop();let _=n.get()*f+i.get()*(1-f);r.set(_),d&&(a.loop(e.direction()),o.loop()),t.to(r.get()),g&&l.emit(`settle`),h||l.emit(`scroll`)},ke=A(r,i,()=>De(Be),e=>Oe(Be,e)),Ae=.68,X=q[Y.get()],je=z(X),Me=z(X),Z=z(X),Q=z(X),$=N(je,Z,Me,Q,f,Ae),Ne=le(d,q,G,J,Q),Pe=R(ke,Y,Te,$,Ne,Q,o),Fe=oe(J),Ie=k(),Le=fe(t,n,o,h),{slideRegistry:Re}=ce(_e,v,q,K,W,Ee),ze=ue(e,n,Re,Pe,$,Ie,o,T),Be={ownerDocument:r,ownerWindow:i,eventHandler:o,containerRect:D,slideRects:M,animation:ke,axis:H,dragHandler:te(H,e,r,i,Q,ne(H,i),je,ke,Pe,$,Ne,Y,o,he,p,m,_,Ae,w),eventStore:Ie,percentOfView:he,index:Y,indexPrevious:Te,limit:J,location:je,offsetLocation:Z,previousLocation:Me,options:a,resizeHandler:ae(t,o,i,n,H,y,E),scrollBody:$,scrollBounds:P(J,Z,Q,$,he),scrollLooper:L(G,J,Z,[je,Z,Me,Q]),scrollProgress:Fe,scrollSnapList:q.map(Fe.get),scrollSnaps:q,scrollTarget:Ne,scrollTo:Pe,slideLooper:V(H,U,G,ve,ye,Se,q,Z,n),slideFocus:ze,slidesHandler:de(t,o,C),slidesInView:Le,slideIndexes:Ee,slideRegistry:Re,slidesToScroll:W,target:Q,translate:B(H,t)};return Be}function U(){let e={},t;function n(e){t=e}function r(t){return e[t]||[]}function i(e){return r(e).forEach(n=>n(t,e)),c}function a(t,n){return e[t]=r(t).concat([n]),c}function o(t,n){return e[t]=r(t).filter(e=>e!==n),c}function s(){e={}}let c={init:n,emit:i,off:o,on:a,clear:s};return c}var he={align:`center`,axis:`x`,container:null,slides:null,containScroll:`trimSnaps`,direction:`ltr`,slidesToScroll:1,inViewThreshold:0,breakpoints:{},dragFree:!1,dragThreshold:10,loop:!1,skipSnaps:!1,duration:25,startIndex:0,active:!0,watchDrag:!0,watchResize:!0,watchSlides:!0,watchFocus:!0};function ge(e){function t(e,t){return E(e,t||{})}function n(n){let r=n.breakpoints||{};return t(n,T(r).filter(t=>e.matchMedia(t).matches).map(e=>r[e]).reduce((e,n)=>t(e,n),{}))}function r(t){return t.map(e=>T(e.breakpoints||{})).reduce((e,t)=>e.concat(t),[]).map(e.matchMedia)}return{mergeOptions:t,optionsAtMedia:n,optionsMediaQueries:r}}function _e(e){let t=[];function n(n,r){return t=r.filter(({options:t})=>e.optionsAtMedia(t).active!==!1),t.forEach(t=>t.init(n,e)),r.reduce((e,t)=>Object.assign(e,{[t.name]:t}),{})}function r(){t=t.filter(e=>e.destroy())}return{init:n,destroy:r}}function ve(e,t,n){let r=e.ownerDocument,i=r.defaultView,a=ge(i),o=_e(a),s=k(),c=U(),{mergeOptions:l,optionsAtMedia:u,optionsMediaQueries:d}=a,{on:p,off:m,emit:h}=c,g=O,_=!1,v,y=l(he,ve.globalOptions),b=l(y),x=[],S,C,w;function T(){let{container:t,slides:n}=b;C=(f(t)?e.querySelector(t):t)||e.children[0];let r=f(n)?C.querySelectorAll(n):n;w=[].slice.call(r||C.children)}function E(t){let n=H(e,C,w,r,i,t,c);return t.loop&&!n.slideLooper.canLoop()?E(Object.assign({},t,{loop:!1})):n}function D(e,t){_||(y=l(y,e),b=u(y),x=t||x,T(),v=E(b),d([y,...x.map(({options:e})=>e)]).forEach(e=>s.add(e,`change`,O)),b.active&&(v.translate.to(v.location.get()),v.animation.init(),v.slidesInView.init(),v.slideFocus.init(R),v.eventHandler.init(R),v.resizeHandler.init(R),v.slidesHandler.init(R),v.options.loop&&v.slideLooper.loop(),C.offsetParent&&w.length&&v.dragHandler.init(R),S=o.init(R,x)))}function O(e,t){let n=N();A(),D(l({startIndex:n},e),t),c.emit(`reInit`)}function A(){v.dragHandler.destroy(),v.eventStore.clear(),v.translate.clear(),v.slideLooper.clear(),v.resizeHandler.destroy(),v.slidesHandler.destroy(),v.slidesInView.destroy(),v.animation.destroy(),o.destroy(),s.clear()}function j(){_||(_=!0,s.clear(),A(),c.emit(`destroy`),c.clear())}function M(e,t,n){!b.active||_||(v.scrollBody.useBaseFriction().useDuration(t===!0?0:b.duration),v.scrollTo.index(e,n||0))}function ee(e){M(v.index.add(1).get(),e,-1)}function te(e){M(v.index.add(-1).get(),e,1)}function ne(){return v.index.add(1).get()!==N()}function re(){return v.index.add(-1).get()!==N()}function ie(){return v.scrollSnapList}function ae(){return v.scrollProgress.get(v.offsetLocation.get())}function N(){return v.index.get()}function P(){return v.indexPrevious.get()}function F(){return v.slidesInView.get()}function I(){return v.slidesInView.get(!1)}function L(){return S}function oe(){return v}function se(){return e}function ce(){return C}function le(){return w}let R={canScrollNext:ne,canScrollPrev:re,containerNode:ce,internalEngine:oe,destroy:j,off:m,on:p,emit:h,plugins:L,previousScrollSnap:P,reInit:g,rootNode:se,scrollNext:ee,scrollPrev:te,scrollProgress:ae,scrollSnapList:ie,scrollTo:M,selectedScrollSnap:N,slideNodes:le,slidesInView:F,slidesNotInView:I};return D(t,n),setTimeout(()=>c.emit(`init`),0),R}ve.globalOptions=void 0;var ye={active:!0,breakpoints:{},delay:4e3,jump:!1,playOnInit:!0,stopOnFocusIn:!0,stopOnInteraction:!0,stopOnMouseEnter:!1,stopOnLastSnap:!1,rootNode:null};function be(e,t){let n=e.scrollSnapList();return typeof t==`number`?n.map(()=>t):t(n,e)}function xe(e,t){let n=e.rootNode();return t&&t(n)||n}function W(e={}){let t,n,r,i,a=null,o=0,s=!1,c=!1,l=!1,u=!1;function d(a,o){n=a;let{mergeOptions:s,optionsAtMedia:c}=o;if(t=c(s(s(ye,W.globalOptions),e)),n.scrollSnapList().length<=1)return;u=t.jump,r=!1,i=be(n,t.delay);let{eventStore:l,ownerDocument:d}=n.internalEngine(),f=!!n.internalEngine().options.watchDrag,p=xe(n,t.rootNode);l.add(d,`visibilitychange`,_),f&&n.on(`pointerDown`,y),f&&!t.stopOnInteraction&&n.on(`pointerUp`,b),t.stopOnMouseEnter&&l.add(p,`mouseenter`,x),t.stopOnMouseEnter&&!t.stopOnInteraction&&l.add(p,`mouseleave`,S),t.stopOnFocusIn&&n.on(`slideFocusStart`,g),t.stopOnFocusIn&&!t.stopOnInteraction&&l.add(n.containerNode(),`focusout`,h),t.playOnInit&&h()}function f(){n.off(`pointerDown`,y).off(`pointerUp`,b).off(`slideFocusStart`,g),g(),r=!0,s=!1}function p(){let{ownerWindow:e}=n.internalEngine();e.clearTimeout(o),o=e.setTimeout(D,i[n.selectedScrollSnap()]),a=new Date().getTime(),n.emit(`autoplay:timerset`)}function m(){let{ownerWindow:e}=n.internalEngine();e.clearTimeout(o),o=0,a=null,n.emit(`autoplay:timerstopped`)}function h(){if(!r){if(v()){l=!0;return}s||n.emit(`autoplay:play`),p(),s=!0}}function g(){r||(s&&n.emit(`autoplay:stop`),m(),s=!1)}function _(){if(v())return l=s,g();l&&h()}function v(){let{ownerDocument:e}=n.internalEngine();return e.visibilityState===`hidden`}function y(){c||g()}function b(){c||h()}function x(){c=!0,g()}function S(){c=!1,h()}function C(e){e!==void 0&&(u=e),h()}function w(){s&&g()}function T(){s&&h()}function E(){return s}function D(){let{index:e}=n.internalEngine(),r=e.clone().add(1).get(),i=n.scrollSnapList().length-1,a=t.stopOnLastSnap&&r===i;if(n.canScrollNext()?n.scrollNext(u):n.scrollTo(0,u),n.emit(`autoplay:select`),a)return g();h()}function O(){return a?i[n.selectedScrollSnap()]-(new Date().getTime()-a):null}return{name:`autoplay`,options:e,init:d,destroy:f,play:C,stop:w,reset:T,isPlaying:E,timeUntilNext:O}}W.globalOptions=void 0;var Se=e(`:host{--slide-height:19rem;--slide-size:100%;--slide-gap:0;--button-size:48px;--button-arrow-size:20px;--button-arrow-color:#4b5563;--button-offset:8px;--button-border-color:#e5e7eb;--button-border-radius:8px;--button-bg:#fffc;--button-color:inherit;--button-box-shadow-hover:0 1px 2px #3c40434d, 0 1px 3px 1px #3c404326;--dot-color:#9ca3af;--dot-color-active:#111827;--dot-margin:.5rem 0;--dot-edge-scale:.5;--scrollbar-color:#d1d5db transparent;display:block;position:relative;container-type:inline-size}:host([single]){--slide-size:100%;--slide-gap:0}:host([axis=y]) .container{max-height:var(--slide-height);flex-direction:column}:host([axis=y]) .viewport{max-height:var(--slide-height)}.viewport{overflow:hidden}:host([with-scrollbar]) .viewport{scrollbar-color:var(--scrollbar-color);scrollbar-gutter:stable both-edges;scrollbar-width:thin;overflow-x:scroll}.container{backface-visibility:hidden;gap:var(--slide-gap);touch-action:pan-y pinch-zoom;display:flex}::slotted(l-carousel-item){flex:0 0 var(--slide-size);min-width:0}.scroll-buttons--inside{pointer-events:none;position:absolute;inset:0}.scroll-buttons--outside{justify-content:end;gap:8px;padding-block:8px;display:flex}.scroll-buttons--disabled,.inactive .scroll-buttons{display:none}.button-next,.button-previous,.button-fullscreen{appearance:none;touch-action:manipulation;border:1px solid var(--button-border-color);border-radius:var(--button-border-radius);width:var(--button-size);height:var(--button-size);background-color:var(--button-bg);color:var(--button-color);cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:#31313180;justify-content:center;align-items:center;display:flex}.scroll-buttons--inside .button-previous,.scroll-buttons--inside .button-next,.button-fullscreen{top:calc(50% - (var(--button-size) / 2));z-index:1;position:absolute}.scroll-buttons--inside .button-previous{left:var(--button-offset)}.scroll-buttons--inside .button-next{right:var(--button-offset)}.scroll-buttons--inside .button:disabled{visibility:hidden}.button:disabled{cursor:not-allowed;pointer-events:none;opacity:.4}.button-fullscreen{right:var(--button-offset);top:var(--button-offset);width:calc(var(--button-size) * .75);height:calc(var(--button-size) * .75);border-radius:4px}@container (width>=640px){.button-fullscreen{width:var(--button-size);height:var(--button-size)}}@media (hover:hover){.button:hover:not(:disabled){box-shadow:var(--button-box-shadow-hover)}}.button svg{width:var(--button-arrow-size);height:var(--button-arrow-size);color:var(--button-arrow-color)}.dots{margin:var(--dot-margin);justify-content:center;display:flex}.dot{appearance:none;touch-action:manipulation;cursor:pointer;transform-origin:50%;background:0 0;border:0;place-items:center;padding-block:.5rem;padding-inline:.25rem;transition:transform .18s;display:inline-flex}.dot[data-edge]{transform:scale(var(--dot-edge-scale))}.dot--bar i{background:var(--dot-color);width:1rem;height:.125rem}.dot--selected i{background:var(--dot-color-active)}.dot--circle i{border:2px solid var(--dot-color-active);border-radius:8px;width:10px;height:10px;display:inline-block}.dot--circle.dot--selected i{width:30px}`),Ce=class extends Event{constructor(e){super(`select`,{bubbles:!0,composed:!1,cancelable:!1}),this.index=e}},G=class extends Event{constructor(e){super(`slides-in-view`,{bubbles:!1,composed:!1,cancelable:!1}),this.indexes=e}},we=class extends Event{constructor(){super(`fullscreen`,{bubbles:!1,composed:!1,cancelable:!1})}},K=class extends s{constructor(...e){super(...e),this._localize=new c(this),this.#e=0,this.#n=`x`,this.#r=`start`,this.#i={},this.#a=!1,this.#o=!1,this.#s=20,this.#c=!1,this.#l=1,this.#u=0,this.#d=`trimSnaps`,this.#f=!1,this.#p=!1,this.#m=!1,this.#h=!1,this.#g=`bar`,this.#_=0,this.#v=`inside`,this.#y=0,this.onSlidesInView=()=>{this.dispatchEvent(new G(this.embla.slidesInView()))},this.onInit=()=>{this.updateNavigation()},this.onReInit=()=>{this.updateNavigation(),this.requestUpdate()},this.onSelect=()=>{this.dispatchEvent(new Ce(this.embla.selectedScrollSnap())),this.updateNavigation()},this.onResize=()=>{this.requestUpdate()},this.detachEventListeners=()=>{this.previousBtn.removeEventListener(`click`,this.previous),this.nextBtn.removeEventListener(`click`,this.next)},this.handleSlotChange=e=>{e.target.assignedElements().length>0&&this.embla.reInit(this.options())},this.handleDotClick=e=>{let t=e.currentTarget;this.goToSlide(Number(t.dataset.index))},this.next=()=>{this.embla.scrollNext()},this.previous=()=>{this.embla.scrollPrev()}}static{this.styles=[l,Se]}#e;get autoplay(){return this.#e}set autoplay(e){this.#e=e}#t;get autoplayOptions(){return this.#t}set autoplayOptions(e){this.#t=e}#n;get axis(){return this.#n}set axis(e){this.#n=e}#r;get align(){return this.#r}set align(e){this.#r=e}#i;get breakpoints(){return this.#i}set breakpoints(e){this.#i=e}#a;get loop(){return this.#a}set loop(e){this.#a=e}#o;get dragFree(){return this.#o}set dragFree(e){this.#o=e}#s;get duration(){return this.#s}set duration(e){this.#s=e}#c;get skipSnaps(){return this.#c}set skipSnaps(e){this.#c=e}#l;get slidesToScroll(){return this.#l}set slidesToScroll(e){this.#l=e}#u;get startIndex(){return this.#u}set startIndex(e){this.#u=e}#d;get containScroll(){return this.#d}set containScroll(e){this.#d=e}#f;get single(){return this.#f}set single(e){this.#f=e}#p;get withDots(){return this.#p}set withDots(e){this.#p=e}#m;get withScrollbar(){return this.#m}set withScrollbar(e){this.#m=e}#h;get withFullscreen(){return this.#h}set withFullscreen(e){this.#h=e}#g;get dotAppearance(){return this.#g}set dotAppearance(e){this.#g=e}#_;get maxVisibleDots(){return this.#_}set maxVisibleDots(e){this.#_=e}#v;get scrollButtonsPosition(){return this.#v}set scrollButtonsPosition(e){this.#v=e}#y;get _selectedSnap(){return this.#y}set _selectedSnap(e){this.#y=e}connectedCallback(){super.connectedCallback(),this.createEmbla()}disconnectedCallback(){super.disconnectedCallback(),this.embla&&this.embla.destroy()}firstUpdated(){this.attachEventListeners()}createEmbla(){this.embla=ve(this,this.options()),this.embla.on(`init`,this.onInit).on(`reInit`,this.onReInit).on(`resize`,this.onResize).on(`slidesInView`,this.onSlidesInView).on(`select`,this.onSelect).on(`destroy`,this.detachEventListeners)}attachEventListeners(){this.previousBtn.addEventListener(`click`,this.previous),this.nextBtn.addEventListener(`click`,this.next)}updateNavigation(){let e=this.embla.canScrollPrev()||this.embla.canScrollNext();this.previousBtn.toggleAttribute(`disabled`,!this.embla.canScrollPrev()),this.nextBtn.toggleAttribute(`disabled`,!this.embla.canScrollNext()),this.scrollButtons.classList.toggle(`scroll-buttons--disabled`,!e),this._selectedSnap=this.embla.selectedScrollSnap()}async updated(e){e.has(`autoplay`)&&this.autoplay&&this.initAutoplay()}initAutoplay(){this.embla.reInit(this.options(),[W(this.autoplayOptions||{delay:this.autoplay})])}options(){let e=this.shadowRoot.querySelector(`slot`);return e?{container:e,slides:e.assignedElements(),containScroll:this.containScroll,breakpoints:this.breakpoints,axis:this.axis,align:this.align,dragFree:this.dragFree,duration:this.duration,loop:this.loop,slidesToScroll:this.slidesToScroll,skipSnaps:this.skipSnaps,startIndex:this.startIndex}:{container:this,slides:[]}}goToSlide(e,t){this.embla.scrollTo(e,t)}slideNodes(){this.embla.slideNodes()}slidesInView(){this.embla.slidesInView()}isActive(){return this.embla?.internalEngine().options.active}renderFullscreenButton(){return a`<button
|
|
1
|
+
import{i as e}from"../../chunks/lit.js";import{n as t,r as n,t as r}from"../../chunks/decorate.js";import{t as i}from"../../chunks/query.js";import{a,t as o}from"../../chunks/lit-html.js";import{t as s}from"../../chunks/map.js";import{LuxenElement as c}from"../../shared/luxen-element.js";import{LocalizeController as l}from"../../shared/localize.js";import u from"../../shared/styles/host.styles.js";function d(e){return typeof e==`number`}function f(e){return typeof e==`string`}function p(e){return typeof e==`boolean`}function m(e){return Object.prototype.toString.call(e)===`[object Object]`}function h(e){return Math.abs(e)}function g(e){return Math.sign(e)}function _(e,t){return h(e-t)}function v(e,t){return e===0||t===0||h(e)<=h(t)?0:h(_(h(e),h(t))/e)}function y(e){return Math.round(e*100)/100}function b(e){return T(e).map(Number)}function x(e){return e[S(e)]}function S(e){return Math.max(0,e.length-1)}function C(e,t){return t===S(e)}function w(e,t=0){return Array.from(Array(e),(e,n)=>t+n)}function T(e){return Object.keys(e)}function E(e,t){return[e,t].reduce((e,t)=>(T(t).forEach(n=>{let r=e[n],i=t[n];e[n]=m(r)&&m(i)?E(r,i):i}),e),{})}function D(e,t){return t.MouseEvent!==void 0&&e instanceof t.MouseEvent}function O(e,t){let n={start:r,center:i,end:a};function r(){return 0}function i(e){return a(e)/2}function a(e){return t-e}function o(r,i){return f(e)?n[e](r):e(t,r,i)}return{measure:o}}function k(){let e=[];function t(t,n,i,a={passive:!0}){let o;if(`addEventListener`in t)t.addEventListener(n,i,a),o=()=>t.removeEventListener(n,i,a);else{let e=t;e.addListener(i),o=()=>e.removeListener(i)}return e.push(o),r}function n(){e=e.filter(e=>e())}let r={add:t,clear:n};return r}function A(e,t,n,r){let i=k(),a=1e3/60,o=null,s=0,c=0;function l(){i.add(e,`visibilitychange`,()=>{e.hidden&&m()})}function u(){p(),i.clear()}function d(e){if(!c)return;o||(o=e,n(),n());let i=e-o;for(o=e,s+=i;s>=a;)n(),s-=a;r(s/a),c&&=t.requestAnimationFrame(d)}function f(){c||=t.requestAnimationFrame(d)}function p(){t.cancelAnimationFrame(c),o=null,s=0,c=0}function m(){o=null,s=0}return{init:l,destroy:u,start:f,stop:p,update:n,render:r}}function j(e,t){let n=t===`rtl`,r=e===`y`,i=r?`y`:`x`,a=r?`x`:`y`,o=!r&&n?-1:1,s=u(),c=d();function l(e){let{height:t,width:n}=e;return r?t:n}function u(){return r?`top`:n?`right`:`left`}function d(){return r?`bottom`:n?`left`:`right`}function f(e){return e*o}return{scroll:i,cross:a,startEdge:s,endEdge:c,measureSize:l,direction:f}}function M(e=0,t=0){let n=h(e-t);function r(t){return t<e}function i(e){return e>t}function a(e){return r(e)||i(e)}function o(n){return a(n)?r(n)?e:t:n}function s(e){return n?e-n*Math.ceil((e-t)/n):e}return{length:n,max:t,min:e,constrain:o,reachedAny:a,reachedMax:i,reachedMin:r,removeOffset:s}}function ee(e,t,n){let{constrain:r}=M(0,e),i=e+1,a=o(t);function o(e){return n?h((i+e)%i):r(e)}function s(){return a}function c(e){return a=o(e),d}function l(e){return u().set(s()+e)}function u(){return ee(e,s(),n)}let d={get:s,set:c,add:l,clone:u};return d}function te(e,t,n,r,i,a,o,s,c,l,u,d,f,m,y,b,x,S,C){let{cross:w,direction:T}=e,E=[`INPUT`,`SELECT`,`TEXTAREA`],O={passive:!1},A=k(),j=k(),ee=M(50,225).constrain(m.measure(20)),te={mouse:300,touch:400},ne={mouse:500,touch:600},re=y?43:25,ie=!1,ae=0,N=0,P=!1,F=!1,I=!1,L=!1;function oe(e){if(!C)return;function n(t){(p(C)||C(e,t))&&z(t)}let r=t;A.add(r,`dragstart`,e=>e.preventDefault(),O).add(r,`touchmove`,()=>void 0,O).add(r,`touchend`,()=>void 0).add(r,`touchstart`,n).add(r,`mousedown`,n).add(r,`touchcancel`,V).add(r,`contextmenu`,V).add(r,`click`,de,!0)}function se(){A.clear(),j.clear()}function ce(){let e=L?n:t;j.add(e,`touchmove`,B,O).add(e,`touchend`,V).add(e,`mousemove`,B,O).add(e,`mouseup`,V)}function le(e){let t=e.nodeName||``;return E.includes(t)}function R(){return(y?ne:te)[L?`mouse`:`touch`]}function ue(e,t){let n=d.add(g(e)*-1),r=u.byDistance(e,!y).distance;return y||h(e)<ee?r:x&&t?r*.5:u.byIndex(n.get(),0).distance}function z(e){let t=D(e,r);L=t,I=y&&t&&!e.buttons&&ie,ie=_(i.get(),o.get())>=2,t&&e.button!==0||le(e.target)||(P=!0,a.pointerDown(e),l.useFriction(0).useDuration(0),i.set(o),ce(),ae=a.readPoint(e),N=a.readPoint(e,w),f.emit(`pointerDown`))}function B(e){if(!D(e,r)&&e.touches.length>=2)return V(e);let t=a.readPoint(e),n=a.readPoint(e,w),o=_(t,ae),c=_(n,N);if(!F&&!L&&(!e.cancelable||(F=o>c,!F)))return V(e);let u=a.pointerMove(e);o>b&&(I=!0),l.useFriction(.3).useDuration(.75),s.start(),i.add(T(u)),e.preventDefault()}function V(e){let t=u.byDistance(0,!1).index!==d.get(),n=a.pointerUp(e)*R(),r=ue(T(n),t),i=v(n,r),o=re-10*i,s=S+i/50;F=!1,P=!1,j.clear(),l.useDuration(o).useFriction(s),c.distance(r,!y),L=!1,f.emit(`pointerUp`)}function de(e){I&&=(e.stopPropagation(),e.preventDefault(),!1)}function fe(){return P}return{init:oe,destroy:se,pointerDown:fe}}function ne(e,t){let n,r;function i(e){return e.timeStamp}function a(n,r){let i=`client${(r||e.scroll)===`x`?`X`:`Y`}`;return(D(n,t)?n:n.touches[0])[i]}function o(e){return n=e,r=e,a(e)}function s(e){let t=a(e)-a(r),o=i(e)-i(n)>170;return r=e,o&&(n=e),t}function c(e){if(!n||!r)return 0;let t=a(r)-a(n),o=i(e)-i(n),s=i(e)-i(r)>170,c=t/o;return o&&!s&&h(c)>.1?c:0}return{pointerDown:o,pointerMove:s,pointerUp:c,readPoint:a}}function re(){function e(e){let{offsetTop:t,offsetLeft:n,offsetWidth:r,offsetHeight:i}=e;return{top:t,right:n+r,bottom:t+i,left:n,width:r,height:i}}return{measure:e}}function ie(e){function t(t){return t/100*e}return{measure:t}}function ae(e,t,n,r,i,a,o){let s=[e].concat(r),c,l,u=[],d=!1;function f(e){return i.measureSize(o.measure(e))}function m(i){if(!a)return;l=f(e),u=r.map(f);function o(n){for(let a of n){if(d)return;let n=a.target===e,o=r.indexOf(a.target),s=n?l:u[o];if(h(f(n?e:r[o])-s)>=.5){i.reInit(),t.emit(`resize`);break}}}c=new ResizeObserver(e=>{(p(a)||a(i,e))&&o(e)}),n.requestAnimationFrame(()=>{s.forEach(e=>c.observe(e))})}function g(){d=!0,c&&c.disconnect()}return{init:m,destroy:g}}function N(e,t,n,r,i,a){let o=0,s=0,c=i,l=a,u=e.get(),d=0;function f(){let t=r.get()-e.get(),i=!c,a=0;return i?(o=0,n.set(r),e.set(r),a=t):(n.set(e),o+=t/c,o*=l,u+=o,e.add(o),a=u-d),s=g(a),d=u,C}function p(){return h(r.get()-t.get())<.001}function m(){return c}function _(){return s}function v(){return o}function y(){return x(i)}function b(){return S(a)}function x(e){return c=e,C}function S(e){return l=e,C}let C={direction:_,duration:m,velocity:v,seek:f,settled:p,useBaseFriction:b,useBaseDuration:y,useFriction:S,useDuration:x};return C}function P(e,t,n,r,i){let a=i.measure(10),o=i.measure(50),s=M(.1,.99),c=!1;function l(){return!(c||!e.reachedAny(n.get())||!e.reachedAny(t.get()))}function u(i){if(!l())return;let c=h(e[e.reachedMin(t.get())?`min`:`max`]-t.get()),u=n.get()-t.get(),d=s.constrain(c/o);n.subtract(u*d),!i&&h(u)<a&&(n.set(e.constrain(n.get())),r.useDuration(25).useBaseFriction())}function d(e){c=!e}return{shouldConstrain:l,constrain:u,toggleActive:d}}function F(e,t,n,r,i){let a=M(-t+e,0),o=d(),s=u(),c=f();function l(e,t){return _(e,t)<=1}function u(){let e=o[0],t=x(o);return M(o.lastIndexOf(e),o.indexOf(t)+1)}function d(){return n.map((e,t)=>{let{min:r,max:i}=a,o=a.constrain(e),s=!t,c=C(n,t);return s?i:c||l(r,o)?r:l(i,o)?i:o}).map(e=>parseFloat(e.toFixed(3)))}function f(){if(t<=e+i)return[a.max];if(r===`keepSnaps`)return o;let{min:n,max:c}=s;return o.slice(n,c)}return{snapsContained:c,scrollContainLimit:s}}function I(e,t,n){let r=t[0];return{limit:M(n?r-e:x(t),r)}}function L(e,t,n,r){let i=.1,{reachedMin:a,reachedMax:o}=M(t.min+i,t.max+i);function s(e){return e===1?o(n.get()):e===-1&&a(n.get())}function c(t){if(!s(t))return;let n=t*-1*e;r.forEach(e=>e.add(n))}return{loop:c}}function oe(e){let{max:t,length:n}=e;function r(e){let r=e-t;return n?r/-n:0}return{get:r}}function se(e,t,n,r,i){let{startEdge:a,endEdge:o}=e,{groupSlides:s}=i,c=d().map(t.measure),l=f(),u=p();function d(){return s(r).map(e=>x(e)[o]-e[0][a]).map(h)}function f(){return r.map(e=>n[a]-e[a]).map(e=>-h(e))}function p(){return s(l).map(e=>e[0]).map((e,t)=>e+c[t])}return{snaps:l,snapsAligned:u}}function ce(e,t,n,r,i,a){let{groupSlides:o}=i,{min:s,max:c}=r,l=u();function u(){let r=o(a),i=!e||t===`keepSnaps`;return n.length===1?[a]:i?r:r.slice(s,c).map((e,t,n)=>{let r=!t,i=C(n,t);return r?w(x(n[0])+1):i?w(S(a)-x(n)[0]+1,x(n)[0]):e})}return{slideRegistry:l}}function le(e,t,n,r,i){let{reachedAny:a,removeOffset:o,constrain:s}=r;function c(e){return e.concat().sort((e,t)=>h(e)-h(t))[0]}function l(n){let r=e?o(n):s(n),{index:i}=t.map((e,t)=>({diff:u(e-r,0),index:t})).sort((e,t)=>h(e.diff)-h(t.diff))[0];return{index:i,distance:r}}function u(t,r){let i=[t,t+n,t-n];if(!e)return t;if(!r)return c(i);let a=i.filter(e=>g(e)===r);return a.length?c(a):x(i)-n}function d(e,n){return{index:e,distance:u(t[e]-i.get(),n)}}function f(n,r){let o=i.get()+n,{index:s,distance:c}=l(o),d=!e&&a(o);return!r||d?{index:s,distance:n}:{index:s,distance:n+u(t[s]-c,0)}}return{byDistance:f,byIndex:d,shortcut:u}}function R(e,t,n,r,i,a,o){function s(i){let s=i.distance,c=i.index!==t.get();a.add(s),s&&(r.duration()?e.start():(e.update(),e.render(1),e.update())),c&&(n.set(t.get()),t.set(i.index),o.emit(`select`))}function c(e,t){s(i.byDistance(e,t))}function l(e,n){let r=t.clone().set(e);s(i.byIndex(r.get(),n))}return{distance:c,index:l}}function ue(e,t,n,r,i,a,o,s){let c={passive:!0,capture:!0},l=0;function u(u){if(!s)return;function m(t){if(new Date().getTime()-l>10)return;o.emit(`slideFocusStart`),e.scrollLeft=0;let a=n.findIndex(e=>e.includes(t));d(a)&&(i.useDuration(0),r.index(a,0),o.emit(`slideFocus`))}a.add(document,`keydown`,f,!1),t.forEach((e,t)=>{a.add(e,`focus`,e=>{(p(s)||s(u,e))&&m(t)},c)})}function f(e){e.code===`Tab`&&(l=new Date().getTime())}return{init:u}}function z(e){let t=e;function n(){return t}function r(e){t=o(e)}function i(e){t+=o(e)}function a(e){t-=o(e)}function o(e){return d(e)?e:e.get()}return{get:n,set:r,add:i,subtract:a}}function B(e,t){let n=e.scroll===`x`?o:s,r=t.style,i=null,a=!1;function o(e){return`translate3d(${e}px,0px,0px)`}function s(e){return`translate3d(0px,${e}px,0px)`}function c(t){if(a)return;let o=y(e.direction(t));o!==i&&(r.transform=n(o),i=o)}function l(e){a=!e}function u(){a||(r.transform=``,t.getAttribute(`style`)||t.removeAttribute(`style`))}return{clear:u,to:c,toggleActive:l}}function V(e,t,n,r,i,a,o,s,c){let l=.5,u=b(i),d=b(i).reverse(),f=_().concat(v());function p(e,t){return e.reduce((e,t)=>e-i[t],t)}function m(e,t){return e.reduce((e,n)=>p(e,t)>0?e.concat([n]):e,[])}function h(e){return a.map((n,i)=>({start:n-r[i]+l+e,end:n+t-l+e}))}function g(t,r,i){let a=h(r);return t.map(t=>{let r=i?0:-n,o=i?n:0,l=i?`end`:`start`,u=a[t][l];return{index:t,loopPoint:u,slideLocation:z(-1),translate:B(e,c[t]),target:()=>s.get()>u?r:o}})}function _(){let e=o[0];return g(m(d,e),n,!1)}function v(){let e=t-o[0]-1;return g(m(u,e),-n,!0)}function y(){return f.every(({index:e})=>p(u.filter(t=>t!==e),t)<=.1)}function x(){f.forEach(e=>{let{target:t,translate:n,slideLocation:r}=e,i=t();i!==r.get()&&(n.to(i),r.set(i))})}function S(){f.forEach(e=>e.translate.clear())}return{canLoop:y,clear:S,loop:x,loopPoints:f}}function de(e,t,n){let r,i=!1;function a(a){if(!n)return;function o(e){for(let n of e)if(n.type===`childList`){a.reInit(),t.emit(`slidesChanged`);break}}r=new MutationObserver(e=>{i||(p(n)||n(a,e))&&o(e)}),r.observe(e,{childList:!0})}function o(){r&&r.disconnect(),i=!0}return{init:a,destroy:o}}function fe(e,t,n,r){let i={},a=null,o=null,s,c=!1;function l(){s=new IntersectionObserver(e=>{c||(e.forEach(e=>{let n=t.indexOf(e.target);i[n]=e}),a=null,o=null,n.emit(`slidesInView`))},{root:e.parentElement,threshold:r}),t.forEach(e=>s.observe(e))}function u(){s&&s.disconnect(),c=!0}function d(e){return T(i).reduce((t,n)=>{let r=parseInt(n),{isIntersecting:a}=i[r];return(e&&a||!e&&!a)&&t.push(r),t},[])}function f(e=!0){if(e&&a)return a;if(!e&&o)return o;let t=d(e);return e&&(a=t),e||(o=t),t}return{init:l,destroy:u,get:f}}function pe(e,t,n,r,i,a){let{measureSize:o,startEdge:s,endEdge:c}=e,l=n[0]&&i,u=m(),d=g(),f=n.map(o),p=_();function m(){if(!l)return 0;let e=n[0];return h(t[s]-e[s])}function g(){if(!l)return 0;let e=a.getComputedStyle(x(r));return parseFloat(e.getPropertyValue(`margin-${c}`))}function _(){return n.map((e,t,n)=>{let r=!t,i=C(n,t);return r?f[t]+u:i?f[t]+d:n[t+1][s]-e[s]}).map(h)}return{slideSizes:f,slideSizesWithGaps:p,startGap:u,endGap:d}}function me(e,t,n,r,i,a,o,s,c){let{startEdge:l,endEdge:u,direction:f}=e,p=d(n);function m(e,t){return b(e).filter(e=>e%t===0).map(n=>e.slice(n,n+t))}function g(e){return e.length?b(e).reduce((n,d,p)=>{let m=x(n)||0,g=m===0,_=d===S(e),v=i[l]-a[m][l],y=i[l]-a[d][u],b=!r&&g?f(o):0,C=h(y-(!r&&_?f(s):0)-(v+b));return p&&C>t+c&&n.push(d),_&&n.push(e.length),n},[]).map((t,n,r)=>{let i=Math.max(r[n-1]||0);return e.slice(i,t)}):[]}function _(e){return p?m(e,n):g(e)}return{groupSlides:_}}function H(e,t,n,r,i,a,o){let{align:s,axis:c,direction:l,startIndex:u,loop:d,duration:f,dragFree:p,dragThreshold:m,inViewThreshold:h,slidesToScroll:g,skipSnaps:_,containScroll:v,watchResize:y,watchSlides:C,watchDrag:w,watchFocus:T}=a,E=re(),D=E.measure(t),M=n.map(E.measure),H=j(c,l),U=H.measureSize(D),he=ie(U),ge=O(s,U),_e=!d&&!!v,{slideSizes:ve,slideSizesWithGaps:ye,startGap:be,endGap:xe}=pe(H,D,M,n,d||!!v,i),W=me(H,U,g,d,D,M,be,xe,2),{snaps:Se,snapsAligned:Ce}=se(H,ge,D,M,W),G=-x(Se)+x(ye),{snapsContained:we,scrollContainLimit:K}=F(U,G,Ce,v,2),q=_e?we:Ce,{limit:J}=I(G,q,d),Y=ee(S(q),u,d),Te=Y.clone(),Ee=b(n),De=({dragHandler:e,scrollBody:t,scrollBounds:n,options:{loop:r}})=>{r||n.constrain(e.pointerDown()),t.seek()},Oe=({scrollBody:e,translate:t,location:n,offsetLocation:r,previousLocation:i,scrollLooper:a,slideLooper:o,dragHandler:s,animation:c,eventHandler:l,scrollBounds:u,options:{loop:d}},f)=>{let p=e.settled(),m=!u.shouldConstrain(),h=d?p:p&&m,g=h&&!s.pointerDown();g&&c.stop();let _=n.get()*f+i.get()*(1-f);r.set(_),d&&(a.loop(e.direction()),o.loop()),t.to(r.get()),g&&l.emit(`settle`),h||l.emit(`scroll`)},ke=A(r,i,()=>De(Be),e=>Oe(Be,e)),Ae=.68,X=q[Y.get()],je=z(X),Me=z(X),Z=z(X),Q=z(X),$=N(je,Z,Me,Q,f,Ae),Ne=le(d,q,G,J,Q),Pe=R(ke,Y,Te,$,Ne,Q,o),Fe=oe(J),Ie=k(),Le=fe(t,n,o,h),{slideRegistry:Re}=ce(_e,v,q,K,W,Ee),ze=ue(e,n,Re,Pe,$,Ie,o,T),Be={ownerDocument:r,ownerWindow:i,eventHandler:o,containerRect:D,slideRects:M,animation:ke,axis:H,dragHandler:te(H,e,r,i,Q,ne(H,i),je,ke,Pe,$,Ne,Y,o,he,p,m,_,Ae,w),eventStore:Ie,percentOfView:he,index:Y,indexPrevious:Te,limit:J,location:je,offsetLocation:Z,previousLocation:Me,options:a,resizeHandler:ae(t,o,i,n,H,y,E),scrollBody:$,scrollBounds:P(J,Z,Q,$,he),scrollLooper:L(G,J,Z,[je,Z,Me,Q]),scrollProgress:Fe,scrollSnapList:q.map(Fe.get),scrollSnaps:q,scrollTarget:Ne,scrollTo:Pe,slideLooper:V(H,U,G,ve,ye,Se,q,Z,n),slideFocus:ze,slidesHandler:de(t,o,C),slidesInView:Le,slideIndexes:Ee,slideRegistry:Re,slidesToScroll:W,target:Q,translate:B(H,t)};return Be}function U(){let e={},t;function n(e){t=e}function r(t){return e[t]||[]}function i(e){return r(e).forEach(n=>n(t,e)),c}function a(t,n){return e[t]=r(t).concat([n]),c}function o(t,n){return e[t]=r(t).filter(e=>e!==n),c}function s(){e={}}let c={init:n,emit:i,off:o,on:a,clear:s};return c}var he={align:`center`,axis:`x`,container:null,slides:null,containScroll:`trimSnaps`,direction:`ltr`,slidesToScroll:1,inViewThreshold:0,breakpoints:{},dragFree:!1,dragThreshold:10,loop:!1,skipSnaps:!1,duration:25,startIndex:0,active:!0,watchDrag:!0,watchResize:!0,watchSlides:!0,watchFocus:!0};function ge(e){function t(e,t){return E(e,t||{})}function n(n){let r=n.breakpoints||{};return t(n,T(r).filter(t=>e.matchMedia(t).matches).map(e=>r[e]).reduce((e,n)=>t(e,n),{}))}function r(t){return t.map(e=>T(e.breakpoints||{})).reduce((e,t)=>e.concat(t),[]).map(e.matchMedia)}return{mergeOptions:t,optionsAtMedia:n,optionsMediaQueries:r}}function _e(e){let t=[];function n(n,r){return t=r.filter(({options:t})=>e.optionsAtMedia(t).active!==!1),t.forEach(t=>t.init(n,e)),r.reduce((e,t)=>Object.assign(e,{[t.name]:t}),{})}function r(){t=t.filter(e=>e.destroy())}return{init:n,destroy:r}}function ve(e,t,n){let r=e.ownerDocument,i=r.defaultView,a=ge(i),o=_e(a),s=k(),c=U(),{mergeOptions:l,optionsAtMedia:u,optionsMediaQueries:d}=a,{on:p,off:m,emit:h}=c,g=O,_=!1,v,y=l(he,ve.globalOptions),b=l(y),x=[],S,C,w;function T(){let{container:t,slides:n}=b;C=(f(t)?e.querySelector(t):t)||e.children[0];let r=f(n)?C.querySelectorAll(n):n;w=[].slice.call(r||C.children)}function E(t){let n=H(e,C,w,r,i,t,c);return t.loop&&!n.slideLooper.canLoop()?E(Object.assign({},t,{loop:!1})):n}function D(e,t){_||(y=l(y,e),b=u(y),x=t||x,T(),v=E(b),d([y,...x.map(({options:e})=>e)]).forEach(e=>s.add(e,`change`,O)),b.active&&(v.translate.to(v.location.get()),v.animation.init(),v.slidesInView.init(),v.slideFocus.init(R),v.eventHandler.init(R),v.resizeHandler.init(R),v.slidesHandler.init(R),v.options.loop&&v.slideLooper.loop(),C.offsetParent&&w.length&&v.dragHandler.init(R),S=o.init(R,x)))}function O(e,t){let n=N();A(),D(l({startIndex:n},e),t),c.emit(`reInit`)}function A(){v.dragHandler.destroy(),v.eventStore.clear(),v.translate.clear(),v.slideLooper.clear(),v.resizeHandler.destroy(),v.slidesHandler.destroy(),v.slidesInView.destroy(),v.animation.destroy(),o.destroy(),s.clear()}function j(){_||(_=!0,s.clear(),A(),c.emit(`destroy`),c.clear())}function M(e,t,n){b.active&&!_&&(v.scrollBody.useBaseFriction().useDuration(t===!0?0:b.duration),v.scrollTo.index(e,n||0))}function ee(e){M(v.index.add(1).get(),e,-1)}function te(e){M(v.index.add(-1).get(),e,1)}function ne(){return v.index.add(1).get()!==N()}function re(){return v.index.add(-1).get()!==N()}function ie(){return v.scrollSnapList}function ae(){return v.scrollProgress.get(v.offsetLocation.get())}function N(){return v.index.get()}function P(){return v.indexPrevious.get()}function F(){return v.slidesInView.get()}function I(){return v.slidesInView.get(!1)}function L(){return S}function oe(){return v}function se(){return e}function ce(){return C}function le(){return w}let R={canScrollNext:ne,canScrollPrev:re,containerNode:ce,internalEngine:oe,destroy:j,off:m,on:p,emit:h,plugins:L,previousScrollSnap:P,reInit:g,rootNode:se,scrollNext:ee,scrollPrev:te,scrollProgress:ae,scrollSnapList:ie,scrollTo:M,selectedScrollSnap:N,slideNodes:le,slidesInView:F,slidesNotInView:I};return D(t,n),setTimeout(()=>c.emit(`init`),0),R}ve.globalOptions=void 0;var ye={active:!0,breakpoints:{},delay:4e3,jump:!1,playOnInit:!0,stopOnFocusIn:!0,stopOnInteraction:!0,stopOnMouseEnter:!1,stopOnLastSnap:!1,rootNode:null};function be(e,t){let n=e.scrollSnapList();return typeof t==`number`?n.map(()=>t):t(n,e)}function xe(e,t){let n=e.rootNode();return t&&t(n)||n}function W(e={}){let t,n,r,i,a=null,o=0,s=!1,c=!1,l=!1,u=!1;function d(a,o){n=a;let{mergeOptions:s,optionsAtMedia:c}=o;if(t=c(s(s(ye,W.globalOptions),e)),n.scrollSnapList().length<=1)return;u=t.jump,r=!1,i=be(n,t.delay);let{eventStore:l,ownerDocument:d}=n.internalEngine(),f=!!n.internalEngine().options.watchDrag,p=xe(n,t.rootNode);l.add(d,`visibilitychange`,_),f&&n.on(`pointerDown`,y),f&&!t.stopOnInteraction&&n.on(`pointerUp`,b),t.stopOnMouseEnter&&l.add(p,`mouseenter`,x),t.stopOnMouseEnter&&!t.stopOnInteraction&&l.add(p,`mouseleave`,S),t.stopOnFocusIn&&n.on(`slideFocusStart`,g),t.stopOnFocusIn&&!t.stopOnInteraction&&l.add(n.containerNode(),`focusout`,h),t.playOnInit&&h()}function f(){n.off(`pointerDown`,y).off(`pointerUp`,b).off(`slideFocusStart`,g),g(),r=!0,s=!1}function p(){let{ownerWindow:e}=n.internalEngine();e.clearTimeout(o),o=e.setTimeout(D,i[n.selectedScrollSnap()]),a=new Date().getTime(),n.emit(`autoplay:timerset`)}function m(){let{ownerWindow:e}=n.internalEngine();e.clearTimeout(o),o=0,a=null,n.emit(`autoplay:timerstopped`)}function h(){r||(v()?l=!0:(s||n.emit(`autoplay:play`),p(),s=!0))}function g(){r||(s&&n.emit(`autoplay:stop`),m(),s=!1)}function _(){if(v())return l=s,g();l&&h()}function v(){let{ownerDocument:e}=n.internalEngine();return e.visibilityState===`hidden`}function y(){c||g()}function b(){c||h()}function x(){c=!0,g()}function S(){c=!1,h()}function C(e){e!==void 0&&(u=e),h()}function w(){s&&g()}function T(){s&&h()}function E(){return s}function D(){let{index:e}=n.internalEngine(),r=e.clone().add(1).get(),i=n.scrollSnapList().length-1,a=t.stopOnLastSnap&&r===i;if(n.canScrollNext()?n.scrollNext(u):n.scrollTo(0,u),n.emit(`autoplay:select`),a)return g();h()}function O(){return a?i[n.selectedScrollSnap()]-(new Date().getTime()-a):null}return{name:`autoplay`,options:e,init:d,destroy:f,play:C,stop:w,reset:T,isPlaying:E,timeUntilNext:O}}W.globalOptions=void 0;var Se=e(`:host{--slide-height:19rem;--slide-size:100%;--slide-gap:0;--button-size:48px;--button-arrow-size:20px;--button-arrow-color:#4b5563;--button-offset:8px;--button-border-color:#e5e7eb;--button-border-radius:8px;--button-bg:#fffc;--button-color:inherit;--button-box-shadow-hover:0 1px 2px #3c40434d, 0 1px 3px 1px #3c404326;--dot-color:#9ca3af;--dot-color-active:#111827;--dot-margin:.5rem 0;--dot-edge-scale:.5;--scrollbar-color:#d1d5db transparent;display:block;position:relative;container-type:inline-size}:host([single]){--slide-size:100%;--slide-gap:0}:host([axis=y]) .container{max-height:var(--slide-height);flex-direction:column}:host([axis=y]) .viewport{max-height:var(--slide-height)}.viewport{overflow:hidden}:host([with-scrollbar]) .viewport{scrollbar-color:var(--scrollbar-color);scrollbar-gutter:stable both-edges;scrollbar-width:thin;overflow-x:scroll}.container{backface-visibility:hidden;gap:var(--slide-gap);touch-action:pan-y pinch-zoom;display:flex}::slotted(l-carousel-item){flex:0 0 var(--slide-size);min-width:0}.scroll-buttons--inside{pointer-events:none;position:absolute;inset:0}.scroll-buttons--outside{justify-content:end;gap:8px;padding-block:8px;display:flex}.scroll-buttons--disabled,.inactive .scroll-buttons{display:none}.button-next,.button-previous,.button-fullscreen{appearance:none;touch-action:manipulation;border:1px solid var(--button-border-color);border-radius:var(--button-border-radius);width:var(--button-size);height:var(--button-size);background-color:var(--button-bg);color:var(--button-color);cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:#31313180;justify-content:center;align-items:center;display:flex}.scroll-buttons--inside .button-previous,.scroll-buttons--inside .button-next,.button-fullscreen{top:calc(50% - (var(--button-size) / 2));z-index:1;position:absolute}.scroll-buttons--inside .button-previous{left:var(--button-offset)}.scroll-buttons--inside .button-next{right:var(--button-offset)}.scroll-buttons--inside .button:disabled{visibility:hidden}.button:disabled{cursor:not-allowed;pointer-events:none;opacity:.4}.button-fullscreen{right:var(--button-offset);top:var(--button-offset);width:calc(var(--button-size) * .75);height:calc(var(--button-size) * .75);border-radius:4px}@container (width>=640px){.button-fullscreen{width:var(--button-size);height:var(--button-size)}}@media (hover:hover){.button:hover:not(:disabled){box-shadow:var(--button-box-shadow-hover)}}.button svg{width:var(--button-arrow-size);height:var(--button-arrow-size);color:var(--button-arrow-color)}.dots{margin:var(--dot-margin);justify-content:center;display:flex}.dot{appearance:none;touch-action:manipulation;cursor:pointer;transform-origin:50%;background:0 0;border:0;place-items:center;padding-block:.5rem;padding-inline:.25rem;transition:transform .18s;display:inline-flex}.dot[data-edge]{transform:scale(var(--dot-edge-scale))}.dot--bar i{background:var(--dot-color);width:1rem;height:.125rem}.dot--selected i{background:var(--dot-color-active)}.dot--circle i{border:2px solid var(--dot-color-active);border-radius:8px;width:10px;height:10px;display:inline-block}.dot--circle.dot--selected i{width:30px}`),Ce=class extends Event{constructor(e){super(`select`,{bubbles:!0,composed:!1,cancelable:!1}),this.index=e}},G=class extends Event{constructor(e){super(`slides-in-view`,{bubbles:!1,composed:!1,cancelable:!1}),this.indexes=e}},we=class extends Event{constructor(){super(`fullscreen`,{bubbles:!1,composed:!1,cancelable:!1})}},K=class extends c{constructor(...e){super(...e),this._localize=new l(this),this.#e=0,this.#n=`x`,this.#r=`start`,this.#i={},this.#a=!1,this.#o=!1,this.#s=20,this.#c=!1,this.#l=1,this.#u=0,this.#d=`trimSnaps`,this.#f=!1,this.#p=!1,this.#m=!1,this.#h=!1,this.#g=`bar`,this.#_=0,this.#v=`inside`,this.#y=0,this.onSlidesInView=()=>{this.dispatchEvent(new G(this.embla.slidesInView()))},this.onInit=()=>{this.updateNavigation()},this.onReInit=()=>{this.updateNavigation(),this.requestUpdate()},this.onSelect=()=>{this.dispatchEvent(new Ce(this.embla.selectedScrollSnap())),this.updateNavigation()},this.onResize=()=>{this.requestUpdate()},this.detachEventListeners=()=>{this.previousBtn.removeEventListener(`click`,this.previous),this.nextBtn.removeEventListener(`click`,this.next)},this.handleSlotChange=e=>{e.target.assignedElements().length>0&&this.embla.reInit(this.options())},this.handleDotClick=e=>{let t=e.currentTarget;this.goToSlide(Number(t.dataset.index))},this.next=()=>{this.embla.scrollNext()},this.previous=()=>{this.embla.scrollPrev()}}static{this.styles=[u,Se]}#e;get autoplay(){return this.#e}set autoplay(e){this.#e=e}#t;get autoplayOptions(){return this.#t}set autoplayOptions(e){this.#t=e}#n;get axis(){return this.#n}set axis(e){this.#n=e}#r;get align(){return this.#r}set align(e){this.#r=e}#i;get breakpoints(){return this.#i}set breakpoints(e){this.#i=e}#a;get loop(){return this.#a}set loop(e){this.#a=e}#o;get dragFree(){return this.#o}set dragFree(e){this.#o=e}#s;get duration(){return this.#s}set duration(e){this.#s=e}#c;get skipSnaps(){return this.#c}set skipSnaps(e){this.#c=e}#l;get slidesToScroll(){return this.#l}set slidesToScroll(e){this.#l=e}#u;get startIndex(){return this.#u}set startIndex(e){this.#u=e}#d;get containScroll(){return this.#d}set containScroll(e){this.#d=e}#f;get single(){return this.#f}set single(e){this.#f=e}#p;get withDots(){return this.#p}set withDots(e){this.#p=e}#m;get withScrollbar(){return this.#m}set withScrollbar(e){this.#m=e}#h;get withFullscreen(){return this.#h}set withFullscreen(e){this.#h=e}#g;get dotAppearance(){return this.#g}set dotAppearance(e){this.#g=e}#_;get maxVisibleDots(){return this.#_}set maxVisibleDots(e){this.#_=e}#v;get scrollButtonsPosition(){return this.#v}set scrollButtonsPosition(e){this.#v=e}#y;get _selectedSnap(){return this.#y}set _selectedSnap(e){this.#y=e}connectedCallback(){super.connectedCallback(),this.createEmbla()}disconnectedCallback(){super.disconnectedCallback(),this.embla&&this.embla.destroy()}firstUpdated(){this.attachEventListeners()}createEmbla(){this.embla=ve(this,this.options()),this.embla.on(`init`,this.onInit).on(`reInit`,this.onReInit).on(`resize`,this.onResize).on(`slidesInView`,this.onSlidesInView).on(`select`,this.onSelect).on(`destroy`,this.detachEventListeners)}attachEventListeners(){this.previousBtn.addEventListener(`click`,this.previous),this.nextBtn.addEventListener(`click`,this.next)}updateNavigation(){let e=this.embla.canScrollPrev()||this.embla.canScrollNext();this.previousBtn.toggleAttribute(`disabled`,!this.embla.canScrollPrev()),this.nextBtn.toggleAttribute(`disabled`,!this.embla.canScrollNext()),this.scrollButtons.classList.toggle(`scroll-buttons--disabled`,!e),this._selectedSnap=this.embla.selectedScrollSnap()}async updated(e){e.has(`autoplay`)&&this.autoplay&&this.initAutoplay()}initAutoplay(){this.embla.reInit(this.options(),[W(this.autoplayOptions||{delay:this.autoplay})])}options(){let e=this.shadowRoot.querySelector(`slot`);return e?{container:e,slides:e.assignedElements(),containScroll:this.containScroll,breakpoints:this.breakpoints,axis:this.axis,align:this.align,dragFree:this.dragFree,duration:this.duration,loop:this.loop,slidesToScroll:this.slidesToScroll,skipSnaps:this.skipSnaps,startIndex:this.startIndex}:{container:this,slides:[]}}goToSlide(e,t){this.embla.scrollTo(e,t)}slideNodes(){this.embla.slideNodes()}slidesInView(){this.embla.slidesInView()}isActive(){return this.embla?.internalEngine().options.active}renderFullscreenButton(){return a`<button
|
|
2
2
|
type="button"
|
|
3
3
|
part="button button-fullscreen"
|
|
4
4
|
class="button button-fullscreen"
|
|
@@ -54,12 +54,12 @@ import{i as e}from"../../chunks/lit.js";import{i as t,n,r,t as i}from"../../chun
|
|
|
54
54
|
/>
|
|
55
55
|
</svg>
|
|
56
56
|
</button>
|
|
57
|
-
</div>`}renderDots(){if(!this.embla)return o;let e=this.embla.scrollSnapList(),t=e.length;if(t===0)return o;let n=this._selectedSnap,r=this.maxVisibleDots,i=0,
|
|
57
|
+
</div>`}renderDots(){if(!this.embla)return o;let e=this.embla.scrollSnapList(),t=e.length;if(t===0)return o;let n=this._selectedSnap,r=this.maxVisibleDots,i=0,c=t;if(r>0&&r<t){let e=Math.floor((r-1)/2);i=Math.max(0,n-e),c=Math.min(t,i+r),c-i<r&&(i=Math.max(0,c-r))}let l=i>0,u=c<t;return a`<div
|
|
58
58
|
class="dots"
|
|
59
59
|
part="dots"
|
|
60
60
|
role="tablist"
|
|
61
61
|
>
|
|
62
|
-
${
|
|
62
|
+
${s(e.slice(i,c),(e,t)=>{let r=i+t,s=t===0,d=t===c-i-1,f=r===n,p=!f&&(s&&l||d&&u);return a`<button
|
|
63
63
|
part="button-dot"
|
|
64
64
|
type="button"
|
|
65
65
|
role="tab"
|
|
@@ -87,5 +87,5 @@ import{i as e}from"../../chunks/lit.js";import{i as t,n,r,t as i}from"../../chun
|
|
|
87
87
|
${this.withFullscreen?this.renderFullscreenButton():``}
|
|
88
88
|
${this.renderNextPreviousButtons()} ${this.withDots?this.renderDots():``}
|
|
89
89
|
</div>
|
|
90
|
-
`}};
|
|
90
|
+
`}};r([n({type:Number,reflect:!0})],K.prototype,`autoplay`,null),r([n({type:Object,attribute:`autoplay-options`})],K.prototype,`autoplayOptions`,null),r([n()],K.prototype,`axis`,null),r([n()],K.prototype,`align`,null),r([n({type:Object,reflect:!0})],K.prototype,`breakpoints`,null),r([n({type:Boolean})],K.prototype,`loop`,null),r([n({type:Boolean,attribute:`drag-free`})],K.prototype,`dragFree`,null),r([n({type:Number})],K.prototype,`duration`,null),r([n({type:Boolean,attribute:`skip-snaps`})],K.prototype,`skipSnaps`,null),r([n({attribute:`slides-to-scroll`})],K.prototype,`slidesToScroll`,null),r([n({type:Number,attribute:`start-index`})],K.prototype,`startIndex`,null),r([n({attribute:`contain-scroll`})],K.prototype,`containScroll`,null),r([n({type:Boolean})],K.prototype,`single`,null),r([n({type:Boolean,attribute:`with-dots`})],K.prototype,`withDots`,null),r([n({type:Boolean,attribute:`with-scrollbar`})],K.prototype,`withScrollbar`,null),r([n({type:Boolean,attribute:`with-fullscreen`})],K.prototype,`withFullscreen`,null),r([n({type:String,attribute:`dot-appearance`})],K.prototype,`dotAppearance`,null),r([n({type:Number,attribute:`max-visible-dots`})],K.prototype,`maxVisibleDots`,null),r([n({type:String,attribute:`scroll-buttons-position`})],K.prototype,`scrollButtonsPosition`,null),r([t()],K.prototype,`_selectedSnap`,null),r([i(`.scroll-buttons`)],K.prototype,`scrollButtons`,void 0),r([i(`.button-previous`)],K.prototype,`previousBtn`,void 0),r([i(`.button-next`)],K.prototype,`nextBtn`,void 0),r([i(`.container`)],K.prototype,`container`,void 0);export{K as Carousel,Ce as CarouselSelectEvent,we as FullscreenToggleEvent,G as SlidesInViewEvent};
|
|
91
91
|
//# sourceMappingURL=carousel.js.map
|