@albi_scando/as-design-system-lib 1.7.8 → 1.8.1

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 (41) hide show
  1. package/dist/as-design-system-lib.es.js +1229 -308
  2. package/dist/as-design-system-lib.umd.js +88 -11
  3. package/dist/styles/index.css +230 -81
  4. package/dist/styles/index.css.map +1 -1
  5. package/dist/types/main.d.ts +11 -0
  6. package/dist/types/web-components/alerts/alert/component.d.ts +18 -0
  7. package/dist/types/web-components/alerts/alert/main.d.ts +3 -0
  8. package/dist/types/web-components/alerts/alert/selector.d.ts +4 -0
  9. package/dist/types/web-components/avatars/avatar/component.d.ts +25 -0
  10. package/dist/types/web-components/avatars/avatar/main.d.ts +3 -0
  11. package/dist/types/web-components/avatars/avatar/selector.d.ts +4 -0
  12. package/dist/types/web-components/badges/badge/component.d.ts +18 -0
  13. package/dist/types/web-components/badges/badge/main.d.ts +3 -0
  14. package/dist/types/web-components/badges/badge/selector.d.ts +4 -0
  15. package/dist/types/web-components/cards/base-card/component.d.ts +14 -0
  16. package/dist/types/web-components/cards/base-card/main.d.ts +3 -0
  17. package/dist/types/web-components/cards/base-card/selector.d.ts +4 -0
  18. package/dist/types/web-components/inputs/text-input/component.d.ts +39 -0
  19. package/dist/types/web-components/inputs/text-input/main.d.ts +2 -0
  20. package/dist/types/web-components/inputs/text-input/selector.d.ts +1 -0
  21. package/dist/types/web-components/inputs/toggle/component.d.ts +24 -0
  22. package/dist/types/web-components/inputs/toggle/main.d.ts +2 -0
  23. package/dist/types/web-components/inputs/toggle/selector.d.ts +1 -0
  24. package/dist/types/web-components/loaders/loader-bars/component.d.ts +29 -0
  25. package/dist/types/web-components/loaders/loader-bars/selector.d.ts +4 -0
  26. package/dist/types/web-components/loaders/progress-bar/component.d.ts +23 -0
  27. package/dist/types/web-components/loaders/progress-bar/main.d.ts +2 -0
  28. package/dist/types/web-components/loaders/progress-bar/selector.d.ts +1 -0
  29. package/dist/types/web-components/loaders/skeleton/component.d.ts +16 -0
  30. package/dist/types/web-components/loaders/skeleton/main.d.ts +2 -0
  31. package/dist/types/web-components/loaders/skeleton/selector.d.ts +1 -0
  32. package/dist/types/web-components/loaders/spinner/component.d.ts +18 -0
  33. package/dist/types/web-components/loaders/spinner/main.d.ts +2 -0
  34. package/dist/types/web-components/loaders/spinner/selector.d.ts +1 -0
  35. package/dist/types/web-components/tags/tag/component.d.ts +20 -0
  36. package/dist/types/web-components/tags/tag/main.d.ts +3 -0
  37. package/dist/types/web-components/tags/tag/selector.d.ts +4 -0
  38. package/dist/types/web-components/tooltips/tooltip/component.d.ts +30 -0
  39. package/dist/types/web-components/tooltips/tooltip/main.d.ts +3 -0
  40. package/dist/types/web-components/tooltips/tooltip/selector.d.ts +4 -0
  41. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
- const yt = "as-design-system-lib";
2
- class ft {
1
+ const ye = "as-design-system-lib";
2
+ class Ae {
3
3
  /**
4
4
  * Creates an instance of WebComponentsRegistry.
5
5
  * Registers all custom elements provided in the map of components.
@@ -19,8 +19,8 @@ class ft {
19
19
  * @returns {void}
20
20
  */
21
21
  registerAllComponents(t) {
22
- Array.from(t.entries()).forEach(([e, s]) => {
23
- this.registerComponent(e, s);
22
+ Array.from(t.entries()).forEach(([e, r]) => {
23
+ this.registerComponent(e, r);
24
24
  });
25
25
  }
26
26
  /**
@@ -36,100 +36,160 @@ class ft {
36
36
  customElements.get(t) === void 0 ? (customElements.define(t, e), console.log(`Registered Web Component: ${t}`)) : console.warn(`Web Component "${t}" is already registered.`);
37
37
  }
38
38
  }
39
- const E = {
39
+ const T = {
40
40
  CONFIRMATION_DIALOG_CONFIRM: "confirmation-dialog-confirm",
41
41
  CONFIRMATION_DIALOG_UNDO: "confirmation-dialog-undo"
42
- }, f = {
42
+ }, w = {
43
+ COSMO: "Cosmo theme with a futuristic and space-inspired design.",
44
+ DARK: "Dark theme with a sleek and modern look.",
45
+ DARK_PURPLE: "Dark Purple theme with a luxurious and elegant feel.",
43
46
  FERRARI: "Ferrari theme inspired by the iconic red color of Ferrari cars.",
47
+ FIRE: "Fire theme with vibrant and energetic colors.",
48
+ FOREST: "Forest theme with natural and earthy tones.",
44
49
  LIGHT: "Light theme with a clean and minimalistic design.",
45
50
  LIGHT_BLUE: "Light Blue theme with a refreshing and calm appearance.",
46
- DARK: "Dark theme with a sleek and modern look.",
47
- DARK_PURPLE: "Dark Purple theme with a luxurious and elegant feel."
48
- }, _ = {
51
+ WATER: "Water theme with a serene and tranquil feel."
52
+ }, S = {
53
+ COSMO: "🚀",
54
+ DARK: "🌙",
55
+ DARK_PURPLE: "🟣",
49
56
  FERRARI: "🏎️",
57
+ FIRE: "🔥",
58
+ FOREST: "🌿",
50
59
  LIGHT: "☀️",
51
60
  LIGHT_BLUE: "🫧",
52
- DARK: "🌙",
53
- DARK_PURPLE: "🟣"
54
- }, A = {
61
+ WATER: "💧"
62
+ }, E = {
63
+ COSMO: "Cosmo",
64
+ DARK: "Dark",
65
+ DARK_PURPLE: "Dark Purple",
55
66
  FERRARI: "Ferrari",
67
+ FIRE: "Fire",
68
+ FOREST: "Forest",
56
69
  LIGHT: "Light",
57
70
  LIGHT_BLUE: "Light Blue",
58
- DARK: "Dark",
59
- DARK_PURPLE: "Dark Purple"
60
- }, S = {
71
+ WATER: "Water"
72
+ }, x = {
73
+ COSMO: "cosmo",
74
+ DARK: "dark",
75
+ DARK_PURPLE: "dark-purple",
61
76
  FERRARI: "ferrari",
77
+ FIRE: "fire",
78
+ FOREST: "forest",
62
79
  LIGHT: "light",
63
80
  LIGHT_BLUE: "light-blue",
81
+ WATER: "water"
82
+ }, u = {
83
+ COSMO: "cosmo",
64
84
  DARK: "dark",
65
- DARK_PURPLE: "dark-purple"
66
- }, c = {
85
+ DARK_PURPLE: "dark-purple",
67
86
  FERRARI: "ferrari",
87
+ FIRE: "fire",
88
+ FOREST: "forest",
68
89
  LIGHT: "light",
69
90
  LIGHT_BLUE: "light-blue",
70
- DARK: "dark",
71
- DARK_PURPLE: "dark-purple"
72
- }, G = /* @__PURE__ */ new Map([
91
+ WATER: "water"
92
+ }, dt = /* @__PURE__ */ new Map([
93
+ [
94
+ u.COSMO,
95
+ {
96
+ description: w.COSMO,
97
+ icon: S.COSMO,
98
+ id: u.COSMO,
99
+ name: E.COSMO,
100
+ value: x.COSMO
101
+ }
102
+ ],
103
+ [
104
+ u.DARK,
105
+ {
106
+ description: w.DARK,
107
+ icon: S.DARK,
108
+ id: u.DARK,
109
+ name: E.DARK,
110
+ value: x.DARK
111
+ }
112
+ ],
113
+ [
114
+ u.DARK_PURPLE,
115
+ {
116
+ description: w.DARK_PURPLE,
117
+ icon: S.DARK_PURPLE,
118
+ id: u.DARK_PURPLE,
119
+ name: E.DARK_PURPLE,
120
+ value: x.DARK_PURPLE
121
+ }
122
+ ],
73
123
  [
74
- c.DARK,
124
+ u.FERRARI,
75
125
  {
76
- description: f.DARK,
77
- icon: _.DARK,
78
- id: c.DARK,
79
- name: A.DARK,
80
- value: S.DARK
126
+ description: w.FERRARI,
127
+ icon: S.FERRARI,
128
+ id: u.FERRARI,
129
+ name: E.FERRARI,
130
+ value: x.FERRARI
81
131
  }
82
132
  ],
83
133
  [
84
- c.DARK_PURPLE,
134
+ u.FIRE,
85
135
  {
86
- description: f.DARK_PURPLE,
87
- icon: _.DARK_PURPLE,
88
- id: c.DARK_PURPLE,
89
- name: A.DARK_PURPLE,
90
- value: S.DARK_PURPLE
136
+ description: w.FIRE,
137
+ icon: S.FIRE,
138
+ id: u.FIRE,
139
+ name: E.FIRE,
140
+ value: x.FIRE
91
141
  }
92
142
  ],
93
143
  [
94
- c.FERRARI,
144
+ u.FOREST,
95
145
  {
96
- description: f.FERRARI,
97
- icon: _.FERRARI,
98
- id: c.FERRARI,
99
- name: A.FERRARI,
100
- value: S.FERRARI
146
+ description: w.FOREST,
147
+ icon: S.FOREST,
148
+ id: u.FOREST,
149
+ name: E.FOREST,
150
+ value: x.FOREST
101
151
  }
102
152
  ],
103
153
  [
104
- c.LIGHT,
154
+ u.LIGHT,
105
155
  {
106
- description: f.LIGHT,
107
- icon: _.LIGHT,
108
- id: c.LIGHT,
109
- name: A.LIGHT,
110
- value: S.LIGHT
156
+ description: w.LIGHT,
157
+ icon: S.LIGHT,
158
+ id: u.LIGHT,
159
+ name: E.LIGHT,
160
+ value: x.LIGHT
111
161
  }
112
162
  ],
113
163
  [
114
- c.LIGHT_BLUE,
164
+ u.LIGHT_BLUE,
115
165
  {
116
- description: f.LIGHT_BLUE,
117
- icon: _.LIGHT_BLUE,
118
- id: c.LIGHT_BLUE,
119
- name: A.LIGHT_BLUE,
120
- value: S.LIGHT_BLUE
166
+ description: w.LIGHT_BLUE,
167
+ icon: S.LIGHT_BLUE,
168
+ id: u.LIGHT_BLUE,
169
+ name: E.LIGHT_BLUE,
170
+ value: x.LIGHT_BLUE
171
+ }
172
+ ],
173
+ [
174
+ u.WATER,
175
+ {
176
+ description: w.WATER,
177
+ icon: S.WATER,
178
+ id: u.WATER,
179
+ name: E.WATER,
180
+ value: x.WATER
121
181
  }
122
182
  ]
123
- ]), _t = (m) => {
124
- F();
125
- const t = G.get(m)?.value;
183
+ ]), _e = ($) => {
184
+ ct();
185
+ const t = dt.get($)?.value;
126
186
  t !== void 0 && document.body.classList.add(t);
127
- }, F = () => {
128
- document.body.classList.remove(...Object.values(c));
129
- }, z = "base-button", o = "", g = {
187
+ }, ct = () => {
188
+ document.body.classList.remove(...Object.values(u));
189
+ }, ut = "base-button", d = "", O = {
130
190
  SHOW_MODAL: "show-modal",
131
191
  CLOSE: "close"
132
- }, B = {
192
+ }, ht = {
133
193
  CUSTOM_CROSSHAIR: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
134
194
  <!-- White border (underneath) -->
135
195
  <line x1="16" y1="2" x2="16" y2="30" stroke="white" stroke-width="5"/>
@@ -140,20 +200,20 @@ const E = {
140
200
  <line x1="2" y1="16" x2="30" y2="16" stroke="black" stroke-width="2"/>
141
201
  </svg>`
142
202
  };
143
- `${btoa(B.CUSTOM_CROSSHAIR)}`;
144
- const R = {
203
+ `${btoa(ht.CUSTOM_CROSSHAIR)}`;
204
+ const F = {
145
205
  ANY: "any",
146
206
  NONE: "none"
147
- }, O = {
207
+ }, P = {
148
208
  KEY_DOWN: "keydown"
149
- }, b = {
209
+ }, R = {
150
210
  CLICK: "click"
151
- }, j = `<button part="button">
211
+ }, bt = `<button part="button">
152
212
  <slot></slot>
153
213
  </button>
154
- `, V = "*{box-sizing:border-box}:where(button,input[type=button],input[type=submit],input[type=reset]),:where(input[type=file])::file-selector-button{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);font-family:var(--font-family-base);letter-spacing:var(--letter-spacing-normal);line-height:var(--line-height-normal);padding-block:var(--button-padding-block-md);padding-inline:var(--button-padding-inline-md);display:inline-flex;justify-content:center;align-items:center;text-align:center;gap:var(--gap-sm);background:var(--color-bg-secondary);color:var(--color-text-primary);border:var(--border-width-1) solid var(--color-border-primary);border-radius:var(--border-radius-lg);transition:all var(--transition-base)}:where(button,input[type=button],input[type=submit],input[type=reset])>.material-symbols-outlined{font-size:var(--font-size-xl);font-family:Material Symbols Outlined;line-height:1}:where(button,input[type=button],input[type=submit],input[type=reset])[disabled]{opacity:.3;cursor:not-allowed}:where(button,input[type=button],input[type=submit],input[type=reset]):where(:not(:disabled):hover),:where(button,input[type=button],input[type=submit],input[type=reset]):where(:not(:disabled):active){background:var(--color-hover-bg-secondary);border-color:var(--color-hover-border-secondary)}:where(input[type=file]){inline-size:100%;max-inline-size:max-content;background-color:var(--color-bg-secondary)}", N = new CSSStyleSheet();
155
- N.replaceSync(V);
156
- class i extends HTMLElement {
214
+ `, vt = "*{box-sizing:border-box}:where(button,input[type=button],input[type=submit],input[type=reset]),:where(input[type=file])::file-selector-button{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-family:var(--font-family-base);letter-spacing:var(--letter-spacing-wide);line-height:var(--line-height-normal);padding-block:var(--button-padding-block-md);padding-inline:var(--button-padding-inline-md);display:inline-flex;justify-content:center;align-items:center;text-align:center;gap:var(--gap-sm);background:var(--color-bg-secondary);color:var(--color-text-primary);border:var(--border-width-1) solid var(--color-border-secondary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast),filter var(--transition-fast)}:where(button,input[type=button],input[type=submit],input[type=reset])>.material-symbols-outlined{font-size:var(--font-size-xl);font-family:Material Symbols Outlined;line-height:1}:where(button,input[type=button],input[type=submit],input[type=reset])[disabled]{opacity:.35;cursor:not-allowed;box-shadow:none}:where(button,input[type=button],input[type=submit],input[type=reset]):where(:not(:disabled):hover){background:var(--color-hover-bg-secondary);border-color:var(--color-hover-border-secondary);box-shadow:var(--shadow-md)}:where(button,input[type=button],input[type=submit],input[type=reset]):where(:not(:disabled):active){background:var(--color-hover-bg-secondary);border-color:var(--color-hover-border-secondary);box-shadow:var(--shadow-sm)}:where(button,input[type=button],input[type=submit],input[type=reset]):focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}:where(input[type=file]){inline-size:100%;max-inline-size:max-content;background-color:var(--color-bg-secondary)}", U = new CSSStyleSheet();
215
+ U.replaceSync(vt);
216
+ class s extends HTMLElement {
157
217
  /**
158
218
  * @see HTMLButtonElement.autofocus
159
219
  */
@@ -191,73 +251,73 @@ class i extends HTMLElement {
191
251
  * @ignore
192
252
  */
193
253
  constructor() {
194
- super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(N);
254
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(U);
195
255
  }
196
256
  /**
197
257
  * Specifies which attributes should be observed for changes.
198
258
  */
199
259
  static get observedAttributes() {
200
260
  return [
201
- i.autofocusAttribute,
202
- i.commandAttribute,
203
- i.commandforAttribute,
204
- i.disabledAttribute,
205
- i.nameAttribute,
206
- i.titleAttribute,
207
- i.typeAttribute,
208
- i.valueAttribute
261
+ s.autofocusAttribute,
262
+ s.commandAttribute,
263
+ s.commandforAttribute,
264
+ s.disabledAttribute,
265
+ s.nameAttribute,
266
+ s.titleAttribute,
267
+ s.typeAttribute,
268
+ s.valueAttribute
209
269
  ];
210
270
  }
211
271
  get buttonElement() {
212
272
  return this.shadowRoot?.querySelector("button");
213
273
  }
214
274
  get autofocus() {
215
- return this.hasAttribute(i.autofocusAttribute);
275
+ return this.hasAttribute(s.autofocusAttribute);
216
276
  }
217
277
  set autofocus(t) {
218
- t ? this.setAttribute(i.autofocusAttribute, o) : this.removeAttribute(i.autofocusAttribute);
278
+ t ? this.setAttribute(s.autofocusAttribute, d) : this.removeAttribute(s.autofocusAttribute);
219
279
  }
220
280
  get command() {
221
- return this.getAttribute(i.commandAttribute) ?? o;
281
+ return this.getAttribute(s.commandAttribute) ?? d;
222
282
  }
223
283
  set command(t) {
224
- this.setAttribute(i.commandAttribute, t);
284
+ this.setAttribute(s.commandAttribute, t);
225
285
  }
226
286
  get commandfor() {
227
- return this.getAttribute(i.commandforAttribute) ?? o;
287
+ return this.getAttribute(s.commandforAttribute) ?? d;
228
288
  }
229
289
  set commandfor(t) {
230
- t !== o ? this.setAttribute(i.commandforAttribute, t) : this.removeAttribute(i.commandforAttribute);
290
+ t !== d ? this.setAttribute(s.commandforAttribute, t) : this.removeAttribute(s.commandforAttribute);
231
291
  }
232
292
  get disabled() {
233
- return this.hasAttribute(i.disabledAttribute);
293
+ return this.hasAttribute(s.disabledAttribute);
234
294
  }
235
295
  set disabled(t) {
236
- t ? this.setAttribute(i.disabledAttribute, o) : this.removeAttribute(i.disabledAttribute);
296
+ t ? this.setAttribute(s.disabledAttribute, d) : this.removeAttribute(s.disabledAttribute);
237
297
  }
238
298
  get name() {
239
- return this.getAttribute(i.nameAttribute) ?? o;
299
+ return this.getAttribute(s.nameAttribute) ?? d;
240
300
  }
241
301
  set name(t) {
242
- t !== o ? this.setAttribute(i.nameAttribute, t) : this.removeAttribute(i.nameAttribute);
302
+ t !== d ? this.setAttribute(s.nameAttribute, t) : this.removeAttribute(s.nameAttribute);
243
303
  }
244
304
  get headline() {
245
- return this.getAttribute(i.titleAttribute) ?? o;
305
+ return this.getAttribute(s.titleAttribute) ?? d;
246
306
  }
247
307
  set headline(t) {
248
- t !== o ? this.setAttribute(i.titleAttribute, t) : this.removeAttribute(i.titleAttribute);
308
+ t !== d ? this.setAttribute(s.titleAttribute, t) : this.removeAttribute(s.titleAttribute);
249
309
  }
250
310
  get type() {
251
- return this.getAttribute(i.typeAttribute) ?? "button";
311
+ return this.getAttribute(s.typeAttribute) ?? "button";
252
312
  }
253
313
  set type(t) {
254
- t !== o ? this.setAttribute(i.typeAttribute, t) : this.removeAttribute(i.typeAttribute);
314
+ t !== d ? this.setAttribute(s.typeAttribute, t) : this.removeAttribute(s.typeAttribute);
255
315
  }
256
316
  get value() {
257
- return this.getAttribute(i.valueAttribute) ?? "button";
317
+ return this.getAttribute(s.valueAttribute) ?? "button";
258
318
  }
259
319
  set value(t) {
260
- t !== o ? this.setAttribute(i.valueAttribute, t) : this.removeAttribute(i.valueAttribute);
320
+ t !== d ? this.setAttribute(s.valueAttribute, t) : this.removeAttribute(s.valueAttribute);
261
321
  }
262
322
  /**
263
323
  * Lifecycle hook invoked when the component is inserted into the DOM.
@@ -284,15 +344,15 @@ class i extends HTMLElement {
284
344
  * @param newValue - The new value (or null if removed)
285
345
  * @returns {void}
286
346
  */
287
- attributeChangedCallback(t, e, s) {
288
- s !== e && this._syncAttribute(t);
347
+ attributeChangedCallback(t, e, r) {
348
+ r !== e && this._syncAttribute(t);
289
349
  }
290
350
  /**
291
351
  * Renders the component's HTML structure.
292
352
  * Syncs host attributes to the internal button element.
293
353
  */
294
354
  _render() {
295
- this.shadowRoot !== null && (this.shadowRoot.innerHTML = j, this._syncAttributes());
355
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = bt, this._syncAttributes());
296
356
  }
297
357
  /**
298
358
  * Adds event listeners to the component.
@@ -300,7 +360,7 @@ class i extends HTMLElement {
300
360
  * @returns {void}
301
361
  */
302
362
  _addEventListeners() {
303
- this.buttonElement.addEventListener(b.CLICK, this._handleClick);
363
+ this.buttonElement.addEventListener(R.CLICK, this._handleClick);
304
364
  }
305
365
  /**
306
366
  * Removes event listeners from the component.
@@ -308,7 +368,7 @@ class i extends HTMLElement {
308
368
  * @returns {void}
309
369
  */
310
370
  _removeEventListeners() {
311
- this.buttonElement.addEventListener(b.CLICK, this._handleClick);
371
+ this.buttonElement.addEventListener(R.CLICK, this._handleClick);
312
372
  }
313
373
  /**
314
374
  * Handles the internal button click event and executes the configured command.
@@ -333,17 +393,17 @@ class i extends HTMLElement {
333
393
  * @returns {void}
334
394
  */
335
395
  _handleClick = () => {
336
- if (this.command === o || this.commandfor === o)
396
+ if (this.command === d || this.commandfor === d)
337
397
  return;
338
398
  let t = document.getElementById(this.commandfor);
339
399
  if (t ??= this._findElementInShadowDOM(this.commandfor), t === null)
340
400
  return;
341
401
  const e = t;
342
402
  switch (this.command) {
343
- case g.SHOW_MODAL:
403
+ case O.SHOW_MODAL:
344
404
  e.showModal?.();
345
405
  break;
346
- case g.CLOSE:
406
+ case O.CLOSE:
347
407
  e.close?.();
348
408
  break;
349
409
  }
@@ -356,21 +416,21 @@ class i extends HTMLElement {
356
416
  * @returns The element if found, null otherwise
357
417
  */
358
418
  _findElementInShadowDOM(t) {
359
- const s = `#${CSS.escape(t)}`;
360
- let r = this.querySelector(s);
361
- if (r !== null || (r = this._searchInShadowRootsOfChildren(this, s), r !== null))
362
- return r;
363
- let n = this.parentElement;
364
- for (; n !== null; ) {
365
- if (r = n.querySelector(s), r !== null || (r = this._searchInShadowRootsOfChildren(n, s), r !== null))
366
- return r;
367
- const l = n.parentElement;
368
- if (l !== null)
369
- n = l;
419
+ const r = `#${CSS.escape(t)}`;
420
+ let i = this.querySelector(r);
421
+ if (i !== null || (i = this._searchInShadowRootsOfChildren(this, r), i !== null))
422
+ return i;
423
+ let a = this.parentElement;
424
+ for (; a !== null; ) {
425
+ if (i = a.querySelector(r), i !== null || (i = this._searchInShadowRootsOfChildren(a, r), i !== null))
426
+ return i;
427
+ const v = a.parentElement;
428
+ if (v !== null)
429
+ a = v;
370
430
  else {
371
- const a = n.getRootNode();
372
- if (a instanceof ShadowRoot && a.host !== null)
373
- n = a.host;
431
+ const c = a.getRootNode();
432
+ if (c instanceof ShadowRoot && c.host !== null)
433
+ a = c.host;
374
434
  else
375
435
  break;
376
436
  }
@@ -385,25 +445,25 @@ class i extends HTMLElement {
385
445
  * @returns The element if found, null otherwise
386
446
  */
387
447
  _searchInShadowRootsOfChildren(t, e) {
388
- const s = t.children;
389
- for (const r of s) {
390
- if (r.shadowRoot !== null) {
391
- const l = r.shadowRoot.querySelector(e);
392
- if (l !== null)
393
- return l;
394
- const a = this._searchInShadowRootsOfChildren(
395
- r.shadowRoot,
448
+ const r = t.children;
449
+ for (const i of r) {
450
+ if (i.shadowRoot !== null) {
451
+ const v = i.shadowRoot.querySelector(e);
452
+ if (v !== null)
453
+ return v;
454
+ const c = this._searchInShadowRootsOfChildren(
455
+ i.shadowRoot,
396
456
  e
397
457
  );
398
- if (a !== null)
399
- return a;
458
+ if (c !== null)
459
+ return c;
400
460
  }
401
- const n = this._searchInShadowRootsOfChildren(
402
- r,
461
+ const a = this._searchInShadowRootsOfChildren(
462
+ i,
403
463
  e
404
464
  );
405
- if (n !== null)
406
- return n;
465
+ if (a !== null)
466
+ return a;
407
467
  }
408
468
  return null;
409
469
  }
@@ -415,7 +475,7 @@ class i extends HTMLElement {
415
475
  */
416
476
  _syncAttribute(t) {
417
477
  const e = this.buttonElement;
418
- e !== null && (this.hasAttribute(t) ? e.setAttribute(t, this.getAttribute(t) ?? o) : e.removeAttribute(t));
478
+ e !== null && (this.hasAttribute(t) ? e.setAttribute(t, this.getAttribute(t) ?? d) : e.removeAttribute(t));
419
479
  }
420
480
  /**
421
481
  * Syncs all observed attributes from host to button element.
@@ -424,34 +484,34 @@ class i extends HTMLElement {
424
484
  * @returns {void}
425
485
  */
426
486
  _syncAttributes() {
427
- i.observedAttributes.forEach((t) => {
487
+ s.observedAttributes.forEach((t) => {
428
488
  this._syncAttribute(t);
429
489
  });
430
490
  }
431
491
  }
432
- const At = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
492
+ const we = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
433
493
  __proto__: null,
434
- BaseButtonComponent: i,
435
- selector: z
436
- }, Symbol.toStringTag, { value: "Module" })), q = `<button title="Undo" part="button">
494
+ BaseButtonComponent: s,
495
+ selector: ut
496
+ }, Symbol.toStringTag, { value: "Module" })), gt = `<button title="Undo" part="button">
437
497
  <span class="material-symbols-outlined">undo</span>
438
498
  <span>Undo</span>
439
499
  </button>
440
- `, W = "*{box-sizing:border-box}button[part=button]{background:var(--color-warning);font-weight:var(--font-weight-medium);padding-block:var(--button-padding-block-md);padding-inline:var(--button-padding-inline-md);border-radius:var(--border-radius-lg);border:none;box-shadow:var(--shadow-md);transition:all var(--transition-base);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:var(--gap-sm)}button[part=button]:hover{filter:brightness(1.2)}", T = new CSSStyleSheet();
441
- T.replaceSync(W);
442
- class Y extends i {
500
+ `, pt = "*{box-sizing:border-box}button[part=button]{background:var(--color-warning);font-weight:var(--font-weight-medium);padding-block:var(--button-padding-block-md);padding-inline:var(--button-padding-inline-md);border-radius:var(--border-radius-lg);border:none;box-shadow:var(--shadow-md);transition:all var(--transition-base);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:var(--gap-sm)}button[part=button]:hover{filter:brightness(1.2)}", K = new CSSStyleSheet();
501
+ K.replaceSync(pt);
502
+ class ft extends s {
443
503
  /**
444
504
  * @constructor
445
505
  * @ignore
446
506
  */
447
507
  constructor() {
448
- super(), this.shadowRoot?.adoptedStyleSheets.push(T), this.command = g.CLOSE, this.title = "Undo";
508
+ super(), this.shadowRoot?.adoptedStyleSheets.push(K), this.command = O.CLOSE, this.title = "Undo";
449
509
  }
450
510
  /**
451
511
  * Specifies which attributes should be observed for changes.
452
512
  */
453
513
  static get observedAttributes() {
454
- return i.observedAttributes;
514
+ return s.observedAttributes;
455
515
  }
456
516
  /**
457
517
  * Lifecycle hook invoked when the component is inserted into the DOM.
@@ -463,7 +523,7 @@ class Y extends i {
463
523
  * Renders the component's HTML structure.
464
524
  */
465
525
  _render() {
466
- this.shadowRoot !== null && (this.shadowRoot.innerHTML = q, this._syncAttributes());
526
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = gt, this._syncAttributes());
467
527
  }
468
528
  /**
469
529
  * It finds the closest parent dialog and
@@ -478,29 +538,29 @@ class Y extends i {
478
538
  e !== null && (this.commandfor = e.id);
479
539
  }
480
540
  }
481
- const x = "undo-button", St = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
541
+ const j = "undo-button", Se = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
482
542
  __proto__: null,
483
- UndoButtonComponent: Y,
484
- selector: x
485
- }, Symbol.toStringTag, { value: "Module" })), X = `<button title="Confirm" part="button">
543
+ UndoButtonComponent: ft,
544
+ selector: j
545
+ }, Symbol.toStringTag, { value: "Module" })), mt = `<button title="Confirm" part="button">
486
546
  <span class="material-symbols-outlined">check</span>
487
547
  <span>Confirm</span>
488
548
  </button>
489
- `, J = "*{box-sizing:border-box}button[part=button]{background:var(--color-success);font-weight:var(--font-weight-medium);padding-block:var(--button-padding-block-md);padding-inline:var(--button-padding-inline-md);border-radius:var(--border-radius-lg);border:none;box-shadow:var(--shadow-md);transition:all var(--transition-base);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:var(--gap-sm)}button[part=button]:hover{filter:brightness(1.2)}", C = new CSSStyleSheet();
490
- C.replaceSync(J);
491
- class Q extends i {
549
+ `, yt = "*{box-sizing:border-box}button[part=button]{background:var(--color-success);font-weight:var(--font-weight-medium);padding-block:var(--button-padding-block-md);padding-inline:var(--button-padding-inline-md);border-radius:var(--border-radius-lg);border:none;box-shadow:var(--shadow-md);transition:all var(--transition-base);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:var(--gap-sm)}button[part=button]:hover{filter:brightness(1.2)}", G = new CSSStyleSheet();
550
+ G.replaceSync(yt);
551
+ class At extends s {
492
552
  /**
493
553
  * @constructor
494
554
  * @ignore
495
555
  */
496
556
  constructor() {
497
- super(), this.shadowRoot?.adoptedStyleSheets.push(C), this.command = g.CLOSE, this.title = "Confirm";
557
+ super(), this.shadowRoot?.adoptedStyleSheets.push(G), this.command = O.CLOSE, this.title = "Confirm";
498
558
  }
499
559
  /**
500
560
  * Specifies which attributes should be observed for changes.
501
561
  */
502
562
  static get observedAttributes() {
503
- return i.observedAttributes;
563
+ return s.observedAttributes;
504
564
  }
505
565
  /**
506
566
  * Lifecycle hook invoked when the component is inserted into the DOM.
@@ -512,7 +572,7 @@ class Q extends i {
512
572
  * Renders the component's HTML structure.
513
573
  */
514
574
  _render() {
515
- this.shadowRoot !== null && (this.shadowRoot.innerHTML = X, this._syncAttributes());
575
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = mt, this._syncAttributes());
516
576
  }
517
577
  /**
518
578
  * It finds the closest parent dialog and
@@ -527,16 +587,16 @@ class Q extends i {
527
587
  e !== null && (this.commandfor = e.id);
528
588
  }
529
589
  }
530
- const I = "confirm-button", Lt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
590
+ const q = "confirm-button", Ee = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
531
591
  __proto__: null,
532
- ConfirmButtonComponent: Q,
533
- selector: I
534
- }, Symbol.toStringTag, { value: "Module" })), Z = `<button part="button">
592
+ ConfirmButtonComponent: At,
593
+ selector: q
594
+ }, Symbol.toStringTag, { value: "Module" })), _t = `<button part="button">
535
595
  <span class="material-symbols-outlined">chevron_left</span>
536
596
  </button>
537
- `, tt = "*{box-sizing:border-box}button[part=button]{border:none;background:transparent}button[part=button]:not(:disabled):hover{transform:scale(1.2)}", M = new CSSStyleSheet();
538
- M.replaceSync(tt);
539
- class L extends i {
597
+ `, wt = "*{box-sizing:border-box}button[part=button]{border:none;background:transparent}button[part=button]:not(:disabled):hover{transform:scale(1.2)}", W = new CSSStyleSheet();
598
+ W.replaceSync(wt);
599
+ class H extends s {
540
600
  static _disabledAttribute = "disabled";
541
601
  static _titleAttribute = "title";
542
602
  /**
@@ -544,13 +604,13 @@ class L extends i {
544
604
  * @ignore
545
605
  */
546
606
  constructor() {
547
- super(), this.shadowRoot?.adoptedStyleSheets.push(M), this.command = g.CLOSE;
607
+ super(), this.shadowRoot?.adoptedStyleSheets.push(W), this.command = O.CLOSE;
548
608
  }
549
609
  /**
550
610
  * Specifies which attributes should be observed for changes.
551
611
  */
552
612
  static get observedAttributes() {
553
- return i.observedAttributes;
613
+ return s.observedAttributes;
554
614
  }
555
615
  /**
556
616
  * Lifecycle hook invoked when the component is inserted into the DOM.
@@ -562,14 +622,14 @@ class L extends i {
562
622
  * Lifecycle hook invoked whenever an observed attribute changes.
563
623
  * Updates the title visibility based on disabled state.
564
624
  */
565
- attributeChangedCallback(t, e, s) {
566
- super.attributeChangedCallback(t, e, s), t === L._disabledAttribute && this._updateTitle();
625
+ attributeChangedCallback(t, e, r) {
626
+ super.attributeChangedCallback(t, e, r), t === H._disabledAttribute && this._updateTitle();
567
627
  }
568
628
  /**
569
629
  * Renders the component's HTML structure.
570
630
  */
571
631
  _render() {
572
- this.shadowRoot !== null && (this.shadowRoot.innerHTML = Z, this._syncAttributes());
632
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = _t, this._syncAttributes());
573
633
  }
574
634
  /**
575
635
  * Updates the title attribute based on disabled state.
@@ -579,19 +639,19 @@ class L extends i {
579
639
  const t = this.shadowRoot?.querySelector(
580
640
  "button"
581
641
  );
582
- t !== null && (this.disabled ? t.removeAttribute(L._titleAttribute) : t.setAttribute(L._titleAttribute, "Previous"));
642
+ t !== null && (this.disabled ? t.removeAttribute(H._titleAttribute) : t.setAttribute(H._titleAttribute, "Previous"));
583
643
  }
584
644
  }
585
- const et = "previous-button", wt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
645
+ const St = "previous-button", xe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
586
646
  __proto__: null,
587
- PreviousButtonComponent: L,
588
- selector: et
589
- }, Symbol.toStringTag, { value: "Module" })), it = `<button part="button">
647
+ PreviousButtonComponent: H,
648
+ selector: St
649
+ }, Symbol.toStringTag, { value: "Module" })), Et = `<button part="button">
590
650
  <span class="material-symbols-outlined">chevron_right</span>
591
651
  </button>
592
- `, st = "*{box-sizing:border-box}button[part=button]{border:none;background:transparent}button[part=button]:not(:disabled):hover{transform:scale(1.2)}", H = new CSSStyleSheet();
593
- H.replaceSync(st);
594
- class w extends i {
652
+ `, xt = "*{box-sizing:border-box}button[part=button]{border:none;background:transparent}button[part=button]:not(:disabled):hover{transform:scale(1.2)}", C = new CSSStyleSheet();
653
+ C.replaceSync(xt);
654
+ class N extends s {
595
655
  static _disabledAttribute = "disabled";
596
656
  static _titleAttribute = "title";
597
657
  /**
@@ -599,13 +659,13 @@ class w extends i {
599
659
  * @ignore
600
660
  */
601
661
  constructor() {
602
- super(), this.shadowRoot?.adoptedStyleSheets.push(H), this.command = g.CLOSE;
662
+ super(), this.shadowRoot?.adoptedStyleSheets.push(C), this.command = O.CLOSE;
603
663
  }
604
664
  /**
605
665
  * Specifies which attributes should be observed for changes.
606
666
  */
607
667
  static get observedAttributes() {
608
- return i.observedAttributes;
668
+ return s.observedAttributes;
609
669
  }
610
670
  /**
611
671
  * Lifecycle hook invoked when the component is inserted into the DOM.
@@ -617,14 +677,14 @@ class w extends i {
617
677
  * Lifecycle hook invoked whenever an observed attribute changes.
618
678
  * Updates the title visibility based on disabled state.
619
679
  */
620
- attributeChangedCallback(t, e, s) {
621
- super.attributeChangedCallback(t, e, s), t === w._disabledAttribute && this._updateTitle();
680
+ attributeChangedCallback(t, e, r) {
681
+ super.attributeChangedCallback(t, e, r), t === N._disabledAttribute && this._updateTitle();
622
682
  }
623
683
  /**
624
684
  * Renders the component's HTML structure.
625
685
  */
626
686
  _render() {
627
- this.shadowRoot !== null && (this.shadowRoot.innerHTML = it, this._syncAttributes());
687
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = Et, this._syncAttributes());
628
688
  }
629
689
  /**
630
690
  * Updates the title attribute based on disabled state.
@@ -634,19 +694,19 @@ class w extends i {
634
694
  const t = this.shadowRoot?.querySelector(
635
695
  "button"
636
696
  );
637
- t !== null && (this.disabled ? t.removeAttribute(w._titleAttribute) : t.setAttribute(w._titleAttribute, "Next"));
697
+ t !== null && (this.disabled ? t.removeAttribute(N._titleAttribute) : t.setAttribute(N._titleAttribute, "Next"));
638
698
  }
639
699
  }
640
- const rt = "next-button", Et = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
700
+ const Lt = "next-button", Le = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
641
701
  __proto__: null,
642
- NextButtonComponent: w,
643
- selector: rt
644
- }, Symbol.toStringTag, { value: "Module" })), nt = `<dialog part="dialog">
702
+ NextButtonComponent: N,
703
+ selector: Lt
704
+ }, Symbol.toStringTag, { value: "Module" })), kt = `<dialog part="dialog">
645
705
  <slot></slot>
646
706
  </dialog>
647
- `, ot = "*{box-sizing:border-box}dialog{background-color:var(--color-bg-primary);color:var(--color-text-primary);border:var(--border-width-1) solid var(--color-border-secondary);border-radius:var(--border-radius-xl);padding:var(--spacing-4);font-family:var(--font-family-base);line-height:var(--line-height-normal);font-size:var(--font-size-sm);box-shadow:var(--shadow-2xl);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:slideIn var(--transition-base) cubic-bezier(.34,1.56,.64,1) forwards}dialog.closing{animation:slideOut var(--transition-base) cubic-bezier(.34,1.56,.64,1) forwards}dialog::backdrop{background:var(--window-backdrop);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn var(--transition-base) ease-out forwards}dialog.closing::backdrop{animation:fadeOut var(--transition-base) ease-out forwards}@keyframes slideIn{0%{opacity:0;transform:scale(.95) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes slideOut{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.95) translateY(-20px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}", P = new CSSStyleSheet();
648
- P.replaceSync(ot);
649
- class v extends HTMLElement {
707
+ `, Rt = "*{box-sizing:border-box}dialog{background-color:var(--color-bg-primary);color:var(--color-text-primary);border:var(--border-width-1) solid var(--color-border-secondary);border-radius:var(--border-radius-xl);padding:var(--spacing-4);font-family:var(--font-family-base);line-height:var(--line-height-normal);font-size:var(--font-size-sm);box-shadow:var(--shadow-2xl);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:slideIn var(--transition-base) cubic-bezier(.34,1.56,.64,1) forwards}dialog.closing{animation:slideOut var(--transition-base) cubic-bezier(.34,1.56,.64,1) forwards}dialog::backdrop{background:var(--window-backdrop);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn var(--transition-base) ease-out forwards}dialog.closing::backdrop{animation:fadeOut var(--transition-base) ease-out forwards}@keyframes slideIn{0%{opacity:0;transform:scale(.95) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes slideOut{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.95) translateY(-20px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}", Y = new CSSStyleSheet();
708
+ Y.replaceSync(Rt);
709
+ class z extends HTMLElement {
650
710
  /**
651
711
  * @see HTMLDialogElement.closedBy
652
712
  */
@@ -655,31 +715,31 @@ class v extends HTMLElement {
655
715
  * Defines how the dialog can be closed.
656
716
  * @see DialogClosedBy
657
717
  */
658
- _closedBy = R.ANY;
718
+ _closedBy = F.ANY;
659
719
  /**
660
720
  * @constructor
661
721
  * @ignore
662
722
  */
663
723
  constructor() {
664
- super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(P);
724
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(Y);
665
725
  }
666
726
  /**
667
727
  * Specifies which attributes should be observed for changes.
668
728
  */
669
729
  static get observedAttributes() {
670
- return [v.closedByAttribute];
730
+ return [z.closedByAttribute];
671
731
  }
672
732
  get dialogElement() {
673
733
  return this.shadowRoot?.querySelector("dialog");
674
734
  }
675
735
  get command() {
676
- return this.getAttribute(v.closedByAttribute) ?? R.ANY;
736
+ return this.getAttribute(z.closedByAttribute) ?? F.ANY;
677
737
  }
678
738
  get closedBy() {
679
739
  return this._closedBy;
680
740
  }
681
741
  set closedBy(t) {
682
- this._closedBy = t, this.setAttribute(v.closedByAttribute, t);
742
+ this._closedBy = t, this.setAttribute(z.closedByAttribute, t);
683
743
  }
684
744
  /**
685
745
  * Lifecycle
@@ -707,9 +767,9 @@ class v extends HTMLElement {
707
767
  * @param newValue - The new value (or null if removed)
708
768
  * @returns {void}
709
769
  */
710
- attributeChangedCallback(t, e, s) {
711
- const r = this.dialogElement;
712
- r != null && s !== e && this._syncAttribute(t);
770
+ attributeChangedCallback(t, e, r) {
771
+ const i = this.dialogElement;
772
+ i != null && r !== e && this._syncAttribute(t);
713
773
  }
714
774
  /**
715
775
  * Adds event listeners to the component.
@@ -731,7 +791,7 @@ class v extends HTMLElement {
731
791
  * @returns {void}
732
792
  */
733
793
  _render() {
734
- this.shadowRoot !== null && (this.shadowRoot.innerHTML = nt, this._syncAttributes());
794
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = kt, this._syncAttributes());
735
795
  }
736
796
  /**
737
797
  * Syncs a single attribute from host to dialog element.
@@ -741,7 +801,7 @@ class v extends HTMLElement {
741
801
  */
742
802
  _syncAttribute(t) {
743
803
  const e = this.dialogElement;
744
- e != null && (this.hasAttribute(t) === !0 ? e.setAttribute(t, this.getAttribute(t) ?? o) : e.removeAttribute(t));
804
+ e != null && (this.hasAttribute(t) === !0 ? e.setAttribute(t, this.getAttribute(t) ?? d) : e.removeAttribute(t));
745
805
  }
746
806
  /**
747
807
  * Syncs all observed attributes from host to dialog element.
@@ -750,7 +810,7 @@ class v extends HTMLElement {
750
810
  * @returns {void}
751
811
  */
752
812
  _syncAttributes() {
753
- v.observedAttributes.forEach((t) => {
813
+ z.observedAttributes.forEach((t) => {
754
814
  this._syncAttribute(t);
755
815
  });
756
816
  }
@@ -776,11 +836,11 @@ class v extends HTMLElement {
776
836
  }, 300);
777
837
  }
778
838
  }
779
- const at = "base-dialog", Rt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
839
+ const zt = "base-dialog", ke = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
780
840
  __proto__: null,
781
- BaseDialogComponent: v,
782
- selector: at
783
- }, Symbol.toStringTag, { value: "Module" })), lt = `<dialog part="dialog">
841
+ BaseDialogComponent: z,
842
+ selector: zt
843
+ }, Symbol.toStringTag, { value: "Module" })), Mt = `<dialog part="dialog">
784
844
  <header part="header">
785
845
  <h2></h2>
786
846
  </header>
@@ -792,7 +852,7 @@ const at = "base-dialog", Rt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Obj
792
852
  <undo-button></undo-button>
793
853
  </footer>
794
854
  </dialog>
795
- `, dt = "*{box-sizing:border-box}dialog header[part=header] h2{margin:0;padding:0}dialog div[part=body] p{margin:0;padding:0}dialog footer[part=footer]{display:flex;gap:var(--gap-md);justify-content:flex-end}", ut = `<dialog part="dialog">
855
+ `, Ot = "*{box-sizing:border-box}dialog header[part=header] h2{margin:0;padding:0}dialog div[part=body] p{margin:0;padding:0}dialog footer[part=footer]{display:flex;gap:var(--gap-md);justify-content:flex-end}", $t = `<dialog part="dialog">
796
856
  <header part="header">
797
857
  <slot name="header"></slot>
798
858
  </header>
@@ -803,9 +863,9 @@ const at = "base-dialog", Rt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Obj
803
863
  <slot name="footer"></slot>
804
864
  </footer>
805
865
  </dialog>
806
- `, ct = '*{box-sizing:border-box}dialog[open]{max-width:100%;max-height:100%;display:flex;flex-direction:column;gap:var(--spacing-4)}dialog>[part]{position:relative}dialog>[part][hidden]{display:none}dialog>[part][data-divider=true]:after{content:"";position:absolute;left:0;right:0;bottom:0;border-bottom:var(--border-width-1) solid var(--color-neutral-600)}dialog>[part][data-divider=true]{padding-bottom:var(--spacing-4)}dialog div[part=body]{flex:1;min-height:0;overflow-y:auto}', D = new CSSStyleSheet();
807
- D.replaceSync(ct);
808
- class k extends v {
866
+ `, It = '*{box-sizing:border-box}dialog[open]{max-width:100%;max-height:100%;display:flex;flex-direction:column;gap:var(--spacing-4)}dialog>[part]{position:relative}dialog>[part][hidden]{display:none}dialog>[part][data-divider=true]:after{content:"";position:absolute;left:0;right:0;bottom:0;border-bottom:var(--border-width-1) solid var(--color-neutral-600)}dialog>[part][data-divider=true]{padding-bottom:var(--spacing-4)}dialog div[part=body]{flex:1;min-height:0;overflow-y:auto}', V = new CSSStyleSheet();
867
+ V.replaceSync(It);
868
+ class D extends z {
809
869
  _sectionNames = ["header", "body", "footer"];
810
870
  _handleSlotChange = () => {
811
871
  this._updateSectionState();
@@ -815,14 +875,14 @@ class k extends v {
815
875
  * @ignore
816
876
  */
817
877
  constructor() {
818
- super(), this.shadowRoot?.adoptedStyleSheets.push(D);
878
+ super(), this.shadowRoot?.adoptedStyleSheets.push(V);
819
879
  }
820
880
  /**
821
881
  * Specifies which attributes should be observed for changes.
822
882
  * Uses parent's attributes since we're extending the base dialog.
823
883
  */
824
884
  static get observedAttributes() {
825
- return v.observedAttributes;
885
+ return z.observedAttributes;
826
886
  }
827
887
  /**
828
888
  * Renders the component's HTML structure.
@@ -831,7 +891,7 @@ class k extends v {
831
891
  * @returns {void}
832
892
  */
833
893
  _render() {
834
- this.shadowRoot !== null && (this.shadowRoot.innerHTML = ut, this._syncAttributes());
894
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = $t, this._syncAttributes());
835
895
  }
836
896
  /**
837
897
  * Adds slot listeners so sections can react to projected content changes.
@@ -863,31 +923,31 @@ class k extends v {
863
923
  return;
864
924
  const t = [];
865
925
  this._sectionNames.forEach((e) => {
866
- const s = this.shadowRoot?.querySelector(
926
+ const r = this.shadowRoot?.querySelector(
867
927
  `[part='${e}']`
868
- ), r = this.shadowRoot?.querySelector(
928
+ ), i = this.shadowRoot?.querySelector(
869
929
  `slot[name='${e}']`
870
930
  );
871
- if (s === null || r === null)
931
+ if (r === null || i === null)
872
932
  return;
873
- const n = r.assignedNodes({ flatten: !0 }).some((l) => l.nodeType === Node.TEXT_NODE ? l.textContent?.trim().length !== 0 : l.nodeType === Node.ELEMENT_NODE);
874
- s.toggleAttribute("hidden", n === !1), s.dataset.filled = String(n), s.removeAttribute("data-divider"), n === !0 && t.push(s);
933
+ const a = i.assignedNodes({ flatten: !0 }).some((v) => v.nodeType === Node.TEXT_NODE ? v.textContent?.trim().length !== 0 : v.nodeType === Node.ELEMENT_NODE);
934
+ r.toggleAttribute("hidden", a === !1), r.dataset.filled = String(a), r.removeAttribute("data-divider"), a === !0 && t.push(r);
875
935
  }), t.slice(0, -1).forEach((e) => {
876
936
  e.dataset.divider = "true";
877
937
  });
878
938
  }
879
939
  }
880
- const $ = new CSSStyleSheet();
881
- $.replaceSync(dt);
882
- class u extends k {
940
+ const B = new CSSStyleSheet();
941
+ B.replaceSync(Ot);
942
+ class p extends D {
883
943
  /**
884
944
  * The title of the confirmation dialog.
885
945
  */
886
- _headline = o;
946
+ _headline = d;
887
947
  /**
888
948
  * The text content of the confirmation dialog.
889
949
  */
890
- _text = o;
950
+ _text = d;
891
951
  /**
892
952
  * The value associated with the confirmation action, emitted in the confirm event.
893
953
  */
@@ -908,7 +968,7 @@ class u extends k {
908
968
  * @constructor
909
969
  */
910
970
  constructor() {
911
- super(), this.shadowRoot?.adoptedStyleSheets.push($);
971
+ super(), this.shadowRoot?.adoptedStyleSheets.push(B);
912
972
  }
913
973
  /**
914
974
  * Specifies which attributes should be observed for changes.
@@ -916,23 +976,23 @@ class u extends k {
916
976
  */
917
977
  static get observedAttributes() {
918
978
  return [
919
- ...k.observedAttributes,
920
- u.textAttribute,
921
- u.headlineAttribute,
922
- u.valueAttribute
979
+ ...D.observedAttributes,
980
+ p.textAttribute,
981
+ p.headlineAttribute,
982
+ p.valueAttribute
923
983
  ];
924
984
  }
925
985
  get headline() {
926
986
  return this._headline;
927
987
  }
928
988
  set headline(t) {
929
- this._headline = t, this.setAttribute(u.headlineAttribute, t);
989
+ this._headline = t, this.setAttribute(p.headlineAttribute, t);
930
990
  }
931
991
  get text() {
932
992
  return this._text;
933
993
  }
934
994
  set text(t) {
935
- this._text = t, this.setAttribute(u.textAttribute, t);
995
+ this._text = t, this.setAttribute(p.textAttribute, t);
936
996
  }
937
997
  get value() {
938
998
  return this._value;
@@ -946,7 +1006,7 @@ class u extends k {
946
1006
  * @returns {void}
947
1007
  */
948
1008
  connectedCallback() {
949
- this._render(), this._addEventListeners(), this.closedBy = R.NONE;
1009
+ this._render(), this._addEventListeners(), this.closedBy = F.NONE;
950
1010
  }
951
1011
  /**
952
1012
  * Renders the component's HTML structure.
@@ -955,7 +1015,7 @@ class u extends k {
955
1015
  * @returns {void}
956
1016
  */
957
1017
  _render() {
958
- this.shadowRoot !== null && (this.shadowRoot.innerHTML = lt, this._syncAttributes());
1018
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = Mt, this._syncAttributes());
959
1019
  }
960
1020
  /**
961
1021
  * Syncs a single attribute from host to the DOM elements.
@@ -964,21 +1024,21 @@ class u extends k {
964
1024
  * @returns {void}
965
1025
  */
966
1026
  _syncAttribute(t) {
967
- if (u.observedAttributes.includes(t))
1027
+ if (p.observedAttributes.includes(t))
968
1028
  switch (t) {
969
- case u.headlineAttribute: {
970
- this._headline = this.getAttribute(t) ?? o;
1029
+ case p.headlineAttribute: {
1030
+ this._headline = this.getAttribute(t) ?? d;
971
1031
  const e = this.shadowRoot?.querySelector("h2");
972
1032
  e != null && (e.textContent = this._headline);
973
1033
  break;
974
1034
  }
975
- case u.textAttribute: {
976
- this._text = this.getAttribute(t) ?? o;
1035
+ case p.textAttribute: {
1036
+ this._text = this.getAttribute(t) ?? d;
977
1037
  const e = this.shadowRoot?.querySelector("p");
978
1038
  e != null && (e.textContent = this._text);
979
1039
  break;
980
1040
  }
981
- case u.valueAttribute: {
1041
+ case p.valueAttribute: {
982
1042
  this._value = this.getAttribute(t);
983
1043
  break;
984
1044
  }
@@ -995,7 +1055,7 @@ class u extends k {
995
1055
  * @returns {void}
996
1056
  */
997
1057
  _syncAttributes() {
998
- super._syncAttributes(), u.observedAttributes.forEach((t) => {
1058
+ super._syncAttributes(), p.observedAttributes.forEach((t) => {
999
1059
  this._syncAttribute(t);
1000
1060
  });
1001
1061
  }
@@ -1006,8 +1066,8 @@ class u extends k {
1006
1066
  */
1007
1067
  _addEventListeners() {
1008
1068
  super._addEventListeners(), this.shadowRoot?.querySelector(
1009
- I
1010
- )?.addEventListener(b.CLICK, this._handleConfirm), this.shadowRoot?.querySelector(x)?.addEventListener(b.CLICK, this._handleUndo);
1069
+ q
1070
+ )?.addEventListener(R.CLICK, this._handleConfirm), this.shadowRoot?.querySelector(j)?.addEventListener(R.CLICK, this._handleUndo);
1011
1071
  }
1012
1072
  /**
1013
1073
  * Removes event listeners.
@@ -1016,8 +1076,8 @@ class u extends k {
1016
1076
  */
1017
1077
  _removeEventListeners() {
1018
1078
  super._removeEventListeners(), this.shadowRoot?.querySelector(
1019
- I
1020
- )?.removeEventListener(b.CLICK, this._handleConfirm), this.shadowRoot?.querySelector(x)?.removeEventListener(b.CLICK, this._handleUndo);
1079
+ q
1080
+ )?.removeEventListener(R.CLICK, this._handleConfirm), this.shadowRoot?.querySelector(j)?.removeEventListener(R.CLICK, this._handleUndo);
1021
1081
  }
1022
1082
  /**
1023
1083
  * Handles the confirm button click event.
@@ -1027,7 +1087,7 @@ class u extends k {
1027
1087
  */
1028
1088
  _handleConfirm = () => {
1029
1089
  const t = new CustomEvent(
1030
- E.CONFIRMATION_DIALOG_CONFIRM,
1090
+ T.CONFIRMATION_DIALOG_CONFIRM,
1031
1091
  {
1032
1092
  bubbles: !0,
1033
1093
  composed: !0,
@@ -1040,7 +1100,7 @@ class u extends k {
1040
1100
  };
1041
1101
  _handleUndo = () => {
1042
1102
  const t = new CustomEvent(
1043
- E.CONFIRMATION_DIALOG_UNDO,
1103
+ T.CONFIRMATION_DIALOG_UNDO,
1044
1104
  {
1045
1105
  bubbles: !0,
1046
1106
  composed: !0,
@@ -1052,19 +1112,19 @@ class u extends k {
1052
1112
  this.dispatchEvent(t), this._value = void 0;
1053
1113
  };
1054
1114
  }
1055
- const ht = "confirmation-dialog", bt = {
1056
- CONFIRMATION_DIALOG_CONFIRM: E.CONFIRMATION_DIALOG_CONFIRM,
1057
- CONFIRMATION_DIALOG_UNDO: E.CONFIRMATION_DIALOG_UNDO
1058
- }, xt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1115
+ const Ht = "confirmation-dialog", Nt = {
1116
+ CONFIRMATION_DIALOG_CONFIRM: T.CONFIRMATION_DIALOG_CONFIRM,
1117
+ CONFIRMATION_DIALOG_UNDO: T.CONFIRMATION_DIALOG_UNDO
1118
+ }, Re = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1059
1119
  __proto__: null,
1060
- COMPONENT_CUSTOM_MESSAGES: bt,
1061
- ConfirmationDialogComponent: u,
1062
- selector: ht
1063
- }, Symbol.toStringTag, { value: "Module" })), vt = "header-body-footer-dialog", It = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1120
+ COMPONENT_CUSTOM_MESSAGES: Nt,
1121
+ ConfirmationDialogComponent: p,
1122
+ selector: Ht
1123
+ }, Symbol.toStringTag, { value: "Module" })), Tt = "header-body-footer-dialog", ze = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1064
1124
  __proto__: null,
1065
- HeaderBodyFooterDialogComponent: k,
1066
- selector: vt
1067
- }, Symbol.toStringTag, { value: "Module" })), pt = `<div class="bar-menu-container">
1125
+ HeaderBodyFooterDialogComponent: D,
1126
+ selector: Tt
1127
+ }, Symbol.toStringTag, { value: "Module" })), Ft = `<div class="bar-menu-container">
1068
1128
  <previous-button class="nav-prev" part="nav-prev-button"></previous-button>
1069
1129
 
1070
1130
  <div class="buttons-wrapper" part="buttons-wrapper">
@@ -1073,9 +1133,9 @@ const ht = "confirmation-dialog", bt = {
1073
1133
 
1074
1134
  <next-button class="nav-next" part="nav-next-button"></next-button>
1075
1135
  </div>
1076
- `, gt = "*{box-sizing:border-box}:host{display:block;width:100%}.bar-menu-container{display:flex;align-items:center;justify-content:space-between;height:100%;gap:var(--gap-sm);padding:var(--spacing-1);background:var(--color-bg-primary);border-radius:var(--border-radius-full);border:var(--border-width-2) solid var(--color-border-secondary);box-shadow:var(--shadow-sm);margin:0 auto}.bar-menu-container .nav-prev,.bar-menu-container .nav-next{flex-shrink:0;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease-in-out,visibility .2s ease-in-out}.bar-menu-container .nav-prev.visible,.bar-menu-container .nav-next.visible{opacity:1;visibility:visible;pointer-events:auto}.bar-menu-container .nav-prev::part(button),.bar-menu-container .nav-next::part(button){background-color:transparent;box-shadow:none}.bar-menu-container .buttons-wrapper{display:grid;grid-template-columns:repeat(var(--bar-menu-visible-count, 3),1fr);grid-auto-rows:max-content;align-items:center;justify-items:center;gap:var(--gap-sm);overflow:hidden;position:relative;width:auto}::slotted(*){display:none;flex-shrink:0;will-change:opacity,transform;contain:layout style paint;opacity:0;transform:scale(.8)}::slotted(.animating){transition:opacity .4s cubic-bezier(.34,1.56,.64,1),transform .4s cubic-bezier(.34,1.56,.64,1)}::slotted(.visible-button){display:inline-flex!important;pointer-events:auto;opacity:1;transform:scale(1)}", U = new CSSStyleSheet();
1077
- U.replaceSync(gt);
1078
- class h extends HTMLElement {
1136
+ `, jt = "*{box-sizing:border-box}:host{display:block;width:100%}.bar-menu-container{display:flex;align-items:center;justify-content:space-between;height:100%;gap:var(--gap-sm);padding:var(--spacing-1);background:var(--color-bg-primary);border-radius:var(--border-radius-full);border:var(--border-width-2) solid var(--color-border-secondary);box-shadow:var(--shadow-sm);margin:0 auto}.bar-menu-container .nav-prev,.bar-menu-container .nav-next{flex-shrink:0;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease-in-out,visibility .2s ease-in-out}.bar-menu-container .nav-prev.visible,.bar-menu-container .nav-next.visible{opacity:1;visibility:visible;pointer-events:auto}.bar-menu-container .nav-prev::part(button),.bar-menu-container .nav-next::part(button){background-color:transparent;box-shadow:none}.bar-menu-container .buttons-wrapper{display:grid;grid-template-columns:repeat(var(--bar-menu-visible-count, 3),1fr);grid-auto-rows:max-content;align-items:center;justify-items:center;gap:var(--gap-sm);overflow:hidden;position:relative;width:auto}::slotted(*){display:none;flex-shrink:0;will-change:opacity,transform;contain:layout style paint;opacity:0;transform:scale(.8)}::slotted(.animating){transition:opacity .4s cubic-bezier(.34,1.56,.64,1),transform .4s cubic-bezier(.34,1.56,.64,1)}::slotted(.visible-button){display:inline-flex!important;pointer-events:auto;opacity:1;transform:scale(1)}", X = new CSSStyleSheet();
1137
+ X.replaceSync(jt);
1138
+ class y extends HTMLElement {
1079
1139
  static _visibleCountAttribute = "visible-count";
1080
1140
  static _cyclicalNavigationAttribute = "cyclical-navigation";
1081
1141
  _currentIndex = 0;
@@ -1093,20 +1153,20 @@ class h extends HTMLElement {
1093
1153
  * @constructor
1094
1154
  */
1095
1155
  constructor() {
1096
- super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(U);
1156
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(X);
1097
1157
  }
1098
1158
  /**
1099
1159
  * Specifies which attributes should be observed for changes.
1100
1160
  */
1101
1161
  static get observedAttributes() {
1102
1162
  return [
1103
- h._visibleCountAttribute,
1104
- h._cyclicalNavigationAttribute
1163
+ y._visibleCountAttribute,
1164
+ y._cyclicalNavigationAttribute
1105
1165
  ];
1106
1166
  }
1107
1167
  get visibleButtons() {
1108
- const t = this.getAttribute(h._visibleCountAttribute);
1109
- if (t !== null && t !== o) {
1168
+ const t = this.getAttribute(y._visibleCountAttribute);
1169
+ if (t !== null && t !== d) {
1110
1170
  const e = parseInt(t, 10);
1111
1171
  return Math.max(this._MIN_VISIBLE, Math.min(this._MAX_VISIBLE, e));
1112
1172
  }
@@ -1117,16 +1177,16 @@ class h extends HTMLElement {
1117
1177
  this._MIN_VISIBLE,
1118
1178
  Math.min(this._MAX_VISIBLE, t)
1119
1179
  );
1120
- this.setAttribute(h._visibleCountAttribute, String(e));
1180
+ this.setAttribute(y._visibleCountAttribute, String(e));
1121
1181
  }
1122
1182
  get cyclicalNavigation() {
1123
- return this.hasAttribute(h._cyclicalNavigationAttribute);
1183
+ return this.hasAttribute(y._cyclicalNavigationAttribute);
1124
1184
  }
1125
1185
  set cyclicalNavigation(t) {
1126
1186
  t ? this.setAttribute(
1127
- h._cyclicalNavigationAttribute,
1128
- o
1129
- ) : this.removeAttribute(h._cyclicalNavigationAttribute);
1187
+ y._cyclicalNavigationAttribute,
1188
+ d
1189
+ ) : this.removeAttribute(y._cyclicalNavigationAttribute);
1130
1190
  }
1131
1191
  /**
1132
1192
  * Lifecycle hook: component inserted into DOM
@@ -1143,17 +1203,17 @@ class h extends HTMLElement {
1143
1203
  /**
1144
1204
  * Lifecycle hook: observed attribute changed
1145
1205
  */
1146
- attributeChangedCallback(t, e, s) {
1147
- t === h._visibleCountAttribute ? (this._visibleCount = this.visibleButtons, this._buttonsWrapper !== null && this._buttonsWrapper.style.setProperty(
1206
+ attributeChangedCallback(t, e, r) {
1207
+ t === y._visibleCountAttribute ? (this._visibleCount = this.visibleButtons, this._buttonsWrapper !== null && this._buttonsWrapper.style.setProperty(
1148
1208
  "--bar-menu-visible-count",
1149
1209
  String(this.visibleButtons)
1150
- ), this._updateButtonVisibility()) : t === h._cyclicalNavigationAttribute && (this._cyclicalNavigation = this.cyclicalNavigation, this._updateButtonVisibility());
1210
+ ), this._updateButtonVisibility()) : t === y._cyclicalNavigationAttribute && (this._cyclicalNavigation = this.cyclicalNavigation, this._updateButtonVisibility());
1151
1211
  }
1152
1212
  /**
1153
1213
  * Render the component's Shadow DOM structure
1154
1214
  */
1155
1215
  _render() {
1156
- this.shadowRoot !== null && (this.shadowRoot.innerHTML = pt);
1216
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = Ft);
1157
1217
  }
1158
1218
  /**
1159
1219
  * Cache Shadow DOM elements for performance
@@ -1162,9 +1222,9 @@ class h extends HTMLElement {
1162
1222
  this._slotElement = this.shadowRoot?.querySelector("slot") ?? null, this._navPrevButton = this.shadowRoot?.querySelector(".nav-prev") ?? null, this._navNextButton = this.shadowRoot?.querySelector(".nav-next") ?? null, this._buttonsWrapper = this.shadowRoot?.querySelector(".buttons-wrapper") ?? null, this._buttonsWrapper !== null && this._buttonsWrapper.style.setProperty(
1163
1223
  "--bar-menu-visible-count",
1164
1224
  String(this.visibleButtons)
1165
- ), this._navPrevButton !== null && (this._navPrevButton.setAttribute("aria-label", "Previous"), this._navPrevButton.addEventListener(b.CLICK, () => {
1225
+ ), this._navPrevButton !== null && (this._navPrevButton.setAttribute("aria-label", "Previous"), this._navPrevButton.addEventListener(R.CLICK, () => {
1166
1226
  this._scrollPrevious();
1167
- })), this._navNextButton !== null && (this._navNextButton.setAttribute("aria-label", "Next"), this._navNextButton.addEventListener(b.CLICK, () => {
1227
+ })), this._navNextButton !== null && (this._navNextButton.setAttribute("aria-label", "Next"), this._navNextButton.addEventListener(R.CLICK, () => {
1168
1228
  this._scrollNext();
1169
1229
  }));
1170
1230
  }
@@ -1191,13 +1251,13 @@ class h extends HTMLElement {
1191
1251
  _setupKeyboardListener() {
1192
1252
  this._keyDownListener = (t) => {
1193
1253
  t.key === "ArrowLeft" ? (t.preventDefault(), this._scrollPrevious()) : t.key === "ArrowRight" && (t.preventDefault(), this._scrollNext());
1194
- }, this.addEventListener(O.KEY_DOWN, this._keyDownListener);
1254
+ }, this.addEventListener(P.KEY_DOWN, this._keyDownListener);
1195
1255
  }
1196
1256
  /**
1197
1257
  * Remove keyboard listener
1198
1258
  */
1199
1259
  _removeKeyboardListener() {
1200
- this._keyDownListener !== null && this.removeEventListener(O.KEY_DOWN, this._keyDownListener);
1260
+ this._keyDownListener !== null && this.removeEventListener(P.KEY_DOWN, this._keyDownListener);
1201
1261
  }
1202
1262
  /**
1203
1263
  * Get all slotted button elements
@@ -1209,34 +1269,34 @@ class h extends HTMLElement {
1209
1269
  * Update button visibility by showing/hiding rows with fade
1210
1270
  */
1211
1271
  _updateButtonVisibility(t) {
1212
- const e = this._getSlottedButtons(), s = e.length, r = this.visibleButtons, n = this._currentIndex, l = Math.min(n + r, s);
1213
- e.forEach((a, d) => {
1214
- const y = d >= n && d < l, p = a;
1215
- y || (a.classList.remove("visible-button"), a.classList.remove("animating"), p.style.display = "none");
1216
- }), t !== void 0 ? (e[0]?.offsetHeight, e.forEach((a, d) => {
1217
- if (d >= n && d < l) {
1218
- const p = a;
1219
- p.style.display = "inline-flex", a.classList.add("animating");
1220
- const K = d % this.visibleButtons * 50;
1221
- p.style.transitionDelay = `${K}ms`;
1272
+ const e = this._getSlottedButtons(), r = e.length, i = this.visibleButtons, a = this._currentIndex, v = Math.min(a + i, r);
1273
+ e.forEach((c, g) => {
1274
+ const I = g >= a && g < v, M = c;
1275
+ I || (c.classList.remove("visible-button"), c.classList.remove("animating"), M.style.display = "none");
1276
+ }), t !== void 0 ? (e[0]?.offsetHeight, e.forEach((c, g) => {
1277
+ if (g >= a && g < v) {
1278
+ const M = c;
1279
+ M.style.display = "inline-flex", c.classList.add("animating");
1280
+ const lt = g % this.visibleButtons * 50;
1281
+ M.style.transitionDelay = `${lt}ms`;
1222
1282
  }
1223
- }), e[0]?.offsetHeight, e.forEach((a, d) => {
1224
- d >= n && d < l && a.classList.add("visible-button");
1283
+ }), e[0]?.offsetHeight, e.forEach((c, g) => {
1284
+ g >= a && g < v && c.classList.add("visible-button");
1225
1285
  }), setTimeout(() => {
1226
- e.forEach((a) => {
1227
- a.classList.remove("animating"), a.style.transitionDelay = o;
1286
+ e.forEach((c) => {
1287
+ c.classList.remove("animating"), c.style.transitionDelay = d;
1228
1288
  });
1229
- }, 400)) : e.forEach((a, d) => {
1230
- const y = d >= n && d < l, p = a;
1231
- y && (p.style.display = "inline-flex", a.classList.add("visible-button"));
1232
- }), this._updateNavigationButtons(s, r);
1289
+ }, 400)) : e.forEach((c, g) => {
1290
+ const I = g >= a && g < v, M = c;
1291
+ I && (M.style.display = "inline-flex", c.classList.add("visible-button"));
1292
+ }), this._updateNavigationButtons(r, i);
1233
1293
  }
1234
1294
  /**
1235
1295
  * Update navigation buttons visibility and disabled state
1236
1296
  */
1237
1297
  _updateNavigationButtons(t, e) {
1238
- const s = t > e, r = this._currentIndex + e < t, n = this._currentIndex === 0, l = !r;
1239
- this._navPrevButton !== null && (s ? (this._navPrevButton.classList.add("visible"), this._navPrevButton.disabled = !this._cyclicalNavigation && n) : this._navPrevButton.classList.remove("visible")), this._navNextButton !== null && (s ? (this._navNextButton.classList.add("visible"), this._navNextButton.disabled = !this._cyclicalNavigation && l) : this._navNextButton.classList.remove("visible"));
1298
+ const r = t > e, i = this._currentIndex + e < t, a = this._currentIndex === 0, v = !i;
1299
+ this._navPrevButton !== null && (r ? (this._navPrevButton.classList.add("visible"), this._navPrevButton.disabled = !this._cyclicalNavigation && a) : this._navPrevButton.classList.remove("visible")), this._navNextButton !== null && (r ? (this._navNextButton.classList.add("visible"), this._navNextButton.disabled = !this._cyclicalNavigation && v) : this._navNextButton.classList.remove("visible"));
1240
1300
  }
1241
1301
  /**
1242
1302
  * Navigate to previous page (scrolls by visibleCount buttons)
@@ -1251,17 +1311,17 @@ class h extends HTMLElement {
1251
1311
  * In cyclical mode, wraps to the beginning when at the end.
1252
1312
  */
1253
1313
  _scrollNext() {
1254
- const t = this._getSlottedButtons().length, e = this.visibleButtons, s = this._currentIndex + e;
1255
- s < t ? (this._currentIndex = s, this._updateButtonVisibility("next")) : this._cyclicalNavigation && t > e && (this._currentIndex = 0, this._updateButtonVisibility("next"));
1314
+ const t = this._getSlottedButtons().length, e = this.visibleButtons, r = this._currentIndex + e;
1315
+ r < t ? (this._currentIndex = r, this._updateButtonVisibility("next")) : this._cyclicalNavigation && t > e && (this._currentIndex = 0, this._updateButtonVisibility("next"));
1256
1316
  }
1257
1317
  /**
1258
1318
  * Public API: scroll to specific button by index
1259
1319
  */
1260
1320
  scrollToButton(t) {
1261
- const e = this._getSlottedButtons().length, s = this.visibleButtons;
1321
+ const e = this._getSlottedButtons().length, r = this.visibleButtons;
1262
1322
  t >= 0 && t < e && (this._currentIndex = Math.max(
1263
1323
  0,
1264
- Math.min(t, e - s)
1324
+ Math.min(t, e - r)
1265
1325
  ), this._updateButtonVisibility());
1266
1326
  }
1267
1327
  /**
@@ -1285,24 +1345,885 @@ class h extends HTMLElement {
1285
1345
  return this._currentIndex;
1286
1346
  }
1287
1347
  }
1288
- const mt = "bar-menu", kt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1348
+ const qt = "bar-menu", Me = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1349
+ __proto__: null,
1350
+ BarMenuComponent: y,
1351
+ selector: qt
1352
+ }, Symbol.toStringTag, { value: "Module" })), Dt = "ds-spinner", Pt = `<div part="spinner" class="spinner" role="status" aria-label="Loading">
1353
+ <div class="spinner-ring"></div>
1354
+ </div>
1355
+ `, Ut = "*{box-sizing:border-box}:host{display:inline-flex;align-items:center;justify-content:center}.spinner{display:inline-flex;align-items:center;justify-content:center}.spinner-ring{width:var(--spinner-size, 2rem);height:var(--spinner-size, 2rem);border:3px solid var(--color-border-primary);border-top-color:var(--color-primary);border-radius:var(--border-radius-full);animation:spin var(--transition-slow) linear infinite}:host([size=sm]) .spinner-ring{width:1rem;height:1rem;border-width:2px}:host([size=md]) .spinner-ring{width:2rem;height:2rem;border-width:3px}:host([size=lg]) .spinner-ring{width:3rem;height:3rem;border-width:4px}:host([variant=primary]) .spinner-ring{border-top-color:var(--color-primary)}:host([variant=success]) .spinner-ring{border-top-color:var(--color-success)}:host([variant=warning]) .spinner-ring{border-top-color:var(--color-warning)}:host([variant=error]) .spinner-ring{border-top-color:var(--color-error)}@keyframes spin{to{transform:rotate(360deg)}}", J = new CSSStyleSheet();
1356
+ J.replaceSync(Ut);
1357
+ class f extends HTMLElement {
1358
+ static _sizeAttribute = "size";
1359
+ static _variantAttribute = "variant";
1360
+ static _labelAttribute = "label";
1361
+ constructor() {
1362
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(J);
1363
+ }
1364
+ static get observedAttributes() {
1365
+ return [
1366
+ f._sizeAttribute,
1367
+ f._variantAttribute,
1368
+ f._labelAttribute
1369
+ ];
1370
+ }
1371
+ get size() {
1372
+ return this.getAttribute(f._sizeAttribute) ?? "md";
1373
+ }
1374
+ set size(t) {
1375
+ this.setAttribute(f._sizeAttribute, t);
1376
+ }
1377
+ get variant() {
1378
+ return this.getAttribute(
1379
+ f._variantAttribute
1380
+ ) ?? "primary";
1381
+ }
1382
+ set variant(t) {
1383
+ this.setAttribute(f._variantAttribute, t);
1384
+ }
1385
+ get label() {
1386
+ return this.getAttribute(f._labelAttribute) ?? "Loading";
1387
+ }
1388
+ set label(t) {
1389
+ this.setAttribute(f._labelAttribute, t);
1390
+ }
1391
+ connectedCallback() {
1392
+ this._render();
1393
+ }
1394
+ attributeChangedCallback(t, e, r) {
1395
+ r !== e && t === f._labelAttribute && this.shadowRoot?.querySelector(".spinner")?.setAttribute("aria-label", r ?? "Loading");
1396
+ }
1397
+ _render() {
1398
+ if (this.shadowRoot === null)
1399
+ return;
1400
+ this.shadowRoot.innerHTML = Pt, this.shadowRoot.querySelector(".spinner")?.setAttribute("aria-label", this.label);
1401
+ }
1402
+ }
1403
+ const Oe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1404
+ __proto__: null,
1405
+ SpinnerComponent: f,
1406
+ selector: Dt
1407
+ }, Symbol.toStringTag, { value: "Module" })), Kt = "ds-progress-bar", Gt = `<div
1408
+ part="container"
1409
+ class="progress-container"
1410
+ role="progressbar"
1411
+ aria-valuemin="0"
1412
+ aria-valuemax="100"
1413
+ >
1414
+ <div class="progress-track">
1415
+ <div class="progress-fill"></div>
1416
+ </div>
1417
+ <span class="progress-label"></span>
1418
+ </div>
1419
+ `, Wt = "*{box-sizing:border-box}:host{display:block;width:100%}.progress-container{display:flex;flex-direction:column;gap:var(--gap-xs)}.progress-track{width:100%;height:.5rem;background-color:var(--color-bg-secondary);border-radius:var(--border-radius-full);overflow:hidden;border:1px solid var(--color-border-primary)}:host([size=sm]) .progress-track{height:.25rem}:host([size=md]) .progress-track{height:.5rem}:host([size=lg]) .progress-track{height:1rem}.progress-fill{height:100%;width:0%;background:var(--color-primary);border-radius:var(--border-radius-full);transition:width var(--transition-base) ease}:host([variant=success]) .progress-fill{background:var(--color-success)}:host([variant=warning]) .progress-fill{background:var(--color-warning)}:host([variant=error]) .progress-fill{background:var(--color-error)}:host([variant=info]) .progress-fill{background:var(--color-info)}:host([indeterminate]) .progress-fill{width:40%!important;animation:indeterminate var(--transition-slow) ease-in-out infinite}.progress-label{font-family:var(--font-family-base);font-size:var(--font-size-xs);color:var(--color-text-secondary);align-self:flex-end}:host(:not([show-label])) .progress-label{display:none}@keyframes indeterminate{0%{transform:translate(-100%)}to{transform:translate(350%)}}", Q = new CSSStyleSheet();
1420
+ Q.replaceSync(Wt);
1421
+ class h extends HTMLElement {
1422
+ static _valueAttribute = "value";
1423
+ static _variantAttribute = "variant";
1424
+ static _sizeAttribute = "size";
1425
+ static _indeterminateAttribute = "indeterminate";
1426
+ static _showLabelAttribute = "show-label";
1427
+ static _labelAttribute = "label";
1428
+ constructor() {
1429
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(Q);
1430
+ }
1431
+ static get observedAttributes() {
1432
+ return [
1433
+ h._valueAttribute,
1434
+ h._variantAttribute,
1435
+ h._sizeAttribute,
1436
+ h._indeterminateAttribute,
1437
+ h._showLabelAttribute,
1438
+ h._labelAttribute
1439
+ ];
1440
+ }
1441
+ get value() {
1442
+ const t = this.getAttribute(h._valueAttribute), e = parseFloat(t ?? "0");
1443
+ return isNaN(e) ? 0 : Math.max(0, Math.min(100, e));
1444
+ }
1445
+ set value(t) {
1446
+ this.setAttribute(
1447
+ h._valueAttribute,
1448
+ String(Math.max(0, Math.min(100, t)))
1449
+ );
1450
+ }
1451
+ get variant() {
1452
+ return this.getAttribute(
1453
+ h._variantAttribute
1454
+ ) ?? "primary";
1455
+ }
1456
+ set variant(t) {
1457
+ this.setAttribute(h._variantAttribute, t);
1458
+ }
1459
+ get indeterminate() {
1460
+ return this.hasAttribute(h._indeterminateAttribute);
1461
+ }
1462
+ set indeterminate(t) {
1463
+ t ? this.setAttribute(h._indeterminateAttribute, "") : this.removeAttribute(h._indeterminateAttribute);
1464
+ }
1465
+ get showLabel() {
1466
+ return this.hasAttribute(h._showLabelAttribute);
1467
+ }
1468
+ connectedCallback() {
1469
+ this._render();
1470
+ }
1471
+ attributeChangedCallback(t, e, r) {
1472
+ r !== e && this._update();
1473
+ }
1474
+ _render() {
1475
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = Gt, this._update());
1476
+ }
1477
+ _update() {
1478
+ const t = this.shadowRoot?.querySelector(".progress-fill"), e = this.shadowRoot?.querySelector(
1479
+ ".progress-container"
1480
+ ), r = this.shadowRoot?.querySelector(".progress-label");
1481
+ t != null && (t.style.width = this.indeterminate ? "40%" : `${this.value}%`), e != null && (e.setAttribute("aria-valuenow", String(this.value)), this.getAttribute(h._labelAttribute) !== null && this.getAttribute(h._labelAttribute) !== "" && e.setAttribute(
1482
+ "aria-label",
1483
+ this.getAttribute(h._labelAttribute) ?? ""
1484
+ )), r != null && (r.textContent = this.indeterminate ? "" : `${this.value}%`);
1485
+ }
1486
+ }
1487
+ const $e = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1488
+ __proto__: null,
1489
+ ProgressBarComponent: h,
1490
+ selector: Kt
1491
+ }, Symbol.toStringTag, { value: "Module" })), Ct = "ds-skeleton", Yt = `<div part="skeleton" class="skeleton" aria-hidden="true"></div>
1492
+ `, Vt = "*{box-sizing:border-box}:host{display:block;width:100%}.skeleton{background:linear-gradient(90deg,var(--color-bg-secondary) 25%,var(--color-bg-tertiary) 50%,var(--color-bg-secondary) 75%);background-size:200% 100%;border-radius:var(--border-radius-md);animation:shimmer 1.5s infinite;min-height:1rem;width:100%}:host([shape=circle]) .skeleton{border-radius:var(--border-radius-full);width:var(--skeleton-size, 3rem);height:var(--skeleton-size, 3rem)}:host([shape=text]) .skeleton{border-radius:var(--border-radius-sm);height:1em}:host([shape=rect]) .skeleton{border-radius:var(--border-radius-md)}:host([width=full]){width:100%}:host([width=half]){width:50%}:host([width=quarter]){width:25%}:host([width=three-quarters]){width:75%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}", Z = new CSSStyleSheet();
1493
+ Z.replaceSync(Vt);
1494
+ class A extends HTMLElement {
1495
+ static _shapeAttribute = "shape";
1496
+ static _heightAttribute = "height";
1497
+ static _widthAttribute = "width";
1498
+ constructor() {
1499
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(Z);
1500
+ }
1501
+ static get observedAttributes() {
1502
+ return [
1503
+ A._shapeAttribute,
1504
+ A._heightAttribute,
1505
+ A._widthAttribute
1506
+ ];
1507
+ }
1508
+ get shape() {
1509
+ return this.getAttribute(A._shapeAttribute) ?? "rect";
1510
+ }
1511
+ set shape(t) {
1512
+ this.setAttribute(A._shapeAttribute, t);
1513
+ }
1514
+ get height() {
1515
+ return this.getAttribute(A._heightAttribute) ?? "";
1516
+ }
1517
+ set height(t) {
1518
+ this.setAttribute(A._heightAttribute, t);
1519
+ }
1520
+ connectedCallback() {
1521
+ this._render();
1522
+ }
1523
+ attributeChangedCallback(t, e, r) {
1524
+ r !== e && t === A._heightAttribute && this._applyHeight(r);
1525
+ }
1526
+ _render() {
1527
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = Yt, this._applyHeight(this.height));
1528
+ }
1529
+ _applyHeight(t) {
1530
+ const e = this.shadowRoot?.querySelector(".skeleton");
1531
+ e != null && t !== null && t !== "" && (e.style.height = t);
1532
+ }
1533
+ }
1534
+ const Ie = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1535
+ __proto__: null,
1536
+ SkeletonComponent: A,
1537
+ selector: Ct
1538
+ }, Symbol.toStringTag, { value: "Module" })), Bt = "ds-card", Xt = `<div part="card" class="card">
1539
+ <slot name="header" class="card-header-slot"></slot>
1540
+ <div class="card-body">
1541
+ <slot></slot>
1542
+ </div>
1543
+ <slot name="footer" class="card-footer-slot"></slot>
1544
+ </div>
1545
+ `, Jt = '*{box-sizing:border-box}:host{display:block}.card{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--border-radius-xl);box-shadow:var(--shadow-md);overflow:hidden;transition:box-shadow var(--transition-fast),transform var(--transition-fast),border-color var(--transition-fast);font-family:var(--font-family-base);color:var(--color-text-primary);position:relative}.card:before{content:"";display:block;height:2px;background:linear-gradient(90deg,var(--color-primary) 0%,var(--color-primary-light) 100%);opacity:0;transition:opacity var(--transition-fast)}:host([hoverable]) .card:hover{box-shadow:var(--shadow-xl);transform:translateY(-3px);border-color:var(--color-border-secondary)}:host([hoverable]) .card:hover:before{opacity:1}:host([variant=outlined]) .card{background:transparent;box-shadow:none;border:var(--border-width-2) solid var(--color-border-secondary)}:host([variant=elevated]) .card{background:var(--color-bg-primary);box-shadow:var(--shadow-xl);border:none}:host([variant=filled]) .card{background:var(--color-bg-secondary);border:none;box-shadow:none}.card-body{padding:var(--spacing-4) var(--spacing-5)}::slotted([slot=header]){display:block;padding:var(--spacing-5) var(--spacing-5) var(--spacing-2);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary);letter-spacing:var(--letter-spacing-tight)}::slotted([slot=footer]){display:block;padding:var(--spacing-3) var(--spacing-5) var(--spacing-4);font-size:var(--font-size-sm);color:var(--color-text-secondary);border-top:1px solid var(--color-border-primary)}', tt = new CSSStyleSheet();
1546
+ tt.replaceSync(Jt);
1547
+ class L extends HTMLElement {
1548
+ static _variantAttribute = "variant";
1549
+ static _hoverableAttribute = "hoverable";
1550
+ constructor() {
1551
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(tt);
1552
+ }
1553
+ static get observedAttributes() {
1554
+ return [
1555
+ L._variantAttribute,
1556
+ L._hoverableAttribute
1557
+ ];
1558
+ }
1559
+ get variant() {
1560
+ return this.getAttribute(L._variantAttribute) ?? "default";
1561
+ }
1562
+ set variant(t) {
1563
+ this.setAttribute(L._variantAttribute, t);
1564
+ }
1565
+ get hoverable() {
1566
+ return this.hasAttribute(L._hoverableAttribute);
1567
+ }
1568
+ set hoverable(t) {
1569
+ t ? this.setAttribute(L._hoverableAttribute, "") : this.removeAttribute(L._hoverableAttribute);
1570
+ }
1571
+ connectedCallback() {
1572
+ this._render();
1573
+ }
1574
+ attributeChangedCallback(t, e, r) {
1575
+ }
1576
+ _render() {
1577
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = Xt);
1578
+ }
1579
+ }
1580
+ const He = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1581
+ __proto__: null,
1582
+ BaseCardComponent: L,
1583
+ selector: Bt
1584
+ }, Symbol.toStringTag, { value: "Module" })), Qt = "ds-badge", Zt = `<span part="badge" class="badge">
1585
+ <slot></slot>
1586
+ </span>
1587
+ `, te = "*{box-sizing:border-box}:host{display:inline-flex}.badge{display:inline-flex;align-items:center;justify-content:center;gap:var(--gap-xs);padding-block:.2em;padding-inline:.6em;border-radius:var(--border-radius-full);font-family:var(--font-family-base);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:1.4;white-space:nowrap;background-color:var(--color-primary);color:#fff;border:1px solid transparent}:host([variant=secondary]) .badge{background-color:var(--color-bg-secondary);color:var(--color-text-primary);border-color:var(--color-border-primary)}:host([variant=success]) .badge{background-color:var(--color-success);color:#fff}:host([variant=warning]) .badge{background-color:var(--color-warning);color:#1a1a1a}:host([variant=error]) .badge{background-color:var(--color-error);color:#fff}:host([variant=info]) .badge{background-color:var(--color-info);color:#fff}:host([variant=outline]) .badge{background-color:transparent;color:var(--color-primary);border-color:var(--color-primary)}:host([size=sm]) .badge{font-size:.65rem;padding-block:.1em;padding-inline:.4em}:host([size=lg]) .badge{font-size:var(--font-size-sm);padding-block:.3em;padding-inline:.8em}:host([dot]) .badge{width:.5rem;height:.5rem;padding:0;font-size:0}", et = new CSSStyleSheet();
1588
+ et.replaceSync(te);
1589
+ class m extends HTMLElement {
1590
+ static _variantAttribute = "variant";
1591
+ static _sizeAttribute = "size";
1592
+ static _dotAttribute = "dot";
1593
+ constructor() {
1594
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(et);
1595
+ }
1596
+ static get observedAttributes() {
1597
+ return [
1598
+ m._variantAttribute,
1599
+ m._sizeAttribute,
1600
+ m._dotAttribute
1601
+ ];
1602
+ }
1603
+ get variant() {
1604
+ return this.getAttribute(m._variantAttribute) ?? "primary";
1605
+ }
1606
+ set variant(t) {
1607
+ this.setAttribute(m._variantAttribute, t);
1608
+ }
1609
+ get size() {
1610
+ return this.getAttribute(m._sizeAttribute) ?? "md";
1611
+ }
1612
+ set size(t) {
1613
+ this.setAttribute(m._sizeAttribute, t);
1614
+ }
1615
+ get dot() {
1616
+ return this.hasAttribute(m._dotAttribute);
1617
+ }
1618
+ set dot(t) {
1619
+ t ? this.setAttribute(m._dotAttribute, "") : this.removeAttribute(m._dotAttribute);
1620
+ }
1621
+ connectedCallback() {
1622
+ this._render();
1623
+ }
1624
+ attributeChangedCallback(t, e, r) {
1625
+ }
1626
+ _render() {
1627
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = Zt);
1628
+ }
1629
+ }
1630
+ const Ne = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1631
+ __proto__: null,
1632
+ BadgeComponent: m,
1633
+ selector: Qt
1634
+ }, Symbol.toStringTag, { value: "Module" })), ee = "ds-alert", re = `<div part="alert" class="alert" role="alert">
1635
+ <span class="alert-icon"></span>
1636
+ <div class="alert-content">
1637
+ <slot name="title" class="alert-title-slot"></slot>
1638
+ <slot></slot>
1639
+ </div>
1640
+ <button
1641
+ part="close-button"
1642
+ class="alert-close"
1643
+ aria-label="Dismiss"
1644
+ type="button"
1645
+ >
1646
+ <span class="close-icon">✕</span>
1647
+ </button>
1648
+ </div>
1649
+ `, ie = '@charset "UTF-8";*{box-sizing:border-box}:host{display:block}:host([hidden]){display:none}.alert{display:flex;align-items:center;gap:var(--gap-sm);padding:var(--spacing-3);border-radius:var(--border-radius-lg);border-left:4px solid var(--color-primary);background-color:var(--color-bg-secondary);color:var(--color-text-primary);font-family:var(--font-family-base);font-size:var(--font-size-sm);line-height:var(--line-height-normal);animation:alertIn var(--transition-fast) ease-out}:host([variant=success]) .alert{border-left-color:#22c55e;background-color:#1a3f1f;color:#d1fae5}:host([variant=warning]) .alert{border-left-color:#facc15;background-color:#3f3011;color:#e0c600}:host([variant=error]) .alert{border-left-color:#dc2626;background-color:color-mix(in srgb,#dc2626 10%,var(--color-bg-primary))}:host([variant=info]) .alert{border-left-color:var(--color-border-secondary);background:var(--color-bg-primary);color:var(--color-text-primary)}.alert-icon{font-size:var(--font-size-lg);flex-shrink:0;display:flex;align-items:center;justify-content:center;min-width:1.25em;height:1.25em}:host([variant=success]) .alert-icon:before{content:"✓"}:host([variant=warning]) .alert-icon:before{content:"⚠"}:host([variant=error]) .alert-icon:before{content:"✕"}:host([variant=info]) .alert-icon:before{content:"ℹ"}.alert-content{flex:1;min-width:0;padding:0 var(--gap-sm);border-left:1px solid}::slotted([slot=title]){display:block;font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);margin-bottom:var(--spacing-1)}.alert-close{flex-shrink:0;background:transparent;border:none;cursor:pointer;padding:var(--spacing-1);border-radius:var(--border-radius-sm);color:var(--color-text-secondary);font-size:var(--font-size-md);line-height:1;display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast),color var(--transition-fast)}.alert-close:hover{background:var(--color-hover-bg-secondary);color:var(--color-text-primary)}:host(:not([dismissible])) .alert-close{display:none}@keyframes alertIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}', rt = new CSSStyleSheet();
1650
+ rt.replaceSync(ie);
1651
+ class k extends HTMLElement {
1652
+ static _variantAttribute = "variant";
1653
+ static _dismissibleAttribute = "dismissible";
1654
+ constructor() {
1655
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(rt);
1656
+ }
1657
+ static get observedAttributes() {
1658
+ return [
1659
+ k._variantAttribute,
1660
+ k._dismissibleAttribute
1661
+ ];
1662
+ }
1663
+ get variant() {
1664
+ return this.getAttribute(k._variantAttribute) ?? "info";
1665
+ }
1666
+ set variant(t) {
1667
+ this.setAttribute(k._variantAttribute, t);
1668
+ }
1669
+ get dismissible() {
1670
+ return this.hasAttribute(k._dismissibleAttribute);
1671
+ }
1672
+ set dismissible(t) {
1673
+ t ? this.setAttribute(k._dismissibleAttribute, "") : this.removeAttribute(k._dismissibleAttribute);
1674
+ }
1675
+ connectedCallback() {
1676
+ this._render(), this._addEventListeners();
1677
+ }
1678
+ disconnectedCallback() {
1679
+ this._removeEventListeners();
1680
+ }
1681
+ attributeChangedCallback(t, e, r) {
1682
+ }
1683
+ _handleClose = () => {
1684
+ this.dispatchEvent(
1685
+ new CustomEvent("ds-alert-dismiss", { bubbles: !0, composed: !0 })
1686
+ ), this.setAttribute("hidden", "");
1687
+ };
1688
+ _addEventListeners() {
1689
+ this.shadowRoot?.querySelector(".alert-close")?.addEventListener("click", this._handleClose);
1690
+ }
1691
+ _removeEventListeners() {
1692
+ this.shadowRoot?.querySelector(".alert-close")?.removeEventListener("click", this._handleClose);
1693
+ }
1694
+ _render() {
1695
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = re, this._addEventListeners());
1696
+ }
1697
+ }
1698
+ const Te = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1699
+ __proto__: null,
1700
+ AlertComponent: k,
1701
+ selector: ee
1702
+ }, Symbol.toStringTag, { value: "Module" })), se = "ds-tag", oe = `<span part="tag" class="tag">
1703
+ <slot></slot>
1704
+ <button
1705
+ part="remove-button"
1706
+ class="tag-remove"
1707
+ aria-label="Remove"
1708
+ type="button"
1709
+ >
1710
+
1711
+ </button>
1712
+ </span>
1713
+ `, ae = "*{box-sizing:border-box}:host{display:inline-flex}.tag{display:inline-flex;align-items:center;gap:var(--gap-xs);padding-block:.25em;padding-inline:.75em;border-radius:var(--border-radius-full);font-family:var(--font-family-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);background-color:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border-primary);transition:all var(--transition-fast)}:host([variant=primary]) .tag{background-color:var(--color-primary);color:#fff;border-color:transparent}:host([variant=success]) .tag{background-color:var(--color-success);color:#fff;border-color:transparent}:host([variant=warning]) .tag{background-color:var(--color-warning);color:#1a1a1a;border-color:transparent}:host([variant=error]) .tag{background-color:var(--color-error);color:#fff;border-color:transparent}:host([size=sm]) .tag{font-size:var(--font-size-xs);padding-block:.15em;padding-inline:.5em}:host([size=lg]) .tag{font-size:var(--font-size-md);padding-block:.35em;padding-inline:1em}.tag-remove{display:none;background:transparent;border:none;cursor:pointer;padding:0;font-size:.75em;color:inherit;opacity:.7;line-height:1;border-radius:var(--border-radius-full);transition:opacity var(--transition-fast)}:host([removable]) .tag-remove{display:inline-flex;align-items:center;justify-content:center}.tag-remove:hover{opacity:1}", it = new CSSStyleSheet();
1714
+ it.replaceSync(ae);
1715
+ class _ extends HTMLElement {
1716
+ static _variantAttribute = "variant";
1717
+ static _sizeAttribute = "size";
1718
+ static _removableAttribute = "removable";
1719
+ constructor() {
1720
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(it);
1721
+ }
1722
+ static get observedAttributes() {
1723
+ return [
1724
+ _._variantAttribute,
1725
+ _._sizeAttribute,
1726
+ _._removableAttribute
1727
+ ];
1728
+ }
1729
+ get variant() {
1730
+ return this.getAttribute(_._variantAttribute) ?? "default";
1731
+ }
1732
+ set variant(t) {
1733
+ this.setAttribute(_._variantAttribute, t);
1734
+ }
1735
+ get removable() {
1736
+ return this.hasAttribute(_._removableAttribute);
1737
+ }
1738
+ set removable(t) {
1739
+ t ? this.setAttribute(_._removableAttribute, "") : this.removeAttribute(_._removableAttribute);
1740
+ }
1741
+ connectedCallback() {
1742
+ this._render(), this._addEventListeners();
1743
+ }
1744
+ disconnectedCallback() {
1745
+ this._removeEventListeners();
1746
+ }
1747
+ attributeChangedCallback(t, e, r) {
1748
+ }
1749
+ _handleRemove = () => {
1750
+ this.dispatchEvent(
1751
+ new CustomEvent("ds-tag-remove", { bubbles: !0, composed: !0 })
1752
+ ), this.remove();
1753
+ };
1754
+ _addEventListeners() {
1755
+ this.shadowRoot?.querySelector(".tag-remove")?.addEventListener("click", this._handleRemove);
1756
+ }
1757
+ _removeEventListeners() {
1758
+ this.shadowRoot?.querySelector(".tag-remove")?.removeEventListener("click", this._handleRemove);
1759
+ }
1760
+ _render() {
1761
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = oe, this._addEventListeners());
1762
+ }
1763
+ }
1764
+ const Fe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1765
+ __proto__: null,
1766
+ TagComponent: _,
1767
+ selector: se
1768
+ }, Symbol.toStringTag, { value: "Module" })), ne = "ds-avatar", le = `<div part="avatar" class="avatar" role="img">
1769
+ <img class="avatar-image" alt="" />
1770
+ <span class="avatar-initials"></span>
1771
+ <span class="avatar-icon">👤</span>
1772
+ </div>
1773
+ `, de = "*{box-sizing:border-box}:host{display:inline-flex}.avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:var(--border-radius-full);background-color:var(--color-primary);color:#fff;font-family:var(--font-family-base);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);overflow:hidden;-webkit-user-select:none;user-select:none;flex-shrink:0}:host([size=xs]) .avatar{width:1.5rem;height:1.5rem;font-size:var(--font-size-xs)}:host([size=sm]) .avatar{width:2rem;height:2rem;font-size:var(--font-size-xs)}:host([size=md]) .avatar{width:2.5rem;height:2.5rem;font-size:var(--font-size-sm)}:host([size=lg]) .avatar{width:3.5rem;height:3.5rem;font-size:var(--font-size-lg)}:host([size=xl]) .avatar{width:5rem;height:5rem;font-size:var(--font-size-2xl)}:host([shape=square]) .avatar{border-radius:var(--border-radius-md)}:host([shape=rounded]) .avatar{border-radius:var(--border-radius-lg)}:host([color=secondary]) .avatar{background-color:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border-primary)}:host([color=success]) .avatar{background-color:var(--color-success)}:host([color=warning]) .avatar{background-color:var(--color-warning);color:#1a1a1a}:host([color=error]) .avatar{background-color:var(--color-error)}.avatar-image{width:100%;height:100%;object-fit:cover;display:none;border-radius:inherit}.avatar-initials{display:none;line-height:1}.avatar-icon{display:flex;font-size:1.2em;line-height:1}:host([src]) .avatar-image{display:block}:host([src]) .avatar-initials{display:none}:host([src]) .avatar-icon{display:none}:host([initials]:not([src])) .avatar-initials{display:block}:host([initials]:not([src])) .avatar-icon{display:none}", st = new CSSStyleSheet();
1774
+ st.replaceSync(de);
1775
+ class n extends HTMLElement {
1776
+ static _srcAttribute = "src";
1777
+ static _altAttribute = "alt";
1778
+ static _initialsAttribute = "initials";
1779
+ static _sizeAttribute = "size";
1780
+ static _shapeAttribute = "shape";
1781
+ static _colorAttribute = "color";
1782
+ constructor() {
1783
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(st);
1784
+ }
1785
+ static get observedAttributes() {
1786
+ return [
1787
+ n._srcAttribute,
1788
+ n._altAttribute,
1789
+ n._initialsAttribute,
1790
+ n._sizeAttribute,
1791
+ n._shapeAttribute,
1792
+ n._colorAttribute
1793
+ ];
1794
+ }
1795
+ get src() {
1796
+ return this.getAttribute(n._srcAttribute) ?? "";
1797
+ }
1798
+ set src(t) {
1799
+ t !== "" && t !== null && t !== void 0 ? this.setAttribute(n._srcAttribute, t) : this.removeAttribute(n._srcAttribute);
1800
+ }
1801
+ get alt() {
1802
+ return this.getAttribute(n._altAttribute) ?? "";
1803
+ }
1804
+ set alt(t) {
1805
+ this.setAttribute(n._altAttribute, t);
1806
+ }
1807
+ get initials() {
1808
+ return this.getAttribute(n._initialsAttribute) ?? "";
1809
+ }
1810
+ set initials(t) {
1811
+ t !== "" && t !== null && t !== void 0 ? this.setAttribute(
1812
+ n._initialsAttribute,
1813
+ t.slice(0, 2).toUpperCase()
1814
+ ) : this.removeAttribute(n._initialsAttribute);
1815
+ }
1816
+ get size() {
1817
+ return this.getAttribute(n._sizeAttribute) ?? "md";
1818
+ }
1819
+ set size(t) {
1820
+ this.setAttribute(n._sizeAttribute, t);
1821
+ }
1822
+ connectedCallback() {
1823
+ this._render();
1824
+ }
1825
+ attributeChangedCallback(t, e, r) {
1826
+ r !== e && this._update(t, r);
1827
+ }
1828
+ _render() {
1829
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = le, this._update(n._srcAttribute, this.src), this._update(n._initialsAttribute, this.initials), this._update(n._altAttribute, this.alt));
1830
+ }
1831
+ _update(t, e) {
1832
+ if (t === n._srcAttribute) {
1833
+ const r = this.shadowRoot?.querySelector(".avatar-image");
1834
+ r != null && (r.src = e ?? "");
1835
+ } else if (t === n._initialsAttribute) {
1836
+ const r = this.shadowRoot?.querySelector(".avatar-initials");
1837
+ r != null && (r.textContent = e ?? "");
1838
+ } else if (t === n._altAttribute) {
1839
+ const r = this.shadowRoot?.querySelector(".avatar-image"), i = this.shadowRoot?.querySelector(".avatar");
1840
+ r != null && (r.alt = e ?? ""), i?.setAttribute("aria-label", e ?? "");
1841
+ }
1842
+ }
1843
+ }
1844
+ const je = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1845
+ __proto__: null,
1846
+ AvatarComponent: n,
1847
+ selector: ne
1848
+ }, Symbol.toStringTag, { value: "Module" })), ce = "ds-tooltip", ue = `<slot></slot>
1849
+ <div part="tooltip" class="tooltip" role="tooltip">
1850
+ <slot name="content"></slot>
1851
+ </div>
1852
+ `, he = "*{box-sizing:border-box}:host{position:relative;display:inline-flex;align-items:center}.tooltip{position:absolute;z-index:var(--z-index-tooltip, 1070);bottom:calc(100% + .5rem);left:50%;transform:translate(-50%);padding:var(--spacing-1) var(--spacing-2);background-color:var(--color-bg-tertiary, #1e1e2e);color:var(--color-text-primary);font-family:var(--font-family-base);font-size:var(--font-size-xs);line-height:var(--line-height-normal);border-radius:var(--border-radius-md);box-shadow:var(--shadow-lg);white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;transition:opacity var(--transition-fast),visibility var(--transition-fast);max-width:16rem;white-space:normal;text-align:center}:host([placement=bottom]) .tooltip{bottom:auto;top:calc(100% + .5rem)}:host([placement=left]) .tooltip{bottom:auto;left:auto;right:calc(100% + .5rem);top:50%;transform:translateY(-50%)}:host([placement=right]) .tooltip{bottom:auto;left:calc(100% + .5rem);top:50%;transform:translateY(-50%)}:host([open]) .tooltip,:host(:hover) .tooltip,:host(:focus-within) .tooltip{opacity:1;visibility:visible}:host([follow-cursor]) .tooltip{position:fixed;bottom:auto;left:0;top:0;transform:none}:host([follow-cursor]) .tooltip{opacity:1;visibility:visible}", ot = new CSSStyleSheet();
1853
+ ot.replaceSync(he);
1854
+ class b extends HTMLElement {
1855
+ static _placementAttribute = "placement";
1856
+ static _contentAttribute = "content";
1857
+ static _openAttribute = "open";
1858
+ static _followCursorAttribute = "follow-cursor";
1859
+ _lastMouseX = 0;
1860
+ _lastMouseY = 0;
1861
+ constructor() {
1862
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(ot);
1863
+ }
1864
+ static get observedAttributes() {
1865
+ return [
1866
+ b._placementAttribute,
1867
+ b._contentAttribute,
1868
+ b._openAttribute,
1869
+ b._followCursorAttribute
1870
+ ];
1871
+ }
1872
+ get placement() {
1873
+ return this.getAttribute(
1874
+ b._placementAttribute
1875
+ ) ?? "top";
1876
+ }
1877
+ set placement(t) {
1878
+ this.setAttribute(b._placementAttribute, t);
1879
+ }
1880
+ get content() {
1881
+ return this.getAttribute(b._contentAttribute) ?? "";
1882
+ }
1883
+ set content(t) {
1884
+ this.setAttribute(b._contentAttribute, t), this._updateContent(t);
1885
+ }
1886
+ get open() {
1887
+ return this.hasAttribute(b._openAttribute);
1888
+ }
1889
+ set open(t) {
1890
+ t ? this.setAttribute(b._openAttribute, "") : this.removeAttribute(b._openAttribute);
1891
+ }
1892
+ get followCursor() {
1893
+ return this.hasAttribute(b._followCursorAttribute);
1894
+ }
1895
+ set followCursor(t) {
1896
+ t ? this.setAttribute(b._followCursorAttribute, "") : this.removeAttribute(b._followCursorAttribute);
1897
+ }
1898
+ connectedCallback() {
1899
+ this._render(), this._attachEventListeners();
1900
+ }
1901
+ disconnectedCallback() {
1902
+ this._removeEventListeners();
1903
+ }
1904
+ attributeChangedCallback(t, e, r) {
1905
+ r !== e && (t === b._contentAttribute && this._updateContent(r), t === b._followCursorAttribute && (r !== null ? this._attachEventListeners() : this._removeEventListeners()));
1906
+ }
1907
+ _render() {
1908
+ if (this.shadowRoot === null)
1909
+ return;
1910
+ this.shadowRoot.innerHTML = ue, this._updateContent(this.content);
1911
+ const t = this.shadowRoot.querySelector(".tooltip");
1912
+ if (t != null) {
1913
+ const e = `tooltip-${Math.random().toString(36).slice(2, 7)}`;
1914
+ t.id = e;
1915
+ }
1916
+ }
1917
+ _attachEventListeners() {
1918
+ this.removeEventListener("mousemove", this._handleMouseMove), this.removeEventListener("mouseleave", this._handleMouseLeave), this.removeEventListener("mouseenter", this._handleMouseEnter), this.followCursor && (this.addEventListener("mouseenter", this._handleMouseEnter), this.addEventListener("mousemove", this._handleMouseMove), this.addEventListener("mouseleave", this._handleMouseLeave));
1919
+ }
1920
+ _removeEventListeners() {
1921
+ this.removeEventListener("mousemove", this._handleMouseMove), this.removeEventListener("mouseleave", this._handleMouseLeave), this.removeEventListener("mouseenter", this._handleMouseEnter);
1922
+ }
1923
+ _handleMouseEnter = () => {
1924
+ const t = this.shadowRoot?.querySelector(".tooltip");
1925
+ t != null && (t.style.opacity = "1", t.style.visibility = "visible");
1926
+ };
1927
+ _handleMouseMove = (t) => {
1928
+ this.followCursor && (this._lastMouseX = t.clientX, this._lastMouseY = t.clientY, this._updateTooltipPosition());
1929
+ };
1930
+ _handleMouseLeave = () => {
1931
+ const t = this.shadowRoot?.querySelector(".tooltip");
1932
+ t != null && (t.style.opacity = "0", t.style.visibility = "hidden", t.style.left = "", t.style.top = "");
1933
+ };
1934
+ _updateTooltipPosition() {
1935
+ const t = this.shadowRoot?.querySelector(".tooltip");
1936
+ if (t == null)
1937
+ return;
1938
+ const e = 10;
1939
+ t.style.position = "fixed", t.style.left = `${this._lastMouseX + e}px`, t.style.top = `${this._lastMouseY + e}px`, t.style.transform = "none";
1940
+ }
1941
+ _updateContent(t) {
1942
+ const e = this.shadowRoot?.querySelector(".tooltip");
1943
+ if (e != null && t !== null && t !== "") {
1944
+ const r = e.querySelector("slot");
1945
+ (r === null || r.assignedNodes().length === 0) && (e.textContent = t);
1946
+ }
1947
+ }
1948
+ }
1949
+ const qe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1950
+ __proto__: null,
1951
+ TooltipComponent: b,
1952
+ selector: ce
1953
+ }, Symbol.toStringTag, { value: "Module" })), be = "ds-text-input", ve = `<div part="wrapper" class="input-wrapper">
1954
+ <label class="input-label" part="label"></label>
1955
+ <div class="input-container">
1956
+ <slot name="prefix" class="input-prefix"></slot>
1957
+ <input class="input" part="input" />
1958
+ <slot name="suffix" class="input-suffix"></slot>
1959
+ </div>
1960
+ <span class="input-helper" part="helper"></span>
1961
+ </div>
1962
+ `, ge = "*{box-sizing:border-box}:host{display:block;width:100%}.input-wrapper{display:flex;flex-direction:column;gap:var(--gap-xs);font-family:var(--font-family-base)}.input-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.input-label:empty{display:none}.input-container{display:flex;align-items:center;background-color:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--border-radius-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);overflow:hidden}.input-container:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 20%,transparent);outline:none}:host([state=error]) .input-container{border-color:#dc2626;box-shadow:none}:host([state=error]) .input-container:focus-within{box-shadow:0 0 0 3px color-mix(in srgb,#dc2626 20%,transparent)}:host([state=success]) .input-container{border-color:var(--color-success)}.input{flex:1;min-width:0;padding:var(--spacing-2) var(--spacing-3);background:transparent;border:none;outline:none;font-family:var(--font-family-base);font-size:var(--font-size-sm);color:var(--color-text-primary);line-height:var(--line-height-normal)}.input::placeholder{color:var(--color-text-secondary);opacity:.7}.input:disabled{opacity:.5;cursor:not-allowed}:host([size=sm]) .input{padding:var(--spacing-1) var(--spacing-2);font-size:var(--font-size-xs)}:host([size=lg]) .input{padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-size-md)}.input-helper{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.input-helper:empty{display:none}:host([state=error]) .input-helper{color:#dc2626}:host([state=success]) .input-helper{color:var(--color-success)}::slotted([slot=prefix]),::slotted([slot=suffix]){display:flex;align-items:center;padding-inline:var(--spacing-2);color:var(--color-text-secondary);font-size:var(--font-size-sm);flex-shrink:0}", at = new CSSStyleSheet();
1963
+ at.replaceSync(ge);
1964
+ class o extends HTMLElement {
1965
+ static _labelAttribute = "label";
1966
+ static _placeholderAttribute = "placeholder";
1967
+ static _valueAttribute = "value";
1968
+ static _typeAttribute = "type";
1969
+ static _disabledAttribute = "disabled";
1970
+ static _requiredAttribute = "required";
1971
+ static _stateAttribute = "state";
1972
+ static _helperAttribute = "helper";
1973
+ static _sizeAttribute = "size";
1974
+ static _nameAttribute = "name";
1975
+ constructor() {
1976
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(at);
1977
+ }
1978
+ static get observedAttributes() {
1979
+ return [
1980
+ o._labelAttribute,
1981
+ o._placeholderAttribute,
1982
+ o._valueAttribute,
1983
+ o._typeAttribute,
1984
+ o._disabledAttribute,
1985
+ o._requiredAttribute,
1986
+ o._stateAttribute,
1987
+ o._helperAttribute,
1988
+ o._sizeAttribute,
1989
+ o._nameAttribute
1990
+ ];
1991
+ }
1992
+ get value() {
1993
+ return this._inputElement?.value ?? this.getAttribute(o._valueAttribute) ?? "";
1994
+ }
1995
+ set value(t) {
1996
+ this.setAttribute(o._valueAttribute, t), this._inputElement !== null && this._inputElement !== void 0 && (this._inputElement.value = t);
1997
+ }
1998
+ get label() {
1999
+ return this.getAttribute(o._labelAttribute) ?? "";
2000
+ }
2001
+ set label(t) {
2002
+ this.setAttribute(o._labelAttribute, t);
2003
+ }
2004
+ get placeholder() {
2005
+ return this.getAttribute(o._placeholderAttribute) ?? "";
2006
+ }
2007
+ set placeholder(t) {
2008
+ this.setAttribute(o._placeholderAttribute, t);
2009
+ }
2010
+ get disabled() {
2011
+ return this.hasAttribute(o._disabledAttribute);
2012
+ }
2013
+ set disabled(t) {
2014
+ t ? this.setAttribute(o._disabledAttribute, "") : this.removeAttribute(o._disabledAttribute);
2015
+ }
2016
+ get state() {
2017
+ return this.getAttribute(o._stateAttribute) ?? "default";
2018
+ }
2019
+ set state(t) {
2020
+ this.setAttribute(o._stateAttribute, t);
2021
+ }
2022
+ get helper() {
2023
+ return this.getAttribute(o._helperAttribute) ?? "";
2024
+ }
2025
+ set helper(t) {
2026
+ this.setAttribute(o._helperAttribute, t);
2027
+ }
2028
+ get _inputElement() {
2029
+ return this.shadowRoot?.querySelector(".input") ?? null;
2030
+ }
2031
+ connectedCallback() {
2032
+ this._render(), this._addEventListeners();
2033
+ }
2034
+ disconnectedCallback() {
2035
+ this._removeEventListeners();
2036
+ }
2037
+ attributeChangedCallback(t, e, r) {
2038
+ r !== e && this._syncAttribute(t, r);
2039
+ }
2040
+ _handleInput = () => {
2041
+ this.dispatchEvent(
2042
+ new CustomEvent("ds-input", {
2043
+ bubbles: !0,
2044
+ composed: !0,
2045
+ detail: { value: this._inputElement?.value }
2046
+ })
2047
+ );
2048
+ };
2049
+ _handleChange = () => {
2050
+ this.dispatchEvent(
2051
+ new CustomEvent("ds-change", {
2052
+ bubbles: !0,
2053
+ composed: !0,
2054
+ detail: { value: this._inputElement?.value }
2055
+ })
2056
+ );
2057
+ };
2058
+ _addEventListeners() {
2059
+ this._inputElement?.addEventListener("input", this._handleInput), this._inputElement?.addEventListener("change", this._handleChange);
2060
+ }
2061
+ _removeEventListeners() {
2062
+ this._inputElement?.removeEventListener("input", this._handleInput), this._inputElement?.removeEventListener("change", this._handleChange);
2063
+ }
2064
+ _syncAttribute(t, e) {
2065
+ const r = this._inputElement, i = this.shadowRoot?.querySelector(".input-label"), a = this.shadowRoot?.querySelector(".input-helper");
2066
+ switch (t) {
2067
+ case o._labelAttribute:
2068
+ i != null && (i.textContent = e ?? "");
2069
+ break;
2070
+ case o._placeholderAttribute:
2071
+ r?.setAttribute("placeholder", e ?? "");
2072
+ break;
2073
+ case o._valueAttribute:
2074
+ r != null && (r.value = e ?? "");
2075
+ break;
2076
+ case o._typeAttribute:
2077
+ r?.setAttribute("type", e ?? "text");
2078
+ break;
2079
+ case o._disabledAttribute:
2080
+ e !== null ? r?.setAttribute("disabled", "") : r?.removeAttribute("disabled");
2081
+ break;
2082
+ case o._requiredAttribute:
2083
+ e !== null ? r?.setAttribute("required", "") : r?.removeAttribute("required");
2084
+ break;
2085
+ case o._helperAttribute:
2086
+ a != null && (a.textContent = e ?? "");
2087
+ break;
2088
+ case o._nameAttribute:
2089
+ e !== null && e !== "" ? r?.setAttribute("name", e) : r?.removeAttribute("name");
2090
+ break;
2091
+ }
2092
+ }
2093
+ _render() {
2094
+ if (this.shadowRoot === null)
2095
+ return;
2096
+ this.shadowRoot.innerHTML = ve;
2097
+ const t = this._inputElement;
2098
+ if (t !== null) {
2099
+ t.setAttribute(
2100
+ "type",
2101
+ this.getAttribute(o._typeAttribute) ?? "text"
2102
+ ), t.setAttribute("placeholder", this.placeholder), t.value = this.getAttribute(o._valueAttribute) ?? "", this.disabled && t.setAttribute("disabled", ""), this.hasAttribute(o._requiredAttribute) && t.setAttribute("required", "");
2103
+ const i = this.getAttribute(o._nameAttribute);
2104
+ i !== null && i !== "" && t.setAttribute("name", i);
2105
+ }
2106
+ const e = this.shadowRoot.querySelector(".input-label");
2107
+ e !== null && (e.textContent = this.label);
2108
+ const r = this.shadowRoot.querySelector(".input-helper");
2109
+ r !== null && (r.textContent = this.helper), this._addEventListeners();
2110
+ }
2111
+ }
2112
+ const De = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2113
+ __proto__: null,
2114
+ TextInputComponent: o,
2115
+ selector: be
2116
+ }, Symbol.toStringTag, { value: "Module" })), pe = "ds-toggle", fe = `<label class="toggle-wrapper" part="wrapper">
2117
+ <input class="toggle-input" type="checkbox" role="switch" />
2118
+ <span class="toggle-track" part="track">
2119
+ <span class="toggle-thumb" part="thumb"></span>
2120
+ </span>
2121
+ <span class="toggle-label" part="label"><slot></slot></span>
2122
+ </label>
2123
+ `, me = "*{box-sizing:border-box}:host{display:inline-flex}.toggle-wrapper{display:inline-flex;align-items:center;gap:var(--gap-sm);cursor:pointer;-webkit-user-select:none;user-select:none;font-family:var(--font-family-base);font-size:var(--font-size-sm);color:var(--color-text-primary)}.toggle-input{position:absolute;opacity:0;width:0;height:0}.toggle-track{position:relative;display:inline-flex;align-items:center;width:2.75rem;height:1.5rem;border-radius:var(--border-radius-full);background-color:var(--color-border-primary);transition:background-color var(--transition-fast);flex-shrink:0}.toggle-input:checked+.toggle-track{background-color:var(--color-primary)}.toggle-thumb{position:absolute;left:3px;width:1.125rem;height:1.125rem;border-radius:var(--border-radius-full);background-color:#fff;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast)}.toggle-input:checked+.toggle-track .toggle-thumb{transform:translate(1.25rem)}.toggle-input:focus-visible+.toggle-track{outline:2px solid var(--color-primary);outline-offset:2px}.toggle-input:disabled+.toggle-track{opacity:.4;cursor:not-allowed}:host([disabled]) .toggle-wrapper{cursor:not-allowed;opacity:.5}:host([size=sm]) .toggle-track{width:2rem;height:1.125rem}:host([size=sm]) .toggle-thumb{width:.875rem;height:.875rem}:host([size=sm]) .toggle-input:checked+.toggle-track .toggle-thumb{transform:translate(.875rem)}:host([size=lg]) .toggle-track{width:3.5rem;height:2rem}:host([size=lg]) .toggle-thumb{width:1.5rem;height:1.5rem}:host([size=lg]) .toggle-input:checked+.toggle-track .toggle-thumb{transform:translate(1.5rem)}:host([variant=success]) .toggle-input:checked+.toggle-track{background-color:var(--color-success)}:host([variant=warning]) .toggle-input:checked+.toggle-track{background-color:var(--color-warning)}:host([variant=error]) .toggle-input:checked+.toggle-track{background-color:var(--color-error)}.toggle-label:empty{display:none}", nt = new CSSStyleSheet();
2124
+ nt.replaceSync(me);
2125
+ class l extends HTMLElement {
2126
+ static _checkedAttribute = "checked";
2127
+ static _disabledAttribute = "disabled";
2128
+ static _variantAttribute = "variant";
2129
+ static _sizeAttribute = "size";
2130
+ static _nameAttribute = "name";
2131
+ static _valueAttribute = "value";
2132
+ constructor() {
2133
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(nt);
2134
+ }
2135
+ static get observedAttributes() {
2136
+ return [
2137
+ l._checkedAttribute,
2138
+ l._disabledAttribute,
2139
+ l._variantAttribute,
2140
+ l._sizeAttribute
2141
+ ];
2142
+ }
2143
+ get checked() {
2144
+ return this.hasAttribute(l._checkedAttribute);
2145
+ }
2146
+ set checked(t) {
2147
+ t ? this.setAttribute(l._checkedAttribute, "") : this.removeAttribute(l._checkedAttribute);
2148
+ const e = this._inputElement;
2149
+ e != null && (e.checked = t);
2150
+ }
2151
+ get disabled() {
2152
+ return this.hasAttribute(l._disabledAttribute);
2153
+ }
2154
+ set disabled(t) {
2155
+ t ? this.setAttribute(l._disabledAttribute, "") : this.removeAttribute(l._disabledAttribute);
2156
+ const e = this._inputElement;
2157
+ e != null && (e.disabled = t);
2158
+ }
2159
+ get _inputElement() {
2160
+ return this.shadowRoot?.querySelector(".toggle-input") ?? null;
2161
+ }
2162
+ connectedCallback() {
2163
+ this._render(), this._addEventListeners();
2164
+ }
2165
+ disconnectedCallback() {
2166
+ this._removeEventListeners();
2167
+ }
2168
+ attributeChangedCallback(t, e, r) {
2169
+ if (r === e)
2170
+ return;
2171
+ const i = this._inputElement;
2172
+ i !== null && (t === l._checkedAttribute ? i.checked = r !== null : t === l._disabledAttribute && (i.disabled = r !== null));
2173
+ }
2174
+ _handleChange = () => {
2175
+ const t = this._inputElement?.checked ?? !1;
2176
+ t ? this.setAttribute(l._checkedAttribute, "") : this.removeAttribute(l._checkedAttribute), this.dispatchEvent(
2177
+ new CustomEvent("ds-change", {
2178
+ bubbles: !0,
2179
+ composed: !0,
2180
+ detail: { checked: t }
2181
+ })
2182
+ );
2183
+ };
2184
+ _addEventListeners() {
2185
+ this._inputElement?.addEventListener("change", this._handleChange);
2186
+ }
2187
+ _removeEventListeners() {
2188
+ this._inputElement?.removeEventListener("change", this._handleChange);
2189
+ }
2190
+ _render() {
2191
+ if (this.shadowRoot === null)
2192
+ return;
2193
+ this.shadowRoot.innerHTML = fe;
2194
+ const t = this._inputElement;
2195
+ t != null && (t.checked = this.checked, t.disabled = this.disabled, this.getAttribute(l._nameAttribute) !== null && this.getAttribute(l._nameAttribute) !== "" && (t.name = this.getAttribute(l._nameAttribute) ?? ""), this.getAttribute(l._valueAttribute) !== null && this.getAttribute(l._valueAttribute) !== "" && (t.value = this.getAttribute(l._valueAttribute) ?? "on")), this._addEventListeners();
2196
+ }
2197
+ }
2198
+ const Pe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1289
2199
  __proto__: null,
1290
- BarMenuComponent: h,
1291
- selector: mt
2200
+ ToggleComponent: l,
2201
+ selector: pe
1292
2202
  }, Symbol.toStringTag, { value: "Module" }));
1293
2203
  export {
1294
- yt as APPLICATION_NAME,
1295
- kt as BarMenu,
1296
- At as BaseButton,
1297
- Rt as BaseDialog,
1298
- E as CUSTOM_MESSAGES,
1299
- Lt as ConfirmButton,
1300
- xt as ConfirmationDialog,
1301
- It as HeaderBodyFooterDialog,
1302
- Et as NextButton,
1303
- wt as PreviousButton,
1304
- St as UndoButton,
1305
- ft as WebComponentsRegistry,
1306
- F as clearThemes,
1307
- _t as switchTheme
2204
+ ye as APPLICATION_NAME,
2205
+ Te as Alert,
2206
+ je as Avatar,
2207
+ Ne as Badge,
2208
+ Me as BarMenu,
2209
+ we as BaseButton,
2210
+ He as BaseCard,
2211
+ ke as BaseDialog,
2212
+ T as CUSTOM_MESSAGES,
2213
+ Ee as ConfirmButton,
2214
+ Re as ConfirmationDialog,
2215
+ ze as HeaderBodyFooterDialog,
2216
+ Le as NextButton,
2217
+ xe as PreviousButton,
2218
+ $e as ProgressBar,
2219
+ Ie as Skeleton,
2220
+ Oe as Spinner,
2221
+ Fe as Tag,
2222
+ De as TextInput,
2223
+ Pe as Toggle,
2224
+ qe as Tooltip,
2225
+ Se as UndoButton,
2226
+ Ae as WebComponentsRegistry,
2227
+ ct as clearThemes,
2228
+ _e as switchTheme
1308
2229
  };