@sbb-esta/lyne-elements 0.52.1 → 0.52.2

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 (71) hide show
  1. package/accordion.js +54 -54
  2. package/action-group.js +3 -3
  3. package/alert/alert-group.js +22 -22
  4. package/alert/alert.js +22 -22
  5. package/autocomplete.js +126 -126
  6. package/breadcrumb/breadcrumb-group.js +60 -60
  7. package/breadcrumb/breadcrumb.js +17 -17
  8. package/calendar.js +423 -423
  9. package/card/card-badge.js +17 -17
  10. package/card/card.js +2 -2
  11. package/card/common.js +30 -30
  12. package/checkbox/checkbox-group.js +17 -17
  13. package/checkbox/checkbox.js +34 -34
  14. package/clock.js +83 -83
  15. package/container/sticky-bar.js +16 -16
  16. package/core/a11y.js +91 -91
  17. package/core/base-elements.js +86 -86
  18. package/core/controllers.js +40 -40
  19. package/core/datetime.js +32 -32
  20. package/core/dom.js +26 -26
  21. package/core/eventing.js +33 -33
  22. package/core/mixins.js +122 -122
  23. package/core/testing.js +29 -29
  24. package/datepicker/common.js +55 -55
  25. package/datepicker/datepicker-toggle.js +94 -94
  26. package/datepicker/datepicker.js +144 -144
  27. package/dialog/dialog-title.js +20 -20
  28. package/dialog/dialog.js +66 -66
  29. package/expansion-panel/expansion-panel-header.js +20 -20
  30. package/expansion-panel/expansion-panel.js +60 -60
  31. package/file-selector.js +91 -91
  32. package/form-field/form-field-clear.js +12 -12
  33. package/form-field/form-field.js +111 -111
  34. package/header/header.js +53 -53
  35. package/icon.js +107 -107
  36. package/image.js +87 -87
  37. package/journey-header.js +29 -29
  38. package/map-container.js +23 -23
  39. package/menu/menu.js +91 -91
  40. package/navigation/common.js +16 -16
  41. package/navigation/navigation-marker.js +34 -34
  42. package/navigation/navigation-section.js +83 -83
  43. package/navigation/navigation.js +87 -87
  44. package/notification.js +52 -52
  45. package/option/optgroup.js +45 -45
  46. package/option/option.js +108 -108
  47. package/overlay.js +5 -5
  48. package/package.json +1 -1
  49. package/popover/popover.js +110 -110
  50. package/radio-button/radio-button-group.js +93 -93
  51. package/radio-button/radio-button.js +84 -84
  52. package/select.js +178 -178
  53. package/selection-panel.js +44 -44
  54. package/slider.js +58 -58
  55. package/status.js +6 -6
  56. package/stepper/step-label.js +19 -19
  57. package/stepper/step.js +31 -31
  58. package/stepper/stepper.js +46 -46
  59. package/tabs/tab-group.js +67 -67
  60. package/tag/tag-group.js +8 -8
  61. package/tag/tag.js +27 -27
  62. package/teaser-paid.js +12 -12
  63. package/time-input.js +73 -73
  64. package/timetable-occupancy-icon.js +26 -26
  65. package/timetable-occupancy.js +9 -9
  66. package/toast.js +38 -38
  67. package/toggle/toggle-option.js +33 -33
  68. package/toggle/toggle.js +46 -46
  69. package/train/train-formation.js +36 -36
  70. package/train/train-wagon.js +30 -30
  71. package/train/train.js +13 -13
package/dialog/dialog.js CHANGED
@@ -1,118 +1,118 @@
1
1
  import { property as h, customElement as c } from "lit/decorators.js";
2
2
  import { html as g } from "lit/static-html.js";
3
- import { setModalityOnNextFocus as n, getFirstFocusableElement as p } from "../core/a11y.js";
3
+ import { setModalityOnNextFocus as r, getFirstFocusableElement as m } from "../core/a11y.js";
4
4
  import { isBreakpoint as v } from "../core/dom.js";
5
- import { AgnosticResizeObserver as m } from "../core/observers.js";
6
- import { applyInertMechanism as f, removeInertMechanism as u } from "../core/overlay.js";
7
- import { SbbOverlayBaseElement as w, overlayRefs as b } from "../overlay.js";
8
- import { css as x } from "lit";
5
+ import { AgnosticResizeObserver as p } from "../core/observers.js";
6
+ import { applyInertMechanism as u, removeInertMechanism as f } from "../core/overlay.js";
7
+ import { SbbOverlayBaseElement as _, overlayRefs as d } from "../overlay.js";
8
+ import { css as w } from "lit";
9
9
  import "../screen-reader-only.js";
10
- const y = x`*,:before,:after{box-sizing:border-box}:host{--sbb-scrollbar-thumb-width: .125rem;--sbb-scrollbar-thumb-width-hover: .25rem;--sbb-scrollbar-width-firefox: thin;--sbb-scrollbar-color: var(--sbb-color-black-alpha-30);--sbb-scrollbar-color-hover: var(--sbb-color-black-alpha-60);--sbb-scrollbar-track-color: transparent;--sbb-dialog-padding-inline: var(--sbb-spacing-fixed-5x);--sbb-dialog-color: var(--sbb-color-black);--sbb-dialog-background-color: var(--sbb-color-white);--sbb-dialog-width: 100%;--sbb-dialog-height: 100%;--sbb-dialog-max-width: 100%;--sbb-dialog-max-width-default: 55.75rem;--sbb-dialog-max-height: 100%;--sbb-dialog-inset: 0 auto auto 0;--sbb-dialog-border-radius: var(--sbb-border-radius-8x);--sbb-dialog-padding-block: var(--sbb-spacing-responsive-s);--sbb-dialog-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-6x) );--sbb-dialog-animation-easing: ease;--sbb-dialog-pointer-events: none;--sbb-dialog-backdrop-visibility: hidden;--sbb-dialog-backdrop-pointer-events: none;--sbb-dialog-backdrop-color: transparent;--sbb-dialog-content-transition: transform var(--sbb-dialog-animation-duration) var(--sbb-dialog-animation-easing);--sbb-dialog-actions-border: var(--sbb-border-width-1x) solid var(--sbb-color-cloud);display:block;position:fixed;inset:var(--sbb-dialog-inset);z-index:var(--sbb-dialog-z-index, var(--sbb-overlay-default-z-index))}@media (min-width: 22.5rem){:host{--sbb-dialog-padding-inline: var(--sbb-spacing-fixed-6x)}}@media (min-width: 37.5rem){:host{--sbb-dialog-padding-inline: var(--sbb-spacing-fixed-12x)}}@media (min-width: 52.5rem){:host{--sbb-dialog-padding-inline: var(--sbb-spacing-responsive-s);--sbb-dialog-max-width: min( calc(100vw - var(--sbb-spacing-fixed-30x) * 2), var(--sbb-dialog-max-width-default) );--sbb-dialog-max-height: calc(100vh - var(--sbb-spacing-fixed-16x))}}:host(:is([data-state=opened],[data-state=opening])){--sbb-dialog-pointer-events: all}@media (min-width: 52.5rem){:host(:is([data-state=opened],[data-state=opening])){--sbb-dialog-backdrop-visibility: visible;--sbb-dialog-backdrop-pointer-events: all;--sbb-dialog-backdrop-color: var(--sbb-color-milk)}}:host([data-hide-header]){--sbb-dialog-header-margin-block-start: calc(var(--sbb-dialog-header-height) * -1)}:host([negative]){--sbb-scrollbar-color: var(--sbb-color-white-alpha-30);--sbb-scrollbar-color-hover: var(--sbb-color-white-alpha-60);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);--sbb-dialog-color: var(--sbb-color-white);--sbb-dialog-background-color: var(--sbb-color-midnight);--sbb-dialog-actions-border: none}:host([data-overflows]:not([negative])){--sbb-dialog-actions-border: none}:host(:not([data-state=closed])){--sbb-dialog-inset: 0}.sbb-dialog__container{pointer-events:var(--sbb-dialog-pointer-events);display:flex;align-items:center;position:fixed;inset:var(--sbb-dialog-inset)}.sbb-dialog__container:before{content:"";visibility:var(--sbb-dialog-backdrop-visibility);pointer-events:var(--sbb-dialog-backdrop-pointer-events);position:fixed;inset:var(--sbb-dialog-inset);background-color:var(--sbb-dialog-backdrop-color);transition-duration:var(--sbb-dialog-animation-duration);transition-timing-function:var(--sbb-dialog-animation-easing);transition-property:background-color,visibility}.sbb-dialog{display:none;position:absolute;inset-inline:0;margin:auto;padding:0;border:none;width:var(--sbb-dialog-width);height:var(--sbb-dialog-height);max-width:var(--sbb-dialog-max-width);max-height:var(--sbb-dialog-max-height);overflow:auto;color:var(--sbb-dialog-color);background-color:var(--sbb-dialog-background-color)}:host([data-state]:not([data-state=closed])) .sbb-dialog{display:block;animation-name:open;animation-duration:var(--sbb-dialog-animation-duration);animation-timing-function:ease}:host([data-state][data-state=closing]) .sbb-dialog{pointer-events:none;animation-name:close}@media (forced-colors: active){.sbb-dialog{outline:var(--sbb-border-width-1x) solid CanvasText}}@media (min-width: 52.5rem){.sbb-dialog{border-radius:var(--sbb-dialog-border-radius);overflow:hidden;height:fit-content}}.sbb-dialog__wrapper{display:flex;flex-direction:column;width:var(--sbb-dialog-width);height:var(--sbb-dialog-height);max-width:var(--sbb-dialog-max-width);max-height:var(--sbb-dialog-max-height);outline:none;position:fixed;word-break:break-word}@media (min-width: 52.5rem){.sbb-dialog__wrapper{position:sticky;inset-block-start:0;height:auto}}@keyframes open{0%{opacity:0;transform:translateY(var(--sbb-spacing-fixed-4x))}to{opacity:1;transform:translateY(0)}}@keyframes close{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(var(--sbb-spacing-fixed-4x))}}`;
11
- var k = Object.defineProperty, O = Object.getOwnPropertyDescriptor, d = (i, t, s, e) => {
12
- for (var a = e > 1 ? void 0 : e ? O(t, s) : t, r = i.length - 1, l; r >= 0; r--)
13
- (l = i[r]) && (a = (e ? l(t, s, a) : l(a)) || a);
14
- return e && a && k(t, s, a), a;
10
+ const y = w`*,:before,:after{box-sizing:border-box}:host{--sbb-scrollbar-thumb-width: .125rem;--sbb-scrollbar-thumb-width-hover: .25rem;--sbb-scrollbar-width-firefox: thin;--sbb-scrollbar-color: var(--sbb-color-black-alpha-30);--sbb-scrollbar-color-hover: var(--sbb-color-black-alpha-60);--sbb-scrollbar-track-color: transparent;--sbb-dialog-padding-inline: var(--sbb-spacing-fixed-5x);--sbb-dialog-color: var(--sbb-color-black);--sbb-dialog-background-color: var(--sbb-color-white);--sbb-dialog-width: 100%;--sbb-dialog-height: 100%;--sbb-dialog-max-width: 100%;--sbb-dialog-max-width-default: 55.75rem;--sbb-dialog-max-height: 100%;--sbb-dialog-inset: 0 auto auto 0;--sbb-dialog-border-radius: var(--sbb-border-radius-8x);--sbb-dialog-padding-block: var(--sbb-spacing-responsive-s);--sbb-dialog-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-6x) );--sbb-dialog-animation-easing: ease;--sbb-dialog-pointer-events: none;--sbb-dialog-backdrop-visibility: hidden;--sbb-dialog-backdrop-pointer-events: none;--sbb-dialog-backdrop-color: transparent;--sbb-dialog-content-transition: transform var(--sbb-dialog-animation-duration) var(--sbb-dialog-animation-easing);--sbb-dialog-actions-border: var(--sbb-border-width-1x) solid var(--sbb-color-cloud);display:block;position:fixed;inset:var(--sbb-dialog-inset);z-index:var(--sbb-dialog-z-index, var(--sbb-overlay-default-z-index))}@media (min-width: 22.5rem){:host{--sbb-dialog-padding-inline: var(--sbb-spacing-fixed-6x)}}@media (min-width: 37.5rem){:host{--sbb-dialog-padding-inline: var(--sbb-spacing-fixed-12x)}}@media (min-width: 52.5rem){:host{--sbb-dialog-padding-inline: var(--sbb-spacing-responsive-s);--sbb-dialog-max-width: min( calc(100vw - var(--sbb-spacing-fixed-30x) * 2), var(--sbb-dialog-max-width-default) );--sbb-dialog-max-height: calc(100vh - var(--sbb-spacing-fixed-16x))}}:host(:is([data-state=opened],[data-state=opening])){--sbb-dialog-pointer-events: all}@media (min-width: 52.5rem){:host(:is([data-state=opened],[data-state=opening])){--sbb-dialog-backdrop-visibility: visible;--sbb-dialog-backdrop-pointer-events: all;--sbb-dialog-backdrop-color: var(--sbb-color-milk)}}:host([data-hide-header]){--sbb-dialog-header-margin-block-start: calc(var(--sbb-dialog-header-height) * -1)}:host([negative]){--sbb-scrollbar-color: var(--sbb-color-white-alpha-30);--sbb-scrollbar-color-hover: var(--sbb-color-white-alpha-60);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);--sbb-dialog-color: var(--sbb-color-white);--sbb-dialog-background-color: var(--sbb-color-midnight);--sbb-dialog-actions-border: none}:host([data-overflows]:not([negative])){--sbb-dialog-actions-border: none}:host(:not([data-state=closed])){--sbb-dialog-inset: 0}.sbb-dialog__container{pointer-events:var(--sbb-dialog-pointer-events);display:flex;align-items:center;position:fixed;inset:var(--sbb-dialog-inset)}.sbb-dialog__container:before{content:"";visibility:var(--sbb-dialog-backdrop-visibility);pointer-events:var(--sbb-dialog-backdrop-pointer-events);position:fixed;inset:var(--sbb-dialog-inset);background-color:var(--sbb-dialog-backdrop-color);transition-duration:var(--sbb-dialog-animation-duration);transition-timing-function:var(--sbb-dialog-animation-easing);transition-property:background-color,visibility}.sbb-dialog{display:none;position:absolute;inset-inline:0;margin:auto;padding:0;border:none;width:var(--sbb-dialog-width);height:var(--sbb-dialog-height);max-width:var(--sbb-dialog-max-width);max-height:var(--sbb-dialog-max-height);overflow:auto;color:var(--sbb-dialog-color);background-color:var(--sbb-dialog-background-color)}:host([data-state]:not([data-state=closed])) .sbb-dialog{display:block;animation-name:open;animation-duration:var(--sbb-dialog-animation-duration);animation-timing-function:ease}:host([data-state][data-state=closing]) .sbb-dialog{pointer-events:none;animation-name:close}@media (forced-colors: active){.sbb-dialog{outline:var(--sbb-border-width-1x) solid CanvasText}}@media (min-width: 52.5rem){.sbb-dialog{border-radius:var(--sbb-dialog-border-radius);overflow:hidden;height:fit-content}}.sbb-dialog__wrapper{display:flex;flex-direction:column;width:var(--sbb-dialog-width);height:var(--sbb-dialog-height);max-width:var(--sbb-dialog-max-width);max-height:var(--sbb-dialog-max-height);outline:none;position:fixed;word-break:break-word}@media (min-width: 52.5rem){.sbb-dialog__wrapper{position:sticky;inset-block-start:0;height:auto}}@keyframes open{0%{opacity:0;transform:translateY(var(--sbb-spacing-fixed-4x))}to{opacity:1;transform:translateY(0)}}@keyframes close{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(var(--sbb-spacing-fixed-4x))}}`;
11
+ var E = Object.defineProperty, x = Object.getOwnPropertyDescriptor, b = (t, e, a, i) => {
12
+ for (var o = i > 1 ? void 0 : i ? x(e, a) : e, l = t.length - 1, n; l >= 0; l--)
13
+ (n = t[l]) && (o = (i ? n(e, a, o) : n(o)) || o);
14
+ return i && o && E(e, a, o), o;
15
15
  };
16
- let E = 0, o = class extends w {
16
+ let k = 0, s = class extends _ {
17
17
  constructor() {
18
- super(...arguments), this.backdropAction = "close", this.f = new m(
19
- () => setTimeout(() => this.l())
20
- ), this.b = null, this.a = null, this.c = null, this.j = !1, this.d = !1, this.k = 0, this.h = `sbb-dialog-${E++}`, this.closeAttribute = "sbb-dialog-close", this.m = (i) => {
21
- this.backdropAction === "close" && (this.j = i.composedPath().filter((t) => t instanceof window.HTMLElement).some((t) => t.id === this.h));
22
- }, this.n = (i) => {
23
- this.backdropAction === "close" && !this.j && !i.composedPath().filter((t) => t instanceof window.HTMLElement).some((t) => t.id === this.h) && this.close();
18
+ super(...arguments), this.backdropAction = "close", this._dialogContentResizeObserver = new p(
19
+ () => setTimeout(() => this._onContentResize())
20
+ ), this._dialogTitleElement = null, this._dialogContentElement = null, this._dialogActionsElement = null, this._isPointerDownEventOnDialog = !1, this._overflows = !1, this._lastScroll = 0, this._dialogId = `sbb-dialog-${k++}`, this.closeAttribute = "sbb-dialog-close", this._pointerDownListener = (t) => {
21
+ this.backdropAction === "close" && (this._isPointerDownEventOnDialog = t.composedPath().filter((e) => e instanceof window.HTMLElement).some((e) => e.id === this._dialogId));
22
+ }, this._closeOnBackdropClick = (t) => {
23
+ this.backdropAction === "close" && !this._isPointerDownEventOnDialog && !t.composedPath().filter((e) => e instanceof window.HTMLElement).some((e) => e.id === this._dialogId) && this.close();
24
24
  };
25
25
  }
26
26
  /** Opens the component. */
27
27
  open() {
28
- var i;
29
- this.state === "closed" && (this.lastFocusedElement = document.activeElement, this.b = this.querySelector("sbb-dialog-title"), this.a = (i = this.querySelector("sbb-dialog-content")) == null ? void 0 : i.shadowRoot.firstElementChild, this.c = this.querySelector("sbb-dialog-actions"), this.i(), this.willOpen.emit() && (this.state = "opening", b.push(this), this.f.observe(this.a), this.scrollHandler.disableScroll()));
28
+ var t;
29
+ this.state === "closed" && (this.lastFocusedElement = document.activeElement, this._dialogTitleElement = this.querySelector("sbb-dialog-title"), this._dialogContentElement = (t = this.querySelector("sbb-dialog-content")) == null ? void 0 : t.shadowRoot.firstElementChild, this._dialogActionsElement = this.querySelector("sbb-dialog-actions"), this._syncNegative(), this.willOpen.emit() && (this.state = "opening", d.push(this), this._dialogContentResizeObserver.observe(this._dialogContentElement), this.scrollHandler.disableScroll()));
30
30
  }
31
31
  connectedCallback() {
32
- super.connectedCallback(), this.addEventListener("pointerdown", this.m, {
32
+ super.connectedCallback(), this.addEventListener("pointerdown", this._pointerDownListener, {
33
33
  signal: this.overlayController.signal
34
- }), this.addEventListener("pointerup", this.n, {
34
+ }), this.addEventListener("pointerup", this._closeOnBackdropClick, {
35
35
  signal: this.overlayController.signal
36
36
  });
37
37
  }
38
- firstUpdated(i) {
39
- this.b = this.querySelector("sbb-dialog-title"), this.i(), super.firstUpdated(i);
38
+ firstUpdated(t) {
39
+ this._dialogTitleElement = this.querySelector("sbb-dialog-title"), this._syncNegative(), super.firstUpdated(t);
40
40
  }
41
- willUpdate(i) {
42
- super.willUpdate(i), i.has("negative") && this.i();
41
+ willUpdate(t) {
42
+ super.willUpdate(t), t.has("negative") && this._syncNegative();
43
43
  }
44
44
  disconnectedCallback() {
45
- super.disconnectedCallback(), this.f.disconnect();
45
+ super.disconnectedCallback(), this._dialogContentResizeObserver.disconnect();
46
46
  }
47
47
  attachOpenOverlayEvents() {
48
- var i;
49
- super.attachOpenOverlayEvents(), (i = this.a) == null || i.addEventListener("scroll", () => this.o(), {
48
+ var t;
49
+ super.attachOpenOverlayEvents(), (t = this._dialogContentElement) == null || t.addEventListener("scroll", () => this._onContentScroll(), {
50
50
  passive: !0,
51
51
  signal: this.openOverlayController.signal
52
- }), window.addEventListener("resize", () => this.e(!1), {
52
+ }), window.addEventListener("resize", () => this._setHideHeaderDataAttribute(!1), {
53
53
  signal: this.openOverlayController.signal
54
54
  });
55
55
  }
56
56
  // Wait for dialog transition to complete.
57
57
  // In rare cases, it can be that the animationEnd event is triggered twice.
58
58
  // To avoid entering a corrupt state, exit when state is not expected.
59
- onOverlayAnimationEnd(i) {
60
- var t, s, e;
61
- i.animationName === "open" && this.state === "opening" ? (this.state = "opened", this.didOpen.emit(), f(this), this.attachOpenOverlayEvents(), this.setOverlayFocus(), setTimeout(
59
+ onOverlayAnimationEnd(t) {
60
+ var e, a, i;
61
+ t.animationName === "open" && this.state === "opening" ? (this.state = "opened", this.didOpen.emit(), u(this), this.attachOpenOverlayEvents(), this.setOverlayFocus(), setTimeout(
62
62
  () => {
63
- var a;
63
+ var o;
64
64
  return this.setAriaLiveRefContent(
65
- this.accessibilityLabel || ((a = this.b) == null ? void 0 : a.innerText.trim())
65
+ this.accessibilityLabel || ((o = this._dialogTitleElement) == null ? void 0 : o.innerText.trim())
66
66
  );
67
67
  }
68
- ), this.focusHandler.trap(this)) : i.animationName === "close" && this.state === "closing" && (this.e(!1), (t = this.a) == null || t.scrollTo(0, 0), this.state = "closed", u(), n(this.lastFocusedElement), (s = this.lastFocusedElement) == null || s.focus(), (e = this.openOverlayController) == null || e.abort(), this.focusHandler.disconnect(), this.f.disconnect(), this.removeInstanceFromGlobalCollection(), !b.length && this.scrollHandler.enableScroll(), this.didClose.emit({
68
+ ), this.focusHandler.trap(this)) : t.animationName === "close" && this.state === "closing" && (this._setHideHeaderDataAttribute(!1), (e = this._dialogContentElement) == null || e.scrollTo(0, 0), this.state = "closed", f(), r(this.lastFocusedElement), (a = this.lastFocusedElement) == null || a.focus(), (i = this.openOverlayController) == null || i.abort(), this.focusHandler.disconnect(), this._dialogContentResizeObserver.disconnect(), this.removeInstanceFromGlobalCollection(), !d.length && this.scrollHandler.enableScroll(), this.didClose.emit({
69
69
  returnValue: this.returnValue,
70
70
  closeTarget: this.overlayCloseElement
71
71
  }));
72
72
  }
73
73
  // Set focus on the first focusable element.
74
74
  setOverlayFocus() {
75
- const i = p(
76
- Array.from(this.children).filter((t) => t instanceof window.HTMLElement)
75
+ const t = m(
76
+ Array.from(this.children).filter((e) => e instanceof window.HTMLElement)
77
77
  );
78
- n(i), i == null || i.focus();
78
+ r(t), t == null || t.focus();
79
79
  }
80
- i() {
81
- this.b && (this.b.negative = this.negative), this.c && this.c.toggleAttribute("data-negative", this.negative);
80
+ _syncNegative() {
81
+ this._dialogTitleElement && (this._dialogTitleElement.negative = this.negative), this._dialogActionsElement && this._dialogActionsElement.toggleAttribute("data-negative", this.negative);
82
82
  }
83
- o() {
84
- if (!this.a || this.dataset.hideHeader === void 0 && this.a.clientHeight + this.g >= this.a.scrollHeight)
83
+ _onContentScroll() {
84
+ if (!this._dialogContentElement || this.dataset.hideHeader === void 0 && this._dialogContentElement.clientHeight + this._dialogTitleHeight >= this._dialogContentElement.scrollHeight)
85
85
  return;
86
- const t = this.a.scrollTop;
87
- Math.round(t + this.a.clientHeight) >= this.a.scrollHeight || (t > 0 && this.k < t ? this.e(!0) : this.e(!1), this.k = t <= 0 ? 0 : t);
86
+ const e = this._dialogContentElement.scrollTop;
87
+ Math.round(e + this._dialogContentElement.clientHeight) >= this._dialogContentElement.scrollHeight || (e > 0 && this._lastScroll < e ? this._setHideHeaderDataAttribute(!0) : this._setHideHeaderDataAttribute(!1), this._lastScroll = e <= 0 ? 0 : e);
88
88
  }
89
- p() {
90
- var i;
91
- this.g = (i = this.b) == null ? void 0 : i.shadowRoot.firstElementChild.clientHeight, this.style.setProperty("--sbb-dialog-header-height", `${this.g}px`);
89
+ _setDialogHeaderHeight() {
90
+ var t;
91
+ this._dialogTitleHeight = (t = this._dialogTitleElement) == null ? void 0 : t.shadowRoot.firstElementChild.clientHeight, this.style.setProperty("--sbb-dialog-header-height", `${this._dialogTitleHeight}px`);
92
92
  }
93
- l() {
94
- var i, t;
95
- this.p(), this.d = this.a ? ((i = this.a) == null ? void 0 : i.scrollHeight) > ((t = this.a) == null ? void 0 : t.clientHeight) : !1, this.q();
93
+ _onContentResize() {
94
+ var t, e;
95
+ this._setDialogHeaderHeight(), this._overflows = this._dialogContentElement ? ((t = this._dialogContentElement) == null ? void 0 : t.scrollHeight) > ((e = this._dialogContentElement) == null ? void 0 : e.clientHeight) : !1, this._setOverflowsDataAttribute();
96
96
  }
97
- e(i) {
98
- var e;
99
- const t = ((e = this.b) == null ? void 0 : e.hideOnScroll) ?? !1, s = typeof t == "boolean" ? t : v("zero", t, { includeMaxBreakpoint: !0 });
100
- this.toggleAttribute("data-hide-header", s ? i : !1), this.b && this.b.toggleAttribute("data-hide-header", s ? i : !1);
97
+ _setHideHeaderDataAttribute(t) {
98
+ var i;
99
+ const e = ((i = this._dialogTitleElement) == null ? void 0 : i.hideOnScroll) ?? !1, a = typeof e == "boolean" ? e : v("zero", e, { includeMaxBreakpoint: !0 });
100
+ this.toggleAttribute("data-hide-header", a ? t : !1), this._dialogTitleElement && this._dialogTitleElement.toggleAttribute("data-hide-header", a ? t : !1);
101
101
  }
102
- q() {
103
- var i, t;
104
- this.toggleAttribute("data-overflows", this.d), (i = this.b) == null || i.toggleAttribute("data-overflows", this.d), (t = this.c) == null || t.toggleAttribute("data-overflows", this.d);
102
+ _setOverflowsDataAttribute() {
103
+ var t, e;
104
+ this.toggleAttribute("data-overflows", this._overflows), (t = this._dialogTitleElement) == null || t.toggleAttribute("data-overflows", this._overflows), (e = this._dialogActionsElement) == null || e.toggleAttribute("data-overflows", this._overflows);
105
105
  }
106
106
  render() {
107
107
  return g`
108
108
  <div class="sbb-dialog__container">
109
109
  <div
110
- @animationend=${(i) => this.onOverlayAnimationEnd(i)}
110
+ @animationend=${(t) => this.onOverlayAnimationEnd(t)}
111
111
  class="sbb-dialog"
112
- id=${this.h}
112
+ id=${this._dialogId}
113
113
  >
114
114
  <div
115
- @click=${(i) => this.closeOnSbbOverlayCloseClick(i)}
115
+ @click=${(t) => this.closeOnSbbOverlayCloseClick(t)}
116
116
  class="sbb-dialog__wrapper"
117
117
  >
118
118
  <slot></slot>
@@ -123,13 +123,13 @@ let E = 0, o = class extends w {
123
123
  `;
124
124
  }
125
125
  };
126
- o.styles = y;
127
- d([
126
+ s.styles = y;
127
+ b([
128
128
  h({ attribute: "backdrop-action" })
129
- ], o.prototype, "backdropAction", 2);
130
- o = d([
129
+ ], s.prototype, "backdropAction", 2);
130
+ s = b([
131
131
  c("sbb-dialog")
132
- ], o);
132
+ ], s);
133
133
  export {
134
- o as SbbDialogElement
134
+ s as SbbDialogElement
135
135
  };
@@ -3,36 +3,36 @@ import { customElement as d } from "lit/decorators.js";
3
3
  import { SbbButtonBaseElement as c } from "../core/base-elements.js";
4
4
  import { SbbConnectedAbortController as h, SbbSlotStateController as x } from "../core/controllers.js";
5
5
  import { hostAttributes as g } from "../core/decorators.js";
6
- import { EventEmitter as f } from "../core/eventing.js";
7
- import { SbbDisabledTabIndexActionMixin as v } from "../core/mixins.js";
8
- import { SbbIconNameMixin as m } from "../icon.js";
6
+ import { EventEmitter as v } from "../core/eventing.js";
7
+ import { SbbDisabledTabIndexActionMixin as m } from "../core/mixins.js";
8
+ import { SbbIconNameMixin as f } from "../icon.js";
9
9
  const u = l`*,:before,:after{box-sizing:border-box}:host{--sbb-expansion-panel-header-cursor: pointer;--sbb-expansion-panel-header-text-color: var(--sbb-color-charcoal);--sbb-expansion-panel-header-gap: var(--sbb-spacing-fixed-6x);--sbb-expansion-panel-header-padding-block: var(--sbb-spacing-responsive-xs);--sbb-expansion-panel-header-padding-inline: var(--sbb-spacing-fixed-6x);display:block}@media (forced-colors: active){:host{--sbb-expansion-panel-header-text-color: ButtonText}}:host([data-size=s]){--sbb-expansion-panel-header-gap: var(--sbb-spacing-fixed-2x);--sbb-expansion-panel-header-padding-block: var(--sbb-spacing-fixed-3x);--sbb-expansion-panel-header-padding-inline: var(--sbb-spacing-fixed-5x)}:host([disabled]){--sbb-expansion-panel-header-cursor: default;--sbb-expansion-panel-header-text-color: var(--sbb-color-granite)}@media (forced-colors: active){:host([disabled]){--sbb-expansion-panel-header-text-color: GrayText}}:host(:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch])){outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);outline-offset:var(--sbb-spacing-fixed-1x);border-radius:var(--sbb-expansion-panel-border-radius)}.sbb-expansion-panel-header{--sbb-text-font-size: var(--sbb-font-size-text-l);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size);display:flex;justify-content:space-between;align-items:center;gap:var(--sbb-expansion-panel-header-gap);width:100%;padding:var(--sbb-expansion-panel-header-padding-block) var(--sbb-expansion-panel-header-padding-inline);text-align:start;cursor:var(--sbb-expansion-panel-header-cursor);color:var(--sbb-expansion-panel-header-text-color);-webkit-tap-highlight-color:transparent}.sbb-expansion-panel-header__title,.sbb-expansion-panel-header__toggle,.sbb-expansion-panel-header__icon{display:flex}.sbb-expansion-panel-header__icon{width:var(--sbb-expansion-panel-icon-size);--sbb-icon-svg-width: var(--sbb-expansion-panel-icon-size);--sbb-icon-svg-height: var(--sbb-expansion-panel-icon-size)}:host(:not([data-slot-names~=icon],[icon-name])) .sbb-expansion-panel-header__icon{display:none}.sbb-expansion-panel-header__title{align-items:center;gap:var(--sbb-expansion-panel-title-gap);overflow:hidden}.sbb-expansion-panel-header__toggle-icon{transition:transform var(--sbb-disable-animation-zero-time, var(--sbb-animation-duration-4x))}:host([aria-expanded]:not([aria-expanded=false])) .sbb-expansion-panel-header__toggle-icon{transform:rotate(-180deg)}`;
10
- var _ = Object.defineProperty, w = Object.getOwnPropertyDescriptor, y = (e, n, t, o) => {
11
- for (var a = o > 1 ? void 0 : o ? w(n, t) : n, i = e.length - 1, r; i >= 0; i--)
12
- (r = e[i]) && (a = (o ? r(n, t, a) : r(a)) || a);
13
- return o && a && _(n, t, a), a;
10
+ var _ = Object.defineProperty, E = Object.getOwnPropertyDescriptor, w = (e, n, o, t) => {
11
+ for (var a = t > 1 ? void 0 : t ? E(n, o) : n, i = e.length - 1, r; i >= 0; i--)
12
+ (r = e[i]) && (a = (t ? r(n, o, a) : r(a)) || a);
13
+ return t && a && _(n, o, a), a;
14
14
  };
15
- let s = class extends v(
16
- m(c)
15
+ let s = class extends m(
16
+ f(c)
17
17
  ) {
18
18
  constructor() {
19
- super(...arguments), this.c = new f(
19
+ super(...arguments), this._toggleExpanded = new v(
20
20
  this,
21
21
  s.events.toggleExpanded,
22
22
  {
23
23
  bubbles: !0
24
24
  }
25
- ), this.d = new h(this), this.e = new x(this, () => this.a());
25
+ ), this._abort = new h(this), this._namedSlots = new x(this, () => this._setDataIconAttribute());
26
26
  }
27
27
  connectedCallback() {
28
28
  super.connectedCallback();
29
- const e = this.d.signal;
30
- this.addEventListener("click", () => this.f(), { signal: e }), this.addEventListener("mouseenter", () => this.b(!0), { signal: e }), this.addEventListener("mouseleave", () => this.b(!1), { signal: e });
29
+ const e = this._abort.signal;
30
+ this.addEventListener("click", () => this._emitExpandedEvent(), { signal: e }), this.addEventListener("mouseenter", () => this._onMouseMovement(!0), { signal: e }), this.addEventListener("mouseleave", () => this._onMouseMovement(!1), { signal: e });
31
31
  }
32
- f() {
33
- this.disabled || this.c.emit();
32
+ _emitExpandedEvent() {
33
+ this.disabled || this._toggleExpanded.emit();
34
34
  }
35
- b(e) {
35
+ _onMouseMovement(e) {
36
36
  const n = this.closest("sbb-expansion-panel");
37
37
  (!e || n && window.matchMedia("(any-hover: hover)").matches) && n.toggleAttribute("data-toggle-hover", e);
38
38
  }
@@ -41,11 +41,11 @@ let s = class extends v(
41
41
  * It needs to be set before the @slotchange event bubbles to the 'expansion-panel'
42
42
  * but after the 'NamedSlotStateController' has run.
43
43
  */
44
- a() {
45
- this.toggleAttribute("data-icon", !!(this.iconName || this.e.slots.has("icon")));
44
+ _setDataIconAttribute() {
45
+ this.toggleAttribute("data-icon", !!(this.iconName || this._namedSlots.slots.has("icon")));
46
46
  }
47
47
  renderTemplate() {
48
- return this.a(), b`
48
+ return this._setDataIconAttribute(), b`
49
49
  <span class="sbb-expansion-panel-header__title">
50
50
  <span class="sbb-expansion-panel-header__icon"> ${this.renderIconSlot()} </span>
51
51
  <slot></slot>
@@ -64,7 +64,7 @@ s.styles = u;
64
64
  s.events = {
65
65
  toggleExpanded: "toggleExpanded"
66
66
  };
67
- s = y([
67
+ s = w([
68
68
  d("sbb-expansion-panel-header"),
69
69
  g({
70
70
  slot: "header"
@@ -1,116 +1,116 @@
1
1
  import { css as c, LitElement as h } from "lit";
2
2
  import { property as r, customElement as x } from "lit/decorators.js";
3
- import { html as u, unsafeStatic as p } from "lit/static-html.js";
4
- import { SbbConnectedAbortController as m } from "../core/controllers.js";
5
- import { EventEmitter as b } from "../core/eventing.js";
6
- import { SbbHydrationMixin as v } from "../core/mixins.js";
7
- const g = c`*,:before,:after{box-sizing:border-box}:host{--sbb-expansion-panel-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-4x) );--sbb-expansion-panel-background-color: var(--sbb-color-white);--sbb-expansion-panel-content-visibility: hidden;--sbb-expansion-panel-border-width: var(--sbb-border-width-1x);--sbb-expansion-panel-border-color: var(--sbb-color-cloud);--sbb-expansion-panel-border-block-start-width: var(--sbb-expansion-panel-border-width);--sbb-expansion-panel-border-block-start-color: var(--sbb-color-cloud);--sbb-expansion-panel-border-radius: var(--sbb-border-radius-4x);--sbb-expansion-panel-start-end-radius: var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-start-start-radius: var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-end-end-radius: var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-end-start-radius: var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-title-gap: var(--sbb-spacing-fixed-4x);--sbb-expansion-panel-icon-size: var(--sbb-size-icon-ui-medium);display:block}:host([size=s]){--sbb-expansion-panel-title-gap: var(--sbb-spacing-fixed-2x)}@media (forced-colors: active){:host([disabled]){--sbb-expansion-panel-border-color: GrayText;--sbb-expansion-panel-border-block-start-color: GrayText}}:host([expanded]){--sbb-expansion-panel-content-visibility: visible}:host([data-accordion][data-accordion-first]){--sbb-expansion-panel-start-end-radius: var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-start-start-radius: var(--sbb-expansion-panel-border-radius)}:host([data-accordion]:not([data-accordion-first])){--sbb-expansion-panel-border-block-start-width: 0;--sbb-expansion-panel-border-block-start-color: transparent;--sbb-expansion-panel-start-end-radius: 0;--sbb-expansion-panel-start-start-radius: 0}:host([data-accordion][data-accordion-last]){--sbb-expansion-panel-end-end-radius: var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-end-start-radius: var(--sbb-expansion-panel-border-radius)}:host([data-accordion]:not([data-accordion-last])){--sbb-expansion-panel-end-end-radius: 0;--sbb-expansion-panel-end-start-radius: 0}:host([color=milk]){--sbb-expansion-panel-background-color: var(--sbb-color-milk)}:host([borderless]){--sbb-expansion-panel-border-width: 0;--sbb-expansion-panel-border-color: transparent;--sbb-expansion-panel-border-block-start-width: 0;--sbb-expansion-panel-border-block-start-color: transparent}@media (forced-colors: active){:host([borderless]){--sbb-expansion-panel-border-width: var(--sbb-border-width-1x);--sbb-expansion-panel-border-block-start-width: var(--sbb-expansion-panel-border-width)}}:host([borderless][data-accordion]:not([data-accordion-first])){--sbb-expansion-panel-border-block-start-width: var(--sbb-spacing-fixed-1x)}@media (forced-colors: active){:host([borderless][data-accordion]:not([data-accordion-first])){--sbb-expansion-panel-border-block-start-width: 0}}:host(:not([disabled])[data-toggle-hover]){--sbb-expansion-panel-background-color: var(--sbb-color-milk)}@media (forced-colors: active){:host(:not([disabled])[data-toggle-hover]){--sbb-expansion-panel-border-color: Highlight;--sbb-expansion-panel-border-block-start-color: Highlight}}:host(:not([disabled])[color=milk][data-toggle-hover]){--sbb-expansion-panel-background-color: var(--sbb-color-white)}.sbb-expansion-panel{background-color:var(--sbb-expansion-panel-background-color);border:var(--sbb-expansion-panel-border-width) solid var(--sbb-expansion-panel-border-color);border-block-start-color:var(--sbb-expansion-panel-border-block-start-color);border-block-start-width:var(--sbb-expansion-panel-border-block-start-width);border-radius:var(--sbb-expansion-panel-start-start-radius) var(--sbb-expansion-panel-start-end-radius) var(--sbb-expansion-panel-end-end-radius) var(--sbb-expansion-panel-end-start-radius);background-clip:padding-box}.sbb-expansion-panel__header{margin:0}.sbb-expansion-panel__content-wrapper{display:grid;visibility:var(--sbb-expansion-panel-content-visibility);grid-template-rows:0fr;opacity:0}:host([data-state=opened]) .sbb-expansion-panel__content-wrapper{grid-template-rows:1fr;opacity:1}:host([data-state=opening]) .sbb-expansion-panel__content-wrapper{animation-name:open,open-opacity;animation-fill-mode:forwards;animation-duration:var(--sbb-expansion-panel-animation-duration);animation-timing-function:var(--sbb-animation-easing);animation-delay:0s,var(--sbb-expansion-panel-animation-duration)}:host([data-state=closing]) .sbb-expansion-panel__content-wrapper{animation-name:close;animation-duration:var(--sbb-expansion-panel-animation-duration);animation-timing-function:var(--sbb-animation-easing)}.sbb-expansion-panel__content{overflow:hidden}@keyframes open{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}@keyframes open-opacity{0%{opacity:0}to{opacity:1}}@keyframes close{0%{grid-template-rows:1fr;opacity:1}to{grid-template-rows:0fr;opacity:0}}`;
8
- var f = Object.defineProperty, w = Object.getOwnPropertyDescriptor, o = (e, a, t, n) => {
9
- for (var i = n > 1 ? void 0 : n ? w(a, t) : a, d = e.length - 1, l; d >= 0; d--)
10
- (l = e[d]) && (i = (n ? l(a, t, i) : l(i)) || i);
11
- return n && i && f(a, t, i), i;
3
+ import { html as _, unsafeStatic as p } from "lit/static-html.js";
4
+ import { SbbConnectedAbortController as u } from "../core/controllers.js";
5
+ import { EventEmitter as d } from "../core/eventing.js";
6
+ import { SbbHydrationMixin as f } from "../core/mixins.js";
7
+ const m = c`*,:before,:after{box-sizing:border-box}:host{--sbb-expansion-panel-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-4x) );--sbb-expansion-panel-background-color: var(--sbb-color-white);--sbb-expansion-panel-content-visibility: hidden;--sbb-expansion-panel-border-width: var(--sbb-border-width-1x);--sbb-expansion-panel-border-color: var(--sbb-color-cloud);--sbb-expansion-panel-border-block-start-width: var(--sbb-expansion-panel-border-width);--sbb-expansion-panel-border-block-start-color: var(--sbb-color-cloud);--sbb-expansion-panel-border-radius: var(--sbb-border-radius-4x);--sbb-expansion-panel-start-end-radius: var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-start-start-radius: var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-end-end-radius: var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-end-start-radius: var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-title-gap: var(--sbb-spacing-fixed-4x);--sbb-expansion-panel-icon-size: var(--sbb-size-icon-ui-medium);display:block}:host([size=s]){--sbb-expansion-panel-title-gap: var(--sbb-spacing-fixed-2x)}@media (forced-colors: active){:host([disabled]){--sbb-expansion-panel-border-color: GrayText;--sbb-expansion-panel-border-block-start-color: GrayText}}:host([expanded]){--sbb-expansion-panel-content-visibility: visible}:host([data-accordion][data-accordion-first]){--sbb-expansion-panel-start-end-radius: var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-start-start-radius: var(--sbb-expansion-panel-border-radius)}:host([data-accordion]:not([data-accordion-first])){--sbb-expansion-panel-border-block-start-width: 0;--sbb-expansion-panel-border-block-start-color: transparent;--sbb-expansion-panel-start-end-radius: 0;--sbb-expansion-panel-start-start-radius: 0}:host([data-accordion][data-accordion-last]){--sbb-expansion-panel-end-end-radius: var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-end-start-radius: var(--sbb-expansion-panel-border-radius)}:host([data-accordion]:not([data-accordion-last])){--sbb-expansion-panel-end-end-radius: 0;--sbb-expansion-panel-end-start-radius: 0}:host([color=milk]){--sbb-expansion-panel-background-color: var(--sbb-color-milk)}:host([borderless]){--sbb-expansion-panel-border-width: 0;--sbb-expansion-panel-border-color: transparent;--sbb-expansion-panel-border-block-start-width: 0;--sbb-expansion-panel-border-block-start-color: transparent}@media (forced-colors: active){:host([borderless]){--sbb-expansion-panel-border-width: var(--sbb-border-width-1x);--sbb-expansion-panel-border-block-start-width: var(--sbb-expansion-panel-border-width)}}:host([borderless][data-accordion]:not([data-accordion-first])){--sbb-expansion-panel-border-block-start-width: var(--sbb-spacing-fixed-1x)}@media (forced-colors: active){:host([borderless][data-accordion]:not([data-accordion-first])){--sbb-expansion-panel-border-block-start-width: 0}}:host(:not([disabled])[data-toggle-hover]){--sbb-expansion-panel-background-color: var(--sbb-color-milk)}@media (forced-colors: active){:host(:not([disabled])[data-toggle-hover]){--sbb-expansion-panel-border-color: Highlight;--sbb-expansion-panel-border-block-start-color: Highlight}}:host(:not([disabled])[color=milk][data-toggle-hover]){--sbb-expansion-panel-background-color: var(--sbb-color-white)}.sbb-expansion-panel{background-color:var(--sbb-expansion-panel-background-color);border:var(--sbb-expansion-panel-border-width) solid var(--sbb-expansion-panel-border-color);border-block-start-color:var(--sbb-expansion-panel-border-block-start-color);border-block-start-width:var(--sbb-expansion-panel-border-block-start-width);border-radius:var(--sbb-expansion-panel-start-start-radius) var(--sbb-expansion-panel-start-end-radius) var(--sbb-expansion-panel-end-end-radius) var(--sbb-expansion-panel-end-start-radius);background-clip:padding-box}.sbb-expansion-panel__header{margin:0}.sbb-expansion-panel__content-wrapper{display:grid;visibility:var(--sbb-expansion-panel-content-visibility);grid-template-rows:0fr;opacity:0}:host([data-state=opened]) .sbb-expansion-panel__content-wrapper{grid-template-rows:1fr;opacity:1}:host([data-state=opening]) .sbb-expansion-panel__content-wrapper{animation-name:open,open-opacity;animation-fill-mode:forwards;animation-duration:var(--sbb-expansion-panel-animation-duration);animation-timing-function:var(--sbb-animation-easing);animation-delay:0s,var(--sbb-expansion-panel-animation-duration)}:host([data-state=closing]) .sbb-expansion-panel__content-wrapper{animation-name:close;animation-duration:var(--sbb-expansion-panel-animation-duration);animation-timing-function:var(--sbb-animation-easing)}.sbb-expansion-panel__content{overflow:hidden}@keyframes open{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}@keyframes open-opacity{0%{opacity:0}to{opacity:1}}@keyframes close{0%{grid-template-rows:1fr;opacity:1}to{grid-template-rows:0fr;opacity:0}}`;
8
+ var g = Object.defineProperty, v = Object.getOwnPropertyDescriptor, o = (e, a, t, s) => {
9
+ for (var i = s > 1 ? void 0 : s ? v(a, t) : a, b = e.length - 1, l; b >= 0; b--)
10
+ (l = e[b]) && (i = (s ? l(a, t, i) : l(i)) || i);
11
+ return s && i && g(a, t, i), i;
12
12
  };
13
- let y = 0, s = class extends v(h) {
13
+ let w = 0, n = class extends f(h) {
14
14
  constructor() {
15
- super(...arguments), this.color = "white", this.e = !1, this.d = !1, this.borderless = !1, this.size = "l", this.l = new b(
15
+ super(...arguments), this.color = "white", this._expanded = !1, this._disabled = !1, this.borderless = !1, this.size = "l", this._willOpen = new d(
16
16
  this,
17
- s.events.willOpen
18
- ), this.f = new b(
17
+ n.events.willOpen
18
+ ), this._didOpen = new d(
19
19
  this,
20
- s.events.didOpen
21
- ), this.m = new b(
20
+ n.events.didOpen
21
+ ), this._willClose = new d(
22
22
  this,
23
- s.events.willClose
24
- ), this.n = new b(
23
+ n.events.willClose
24
+ ), this._didClose = new d(
25
25
  this,
26
- s.events.didClose
27
- ), this.g = `-${++y}`, this.o = new m(this), this.h = !1;
26
+ n.events.didClose
27
+ ), this._progressiveId = `-${++w}`, this._abort = new u(this), this._initialized = !1;
28
28
  }
29
29
  set expanded(e) {
30
- this.e = e, this.j();
30
+ this._expanded = e, this._onExpandedChange();
31
31
  }
32
32
  get expanded() {
33
- return this.e;
33
+ return this._expanded;
34
34
  }
35
35
  set disabled(e) {
36
- this.d = e, this.k(this.d);
36
+ this._disabled = e, this._updateDisabledOnHeader(this._disabled);
37
37
  }
38
38
  get disabled() {
39
- return this.d;
39
+ return this._disabled;
40
40
  }
41
41
  /**
42
42
  * The state of the notification.
43
43
  */
44
- set b(e) {
44
+ set _state(e) {
45
45
  this.setAttribute("data-state", e);
46
46
  }
47
- get b() {
47
+ get _state() {
48
48
  return this.getAttribute("data-state");
49
49
  }
50
50
  connectedCallback() {
51
51
  var a;
52
52
  super.connectedCallback();
53
- const e = this.o.signal;
54
- this.addEventListener("toggleExpanded", () => this.p(), { signal: e }), this.toggleAttribute("data-accordion", !!((a = this.closest) != null && a.call(this, "sbb-accordion")));
53
+ const e = this._abort.signal;
54
+ this.addEventListener("toggleExpanded", () => this._toggleExpanded(), { signal: e }), this.toggleAttribute("data-accordion", !!((a = this.closest) != null && a.call(this, "sbb-accordion")));
55
55
  }
56
56
  willUpdate(e) {
57
57
  var a, t;
58
- super.willUpdate(e), e.has("size") && ((a = this.a) == null || a.setAttribute("data-size", String(this.size)), (t = this.c) == null || t.setAttribute("data-size", String(this.size)));
58
+ super.willUpdate(e), e.has("size") && ((a = this._headerRef) == null || a.setAttribute("data-size", String(this.size)), (t = this._contentRef) == null || t.setAttribute("data-size", String(this.size)));
59
59
  }
60
60
  disconnectedCallback() {
61
61
  super.disconnectedCallback(), this.removeAttribute("data-accordion");
62
62
  }
63
63
  firstUpdated(e) {
64
- super.firstUpdated(e), this.h = !0;
64
+ super.firstUpdated(e), this._initialized = !0;
65
65
  }
66
- p() {
66
+ _toggleExpanded() {
67
67
  this.expanded = !this.expanded;
68
68
  }
69
- j() {
69
+ _onExpandedChange() {
70
70
  var e, a;
71
- (e = this.a) == null || e.setAttribute("aria-expanded", String(this.expanded)), (a = this.c) == null || a.setAttribute("aria-hidden", String(!this.expanded)), this.expanded ? this.q(!this.h) : this.b === "opened" && this.r();
71
+ (e = this._headerRef) == null || e.setAttribute("aria-expanded", String(this.expanded)), (a = this._contentRef) == null || a.setAttribute("aria-hidden", String(!this.expanded)), this.expanded ? this._open(!this._initialized) : this._state === "opened" && this._close();
72
72
  }
73
- q(e = !1) {
74
- this.b = "opening", this.l.emit(), e && (this.b = "opened", this.f.emit());
73
+ _open(e = !1) {
74
+ this._state = "opening", this._willOpen.emit(), e && (this._state = "opened", this._didOpen.emit());
75
75
  }
76
- r() {
77
- this.b = "closing", this.m.emit();
76
+ _close() {
77
+ this._state = "closing", this._willClose.emit();
78
78
  }
79
- k(e) {
80
- this.a && (this.a.disabled = e);
79
+ _updateDisabledOnHeader(e) {
80
+ this._headerRef && (this._headerRef.disabled = e);
81
81
  }
82
- i() {
82
+ _handleSlotchange() {
83
83
  const e = Array.from(this.children ?? []), a = e.find(
84
- (n) => n.localName === "sbb-expansion-panel-header"
84
+ (s) => s.localName === "sbb-expansion-panel-header"
85
85
  ), t = e.find(
86
- (n) => n.localName === "sbb-expansion-panel-content"
86
+ (s) => s.localName === "sbb-expansion-panel-content"
87
87
  );
88
- this.a === a && this.c === t || (a && this.a !== a && (a.id || (a.id = `sbb-expansion-panel-header${this.g}`), a.setAttribute("aria-expanded", String(this.expanded)), a.toggleAttribute("disabled", this.disabled), a.setAttribute("data-size", String(this.size))), t && this.c !== t && (t.id || (t.id = `sbb-expansion-panel-content${this.g}`), t.setAttribute("aria-hidden", String(!this.expanded)), t.setAttribute("data-size", String(this.size))), this.a = a, this.c = t, this.a && this.c && (this.a.setAttribute("aria-controls", this.c.id), this.c.setAttribute("aria-labelledby", this.a.id), this.c.toggleAttribute(
88
+ this._headerRef === a && this._contentRef === t || (a && this._headerRef !== a && (a.id || (a.id = `sbb-expansion-panel-header${this._progressiveId}`), a.setAttribute("aria-expanded", String(this.expanded)), a.toggleAttribute("disabled", this.disabled), a.setAttribute("data-size", String(this.size))), t && this._contentRef !== t && (t.id || (t.id = `sbb-expansion-panel-content${this._progressiveId}`), t.setAttribute("aria-hidden", String(!this.expanded)), t.setAttribute("data-size", String(this.size))), this._headerRef = a, this._contentRef = t, this._headerRef && this._contentRef && (this._headerRef.setAttribute("aria-controls", this._contentRef.id), this._contentRef.setAttribute("aria-labelledby", this._headerRef.id), this._contentRef.toggleAttribute(
89
89
  "data-icon-space",
90
- this.a.hasAttribute("data-icon")
90
+ this._headerRef.hasAttribute("data-icon")
91
91
  )));
92
92
  }
93
- s(e) {
94
- e.animationName === "open-opacity" && this.b === "opening" ? (this.b = "opened", this.f.emit()) : e.animationName === "close" && this.b === "closing" && (this.b = "closed", this.n.emit());
93
+ _onAnimationEnd(e) {
94
+ e.animationName === "open-opacity" && this._state === "opening" ? (this._state = "opened", this._didOpen.emit()) : e.animationName === "close" && this._state === "closing" && (this._state = "closed", this._didClose.emit());
95
95
  }
96
96
  render() {
97
97
  const e = this.titleLevel ? `h${this.titleLevel}` : "div";
98
- return u`
98
+ return _`
99
99
  <div class="sbb-expansion-panel">
100
100
  <${p(e)} class="sbb-expansion-panel__header">
101
- <slot name="header" @slotchange=${this.i}></slot>
101
+ <slot name="header" @slotchange=${this._handleSlotchange}></slot>
102
102
  </${p(e)}>
103
- <div class="sbb-expansion-panel__content-wrapper" @animationend=${this.s}>
103
+ <div class="sbb-expansion-panel__content-wrapper" @animationend=${this._onAnimationEnd}>
104
104
  <span class="sbb-expansion-panel__content">
105
- <slot name="content" @slotchange=${this.i}></slot>
105
+ <slot name="content" @slotchange=${this._handleSlotchange}></slot>
106
106
  </span>
107
107
  </div>
108
108
  </div>
109
109
  `;
110
110
  }
111
111
  };
112
- s.styles = g;
113
- s.events = {
112
+ n.styles = m;
113
+ n.events = {
114
114
  willOpen: "willOpen",
115
115
  didOpen: "didOpen",
116
116
  willClose: "willClose",
@@ -118,25 +118,25 @@ s.events = {
118
118
  };
119
119
  o([
120
120
  r({ attribute: "title-level" })
121
- ], s.prototype, "titleLevel", 2);
121
+ ], n.prototype, "titleLevel", 2);
122
122
  o([
123
123
  r()
124
- ], s.prototype, "color", 2);
124
+ ], n.prototype, "color", 2);
125
125
  o([
126
126
  r({ reflect: !0, type: Boolean })
127
- ], s.prototype, "expanded", 1);
127
+ ], n.prototype, "expanded", 1);
128
128
  o([
129
129
  r({ reflect: !0, type: Boolean })
130
- ], s.prototype, "disabled", 1);
130
+ ], n.prototype, "disabled", 1);
131
131
  o([
132
132
  r({ reflect: !0, type: Boolean })
133
- ], s.prototype, "borderless", 2);
133
+ ], n.prototype, "borderless", 2);
134
134
  o([
135
135
  r({ reflect: !0 })
136
- ], s.prototype, "size", 2);
137
- s = o([
136
+ ], n.prototype, "size", 2);
137
+ n = o([
138
138
  x("sbb-expansion-panel")
139
- ], s);
139
+ ], n);
140
140
  export {
141
- s as SbbExpansionPanelElement
141
+ n as SbbExpansionPanelElement
142
142
  };