@sbb-esta/lyne-elements 4.5.0 → 4.6.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.
Files changed (65) hide show
  1. package/autocomplete/autocomplete-base-element.js +5 -5
  2. package/calendar/{calendar.component.js → calendar/calendar.component.js} +413 -401
  3. package/calendar/calendar-day/calendar-day.component.js +98 -0
  4. package/calendar/calendar-day.js +4 -0
  5. package/calendar/calendar.js +5 -0
  6. package/calendar.js +5 -2
  7. package/chip-label/chip-label.component.js +13 -13
  8. package/container/container/container.component.js +9 -9
  9. package/container/sticky-bar/sticky-bar.component.js +12 -12
  10. package/core/datetime/temporal-date-adapter.js +12 -6
  11. package/core/datetime.js +12 -13
  12. package/core/styles/core.scss +14 -12
  13. package/core/styles/mixins/chip.scss +6 -6
  14. package/core.css +22 -8
  15. package/custom-elements.json +18264 -17381
  16. package/datepicker/datepicker/datepicker.component.js +1 -1
  17. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  18. package/development/autocomplete/autocomplete-base-element.js +8 -6
  19. package/development/calendar/{calendar.component.d.ts → calendar/calendar.component.d.ts} +23 -3
  20. package/development/calendar/calendar/calendar.component.d.ts.map +1 -0
  21. package/development/calendar/calendar/calendar.component.js +1990 -0
  22. package/development/calendar/calendar-day/calendar-day.component.d.ts +49 -0
  23. package/development/calendar/calendar-day/calendar-day.component.d.ts.map +1 -0
  24. package/development/calendar/calendar-day/calendar-day.component.js +255 -0
  25. package/development/calendar/calendar-day.d.ts +5 -0
  26. package/development/calendar/calendar-day.d.ts.map +1 -0
  27. package/development/calendar/calendar-day.js +5 -0
  28. package/development/calendar/calendar.d.ts +5 -0
  29. package/development/calendar/calendar.d.ts.map +1 -0
  30. package/development/calendar/calendar.js +6 -0
  31. package/development/calendar.d.ts +2 -1
  32. package/development/calendar.d.ts.map +1 -1
  33. package/development/calendar.js +6 -3
  34. package/development/chip-label/chip-label.component.js +6 -15
  35. package/development/container/container/container.component.js +1 -3
  36. package/development/container/sticky-bar/sticky-bar.component.js +9 -14
  37. package/development/core/datetime/native-date-adapter.js +1 -1
  38. package/development/core/datetime/temporal-date-adapter.d.ts +7 -1
  39. package/development/core/datetime/temporal-date-adapter.d.ts.map +1 -1
  40. package/development/core/datetime/temporal-date-adapter.js +14 -7
  41. package/development/core/datetime.js +2 -3
  42. package/development/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
  43. package/development/datepicker/datepicker/datepicker.component.js +2 -1
  44. package/development/dialog/dialog-title/dialog-title.component.js +2 -1
  45. package/development/expansion-panel/expansion-panel/expansion-panel.component.js +6 -5
  46. package/development/form-field/form-field/form-field.component.js +7 -5
  47. package/development/radio-button/radio-button-group/radio-button-group.component.js +2 -2
  48. package/development/tabs/tab/tab.component.js +5 -4
  49. package/development/tabs/tab-group/tab-group.component.d.ts +1 -0
  50. package/development/tabs/tab-group/tab-group.component.d.ts.map +1 -1
  51. package/development/tabs/tab-group/tab-group.component.js +7 -1
  52. package/dialog/dialog-title/dialog-title.component.js +7 -7
  53. package/expansion-panel/expansion-panel/expansion-panel.component.js +9 -9
  54. package/form-field/form-field/form-field.component.js +11 -11
  55. package/index.d.ts +3 -1
  56. package/index.js +3 -1
  57. package/off-brand-theme.css +22 -8
  58. package/package.json +11 -1
  59. package/radio-button/radio-button-group/radio-button-group.component.js +1 -1
  60. package/safety-theme.css +22 -8
  61. package/standard-theme.css +22 -8
  62. package/tabs/tab/tab.component.js +1 -1
  63. package/tabs/tab-group/tab-group.component.js +21 -18
  64. package/development/calendar/calendar.component.d.ts.map +0 -1
  65. package/development/calendar/calendar.component.js +0 -1957
@@ -0,0 +1,98 @@
1
+ import { __esDecorate as d, __runInitializers as h } from "tslib";
2
+ import { css as y, html as f } from "lit";
3
+ import { customElement as g, property as p, state as m } from "lit/decorators.js";
4
+ import { SbbButtonLikeBaseElement as _ } from "../../core/base-elements.js";
5
+ import { readConfig as x } from "../../core/config/config.js";
6
+ import { SbbPropertyWatcherController as S } from "../../core/controllers.js";
7
+ import { defaultDateAdapter as D } from "../../core/datetime/native-date-adapter.js";
8
+ import { SbbDisabledMixin as k } from "../../core/mixins.js";
9
+ import { boxSizingStyles as A } from "../../core/styles.js";
10
+ const w = y`:host{display:block;--sbb-calendar-day-width: 2.75rem;--sbb-calendar-day-height: 3rem;--sbb-calendar-day-cell-background-color: var(--sbb-calendar-cell-background-color);--sbb-calendar-day-selected-border: none;--sbb-calendar-day-transition-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-2x) );--sbb-calendar-day-transition-easing-function: var(--sbb-animation-easing);--sbb-calendar-day-cursor: var(--sbb-cursor-pointer);--sbb-calendar-day-border-radius: var(--sbb-border-radius-4x);--sbb-calendar-day-flex-direction: column;--sbb-calendar-day-justify-content: initial;--sbb-calendar-day-align-items: initial;--sbb-calendar-day-value-height: var(--sbb-spacing-fixed-6x);--sbb-calendar-day-extra-display: block;--sbb-calendar-day-extra-height: var(--sbb-spacing-fixed-4x);--sbb-calendar-day-crossed-out-top: 33%;--sbb-calendar-day-crossed-out-translate: translate(-50%, -33%) rotate(-45deg)}:host(:is(:state(selected),[state--selected])){--sbb-calendar-day-selected-border: var(--sbb-border-width-2x) solid var(--sbb-border-color-2)}:host(:disabled){--sbb-calendar-cell-color: var(--sbb-calendar-cell-disabled-color);--sbb-calendar-day-cursor: unset}:host(:focus-visible){outline:0}:host(:not(:disabled):active){--sbb-calendar-day-cell-background-color: var(--sbb-calendar-cell-background-color-active)}.sbb-calendar-day{--sbb-text-font-size: var(--sbb-text-font-size-s);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-text);letter-spacing:var(--sbb-typo-letter-spacing-text);font-size:var(--sbb-text-font-size);display:flex;flex-direction:var(--sbb-calendar-day-flex-direction);justify-content:var(--sbb-calendar-day-justify-content);align-items:var(--sbb-calendar-day-align-items);height:var(--sbb-calendar-day-height);width:var(--sbb-calendar-day-width);padding:var(--sbb-calendar-cell-padding);padding-block-end:var(--sbb-calendar-day-cell-padding-hover, var(--sbb-calendar-cell-padding));margin:auto;color:var(--sbb-calendar-cell-color);cursor:var(--sbb-calendar-day-cursor);position:relative;z-index:0}.sbb-calendar-day:before{content:"";position:absolute;inset:0;background-color:var(--sbb-calendar-day-cell-background-color);border:var(--sbb-calendar-day-selected-border);border-radius:var(--sbb-calendar-day-border-radius);z-index:-1;transition-duration:var(--sbb-calendar-day-transition-duration);transition-timing-function:var(--sbb-calendar-day-transition-easing-function);transition-property:background-color}:host(:focus-visible) .sbb-calendar-day:before{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width)}@media(forced-colors:active){:host(:not(:disabled):active) .sbb-calendar-day:before{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);--sbb-focus-outline-style: initial}}@media(any-hover:hover){:host(:not(:active,:disabled):hover) .sbb-calendar-day{--sbb-calendar-day-cell-background-color: var(--sbb-calendar-cell-background-color-hover);--sbb-calendar-day-cell-padding-hover: calc( .0625rem + var(--sbb-calendar-cell-padding) )}}@media(any-hover:hover)and (forced-colors:active){:host(:not(:active,:disabled):hover) .sbb-calendar-day:before{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);--sbb-focus-outline-style: initial}}.sbb-calendar-day__value{height:var(--sbb-calendar-day-value-height)}:host(:is(:state(current),[state--current])) .sbb-calendar-day__value{font-weight:700}:host(:is(:state(crossed-out),[state--crossed-out])) .sbb-calendar-day__value:after{content:"";height:var(--sbb-calendar-cell-disabled-height);width:var(--sbb-calendar-cell-disabled-width);position:absolute;background-color:var(--sbb-calendar-cell-disabled-color);inset-block-start:var(--sbb-calendar-day-crossed-out-top);inset-inline-start:50%;transform:var(--sbb-calendar-day-crossed-out-translate)}.sbb-calendar-day__extra{display:var(--sbb-calendar-day-extra-display);height:var(--sbb-calendar-day-extra-height);padding:var(--sbb-calendar-cell-padding)}::slotted(*){height:1rem}`;
11
+ let T = (() => {
12
+ var s;
13
+ let v = [g("sbb-calendar-day")], o, n = [], r, b = k(_), l = [], c, u;
14
+ return s = class extends b {
15
+ set slot(e) {
16
+ super.slot = e, this.value = this.dateAdapter.deserialize(e);
17
+ }
18
+ get slot() {
19
+ return super.slot;
20
+ }
21
+ /** Value of the calendar-day element. */
22
+ set value(e) {
23
+ const a = this.dateAdapter.getValidDateOrNull(this.dateAdapter.deserialize(e));
24
+ if (a) {
25
+ this._value = a;
26
+ const t = this.dateAdapter.sameDate(a, this.dateAdapter.today());
27
+ this.toggleState("current", t), this.internals.ariaCurrent = t ? "date" : null, this.internals.ariaLabel = this.dateAdapter.getAccessibilityFormatDate(a);
28
+ const i = this._getParent();
29
+ i && (this._setDisabledFilteredState(i), this._setSelectedState(i));
30
+ }
31
+ }
32
+ get value() {
33
+ return this._value;
34
+ }
35
+ constructor() {
36
+ super(), this.dateAdapter = (h(this, l), x().datetime?.dateAdapter ?? D), this._value = null, this.addController(new S(this, () => this._getParent(), {
37
+ dateFilter: (e) => this._setDisabledFilteredState(e),
38
+ min: (e) => this._setDisabledFilteredState(e),
39
+ max: (e) => this._setDisabledFilteredState(e),
40
+ selected: (e) => this._setSelectedState(e)
41
+ }));
42
+ }
43
+ /**
44
+ * Intentionally empty, as buttons are not targeted by form reset.
45
+ * @internal
46
+ */
47
+ formResetCallback() {
48
+ }
49
+ /**
50
+ * Intentionally empty, as buttons are not targeted by form restore.
51
+ * @internal
52
+ */
53
+ formStateRestoreCallback(e, a) {
54
+ }
55
+ connectedCallback() {
56
+ super.connectedCallback(), this.tabIndex = -1;
57
+ }
58
+ /**
59
+ * The component is used as the default day cell within the `sbb-calendar`,
60
+ * or, if extra content is needed, it can be slotted.
61
+ */
62
+ _getParent() {
63
+ return this.closest?.("sbb-calendar") ?? this.getRootNode?.()?.host?.closest("sbb-calendar");
64
+ }
65
+ _setSelectedState(e) {
66
+ const a = e.multiple ? e.selected.some((t) => this.dateAdapter.sameDate(this.value, t)) : !!e.selected && this.dateAdapter.compareDate(this.value, e.selected) === 0;
67
+ this.toggleState("selected", a), this.internals.ariaPressed = String(a);
68
+ }
69
+ _setDisabledFilteredState(e) {
70
+ const a = !this._isActiveDate(e.dateFilter), t = !this._isDayInRange(e.min, e.max);
71
+ this.disabled = a || t, this.internals.ariaDisabled = String(this.disabled), this.toggleState("crossed-out", a && !t);
72
+ }
73
+ _isActiveDate(e) {
74
+ return e?.(this.value) ?? !0;
75
+ }
76
+ _isDayInRange(e, a) {
77
+ return !e && !a ? !0 : this.dateAdapter.sameDate(this.value, this.dateAdapter.clampDate(this.value, e, a));
78
+ }
79
+ renderTemplate() {
80
+ return f` <span class="sbb-calendar-day__value" aria-hidden="true">
81
+ ${this.dateAdapter.getDate(this.value)}
82
+ </span>
83
+ <span class="sbb-calendar-day__extra">
84
+ <slot></slot>
85
+ </span>`;
86
+ }
87
+ }, r = s, (() => {
88
+ const e = typeof Symbol == "function" && Symbol.metadata ? Object.create(b[Symbol.metadata] ?? null) : void 0;
89
+ c = [p()], u = [m()], d(s, null, c, { kind: "setter", name: "slot", static: !1, private: !1, access: { has: (a) => "slot" in a, set: (a, t) => {
90
+ a.slot = t;
91
+ } }, metadata: e }, null, l), d(s, null, u, { kind: "setter", name: "value", static: !1, private: !1, access: { has: (a) => "value" in a, set: (a, t) => {
92
+ a.value = t;
93
+ } }, metadata: e }, null, l), d(null, o = { value: r }, v, { kind: "class", name: r.name, metadata: e }, null, n), r = o.value, e && Object.defineProperty(r, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: e });
94
+ })(), s.styles = [A, w], h(r, n), r;
95
+ })();
96
+ export {
97
+ T as SbbCalendarDayElement
98
+ };
@@ -0,0 +1,4 @@
1
+ import { SbbCalendarDayElement as r } from "./calendar-day/calendar-day.component.js";
2
+ export {
3
+ r as SbbCalendarDayElement
4
+ };
@@ -0,0 +1,5 @@
1
+ import { SbbCalendarElement as b, SbbMonthChangeEvent as t } from "./calendar/calendar.component.js";
2
+ export {
3
+ b as SbbCalendarElement,
4
+ t as SbbMonthChangeEvent
5
+ };
package/calendar.js CHANGED
@@ -1,4 +1,7 @@
1
- import { SbbCalendarElement as a } from "./calendar/calendar.component.js";
1
+ import { SbbCalendarElement as a, SbbMonthChangeEvent as b } from "./calendar/calendar/calendar.component.js";
2
+ import { SbbCalendarDayElement as t } from "./calendar/calendar-day/calendar-day.component.js";
2
3
  export {
3
- a as SbbCalendarElement
4
+ t as SbbCalendarDayElement,
5
+ a as SbbCalendarElement,
6
+ b as SbbMonthChangeEvent
4
7
  };
@@ -1,21 +1,21 @@
1
1
  var k = (e) => {
2
2
  throw TypeError(e);
3
3
  };
4
- var y = (e, s, t) => s.has(e) || k("Cannot " + t);
5
- var p = (e, s, t) => (y(e, s, "read from private field"), t ? t.call(e) : s.get(e)), d = (e, s, t) => s.has(e) ? k("Cannot add the same private member more than once") : s instanceof WeakSet ? s.add(e) : s.set(e, t), h = (e, s, t, a) => (y(e, s, "write to private field"), a ? a.call(e, t) : s.set(e, t), t);
4
+ var y = (e, s, l) => s.has(e) || k("Cannot " + l);
5
+ var p = (e, s, l) => (y(e, s, "read from private field"), l ? l.call(e) : s.get(e)), d = (e, s, l) => s.has(e) ? k("Cannot add the same private member more than once") : s instanceof WeakSet ? s.add(e) : s.set(e, l), h = (e, s, l, t) => (y(e, s, "write to private field"), t ? t.call(e, l) : s.set(e, l), l);
6
6
  import { __esDecorate as g, __runInitializers as c } from "tslib";
7
7
  import { css as S, LitElement as E, html as I } from "lit";
8
8
  import { customElement as j, property as w } from "lit/decorators.js";
9
9
  import { boxSizingStyles as D } from "../core/styles.js";
10
- const C = S`:host{display:inline-block;--sbb-chip-label-color: var(--sbb-color-granite);--sbb-chip-label-color: light-dark(var(--sbb-color-granite), var(--sbb-color-cloud));--sbb-chip-label-background-color: var(--sbb-background-color-3);--sbb-chip-label-padding-block: 0em;--sbb-chip-label-padding-inline: var(--sbb-spacing-fixed-2x);--sbb-text-font-size: var(--sbb-text-font-size-xxs)}:host([color=charcoal]){--sbb-chip-label-color: var(--sbb-color-2-inverted);--sbb-chip-label-background-color: var(--sbb-background-color-2-inverted)}:host([color=white]){--sbb-chip-label-color: var(--sbb-color-granite);--sbb-chip-label-color: light-dark(var(--sbb-color-granite), var(--sbb-color-cloud));--sbb-chip-label-background-color: var(--sbb-background-color-1)}:host([color=granite]){--sbb-chip-label-color: var(--sbb-color-2-inverted);--sbb-chip-label-background-color: var(--sbb-color-granite);--sbb-chip-label-background-color: light-dark(var(--sbb-color-granite), var(--sbb-color-storm))}:host([size=xs]){--sbb-chip-label-padding-block: var(--sbb-spacing-fixed-1x);--sbb-chip-label-padding-inline: var(--sbb-spacing-fixed-3x);--sbb-text-font-size: var(--sbb-text-font-size-xs)}:host([size=s]){--sbb-chip-label-padding-block: var(--sbb-spacing-fixed-1x);--sbb-chip-label-padding-inline: var(--sbb-spacing-fixed-4x);--sbb-text-font-size: var(--sbb-text-font-size-s)}.sbb-chip-label{font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-text);letter-spacing:var(--sbb-typo-letter-spacing-text);font-size:var(--sbb-text-font-size);line-height:2;display:inline-flex;align-items:center;justify-content:center;height:calc(var(--sbb-typo-line-height-text) * var(--sbb-text-font-size) + var(--sbb-chip-label-padding-block) * 2);background-color:var(--sbb-chip-label-background-color);padding-inline:var(--sbb-chip-label-padding-inline);border-radius:var(--sbb-border-radius-infinity);color:var(--sbb-chip-label-color);overflow:hidden}@media(forced-colors:active){.sbb-chip-label{outline:var(--sbb-border-width-1x) solid CanvasText;outline-offset:calc(-1 * var(--sbb-border-width-1x))}}.sbb-chip-label{display:flex}.sbb-chip__text-wrapper{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:inline-block}`;
10
+ const C = S`:host{display:inline-block}:host([color=charcoal]){--sbb-chip-label-color: var(--sbb-color-2-inverted);--sbb-chip-label-background-color: var(--sbb-background-color-2-inverted)}:host([color=white]){--sbb-chip-label-color: var(--sbb-color-granite);--sbb-chip-label-color: light-dark(var(--sbb-color-granite), var(--sbb-color-cloud));--sbb-chip-label-background-color: var(--sbb-background-color-1)}:host([color=granite]){--sbb-chip-label-color: var(--sbb-color-2-inverted);--sbb-chip-label-background-color: var(--sbb-color-granite);--sbb-chip-label-background-color: light-dark(var(--sbb-color-granite), var(--sbb-color-storm))}:host([size=xs]){--sbb-chip-label-padding-block: var(--sbb-spacing-fixed-1x);--sbb-chip-label-padding-inline: var(--sbb-spacing-fixed-3x);--sbb-chip-label-font-size: var(--sbb-text-font-size-xs)}:host([size=s]){--sbb-chip-label-padding-block: var(--sbb-spacing-fixed-1x);--sbb-chip-label-padding-inline: var(--sbb-spacing-fixed-4x);--sbb-chip-label-font-size: var(--sbb-text-font-size-s)}.sbb-chip-label{line-height:2;display:inline-flex;align-items:center;justify-content:center;height:calc(var(--sbb-typo-line-height-text) * var(--sbb-chip-label-font-size) + var(--sbb-chip-label-padding-block) * 2);background-color:var(--sbb-chip-label-background-color);padding-inline:var(--sbb-chip-label-padding-inline);border-radius:var(--sbb-border-radius-infinity);color:var(--sbb-chip-label-color);font-size:var(--sbb-chip-label-font-size);letter-spacing:var(--sbb-typo-letter-spacing-text);overflow:hidden}@media(forced-colors:active){.sbb-chip-label{outline:var(--sbb-border-width-1x) solid CanvasText;outline-offset:calc(-1 * var(--sbb-border-width-1x))}}.sbb-chip-label{display:flex}.sbb-chip__text-wrapper{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:inline-block}`;
11
11
  let B = (() => {
12
12
  var o, b, i;
13
- let e = [j("sbb-chip-label")], s, t = [], a, v = E, f, u = [], x = [], m, _ = [], z = [];
13
+ let e = [j("sbb-chip-label")], s, l = [], t, v = E, u, f = [], m = [], x, _ = [], z = [];
14
14
  return i = class extends v {
15
15
  constructor() {
16
16
  super(...arguments);
17
- d(this, o, c(this, u, "xxs"));
18
- d(this, b, (c(this, x), c(this, _, "milk")));
17
+ d(this, o, c(this, f, "xxs"));
18
+ d(this, b, (c(this, m), c(this, _, "milk")));
19
19
  c(this, z);
20
20
  }
21
21
  /** Size of the chip. */
@@ -41,14 +41,14 @@ let B = (() => {
41
41
  </span>
42
42
  `;
43
43
  }
44
- }, o = new WeakMap(), b = new WeakMap(), a = i, (() => {
44
+ }, o = new WeakMap(), b = new WeakMap(), t = i, (() => {
45
45
  const r = typeof Symbol == "function" && Symbol.metadata ? Object.create(v[Symbol.metadata] ?? null) : void 0;
46
- f = [w({ reflect: !0 })], m = [w({ reflect: !0 })], g(i, null, f, { kind: "accessor", name: "size", static: !1, private: !1, access: { has: (l) => "size" in l, get: (l) => l.size, set: (l, n) => {
47
- l.size = n;
48
- } }, metadata: r }, u, x), g(i, null, m, { kind: "accessor", name: "color", static: !1, private: !1, access: { has: (l) => "color" in l, get: (l) => l.color, set: (l, n) => {
49
- l.color = n;
50
- } }, metadata: r }, _, z), g(null, s = { value: a }, e, { kind: "class", name: a.name, metadata: r }, null, t), a = s.value, r && Object.defineProperty(a, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: r });
51
- })(), i.styles = [D, C], c(a, t), a;
46
+ u = [w({ reflect: !0 })], x = [w({ reflect: !0 })], g(i, null, u, { kind: "accessor", name: "size", static: !1, private: !1, access: { has: (a) => "size" in a, get: (a) => a.size, set: (a, n) => {
47
+ a.size = n;
48
+ } }, metadata: r }, f, m), g(i, null, x, { kind: "accessor", name: "color", static: !1, private: !1, access: { has: (a) => "color" in a, get: (a) => a.color, set: (a, n) => {
49
+ a.color = n;
50
+ } }, metadata: r }, _, z), g(null, s = { value: t }, e, { kind: "class", name: t.name, metadata: r }, null, l), t = s.value, r && Object.defineProperty(t, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: r });
51
+ })(), i.styles = [D, C], c(t, l), t;
52
52
  })();
53
53
  export {
54
54
  B as SbbChipLabelElement
@@ -3,20 +3,20 @@ var I = (t) => {
3
3
  };
4
4
  var B = (t, a, s) => a.has(t) || I("Cannot " + s);
5
5
  var p = (t, a, s) => (B(t, a, "read from private field"), s ? s.call(t) : a.get(t)), g = (t, a, s) => a.has(t) ? I("Cannot add the same private member more than once") : a instanceof WeakSet ? a.add(t) : a.set(t, s), u = (t, a, s, r) => (B(t, a, "write to private field"), r ? r.call(t, s) : a.set(t, s), s);
6
- import { __esDecorate as h, __runInitializers as i } from "tslib";
6
+ import { __esDecorate as m, __runInitializers as i } from "tslib";
7
7
  import { css as D, LitElement as T, html as U } from "lit";
8
- import { customElement as j, property as m } from "lit/decorators.js";
8
+ import { customElement as j, property as h } from "lit/decorators.js";
9
9
  import { forceType as C } from "../../core/decorators.js";
10
10
  import { SbbElementInternalsMixin as O, ɵstateController as q } from "../../core/mixins.js";
11
11
  import { boxSizingStyles as F } from "../../core/styles.js";
12
- const L = D`@charset "UTF-8";:host{--sbb-container-background-border-radius: 0;--sbb-container-color: inherit;display:block}:host(:is(:not([color]),[color=white])){--sbb-container-background-color: var(--sbb-background-color-1)}:host([color=milk]){--sbb-container-background-color: var(--sbb-background-color-3)}:host([color=midnight]),:host([color=charcoal]){--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);--sbb-container-color: var(--sbb-color-1-negative)}:host([color=midnight]){--sbb-container-background-color: var(--sbb-background-color-1-negative)}:host([color=charcoal]){--sbb-container-background-color: var(--sbb-background-color-2-negative)}:host(:is(:state(slotted-image),[state--slotted-image])){--sbb-container-background-color: transparent;--sbb-container-padding: var(--sbb-spacing-responsive-xxl)}:host([background-expanded]:not([expanded])){background-color:var(--sbb-container-background-color)}:host(:is(:state(slotted-image),[state--slotted-image])[background-expanded]){position:relative}@media(min-width:90rem){:host(:not([expanded],[background-expanded])){--sbb-container-background-border-radius: var(--sbb-border-radius-4x)}}.sbb-container{color:var(--sbb-container-color);background-color:var(--sbb-container-background-color);padding:var(--sbb-container-padding)}.sbb-container:after,.sbb-container:before{content:" ";display:block;visibility:hidden;height:0;overflow:hidden}:host([color=transparent]) .sbb-container{background-color:transparent}:host(:not([expanded])) .sbb-container{padding-inline:var(--sbb-page-spacing-padding, var(--sbb-layout-base-offset-responsive));margin-inline:auto;width:100%}@media(min-width:90rem){:host(:not([expanded])) .sbb-container{max-width:var(--sbb-spacing-max-width, calc(var(--sbb-layout-base-page-max-width) + 2 * var(--sbb-layout-base-offset-responsive)))}}:host([expanded]) .sbb-container{padding-inline:var(--sbb-page-spacing-padding, var(--sbb-spacing-responsive-xxs))}:host(:is(:state(slotted-image),[state--slotted-image]):not([background-expanded])) .sbb-container{position:relative}:host(:is(:state(slotted-image),[state--slotted-image])) .sbb-container__content{position:relative}::slotted([slot=image]){position:absolute;inset:0;height:100%;width:100%}`;
12
+ const L = D`@charset "UTF-8";:host{display:block}:host(:is(:not([color]),[color=white])){--sbb-container-background-color: var(--sbb-background-color-1)}:host([color=milk]){--sbb-container-background-color: var(--sbb-background-color-3)}:host([color=midnight]),:host([color=charcoal]){--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);--sbb-container-color: var(--sbb-color-1-negative)}:host([color=midnight]){--sbb-container-background-color: var(--sbb-background-color-1-negative)}:host([color=charcoal]){--sbb-container-background-color: var(--sbb-background-color-2-negative)}:host(:is(:state(slotted-image),[state--slotted-image])){--sbb-container-background-color: transparent;--sbb-container-padding: var(--sbb-spacing-responsive-xxl)}:host([background-expanded]:not([expanded])){background-color:var(--sbb-container-background-color)}:host(:is(:state(slotted-image),[state--slotted-image])[background-expanded]){position:relative}@media(min-width:90rem){:host(:not([expanded],[background-expanded])){--sbb-container-background-border-radius: var(--sbb-border-radius-4x)}}.sbb-container{color:var(--sbb-container-color);background-color:var(--sbb-container-background-color);padding:var(--sbb-container-padding)}.sbb-container:after,.sbb-container:before{content:" ";display:block;visibility:hidden;height:0;overflow:hidden}:host([color=transparent]) .sbb-container{background-color:transparent}:host(:not([expanded])) .sbb-container{padding-inline:var(--sbb-page-spacing-padding, var(--sbb-layout-base-offset-responsive));margin-inline:auto;width:100%}@media(min-width:90rem){:host(:not([expanded])) .sbb-container{max-width:var(--sbb-spacing-max-width, calc(var(--sbb-layout-base-page-max-width) + 2 * var(--sbb-layout-base-offset-responsive)))}}:host([expanded]) .sbb-container{padding-inline:var(--sbb-page-spacing-padding, var(--sbb-spacing-responsive-xxs))}:host(:is(:state(slotted-image),[state--slotted-image]):not([background-expanded])) .sbb-container{position:relative}:host(:is(:state(slotted-image),[state--slotted-image])) .sbb-container__content{position:relative}::slotted([slot=image]){position:absolute;inset:0;height:100%;width:100%}`;
13
13
  let Q = (() => {
14
14
  var c, d, l, n;
15
- let t = [j("sbb-container")], a, s = [], r, x = O(T), k, v = [], _ = [], f, y = [], E = [], w, S = [], z = [];
15
+ let t = [j("sbb-container")], a, s = [], r, x = O(T), v, k = [], _ = [], f, y = [], E = [], w, S = [], z = [];
16
16
  return n = class extends x {
17
17
  constructor() {
18
18
  super(...arguments);
19
- g(this, c, i(this, v, !1));
19
+ g(this, c, i(this, k, !1));
20
20
  g(this, d, (i(this, _), i(this, y, !1)));
21
21
  g(this, l, (i(this, E), i(this, S, "white")));
22
22
  i(this, z);
@@ -61,13 +61,13 @@ let Q = (() => {
61
61
  }
62
62
  }, c = new WeakMap(), d = new WeakMap(), l = new WeakMap(), r = n, (() => {
63
63
  const o = typeof Symbol == "function" && Symbol.metadata ? Object.create(x[Symbol.metadata] ?? null) : void 0;
64
- k = [C(), m({ type: Boolean, reflect: !0 })], f = [C(), m({ type: Boolean, reflect: !0, attribute: "background-expanded" })], w = [m({ reflect: !0 })], h(n, null, k, { kind: "accessor", name: "expanded", static: !1, private: !1, access: { has: (e) => "expanded" in e, get: (e) => e.expanded, set: (e, b) => {
64
+ v = [C(), h({ type: Boolean, reflect: !0 })], f = [C(), h({ type: Boolean, reflect: !0, attribute: "background-expanded" })], w = [h({ reflect: !0 })], m(n, null, v, { kind: "accessor", name: "expanded", static: !1, private: !1, access: { has: (e) => "expanded" in e, get: (e) => e.expanded, set: (e, b) => {
65
65
  e.expanded = b;
66
- } }, metadata: o }, v, _), h(n, null, f, { kind: "accessor", name: "backgroundExpanded", static: !1, private: !1, access: { has: (e) => "backgroundExpanded" in e, get: (e) => e.backgroundExpanded, set: (e, b) => {
66
+ } }, metadata: o }, k, _), m(n, null, f, { kind: "accessor", name: "backgroundExpanded", static: !1, private: !1, access: { has: (e) => "backgroundExpanded" in e, get: (e) => e.backgroundExpanded, set: (e, b) => {
67
67
  e.backgroundExpanded = b;
68
- } }, metadata: o }, y, E), h(n, null, w, { kind: "accessor", name: "color", static: !1, private: !1, access: { has: (e) => "color" in e, get: (e) => e.color, set: (e, b) => {
68
+ } }, metadata: o }, y, E), m(n, null, w, { kind: "accessor", name: "color", static: !1, private: !1, access: { has: (e) => "color" in e, get: (e) => e.color, set: (e, b) => {
69
69
  e.color = b;
70
- } }, metadata: o }, S, z), h(null, a = { value: r }, t, { kind: "class", name: r.name, metadata: o }, null, s), r = a.value, o && Object.defineProperty(r, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: o });
70
+ } }, metadata: o }, S, z), m(null, a = { value: r }, t, { kind: "class", name: r.name, metadata: o }, null, s), r = a.value, o && Object.defineProperty(r, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: o });
71
71
  })(), n.styles = [F, L], i(r, s), r;
72
72
  })();
73
73
  export {
@@ -2,7 +2,7 @@ var x = (s) => {
2
2
  throw TypeError(s);
3
3
  };
4
4
  var w = (s, i, e) => i.has(s) || x("Cannot " + e);
5
- var k = (s, i, e) => (w(s, i, "read from private field"), e ? e.call(s) : i.get(s)), u = (s, i, e) => i.has(s) ? x("Cannot add the same private member more than once") : i instanceof WeakSet ? i.add(s) : i.set(s, e), l = (s, i, e, r) => (w(s, i, "write to private field"), r ? r.call(s, e) : i.set(s, e), e);
5
+ var k = (s, i, e) => (w(s, i, "read from private field"), e ? e.call(s) : i.get(s)), u = (s, i, e) => i.has(s) ? x("Cannot add the same private member more than once") : i instanceof WeakSet ? i.add(s) : i.set(s, e), l = (s, i, e, n) => (w(s, i, "write to private field"), n ? n.call(s, e) : i.set(s, e), e);
6
6
  import { __esDecorate as y, __runInitializers as d } from "tslib";
7
7
  import { IntersectionController as E } from "@lit-labs/observers/intersection-controller.js";
8
8
  import { css as C, LitElement as I, html as R } from "lit";
@@ -10,16 +10,16 @@ import { customElement as A, property as z } from "lit/decorators.js";
10
10
  import { isLean as B, isZeroAnimationDuration as D } from "../../core/dom.js";
11
11
  import { SbbUpdateSchedulerMixin as U, SbbElementInternalsMixin as T } from "../../core/mixins.js";
12
12
  import { boxSizingStyles as H } from "../../core/styles.js";
13
- const L = C`:host{--sbb-sticky-bar-position: sticky;--sbb-sticky-bar-padding-block: var(--sbb-spacing-responsive-xs);--sbb-sticky-bar-border-radius: var(--sbb-border-radius-8x);--sbb-sticky-bar-animation-easing: var(--sbb-animation-easing);--sbb-sticky-bar-fade-in-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-5x) );--sbb-sticky-bar-fade-out-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-2x) );--sbb-sticky-bar-slide-vertically-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-4x) );--sbb-sticky-bar-slide-vertically-animation-easing: ease-out;--sbb-sticky-bar-slide-vertically-animation-delay: 0s;--sbb-sticky-bar-slide-vertically-animation-name: unset;--_sbb-sticky-bar-background-animation-duration: var( --sbb-sticky-bar-fade-out-animation-duration );--_sbb-sticky-bar-intersector-background-color: transparent;--_sbb-sticky-bar-forced-colors-border: none;display:contents}:host([size=s]){--sbb-sticky-bar-padding-block: var(--sbb-spacing-responsive-xxxs)}:host(:is(:state(sticking),[state--sticking]):not(:is(:state(state-unsticky),[state--state-unsticky]))){--sbb-sticky-bar-sticky-background-color: var( --sbb-container-background-color, var(--sbb-background-color-1) );--_sbb-sticky-bar-intersector-background-color: var(--sbb-sticky-bar-sticky-background-color);--_sbb-sticky-bar-background-animation-duration: var(--sbb-sticky-bar-fade-in-animation-duration)}@media(forced-colors:active){:host(:is(:state(sticking),[state--sticking]):not(:is(:state(state-unsticky),[state--state-unsticky]))){--_sbb-sticky-bar-forced-colors-border: var(--sbb-border-width-1x) solid CanvasText}}:host(:is(:state(sticking),[state--sticking]):not(:is(:state(state-unsticky),[state--state-unsticky]))[color=white]){--sbb-sticky-bar-sticky-background-color: var(--sbb-background-color-1)}:host(:is(:state(sticking),[state--sticking]):not(:is(:state(state-unsticky),[state--state-unsticky]))[color=milk]){--sbb-sticky-bar-sticky-background-color: var(--sbb-background-color-3)}:host(:is(:state(sticking),[state--sticking]):not(:is(:state(state-unsticky),[state--state-unsticky]))[color=midnight]){--sbb-sticky-bar-sticky-background-color: var(--sbb-background-color-1-negative)}:host(:is(:state(sticking),[state--sticking]):not(:is(:state(state-unsticky),[state--state-unsticky]))[color=charcoal]){--sbb-sticky-bar-sticky-background-color: var(--sbb-background-color-2-negative)}:host(:is(:is(:state(sticking),[state--sticking]):is(:is(:state(slide-vertically),[state--slide-vertically]),:is(:state(state-sticking),[state--state-sticking]),:is(:state(state-unsticking),[state--state-unsticking])),:is(:state(state-unsticky),[state--state-unsticky]))){--_sbb-sticky-bar-background-animation-duration: 0s}:host(:is(:state(sticking),[state--sticking]):is(:is(:state(slide-vertically),[state--slide-vertically]):not(:is(:state(state-unsticky),[state--state-unsticky]),:is(:state(state-unsticking),[state--state-unsticking])),:is(:state(state-sticking),[state--state-sticking]))){--sbb-sticky-bar-slide-vertically-animation-name: slide-in}:host(:is(:state(sticking),[state--sticking]):is(:state(state-unsticking),[state--state-unsticking])){--sbb-sticky-bar-slide-vertically-animation-name: slide-out}:host(:is(:not(:is(:state(initialized),[state--initialized])),:is(:state(state-unsticky),[state--state-unsticky]))){--sbb-sticky-bar-position: relative}.sbb-sticky-bar__wrapper{position:var(--sbb-sticky-bar-position);inset-block-end:0;display:block;z-index:var(--sbb-sticky-bar-z-index);animation-name:var(--sbb-sticky-bar-slide-vertically-animation-name);animation-duration:var(--sbb-sticky-bar-slide-vertically-animation-duration);animation-timing-function:var(--sbb-sticky-bar-slide-vertically-animation-easing);animation-delay:var(--sbb-sticky-bar-slide-vertically-animation-delay);animation-fill-mode:backwards}.sbb-sticky-bar__wrapper:after,.sbb-sticky-bar__wrapper:before{content:"";inset:0;position:absolute;display:block;z-index:-1}.sbb-sticky-bar__wrapper:before{background-color:var(--sbb-container-background-color);padding:0!important}:host(:not(:is(:state(expanded),[state--expanded]))) .sbb-sticky-bar__wrapper:before{padding-inline:var(--sbb-page-spacing-padding, var(--sbb-layout-base-offset-responsive));margin-inline:auto;width:100%}@media(min-width:90rem){:host(:not(:is(:state(expanded),[state--expanded]))) .sbb-sticky-bar__wrapper:before{max-width:var(--sbb-spacing-max-width, calc(var(--sbb-layout-base-page-max-width) + 2 * var(--sbb-layout-base-offset-responsive)))}}.sbb-sticky-bar__wrapper:after{background-color:var(--sbb-sticky-bar-sticky-background-color, transparent);border-start-start-radius:var(--sbb-sticky-bar-border-radius);border-start-end-radius:var(--sbb-sticky-bar-border-radius);transition:background-color var(--_sbb-sticky-bar-background-animation-duration) var(--sbb-sticky-bar-animation-easing);border:var(--_sbb-sticky-bar-forced-colors-border)}.sbb-sticky-bar{display:flex;padding-block:var(--sbb-sticky-bar-padding-block);margin-block-end:-1px}.sbb-sticky-bar:before{content:"";position:absolute;inset:0;z-index:-1;border-start-start-radius:var(--sbb-sticky-bar-border-radius);border-start-end-radius:var(--sbb-sticky-bar-border-radius);transition:box-shadow var(--_sbb-sticky-bar-background-animation-duration) var(--sbb-sticky-bar-animation-easing);clip-path:polygon(-100% calc(-1 * var(--sbb-shadow-elevation-level-11-shadow-1-blur)),150% calc(-1 * var(--sbb-shadow-elevation-level-11-shadow-1-blur)),150% 100%,-100% 100%)}:host(:is(:state(sticking),[state--sticking]):not(:is(:state(state-unsticky),[state--state-unsticky]))) .sbb-sticky-bar:before{box-shadow:var(--sbb-box-shadow-level-11-soft)}:host(:not(:is(:state(expanded),[state--expanded]))) .sbb-sticky-bar{padding-inline:var(--sbb-page-spacing-padding, var(--sbb-layout-base-offset-responsive));margin-inline:auto;width:100%}@media(min-width:90rem){:host(:not(:is(:state(expanded),[state--expanded]))) .sbb-sticky-bar{max-width:var(--sbb-spacing-max-width, calc(var(--sbb-layout-base-page-max-width) + 2 * var(--sbb-layout-base-offset-responsive)))}}:host(:is(:state(expanded),[state--expanded])) .sbb-sticky-bar{padding-inline:var(--sbb-page-spacing-padding, var(--sbb-spacing-responsive-xxs))}.sbb-sticky-bar__intersector{height:1px}.sbb-sticky-bar__intersector:after{content:"";display:block;position:absolute;width:100%;height:calc(var(--sbb-sticky-bar-bottom-overlapping-height, 0) + 1px);background-color:var(--_sbb-sticky-bar-intersector-background-color);pointer-events:none;transition:background-color var(--_sbb-sticky-bar-background-animation-duration) var(--sbb-sticky-bar-animation-easing)}@keyframes slide-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slide-out{0%{transform:translateY(0)}to{transform:translateY(100%)}}`;
13
+ const L = C`:host{--sbb-sticky-bar-fade-in-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-5x) );--sbb-sticky-bar-fade-out-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-2x) );--sbb-sticky-bar-slide-vertically-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-4x) );--_sbb-sticky-bar-background-animation-duration: var( --sbb-sticky-bar-fade-out-animation-duration );display:contents}:host([size=s]){--sbb-sticky-bar-padding-block: var(--sbb-spacing-responsive-xxxs)}:host([size=m]){--sbb-sticky-bar-padding-block: var(--sbb-spacing-responsive-xs)}:host(:is(:state(sticking),[state--sticking]):not(:is(:state(state-unsticky),[state--state-unsticky]))){--sbb-sticky-bar-sticky-background-color: var( --sbb-container-background-color, var(--sbb-background-color-1) );--_sbb-sticky-bar-intersector-background-color: var(--sbb-sticky-bar-sticky-background-color);--_sbb-sticky-bar-background-animation-duration: var(--sbb-sticky-bar-fade-in-animation-duration)}@media(forced-colors:active){:host(:is(:state(sticking),[state--sticking]):not(:is(:state(state-unsticky),[state--state-unsticky]))){--_sbb-sticky-bar-forced-colors-border: var(--sbb-border-width-1x) solid CanvasText}}:host(:is(:state(sticking),[state--sticking]):not(:is(:state(state-unsticky),[state--state-unsticky]))[color=white]){--sbb-sticky-bar-sticky-background-color: var(--sbb-background-color-1)}:host(:is(:state(sticking),[state--sticking]):not(:is(:state(state-unsticky),[state--state-unsticky]))[color=milk]){--sbb-sticky-bar-sticky-background-color: var(--sbb-background-color-3)}:host(:is(:state(sticking),[state--sticking]):not(:is(:state(state-unsticky),[state--state-unsticky]))[color=midnight]){--sbb-sticky-bar-sticky-background-color: var(--sbb-background-color-1-negative)}:host(:is(:state(sticking),[state--sticking]):not(:is(:state(state-unsticky),[state--state-unsticky]))[color=charcoal]){--sbb-sticky-bar-sticky-background-color: var(--sbb-background-color-2-negative)}:host(:is(:is(:state(sticking),[state--sticking]):is(:is(:state(slide-vertically),[state--slide-vertically]),:is(:state(state-sticking),[state--state-sticking]),:is(:state(state-unsticking),[state--state-unsticking])),:is(:state(state-unsticky),[state--state-unsticky]))){--_sbb-sticky-bar-background-animation-duration: 0s}:host(:is(:state(sticking),[state--sticking]):is(:is(:state(slide-vertically),[state--slide-vertically]):not(:is(:state(state-unsticky),[state--state-unsticky]),:is(:state(state-unsticking),[state--state-unsticking])),:is(:state(state-sticking),[state--state-sticking]))){--sbb-sticky-bar-slide-vertically-animation-name: slide-in}:host(:is(:state(sticking),[state--sticking]):is(:state(state-unsticking),[state--state-unsticking])){--sbb-sticky-bar-slide-vertically-animation-name: slide-out}:host(:is(:not(:is(:state(initialized),[state--initialized])),:is(:state(state-unsticky),[state--state-unsticky]))){--sbb-sticky-bar-position: relative}.sbb-sticky-bar__wrapper{position:var(--sbb-sticky-bar-position);inset-block-end:0;display:block;z-index:var(--sbb-sticky-bar-z-index);animation-name:var(--sbb-sticky-bar-slide-vertically-animation-name, unset);animation-duration:var(--sbb-sticky-bar-slide-vertically-animation-duration);animation-timing-function:var(--sbb-sticky-bar-slide-vertically-animation-easing);animation-delay:0s;animation-fill-mode:backwards}.sbb-sticky-bar__wrapper:after,.sbb-sticky-bar__wrapper:before{content:"";inset:0;position:absolute;display:block;z-index:-1}.sbb-sticky-bar__wrapper:before{background-color:var(--sbb-container-background-color);padding:0!important}:host(:not(:is(:state(expanded),[state--expanded]))) .sbb-sticky-bar__wrapper:before{padding-inline:var(--sbb-page-spacing-padding, var(--sbb-layout-base-offset-responsive));margin-inline:auto;width:100%}@media(min-width:90rem){:host(:not(:is(:state(expanded),[state--expanded]))) .sbb-sticky-bar__wrapper:before{max-width:var(--sbb-spacing-max-width, calc(var(--sbb-layout-base-page-max-width) + 2 * var(--sbb-layout-base-offset-responsive)))}}.sbb-sticky-bar__wrapper:after{background-color:var(--sbb-sticky-bar-sticky-background-color, transparent);border-start-start-radius:var(--sbb-sticky-bar-border-radius);border-start-end-radius:var(--sbb-sticky-bar-border-radius);transition:background-color var(--_sbb-sticky-bar-background-animation-duration) var(--sbb-sticky-bar-animation-easing);border:var(--_sbb-sticky-bar-forced-colors-border, none)}.sbb-sticky-bar{display:flex;padding-block:var(--sbb-sticky-bar-padding-block);margin-block-end:-1px}.sbb-sticky-bar:before{content:"";position:absolute;inset:0;z-index:-1;border-start-start-radius:var(--sbb-sticky-bar-border-radius);border-start-end-radius:var(--sbb-sticky-bar-border-radius);transition:box-shadow var(--_sbb-sticky-bar-background-animation-duration) var(--sbb-sticky-bar-animation-easing);clip-path:polygon(-100% calc(-1 * var(--sbb-shadow-elevation-level-11-shadow-1-blur)),150% calc(-1 * var(--sbb-shadow-elevation-level-11-shadow-1-blur)),150% 100%,-100% 100%)}:host(:is(:state(sticking),[state--sticking]):not(:is(:state(state-unsticky),[state--state-unsticky]))) .sbb-sticky-bar:before{box-shadow:var(--sbb-box-shadow-level-11-soft)}:host(:not(:is(:state(expanded),[state--expanded]))) .sbb-sticky-bar{padding-inline:var(--sbb-page-spacing-padding, var(--sbb-layout-base-offset-responsive));margin-inline:auto;width:100%}@media(min-width:90rem){:host(:not(:is(:state(expanded),[state--expanded]))) .sbb-sticky-bar{max-width:var(--sbb-spacing-max-width, calc(var(--sbb-layout-base-page-max-width) + 2 * var(--sbb-layout-base-offset-responsive)))}}:host(:is(:state(expanded),[state--expanded])) .sbb-sticky-bar{padding-inline:var(--sbb-page-spacing-padding, var(--sbb-spacing-responsive-xxs))}.sbb-sticky-bar__intersector{height:1px}.sbb-sticky-bar__intersector:after{content:"";display:block;position:absolute;width:100%;height:calc(var(--sbb-sticky-bar-bottom-overlapping-height, 0) + 1px);background-color:var(--_sbb-sticky-bar-intersector-background-color, transparent);pointer-events:none;transition:background-color var(--_sbb-sticky-bar-background-animation-duration) var(--sbb-sticky-bar-animation-easing)}@keyframes slide-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slide-out{0%{transform:translateY(0)}to{transform:translateY(100%)}}`;
14
14
  let F = (() => {
15
- var o, c, n;
16
- let s = [A("sbb-sticky-bar")], i, e = [], r, h = U(T(I)), g, v = [], m = [], p, _ = [], f = [];
17
- return n = class extends h {
15
+ var o, c, r;
16
+ let s = [A("sbb-sticky-bar")], i, e = [], n, h = U(T(I)), g, p = [], v = [], m, _ = [], f = [];
17
+ return r = class extends h {
18
18
  constructor() {
19
19
  super();
20
20
  u(this, o);
21
21
  u(this, c);
22
- l(this, o, d(this, v, null)), l(this, c, (d(this, m), d(this, _, B() ? "s" : "m"))), this._stateInternal = d(this, f), this._observer = new E(this, {
22
+ l(this, o, d(this, p, null)), l(this, c, (d(this, v), d(this, _, B() ? "s" : "m"))), this._stateInternal = d(this, f), this._observer = new E(this, {
23
23
  // Although `this` is observed, we have to postpone observing
24
24
  // into firstUpdated() to achieve a correct initial state.
25
25
  target: null,
@@ -102,19 +102,19 @@ let F = (() => {
102
102
  <div class="sbb-sticky-bar__intersector"></div>
103
103
  `;
104
104
  }
105
- }, o = new WeakMap(), c = new WeakMap(), r = n, (() => {
105
+ }, o = new WeakMap(), c = new WeakMap(), n = r, (() => {
106
106
  const t = typeof Symbol == "function" && Symbol.metadata ? Object.create(h[Symbol.metadata] ?? null) : void 0;
107
- g = [z({ reflect: !0 })], p = [z({ reflect: !0 })], y(n, null, g, { kind: "accessor", name: "color", static: !1, private: !1, access: { has: (a) => "color" in a, get: (a) => a.color, set: (a, b) => {
107
+ g = [z({ reflect: !0 })], m = [z({ reflect: !0 })], y(r, null, g, { kind: "accessor", name: "color", static: !1, private: !1, access: { has: (a) => "color" in a, get: (a) => a.color, set: (a, b) => {
108
108
  a.color = b;
109
- } }, metadata: t }, v, m), y(n, null, p, { kind: "accessor", name: "size", static: !1, private: !1, access: { has: (a) => "size" in a, get: (a) => a.size, set: (a, b) => {
109
+ } }, metadata: t }, p, v), y(r, null, m, { kind: "accessor", name: "size", static: !1, private: !1, access: { has: (a) => "size" in a, get: (a) => a.size, set: (a, b) => {
110
110
  a.size = b;
111
- } }, metadata: t }, _, f), y(null, i = { value: r }, s, { kind: "class", name: r.name, metadata: t }, null, e), r = i.value, t && Object.defineProperty(r, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: t });
112
- })(), n.styles = [H, L], n.events = {
111
+ } }, metadata: t }, _, f), y(null, i = { value: n }, s, { kind: "class", name: n.name, metadata: t }, null, e), n = i.value, t && Object.defineProperty(n, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: t });
112
+ })(), r.styles = [H, L], r.events = {
113
113
  beforestick: "beforestick",
114
114
  stick: "stick",
115
115
  beforeunstick: "beforeunstick",
116
116
  unstick: "unstick"
117
- }, d(r, e), r;
117
+ }, d(n, e), n;
118
118
  })();
119
119
  export {
120
120
  F as SbbStickyBarElement
@@ -1,9 +1,17 @@
1
1
  import { SbbLanguageController as a } from "../controllers.js";
2
2
  import { DateAdapter as o } from "./date-adapter.js";
3
3
  const i = /^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|(?:(?:\+|-)\d{2}:\d{2}))?)?$/;
4
- if (typeof Temporal != "object")
5
- throw new Error("Temporal is not available in the current environment. Please make sure to include the temporal polyfill.");
6
- class l extends o {
4
+ class d extends o {
5
+ /**
6
+ * @param cutoffYearOffset The threshold on whether a two-digit year
7
+ * should be treated as belonging to 2000 or 1900. e.g. with 15 (default)
8
+ * the current year plus 15 will be treated as belonging to 2000, and the rest to 1900.
9
+ * So e.g. with the current year 2025, 40 will be treated as 2040, while 41 will be treated as 1941.
10
+ */
11
+ constructor(e) {
12
+ if (super(e), typeof Temporal != "object")
13
+ throw new Error("Temporal is not available in the current environment. Please make sure to include the temporal polyfill.");
14
+ }
7
15
  /** Gets the year of the input date. */
8
16
  getYear(e) {
9
17
  return e.year;
@@ -132,8 +140,6 @@ class l extends o {
132
140
  return Array.from({ length: e }).map((t, n) => r(n));
133
141
  }
134
142
  }
135
- const u = new l();
136
143
  export {
137
- l as TemporalDateAdapter,
138
- u as temporalDateAdapter
144
+ d as TemporalDateAdapter
139
145
  };
package/core/datetime.js CHANGED
@@ -1,17 +1,16 @@
1
- import { DAYS_PER_ROW as a, DateAdapter as A, FORMAT_DATE as r, ISO8601_FORMAT_DATE as _, MONTHS_PER_PAGE as R, MONTHS_PER_ROW as E, YEARS_PER_PAGE as p, YEARS_PER_ROW as o } from "./datetime/date-adapter.js";
2
- import { NativeDateAdapter as O, defaultDateAdapter as P } from "./datetime/native-date-adapter.js";
3
- import { TemporalDateAdapter as d, temporalDateAdapter as S } from "./datetime/temporal-date-adapter.js";
1
+ import { DAYS_PER_ROW as A, DateAdapter as _, FORMAT_DATE as R, ISO8601_FORMAT_DATE as a, MONTHS_PER_PAGE as r, MONTHS_PER_ROW as E, YEARS_PER_PAGE as p, YEARS_PER_ROW as O } from "./datetime/date-adapter.js";
2
+ import { NativeDateAdapter as D, defaultDateAdapter as P } from "./datetime/native-date-adapter.js";
3
+ import { TemporalDateAdapter as S } from "./datetime/temporal-date-adapter.js";
4
4
  export {
5
- a as DAYS_PER_ROW,
6
- A as DateAdapter,
7
- r as FORMAT_DATE,
8
- _ as ISO8601_FORMAT_DATE,
9
- R as MONTHS_PER_PAGE,
5
+ A as DAYS_PER_ROW,
6
+ _ as DateAdapter,
7
+ R as FORMAT_DATE,
8
+ a as ISO8601_FORMAT_DATE,
9
+ r as MONTHS_PER_PAGE,
10
10
  E as MONTHS_PER_ROW,
11
- O as NativeDateAdapter,
12
- d as TemporalDateAdapter,
11
+ D as NativeDateAdapter,
12
+ S as TemporalDateAdapter,
13
13
  p as YEARS_PER_PAGE,
14
- o as YEARS_PER_ROW,
15
- P as defaultDateAdapter,
16
- S as temporalDateAdapter
14
+ O as YEARS_PER_ROW,
15
+ P as defaultDateAdapter
17
16
  };
@@ -32,6 +32,9 @@ $theme: 'standard' !default;
32
32
  @use '../../card/card/card.global' as card with (
33
33
  $theme: $theme
34
34
  );
35
+ @use '../../chip-label/chip-label.global' as chip-label with (
36
+ $theme: $theme
37
+ );
35
38
  @use '../../chip/chip/chip.global' as chip with (
36
39
  $theme: $theme
37
40
  );
@@ -59,6 +62,12 @@ $theme: 'standard' !default;
59
62
  @use '../../clock/clock.global' as clock with (
60
63
  $theme: $theme
61
64
  );
65
+ @use '../../container/container/container.global' as container with (
66
+ $theme: $theme
67
+ );
68
+ @use '../../container/sticky-bar/sticky-bar.global' as sticky-bar with (
69
+ $theme: $theme
70
+ );
62
71
  @use '../../divider/divider.global' as divider with (
63
72
  $theme: $theme
64
73
  );
@@ -114,12 +123,15 @@ $theme: 'standard' !default;
114
123
  @include card.base;
115
124
  @include card-badge.base;
116
125
  @include carousel.base;
126
+ @include chip-label.base;
117
127
  @include chip.base;
118
128
  @include chip-group.base;
119
129
  @include panel-common.base;
120
130
  @include checkbox.base;
121
131
  @include checkbox-group.base;
122
132
  @include checkbox-common.base;
133
+ @include container.base;
134
+ @include sticky-bar.base;
123
135
  @include clock.base;
124
136
  @include divider.base;
125
137
  @include expansion-panel.base;
@@ -241,6 +253,7 @@ $theme: 'standard' !default;
241
253
  @include font-face.font-declarations;
242
254
 
243
255
  // Components global styles
256
+ @include container.rules;
244
257
  @include tab-nav-bar.rules;
245
258
 
246
259
  // TODO: discuss where to add these classes
@@ -350,6 +363,7 @@ html {
350
363
  white-space: break-spaces;
351
364
  overflow-y: auto;
352
365
  min-height: calc((var(--sbb-typo-line-height-text) * 1em));
366
+ height: 100%;
353
367
  }
354
368
 
355
369
  &[size='l'] :where(textarea) {
@@ -460,18 +474,6 @@ img {
460
474
  object-position: var(--sbb-image-object-position);
461
475
  }
462
476
 
463
- // TODO: Move back to the sbb-container components when the global CSS refactoring happens
464
- sbb-container {
465
- > [slot='image']:is(sbb-image, img),
466
- > [slot='image'] :is(sbb-image, img):not(.sbb-figure-overlap-image) {
467
- --sbb-image-object-fit: cover;
468
-
469
- border-radius: var(--sbb-container-background-border-radius);
470
- height: 100%;
471
- position: absolute;
472
- }
473
- }
474
-
475
477
  // TODO: Move back to the sbb-flip-card-summary components when the global CSS refactoring happens
476
478
  sbb-flip-card-summary {
477
479
  > [slot='image']:is(sbb-image, img),
@@ -25,37 +25,37 @@
25
25
  @mixin chip-label-variables--size-xxs {
26
26
  --sbb-chip-label-padding-block: 0em;
27
27
  --sbb-chip-label-padding-inline: var(--sbb-spacing-fixed-2x);
28
- --sbb-text-font-size: var(--sbb-text-font-size-xxs);
28
+ --sbb-chip-label-font-size: var(--sbb-text-font-size-xxs);
29
29
  }
30
30
 
31
31
  @mixin chip-label-variables--size-xs {
32
32
  --sbb-chip-label-padding-block: var(--sbb-spacing-fixed-1x);
33
33
  --sbb-chip-label-padding-inline: var(--sbb-spacing-fixed-3x);
34
- --sbb-text-font-size: var(--sbb-text-font-size-xs);
34
+ --sbb-chip-label-font-size: var(--sbb-text-font-size-xs);
35
35
  }
36
36
 
37
37
  @mixin chip-label-variables--size-s {
38
38
  --sbb-chip-label-padding-block: var(--sbb-spacing-fixed-1x);
39
39
  --sbb-chip-label-padding-inline: var(--sbb-spacing-fixed-4x);
40
- --sbb-text-font-size: var(--sbb-text-font-size-s);
40
+ --sbb-chip-label-font-size: var(--sbb-text-font-size-s);
41
41
  }
42
42
 
43
43
  @mixin chip-label-rules {
44
- @include typo.text;
45
-
46
44
  // We need an even value to make it work smoothly in Safari
47
45
  line-height: 2;
48
46
  display: inline-flex;
49
47
  align-items: center;
50
48
  justify-content: center;
51
49
  height: calc(
52
- var(--sbb-typo-line-height-text) * var(--sbb-text-font-size) +
50
+ var(--sbb-typo-line-height-text) * var(--sbb-chip-label-font-size) +
53
51
  var(--sbb-chip-label-padding-block) * 2
54
52
  );
55
53
  background-color: var(--sbb-chip-label-background-color);
56
54
  padding-inline: var(--sbb-chip-label-padding-inline);
57
55
  border-radius: var(--sbb-border-radius-infinity);
58
56
  color: var(--sbb-chip-label-color);
57
+ font-size: var(--sbb-chip-label-font-size);
58
+ letter-spacing: var(--sbb-typo-letter-spacing-text);
59
59
 
60
60
  // Overflow hidden needed because line-height can be taller than height which can cause weird layout shifting
61
61
  overflow: hidden;
package/core.css CHANGED
@@ -1341,6 +1341,12 @@
1341
1341
  --sbb-carousel-border-radius: var(--sbb-border-radius-4x);
1342
1342
  --sbb-carousel-box-shadow: var(--sbb-box-shadow-level-9-hard);
1343
1343
  --sbb-carousel-paginator-padding: var(--sbb-spacing-responsive-xs);
1344
+ --sbb-chip-label-color: var(--sbb-color-granite);
1345
+ --sbb-chip-label-color: light-dark(var(--sbb-color-granite), var(--sbb-color-cloud));
1346
+ --sbb-chip-label-background-color: var(--sbb-background-color-3);
1347
+ --sbb-chip-label-padding-block: 0em;
1348
+ --sbb-chip-label-padding-inline: var(--sbb-spacing-fixed-2x);
1349
+ --sbb-chip-label-font-size: var(--sbb-text-font-size-xxs);
1344
1350
  --sbb-chip-background-color: var(--sbb-background-color-3);
1345
1351
  --sbb-chip-background-color-active: var(--sbb-background-color-1);
1346
1352
  --sbb-chip-background-color-hover: var(--sbb-background-color-1);
@@ -1396,6 +1402,13 @@
1396
1402
  --sbb-checkbox-font-size: var(--sbb-text-font-size-m);
1397
1403
  --sbb-checkbox-label-color: var(--sbb-color-color-3);
1398
1404
  --sbb-checkbox-cursor: var(--sbb-cursor-pointer);
1405
+ --sbb-container-background-border-radius: 0;
1406
+ --sbb-container-color: inherit;
1407
+ --sbb-sticky-bar-animation-easing: var(--sbb-animation-easing);
1408
+ --sbb-sticky-bar-border-radius: var(--sbb-border-radius-8x);
1409
+ --sbb-sticky-bar-padding-block: var(--sbb-spacing-responsive-xs);
1410
+ --sbb-sticky-bar-position: sticky;
1411
+ --sbb-sticky-bar-slide-vertically-animation-easing: ease-out;
1399
1412
  --sbb-clock-seconds-hand-color: var(--sbb-color-brand);
1400
1413
  --sbb-clock-face-color: var(--sbb-color-1);
1401
1414
  --sbb-clock-background-color: var(--sbb-background-color-1);
@@ -1658,6 +1671,14 @@
1658
1671
  font-display: swap;
1659
1672
  font-weight: 300;
1660
1673
  }
1674
+ sbb-container > [slot=image]:is(sbb-image, img),
1675
+ sbb-container > [slot=image] :is(sbb-image, img):not(.sbb-figure-overlap-image) {
1676
+ --sbb-image-object-fit: cover;
1677
+ border-radius: var(--sbb-container-background-border-radius);
1678
+ height: 100%;
1679
+ position: absolute;
1680
+ }
1681
+
1661
1682
  sbb-tab-nav-bar .sbb-tab-amount {
1662
1683
  margin: 0;
1663
1684
  color: var(--sbb-tab-label-amount-color);
@@ -1803,6 +1824,7 @@ html {
1803
1824
  white-space: break-spaces;
1804
1825
  overflow-y: auto;
1805
1826
  min-height: calc(var(--sbb-typo-line-height-text) * 1em);
1827
+ height: 100%;
1806
1828
  }
1807
1829
  :is(sbb-form-field, sbb-timetable-form-field)[size=l] :where(textarea) {
1808
1830
  padding-block-end: 0.34375rem;
@@ -1941,14 +1963,6 @@ img {
1941
1963
  object-position: var(--sbb-image-object-position);
1942
1964
  }
1943
1965
 
1944
- sbb-container > [slot=image]:is(sbb-image, img),
1945
- sbb-container > [slot=image] :is(sbb-image, img):not(.sbb-figure-overlap-image) {
1946
- --sbb-image-object-fit: cover;
1947
- border-radius: var(--sbb-container-background-border-radius);
1948
- height: 100%;
1949
- position: absolute;
1950
- }
1951
-
1952
1966
  sbb-flip-card-summary > [slot=image]:is(sbb-image, img),
1953
1967
  sbb-flip-card-summary > [slot=image] :is(sbb-image, img):not(.sbb-figure-overlap-image) {
1954
1968
  --sbb-image-aspect-ratio: auto;