@sbb-esta/lyne-elements-dev 5.0.0-next.2-dev.1778120187 → 5.0.0-next.2-dev.1778141158

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.
Files changed (55) hide show
  1. package/autocomplete/autocomplete-base-element.js +1 -1
  2. package/autocomplete/autocomplete.component.js +1 -1
  3. package/{autocomplete-base-element-BuCAxBy3.js → autocomplete-base-element-CAWFmfLW.js} +20 -23
  4. package/autocomplete.js +1 -1
  5. package/autocomplete.pure.js +1 -1
  6. package/core/overlay/overlay-option-panel.js +6 -5
  7. package/core/styles/_index.scss +0 -1
  8. package/core/styles/core.scss +4 -2
  9. package/core/styles/option-panel-common.global.scss +11 -0
  10. package/core/styles/option-panel-common.scss +157 -0
  11. package/core/styles/styles.js +2 -2
  12. package/core.css +7 -5
  13. package/core.js +6 -7
  14. package/custom-elements.json +985 -1035
  15. package/development/autocomplete/autocomplete-base-element.d.ts +0 -1
  16. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  17. package/development/autocomplete/autocomplete-base-element.js +1 -1
  18. package/development/autocomplete/autocomplete.component.js +1 -1
  19. package/development/autocomplete-base-element-DZx53PO1.js +683 -0
  20. package/development/autocomplete.js +1 -1
  21. package/development/autocomplete.pure.js +1 -1
  22. package/development/core/overlay/overlay-option-panel.d.ts +1 -1
  23. package/development/core/overlay/overlay-option-panel.d.ts.map +1 -1
  24. package/development/core/overlay/overlay-option-panel.js +5 -2
  25. package/development/core/styles/styles.d.ts +1 -0
  26. package/development/core/styles/styles.d.ts.map +1 -1
  27. package/development/core/styles/styles.js +2 -2
  28. package/development/core.d.ts +0 -1
  29. package/development/core.d.ts.map +1 -1
  30. package/development/core.js +2 -3
  31. package/development/select/select.component.d.ts +1 -2
  32. package/development/select/select.component.d.ts.map +1 -1
  33. package/development/select/select.component.js +1 -1
  34. package/development/select.component-VODtrUee.js +807 -0
  35. package/development/select.js +1 -1
  36. package/development/select.pure.js +1 -1
  37. package/development/styles-CmwkvLqU.js +22 -0
  38. package/off-brand-theme.css +7 -5
  39. package/package.json +2 -2
  40. package/safety-theme.css +7 -5
  41. package/select/select.component.js +1 -1
  42. package/{select.component-PLjAiAA3.js → select.component-CO-42jqH.js} +61 -61
  43. package/select.js +1 -1
  44. package/select.pure.js +1 -1
  45. package/standard-theme.css +7 -5
  46. package/styles-CgXa3TG9.js +5 -0
  47. package/core/overlay/overlay.js +0 -14
  48. package/core/styles/mixins/overlay.scss +0 -175
  49. package/development/autocomplete-base-element-CG5m0PpY.js +0 -686
  50. package/development/core/overlay/overlay.d.ts +0 -7
  51. package/development/core/overlay/overlay.d.ts.map +0 -1
  52. package/development/core/overlay/overlay.js +0 -20
  53. package/development/select.component-B8_tnz6D.js +0 -806
  54. package/development/styles-BzEbxmCd.js +0 -18
  55. package/styles-OHFAsnJq.js +0 -5
@@ -1,2 +1,2 @@
1
- import { t as e } from "../autocomplete-base-element-BuCAxBy3.js";
1
+ import { t as e } from "../autocomplete-base-element-CAWFmfLW.js";
2
2
  export { e as SbbAutocompleteBaseElement };
@@ -1,4 +1,4 @@
1
- import { t as e } from "../autocomplete-base-element-BuCAxBy3.js";
1
+ import { t as e } from "../autocomplete-base-element-CAWFmfLW.js";
2
2
  import { getNextElementIndex as t, isSafari as n, setAriaComboBoxAttributes as r } from "../core.js";
3
3
  //#region src/elements/autocomplete/autocomplete.component.ts
4
4
  var i = 0, a = n, o = class extends e {
@@ -1,11 +1,11 @@
1
1
  import { __esDecorate as e, __runInitializers as t } from "tslib";
2
2
  import { html as n, isServer as r, nothing as i, unsafeCSS as a } from "lit";
3
3
  import { property as o } from "lit/decorators.js";
4
- import { SbbEscapableOverlayController as s, SbbNegativeMixin as c, SbbOpenCloseBaseElement as l, SbbPropertyWatcherController as u, forceType as d, idReference as f, isEventOnElement as p, isLean as m, isSafari as h, isZeroAnimationDuration as g, overlayGapFixCorners as _, removeAriaComboBoxAttributes as v, setOverlayPosition as y } from "./core.js";
4
+ import { SbbEscapableOverlayController as s, SbbNegativeMixin as c, SbbOpenCloseBaseElement as l, SbbPropertyWatcherController as u, forceType as d, idReference as f, isEventOnElement as p, isLean as m, isSafari as h, isZeroAnimationDuration as ee, optionPanelStyles as g, removeAriaComboBoxAttributes as _, scrollbarStyles as v, setOverlayPosition as y } from "./core.js";
5
5
  import { ResizeController as b } from "@lit-labs/observers/resize-controller.js";
6
6
  import { ref as x } from "lit/directives/ref.js";
7
7
  //#region src/elements/autocomplete/autocomplete-base-element.scss?inline
8
- var S = ".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-width: var(--sbb-spacing-fixed-3x);--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-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-pointer-events: all;--sbb-options-panel-internal-z-index: var( --sbb-autocomplete-z-index, var(--sbb-overlay-default-z-index) );display:none;font-weight:400;line-height:var(--sbb-typo-line-height-text)}: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(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]),:is(:state(state-closing),[state--state-closing]))){display:block}: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-2-negative);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark)}: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;--sbb-options-pointer-events: none}: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) )}:host([preserve-icon-space]){--sbb-option-icon-container-display: block}::slotted(sbb-divider){margin-block:var(--sbb-options-panel-divider-margin-block)}.sbb-autocomplete__container{position:fixed;pointer-events:none;inset:0;z-index:var(--sbb-options-panel-internal-z-index)}.sbb-autocomplete__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-autocomplete__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-autocomplete__panel:before,.sbb-autocomplete__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-autocomplete__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-autocomplete__panel{box-shadow:var(--sbb-box-shadow-level-9-hard)}:host(:is(:is(:state(state-opened),[state--state-opened]),:is(:state(state-opening),[state--state-opening]))[negative]) .sbb-autocomplete__panel{box-shadow:var(--sbb-box-shadow-level-9-hard-negative)}:host(:is(:state(options-panel-position-below),[state--options-panel-position-below])) .sbb-autocomplete__panel:before{display:block}:host(:is(:state(options-panel-position-above),[state--options-panel-position-above])) .sbb-autocomplete__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-autocomplete__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-autocomplete__panel:after{box-shadow:var(--sbb-box-shadow-level-9-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-autocomplete__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-autocomplete__panel:after{box-shadow:var(--sbb-box-shadow-level-9-hard-negative)}.sbb-autocomplete__wrapper{overflow:hidden}.sbb-autocomplete__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-autocomplete__options::-webkit-scrollbar{width:var(--sbb-scrollbar-width);height:var(--sbb-scrollbar-width);background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-autocomplete__options::-webkit-scrollbar-corner{background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-autocomplete__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-autocomplete__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-autocomplete__options::-webkit-scrollbar-button,.sbb-autocomplete__options::-webkit-scrollbar-corner{display:none}@supports not selector(::-webkit-scrollbar){.sbb-autocomplete__options{scrollbar-width:var(--sbb-scrollbar-width-firefox);scrollbar-color:var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent)}}.sbb-autocomplete__options{pointer-events:var(--sbb-options-pointer-events)}@media(forced-colors:active){.sbb-autocomplete__options{border:var(--sbb-border-width-1x) solid CanvasText;border-top: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}}", C = h, w = (() => {
8
+ var S = ":host{display:none}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]),:is(:state(state-closing),[state--state-closing]))){display:block}", C = h, w = (() => {
9
9
  let h = c(l), w, T = [], E = [], D, O = [], k = [], A, j = [], M = [], N, P = [], F = [], I, L = [], R = [], z, B = [], V = [], H, U = [], W = [], G, K = [], q = [], J, Y = [], X = [], Z, Q = [], $ = [];
10
10
  return class extends h {
11
11
  static {
@@ -164,7 +164,11 @@ var S = ".sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-
164
164
  });
165
165
  }
166
166
  static {
167
- this.styles = [a(S)];
167
+ this.styles = [
168
+ v,
169
+ g,
170
+ a(S)
171
+ ];
168
172
  }
169
173
  #e;
170
174
  get origin() {
@@ -249,7 +253,9 @@ var S = ".sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-
249
253
  callback: (() => {
250
254
  let e;
251
255
  return () => {
252
- clearTimeout(e), e = setTimeout(() => this._setOverlayPosition(), 10);
256
+ clearTimeout(e), e = setTimeout(() => {
257
+ this.state !== "closed" && this._setOverlayPosition();
258
+ }, 10);
253
259
  };
254
260
  })()
255
261
  }), this._triggerAttributeObserver = r ? null : new MutationObserver((e) => {
@@ -277,7 +283,7 @@ var S = ".sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-
277
283
  this.state === "closing" || this.state === "closed" || !this.dispatchBeforeCloseEvent() || (this.pendingAutoSelectedOption && (this.pendingAutoSelectedOption.selected = !0, this._setValueAndDispatchEvents(this.pendingAutoSelectedOption, !0)), this.state = "closing", this.triggerElement?.removeAttribute("data-expanded"), this._openPanelEventsController.abort(), this.originElement && this._resizeObserver.unobserve(this.originElement), this._isZeroAnimationDuration() && this._handleClosing());
278
284
  }
279
285
  _isZeroAnimationDuration() {
280
- return g(this, "--sbb-options-panel-animation-duration");
286
+ return ee(this, "--sbb-options-panel-animation-duration");
281
287
  }
282
288
  connectedCallback() {
283
289
  this.popover = "manual", super.connectedCallback(), C && (this.id ||= this.overlayId), this.hasUpdated && this._componentSetup(), this.syncNegative();
@@ -329,7 +335,7 @@ var S = ".sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-
329
335
  }
330
336
  _configureTrigger() {
331
337
  let e = this.trigger ?? this.closest?.("sbb-form-field")?.querySelector("input");
332
- if (e === this.triggerElement || (this._triggerAbortController?.abort(), v(this.triggerElement), this.triggerElement?.removeAttribute("data-expanded"), this._triggerElement = e, !this.triggerElement)) return;
338
+ if (e === this.triggerElement || (this._triggerAbortController?.abort(), _(this.triggerElement), this.triggerElement?.removeAttribute("data-expanded"), this._triggerElement = e, !this.triggerElement)) return;
333
339
  let t = this.originElement;
334
340
  this.triggerElement === t && this.isOpen && this._setOverlayPosition(t), this._triggerAttributeObserver?.observe(this.triggerElement, {
335
341
  attributes: !0,
@@ -356,7 +362,7 @@ var S = ".sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-
356
362
  });
357
363
  }
358
364
  _setOverlayPosition(e = this.originElement) {
359
- e && y(this._overlay, e, this._optionContainer, this.shadowRoot.querySelector(".sbb-autocomplete__container"), this, this.position);
365
+ e && y(this._overlay, e, this._overlay, this.shadowRoot.querySelector(".sbb-option-panel__overlay-container"), this, this.position);
360
366
  }
361
367
  _onAnimationEnd(e) {
362
368
  e.animationName === "open" && this.state === "opening" ? this._handleOpening() : e.animationName === "close" && this.state === "closing" && this._handleClosing();
@@ -365,7 +371,7 @@ var S = ".sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-
365
371
  this.state = "opened", this.originElement && this._resizeObserver.observe(this.originElement), this.triggerElement?.setAttribute("aria-expanded", "true"), this.dispatchOpenEvent();
366
372
  }
367
373
  _handleClosing() {
368
- this.state = "closed", this.hidePopover?.(), this.triggerElement?.setAttribute("aria-expanded", "false"), this.resetActiveElement(), this._optionContainer.scrollTop = 0, this._escapableOverlayController.disconnect(), this.dispatchCloseEvent();
374
+ this.state = "closed", this.hidePopover?.(), this.triggerElement?.setAttribute("aria-expanded", "false"), this.resetActiveElement(), this._overlay.scrollTop = 0, this._escapableOverlayController.disconnect(), this.dispatchCloseEvent();
369
375
  }
370
376
  _attachOpenPanelEvents() {
371
377
  this._openPanelEventsController = new AbortController(), document.addEventListener("scroll", () => this._setOverlayPosition(), {
@@ -395,25 +401,16 @@ var S = ".sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-
395
401
  }
396
402
  render() {
397
403
  return n`
398
- <div class="sbb-autocomplete__gap-fix"></div>
399
- <div class="sbb-autocomplete__container">
400
- <div class="sbb-autocomplete__gap-fix">${_()}</div>
404
+ <div class="sbb-option-panel__overlay-container">
401
405
  <div
406
+ class="sbb-option-panel__overlay ${this.negative ? "sbb-scrollbar-negative" : "sbb-scrollbar"}"
407
+ role=${C ? i : this.panelRole}
408
+ id=${C ? i : this.overlayId}
409
+ tabindex="-1"
402
410
  @animationend=${this._onAnimationEnd}
403
- class="sbb-autocomplete__panel"
404
411
  ${x((e) => this._overlay = e)}
405
412
  >
406
- <div class="sbb-autocomplete__wrapper">
407
- <div
408
- class="sbb-autocomplete__options"
409
- role=${C ? i : this.panelRole}
410
- id=${C ? i : this.overlayId}
411
- tabindex="-1"
412
- ${x((e) => this._optionContainer = e)}
413
- >
414
- <slot @slotchange=${this._handleSlotchange}></slot>
415
- </div>
416
- </div>
413
+ <slot @slotchange=${this._handleSlotchange}></slot>
417
414
  </div>
418
415
  </div>
419
416
  `;
package/autocomplete.js CHANGED
@@ -1,4 +1,4 @@
1
- import { t as e } from "./autocomplete-base-element-BuCAxBy3.js";
1
+ import { t as e } from "./autocomplete-base-element-CAWFmfLW.js";
2
2
  import { SbbAutocompleteElement as t } from "./autocomplete/autocomplete.component.js";
3
3
  import "./autocomplete.pure.js";
4
4
  //#region src/elements/autocomplete.ts
@@ -1,3 +1,3 @@
1
- import { t as e } from "./autocomplete-base-element-BuCAxBy3.js";
1
+ import { t as e } from "./autocomplete-base-element-CAWFmfLW.js";
2
2
  import { SbbAutocompleteElement as t } from "./autocomplete/autocomplete.component.js";
3
3
  export { e as SbbAutocompleteBaseElement, t as SbbAutocompleteElement };
@@ -2,14 +2,15 @@ import { getElementPosition as e } from "./position.js";
2
2
  //#region src/elements/core/overlay/overlay-option-panel.ts
3
3
  function t(t, n, r, i, a, o = "auto") {
4
4
  if (!t || !n) return;
5
- a.style.setProperty("--sbb-options-panel-width", `${n.offsetWidth}px`), a.style.setProperty("--sbb-options-panel-origin-height", `${n.offsetHeight}px`);
6
- let s = e(r, n, i, {
5
+ let s = n.getBoundingClientRect();
6
+ a.style.setProperty("--sbb-options-panel-width", `${n.offsetWidth}px`), a.style.setProperty("--sbb-options-panel-origin-height", `${n.offsetHeight}px`), a.style.setProperty("--sbb-options-panel-origin-position-x", `${s.left}px`), a.style.setProperty("--sbb-options-panel-origin-position-y", `${s.top}px`);
7
+ let c = e(r, n, i, {
7
8
  forceBelow: o === "below",
8
9
  forceAbove: o === "above"
9
10
  });
10
- a.style.setProperty("--sbb-options-panel-position-x", `${s.left}px`), a.style.setProperty("--sbb-options-panel-position-y", `${s.top}px`), a.style.setProperty("--sbb-options-panel-max-height-calculated", s.maxHeight);
11
- let c = s.alignment.vertical === "above";
12
- a.toggleState?.("options-panel-position-above", c), a.toggleState?.("options-panel-position-below", !c), n.setAttribute("data-options-panel-position", s.alignment.vertical);
11
+ a.style.setProperty("--sbb-options-panel-position-x", `${c.left}px`), a.style.setProperty("--sbb-options-panel-position-y", `${c.top}px`), a.style.setProperty("--sbb-options-panel-max-height-calculated", c.maxHeight);
12
+ let l = c.alignment.vertical === "above";
13
+ a.toggleState?.("options-panel-position-above", l), a.toggleState?.("options-panel-position-below", !l), n.setAttribute("data-options-panel-position", c.alignment.vertical);
13
14
  }
14
15
  //#endregion
15
16
  export { t as setOverlayPosition };
@@ -13,7 +13,6 @@
13
13
  @forward './mixins/layout';
14
14
  @forward './mixins/link';
15
15
  @forward './mixins/lists';
16
- @forward './mixins/overlay';
17
16
  @forward './mixins/panel';
18
17
  @forward './mixins/pearl-chain-bullet';
19
18
  @forward './mixins/popover';
@@ -10,7 +10,6 @@ $theme: 'standard' !default;
10
10
  @use './mixins/font-face';
11
11
  @use './mixins/helpers';
12
12
  @use './mixins/inputs';
13
- @use './mixins/overlay' as overlay-mixin;
14
13
  @use './mixins/popover';
15
14
  @use './mixins/scrollbar';
16
15
  @use './mixins/typo';
@@ -196,6 +195,9 @@ $theme: 'standard' !default;
196
195
  @use '../../option/option-hint/option-hint.global' as option-hint with (
197
196
  $theme: $theme
198
197
  );
198
+ @use './option-panel-common.global' as option-panel with (
199
+ $theme: $theme
200
+ );
199
201
  @use '../../overlay/overlay.global' as overlay with (
200
202
  $theme: $theme
201
203
  );
@@ -389,9 +391,9 @@ $theme: 'standard' !default;
389
391
  @include notification.base;
390
392
  @include option.base;
391
393
  @include option-hint.base;
394
+ @include option-panel.base;
392
395
  @include optgroup.base;
393
396
  @include overlay.base;
394
- @include overlay-mixin.options-panel-overlay-variables--global($theme);
395
397
  @include paginator.base;
396
398
  @include compact-paginator.base;
397
399
  @include popover-component.base;
@@ -0,0 +1,11 @@
1
+ $theme: 'standard' !default;
2
+
3
+ @mixin base {
4
+ --sbb-options-panel-border-radius: var(--sbb-border-radius-4x);
5
+ --sbb-options-panel-animation-timing-function: ease;
6
+ --sbb-options-panel-background-color: var(--sbb-background-color-2);
7
+ --sbb-options-panel-divider-margin-block: var(--sbb-spacing-fixed-3x);
8
+ --sbb-options-panel-box-shadow: var(--sbb-box-shadow-level-9-hard);
9
+ --sbb-options-panel-margin-block-start: var(--sbb-spacing-fixed-2x);
10
+ --sbb-options-panel-padding-block: var(--sbb-spacing-fixed-1x);
11
+ }
@@ -0,0 +1,157 @@
1
+ @use './mixins/a11y';
2
+
3
+ :host {
4
+ --sbb-options-panel-position-x: 0;
5
+ --sbb-options-panel-position-y: 0;
6
+ --sbb-options-pointer-events: all;
7
+
8
+ // In order to have a valid value, we need a big integer to not fall into the minimum
9
+ --_sbb-options-panel-max-height: min(
10
+ var(--sbb-options-panel-max-height-calculated),
11
+ var(--sbb-options-panel-max-height, 100000em)
12
+ );
13
+ --sbb-options-panel-min-height: var(--sbb-options-panel-origin-height);
14
+ --sbb-options-panel-options-border-radius: 0 0 var(--sbb-options-panel-border-radius)
15
+ var(--sbb-options-panel-border-radius);
16
+ --sbb-options-panel-animation-duration: var(
17
+ --sbb-disable-animation-duration,
18
+ var(--sbb-animation-duration-4x)
19
+ );
20
+
21
+ // As the overlays have always a white background, we have to fix the focus outline color
22
+ // to default color for cases where the overlays are used in a negative context.
23
+ --sbb-focus-outline-color: light-dark(
24
+ var(--sbb-focus-outline-color-default),
25
+ var(--sbb-focus-outline-color-dark)
26
+ );
27
+ --sbb-options-panel-internal-z-index: var(
28
+ --sbb-select-z-index,
29
+ var(--sbb-overlay-default-z-index)
30
+ );
31
+
32
+ font-weight: normal;
33
+ }
34
+
35
+ :host([negative]) {
36
+ --sbb-options-panel-box-shadow: var(--sbb-box-shadow-level-9-hard-negative);
37
+ --sbb-options-panel-background-color: var(--sbb-background-color-2-negative);
38
+
39
+ // As the overlays have always a white background, we have to fix the focus outline color
40
+ // to default color for cases where the overlays are used in a negative context.
41
+ --sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);
42
+ }
43
+
44
+ :host(:not(:state(state-opening), :state(state-opened), :state(state-closing))),
45
+ :host(:state(state-closed)) {
46
+ --sbb-options-panel-visibility: hidden;
47
+ --sbb-options-pointer-events: none;
48
+ }
49
+
50
+ :host(:state(state-opening)) {
51
+ --sbb-options-panel-animation-name: open;
52
+ }
53
+
54
+ :host(:state(state-closing)) {
55
+ --sbb-options-panel-animation-name: close;
56
+ }
57
+
58
+ :host(:state(options-panel-position-below)) {
59
+ --sbb-options-panel-animation-translate: var(--sbb-spacing-fixed-2x);
60
+ }
61
+
62
+ :host(:state(options-panel-position-above)) {
63
+ --sbb-options-panel-options-border-radius: var(--sbb-options-panel-border-radius)
64
+ var(--sbb-options-panel-border-radius) 0 0;
65
+ --sbb-options-panel-animation-translate: calc(-1 * var(--sbb-spacing-fixed-2x));
66
+ --sbb-options-panel-margin-block-start: calc(-1 * var(--sbb-spacing-fixed-2x));
67
+ }
68
+
69
+ :host([preserve-icon-space]) {
70
+ --sbb-option-icon-container-display: block;
71
+ }
72
+
73
+ ::slotted(sbb-divider) {
74
+ margin-block: var(--sbb-options-panel-divider-margin-block);
75
+ }
76
+
77
+ .sbb-option-panel__overlay-container {
78
+ position: fixed;
79
+ pointer-events: none;
80
+ inset: 0;
81
+ z-index: var(--sbb-options-panel-internal-z-index);
82
+
83
+ // Needed to add the box-shadow on the origin element (only if borderless)
84
+ &::after {
85
+ content: '';
86
+ display: block;
87
+ position: absolute;
88
+ top: var(--sbb-options-panel-origin-position-y);
89
+ left: var(--sbb-options-panel-origin-position-x);
90
+ width: var(--sbb-options-panel-width);
91
+ height: var(--sbb-options-panel-origin-height);
92
+ background-color: transparent;
93
+ border-radius: var(--sbb-options-panel-border-radius);
94
+ transition: box-shadow var(--sbb-options-panel-animation-duration)
95
+ var(--sbb-options-panel-animation-timing-function);
96
+
97
+ :host(:is(:state(state-opened), :state(state-opening)):state(option-panel-origin-borderless))
98
+ & {
99
+ box-shadow: var(--sbb-options-panel-box-shadow);
100
+ }
101
+ }
102
+ }
103
+
104
+ .sbb-option-panel__overlay {
105
+ display: block;
106
+ position: absolute;
107
+ visibility: var(--sbb-options-panel-visibility, 'visible');
108
+ border: none;
109
+ border-radius: var(--sbb-options-panel-border-radius);
110
+ top: var(--sbb-options-panel-position-y);
111
+ left: var(--sbb-options-panel-position-x);
112
+ width: var(--sbb-options-panel-width, fit-content);
113
+ transition: box-shadow var(--sbb-options-panel-animation-duration)
114
+ var(--sbb-options-panel-animation-timing-function);
115
+ box-shadow: var(--sbb-options-panel-box-shadow);
116
+ background-color: var(--sbb-options-panel-background-color);
117
+ margin-block-start: var(--sbb-options-panel-margin-block-start);
118
+ padding-block: var(--sbb-options-panel-padding-block);
119
+ padding-inline: 0;
120
+ max-height: var(--_sbb-options-panel-max-height);
121
+ min-height: var(--sbb-options-panel-min-height);
122
+ pointer-events: var(--sbb-options-pointer-events);
123
+ overflow: hidden auto;
124
+ animation: {
125
+ name: var(--sbb-options-panel-animation-name);
126
+ duration: var(--sbb-options-panel-animation-duration);
127
+ timing-function: var(--sbb-options-panel-animation-timing-function);
128
+ }
129
+
130
+ @include a11y.if-forced-colors {
131
+ border: var(--sbb-border-width-1x) solid CanvasText;
132
+ }
133
+ }
134
+
135
+ @keyframes open {
136
+ from {
137
+ translate: 0 var(--sbb-options-panel-animation-translate);
138
+ opacity: 0;
139
+ }
140
+
141
+ to {
142
+ translate: 0;
143
+ opacity: 1;
144
+ }
145
+ }
146
+
147
+ @keyframes close {
148
+ from {
149
+ translate: 0;
150
+ opacity: 1;
151
+ }
152
+
153
+ to {
154
+ translate: 0 var(--sbb-options-panel-animation-translate);
155
+ opacity: 0;
156
+ }
157
+ }
@@ -1,2 +1,2 @@
1
- import { n as e, r as t, t as n } from "../../styles-OHFAsnJq.js";
2
- export { n as hostScrollbarStyles, e as screenReaderOnlyStyles, t as scrollbarStyles };
1
+ import { i as e, n as t, r as n, t as r } from "../../styles-CgXa3TG9.js";
2
+ export { r as hostScrollbarStyles, t as optionPanelStyles, n as screenReaderOnlyStyles, e as scrollbarStyles };
package/core.css CHANGED
@@ -1663,6 +1663,13 @@ slot[name=error]::slotted(*) {
1663
1663
  --sbb-option-hint-padding-block-end: var(--sbb-spacing-fixed-2x);
1664
1664
  --sbb-option-hint-padding-inline: var(--sbb-spacing-responsive-xxxs);
1665
1665
  --sbb-option-hint-font-size: var(--sbb-text-font-size-xxs);
1666
+ --sbb-options-panel-border-radius: var(--sbb-border-radius-4x);
1667
+ --sbb-options-panel-animation-timing-function: ease;
1668
+ --sbb-options-panel-background-color: var(--sbb-background-color-2);
1669
+ --sbb-options-panel-divider-margin-block: var(--sbb-spacing-fixed-3x);
1670
+ --sbb-options-panel-box-shadow: var(--sbb-box-shadow-level-9-hard);
1671
+ --sbb-options-panel-margin-block-start: var(--sbb-spacing-fixed-2x);
1672
+ --sbb-options-panel-padding-block: var(--sbb-spacing-fixed-1x);
1666
1673
  --sbb-optgroup-label-color: var(--sbb-color-metal);
1667
1674
  --sbb-optgroup-label-color: light-dark(var(--sbb-color-metal), var(--sbb-color-smoke));
1668
1675
  --sbb-optgroup-label-font-size: var(--sbb-text-font-size-xxs);
@@ -1675,11 +1682,6 @@ slot[name=error]::slotted(*) {
1675
1682
  --sbb-overlay-animation-easing: ease;
1676
1683
  --sbb-overlay-pointer-events: none;
1677
1684
  --sbb-overlay-container-display: none;
1678
- --sbb-options-panel-border-radius: var(--sbb-border-radius-4x);
1679
- --sbb-options-panel-animation-timing-function: ease;
1680
- --sbb-options-panel-background-color: var(--sbb-background-color-2);
1681
- --sbb-options-panel-divider-margin-block: var(--sbb-spacing-fixed-3x);
1682
- --sbb-options-panel-padding-block: var(--sbb-spacing-fixed-2x);
1683
1685
  --sbb-paginator-height: var(--sbb-size-element-m);
1684
1686
  --sbb-paginator-page-color: var(--sbb-color-metal);
1685
1687
  --sbb-paginator-page-color: light-dark(var(--sbb-color-metal), var(--sbb-color-smoke));
package/core.js CHANGED
@@ -58,10 +58,9 @@ import { SbbNegativeMixin as Zn } from "./core/mixins/negative-mixin.js";
58
58
  import { t as Qn } from "./panel-mixin-CcbyRemy.js";
59
59
  import { SbbSelectionPanelMixin as $n } from "./core/mixins/selection-panel-mixin.js";
60
60
  import { SbbUpdateSchedulerMixin as er } from "./core/mixins/update-scheduler-mixin.js";
61
- import { overlayGapFixCorners as tr } from "./core/overlay/overlay.js";
62
- import { getElementPosition as nr, getElementPositionHorizontal as rr, getElementRectangle as ir, isEventOnElement as ar } from "./core/overlay/position.js";
63
- import { setOverlayPosition as or } from "./core/overlay/overlay-option-panel.js";
64
- import { SbbOverlayOutsidePointerEventListener as sr, sbbOverlayOutsidePointerEventListener as cr } from "./core/overlay/overlay-outside-pointer-event-listener.js";
65
- import { removeAriaComboBoxAttributes as lr, removeAriaOverlayTriggerProperties as ur, setAriaComboBoxAttributes as dr, setAriaOverlayTriggerProperties as fr } from "./core/overlay/overlay-trigger-attributes.js";
66
- import { n as pr, r as mr, t as hr } from "./styles-OHFAsnJq.js";
67
- export { q as DAYS_PER_ROW, J as DateAdapter, Y as FORMAT_DATE, X as FRIDAY, Z as ISO8601_FORMAT_DATE, l as IS_FOCUSABLE_QUERY, u as InteractivityChecker, d as IsFocusableConfig, Q as MONDAY, $ as MONTHS_PER_PAGE, ee as MONTHS_PER_ROW, ce as NativeDateAdapter, te as SATURDAY, ne as SUNDAY, x as SbbActionBaseElement, zn as SbbAnimationCompleteMixin, S as SbbButtonBaseElement, C as SbbButtonLikeBaseElement, P as SbbDarkModeController, Bn as SbbDisabledInteractiveMixin, Vn as SbbDisabledMixin, Hn as SbbDisabledTabIndexActionMixin, b as SbbElement, A as SbbEscapableOverlayController, p as SbbFocusTrapController, c as SbbFocusVisibleWithinController, Gn as SbbFormAssociatedCheckboxMixin, qn as SbbFormAssociatedInputMixin, Un as SbbFormAssociatedMixin, Jn as SbbFormAssociatedRadioButtonMixin, j as SbbIdReferenceController, M as SbbInertController, N as SbbLanguageController, w as SbbLinkBaseElement, m as SbbLiveAnnouncer, F as SbbMediaMatcherController, I as SbbMediaQueryBreakpointLargeAndAbove, L as SbbMediaQueryBreakpointLargeAndBelow, R as SbbMediaQueryBreakpointSmallAndAbove, z as SbbMediaQueryBreakpointSmallAndBelow, B as SbbMediaQueryBreakpointUltraAndAbove, V as SbbMediaQueryBreakpointZeroAndAbove, H as SbbMediaQueryDarkMode, U as SbbMediaQueryForcedColors, W as SbbMediaQueryHover, G as SbbMediaQueryPointerCoarse, Xn as SbbNamedSlotListMixin, Zn as SbbNegativeMixin, T as SbbOpenCloseBaseElement, sr as SbbOverlayOutsidePointerEventListener, K as SbbOverlayPositionController, Qn as SbbPanelMixin, k as SbbPropertyWatcherController, Kn as SbbReadonlyMixin, Wn as SbbRequiredMixin, Fe as SbbScrollHandler, E as SbbSelectionGroupBaseElement, $n as SbbSelectionPanelMixin, v as SbbSlottedChangeEvent, er as SbbUpdateSchedulerMixin, re as THURSDAY, ie as TUESDAY, ue as TemporalDateAdapter, ae as WEDNESDAY, oe as YEARS_PER_PAGE, se as YEARS_PER_ROW, y as appendAriaElements, Le as composedPathHasAttribute, be as containsPierceShadowDom, le as defaultDateAdapter, de as forceType, Be as forwardEvent, nr as getElementPosition, rr as getElementPositionHorizontal, ir as getElementRectangle, Re as getEventTarget, e as getNextElementIndex, fe as getOverride, pe as handleDistinctChange, me as hostAttributes, hr as hostScrollbarStyles, Ue as i18nAdditionalWagonInformationHeading, We as i18nAnd, Ge as i18nArrival, Ke as i18nBlockedPassage, qe as i18nBreadcrumbEllipsisButtonLabel, Je as i18nCalendarDateSelection, Ye as i18nCalendarWeekNumber, Xe as i18nCarouselArrowsNavigationHint, Ze as i18nCarouselItemAriaLabel, Qe as i18nCheckboxRequired, $e as i18nChipDelete, et as i18nChipGroupInputDescription, tt as i18nClass, nt as i18nClearInput, rt as i18nCloseAlert, it as i18nCloseDialog, at as i18nCloseNavigation, ot as i18nCloseNotification, st as i18nClosePopover, ct as i18nCloseSidebar, lt as i18nClosedCompartmentLabel, ut as i18nCollapsed, dt as i18nConnectionFrom, ft as i18nConnectionRoundtrip, pt as i18nConnectionTo, mt as i18nCouchetteWagonLabel, ht as i18nDateChangedTo, gt as i18nDateInvalid, _t as i18nDateMax, vt as i18nDateMin, yt as i18nDatePickerPlaceholder, bt as i18nDeparture, xt as i18nDialog, St as i18nDirection, Ct as i18nDurationDay, wt as i18nDurationHour, Tt as i18nDurationMinute, Et as i18nExpanded, Dt as i18nFileSelectorButtonLabel, Ot as i18nFileSelectorButtonLabelMultiple, kt as i18nFileSelectorCurrentlySelected, At as i18nFileSelectorDeleteFile, jt as i18nFileSelectorSubtitleLabel, Mt as i18nFileSelectorSubtitleLabelMultiple, Nt as i18nFlipCard, Pt as i18nFromPlatform, Ft as i18nGoBack, It as i18nInputRequired, Lt as i18nItemsPerPage, Rt as i18nLocomotiveLabel, zt as i18nMapContainerButtonLabel, Bt as i18nMeansOfTransport, Vt as i18nNew, Ht as i18nNextDay, Ut as i18nNextMonth, Wt as i18nNextPage, Gt as i18nNextSlide, Kt as i18nNextYear, qt as i18nNextYearRange, Jt as i18nOccupancy, Yt as i18nOptional, Xt as i18nPage, Zt as i18nPaginatorOf, Qt as i18nPaginatorSelected, $t as i18nPreviousDay, en as i18nPreviousMonth, tn as i18nPreviousPage, nn as i18nPreviousSlide, rn as i18nPreviousYear, an as i18nPreviousYearRange, on as i18nRealTimeInfo, sn as i18nRemainingCharacters, cn as i18nRestaurantWagonLabel, ln as i18nReverseCard, un as i18nSector, dn as i18nSectorShort, fn as i18nSelectNextDay, pn as i18nSelectPreviousDay, mn as i18nSelectionRequired, hn as i18nShowCalendar, gn as i18nSleepingWagonLabel, _n as i18nSlide, vn as i18nSupersaver, yn as i18nTargetOpensInNewWindow, bn as i18nTimeInputChange, xn as i18nTimeInvalid, Sn as i18nTimeMax, Cn as i18nTimeMaxLength, wn as i18nTimetableFormSwapButtonLabel, Tn as i18nToday, En as i18nTrain, Dn as i18nTrains, On as i18nTransferProcedure, kn as i18nTransferProcedures, An as i18nTravelhints, jn as i18nTripDuration, Mn as i18nTripQuayChange, Nn as i18nWagonLabel, Pn as i18nWagonLabelNumber, Fn as i18nWagonsLabel, In as i18nWalkingDistanceArrival, Ln as i18nWalkingDistanceDeparture, Rn as i18nYearMonthSelection, he as idReference, f as interactivityChecker, Ce as isAndroid, t as isArrowKeyOrPageKeysPressed, n as isArrowKeyPressed, we as isBlink, Te as isChromium, Ee as isEdge, ar as isEventOnElement, Ve as isEventPrevented, a as isFakeMousedownFromScreenReader, o as isFakeTouchstartFromScreenReader, De as isFirefox, Oe as isIOS, xe as isLean, ke as isMacOS, r as isNextArrowKeyPressed, Ae as isNextjs, i as isPreviousArrowKeyPressed, je as isSafari, Me as isTrident, Ne as isWebkit, ye as isZeroAnimationDuration, D as mergeConfig, ge as omitEmptyConverter, tr as overlayGapFixCorners, Ie as pageScrollDisabled, _e as plainDate, ve as plainDateConverter, ze as preventScrollOnSpacebarPress, Pe as queueDomContentLoaded, Yn as radioButtonRegistry, O as readConfig, lr as removeAriaComboBoxAttributes, _ as removeAriaElements, ur as removeAriaOverlayTriggerProperties, s as sbbInputModalityDetector, h as sbbLiveAnnouncer, cr as sbbOverlayOutsidePointerEventListener, pr as screenReaderOnlyStyles, mr as scrollbarStyles, dr as setAriaComboBoxAttributes, fr as setAriaOverlayTriggerProperties, Se as setOrRemoveAttribute, or as setOverlayPosition, He as throttle, g as ɵstateController };
61
+ import { getElementPosition as tr, getElementPositionHorizontal as nr, getElementRectangle as rr, isEventOnElement as ir } from "./core/overlay/position.js";
62
+ import { setOverlayPosition as ar } from "./core/overlay/overlay-option-panel.js";
63
+ import { SbbOverlayOutsidePointerEventListener as or, sbbOverlayOutsidePointerEventListener as sr } from "./core/overlay/overlay-outside-pointer-event-listener.js";
64
+ import { removeAriaComboBoxAttributes as cr, removeAriaOverlayTriggerProperties as lr, setAriaComboBoxAttributes as ur, setAriaOverlayTriggerProperties as dr } from "./core/overlay/overlay-trigger-attributes.js";
65
+ import { i as fr, n as pr, r as mr, t as hr } from "./styles-CgXa3TG9.js";
66
+ export { q as DAYS_PER_ROW, J as DateAdapter, Y as FORMAT_DATE, X as FRIDAY, Z as ISO8601_FORMAT_DATE, l as IS_FOCUSABLE_QUERY, u as InteractivityChecker, d as IsFocusableConfig, Q as MONDAY, $ as MONTHS_PER_PAGE, ee as MONTHS_PER_ROW, ce as NativeDateAdapter, te as SATURDAY, ne as SUNDAY, x as SbbActionBaseElement, zn as SbbAnimationCompleteMixin, S as SbbButtonBaseElement, C as SbbButtonLikeBaseElement, P as SbbDarkModeController, Bn as SbbDisabledInteractiveMixin, Vn as SbbDisabledMixin, Hn as SbbDisabledTabIndexActionMixin, b as SbbElement, A as SbbEscapableOverlayController, p as SbbFocusTrapController, c as SbbFocusVisibleWithinController, Gn as SbbFormAssociatedCheckboxMixin, qn as SbbFormAssociatedInputMixin, Un as SbbFormAssociatedMixin, Jn as SbbFormAssociatedRadioButtonMixin, j as SbbIdReferenceController, M as SbbInertController, N as SbbLanguageController, w as SbbLinkBaseElement, m as SbbLiveAnnouncer, F as SbbMediaMatcherController, I as SbbMediaQueryBreakpointLargeAndAbove, L as SbbMediaQueryBreakpointLargeAndBelow, R as SbbMediaQueryBreakpointSmallAndAbove, z as SbbMediaQueryBreakpointSmallAndBelow, B as SbbMediaQueryBreakpointUltraAndAbove, V as SbbMediaQueryBreakpointZeroAndAbove, H as SbbMediaQueryDarkMode, U as SbbMediaQueryForcedColors, W as SbbMediaQueryHover, G as SbbMediaQueryPointerCoarse, Xn as SbbNamedSlotListMixin, Zn as SbbNegativeMixin, T as SbbOpenCloseBaseElement, or as SbbOverlayOutsidePointerEventListener, K as SbbOverlayPositionController, Qn as SbbPanelMixin, k as SbbPropertyWatcherController, Kn as SbbReadonlyMixin, Wn as SbbRequiredMixin, Fe as SbbScrollHandler, E as SbbSelectionGroupBaseElement, $n as SbbSelectionPanelMixin, v as SbbSlottedChangeEvent, er as SbbUpdateSchedulerMixin, re as THURSDAY, ie as TUESDAY, ue as TemporalDateAdapter, ae as WEDNESDAY, oe as YEARS_PER_PAGE, se as YEARS_PER_ROW, y as appendAriaElements, Le as composedPathHasAttribute, be as containsPierceShadowDom, le as defaultDateAdapter, de as forceType, Be as forwardEvent, tr as getElementPosition, nr as getElementPositionHorizontal, rr as getElementRectangle, Re as getEventTarget, e as getNextElementIndex, fe as getOverride, pe as handleDistinctChange, me as hostAttributes, hr as hostScrollbarStyles, Ue as i18nAdditionalWagonInformationHeading, We as i18nAnd, Ge as i18nArrival, Ke as i18nBlockedPassage, qe as i18nBreadcrumbEllipsisButtonLabel, Je as i18nCalendarDateSelection, Ye as i18nCalendarWeekNumber, Xe as i18nCarouselArrowsNavigationHint, Ze as i18nCarouselItemAriaLabel, Qe as i18nCheckboxRequired, $e as i18nChipDelete, et as i18nChipGroupInputDescription, tt as i18nClass, nt as i18nClearInput, rt as i18nCloseAlert, it as i18nCloseDialog, at as i18nCloseNavigation, ot as i18nCloseNotification, st as i18nClosePopover, ct as i18nCloseSidebar, lt as i18nClosedCompartmentLabel, ut as i18nCollapsed, dt as i18nConnectionFrom, ft as i18nConnectionRoundtrip, pt as i18nConnectionTo, mt as i18nCouchetteWagonLabel, ht as i18nDateChangedTo, gt as i18nDateInvalid, _t as i18nDateMax, vt as i18nDateMin, yt as i18nDatePickerPlaceholder, bt as i18nDeparture, xt as i18nDialog, St as i18nDirection, Ct as i18nDurationDay, wt as i18nDurationHour, Tt as i18nDurationMinute, Et as i18nExpanded, Dt as i18nFileSelectorButtonLabel, Ot as i18nFileSelectorButtonLabelMultiple, kt as i18nFileSelectorCurrentlySelected, At as i18nFileSelectorDeleteFile, jt as i18nFileSelectorSubtitleLabel, Mt as i18nFileSelectorSubtitleLabelMultiple, Nt as i18nFlipCard, Pt as i18nFromPlatform, Ft as i18nGoBack, It as i18nInputRequired, Lt as i18nItemsPerPage, Rt as i18nLocomotiveLabel, zt as i18nMapContainerButtonLabel, Bt as i18nMeansOfTransport, Vt as i18nNew, Ht as i18nNextDay, Ut as i18nNextMonth, Wt as i18nNextPage, Gt as i18nNextSlide, Kt as i18nNextYear, qt as i18nNextYearRange, Jt as i18nOccupancy, Yt as i18nOptional, Xt as i18nPage, Zt as i18nPaginatorOf, Qt as i18nPaginatorSelected, $t as i18nPreviousDay, en as i18nPreviousMonth, tn as i18nPreviousPage, nn as i18nPreviousSlide, rn as i18nPreviousYear, an as i18nPreviousYearRange, on as i18nRealTimeInfo, sn as i18nRemainingCharacters, cn as i18nRestaurantWagonLabel, ln as i18nReverseCard, un as i18nSector, dn as i18nSectorShort, fn as i18nSelectNextDay, pn as i18nSelectPreviousDay, mn as i18nSelectionRequired, hn as i18nShowCalendar, gn as i18nSleepingWagonLabel, _n as i18nSlide, vn as i18nSupersaver, yn as i18nTargetOpensInNewWindow, bn as i18nTimeInputChange, xn as i18nTimeInvalid, Sn as i18nTimeMax, Cn as i18nTimeMaxLength, wn as i18nTimetableFormSwapButtonLabel, Tn as i18nToday, En as i18nTrain, Dn as i18nTrains, On as i18nTransferProcedure, kn as i18nTransferProcedures, An as i18nTravelhints, jn as i18nTripDuration, Mn as i18nTripQuayChange, Nn as i18nWagonLabel, Pn as i18nWagonLabelNumber, Fn as i18nWagonsLabel, In as i18nWalkingDistanceArrival, Ln as i18nWalkingDistanceDeparture, Rn as i18nYearMonthSelection, he as idReference, f as interactivityChecker, Ce as isAndroid, t as isArrowKeyOrPageKeysPressed, n as isArrowKeyPressed, we as isBlink, Te as isChromium, Ee as isEdge, ir as isEventOnElement, Ve as isEventPrevented, a as isFakeMousedownFromScreenReader, o as isFakeTouchstartFromScreenReader, De as isFirefox, Oe as isIOS, xe as isLean, ke as isMacOS, r as isNextArrowKeyPressed, Ae as isNextjs, i as isPreviousArrowKeyPressed, je as isSafari, Me as isTrident, Ne as isWebkit, ye as isZeroAnimationDuration, D as mergeConfig, ge as omitEmptyConverter, pr as optionPanelStyles, Ie as pageScrollDisabled, _e as plainDate, ve as plainDateConverter, ze as preventScrollOnSpacebarPress, Pe as queueDomContentLoaded, Yn as radioButtonRegistry, O as readConfig, cr as removeAriaComboBoxAttributes, _ as removeAriaElements, lr as removeAriaOverlayTriggerProperties, s as sbbInputModalityDetector, h as sbbLiveAnnouncer, sr as sbbOverlayOutsidePointerEventListener, mr as screenReaderOnlyStyles, fr as scrollbarStyles, ur as setAriaComboBoxAttributes, dr as setAriaOverlayTriggerProperties, Se as setOrRemoveAttribute, ar as setOverlayPosition, He as throttle, g as ɵstateController };