@sbb-esta/lyne-elements-dev 4.9.0-dev.1775092958 → 4.9.0-dev.1775113936

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.
@@ -1,4 +1,4 @@
1
- import { t as SbbSelectElement } from "./select.component-CY7l3oc2.js";
1
+ import { t as SbbSelectElement } from "./select.component-BCZS_tcp.js";
2
2
  import "./select.pure.js";
3
3
  //#region src/elements/select.ts
4
4
  /** @entrypoint */
@@ -1,2 +1,2 @@
1
- import { t as SbbSelectElement } from "./select.component-CY7l3oc2.js";
1
+ import { t as SbbSelectElement } from "./select.component-BCZS_tcp.js";
2
2
  export { SbbSelectElement };
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@sbb-esta/lyne-elements-dev",
3
- "version": "4.9.0-dev.1775092958",
3
+ "version": "4.9.0-dev.1775113936",
4
4
  "description": "Lyne Design System",
5
5
  "keywords": [
6
6
  "design system",
7
7
  "web components",
8
8
  "lit",
9
- "https://github.com/sbb-design-systems/lyne-components/commit/923f2d395663d14131c14b38780f8c9b08675b6c"
9
+ "https://github.com/sbb-design-systems/lyne-components/commit/ba07c276667d850cad8bab8babc5111a27e4ea90"
10
10
  ],
11
11
  "type": "module",
12
12
  "exports": {
@@ -1,2 +1,2 @@
1
- import { t as e } from "../select.component-GAwqix4S.js";
1
+ import { t as e } from "../select.component-DeeRGEGn.js";
2
2
  export { e as SbbSelectElement };
@@ -4,30 +4,30 @@ import { property as o, state as s } from "lit/decorators.js";
4
4
  import { SbbOpenCloseBaseElement as ee } from "./core/base-elements.js";
5
5
  import { forceType as c, getOverride as l, handleDistinctChange as u } from "./core/decorators.js";
6
6
  import { isLean as d, isNextjs as f, isSafari as p, isZeroAnimationDuration as m, setOrRemoveAttribute as h } from "./core/dom.js";
7
- import { SbbDisabledMixin as g, SbbFormAssociatedMixin as _, SbbNegativeMixin as v, SbbReadonlyMixin as y, SbbRequiredMixin as b, SbbUpdateSchedulerMixin as x } from "./core/mixins.js";
8
- import { boxSizingStyles as S } from "./core/styles.js";
9
- import { SbbEscapableOverlayController as C, SbbLanguageController as w, SbbPropertyWatcherController as T } from "./core/controllers.js";
10
- import { i18nSelectionRequired as E } from "./core/i18n.js";
11
- import { ResizeController as D } from "@lit-labs/observers/resize-controller.js";
12
- import { ref as O } from "lit/directives/ref.js";
13
- import { isEventOnElement as k, overlayGapFixCorners as A, setOverlayPosition as j } from "./core/overlay.js";
14
- import { getNextElementIndex as te } from "./core/a11y.js";
15
- import { MutationController as M } from "@lit-labs/observers/mutation-controller.js";
16
- import { until as N } from "lit/directives/until.js";
7
+ import { SbbDisabledMixin as te, SbbFormAssociatedMixin as ne, SbbNegativeMixin as g, SbbReadonlyMixin as _, SbbRequiredMixin as v, SbbUpdateSchedulerMixin as y } from "./core/mixins.js";
8
+ import { boxSizingStyles as b } from "./core/styles.js";
9
+ import { SbbEscapableOverlayController as x, SbbLanguageController as S, SbbPropertyWatcherController as C } from "./core/controllers.js";
10
+ import { i18nSelectionRequired as w } from "./core/i18n.js";
11
+ import { ResizeController as T } from "@lit-labs/observers/resize-controller.js";
12
+ import { ref as E } from "lit/directives/ref.js";
13
+ import { isEventOnElement as D, overlayGapFixCorners as O, setOverlayPosition as k } from "./core/overlay.js";
14
+ import { getNextElementIndex as re } from "./core/a11y.js";
15
+ import { MutationController as A } from "@lit-labs/observers/mutation-controller.js";
16
+ import { until as j } from "lit/directives/until.js";
17
17
  //#region src/elements/select/select.scss?inline
18
- var P = ".sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-options-panel-border-radius);height:var(--sbb-options-panel-border-radius);background-color:transparent}.sbb-gap-fix-corner{position:absolute;border-radius:50%;border:calc(var(--sbb-options-panel-border-radius) / 2) solid var(--sbb-options-panel-background-color);width:calc(var(--sbb-options-panel-border-radius) * 3);height:calc(var(--sbb-options-panel-border-radius) * 3);bottom:calc(var(--sbb-options-panel-border-radius) / 2 * -1)}.sbb-gap-fix-corner#left{left:calc(var(--sbb-options-panel-border-radius) / 2 * -1)}:host(:dir(rtl)) .sbb-gap-fix-corner#left{right:calc(var(--sbb-options-panel-border-radius) / 2 * -1);left:unset}.sbb-gap-fix-corner#right{right:calc(var(--sbb-options-panel-border-radius) / 2 * -1)}:host(:dir(rtl)) .sbb-gap-fix-corner#right{left:calc(var(--sbb-options-panel-border-radius) / 2 * -1);right:unset}:host{--sbb-scrollbar-thumb-width: .125rem;--sbb-scrollbar-thumb-width-hover: .25rem;--sbb-scrollbar-width-firefox: thin;--sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);--sbb-scrollbar-color: light-dark( color-mix(in srgb, var(--sbb-color-black) 30%, transparent), color-mix(in srgb, var(--sbb-color-white) 30%, transparent) );--sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-black) 60%, transparent);--sbb-scrollbar-color-hover: light-dark( color-mix(in srgb, var(--sbb-color-black) 60%, transparent), color-mix(in srgb, var(--sbb-color-white) 60%, transparent) );--sbb-scrollbar-track-color: transparent;--sbb-options-panel-position-x: 0;--sbb-options-panel-position-y: 0;--_sbb-options-panel-max-height: min( var(--sbb-options-panel-max-height-calculated), var(--sbb-options-panel-max-height, 100000em) );--sbb-options-panel-min-height: var(--sbb-options-panel-origin-height);--sbb-options-panel-options-border-radius: 0 0 var(--sbb-options-panel-border-radius) var(--sbb-options-panel-border-radius);--sbb-options-panel-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-4x) );--sbb-options-panel-gap-fix-top: calc( var(--sbb-options-panel-position-y) - var(--sbb-options-panel-border-radius) );--sbb-focus-outline-color: var(--sbb-focus-outline-color-default);--sbb-focus-outline-color: light-dark( var(--sbb-focus-outline-color-default), var(--sbb-focus-outline-color-dark) );--sbb-options-panel-internal-z-index: var( --sbb-select-z-index, var(--sbb-overlay-default-z-index) );--sbb-select-placeholder-fallback-color: var(--sbb-color-metal);--sbb-select-placeholder-fallback-color: light-dark( var(--sbb-color-metal), var(--sbb-color-smoke) );display:block;font-weight:400}:host([size=s]){--sbb-options-panel-padding-block: var(--sbb-spacing-fixed-1x)}:host([size=m]){--sbb-options-panel-padding-block: var(--sbb-spacing-fixed-2x)}:host([negative]){--sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-white) 30%, transparent);--sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-white) 60%, transparent);--sbb-options-panel-background-color: var(--sbb-background-color-1-negative);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);--sbb-select-placeholder-fallback-color: var(--sbb-color-5)}:host(:not(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]),:is(:state(state-closing),[state--state-closing]))),:host(:is(:state(state-closed),[state--state-closed])){--sbb-options-panel-visibility: hidden}:host(:is(:state(state-opening),[state--state-opening])){--sbb-options-panel-animation-name: open}:host(:is(:state(state-closing),[state--state-closing])){--sbb-options-panel-animation-name: close}:host(:is(:state(state-opened),[state--state-opened])),:host(:is(:state(state-opening),[state--state-opening])){--sbb-options-panel-gap-fix-opacity: 1}:host(:is(:state(options-panel-position-below),[state--options-panel-position-below])){--sbb-options-panel-animation-transform: translateY( calc((var(--sbb-options-panel-origin-height) / 2) * -1) )}:host(:is(:state(options-panel-position-above),[state--options-panel-position-above])){--sbb-options-panel-options-border-radius: var(--sbb-options-panel-border-radius) var(--sbb-options-panel-border-radius) 0 0;--sbb-options-panel-gap-fix-top: var(--_sbb-options-panel-max-height);--sbb-options-panel-gap-fix-transform: rotate(180deg);--sbb-options-panel-animation-transform: translateY( calc(var(--sbb-options-panel-origin-height) / 2) )}::slotted(sbb-divider){margin-block:var(--sbb-options-panel-divider-margin-block)}:host([preserve-icon-space]){--sbb-option-icon-container-display: block}.sbb-select__trigger{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:var(--sbb-cursor-default);height:calc(1em * var(--sbb-typo-line-height-text))}.sbb-select__trigger--placeholder{color:var(--sbb-select-placeholder-color, var(--sbb-select-placeholder-fallback-color));-webkit-text-fill-color:var(--sbb-select-placeholder-color, var(--sbb-select-placeholder-fallback-color))}.sbb-select__container{position:fixed;pointer-events:none;inset:0;z-index:var(--sbb-options-panel-internal-z-index)}.sbb-select__container[popover]{margin:0;padding:0;border:none;width:auto;height:auto;background-color:transparent}.sbb-select__gap-fix{display:flex;justify-content:space-between;position:fixed;visibility:var(--sbb-options-panel-visibility, visible);opacity:var(--sbb-options-panel-gap-fix-opacity, 0);background-color:transparent;width:var(--sbb-options-panel-width, fit-content);height:var(--sbb-options-panel-border-radius);top:var(--sbb-options-panel-gap-fix-top);left:var(--sbb-options-panel-position-x);transform:var(--sbb-options-panel-gap-fix-transform, none);transition:opacity var(--sbb-options-panel-animation-duration) var(--sbb-options-panel-animation-timing-function)}.sbb-select__panel{display:block;position:absolute;visibility:var(--sbb-options-panel-visibility, \"visible\");overflow:hidden;background-color:transparent;border:none;border-radius:var(--sbb-options-panel-border-radius);top:var(--sbb-options-panel-position-y);left:var(--sbb-options-panel-position-x);width:var(--sbb-options-panel-width, fit-content);transition:box-shadow var(--sbb-options-panel-animation-duration) var(--sbb-options-panel-animation-timing-function)}.sbb-select__panel:before,.sbb-select__panel:after{content:\"\";display:none;position:relative;width:100%;height:var(--sbb-options-panel-origin-height);background-color:transparent;border-radius:var(--sbb-options-panel-border-radius);pointer-events:none;transition:box-shadow var(--sbb-options-panel-animation-duration) var(--sbb-options-panel-animation-timing-function);z-index:1}:host(:is(:state(options-panel-position-below),[state--options-panel-position-below])) .sbb-select__panel{inset-block-start:calc(var(--sbb-options-panel-position-y) - var(--sbb-options-panel-origin-height))}:host(:is(:is(:state(state-opened),[state--state-opened]),:is(:state(state-opening),[state--state-opening]))) .sbb-select__panel{box-shadow:var(--sbb-box-shadow-level-5-hard)}:host(:is(:is(:state(state-opened),[state--state-opened]),:is(:state(state-opening),[state--state-opening]))[negative]) .sbb-select__panel{box-shadow:var(--sbb-box-shadow-level-5-hard-negative)}:host(:is(:state(options-panel-position-below),[state--options-panel-position-below])) .sbb-select__panel:before{display:block}:host(:is(:state(options-panel-position-above),[state--options-panel-position-above])) .sbb-select__panel:after{display:block}:host(:is(:is(:state(state-opened),[state--state-opened]),:is(:state(state-opening),[state--state-opening])):is(:state(option-panel-origin-borderless),[state--option-panel-origin-borderless])) .sbb-select__panel:before,:host(:is(:is(:state(state-opened),[state--state-opened]),:is(:state(state-opening),[state--state-opening])):is(:state(option-panel-origin-borderless),[state--option-panel-origin-borderless])) .sbb-select__panel:after{box-shadow:var(--sbb-box-shadow-level-5-hard)}:host(:is(:is(:state(state-opened),[state--state-opened]),:is(:state(state-opening),[state--state-opening])):is(:state(option-panel-origin-borderless),[state--option-panel-origin-borderless])[negative]) .sbb-select__panel:before,:host(:is(:is(:state(state-opened),[state--state-opened]),:is(:state(state-opening),[state--state-opening])):is(:state(option-panel-origin-borderless),[state--option-panel-origin-borderless])[negative]) .sbb-select__panel:after{box-shadow:var(--sbb-box-shadow-level-5-hard-negative)}.sbb-select__wrapper{overflow:hidden}.sbb-select__options{background-color:var(--sbb-options-panel-background-color);padding-block:var(--sbb-options-panel-padding-block);padding-inline:0;border-radius:var(--sbb-options-panel-options-border-radius);max-height:var(--_sbb-options-panel-max-height);min-height:var(--sbb-options-panel-min-height);pointer-events:all;overflow-y:auto;animation-name:var(--sbb-options-panel-animation-name);animation-duration:var(--sbb-options-panel-animation-duration);animation-timing-function:var(--sbb-options-panel-animation-timing-function);--sbb-scrollbar-width: var(--sbb-spacing-fixed-3x)}.sbb-select__options::-webkit-scrollbar{width:var(--sbb-scrollbar-width);height:var(--sbb-scrollbar-width);background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-select__options::-webkit-scrollbar-corner{background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-select__options::-webkit-scrollbar-thumb{background-color:var(--sbb-scrollbar-color, currentcolor);border:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;border-radius:var(--sbb-border-radius-4x);background-clip:padding-box}.sbb-select__options::-webkit-scrollbar-thumb:hover{background-color:var(--sbb-scrollbar-color-hover, currentcolor);border-width:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)))}.sbb-select__options::-webkit-scrollbar-button,.sbb-select__options::-webkit-scrollbar-corner{display:none}@supports not selector(::-webkit-scrollbar){.sbb-select__options{scrollbar-width:var(--sbb-scrollbar-width-firefox);scrollbar-color:var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent)}}@media(forced-colors:active){.sbb-select__options{border:var(--sbb-border-width-1x) solid CanvasText;border-block-start:none}}@keyframes open{0%{transform:var(--sbb-options-panel-animation-transform);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes close{0%{transform:translateY(0);opacity:1}to{transform:var(--sbb-options-panel-animation-transform);opacity:0}}", F = p, I = 0, L = (() => {
19
- let p = x(g(v(b(y(_(ee)))))), L = [], R, z = [], B = [], V, H = [], U = [], W, G = [], K = [], q, J, Y = [], X = [], Z, Q = [], $ = [];
18
+ var ie = ".sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-options-panel-border-radius);height:var(--sbb-options-panel-border-radius);background-color:transparent}.sbb-gap-fix-corner{position:absolute;border-radius:50%;border:calc(var(--sbb-options-panel-border-radius) / 2) solid var(--sbb-options-panel-background-color);width:calc(var(--sbb-options-panel-border-radius) * 3);height:calc(var(--sbb-options-panel-border-radius) * 3);bottom:calc(var(--sbb-options-panel-border-radius) / 2 * -1)}.sbb-gap-fix-corner#left{left:calc(var(--sbb-options-panel-border-radius) / 2 * -1)}:host(:dir(rtl)) .sbb-gap-fix-corner#left{right:calc(var(--sbb-options-panel-border-radius) / 2 * -1);left:unset}.sbb-gap-fix-corner#right{right:calc(var(--sbb-options-panel-border-radius) / 2 * -1)}:host(:dir(rtl)) .sbb-gap-fix-corner#right{left:calc(var(--sbb-options-panel-border-radius) / 2 * -1);right:unset}:host{--sbb-scrollbar-thumb-width: .125rem;--sbb-scrollbar-thumb-width-hover: .25rem;--sbb-scrollbar-width-firefox: thin;--sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);--sbb-scrollbar-color: light-dark( color-mix(in srgb, var(--sbb-color-black) 30%, transparent), color-mix(in srgb, var(--sbb-color-white) 30%, transparent) );--sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-black) 60%, transparent);--sbb-scrollbar-color-hover: light-dark( color-mix(in srgb, var(--sbb-color-black) 60%, transparent), color-mix(in srgb, var(--sbb-color-white) 60%, transparent) );--sbb-scrollbar-track-color: transparent;--sbb-options-panel-position-x: 0;--sbb-options-panel-position-y: 0;--_sbb-options-panel-max-height: min( var(--sbb-options-panel-max-height-calculated), var(--sbb-options-panel-max-height, 100000em) );--sbb-options-panel-min-height: var(--sbb-options-panel-origin-height);--sbb-options-panel-options-border-radius: 0 0 var(--sbb-options-panel-border-radius) var(--sbb-options-panel-border-radius);--sbb-options-panel-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-4x) );--sbb-options-panel-gap-fix-top: calc( var(--sbb-options-panel-position-y) - var(--sbb-options-panel-border-radius) );--sbb-focus-outline-color: var(--sbb-focus-outline-color-default);--sbb-focus-outline-color: light-dark( var(--sbb-focus-outline-color-default), var(--sbb-focus-outline-color-dark) );--sbb-options-panel-internal-z-index: var( --sbb-select-z-index, var(--sbb-overlay-default-z-index) );--sbb-select-placeholder-fallback-color: var(--sbb-color-metal);--sbb-select-placeholder-fallback-color: light-dark( var(--sbb-color-metal), var(--sbb-color-smoke) );display:block;font-weight:400}:host([size=s]){--sbb-options-panel-padding-block: var(--sbb-spacing-fixed-1x)}:host([size=m]){--sbb-options-panel-padding-block: var(--sbb-spacing-fixed-2x)}:host([negative]){--sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-white) 30%, transparent);--sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-white) 60%, transparent);--sbb-options-panel-background-color: var(--sbb-background-color-1-negative);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);--sbb-select-placeholder-fallback-color: var(--sbb-color-5)}:host(:not(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]),:is(:state(state-closing),[state--state-closing]))),:host(:is(:state(state-closed),[state--state-closed])){--sbb-options-panel-visibility: hidden}:host(:is(:state(state-opening),[state--state-opening])){--sbb-options-panel-animation-name: open}:host(:is(:state(state-closing),[state--state-closing])){--sbb-options-panel-animation-name: close}:host(:is(:state(state-opened),[state--state-opened])),:host(:is(:state(state-opening),[state--state-opening])){--sbb-options-panel-gap-fix-opacity: 1}:host(:is(:state(options-panel-position-below),[state--options-panel-position-below])){--sbb-options-panel-animation-transform: translateY( calc((var(--sbb-options-panel-origin-height) / 2) * -1) )}:host(:is(:state(options-panel-position-above),[state--options-panel-position-above])){--sbb-options-panel-options-border-radius: var(--sbb-options-panel-border-radius) var(--sbb-options-panel-border-radius) 0 0;--sbb-options-panel-gap-fix-top: var(--_sbb-options-panel-max-height);--sbb-options-panel-gap-fix-transform: rotate(180deg);--sbb-options-panel-animation-transform: translateY( calc(var(--sbb-options-panel-origin-height) / 2) )}::slotted(sbb-divider){margin-block:var(--sbb-options-panel-divider-margin-block)}:host([preserve-icon-space]){--sbb-option-icon-container-display: block}.sbb-select__trigger{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:var(--sbb-cursor-default);height:calc(1em * var(--sbb-typo-line-height-text))}.sbb-select__trigger--placeholder{color:var(--sbb-select-placeholder-color, var(--sbb-select-placeholder-fallback-color));-webkit-text-fill-color:var(--sbb-select-placeholder-color, var(--sbb-select-placeholder-fallback-color))}.sbb-select__container{position:fixed;pointer-events:none;inset:0;z-index:var(--sbb-options-panel-internal-z-index)}.sbb-select__container[popover]{margin:0;padding:0;border:none;width:auto;height:auto;background-color:transparent}.sbb-select__gap-fix{display:flex;justify-content:space-between;position:fixed;visibility:var(--sbb-options-panel-visibility, visible);opacity:var(--sbb-options-panel-gap-fix-opacity, 0);background-color:transparent;width:var(--sbb-options-panel-width, fit-content);height:var(--sbb-options-panel-border-radius);top:var(--sbb-options-panel-gap-fix-top);left:var(--sbb-options-panel-position-x);transform:var(--sbb-options-panel-gap-fix-transform, none);transition:opacity var(--sbb-options-panel-animation-duration) var(--sbb-options-panel-animation-timing-function)}.sbb-select__panel{display:block;position:absolute;visibility:var(--sbb-options-panel-visibility, \"visible\");overflow:hidden;background-color:transparent;border:none;border-radius:var(--sbb-options-panel-border-radius);top:var(--sbb-options-panel-position-y);left:var(--sbb-options-panel-position-x);width:var(--sbb-options-panel-width, fit-content);transition:box-shadow var(--sbb-options-panel-animation-duration) var(--sbb-options-panel-animation-timing-function)}.sbb-select__panel:before,.sbb-select__panel:after{content:\"\";display:none;position:relative;width:100%;height:var(--sbb-options-panel-origin-height);background-color:transparent;border-radius:var(--sbb-options-panel-border-radius);pointer-events:none;transition:box-shadow var(--sbb-options-panel-animation-duration) var(--sbb-options-panel-animation-timing-function);z-index:1}:host(:is(:state(options-panel-position-below),[state--options-panel-position-below])) .sbb-select__panel{inset-block-start:calc(var(--sbb-options-panel-position-y) - var(--sbb-options-panel-origin-height))}:host(:is(:is(:state(state-opened),[state--state-opened]),:is(:state(state-opening),[state--state-opening]))) .sbb-select__panel{box-shadow:var(--sbb-box-shadow-level-5-hard)}:host(:is(:is(:state(state-opened),[state--state-opened]),:is(:state(state-opening),[state--state-opening]))[negative]) .sbb-select__panel{box-shadow:var(--sbb-box-shadow-level-5-hard-negative)}:host(:is(:state(options-panel-position-below),[state--options-panel-position-below])) .sbb-select__panel:before{display:block}:host(:is(:state(options-panel-position-above),[state--options-panel-position-above])) .sbb-select__panel:after{display:block}:host(:is(:is(:state(state-opened),[state--state-opened]),:is(:state(state-opening),[state--state-opening])):is(:state(option-panel-origin-borderless),[state--option-panel-origin-borderless])) .sbb-select__panel:before,:host(:is(:is(:state(state-opened),[state--state-opened]),:is(:state(state-opening),[state--state-opening])):is(:state(option-panel-origin-borderless),[state--option-panel-origin-borderless])) .sbb-select__panel:after{box-shadow:var(--sbb-box-shadow-level-5-hard)}:host(:is(:is(:state(state-opened),[state--state-opened]),:is(:state(state-opening),[state--state-opening])):is(:state(option-panel-origin-borderless),[state--option-panel-origin-borderless])[negative]) .sbb-select__panel:before,:host(:is(:is(:state(state-opened),[state--state-opened]),:is(:state(state-opening),[state--state-opening])):is(:state(option-panel-origin-borderless),[state--option-panel-origin-borderless])[negative]) .sbb-select__panel:after{box-shadow:var(--sbb-box-shadow-level-5-hard-negative)}.sbb-select__wrapper{overflow:hidden}.sbb-select__options{background-color:var(--sbb-options-panel-background-color);padding-block:var(--sbb-options-panel-padding-block);padding-inline:0;border-radius:var(--sbb-options-panel-options-border-radius);max-height:var(--_sbb-options-panel-max-height);min-height:var(--sbb-options-panel-min-height);pointer-events:all;overflow-y:auto;animation-name:var(--sbb-options-panel-animation-name);animation-duration:var(--sbb-options-panel-animation-duration);animation-timing-function:var(--sbb-options-panel-animation-timing-function);--sbb-scrollbar-width: var(--sbb-spacing-fixed-3x)}.sbb-select__options::-webkit-scrollbar{width:var(--sbb-scrollbar-width);height:var(--sbb-scrollbar-width);background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-select__options::-webkit-scrollbar-corner{background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-select__options::-webkit-scrollbar-thumb{background-color:var(--sbb-scrollbar-color, currentcolor);border:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;border-radius:var(--sbb-border-radius-4x);background-clip:padding-box}.sbb-select__options::-webkit-scrollbar-thumb:hover{background-color:var(--sbb-scrollbar-color-hover, currentcolor);border-width:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)))}.sbb-select__options::-webkit-scrollbar-button,.sbb-select__options::-webkit-scrollbar-corner{display:none}@supports not selector(::-webkit-scrollbar){.sbb-select__options{scrollbar-width:var(--sbb-scrollbar-width-firefox);scrollbar-color:var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent)}}@media(forced-colors:active){.sbb-select__options{border:var(--sbb-border-width-1x) solid CanvasText;border-block-start:none}}@keyframes open{0%{transform:var(--sbb-options-panel-animation-transform);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes close{0%{transform:translateY(0);opacity:1}to{transform:var(--sbb-options-panel-animation-transform);opacity:0}}", M = p, N = 0, P = (() => {
19
+ let p = y(te(g(v(_(ne(ee)))))), P = [], F, I = [], L = [], R, z = [], B = [], V, H = [], U = [], W, G = [], K = [], q, J, Y = [], X = [], Z, Q = [], $ = [];
20
20
  return class extends p {
21
21
  static {
22
22
  let t = typeof Symbol == "function" && Symbol.metadata ? Object.create(p[Symbol.metadata] ?? null) : void 0;
23
- R = [c(), o()], V = [
23
+ F = [c(), o()], R = [
24
24
  c(),
25
25
  u((e, t) => e._onMultipleChanged(t)),
26
26
  o({
27
27
  reflect: !0,
28
28
  type: Boolean
29
29
  })
30
- ], W = [
30
+ ], V = [o({ attribute: !1 })], W = [
31
31
  c(),
32
32
  u((e, t) => e._closeOnDisabledReadonlyChanged(t)),
33
33
  o({
@@ -35,7 +35,7 @@ var P = ".sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-
35
35
  type: Boolean
36
36
  }),
37
37
  l((e, t) => t || e.isDisabledExternally())
38
- ], q = [o()], J = [o({ reflect: !0 })], Z = [s()], e(this, null, R, {
38
+ ], q = [o()], J = [o({ reflect: !0 })], Z = [s()], e(this, null, F, {
39
39
  kind: "accessor",
40
40
  name: "placeholder",
41
41
  static: !1,
@@ -48,7 +48,7 @@ var P = ".sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-
48
48
  }
49
49
  },
50
50
  metadata: t
51
- }, z, B), e(this, null, V, {
51
+ }, I, L), e(this, null, R, {
52
52
  kind: "accessor",
53
53
  name: "multiple",
54
54
  static: !1,
@@ -61,6 +61,19 @@ var P = ".sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-
61
61
  }
62
62
  },
63
63
  metadata: t
64
+ }, z, B), e(this, null, V, {
65
+ kind: "accessor",
66
+ name: "compareWith",
67
+ static: !1,
68
+ private: !1,
69
+ access: {
70
+ has: (e) => "compareWith" in e,
71
+ get: (e) => e.compareWith,
72
+ set: (e, t) => {
73
+ e.compareWith = t;
74
+ }
75
+ },
76
+ metadata: t
64
77
  }, H, U), e(this, null, W, {
65
78
  kind: "accessor",
66
79
  name: "disabled",
@@ -86,7 +99,7 @@ var P = ".sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-
86
99
  }
87
100
  },
88
101
  metadata: t
89
- }, null, L), e(this, null, J, {
102
+ }, null, P), e(this, null, J, {
90
103
  kind: "accessor",
91
104
  name: "size",
92
105
  static: !1,
@@ -123,10 +136,10 @@ var P = ".sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-
123
136
  this.elementName = "sbb-select";
124
137
  }
125
138
  static {
126
- this.role = F ? "listbox" : null;
139
+ this.role = M ? "listbox" : null;
127
140
  }
128
141
  static {
129
- this.styles = [S, a(P)];
142
+ this.styles = [b, a(ie)];
130
143
  }
131
144
  static {
132
145
  this.events = {
@@ -154,34 +167,41 @@ var P = ".sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-
154
167
  this.#t = e;
155
168
  }
156
169
  #n;
157
- get disabled() {
170
+ get compareWith() {
158
171
  return this.#n;
159
172
  }
160
- set disabled(e) {
173
+ set compareWith(e) {
161
174
  this.#n = e;
162
175
  }
176
+ #r;
177
+ get disabled() {
178
+ return this.#r;
179
+ }
180
+ set disabled(e) {
181
+ this.#r = e;
182
+ }
163
183
  set value(e) {
164
184
  this._value = e, this._updateOptionsFromValue(), this._isValueManuallyAssigned = !0;
165
185
  }
166
186
  get value() {
167
187
  return this._value;
168
188
  }
169
- #r;
189
+ #i;
170
190
  get size() {
171
- return this.#r;
191
+ return this.#i;
172
192
  }
173
193
  set size(e) {
174
- this.#r = e;
194
+ this.#i = e;
175
195
  }
176
196
  get type() {
177
197
  return this.multiple ? "select-multiple" : "select-one";
178
198
  }
179
- #i;
199
+ #a;
180
200
  get _displayValue() {
181
- return this.#i;
201
+ return this.#a;
182
202
  }
183
203
  set _displayValue(e) {
184
- this.#i = e;
204
+ this.#a = e;
185
205
  }
186
206
  get inputElement() {
187
207
  return this._triggerElement ?? null;
@@ -193,27 +213,27 @@ var P = ".sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-
193
213
  }), e;
194
214
  }
195
215
  constructor() {
196
- super(), this.#e = (t(this, L), t(this, z, "")), this.#t = (t(this, B), t(this, H, !1)), this.#n = (t(this, U), t(this, G, !1)), this._value = (t(this, K), null), this.#r = t(this, Y, d() ? "s" : "m"), this.#i = (t(this, X), t(this, Q, null)), this._originResizeObserver = (t(this, $), new D(this, {
216
+ super(), this.#e = (t(this, P), t(this, I, "")), this.#t = (t(this, L), t(this, z, !1)), this.#n = (t(this, B), t(this, H, (e, t) => e === t)), this.#r = (t(this, U), t(this, G, !1)), this._value = (t(this, K), null), this.#i = t(this, Y, d() ? "s" : "m"), this.#a = (t(this, X), t(this, Q, null)), this._originResizeObserver = (t(this, $), new T(this, {
197
217
  target: null,
198
218
  skipInitial: !0,
199
219
  callback: () => {
200
220
  this.isOpen && this._setOverlayPosition();
201
221
  }
202
- })), this._originElement = null, this._triggerElement = null, this._escapableOverlayController = new C(this), this._overlayId = `sbb-select-${++I}`, this._activeItemIndex = -1, this._searchString = "", this._didLoad = !1, this._isPointerDownEventOnMenu = !1, this._languageController = new w(this), this._isValueManuallyAssigned = !1, this._pointerDownListener = (e) => {
203
- this._isPointerDownEventOnMenu = k(this._overlay, e);
222
+ })), this._originElement = null, this._triggerElement = null, this._escapableOverlayController = new x(this), this._overlayId = `sbb-select-${++N}`, this._activeItemIndex = -1, this._searchString = "", this._didLoad = !1, this._isPointerDownEventOnMenu = !1, this._languageController = new S(this), this._isValueManuallyAssigned = !1, this._pointerDownListener = (e) => {
223
+ this._isPointerDownEventOnMenu = D(this._overlay, e);
204
224
  }, this._closeOnBackdropClick = (e) => {
205
- !this._isPointerDownEventOnMenu && !k(this._overlay, e) && this.close();
225
+ !this._isPointerDownEventOnMenu && !D(this._overlay, e) && this.close();
206
226
  }, this.addEventListener?.("optionselectionchange", (e) => this._onOptionChanged(e)), this.addEventListener?.("optionLabelChanged", (e) => this._onOptionLabelChanged(e)), this.addEventListener?.("ɵoptgroupslotchange", () => this._updateValueOptionState(), { capture: !0 }), this.addEventListener?.("click", (e) => {
207
227
  let t = e.target;
208
228
  t.localName === "sbb-option" ? !this.multiple && !t.disabled && (this.close(), this.focus()) : this._toggleOpening();
209
- }), this.addController(new M(this, {
229
+ }), this.addController(new A(this, {
210
230
  config: { attributeFilter: [
211
231
  "aria-labelledby",
212
232
  "aria-label",
213
233
  "aria-describedby"
214
234
  ] },
215
235
  callback: () => this._syncAriaLabels()
216
- })), this.addController(new T(this, () => this.closest("sbb-form-field"), { negative: (e) => {
236
+ })), this.addController(new C(this, () => this.closest("sbb-form-field"), { negative: (e) => {
217
237
  this.negative = e.negative, this._syncNegative();
218
238
  } }));
219
239
  }
@@ -269,7 +289,7 @@ var P = ".sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-
269
289
  f() && e === "defer-hydration" && !this._didLoad && this.updateComplete.then(() => this._setupSelect()), super.removeAttribute(e);
270
290
  }
271
291
  connectedCallback() {
272
- super.connectedCallback(), F && (this.id ||= this._overlayId), this._syncNegative(), this._syncAriaLabels(), this._didLoad && (this._setupOrigin(), this._setupTrigger());
292
+ super.connectedCallback(), M && (this.id ||= this._overlayId), this._syncNegative(), this._syncAriaLabels(), this._didLoad && (this._setupOrigin(), this._setupTrigger());
273
293
  }
274
294
  requestUpdate(e, t, n) {
275
295
  super.requestUpdate(e, t, n), !e && this.hasUpdated && setTimeout(() => this._syncAriaLabels());
@@ -286,10 +306,6 @@ var P = ".sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-
286
306
  formStateRestoreCallback(e, t) {
287
307
  try {
288
308
  let { value: t, manuallyAssigned: n } = JSON.parse(e);
289
- if ((Array.isArray(t) ? t : [t]).some((e) => typeof e == "object" && !!e)) {
290
- console.warn(`Restoring complex objects is not supported for sbb-select with state ${e}`);
291
- return;
292
- }
293
309
  this._isValueManuallyAssigned = n, this._value = t, this._updateOptionsFromValue();
294
310
  } catch {
295
311
  console.warn(`Failed to restore sbb-select with state ${e}`);
@@ -308,7 +324,9 @@ var P = ".sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-
308
324
  return super.shouldValidate(e) || e === "value" || e === "required";
309
325
  }
310
326
  validate() {
311
- super.validate(), this.required && (this.options.every((e) => e.value !== this.value) || !this._isValueManuallyAssigned && this.value == null) ? this.setValidityFlag("valueMissing", E[this._languageController.current]) : this.removeValidityFlag("valueMissing");
327
+ super.validate();
328
+ let e = Array.isArray(this.value) ? this.value : this.value === null ? [] : [this.value];
329
+ this.required && (this.options.every((t) => e.every((e) => !this.compareWith(e, t.value))) || !this._isValueManuallyAssigned && this.value == null) ? this.setValidityFlag("valueMissing", w[this._languageController.current]) : this.removeValidityFlag("valueMissing");
312
330
  }
313
331
  _setupSelect() {
314
332
  this._setupOrigin(), this._setupTrigger(), this._didLoad = !0, this.completeUpdate();
@@ -321,7 +339,7 @@ var P = ".sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-
321
339
  this.parentElement && this._triggerElement && this.parentElement.insertBefore?.(this._triggerElement, this);
322
340
  }
323
341
  _setOverlayPosition() {
324
- this._originElement && j(this._overlay, this._originElement, this._optionContainer, this.shadowRoot.querySelector(".sbb-select__container"), this);
342
+ this._originElement && k(this._overlay, this._originElement, this._optionContainer, this.shadowRoot.querySelector(".sbb-select__container"), this);
325
343
  }
326
344
  _onAnimationEnd(e) {
327
345
  e.animationName === "open" && this.state === "opening" ? this._handleOpening() : e.animationName === "close" && this.state === "closing" && this._handleClosing();
@@ -333,10 +351,10 @@ var P = ".sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-
333
351
  this.state = "closed", this.shadowRoot?.querySelector(".sbb-select__container")?.hidePopover?.(), this._triggerElement?.setAttribute("aria-expanded", "false"), this._resetActiveElement(), this._optionContainer.scrollTop = 0, this._escapableOverlayController.disconnect(), this.dispatchCloseEvent();
334
352
  }
335
353
  _onOptionSelected(e) {
336
- this.multiple ? this.value ? Array.isArray(this.value) && !this.value.includes(e.value) && (this._value = [...this.value, e.value]) : this._value = [e.value] : this._value = e.value, this._updateOptionsFromValue(), this._dispatchInputEvents();
354
+ this.multiple ? this.value ? Array.isArray(this.value) && !this.value.some((t) => this.compareWith(t, e.value)) && (this._value = [...this.value, e.value]) : this._value = [e.value] : this._value = e.value, this._updateOptionsFromValue(), this._dispatchInputEvents();
337
355
  }
338
356
  _onOptionDeselected(e) {
339
- this.multiple && Array.isArray(this.value) && (this._value = this.value.filter((t) => t !== e.value), this._updateOptionsFromValue(), this._dispatchInputEvents());
357
+ this.multiple && Array.isArray(this.value) && (this._value = this.value.filter((t) => !this.compareWith(t, e.value)), this._updateOptionsFromValue(), this._dispatchInputEvents());
340
358
  }
341
359
  _dispatchInputEvents() {
342
360
  this.dispatchEvent(new InputEvent("input", {
@@ -413,14 +431,14 @@ var P = ".sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-
413
431
  _setNextActiveOption(e, t) {
414
432
  let n = this._selectableOptions();
415
433
  if (n.length === 0) return;
416
- let r = t ?? te(e, this._activeItemIndex, n.length), i = n[r], a = n[this._activeItemIndex];
434
+ let r = t ?? re(e, this._activeItemIndex, n.length), i = n[r], a = n[this._activeItemIndex];
417
435
  this._setActiveElement(i, a), this.multiple ? e?.shiftKey && i.selectViaUserInteraction(!i.selected) : this._setSelectedElement(i, a), this._activeItemIndex = r;
418
436
  }
419
437
  _setActiveElement(e, t = null, n = !0) {
420
- e.setActive(!0), e.scrollIntoView({ block: "nearest" }), n && this._triggerElement?.setAttribute("aria-activedescendant", e.id), t && t !== e && t.setActive(!1);
438
+ e.setActive(!0), e.scrollIntoView({ block: "nearest" }), n && this._triggerElement?.setAttribute("aria-activedescendant", e.id), t && !this.compareWith(t.value, e.value) && t.setActive(!1);
421
439
  }
422
440
  _setSelectedElement(e, t) {
423
- e.selectViaUserInteraction(!0), t && t !== e && t.selectViaUserInteraction(!1);
441
+ e.selectViaUserInteraction(!0), t && !this.compareWith(t.value, e.value) && t.selectViaUserInteraction(!1);
424
442
  }
425
443
  _resetActiveElement() {
426
444
  let e = this._selectableOptions()[this._activeItemIndex];
@@ -428,8 +446,11 @@ var P = ".sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-
428
446
  }
429
447
  _updateOptionsFromValue() {
430
448
  let e = Array.isArray(this.value) ? this.value : [this.value], t = [];
431
- for (let n of this.options) n.selected = e.includes(n.value), n.selected && t.push(n);
432
- this._updateDisplayValue(), Array.isArray(this.value) || (this._activeItemIndex = this._selectableOptions().findIndex((e) => e.value === this.value));
449
+ for (let n of this.options) n.selected = e.some((e) => this.compareWith(e, n.value)), n.selected && t.push(n);
450
+ if (this._updateDisplayValue(), !Array.isArray(this.value)) {
451
+ let e = this.value;
452
+ this._activeItemIndex = this._selectableOptions().findIndex((t) => this.compareWith(t.value, e));
453
+ }
433
454
  }
434
455
  _updateValueFromOptions() {
435
456
  let e = this._getSelected();
@@ -482,31 +503,31 @@ var P = ".sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-
482
503
  aria-owns=${this._overlayId}
483
504
  @keydown=${this._onKeyDown}
484
505
  @click=${this._toggleOpening}
485
- ${O((e) => this._triggerElement = e)}
506
+ ${E((e) => this._triggerElement = e)}
486
507
  >
487
- ${N(...this._spreadDeferredDisplayValue(n`<span>${this.placeholder}</span>`))}
508
+ ${j(...this._spreadDeferredDisplayValue(n`<span>${this.placeholder}</span>`))}
488
509
  </div>
489
510
 
490
511
  <!-- Visually display the value -->
491
512
  <div class="sbb-select__trigger" aria-hidden="true">
492
- ${N(...this._spreadDeferredDisplayValue(n`<span class="sbb-select__trigger--placeholder">${this.placeholder}</span>`))}
513
+ ${j(...this._spreadDeferredDisplayValue(n`<span class="sbb-select__trigger--placeholder">${this.placeholder}</span>`))}
493
514
  </div>
494
515
 
495
516
  <div class="sbb-select__gap-fix"></div>
496
517
  <div class="sbb-select__container" popover="manual">
497
- <div class="sbb-select__gap-fix">${A()}</div>
518
+ <div class="sbb-select__gap-fix">${O()}</div>
498
519
  <div
499
520
  @animationend=${this._onAnimationEnd}
500
521
  class="sbb-select__panel"
501
- ${O((e) => this._overlay = e)}
522
+ ${E((e) => this._overlay = e)}
502
523
  >
503
524
  <div class="sbb-select__wrapper">
504
525
  <div
505
- id=${F ? i : this._overlayId}
526
+ id=${M ? i : this._overlayId}
506
527
  class="sbb-select__options"
507
- role=${F ? i : "listbox"}
528
+ role=${M ? i : "listbox"}
508
529
  ?aria-multiselectable=${this.multiple}
509
- ${O((e) => this._optionContainer = e)}
530
+ ${E((e) => this._optionContainer = e)}
510
531
  tabindex="-1"
511
532
  >
512
533
  <slot @slotchange=${this._updateValueOptionState}></slot>
@@ -519,4 +540,4 @@ var P = ".sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-
519
540
  };
520
541
  })();
521
542
  //#endregion
522
- export { L as t };
543
+ export { P as t };
package/select.js CHANGED
@@ -1,4 +1,4 @@
1
- import { t as e } from "./select.component-GAwqix4S.js";
1
+ import { t as e } from "./select.component-DeeRGEGn.js";
2
2
  import "./select.pure.js";
3
3
  //#region src/elements/select.ts
4
4
  e.define();
package/select.pure.js CHANGED
@@ -1,2 +1,2 @@
1
- import { t as e } from "./select.component-GAwqix4S.js";
1
+ import { t as e } from "./select.component-DeeRGEGn.js";
2
2
  export { e as SbbSelectElement };