@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/file-selector.js CHANGED
@@ -1,98 +1,98 @@
1
- import { css as g, LitElement as v, nothing as f } from "lit";
2
- import { property as l, state as y, customElement as _ } from "lit/decorators.js";
3
- import { ref as n } from "lit/directives/ref.js";
1
+ import { css as g, LitElement as m, nothing as h } from "lit";
2
+ import { property as r, state as v, customElement as y } from "lit/decorators.js";
3
+ import { ref as b } from "lit/directives/ref.js";
4
4
  import { html as a, unsafeStatic as c } from "lit/static-html.js";
5
- import { sbbInputModalityDetector as m } from "./core/a11y.js";
5
+ import { sbbInputModalityDetector as _ } from "./core/a11y.js";
6
6
  import { SbbLanguageController as x, SbbSlotStateController as $ } from "./core/controllers.js";
7
7
  import { EventEmitter as z } from "./core/eventing.js";
8
- import { i18nFileSelectorCurrentlySelected as u, i18nFileSelectorButtonLabel as p, i18nFileSelectorSubtitleLabel as w, i18nFileSelectorDeleteFile as E } from "./core/i18n.js";
9
- import { SbbDisabledMixin as k } from "./core/mixins.js";
8
+ import { i18nFileSelectorCurrentlySelected as u, i18nFileSelectorButtonLabel as p, i18nFileSelectorSubtitleLabel as E, i18nFileSelectorDeleteFile as w } from "./core/i18n.js";
9
+ import { SbbDisabledMixin as F } from "./core/mixins.js";
10
10
  import "./button/secondary-button.js";
11
11
  import "./button/secondary-button-static.js";
12
12
  import "./icon.js";
13
- const M = g`*,:before,:after{box-sizing:border-box}:host{--sbb-file-selector-color: var(--sbb-color-black);--sbb-file-selector-subtitle-color: var(--sbb-color-granite);--sbb-file-selector-background-color: var(--sbb-color-white);--sbb-file-selector-border-color: var(--sbb-color-cloud);--sbb-file-selector-transition-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-2x) );--sbb-file-selector-transition-easing-function: var(--sbb-animation-easing);display:block;width:20rem}@media (forced-colors: active){:host([disabled]){--sbb-file-selector-color: GrayText;--sbb-file-selector-subtitle-color: GrayText;--sbb-file-selector-border-color: GrayText}}:host([data-active]){--sbb-file-selector-background-color: var(--sbb-color-milk);--sbb-file-selector-border-color: var(--sbb-color-storm)}@media (forced-colors: active){:host([data-active]){--sbb-file-selector-border-color: Highlight}}.sbb-file-selector__input-container{-webkit-tap-highlight-color:transparent;display:flex;flex-direction:column}.sbb-file-selector__visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.sbb-file-selector__dropzone-area{display:flex;flex-direction:column;align-items:center;padding:var(--sbb-spacing-responsive-s);background-color:var(--sbb-file-selector-background-color);border:var(--sbb-border-width-1x) dashed var(--sbb-file-selector-border-color);border-radius:var(--sbb-border-radius-4x);transition-duration:var(--sbb-file-selector-transition-duration);transition-timing-function:var(--sbb-file-selector-transition-easing-function);transition-property:background-color,border-color}.sbb-file-selector__dropzone-area--icon{color:var(--sbb-file-selector-color);line-height:0}.sbb-file-selector__dropzone-area--title{--sbb-title-line-height: var(--sbb-typo-line-height-titles);--sbb-title-margin-block-start: 0;--sbb-title-margin-block-end: 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;margin-block:var(--sbb-title-margin-block-start) var(--sbb-title-margin-block-end);font-family:var(--sbb-typo-font-family);font-weight:700;line-height:var(--sbb-title-line-height);letter-spacing:var(--sbb-typo-letter-spacing-titles);font-size:var(--sbb-title-font-size);--sbb-title-font-size: var(--sbb-font-size-title-6);--sbb-title-line-height: var(--sbb-typo-line-height-body-text);text-align:center;color:var(--sbb-file-selector-color)}.sbb-file-selector__dropzone-area--subtitle{--sbb-text-font-size: var(--sbb-font-size-text-xs);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);text-align:center;color:var(--sbb-file-selector-subtitle-color);margin-block-end:var(--sbb-spacing-fixed-4x)}.sbb-file-selector__file-list{display:flex;flex-direction:column;row-gap:var(--sbb-spacing-fixed-3x);margin-block:0;padding-inline:0;padding-block:var(--sbb-spacing-fixed-6x) var(--sbb-spacing-fixed-1x)}.sbb-file-selector__file{--sbb-text-font-size: var(--sbb-font-size-text-s);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;gap:var(--sbb-spacing-fixed-4x);align-items:center;justify-content:space-between}.sbb-file-selector__file-details{display:flex;flex:1;justify-content:space-between;gap:var(--sbb-spacing-fixed-4x);overflow:auto}.sbb-file-selector__file-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sbb-file-selector__file-size{white-space:nowrap;color:var(--sbb-color-metal)}:host(:not([data-slot-names~=error])) .sbb-file-selector__error{display:none}`;
14
- var S = Object.defineProperty, P = Object.getOwnPropertyDescriptor, o = (e, t, s, b) => {
15
- for (var r = b > 1 ? void 0 : b ? P(t, s) : t, d = e.length - 1, h; d >= 0; d--)
16
- (h = e[d]) && (r = (b ? h(t, s, r) : h(r)) || r);
17
- return b && r && S(t, s, r), r;
13
+ const k = g`*,:before,:after{box-sizing:border-box}:host{--sbb-file-selector-color: var(--sbb-color-black);--sbb-file-selector-subtitle-color: var(--sbb-color-granite);--sbb-file-selector-background-color: var(--sbb-color-white);--sbb-file-selector-border-color: var(--sbb-color-cloud);--sbb-file-selector-transition-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-2x) );--sbb-file-selector-transition-easing-function: var(--sbb-animation-easing);display:block;width:20rem}@media (forced-colors: active){:host([disabled]){--sbb-file-selector-color: GrayText;--sbb-file-selector-subtitle-color: GrayText;--sbb-file-selector-border-color: GrayText}}:host([data-active]){--sbb-file-selector-background-color: var(--sbb-color-milk);--sbb-file-selector-border-color: var(--sbb-color-storm)}@media (forced-colors: active){:host([data-active]){--sbb-file-selector-border-color: Highlight}}.sbb-file-selector__input-container{-webkit-tap-highlight-color:transparent;display:flex;flex-direction:column}.sbb-file-selector__visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.sbb-file-selector__dropzone-area{display:flex;flex-direction:column;align-items:center;padding:var(--sbb-spacing-responsive-s);background-color:var(--sbb-file-selector-background-color);border:var(--sbb-border-width-1x) dashed var(--sbb-file-selector-border-color);border-radius:var(--sbb-border-radius-4x);transition-duration:var(--sbb-file-selector-transition-duration);transition-timing-function:var(--sbb-file-selector-transition-easing-function);transition-property:background-color,border-color}.sbb-file-selector__dropzone-area--icon{color:var(--sbb-file-selector-color);line-height:0}.sbb-file-selector__dropzone-area--title{--sbb-title-line-height: var(--sbb-typo-line-height-titles);--sbb-title-margin-block-start: 0;--sbb-title-margin-block-end: 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;margin-block:var(--sbb-title-margin-block-start) var(--sbb-title-margin-block-end);font-family:var(--sbb-typo-font-family);font-weight:700;line-height:var(--sbb-title-line-height);letter-spacing:var(--sbb-typo-letter-spacing-titles);font-size:var(--sbb-title-font-size);--sbb-title-font-size: var(--sbb-font-size-title-6);--sbb-title-line-height: var(--sbb-typo-line-height-body-text);text-align:center;color:var(--sbb-file-selector-color)}.sbb-file-selector__dropzone-area--subtitle{--sbb-text-font-size: var(--sbb-font-size-text-xs);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);text-align:center;color:var(--sbb-file-selector-subtitle-color);margin-block-end:var(--sbb-spacing-fixed-4x)}.sbb-file-selector__file-list{display:flex;flex-direction:column;row-gap:var(--sbb-spacing-fixed-3x);margin-block:0;padding-inline:0;padding-block:var(--sbb-spacing-fixed-6x) var(--sbb-spacing-fixed-1x)}.sbb-file-selector__file{--sbb-text-font-size: var(--sbb-font-size-text-s);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;gap:var(--sbb-spacing-fixed-4x);align-items:center;justify-content:space-between}.sbb-file-selector__file-details{display:flex;flex:1;justify-content:space-between;gap:var(--sbb-spacing-fixed-4x);overflow:auto}.sbb-file-selector__file-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sbb-file-selector__file-size{white-space:nowrap;color:var(--sbb-color-metal)}:host(:not([data-slot-names~=error])) .sbb-file-selector__error{display:none}`;
14
+ var M = Object.defineProperty, D = Object.getOwnPropertyDescriptor, l = (e, t, s, n) => {
15
+ for (var o = n > 1 ? void 0 : n ? D(t, s) : t, f = e.length - 1, d; f >= 0; f--)
16
+ (d = e[f]) && (o = (n ? d(t, s, o) : d(o)) || o);
17
+ return n && o && M(t, s, o), o;
18
18
  };
19
- let i = class extends k(v) {
19
+ let i = class extends F(m) {
20
20
  constructor() {
21
- super(), this.variant = "default", this.size = "m", this.multiple = !1, this.multipleMode = "default", this.h = new z(
21
+ super(), this.variant = "default", this.size = "m", this.multiple = !1, this.multipleMode = "default", this._fileChangedEvent = new z(
22
22
  this,
23
23
  i.events.fileChangedEvent
24
- ), this.d = 0, this.m = ["B", "kB", "MB", "GB", "TB"], this.b = new x(this), new $(this);
24
+ ), this._counter = 0, this._suffixes = ["B", "kB", "MB", "GB", "TB"], this._language = new x(this), new $(this);
25
25
  }
26
26
  /**
27
27
  * Gets the currently selected files.
28
28
  */
29
29
  get files() {
30
- return this.a || [];
30
+ return this._files || [];
31
31
  }
32
32
  /**
33
33
  * @deprecated use 'files' property instead
34
34
  */
35
35
  getFiles() {
36
- return this.a || [];
36
+ return this._files || [];
37
37
  }
38
- e(e) {
38
+ _blockEvent(e) {
39
39
  e.stopPropagation(), e.preventDefault();
40
40
  }
41
- k(e, t) {
41
+ _checkFileEquality(e, t) {
42
42
  return e.name === t.name && e.size === t.size && e.lastModified === t.lastModified;
43
43
  }
44
- n(e) {
45
- this.d++, this.disabled || (this.g(e.target, !0), this.e(e));
44
+ _onDragEnter(e) {
45
+ this._counter++, this.disabled || (this._setDragState(e.target, !0), this._blockEvent(e));
46
46
  }
47
- o(e) {
48
- this.d--, !this.disabled && e.target === this.i && this.d === 0 && (this.g(), this.e(e));
47
+ _onDragLeave(e) {
48
+ this._counter--, !this.disabled && e.target === this._dragTarget && this._counter === 0 && (this._setDragState(), this._blockEvent(e));
49
49
  }
50
- p(e) {
51
- this.d = 0, this.disabled || (this.g(), this.e(e), this.l(e.dataTransfer.files));
50
+ _onFileDrop(e) {
51
+ this._counter = 0, this.disabled || (this._setDragState(), this._blockEvent(e), this._createFileList(e.dataTransfer.files));
52
52
  }
53
- q() {
54
- m.mostRecentModality === "keyboard" && this.c.toggleAttribute("data-focus-visible", !0);
53
+ _onFocus() {
54
+ _.mostRecentModality === "keyboard" && this._loadButton.toggleAttribute("data-focus-visible", !0);
55
55
  }
56
- r() {
57
- m.mostRecentModality === "keyboard" && this.c.removeAttribute("data-focus-visible");
56
+ _onBlur() {
57
+ _.mostRecentModality === "keyboard" && this._loadButton.removeAttribute("data-focus-visible");
58
58
  }
59
- g(e = void 0, t = !1) {
60
- this.i = e, this.toggleAttribute("data-active", t), this.c.toggleAttribute("data-active", t);
59
+ _setDragState(e = void 0, t = !1) {
60
+ this._dragTarget = e, this.toggleAttribute("data-active", t), this._loadButton.toggleAttribute("data-active", t);
61
61
  }
62
- s(e) {
62
+ _readFiles(e) {
63
63
  const t = e.target;
64
- t.files && this.l(t.files);
64
+ t.files && this._createFileList(t.files);
65
65
  }
66
- l(e) {
67
- !this.multiple || this.multipleMode !== "persistent" || !this.a || this.a.length === 0 ? this.a = Array.from(e) : this.a = Array.from(e).filter(
68
- (t) => this.a.findIndex((s) => this.k(t, s)) === -1
69
- ).concat(this.a), this.f.innerText = u(this.a.map((t) => t.name))[this.b.current], this.h.emit(this.a);
66
+ _createFileList(e) {
67
+ !this.multiple || this.multipleMode !== "persistent" || !this._files || this._files.length === 0 ? this._files = Array.from(e) : this._files = Array.from(e).filter(
68
+ (t) => this._files.findIndex((s) => this._checkFileEquality(t, s)) === -1
69
+ ).concat(this._files), this._liveRegion.innerText = u(this._files.map((t) => t.name))[this._language.current], this._fileChangedEvent.emit(this._files);
70
70
  }
71
- t(e) {
72
- this.a = this.a.filter((s) => !this.k(e, s));
71
+ _removeFile(e) {
72
+ this._files = this._files.filter((s) => !this._checkFileEquality(e, s));
73
73
  const t = new DataTransfer();
74
- this.a.forEach((s) => t.items.add(s)), this.j.files = t.files, this.f.innerText = u(this.a.map((s) => s.name))[this.b.current], this.h.emit(this.a);
74
+ this._files.forEach((s) => t.items.add(s)), this._hiddenInput.files = t.files, this._liveRegion.innerText = u(this._files.map((s) => s.name))[this._language.current], this._fileChangedEvent.emit(this._files);
75
75
  }
76
76
  /** Calculates the correct unit for the file's size. */
77
- u(e) {
77
+ _formatFileSize(e) {
78
78
  const t = Math.floor(Math.log(e) / Math.log(1024));
79
- return `${(e / Math.pow(1024, t)).toFixed(0)} ${this.m[t]}`;
79
+ return `${(e / Math.pow(1024, t)).toFixed(0)} ${this._suffixes[t]}`;
80
80
  }
81
- v() {
81
+ _renderDefaultMode() {
82
82
  return a`
83
83
  <sbb-secondary-button-static
84
84
  size=${this.size}
85
85
  icon-name="folder-open-small"
86
86
  ?disabled=${this.disabled}
87
- ${n((e) => {
88
- this.c = e;
87
+ ${b((e) => {
88
+ this._loadButton = e;
89
89
  })}
90
90
  >
91
- ${p[this.b.current]}
91
+ ${p[this._language.current]}
92
92
  </sbb-secondary-button-static>
93
93
  `;
94
94
  }
95
- w() {
95
+ _renderDropzoneArea() {
96
96
  return a`
97
97
  <span class="sbb-file-selector__dropzone-area">
98
98
  <span class="sbb-file-selector__dropzone-area--icon">
@@ -102,38 +102,38 @@ let i = class extends k(v) {
102
102
  </span>
103
103
  <span class="sbb-file-selector__dropzone-area--title">${this.titleContent}</span>
104
104
  <span class="sbb-file-selector__dropzone-area--subtitle">
105
- ${w[this.b.current]}
105
+ ${E[this._language.current]}
106
106
  </span>
107
107
  <span class="sbb-file-selector__dropzone-area--button">
108
108
  <sbb-secondary-button-static
109
109
  size=${this.size}
110
110
  ?disabled=${this.disabled}
111
- ${n((e) => {
112
- this.c = e;
111
+ ${b((e) => {
112
+ this._loadButton = e;
113
113
  })}
114
114
  >
115
- ${p[this.b.current]}
115
+ ${p[this._language.current]}
116
116
  </sbb-secondary-button-static>
117
117
  </span>
118
118
  </span>
119
119
  `;
120
120
  }
121
- x() {
122
- const e = this.a.length > 1 ? { WRAPPER: "ul", ELEMENT: "li" } : { WRAPPER: "div", ELEMENT: "span" };
121
+ _renderFileList() {
122
+ const e = this._files.length > 1 ? { WRAPPER: "ul", ELEMENT: "li" } : { WRAPPER: "div", ELEMENT: "span" };
123
123
  return a`
124
124
  <${c(e.WRAPPER)} class="sbb-file-selector__file-list">
125
- ${this.a.map(
125
+ ${this._files.map(
126
126
  (t) => a`
127
127
  <${c(e.ELEMENT)} class="sbb-file-selector__file">
128
128
  <span class="sbb-file-selector__file-details">
129
129
  <span class="sbb-file-selector__file-name">${t.name}</span>
130
- <span class="sbb-file-selector__file-size">${this.u(t.size)}</span>
130
+ <span class="sbb-file-selector__file-size">${this._formatFileSize(t.size)}</span>
131
131
  </span>
132
132
  <sbb-secondary-button
133
133
  size=${this.size}
134
134
  icon-name="trash-small"
135
- @click=${() => this.t(t)}
136
- aria-label=${`${E[this.b.current]} - ${t.name}`}
135
+ @click=${() => this._removeFile(t)}
136
+ aria-label=${`${w[this._language.current]} - ${t.name}`}
137
137
  ></sbb-secondary-button>
138
138
  </${c(e.ELEMENT)}>`
139
139
  )}
@@ -141,30 +141,30 @@ let i = class extends k(v) {
141
141
  `;
142
142
  }
143
143
  render() {
144
- const e = this.accessibilityLabel ? `${p[this.b.current]} - ${this.accessibilityLabel}` : void 0;
144
+ const e = this.accessibilityLabel ? `${p[this._language.current]} - ${this.accessibilityLabel}` : void 0;
145
145
  return a`
146
146
  <div class="sbb-file-selector">
147
147
  <div
148
148
  class="sbb-file-selector__input-container"
149
- @dragenter=${this.n}
150
- @dragover=${this.e}
151
- @dragleave=${this.o}
152
- @drop=${this.p}
149
+ @dragenter=${this._onDragEnter}
150
+ @dragover=${this._blockEvent}
151
+ @dragleave=${this._onDragLeave}
152
+ @drop=${this._onFileDrop}
153
153
  >
154
154
  <label>
155
- ${this.variant === "default" ? this.v() : this.w()}
155
+ ${this.variant === "default" ? this._renderDefaultMode() : this._renderDropzoneArea()}
156
156
  <input
157
157
  class="sbb-file-selector__visually-hidden"
158
158
  type="file"
159
159
  ?disabled=${this.disabled}
160
160
  ?multiple=${this.multiple}
161
- accept=${this.accept || f}
162
- aria-label=${e || f}
163
- @change=${this.s}
164
- @focus=${this.q}
165
- @blur=${this.r}
166
- ${n((t) => {
167
- this.j = t;
161
+ accept=${this.accept || h}
162
+ aria-label=${e || h}
163
+ @change=${this._readFiles}
164
+ @focus=${this._onFocus}
165
+ @blur=${this._onBlur}
166
+ ${b((t) => {
167
+ this._hiddenInput = t;
168
168
  })}
169
169
  />
170
170
  </label>
@@ -172,9 +172,9 @@ let i = class extends k(v) {
172
172
  <p
173
173
  role="status"
174
174
  class="sbb-file-selector__visually-hidden"
175
- ${n((t) => this.f = t)}
175
+ ${b((t) => this._liveRegion = t)}
176
176
  ></p>
177
- ${this.a && this.a.length > 0 ? this.x() : f}
177
+ ${this._files && this._files.length > 0 ? this._renderFileList() : h}
178
178
  <div class="sbb-file-selector__error">
179
179
  <slot name="error"></slot>
180
180
  </div>
@@ -182,36 +182,36 @@ let i = class extends k(v) {
182
182
  `;
183
183
  }
184
184
  };
185
- i.styles = M;
185
+ i.styles = k;
186
186
  i.events = {
187
187
  fileChangedEvent: "fileChanged"
188
188
  };
189
- o([
190
- l()
189
+ l([
190
+ r()
191
191
  ], i.prototype, "variant", 2);
192
- o([
193
- l({ reflect: !0 })
192
+ l([
193
+ r({ reflect: !0 })
194
194
  ], i.prototype, "size", 2);
195
- o([
196
- l({ type: Boolean })
195
+ l([
196
+ r({ type: Boolean })
197
197
  ], i.prototype, "multiple", 2);
198
- o([
199
- l({ attribute: "multiple-mode" })
198
+ l([
199
+ r({ attribute: "multiple-mode" })
200
200
  ], i.prototype, "multipleMode", 2);
201
- o([
202
- l()
201
+ l([
202
+ r()
203
203
  ], i.prototype, "accept", 2);
204
- o([
205
- l({ attribute: "title-content" })
204
+ l([
205
+ r({ attribute: "title-content" })
206
206
  ], i.prototype, "titleContent", 2);
207
- o([
208
- l({ attribute: "accessibility-label" })
207
+ l([
208
+ r({ attribute: "accessibility-label" })
209
209
  ], i.prototype, "accessibilityLabel", 2);
210
- o([
211
- y()
212
- ], i.prototype, "a", 2);
213
- i = o([
214
- _("sbb-file-selector")
210
+ l([
211
+ v()
212
+ ], i.prototype, "_files", 2);
213
+ i = l([
214
+ y("sbb-file-selector")
215
215
  ], i);
216
216
  export {
217
217
  i as SbbFileSelectorElement
@@ -8,27 +8,27 @@ import { i18nClearInput as m } from "../core/i18n.js";
8
8
  import { SbbNegativeMixin as p } from "../core/mixins.js";
9
9
  import "../icon.js";
10
10
  const g = l`*,:before,:after{box-sizing:border-box}:host{display:block;outline:none!important}:host{display:inline-block;-webkit-tap-highlight-color:transparent;height:fit-content;outline:none!important;--sbb-button-color-default-background: var(--sbb-color-black-alpha-0);--sbb-button-color-default-border: var(--sbb-color-black-alpha-0);--sbb-button-color-default-text: var(--sbb-color-charcoal);--sbb-button-color-hover-background: var(--sbb-color-milk);--sbb-button-color-hover-border: var(--sbb-color-milk);--sbb-button-color-hover-text: var(--sbb-color-charcoal);--sbb-button-color-active-background: var(--sbb-color-cloud);--sbb-button-color-active-border: var(--sbb-color-cloud);--sbb-button-color-active-text: var(--sbb-color-charcoal);--sbb-button-color-disabled-background: var(--sbb-color-milk);--sbb-button-color-disabled-border: var(--sbb-color-smoke);--sbb-button-color-disabled-text: var(--sbb-color-granite);--sbb-button-border-style: solid;--sbb-button-border-disabled-style: dashed;--sbb-button-border-width: 0rem;--sbb-button-border-radius: var(--sbb-border-radius-infinity);--sbb-button-transition-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-2x) );--sbb-button-transition-easing-function: var(--sbb-animation-easing);--sbb-button-inset: 0}@media (forced-colors: active){:host{--sbb-button-color-default-text: ButtonText !important;--sbb-button-color-default-border: CanvasText !important;--sbb-button-color-active-text: ButtonText !important;--sbb-button-color-active-border: Highlight !important;--sbb-button-color-hover-text: ButtonText !important}}:host .sbb-form-field-clear{position:relative;transition-duration:var(--sbb-button-transition-duration);transition-timing-function:var(--sbb-button-transition-easing-function);transition-property:color;border-radius:var(--sbb-button-border-radius);color:var(--sbb-button-color-default-text);cursor:pointer;-webkit-user-select:none;user-select:none;display:var(--sbb-button-display)}:host .sbb-form-field-clear:before{position:absolute;content:"";inset:var(--sbb-button-inset);border:var(--sbb-button-border-width) var(--sbb-button-border-style) var(--sbb-button-color-default-border);border-radius:var(--sbb-button-border-radius);background-color:var(--sbb-button-color-default-background);transition-duration:var(--sbb-button-transition-duration);transition-timing-function:var(--sbb-button-transition-easing-function);transition-property:inset,background-color,border-color}sbb-icon{transition:transform var(--sbb-button-transition-duration) var(--sbb-button-transition-easing-function);transform:translateY(var(--sbb-button-translate-y-content-hover, 0rem));display:flex}:host([negative]){--sbb-button-color-default-background: var(--sbb-color-black-alpha-0);--sbb-button-color-default-border: var(--sbb-color-black-alpha-0);--sbb-button-color-default-text: var(--sbb-color-milk);--sbb-button-color-hover-background: var(--sbb-color-charcoal);--sbb-button-color-hover-border: var(--sbb-color-charcoal);--sbb-button-color-hover-text: var(--sbb-color-milk);--sbb-button-color-active-background: var(--sbb-color-iron);--sbb-button-color-active-border: var(--sbb-color-iron);--sbb-button-color-active-text: var(--sbb-color-milk);--sbb-button-color-disabled-background: var(--sbb-color-black-alpha-0);--sbb-button-color-disabled-border: var(--sbb-color-smoke);--sbb-button-color-disabled-text: var(--sbb-color-smoke)}:host(:is([disabled],[data-disabled])){--sbb-button-border-width: var(--sbb-border-width-1x)}@media (forced-colors: active){:host(:is([disabled],[data-disabled])){--sbb-button-color-disabled-text: GrayText !important}}:host(:is([disabled],[data-disabled])) .sbb-form-field-clear{color:var(--sbb-button-color-disabled-text);cursor:default;pointer-events:none}:host(:is([disabled],[data-disabled])) .sbb-form-field-clear:before{background-color:var(--sbb-button-color-disabled-background);border-color:var(--sbb-button-color-disabled-border);border-style:var(--sbb-button-border-disabled-style)}:host(:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch])) .sbb-form-field-clear:before{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width)}@media (any-hover: hover){:host(:not([disabled],[data-disabled],:active,[data-active]):hover){--sbb-button-translate-y-content-hover: -.0625rem}}@media (forced-colors: active){:host(:not([disabled],[data-disabled],:active,[data-active]):hover){--sbb-button-color-hover-border: Highlight !important}}@media (any-hover: hover){:host(:not([disabled],[data-disabled],:active,[data-active]):hover) .sbb-form-field-clear:before{inset:calc(var(--sbb-button-border-width) * -1);background-color:var(--sbb-button-color-hover-background);border-color:var(--sbb-button-color-hover-border)}}@media (any-hover: hover){:host(:not([disabled],[data-disabled],:active,[data-active]):hover) .sbb-form-field-clear{color:var(--sbb-button-color-hover-text)}}:host(:not([disabled],[data-disabled]):is(:active,[data-active])) .sbb-form-field-clear:before{color:var(--sbb-button-color-active-text);background-color:var(--sbb-button-color-active-background);border-color:var(--sbb-button-color-active-border)}`;
11
- var k = Object.defineProperty, x = Object.getOwnPropertyDescriptor, y = (o, t, r, e) => {
12
- for (var b = e > 1 ? void 0 : e ? x(t, r) : t, a = o.length - 1, s; a >= 0; a--)
13
- (s = o[a]) && (b = (e ? s(t, r, b) : s(b)) || b);
14
- return e && b && k(t, r, b), b;
11
+ var k = Object.defineProperty, x = Object.getOwnPropertyDescriptor, y = (o, t, b, e) => {
12
+ for (var r = e > 1 ? void 0 : e ? x(t, b) : t, a = o.length - 1, s; a >= 0; a--)
13
+ (s = o[a]) && (r = (e ? s(t, b, r) : s(r)) || r);
14
+ return e && r && k(t, b, r), r;
15
15
  };
16
16
  let n = class extends p(u) {
17
17
  constructor() {
18
- super(...arguments), this.b = new v(this), this.c = new h(this);
18
+ super(...arguments), this._abort = new v(this), this._language = new h(this);
19
19
  }
20
20
  connectedCallback() {
21
21
  super.connectedCallback();
22
- const o = this.b.signal;
23
- this.addEventListener("click", () => this.d(), { signal: o }), this.a = i("sbb-form-field", this) ?? i("[data-form-field]", this), this.a && (this.negative = this.a.hasAttribute("negative"));
22
+ const o = this._abort.signal;
23
+ this.addEventListener("click", () => this._handleClick(), { signal: o }), this._formField = i("sbb-form-field", this) ?? i("[data-form-field]", this), this._formField && (this.negative = this._formField.hasAttribute("negative"));
24
24
  }
25
- async d() {
26
- var t, r;
27
- const o = (t = this.a) == null ? void 0 : t.inputElement;
28
- !o || o.localName !== "input" || ((r = this.a) == null || r.clear(), o.focus(), o.dispatchEvent(new InputEvent("input", { bubbles: !0, composed: !0 })), o.dispatchEvent(new Event("change", { bubbles: !0 })));
25
+ async _handleClick() {
26
+ var t, b;
27
+ const o = (t = this._formField) == null ? void 0 : t.inputElement;
28
+ !o || o.localName !== "input" || ((b = this._formField) == null || b.clear(), o.focus(), o.dispatchEvent(new InputEvent("input", { bubbles: !0, composed: !0 })), o.dispatchEvent(new Event("change", { bubbles: !0 })));
29
29
  }
30
30
  willUpdate(o) {
31
- super.willUpdate(o), this.setAttribute("aria-label", m[this.c.current]);
31
+ super.willUpdate(o), this.setAttribute("aria-label", m[this._language.current]);
32
32
  }
33
33
  renderTemplate() {
34
34
  return c` <sbb-icon name="cross-small"></sbb-icon> `;