@albi_scando/as-design-system-lib 1.8.2 → 1.9.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.
@@ -1,5 +1,5 @@
1
- const ye = "as-design-system-lib";
2
- class Ae {
1
+ const ze = "as-design-system-lib";
2
+ class Me {
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 Ae {
19
19
  * @returns {void}
20
20
  */
21
21
  registerAllComponents(t) {
22
- Array.from(t.entries()).forEach(([e, r]) => {
23
- this.registerComponent(e, r);
22
+ Array.from(t.entries()).forEach(([e, i]) => {
23
+ this.registerComponent(e, i);
24
24
  });
25
25
  }
26
26
  /**
@@ -36,10 +36,10 @@ class Ae {
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 T = {
39
+ const j = {
40
40
  CONFIRMATION_DIALOG_CONFIRM: "confirmation-dialog-confirm",
41
41
  CONFIRMATION_DIALOG_UNDO: "confirmation-dialog-undo"
42
- }, w = {
42
+ }, S = {
43
43
  COSMO: "Cosmo theme with a futuristic and space-inspired design.",
44
44
  DARK: "Dark theme with a sleek and modern look.",
45
45
  DARK_PURPLE: "Dark Purple theme with a luxurious and elegant feel.",
@@ -49,7 +49,7 @@ const T = {
49
49
  LIGHT: "Light theme with a clean and minimalistic design.",
50
50
  LIGHT_BLUE: "Light Blue theme with a refreshing and calm appearance.",
51
51
  WATER: "Water theme with a serene and tranquil feel."
52
- }, S = {
52
+ }, x = {
53
53
  COSMO: "🚀",
54
54
  DARK: "🌙",
55
55
  DARK_PURPLE: "🟣",
@@ -69,7 +69,7 @@ const T = {
69
69
  LIGHT: "Light",
70
70
  LIGHT_BLUE: "Light Blue",
71
71
  WATER: "Water"
72
- }, x = {
72
+ }, k = {
73
73
  COSMO: "cosmo",
74
74
  DARK: "dark",
75
75
  DARK_PURPLE: "dark-purple",
@@ -89,107 +89,107 @@ const T = {
89
89
  LIGHT: "light",
90
90
  LIGHT_BLUE: "light-blue",
91
91
  WATER: "water"
92
- }, dt = /* @__PURE__ */ new Map([
92
+ }, ht = /* @__PURE__ */ new Map([
93
93
  [
94
94
  u.COSMO,
95
95
  {
96
- description: w.COSMO,
97
- icon: S.COSMO,
96
+ description: S.COSMO,
97
+ icon: x.COSMO,
98
98
  id: u.COSMO,
99
99
  name: E.COSMO,
100
- value: x.COSMO
100
+ value: k.COSMO
101
101
  }
102
102
  ],
103
103
  [
104
104
  u.DARK,
105
105
  {
106
- description: w.DARK,
107
- icon: S.DARK,
106
+ description: S.DARK,
107
+ icon: x.DARK,
108
108
  id: u.DARK,
109
109
  name: E.DARK,
110
- value: x.DARK
110
+ value: k.DARK
111
111
  }
112
112
  ],
113
113
  [
114
114
  u.DARK_PURPLE,
115
115
  {
116
- description: w.DARK_PURPLE,
117
- icon: S.DARK_PURPLE,
116
+ description: S.DARK_PURPLE,
117
+ icon: x.DARK_PURPLE,
118
118
  id: u.DARK_PURPLE,
119
119
  name: E.DARK_PURPLE,
120
- value: x.DARK_PURPLE
120
+ value: k.DARK_PURPLE
121
121
  }
122
122
  ],
123
123
  [
124
124
  u.FERRARI,
125
125
  {
126
- description: w.FERRARI,
127
- icon: S.FERRARI,
126
+ description: S.FERRARI,
127
+ icon: x.FERRARI,
128
128
  id: u.FERRARI,
129
129
  name: E.FERRARI,
130
- value: x.FERRARI
130
+ value: k.FERRARI
131
131
  }
132
132
  ],
133
133
  [
134
134
  u.FIRE,
135
135
  {
136
- description: w.FIRE,
137
- icon: S.FIRE,
136
+ description: S.FIRE,
137
+ icon: x.FIRE,
138
138
  id: u.FIRE,
139
139
  name: E.FIRE,
140
- value: x.FIRE
140
+ value: k.FIRE
141
141
  }
142
142
  ],
143
143
  [
144
144
  u.FOREST,
145
145
  {
146
- description: w.FOREST,
147
- icon: S.FOREST,
146
+ description: S.FOREST,
147
+ icon: x.FOREST,
148
148
  id: u.FOREST,
149
149
  name: E.FOREST,
150
- value: x.FOREST
150
+ value: k.FOREST
151
151
  }
152
152
  ],
153
153
  [
154
154
  u.LIGHT,
155
155
  {
156
- description: w.LIGHT,
157
- icon: S.LIGHT,
156
+ description: S.LIGHT,
157
+ icon: x.LIGHT,
158
158
  id: u.LIGHT,
159
159
  name: E.LIGHT,
160
- value: x.LIGHT
160
+ value: k.LIGHT
161
161
  }
162
162
  ],
163
163
  [
164
164
  u.LIGHT_BLUE,
165
165
  {
166
- description: w.LIGHT_BLUE,
167
- icon: S.LIGHT_BLUE,
166
+ description: S.LIGHT_BLUE,
167
+ icon: x.LIGHT_BLUE,
168
168
  id: u.LIGHT_BLUE,
169
169
  name: E.LIGHT_BLUE,
170
- value: x.LIGHT_BLUE
170
+ value: k.LIGHT_BLUE
171
171
  }
172
172
  ],
173
173
  [
174
174
  u.WATER,
175
175
  {
176
- description: w.WATER,
177
- icon: S.WATER,
176
+ description: S.WATER,
177
+ icon: x.WATER,
178
178
  id: u.WATER,
179
179
  name: E.WATER,
180
- value: x.WATER
180
+ value: k.WATER
181
181
  }
182
182
  ]
183
- ]), _e = ($) => {
184
- ct();
185
- const t = dt.get($)?.value;
183
+ ]), Oe = (O) => {
184
+ bt();
185
+ const t = ht.get(O)?.value;
186
186
  t !== void 0 && document.body.classList.add(t);
187
- }, ct = () => {
187
+ }, bt = () => {
188
188
  document.body.classList.remove(...Object.values(u));
189
- }, ut = "base-button", d = "", O = {
189
+ }, vt = "base-button", d = "", N = {
190
190
  SHOW_MODAL: "show-modal",
191
191
  CLOSE: "close"
192
- }, ht = {
192
+ }, gt = {
193
193
  CUSTOM_CROSSHAIR: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
194
194
  <!-- White border (underneath) -->
195
195
  <line x1="16" y1="2" x2="16" y2="30" stroke="white" stroke-width="5"/>
@@ -200,20 +200,20 @@ const T = {
200
200
  <line x1="2" y1="16" x2="30" y2="16" stroke="black" stroke-width="2"/>
201
201
  </svg>`
202
202
  };
203
- `${btoa(ht.CUSTOM_CROSSHAIR)}`;
203
+ `${btoa(gt.CUSTOM_CROSSHAIR)}`;
204
204
  const F = {
205
205
  ANY: "any",
206
206
  NONE: "none"
207
- }, P = {
207
+ }, U = {
208
208
  KEY_DOWN: "keydown"
209
- }, R = {
209
+ }, z = {
210
210
  CLICK: "click"
211
- }, bt = `<button part="button">
211
+ }, pt = `<button part="button">
212
212
  <slot></slot>
213
213
  </button>
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 {
214
+ `, ft = "*{box-sizing:border-box}:host{display:inline-flex;vertical-align:middle}: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)}", K = new CSSStyleSheet();
215
+ K.replaceSync(ft);
216
+ class r extends HTMLElement {
217
217
  /**
218
218
  * @see HTMLButtonElement.autofocus
219
219
  */
@@ -251,73 +251,73 @@ class s extends HTMLElement {
251
251
  * @ignore
252
252
  */
253
253
  constructor() {
254
- super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(U);
254
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(K);
255
255
  }
256
256
  /**
257
257
  * Specifies which attributes should be observed for changes.
258
258
  */
259
259
  static get observedAttributes() {
260
260
  return [
261
- s.autofocusAttribute,
262
- s.commandAttribute,
263
- s.commandforAttribute,
264
- s.disabledAttribute,
265
- s.nameAttribute,
266
- s.titleAttribute,
267
- s.typeAttribute,
268
- s.valueAttribute
261
+ r.autofocusAttribute,
262
+ r.commandAttribute,
263
+ r.commandforAttribute,
264
+ r.disabledAttribute,
265
+ r.nameAttribute,
266
+ r.titleAttribute,
267
+ r.typeAttribute,
268
+ r.valueAttribute
269
269
  ];
270
270
  }
271
271
  get buttonElement() {
272
272
  return this.shadowRoot?.querySelector("button");
273
273
  }
274
274
  get autofocus() {
275
- return this.hasAttribute(s.autofocusAttribute);
275
+ return this.hasAttribute(r.autofocusAttribute);
276
276
  }
277
277
  set autofocus(t) {
278
- t ? this.setAttribute(s.autofocusAttribute, d) : this.removeAttribute(s.autofocusAttribute);
278
+ t ? this.setAttribute(r.autofocusAttribute, d) : this.removeAttribute(r.autofocusAttribute);
279
279
  }
280
280
  get command() {
281
- return this.getAttribute(s.commandAttribute) ?? d;
281
+ return this.getAttribute(r.commandAttribute) ?? d;
282
282
  }
283
283
  set command(t) {
284
- this.setAttribute(s.commandAttribute, t);
284
+ this.setAttribute(r.commandAttribute, t);
285
285
  }
286
286
  get commandfor() {
287
- return this.getAttribute(s.commandforAttribute) ?? d;
287
+ return this.getAttribute(r.commandforAttribute) ?? d;
288
288
  }
289
289
  set commandfor(t) {
290
- t !== d ? this.setAttribute(s.commandforAttribute, t) : this.removeAttribute(s.commandforAttribute);
290
+ t !== d ? this.setAttribute(r.commandforAttribute, t) : this.removeAttribute(r.commandforAttribute);
291
291
  }
292
292
  get disabled() {
293
- return this.hasAttribute(s.disabledAttribute);
293
+ return this.hasAttribute(r.disabledAttribute);
294
294
  }
295
295
  set disabled(t) {
296
- t ? this.setAttribute(s.disabledAttribute, d) : this.removeAttribute(s.disabledAttribute);
296
+ t ? this.setAttribute(r.disabledAttribute, d) : this.removeAttribute(r.disabledAttribute);
297
297
  }
298
298
  get name() {
299
- return this.getAttribute(s.nameAttribute) ?? d;
299
+ return this.getAttribute(r.nameAttribute) ?? d;
300
300
  }
301
301
  set name(t) {
302
- t !== d ? this.setAttribute(s.nameAttribute, t) : this.removeAttribute(s.nameAttribute);
302
+ t !== d ? this.setAttribute(r.nameAttribute, t) : this.removeAttribute(r.nameAttribute);
303
303
  }
304
304
  get headline() {
305
- return this.getAttribute(s.titleAttribute) ?? d;
305
+ return this.getAttribute(r.titleAttribute) ?? d;
306
306
  }
307
307
  set headline(t) {
308
- t !== d ? this.setAttribute(s.titleAttribute, t) : this.removeAttribute(s.titleAttribute);
308
+ t !== d ? this.setAttribute(r.titleAttribute, t) : this.removeAttribute(r.titleAttribute);
309
309
  }
310
310
  get type() {
311
- return this.getAttribute(s.typeAttribute) ?? "button";
311
+ return this.getAttribute(r.typeAttribute) ?? "button";
312
312
  }
313
313
  set type(t) {
314
- t !== d ? this.setAttribute(s.typeAttribute, t) : this.removeAttribute(s.typeAttribute);
314
+ t !== d ? this.setAttribute(r.typeAttribute, t) : this.removeAttribute(r.typeAttribute);
315
315
  }
316
316
  get value() {
317
- return this.getAttribute(s.valueAttribute) ?? "button";
317
+ return this.getAttribute(r.valueAttribute) ?? "button";
318
318
  }
319
319
  set value(t) {
320
- t !== d ? this.setAttribute(s.valueAttribute, t) : this.removeAttribute(s.valueAttribute);
320
+ t !== d ? this.setAttribute(r.valueAttribute, t) : this.removeAttribute(r.valueAttribute);
321
321
  }
322
322
  /**
323
323
  * Lifecycle hook invoked when the component is inserted into the DOM.
@@ -344,15 +344,15 @@ class s extends HTMLElement {
344
344
  * @param newValue - The new value (or null if removed)
345
345
  * @returns {void}
346
346
  */
347
- attributeChangedCallback(t, e, r) {
348
- r !== e && this._syncAttribute(t);
347
+ attributeChangedCallback(t, e, i) {
348
+ i !== e && this._syncAttribute(t);
349
349
  }
350
350
  /**
351
351
  * Renders the component's HTML structure.
352
352
  * Syncs host attributes to the internal button element.
353
353
  */
354
354
  _render() {
355
- this.shadowRoot !== null && (this.shadowRoot.innerHTML = bt, this._syncAttributes());
355
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = pt, this._syncAttributes());
356
356
  }
357
357
  /**
358
358
  * Adds event listeners to the component.
@@ -360,7 +360,7 @@ class s extends HTMLElement {
360
360
  * @returns {void}
361
361
  */
362
362
  _addEventListeners() {
363
- this.buttonElement.addEventListener(R.CLICK, this._handleClick);
363
+ this.buttonElement?.addEventListener(z.CLICK, this._handleClick);
364
364
  }
365
365
  /**
366
366
  * Removes event listeners from the component.
@@ -368,7 +368,10 @@ class s extends HTMLElement {
368
368
  * @returns {void}
369
369
  */
370
370
  _removeEventListeners() {
371
- this.buttonElement.addEventListener(R.CLICK, this._handleClick);
371
+ this.buttonElement?.removeEventListener(
372
+ z.CLICK,
373
+ this._handleClick
374
+ );
372
375
  }
373
376
  /**
374
377
  * Handles the internal button click event and executes the configured command.
@@ -400,10 +403,10 @@ class s extends HTMLElement {
400
403
  return;
401
404
  const e = t;
402
405
  switch (this.command) {
403
- case O.SHOW_MODAL:
406
+ case N.SHOW_MODAL:
404
407
  e.showModal?.();
405
408
  break;
406
- case O.CLOSE:
409
+ case N.CLOSE:
407
410
  e.close?.();
408
411
  break;
409
412
  }
@@ -416,14 +419,14 @@ class s extends HTMLElement {
416
419
  * @returns The element if found, null otherwise
417
420
  */
418
421
  _findElementInShadowDOM(t) {
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;
422
+ const i = `#${CSS.escape(t)}`;
423
+ let s = this.querySelector(i);
424
+ if (s !== null || (s = this._searchInShadowRootsOfChildren(this, i), s !== null))
425
+ return s;
423
426
  let a = this.parentElement;
424
427
  for (; a !== null; ) {
425
- if (i = a.querySelector(r), i !== null || (i = this._searchInShadowRootsOfChildren(a, r), i !== null))
426
- return i;
428
+ if (s = a.querySelector(i), s !== null || (s = this._searchInShadowRootsOfChildren(a, i), s !== null))
429
+ return s;
427
430
  const v = a.parentElement;
428
431
  if (v !== null)
429
432
  a = v;
@@ -445,21 +448,21 @@ class s extends HTMLElement {
445
448
  * @returns The element if found, null otherwise
446
449
  */
447
450
  _searchInShadowRootsOfChildren(t, e) {
448
- const r = t.children;
449
- for (const i of r) {
450
- if (i.shadowRoot !== null) {
451
- const v = i.shadowRoot.querySelector(e);
451
+ const i = t.children;
452
+ for (const s of i) {
453
+ if (s.shadowRoot !== null) {
454
+ const v = s.shadowRoot.querySelector(e);
452
455
  if (v !== null)
453
456
  return v;
454
457
  const c = this._searchInShadowRootsOfChildren(
455
- i.shadowRoot,
458
+ s.shadowRoot,
456
459
  e
457
460
  );
458
461
  if (c !== null)
459
462
  return c;
460
463
  }
461
464
  const a = this._searchInShadowRootsOfChildren(
462
- i,
465
+ s,
463
466
  e
464
467
  );
465
468
  if (a !== null)
@@ -470,12 +473,18 @@ class s extends HTMLElement {
470
473
  /**
471
474
  * Syncs a single attribute from host to button element.
472
475
  *
476
+ * The `command` and `commandfor` attributes are intentionally excluded from
477
+ * this sync: they live on the host element and are read there by the custom
478
+ * `_handleClick` handler. Putting them on the inner `<button>` would trigger
479
+ * the browser's native Invoker Commands API, which can conflict with our own
480
+ * click handling logic.
481
+ *
473
482
  * @param name - The attribute name to sync
474
483
  * @returns {void}
475
484
  */
476
485
  _syncAttribute(t) {
477
486
  const e = this.buttonElement;
478
- e !== null && (this.hasAttribute(t) ? e.setAttribute(t, this.getAttribute(t) ?? d) : e.removeAttribute(t));
487
+ e !== null && (t === r.commandAttribute || t === r.commandforAttribute || (this.hasAttribute(t) ? e.setAttribute(t, this.getAttribute(t) ?? d) : e.removeAttribute(t)));
479
488
  }
480
489
  /**
481
490
  * Syncs all observed attributes from host to button element.
@@ -484,119 +493,201 @@ class s extends HTMLElement {
484
493
  * @returns {void}
485
494
  */
486
495
  _syncAttributes() {
487
- s.observedAttributes.forEach((t) => {
496
+ r.observedAttributes.forEach((t) => {
488
497
  this._syncAttribute(t);
489
498
  });
490
499
  }
491
500
  }
492
- const we = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
501
+ const $e = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
493
502
  __proto__: null,
494
- BaseButtonComponent: s,
495
- selector: ut
496
- }, Symbol.toStringTag, { value: "Module" })), gt = `<button title="Undo" part="button">
503
+ BaseButtonComponent: r,
504
+ selector: vt
505
+ }, Symbol.toStringTag, { value: "Module" })), mt = `<button title="Undo" part="button">
497
506
  <span class="material-symbols-outlined">undo</span>
498
507
  <span>Undo</span>
499
508
  </button>
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 {
509
+ `, yt = "*{box-sizing:border-box}:host{display:inline-flex;vertical-align:middle}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)}", G = new CSSStyleSheet();
510
+ G.replaceSync(yt);
511
+ class At extends r {
512
+ /**
513
+ * @constructor
514
+ * @ignore
515
+ */
516
+ constructor() {
517
+ super(), this.shadowRoot?.adoptedStyleSheets.push(G);
518
+ }
519
+ /**
520
+ * Specifies which attributes should be observed for changes.
521
+ */
522
+ static get observedAttributes() {
523
+ return r.observedAttributes;
524
+ }
525
+ /**
526
+ * Lifecycle hook invoked when the component is inserted into the DOM.
527
+ */
528
+ connectedCallback() {
529
+ this.hasAttribute("command") || this.setAttribute("command", N.CLOSE), this._render(), this._setCommandForAttribute(), this._addEventListeners();
530
+ }
531
+ /**
532
+ * Lifecycle hook invoked when the component is removed from the DOM.
533
+ */
534
+ disconnectedCallback() {
535
+ this._removeEventListeners();
536
+ }
537
+ /**
538
+ * Renders the component's HTML structure.
539
+ */
540
+ _render() {
541
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = mt, this._syncAttributes());
542
+ }
543
+ /**
544
+ * Finds the closest parent dialog and sets the `commandfor` attribute to its
545
+ * ID so that clicking the button closes the dialog automatically.
546
+ *
547
+ * Only sets `commandfor` when the button is nested inside a recognised dialog
548
+ * element. When used standalone the caller is responsible for setting it.
549
+ *
550
+ * @returns {void}
551
+ */
552
+ _setCommandForAttribute() {
553
+ if (this.hasAttribute("commandfor"))
554
+ return;
555
+ let t = this.getRootNode();
556
+ "host" in t && t.host !== null && t.host !== void 0 && (t = t.host);
557
+ const e = t instanceof Element ? t.closest("base-dialog") ?? t.closest("confirmation-dialog") : null;
558
+ e !== null && (this.commandfor = e.id);
559
+ }
560
+ }
561
+ const q = "undo-button", Ie = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
562
+ __proto__: null,
563
+ UndoButtonComponent: At,
564
+ selector: q
565
+ }, Symbol.toStringTag, { value: "Module" })), _t = `<div class="tooltip">Close</div>
566
+ <button part="button" title="Close">
567
+ <span class="material-symbols-outlined">close</span>
568
+ </button>
569
+ `, wt = "*{box-sizing:border-box}:host{position:relative;display:inline-flex;vertical-align:middle}.tooltip{position:absolute;top:auto;bottom:calc(100% + .5rem);left:50%;right:auto;transform:translate(-50%);width:max-content;height:auto;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);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);z-index:10000;margin:0}button[part=button]{background:var(--color-error);border:none;border-radius:var(--border-radius-md);padding:var(--spacing-2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;aspect-ratio:1;transition:all var(--transition-base);box-shadow:var(--shadow-md);position:relative}button[part=button]:hover{filter:brightness(1.2)}:host(:hover) .tooltip{opacity:1;visibility:visible}", C = new CSSStyleSheet();
570
+ C.replaceSync(wt);
571
+ class St extends r {
503
572
  /**
504
573
  * @constructor
505
574
  * @ignore
506
575
  */
507
576
  constructor() {
508
- super(), this.shadowRoot?.adoptedStyleSheets.push(K), this.command = O.CLOSE, this.title = "Undo";
577
+ super(), this.shadowRoot?.adoptedStyleSheets.push(C);
509
578
  }
510
579
  /**
511
580
  * Specifies which attributes should be observed for changes.
512
581
  */
513
582
  static get observedAttributes() {
514
- return s.observedAttributes;
583
+ return r.observedAttributes;
515
584
  }
516
585
  /**
517
586
  * Lifecycle hook invoked when the component is inserted into the DOM.
518
587
  */
519
588
  connectedCallback() {
520
- this._render(), this._setCommandForAttribute(), this._addEventListeners();
589
+ this.hasAttribute("command") || this.setAttribute("command", N.CLOSE), this._render(), this._setCommandForAttribute(), this._addEventListeners();
590
+ }
591
+ /**
592
+ * Lifecycle hook invoked when the component is removed from the DOM.
593
+ */
594
+ disconnectedCallback() {
595
+ this._removeEventListeners();
521
596
  }
522
597
  /**
523
598
  * Renders the component's HTML structure.
524
599
  */
525
600
  _render() {
526
- this.shadowRoot !== null && (this.shadowRoot.innerHTML = gt, this._syncAttributes());
601
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = _t, this._syncAttributes());
527
602
  }
528
603
  /**
529
- * It finds the closest parent dialog and
530
- * sets the commandfor attribute to its ID.
604
+ * Finds the closest parent dialog and sets the `commandfor` attribute to its ID
605
+ * so that clicking the button closes the dialog automatically.
606
+ *
607
+ * Only sets `commandfor` when the button is nested inside a recognized dialog
608
+ * element. When used standalone the caller is responsible for setting it.
531
609
  *
532
610
  * @returns {void}
533
611
  */
534
612
  _setCommandForAttribute() {
613
+ if (this.hasAttribute("commandfor"))
614
+ return;
535
615
  let t = this.getRootNode();
536
616
  "host" in t && t.host !== null && t.host !== void 0 && (t = t.host);
537
617
  const e = t instanceof Element ? t.closest("base-dialog") ?? t.closest("confirmation-dialog") : null;
538
618
  e !== null && (this.commandfor = e.id);
539
619
  }
540
620
  }
541
- const j = "undo-button", Se = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
621
+ const xt = "close-button", He = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
542
622
  __proto__: null,
543
- UndoButtonComponent: ft,
544
- selector: j
545
- }, Symbol.toStringTag, { value: "Module" })), mt = `<button title="Confirm" part="button">
623
+ CloseButtonComponent: St,
624
+ selector: xt
625
+ }, Symbol.toStringTag, { value: "Module" })), Et = `<button title="Confirm" part="button">
546
626
  <span class="material-symbols-outlined">check</span>
547
627
  <span>Confirm</span>
548
628
  </button>
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 {
629
+ `, kt = "*{box-sizing:border-box}:host{display:inline-flex;vertical-align:middle}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)}", W = new CSSStyleSheet();
630
+ W.replaceSync(kt);
631
+ class Lt extends r {
552
632
  /**
553
633
  * @constructor
554
634
  * @ignore
555
635
  */
556
636
  constructor() {
557
- super(), this.shadowRoot?.adoptedStyleSheets.push(G), this.command = O.CLOSE, this.title = "Confirm";
637
+ super(), this.shadowRoot?.adoptedStyleSheets.push(W);
558
638
  }
559
639
  /**
560
640
  * Specifies which attributes should be observed for changes.
561
641
  */
562
642
  static get observedAttributes() {
563
- return s.observedAttributes;
643
+ return r.observedAttributes;
564
644
  }
565
645
  /**
566
646
  * Lifecycle hook invoked when the component is inserted into the DOM.
567
647
  */
568
648
  connectedCallback() {
569
- this._render(), this._setCommandForAttribute(), this._addEventListeners();
649
+ this.hasAttribute("command") || this.setAttribute("command", N.CLOSE), this._render(), this._setCommandForAttribute(), this._addEventListeners();
650
+ }
651
+ /**
652
+ * Lifecycle hook invoked when the component is removed from the DOM.
653
+ */
654
+ disconnectedCallback() {
655
+ this._removeEventListeners();
570
656
  }
571
657
  /**
572
658
  * Renders the component's HTML structure.
573
659
  */
574
660
  _render() {
575
- this.shadowRoot !== null && (this.shadowRoot.innerHTML = mt, this._syncAttributes());
661
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = Et, this._syncAttributes());
576
662
  }
577
663
  /**
578
- * It finds the closest parent dialog and
579
- * sets the commandfor attribute to its ID.
664
+ * Finds the closest parent dialog and sets the `commandfor` attribute to its
665
+ * ID so that clicking the button closes the dialog automatically.
666
+ *
667
+ * Only sets `commandfor` when the button is nested inside a recognised dialog
668
+ * element. When used standalone the caller is responsible for setting it.
580
669
  *
581
670
  * @returns {void}
582
671
  */
583
672
  _setCommandForAttribute() {
673
+ if (this.hasAttribute("commandfor"))
674
+ return;
584
675
  let t = this.getRootNode();
585
676
  "host" in t && t.host !== null && t.host !== void 0 && (t = t.host);
586
677
  const e = t instanceof Element ? t.closest("base-dialog") ?? t.closest("confirmation-dialog") : null;
587
678
  e !== null && (this.commandfor = e.id);
588
679
  }
589
680
  }
590
- const q = "confirm-button", Ee = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
681
+ const P = "confirm-button", Te = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
591
682
  __proto__: null,
592
- ConfirmButtonComponent: At,
593
- selector: q
594
- }, Symbol.toStringTag, { value: "Module" })), _t = `<button part="button">
683
+ ConfirmButtonComponent: Lt,
684
+ selector: P
685
+ }, Symbol.toStringTag, { value: "Module" })), Rt = `<button part="button">
595
686
  <span class="material-symbols-outlined">chevron_left</span>
596
687
  </button>
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 {
688
+ `, zt = "*{box-sizing:border-box}:host{display:inline-flex;vertical-align:middle}button[part=button]{border:none;background:transparent}button[part=button]:not(:disabled):hover{transform:scale(1.2)}", Y = new CSSStyleSheet();
689
+ Y.replaceSync(zt);
690
+ class H extends r {
600
691
  static _disabledAttribute = "disabled";
601
692
  static _titleAttribute = "title";
602
693
  /**
@@ -604,13 +695,13 @@ class H extends s {
604
695
  * @ignore
605
696
  */
606
697
  constructor() {
607
- super(), this.shadowRoot?.adoptedStyleSheets.push(W), this.command = O.CLOSE;
698
+ super(), this.shadowRoot?.adoptedStyleSheets.push(Y);
608
699
  }
609
700
  /**
610
701
  * Specifies which attributes should be observed for changes.
611
702
  */
612
703
  static get observedAttributes() {
613
- return s.observedAttributes;
704
+ return r.observedAttributes;
614
705
  }
615
706
  /**
616
707
  * Lifecycle hook invoked when the component is inserted into the DOM.
@@ -618,18 +709,24 @@ class H extends s {
618
709
  connectedCallback() {
619
710
  this._render(), this._addEventListeners(), this._updateTitle();
620
711
  }
712
+ /**
713
+ * Lifecycle hook invoked when the component is removed from the DOM.
714
+ */
715
+ disconnectedCallback() {
716
+ this._removeEventListeners();
717
+ }
621
718
  /**
622
719
  * Lifecycle hook invoked whenever an observed attribute changes.
623
720
  * Updates the title visibility based on disabled state.
624
721
  */
625
- attributeChangedCallback(t, e, r) {
626
- super.attributeChangedCallback(t, e, r), t === H._disabledAttribute && this._updateTitle();
722
+ attributeChangedCallback(t, e, i) {
723
+ super.attributeChangedCallback(t, e, i), t === H._disabledAttribute && this._updateTitle();
627
724
  }
628
725
  /**
629
726
  * Renders the component's HTML structure.
630
727
  */
631
728
  _render() {
632
- this.shadowRoot !== null && (this.shadowRoot.innerHTML = _t, this._syncAttributes());
729
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = Rt, this._syncAttributes());
633
730
  }
634
731
  /**
635
732
  * Updates the title attribute based on disabled state.
@@ -642,16 +739,16 @@ class H extends s {
642
739
  t !== null && (this.disabled ? t.removeAttribute(H._titleAttribute) : t.setAttribute(H._titleAttribute, "Previous"));
643
740
  }
644
741
  }
645
- const St = "previous-button", xe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
742
+ const Mt = "previous-button", Ne = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
646
743
  __proto__: null,
647
744
  PreviousButtonComponent: H,
648
- selector: St
649
- }, Symbol.toStringTag, { value: "Module" })), Et = `<button part="button">
745
+ selector: Mt
746
+ }, Symbol.toStringTag, { value: "Module" })), Ot = `<button part="button">
650
747
  <span class="material-symbols-outlined">chevron_right</span>
651
748
  </button>
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 {
749
+ `, $t = "*{box-sizing:border-box}:host{display:inline-flex;vertical-align:middle}button[part=button]{border:none;background:transparent}button[part=button]:not(:disabled):hover{transform:scale(1.2)}", V = new CSSStyleSheet();
750
+ V.replaceSync($t);
751
+ class T extends r {
655
752
  static _disabledAttribute = "disabled";
656
753
  static _titleAttribute = "title";
657
754
  /**
@@ -659,13 +756,13 @@ class N extends s {
659
756
  * @ignore
660
757
  */
661
758
  constructor() {
662
- super(), this.shadowRoot?.adoptedStyleSheets.push(C), this.command = O.CLOSE;
759
+ super(), this.shadowRoot?.adoptedStyleSheets.push(V);
663
760
  }
664
761
  /**
665
762
  * Specifies which attributes should be observed for changes.
666
763
  */
667
764
  static get observedAttributes() {
668
- return s.observedAttributes;
765
+ return r.observedAttributes;
669
766
  }
670
767
  /**
671
768
  * Lifecycle hook invoked when the component is inserted into the DOM.
@@ -673,18 +770,24 @@ class N extends s {
673
770
  connectedCallback() {
674
771
  this._render(), this._addEventListeners(), this._updateTitle();
675
772
  }
773
+ /**
774
+ * Lifecycle hook invoked when the component is removed from the DOM.
775
+ */
776
+ disconnectedCallback() {
777
+ this._removeEventListeners();
778
+ }
676
779
  /**
677
780
  * Lifecycle hook invoked whenever an observed attribute changes.
678
781
  * Updates the title visibility based on disabled state.
679
782
  */
680
- attributeChangedCallback(t, e, r) {
681
- super.attributeChangedCallback(t, e, r), t === N._disabledAttribute && this._updateTitle();
783
+ attributeChangedCallback(t, e, i) {
784
+ super.attributeChangedCallback(t, e, i), t === T._disabledAttribute && this._updateTitle();
682
785
  }
683
786
  /**
684
787
  * Renders the component's HTML structure.
685
788
  */
686
789
  _render() {
687
- this.shadowRoot !== null && (this.shadowRoot.innerHTML = Et, this._syncAttributes());
790
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = Ot, this._syncAttributes());
688
791
  }
689
792
  /**
690
793
  * Updates the title attribute based on disabled state.
@@ -694,19 +797,19 @@ class N extends s {
694
797
  const t = this.shadowRoot?.querySelector(
695
798
  "button"
696
799
  );
697
- t !== null && (this.disabled ? t.removeAttribute(N._titleAttribute) : t.setAttribute(N._titleAttribute, "Next"));
800
+ t !== null && (this.disabled ? t.removeAttribute(T._titleAttribute) : t.setAttribute(T._titleAttribute, "Next"));
698
801
  }
699
802
  }
700
- const Lt = "next-button", Le = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
803
+ const It = "next-button", je = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
701
804
  __proto__: null,
702
- NextButtonComponent: N,
703
- selector: Lt
704
- }, Symbol.toStringTag, { value: "Module" })), kt = `<dialog part="dialog">
805
+ NextButtonComponent: T,
806
+ selector: It
807
+ }, Symbol.toStringTag, { value: "Module" })), Ht = `<dialog part="dialog">
705
808
  <slot></slot>
706
809
  </dialog>
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 {
810
+ `, Tt = "*{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}}", X = new CSSStyleSheet();
811
+ X.replaceSync(Tt);
812
+ class M extends HTMLElement {
710
813
  /**
711
814
  * @see HTMLDialogElement.closedBy
712
815
  */
@@ -721,25 +824,25 @@ class z extends HTMLElement {
721
824
  * @ignore
722
825
  */
723
826
  constructor() {
724
- super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(Y);
827
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(X);
725
828
  }
726
829
  /**
727
830
  * Specifies which attributes should be observed for changes.
728
831
  */
729
832
  static get observedAttributes() {
730
- return [z.closedByAttribute];
833
+ return [M.closedByAttribute];
731
834
  }
732
835
  get dialogElement() {
733
836
  return this.shadowRoot?.querySelector("dialog");
734
837
  }
735
838
  get command() {
736
- return this.getAttribute(z.closedByAttribute) ?? F.ANY;
839
+ return this.getAttribute(M.closedByAttribute) ?? F.ANY;
737
840
  }
738
841
  get closedBy() {
739
842
  return this._closedBy;
740
843
  }
741
844
  set closedBy(t) {
742
- this._closedBy = t, this.setAttribute(z.closedByAttribute, t);
845
+ this._closedBy = t, this.setAttribute(M.closedByAttribute, t);
743
846
  }
744
847
  /**
745
848
  * Lifecycle
@@ -767,9 +870,9 @@ class z extends HTMLElement {
767
870
  * @param newValue - The new value (or null if removed)
768
871
  * @returns {void}
769
872
  */
770
- attributeChangedCallback(t, e, r) {
771
- const i = this.dialogElement;
772
- i != null && r !== e && this._syncAttribute(t);
873
+ attributeChangedCallback(t, e, i) {
874
+ const s = this.dialogElement;
875
+ s != null && i !== e && this._syncAttribute(t);
773
876
  }
774
877
  /**
775
878
  * Adds event listeners to the component.
@@ -791,7 +894,7 @@ class z extends HTMLElement {
791
894
  * @returns {void}
792
895
  */
793
896
  _render() {
794
- this.shadowRoot !== null && (this.shadowRoot.innerHTML = kt, this._syncAttributes());
897
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = Ht, this._syncAttributes());
795
898
  }
796
899
  /**
797
900
  * Syncs a single attribute from host to dialog element.
@@ -810,7 +913,7 @@ class z extends HTMLElement {
810
913
  * @returns {void}
811
914
  */
812
915
  _syncAttributes() {
813
- z.observedAttributes.forEach((t) => {
916
+ M.observedAttributes.forEach((t) => {
814
917
  this._syncAttribute(t);
815
918
  });
816
919
  }
@@ -836,11 +939,11 @@ class z extends HTMLElement {
836
939
  }, 300);
837
940
  }
838
941
  }
839
- const zt = "base-dialog", ke = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
942
+ const Nt = "base-dialog", Fe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
840
943
  __proto__: null,
841
- BaseDialogComponent: z,
842
- selector: zt
843
- }, Symbol.toStringTag, { value: "Module" })), Mt = `<dialog part="dialog">
944
+ BaseDialogComponent: M,
945
+ selector: Nt
946
+ }, Symbol.toStringTag, { value: "Module" })), jt = `<dialog part="dialog">
844
947
  <header part="header">
845
948
  <h2></h2>
846
949
  </header>
@@ -852,7 +955,7 @@ const zt = "base-dialog", ke = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Obj
852
955
  <undo-button></undo-button>
853
956
  </footer>
854
957
  </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">
958
+ `, Ft = "*{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}", qt = `<dialog part="dialog">
856
959
  <header part="header">
857
960
  <slot name="header"></slot>
858
961
  </header>
@@ -863,9 +966,9 @@ const zt = "base-dialog", ke = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Obj
863
966
  <slot name="footer"></slot>
864
967
  </footer>
865
968
  </dialog>
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 {
969
+ `, Pt = '*{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}', B = new CSSStyleSheet();
970
+ B.replaceSync(Pt);
971
+ class D extends M {
869
972
  _sectionNames = ["header", "body", "footer"];
870
973
  _handleSlotChange = () => {
871
974
  this._updateSectionState();
@@ -875,14 +978,14 @@ class D extends z {
875
978
  * @ignore
876
979
  */
877
980
  constructor() {
878
- super(), this.shadowRoot?.adoptedStyleSheets.push(V);
981
+ super(), this.shadowRoot?.adoptedStyleSheets.push(B);
879
982
  }
880
983
  /**
881
984
  * Specifies which attributes should be observed for changes.
882
985
  * Uses parent's attributes since we're extending the base dialog.
883
986
  */
884
987
  static get observedAttributes() {
885
- return z.observedAttributes;
988
+ return M.observedAttributes;
886
989
  }
887
990
  /**
888
991
  * Renders the component's HTML structure.
@@ -891,7 +994,7 @@ class D extends z {
891
994
  * @returns {void}
892
995
  */
893
996
  _render() {
894
- this.shadowRoot !== null && (this.shadowRoot.innerHTML = $t, this._syncAttributes());
997
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = qt, this._syncAttributes());
895
998
  }
896
999
  /**
897
1000
  * Adds slot listeners so sections can react to projected content changes.
@@ -923,22 +1026,22 @@ class D extends z {
923
1026
  return;
924
1027
  const t = [];
925
1028
  this._sectionNames.forEach((e) => {
926
- const r = this.shadowRoot?.querySelector(
1029
+ const i = this.shadowRoot?.querySelector(
927
1030
  `[part='${e}']`
928
- ), i = this.shadowRoot?.querySelector(
1031
+ ), s = this.shadowRoot?.querySelector(
929
1032
  `slot[name='${e}']`
930
1033
  );
931
- if (r === null || i === null)
1034
+ if (i === null || s === null)
932
1035
  return;
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);
1036
+ const a = s.assignedNodes({ flatten: !0 }).some((v) => v.nodeType === Node.TEXT_NODE ? v.textContent?.trim().length !== 0 : v.nodeType === Node.ELEMENT_NODE);
1037
+ i.toggleAttribute("hidden", a === !1), i.dataset.filled = String(a), i.removeAttribute("data-divider"), a === !0 && t.push(i);
935
1038
  }), t.slice(0, -1).forEach((e) => {
936
1039
  e.dataset.divider = "true";
937
1040
  });
938
1041
  }
939
1042
  }
940
- const B = new CSSStyleSheet();
941
- B.replaceSync(Ot);
1043
+ const J = new CSSStyleSheet();
1044
+ J.replaceSync(Ft);
942
1045
  class p extends D {
943
1046
  /**
944
1047
  * The title of the confirmation dialog.
@@ -968,7 +1071,7 @@ class p extends D {
968
1071
  * @constructor
969
1072
  */
970
1073
  constructor() {
971
- super(), this.shadowRoot?.adoptedStyleSheets.push(B);
1074
+ super(), this.shadowRoot?.adoptedStyleSheets.push(J);
972
1075
  }
973
1076
  /**
974
1077
  * Specifies which attributes should be observed for changes.
@@ -1015,7 +1118,7 @@ class p extends D {
1015
1118
  * @returns {void}
1016
1119
  */
1017
1120
  _render() {
1018
- this.shadowRoot !== null && (this.shadowRoot.innerHTML = Mt, this._syncAttributes());
1121
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = jt, this._syncAttributes());
1019
1122
  }
1020
1123
  /**
1021
1124
  * Syncs a single attribute from host to the DOM elements.
@@ -1065,9 +1168,7 @@ class p extends D {
1065
1168
  * @returns {void}
1066
1169
  */
1067
1170
  _addEventListeners() {
1068
- super._addEventListeners(), this.shadowRoot?.querySelector(
1069
- q
1070
- )?.addEventListener(R.CLICK, this._handleConfirm), this.shadowRoot?.querySelector(j)?.addEventListener(R.CLICK, this._handleUndo);
1171
+ super._addEventListeners(), this.shadowRoot?.querySelector(P)?.addEventListener(z.CLICK, this._handleConfirm), this.shadowRoot?.querySelector(q)?.addEventListener(z.CLICK, this._handleUndo);
1071
1172
  }
1072
1173
  /**
1073
1174
  * Removes event listeners.
@@ -1075,9 +1176,7 @@ class p extends D {
1075
1176
  * @returns {void}
1076
1177
  */
1077
1178
  _removeEventListeners() {
1078
- super._removeEventListeners(), this.shadowRoot?.querySelector(
1079
- q
1080
- )?.removeEventListener(R.CLICK, this._handleConfirm), this.shadowRoot?.querySelector(j)?.removeEventListener(R.CLICK, this._handleUndo);
1179
+ super._removeEventListeners(), this.shadowRoot?.querySelector(P)?.removeEventListener(z.CLICK, this._handleConfirm), this.shadowRoot?.querySelector(q)?.removeEventListener(z.CLICK, this._handleUndo);
1081
1180
  }
1082
1181
  /**
1083
1182
  * Handles the confirm button click event.
@@ -1087,7 +1186,7 @@ class p extends D {
1087
1186
  */
1088
1187
  _handleConfirm = () => {
1089
1188
  const t = new CustomEvent(
1090
- T.CONFIRMATION_DIALOG_CONFIRM,
1189
+ j.CONFIRMATION_DIALOG_CONFIRM,
1091
1190
  {
1092
1191
  bubbles: !0,
1093
1192
  composed: !0,
@@ -1100,7 +1199,7 @@ class p extends D {
1100
1199
  };
1101
1200
  _handleUndo = () => {
1102
1201
  const t = new CustomEvent(
1103
- T.CONFIRMATION_DIALOG_UNDO,
1202
+ j.CONFIRMATION_DIALOG_UNDO,
1104
1203
  {
1105
1204
  bubbles: !0,
1106
1205
  composed: !0,
@@ -1112,19 +1211,19 @@ class p extends D {
1112
1211
  this.dispatchEvent(t), this._value = void 0;
1113
1212
  };
1114
1213
  }
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({
1214
+ const Dt = "confirmation-dialog", Ut = {
1215
+ CONFIRMATION_DIALOG_CONFIRM: j.CONFIRMATION_DIALOG_CONFIRM,
1216
+ CONFIRMATION_DIALOG_UNDO: j.CONFIRMATION_DIALOG_UNDO
1217
+ }, qe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1119
1218
  __proto__: null,
1120
- COMPONENT_CUSTOM_MESSAGES: Nt,
1219
+ COMPONENT_CUSTOM_MESSAGES: Ut,
1121
1220
  ConfirmationDialogComponent: p,
1122
- selector: Ht
1123
- }, Symbol.toStringTag, { value: "Module" })), Tt = "header-body-footer-dialog", ze = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1221
+ selector: Dt
1222
+ }, Symbol.toStringTag, { value: "Module" })), Kt = "header-body-footer-dialog", Pe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1124
1223
  __proto__: null,
1125
1224
  HeaderBodyFooterDialogComponent: D,
1126
- selector: Tt
1127
- }, Symbol.toStringTag, { value: "Module" })), Ft = `<div class="bar-menu-container">
1225
+ selector: Kt
1226
+ }, Symbol.toStringTag, { value: "Module" })), Gt = `<div class="bar-menu-container">
1128
1227
  <previous-button class="nav-prev" part="nav-prev-button"></previous-button>
1129
1228
 
1130
1229
  <div class="buttons-wrapper" part="buttons-wrapper">
@@ -1133,8 +1232,8 @@ const Ht = "confirmation-dialog", Nt = {
1133
1232
 
1134
1233
  <next-button class="nav-next" part="nav-next-button"></next-button>
1135
1234
  </div>
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);
1235
+ `, Ct = "*{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)}", Q = new CSSStyleSheet();
1236
+ Q.replaceSync(Ct);
1138
1237
  class y extends HTMLElement {
1139
1238
  static _visibleCountAttribute = "visible-count";
1140
1239
  static _cyclicalNavigationAttribute = "cyclical-navigation";
@@ -1153,7 +1252,7 @@ class y extends HTMLElement {
1153
1252
  * @constructor
1154
1253
  */
1155
1254
  constructor() {
1156
- super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(X);
1255
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(Q);
1157
1256
  }
1158
1257
  /**
1159
1258
  * Specifies which attributes should be observed for changes.
@@ -1203,7 +1302,7 @@ class y extends HTMLElement {
1203
1302
  /**
1204
1303
  * Lifecycle hook: observed attribute changed
1205
1304
  */
1206
- attributeChangedCallback(t, e, r) {
1305
+ attributeChangedCallback(t, e, i) {
1207
1306
  t === y._visibleCountAttribute ? (this._visibleCount = this.visibleButtons, this._buttonsWrapper !== null && this._buttonsWrapper.style.setProperty(
1208
1307
  "--bar-menu-visible-count",
1209
1308
  String(this.visibleButtons)
@@ -1213,7 +1312,7 @@ class y extends HTMLElement {
1213
1312
  * Render the component's Shadow DOM structure
1214
1313
  */
1215
1314
  _render() {
1216
- this.shadowRoot !== null && (this.shadowRoot.innerHTML = Ft);
1315
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = Gt);
1217
1316
  }
1218
1317
  /**
1219
1318
  * Cache Shadow DOM elements for performance
@@ -1222,9 +1321,9 @@ class y extends HTMLElement {
1222
1321
  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(
1223
1322
  "--bar-menu-visible-count",
1224
1323
  String(this.visibleButtons)
1225
- ), this._navPrevButton !== null && (this._navPrevButton.setAttribute("aria-label", "Previous"), this._navPrevButton.addEventListener(R.CLICK, () => {
1324
+ ), this._navPrevButton !== null && (this._navPrevButton.setAttribute("aria-label", "Previous"), this._navPrevButton.addEventListener(z.CLICK, () => {
1226
1325
  this._scrollPrevious();
1227
- })), this._navNextButton !== null && (this._navNextButton.setAttribute("aria-label", "Next"), this._navNextButton.addEventListener(R.CLICK, () => {
1326
+ })), this._navNextButton !== null && (this._navNextButton.setAttribute("aria-label", "Next"), this._navNextButton.addEventListener(z.CLICK, () => {
1228
1327
  this._scrollNext();
1229
1328
  }));
1230
1329
  }
@@ -1251,13 +1350,13 @@ class y extends HTMLElement {
1251
1350
  _setupKeyboardListener() {
1252
1351
  this._keyDownListener = (t) => {
1253
1352
  t.key === "ArrowLeft" ? (t.preventDefault(), this._scrollPrevious()) : t.key === "ArrowRight" && (t.preventDefault(), this._scrollNext());
1254
- }, this.addEventListener(P.KEY_DOWN, this._keyDownListener);
1353
+ }, this.addEventListener(U.KEY_DOWN, this._keyDownListener);
1255
1354
  }
1256
1355
  /**
1257
1356
  * Remove keyboard listener
1258
1357
  */
1259
1358
  _removeKeyboardListener() {
1260
- this._keyDownListener !== null && this.removeEventListener(P.KEY_DOWN, this._keyDownListener);
1359
+ this._keyDownListener !== null && this.removeEventListener(U.KEY_DOWN, this._keyDownListener);
1261
1360
  }
1262
1361
  /**
1263
1362
  * Get all slotted button elements
@@ -1269,16 +1368,16 @@ class y extends HTMLElement {
1269
1368
  * Update button visibility by showing/hiding rows with fade
1270
1369
  */
1271
1370
  _updateButtonVisibility(t) {
1272
- const e = this._getSlottedButtons(), r = e.length, i = this.visibleButtons, a = this._currentIndex, v = Math.min(a + i, r);
1371
+ const e = this._getSlottedButtons(), i = e.length, s = this.visibleButtons, a = this._currentIndex, v = Math.min(a + s, i);
1273
1372
  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");
1373
+ const I = g >= a && g < v, $ = c;
1374
+ I || (c.classList.remove("visible-button"), c.classList.remove("animating"), $.style.display = "none");
1276
1375
  }), t !== void 0 ? (e[0]?.offsetHeight, e.forEach((c, g) => {
1277
1376
  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`;
1377
+ const $ = c;
1378
+ $.style.display = "inline-flex", c.classList.add("animating");
1379
+ const ut = g % this.visibleButtons * 50;
1380
+ $.style.transitionDelay = `${ut}ms`;
1282
1381
  }
1283
1382
  }), e[0]?.offsetHeight, e.forEach((c, g) => {
1284
1383
  g >= a && g < v && c.classList.add("visible-button");
@@ -1287,16 +1386,16 @@ class y extends HTMLElement {
1287
1386
  c.classList.remove("animating"), c.style.transitionDelay = d;
1288
1387
  });
1289
1388
  }, 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);
1389
+ const I = g >= a && g < v, $ = c;
1390
+ I && ($.style.display = "inline-flex", c.classList.add("visible-button"));
1391
+ }), this._updateNavigationButtons(i, s);
1293
1392
  }
1294
1393
  /**
1295
1394
  * Update navigation buttons visibility and disabled state
1296
1395
  */
1297
1396
  _updateNavigationButtons(t, e) {
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"));
1397
+ const i = t > e, s = this._currentIndex + e < t, a = this._currentIndex === 0, v = !s;
1398
+ this._navPrevButton !== null && (i ? (this._navPrevButton.classList.add("visible"), this._navPrevButton.disabled = !this._cyclicalNavigation && a) : this._navPrevButton.classList.remove("visible")), this._navNextButton !== null && (i ? (this._navNextButton.classList.add("visible"), this._navNextButton.disabled = !this._cyclicalNavigation && v) : this._navNextButton.classList.remove("visible"));
1300
1399
  }
1301
1400
  /**
1302
1401
  * Navigate to previous page (scrolls by visibleCount buttons)
@@ -1311,17 +1410,17 @@ class y extends HTMLElement {
1311
1410
  * In cyclical mode, wraps to the beginning when at the end.
1312
1411
  */
1313
1412
  _scrollNext() {
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"));
1413
+ const t = this._getSlottedButtons().length, e = this.visibleButtons, i = this._currentIndex + e;
1414
+ i < t ? (this._currentIndex = i, this._updateButtonVisibility("next")) : this._cyclicalNavigation && t > e && (this._currentIndex = 0, this._updateButtonVisibility("next"));
1316
1415
  }
1317
1416
  /**
1318
1417
  * Public API: scroll to specific button by index
1319
1418
  */
1320
1419
  scrollToButton(t) {
1321
- const e = this._getSlottedButtons().length, r = this.visibleButtons;
1420
+ const e = this._getSlottedButtons().length, i = this.visibleButtons;
1322
1421
  t >= 0 && t < e && (this._currentIndex = Math.max(
1323
1422
  0,
1324
- Math.min(t, e - r)
1423
+ Math.min(t, e - i)
1325
1424
  ), this._updateButtonVisibility());
1326
1425
  }
1327
1426
  /**
@@ -1345,21 +1444,21 @@ class y extends HTMLElement {
1345
1444
  return this._currentIndex;
1346
1445
  }
1347
1446
  }
1348
- const qt = "bar-menu", Me = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1447
+ const Wt = "bar-menu", De = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1349
1448
  __proto__: null,
1350
1449
  BarMenuComponent: y,
1351
- selector: qt
1352
- }, Symbol.toStringTag, { value: "Module" })), Dt = "ds-spinner", Pt = `<div part="spinner" class="spinner" role="status" aria-label="Loading">
1450
+ selector: Wt
1451
+ }, Symbol.toStringTag, { value: "Module" })), Yt = "ds-spinner", Vt = `<div part="spinner" class="spinner" role="status" aria-label="Loading">
1353
1452
  <div class="spinner-ring"></div>
1354
1453
  </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);
1454
+ `, Xt = "*{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)}}", Z = new CSSStyleSheet();
1455
+ Z.replaceSync(Xt);
1357
1456
  class f extends HTMLElement {
1358
1457
  static _sizeAttribute = "size";
1359
1458
  static _variantAttribute = "variant";
1360
1459
  static _labelAttribute = "label";
1361
1460
  constructor() {
1362
- super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(J);
1461
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(Z);
1363
1462
  }
1364
1463
  static get observedAttributes() {
1365
1464
  return [
@@ -1391,20 +1490,20 @@ class f extends HTMLElement {
1391
1490
  connectedCallback() {
1392
1491
  this._render();
1393
1492
  }
1394
- attributeChangedCallback(t, e, r) {
1395
- r !== e && t === f._labelAttribute && this.shadowRoot?.querySelector(".spinner")?.setAttribute("aria-label", r ?? "Loading");
1493
+ attributeChangedCallback(t, e, i) {
1494
+ i !== e && t === f._labelAttribute && this.shadowRoot?.querySelector(".spinner")?.setAttribute("aria-label", i ?? "Loading");
1396
1495
  }
1397
1496
  _render() {
1398
1497
  if (this.shadowRoot === null)
1399
1498
  return;
1400
- this.shadowRoot.innerHTML = Pt, this.shadowRoot.querySelector(".spinner")?.setAttribute("aria-label", this.label);
1499
+ this.shadowRoot.innerHTML = Vt, this.shadowRoot.querySelector(".spinner")?.setAttribute("aria-label", this.label);
1401
1500
  }
1402
1501
  }
1403
- const Oe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1502
+ const Ue = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1404
1503
  __proto__: null,
1405
1504
  SpinnerComponent: f,
1406
- selector: Dt
1407
- }, Symbol.toStringTag, { value: "Module" })), Kt = "ds-progress-bar", Gt = `<div
1505
+ selector: Yt
1506
+ }, Symbol.toStringTag, { value: "Module" })), Bt = "ds-progress-bar", Jt = `<div
1408
1507
  part="container"
1409
1508
  class="progress-container"
1410
1509
  role="progressbar"
@@ -1416,8 +1515,8 @@ const Oe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1416
1515
  </div>
1417
1516
  <span class="progress-label"></span>
1418
1517
  </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);
1518
+ `, Qt = "*{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%)}}", tt = new CSSStyleSheet();
1519
+ tt.replaceSync(Qt);
1421
1520
  class h extends HTMLElement {
1422
1521
  static _valueAttribute = "value";
1423
1522
  static _variantAttribute = "variant";
@@ -1426,7 +1525,7 @@ class h extends HTMLElement {
1426
1525
  static _showLabelAttribute = "show-label";
1427
1526
  static _labelAttribute = "label";
1428
1527
  constructor() {
1429
- super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(Q);
1528
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(tt);
1430
1529
  }
1431
1530
  static get observedAttributes() {
1432
1531
  return [
@@ -1468,35 +1567,35 @@ class h extends HTMLElement {
1468
1567
  connectedCallback() {
1469
1568
  this._render();
1470
1569
  }
1471
- attributeChangedCallback(t, e, r) {
1472
- r !== e && this._update();
1570
+ attributeChangedCallback(t, e, i) {
1571
+ i !== e && this._update();
1473
1572
  }
1474
1573
  _render() {
1475
- this.shadowRoot !== null && (this.shadowRoot.innerHTML = Gt, this._update());
1574
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = Jt, this._update());
1476
1575
  }
1477
1576
  _update() {
1478
1577
  const t = this.shadowRoot?.querySelector(".progress-fill"), e = this.shadowRoot?.querySelector(
1479
1578
  ".progress-container"
1480
- ), r = this.shadowRoot?.querySelector(".progress-label");
1579
+ ), i = this.shadowRoot?.querySelector(".progress-label");
1481
1580
  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
1581
  "aria-label",
1483
1582
  this.getAttribute(h._labelAttribute) ?? ""
1484
- )), r != null && (r.textContent = this.indeterminate ? "" : `${this.value}%`);
1583
+ )), i != null && (i.textContent = this.indeterminate ? "" : `${this.value}%`);
1485
1584
  }
1486
1585
  }
1487
- const $e = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1586
+ const Ke = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1488
1587
  __proto__: null,
1489
1588
  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);
1589
+ selector: Bt
1590
+ }, Symbol.toStringTag, { value: "Module" })), Zt = "ds-skeleton", te = `<div part="skeleton" class="skeleton" aria-hidden="true"></div>
1591
+ `, ee = "*{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}}", et = new CSSStyleSheet();
1592
+ et.replaceSync(ee);
1494
1593
  class A extends HTMLElement {
1495
1594
  static _shapeAttribute = "shape";
1496
1595
  static _heightAttribute = "height";
1497
1596
  static _widthAttribute = "width";
1498
1597
  constructor() {
1499
- super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(Z);
1598
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(et);
1500
1599
  }
1501
1600
  static get observedAttributes() {
1502
1601
  return [
@@ -1520,35 +1619,129 @@ class A extends HTMLElement {
1520
1619
  connectedCallback() {
1521
1620
  this._render();
1522
1621
  }
1523
- attributeChangedCallback(t, e, r) {
1524
- r !== e && t === A._heightAttribute && this._applyHeight(r);
1622
+ attributeChangedCallback(t, e, i) {
1623
+ i !== e && t === A._heightAttribute && this._applyHeight(i);
1525
1624
  }
1526
1625
  _render() {
1527
- this.shadowRoot !== null && (this.shadowRoot.innerHTML = Yt, this._applyHeight(this.height));
1626
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = te, this._applyHeight(this.height));
1528
1627
  }
1529
1628
  _applyHeight(t) {
1530
1629
  const e = this.shadowRoot?.querySelector(".skeleton");
1531
1630
  e != null && t !== null && t !== "" && (e.style.height = t);
1532
1631
  }
1533
1632
  }
1534
- const Ie = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1633
+ const Ge = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1535
1634
  __proto__: null,
1536
1635
  SkeletonComponent: A,
1537
- selector: Ct
1538
- }, Symbol.toStringTag, { value: "Module" })), Bt = "ds-card", Xt = `<div part="card" class="card">
1636
+ selector: Zt
1637
+ }, Symbol.toStringTag, { value: "Module" })), ie = `<div
1638
+ class="cv-viewer__loader"
1639
+ aria-live="polite"
1640
+ aria-label="Loading"
1641
+ role="status"
1642
+ >
1643
+ <div class="cv-viewer__loader-pulse">
1644
+ <div
1645
+ class="cv-viewer__loader-bar"
1646
+ style="width: 60%; animation-delay: 0s"
1647
+ ></div>
1648
+ <div
1649
+ class="cv-viewer__loader-bar"
1650
+ style="width: 90%; animation-delay: 0.15s"
1651
+ ></div>
1652
+ <div
1653
+ class="cv-viewer__loader-bar"
1654
+ style="width: 75%; animation-delay: 0.3s"
1655
+ ></div>
1656
+ <div
1657
+ class="cv-viewer__loader-bar"
1658
+ style="width: 85%; animation-delay: 0.45s"
1659
+ ></div>
1660
+ <div
1661
+ class="cv-viewer__loader-bar"
1662
+ style="width: 50%; animation-delay: 0.6s"
1663
+ ></div>
1664
+ </div>
1665
+ <p class="cv-viewer__loader-label">Loading…</p>
1666
+ </div>
1667
+ `, re = ":host{display:block}:host(:not([loading])),:host([loading=false]){display:none}.cv-viewer__loader{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;padding:48px;background:#1a1a1a;transition:opacity .4s ease;z-index:2}.cv-viewer__loader--hidden{opacity:0;pointer-events:none}.cv-viewer__loader-pulse{display:flex;flex-direction:column;gap:14px;width:min(520px,80%)}.cv-viewer__loader-bar{height:12px;border-radius:2px;background:linear-gradient(90deg,#ffffff0a 25%,#ffffff1a,#ffffff0a 75%);background-size:200% 100%;animation:shimmer 1.8s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}", it = new CSSStyleSheet();
1668
+ it.replaceSync(re);
1669
+ class _ extends HTMLElement {
1670
+ static _labelAttribute = "label";
1671
+ static _loadingAttribute = "loading";
1672
+ /**
1673
+ * @constructor
1674
+ * @ignore
1675
+ */
1676
+ constructor() {
1677
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(it);
1678
+ }
1679
+ /**
1680
+ * Specifies which attributes should be observed for changes.
1681
+ */
1682
+ static get observedAttributes() {
1683
+ return [
1684
+ _._labelAttribute,
1685
+ _._loadingAttribute
1686
+ ];
1687
+ }
1688
+ get loading() {
1689
+ const t = this.getAttribute(_._loadingAttribute);
1690
+ return t !== null && t !== "false";
1691
+ }
1692
+ set loading(t) {
1693
+ t ? this.setAttribute(_._loadingAttribute, "true") : this.setAttribute(_._loadingAttribute, "false");
1694
+ }
1695
+ get label() {
1696
+ return this.getAttribute(_._labelAttribute) ?? "Loading…";
1697
+ }
1698
+ set label(t) {
1699
+ this.setAttribute(_._labelAttribute, t);
1700
+ }
1701
+ /**
1702
+ * Lifecycle hook: component inserted into DOM.
1703
+ */
1704
+ connectedCallback() {
1705
+ this._render();
1706
+ }
1707
+ /**
1708
+ * Lifecycle hook: observed attribute changed.
1709
+ */
1710
+ attributeChangedCallback(t, e, i) {
1711
+ i !== e && t === _._labelAttribute && this._updateLabel();
1712
+ }
1713
+ /**
1714
+ * Renders the component's Shadow DOM structure.
1715
+ */
1716
+ _render() {
1717
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = ie, this._updateLabel());
1718
+ }
1719
+ /**
1720
+ * Updates the label text in the shadow DOM.
1721
+ */
1722
+ _updateLabel() {
1723
+ const t = this.shadowRoot?.querySelector(".cv-viewer__loader-label");
1724
+ t != null && (t.textContent = this.label);
1725
+ }
1726
+ }
1727
+ const se = "loader-bars", Ce = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1728
+ __proto__: null,
1729
+ LoaderBarsComponent: _,
1730
+ selector: se
1731
+ }, Symbol.toStringTag, { value: "Module" })), oe = "ds-card", ae = `<div part="card" class="card">
1539
1732
  <slot name="header" class="card-header-slot"></slot>
1540
1733
  <div class="card-body">
1541
1734
  <slot></slot>
1542
1735
  </div>
1543
1736
  <slot name="footer" class="card-footer-slot"></slot>
1544
1737
  </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);
1738
+ `, ne = '*{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)}', rt = new CSSStyleSheet();
1739
+ rt.replaceSync(ne);
1547
1740
  class L extends HTMLElement {
1548
1741
  static _variantAttribute = "variant";
1549
1742
  static _hoverableAttribute = "hoverable";
1550
1743
  constructor() {
1551
- super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(tt);
1744
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(rt);
1552
1745
  }
1553
1746
  static get observedAttributes() {
1554
1747
  return [
@@ -1571,27 +1764,27 @@ class L extends HTMLElement {
1571
1764
  connectedCallback() {
1572
1765
  this._render();
1573
1766
  }
1574
- attributeChangedCallback(t, e, r) {
1767
+ attributeChangedCallback(t, e, i) {
1575
1768
  }
1576
1769
  _render() {
1577
- this.shadowRoot !== null && (this.shadowRoot.innerHTML = Xt);
1770
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = ae);
1578
1771
  }
1579
1772
  }
1580
- const He = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1773
+ const We = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1581
1774
  __proto__: null,
1582
1775
  BaseCardComponent: L,
1583
- selector: Bt
1584
- }, Symbol.toStringTag, { value: "Module" })), Qt = "ds-badge", Zt = `<span part="badge" class="badge">
1776
+ selector: oe
1777
+ }, Symbol.toStringTag, { value: "Module" })), le = "ds-badge", de = `<span part="badge" class="badge">
1585
1778
  <slot></slot>
1586
1779
  </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);
1780
+ `, ce = "*{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}", st = new CSSStyleSheet();
1781
+ st.replaceSync(ce);
1589
1782
  class m extends HTMLElement {
1590
1783
  static _variantAttribute = "variant";
1591
1784
  static _sizeAttribute = "size";
1592
1785
  static _dotAttribute = "dot";
1593
1786
  constructor() {
1594
- super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(et);
1787
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(st);
1595
1788
  }
1596
1789
  static get observedAttributes() {
1597
1790
  return [
@@ -1621,17 +1814,17 @@ class m extends HTMLElement {
1621
1814
  connectedCallback() {
1622
1815
  this._render();
1623
1816
  }
1624
- attributeChangedCallback(t, e, r) {
1817
+ attributeChangedCallback(t, e, i) {
1625
1818
  }
1626
1819
  _render() {
1627
- this.shadowRoot !== null && (this.shadowRoot.innerHTML = Zt);
1820
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = de);
1628
1821
  }
1629
1822
  }
1630
- const Ne = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1823
+ const Ye = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1631
1824
  __proto__: null,
1632
1825
  BadgeComponent: m,
1633
- selector: Qt
1634
- }, Symbol.toStringTag, { value: "Module" })), ee = "ds-alert", re = `<div part="alert" class="alert" role="alert">
1826
+ selector: le
1827
+ }, Symbol.toStringTag, { value: "Module" })), ue = "ds-alert", he = `<div part="alert" class="alert" role="alert">
1635
1828
  <span class="alert-icon"></span>
1636
1829
  <div class="alert-content">
1637
1830
  <slot name="title" class="alert-title-slot"></slot>
@@ -1646,31 +1839,31 @@ const Ne = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1646
1839
  <span class="close-icon">✕</span>
1647
1840
  </button>
1648
1841
  </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-primary);background-color:color-mix(in srgb,var(--color-primary) 15%,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 {
1842
+ `, be = '@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-primary);background-color:color-mix(in srgb,var(--color-primary) 15%,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)}}', ot = new CSSStyleSheet();
1843
+ ot.replaceSync(be);
1844
+ class R extends HTMLElement {
1652
1845
  static _variantAttribute = "variant";
1653
1846
  static _dismissibleAttribute = "dismissible";
1654
1847
  constructor() {
1655
- super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(rt);
1848
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(ot);
1656
1849
  }
1657
1850
  static get observedAttributes() {
1658
1851
  return [
1659
- k._variantAttribute,
1660
- k._dismissibleAttribute
1852
+ R._variantAttribute,
1853
+ R._dismissibleAttribute
1661
1854
  ];
1662
1855
  }
1663
1856
  get variant() {
1664
- return this.getAttribute(k._variantAttribute) ?? "info";
1857
+ return this.getAttribute(R._variantAttribute) ?? "info";
1665
1858
  }
1666
1859
  set variant(t) {
1667
- this.setAttribute(k._variantAttribute, t);
1860
+ this.setAttribute(R._variantAttribute, t);
1668
1861
  }
1669
1862
  get dismissible() {
1670
- return this.hasAttribute(k._dismissibleAttribute);
1863
+ return this.hasAttribute(R._dismissibleAttribute);
1671
1864
  }
1672
1865
  set dismissible(t) {
1673
- t ? this.setAttribute(k._dismissibleAttribute, "") : this.removeAttribute(k._dismissibleAttribute);
1866
+ t ? this.setAttribute(R._dismissibleAttribute, "") : this.removeAttribute(R._dismissibleAttribute);
1674
1867
  }
1675
1868
  connectedCallback() {
1676
1869
  this._render(), this._addEventListeners();
@@ -1678,7 +1871,7 @@ class k extends HTMLElement {
1678
1871
  disconnectedCallback() {
1679
1872
  this._removeEventListeners();
1680
1873
  }
1681
- attributeChangedCallback(t, e, r) {
1874
+ attributeChangedCallback(t, e, i) {
1682
1875
  }
1683
1876
  _handleClose = () => {
1684
1877
  this.dispatchEvent(
@@ -1692,14 +1885,14 @@ class k extends HTMLElement {
1692
1885
  this.shadowRoot?.querySelector(".alert-close")?.removeEventListener("click", this._handleClose);
1693
1886
  }
1694
1887
  _render() {
1695
- this.shadowRoot !== null && (this.shadowRoot.innerHTML = re, this._addEventListeners());
1888
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = he, this._addEventListeners());
1696
1889
  }
1697
1890
  }
1698
- const Te = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1891
+ const Ve = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1699
1892
  __proto__: null,
1700
- AlertComponent: k,
1701
- selector: ee
1702
- }, Symbol.toStringTag, { value: "Module" })), se = "ds-tag", oe = `<span part="tag" class="tag">
1893
+ AlertComponent: R,
1894
+ selector: ue
1895
+ }, Symbol.toStringTag, { value: "Module" })), ve = "ds-tag", ge = `<span part="tag" class="tag">
1703
1896
  <slot></slot>
1704
1897
  <button
1705
1898
  part="remove-button"
@@ -1710,33 +1903,33 @@ const Te = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1710
1903
 
1711
1904
  </button>
1712
1905
  </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 {
1906
+ `, pe = "*{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}", at = new CSSStyleSheet();
1907
+ at.replaceSync(pe);
1908
+ class w extends HTMLElement {
1716
1909
  static _variantAttribute = "variant";
1717
1910
  static _sizeAttribute = "size";
1718
1911
  static _removableAttribute = "removable";
1719
1912
  constructor() {
1720
- super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(it);
1913
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(at);
1721
1914
  }
1722
1915
  static get observedAttributes() {
1723
1916
  return [
1724
- _._variantAttribute,
1725
- _._sizeAttribute,
1726
- _._removableAttribute
1917
+ w._variantAttribute,
1918
+ w._sizeAttribute,
1919
+ w._removableAttribute
1727
1920
  ];
1728
1921
  }
1729
1922
  get variant() {
1730
- return this.getAttribute(_._variantAttribute) ?? "default";
1923
+ return this.getAttribute(w._variantAttribute) ?? "default";
1731
1924
  }
1732
1925
  set variant(t) {
1733
- this.setAttribute(_._variantAttribute, t);
1926
+ this.setAttribute(w._variantAttribute, t);
1734
1927
  }
1735
1928
  get removable() {
1736
- return this.hasAttribute(_._removableAttribute);
1929
+ return this.hasAttribute(w._removableAttribute);
1737
1930
  }
1738
1931
  set removable(t) {
1739
- t ? this.setAttribute(_._removableAttribute, "") : this.removeAttribute(_._removableAttribute);
1932
+ t ? this.setAttribute(w._removableAttribute, "") : this.removeAttribute(w._removableAttribute);
1740
1933
  }
1741
1934
  connectedCallback() {
1742
1935
  this._render(), this._addEventListeners();
@@ -1744,7 +1937,7 @@ class _ extends HTMLElement {
1744
1937
  disconnectedCallback() {
1745
1938
  this._removeEventListeners();
1746
1939
  }
1747
- attributeChangedCallback(t, e, r) {
1940
+ attributeChangedCallback(t, e, i) {
1748
1941
  }
1749
1942
  _handleRemove = () => {
1750
1943
  this.dispatchEvent(
@@ -1758,20 +1951,20 @@ class _ extends HTMLElement {
1758
1951
  this.shadowRoot?.querySelector(".tag-remove")?.removeEventListener("click", this._handleRemove);
1759
1952
  }
1760
1953
  _render() {
1761
- this.shadowRoot !== null && (this.shadowRoot.innerHTML = oe, this._addEventListeners());
1954
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = ge, this._addEventListeners());
1762
1955
  }
1763
1956
  }
1764
- const Fe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1957
+ const Xe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1765
1958
  __proto__: null,
1766
- TagComponent: _,
1767
- selector: se
1768
- }, Symbol.toStringTag, { value: "Module" })), ne = "ds-avatar", le = `<div part="avatar" class="avatar" role="img">
1959
+ TagComponent: w,
1960
+ selector: ve
1961
+ }, Symbol.toStringTag, { value: "Module" })), fe = "ds-avatar", me = `<div part="avatar" class="avatar" role="img">
1769
1962
  <img class="avatar-image" alt="" />
1770
1963
  <span class="avatar-initials"></span>
1771
1964
  <span class="avatar-icon">👤</span>
1772
1965
  </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);
1966
+ `, ye = "*{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}", nt = new CSSStyleSheet();
1967
+ nt.replaceSync(ye);
1775
1968
  class n extends HTMLElement {
1776
1969
  static _srcAttribute = "src";
1777
1970
  static _altAttribute = "alt";
@@ -1780,7 +1973,7 @@ class n extends HTMLElement {
1780
1973
  static _shapeAttribute = "shape";
1781
1974
  static _colorAttribute = "color";
1782
1975
  constructor() {
1783
- super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(st);
1976
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(nt);
1784
1977
  }
1785
1978
  static get observedAttributes() {
1786
1979
  return [
@@ -1822,35 +2015,35 @@ class n extends HTMLElement {
1822
2015
  connectedCallback() {
1823
2016
  this._render();
1824
2017
  }
1825
- attributeChangedCallback(t, e, r) {
1826
- r !== e && this._update(t, r);
2018
+ attributeChangedCallback(t, e, i) {
2019
+ i !== e && this._update(t, i);
1827
2020
  }
1828
2021
  _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));
2022
+ this.shadowRoot !== null && (this.shadowRoot.innerHTML = me, this._update(n._srcAttribute, this.src), this._update(n._initialsAttribute, this.initials), this._update(n._altAttribute, this.alt));
1830
2023
  }
1831
2024
  _update(t, e) {
1832
2025
  if (t === n._srcAttribute) {
1833
- const r = this.shadowRoot?.querySelector(".avatar-image");
1834
- r != null && (r.src = e ?? "");
2026
+ const i = this.shadowRoot?.querySelector(".avatar-image");
2027
+ i != null && (i.src = e ?? "");
1835
2028
  } else if (t === n._initialsAttribute) {
1836
- const r = this.shadowRoot?.querySelector(".avatar-initials");
1837
- r != null && (r.textContent = e ?? "");
2029
+ const i = this.shadowRoot?.querySelector(".avatar-initials");
2030
+ i != null && (i.textContent = e ?? "");
1838
2031
  } 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 ?? "");
2032
+ const i = this.shadowRoot?.querySelector(".avatar-image"), s = this.shadowRoot?.querySelector(".avatar");
2033
+ i != null && (i.alt = e ?? ""), s?.setAttribute("aria-label", e ?? "");
1841
2034
  }
1842
2035
  }
1843
2036
  }
1844
- const je = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2037
+ const Be = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1845
2038
  __proto__: null,
1846
2039
  AvatarComponent: n,
1847
- selector: ne
1848
- }, Symbol.toStringTag, { value: "Module" })), ce = "ds-tooltip", ue = `<slot></slot>
2040
+ selector: fe
2041
+ }, Symbol.toStringTag, { value: "Module" })), Ae = "ds-tooltip", _e = `<slot></slot>
1849
2042
  <div part="tooltip" class="tooltip" role="tooltip">
1850
2043
  <slot name="content"></slot>
1851
2044
  </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);
2045
+ `, we = "*{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}", lt = new CSSStyleSheet();
2046
+ lt.replaceSync(we);
1854
2047
  class b extends HTMLElement {
1855
2048
  static _placementAttribute = "placement";
1856
2049
  static _contentAttribute = "content";
@@ -1859,7 +2052,7 @@ class b extends HTMLElement {
1859
2052
  _lastMouseX = 0;
1860
2053
  _lastMouseY = 0;
1861
2054
  constructor() {
1862
- super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(ot);
2055
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(lt);
1863
2056
  }
1864
2057
  static get observedAttributes() {
1865
2058
  return [
@@ -1901,13 +2094,13 @@ class b extends HTMLElement {
1901
2094
  disconnectedCallback() {
1902
2095
  this._removeEventListeners();
1903
2096
  }
1904
- attributeChangedCallback(t, e, r) {
1905
- r !== e && (t === b._contentAttribute && this._updateContent(r), t === b._followCursorAttribute && (r !== null ? this._attachEventListeners() : this._removeEventListeners()));
2097
+ attributeChangedCallback(t, e, i) {
2098
+ i !== e && (t === b._contentAttribute && this._updateContent(i), t === b._followCursorAttribute && (i !== null ? this._attachEventListeners() : this._removeEventListeners()));
1906
2099
  }
1907
2100
  _render() {
1908
2101
  if (this.shadowRoot === null)
1909
2102
  return;
1910
- this.shadowRoot.innerHTML = ue, this._updateContent(this.content);
2103
+ this.shadowRoot.innerHTML = _e, this._updateContent(this.content);
1911
2104
  const t = this.shadowRoot.querySelector(".tooltip");
1912
2105
  if (t != null) {
1913
2106
  const e = `tooltip-${Math.random().toString(36).slice(2, 7)}`;
@@ -1941,16 +2134,16 @@ class b extends HTMLElement {
1941
2134
  _updateContent(t) {
1942
2135
  const e = this.shadowRoot?.querySelector(".tooltip");
1943
2136
  if (e != null && t !== null && t !== "") {
1944
- const r = e.querySelector("slot");
1945
- (r === null || r.assignedNodes().length === 0) && (e.textContent = t);
2137
+ const i = e.querySelector("slot");
2138
+ (i === null || i.assignedNodes().length === 0) && (e.textContent = t);
1946
2139
  }
1947
2140
  }
1948
2141
  }
1949
- const qe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2142
+ const Je = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1950
2143
  __proto__: null,
1951
2144
  TooltipComponent: b,
1952
- selector: ce
1953
- }, Symbol.toStringTag, { value: "Module" })), be = "ds-text-input", ve = `<div part="wrapper" class="input-wrapper">
2145
+ selector: Ae
2146
+ }, Symbol.toStringTag, { value: "Module" })), Se = "ds-text-input", xe = `<div part="wrapper" class="input-wrapper">
1954
2147
  <label class="input-label" part="label"></label>
1955
2148
  <div class="input-container">
1956
2149
  <slot name="prefix" class="input-prefix"></slot>
@@ -1959,8 +2152,8 @@ const qe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1959
2152
  </div>
1960
2153
  <span class="input-helper" part="helper"></span>
1961
2154
  </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);
2155
+ `, Ee = "*{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}", dt = new CSSStyleSheet();
2156
+ dt.replaceSync(Ee);
1964
2157
  class o extends HTMLElement {
1965
2158
  static _labelAttribute = "label";
1966
2159
  static _placeholderAttribute = "placeholder";
@@ -1973,7 +2166,7 @@ class o extends HTMLElement {
1973
2166
  static _sizeAttribute = "size";
1974
2167
  static _nameAttribute = "name";
1975
2168
  constructor() {
1976
- super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(at);
2169
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(dt);
1977
2170
  }
1978
2171
  static get observedAttributes() {
1979
2172
  return [
@@ -2034,8 +2227,8 @@ class o extends HTMLElement {
2034
2227
  disconnectedCallback() {
2035
2228
  this._removeEventListeners();
2036
2229
  }
2037
- attributeChangedCallback(t, e, r) {
2038
- r !== e && this._syncAttribute(t, r);
2230
+ attributeChangedCallback(t, e, i) {
2231
+ i !== e && this._syncAttribute(t, i);
2039
2232
  }
2040
2233
  _handleInput = () => {
2041
2234
  this.dispatchEvent(
@@ -2062,66 +2255,66 @@ class o extends HTMLElement {
2062
2255
  this._inputElement?.removeEventListener("input", this._handleInput), this._inputElement?.removeEventListener("change", this._handleChange);
2063
2256
  }
2064
2257
  _syncAttribute(t, e) {
2065
- const r = this._inputElement, i = this.shadowRoot?.querySelector(".input-label"), a = this.shadowRoot?.querySelector(".input-helper");
2258
+ const i = this._inputElement, s = this.shadowRoot?.querySelector(".input-label"), a = this.shadowRoot?.querySelector(".input-helper");
2066
2259
  switch (t) {
2067
2260
  case o._labelAttribute:
2068
- i != null && (i.textContent = e ?? "");
2261
+ s != null && (s.textContent = e ?? "");
2069
2262
  break;
2070
2263
  case o._placeholderAttribute:
2071
- r?.setAttribute("placeholder", e ?? "");
2264
+ i?.setAttribute("placeholder", e ?? "");
2072
2265
  break;
2073
2266
  case o._valueAttribute:
2074
- r != null && (r.value = e ?? "");
2267
+ i != null && (i.value = e ?? "");
2075
2268
  break;
2076
2269
  case o._typeAttribute:
2077
- r?.setAttribute("type", e ?? "text");
2270
+ i?.setAttribute("type", e ?? "text");
2078
2271
  break;
2079
2272
  case o._disabledAttribute:
2080
- e !== null ? r?.setAttribute("disabled", "") : r?.removeAttribute("disabled");
2273
+ e !== null ? i?.setAttribute("disabled", "") : i?.removeAttribute("disabled");
2081
2274
  break;
2082
2275
  case o._requiredAttribute:
2083
- e !== null ? r?.setAttribute("required", "") : r?.removeAttribute("required");
2276
+ e !== null ? i?.setAttribute("required", "") : i?.removeAttribute("required");
2084
2277
  break;
2085
2278
  case o._helperAttribute:
2086
2279
  a != null && (a.textContent = e ?? "");
2087
2280
  break;
2088
2281
  case o._nameAttribute:
2089
- e !== null && e !== "" ? r?.setAttribute("name", e) : r?.removeAttribute("name");
2282
+ e !== null && e !== "" ? i?.setAttribute("name", e) : i?.removeAttribute("name");
2090
2283
  break;
2091
2284
  }
2092
2285
  }
2093
2286
  _render() {
2094
2287
  if (this.shadowRoot === null)
2095
2288
  return;
2096
- this.shadowRoot.innerHTML = ve;
2289
+ this.shadowRoot.innerHTML = xe;
2097
2290
  const t = this._inputElement;
2098
2291
  if (t !== null) {
2099
2292
  t.setAttribute(
2100
2293
  "type",
2101
2294
  this.getAttribute(o._typeAttribute) ?? "text"
2102
2295
  ), 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);
2296
+ const s = this.getAttribute(o._nameAttribute);
2297
+ s !== null && s !== "" && t.setAttribute("name", s);
2105
2298
  }
2106
2299
  const e = this.shadowRoot.querySelector(".input-label");
2107
2300
  e !== null && (e.textContent = this.label);
2108
- const r = this.shadowRoot.querySelector(".input-helper");
2109
- r !== null && (r.textContent = this.helper), this._addEventListeners();
2301
+ const i = this.shadowRoot.querySelector(".input-helper");
2302
+ i !== null && (i.textContent = this.helper), this._addEventListeners();
2110
2303
  }
2111
2304
  }
2112
- const De = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2305
+ const Qe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2113
2306
  __proto__: null,
2114
2307
  TextInputComponent: o,
2115
- selector: be
2116
- }, Symbol.toStringTag, { value: "Module" })), pe = "ds-toggle", fe = `<label class="toggle-wrapper" part="wrapper">
2308
+ selector: Se
2309
+ }, Symbol.toStringTag, { value: "Module" })), ke = "ds-toggle", Le = `<label class="toggle-wrapper" part="wrapper">
2117
2310
  <input class="toggle-input" type="checkbox" role="switch" />
2118
2311
  <span class="toggle-track" part="track">
2119
2312
  <span class="toggle-thumb" part="thumb"></span>
2120
2313
  </span>
2121
2314
  <span class="toggle-label" part="label"><slot></slot></span>
2122
2315
  </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);
2316
+ `, Re = "*{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}", ct = new CSSStyleSheet();
2317
+ ct.replaceSync(Re);
2125
2318
  class l extends HTMLElement {
2126
2319
  static _checkedAttribute = "checked";
2127
2320
  static _disabledAttribute = "disabled";
@@ -2130,7 +2323,7 @@ class l extends HTMLElement {
2130
2323
  static _nameAttribute = "name";
2131
2324
  static _valueAttribute = "value";
2132
2325
  constructor() {
2133
- super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(nt);
2326
+ super(), this.attachShadow({ mode: "open" }), this.shadowRoot?.adoptedStyleSheets.push(ct);
2134
2327
  }
2135
2328
  static get observedAttributes() {
2136
2329
  return [
@@ -2165,11 +2358,11 @@ class l extends HTMLElement {
2165
2358
  disconnectedCallback() {
2166
2359
  this._removeEventListeners();
2167
2360
  }
2168
- attributeChangedCallback(t, e, r) {
2169
- if (r === e)
2361
+ attributeChangedCallback(t, e, i) {
2362
+ if (i === e)
2170
2363
  return;
2171
- const i = this._inputElement;
2172
- i !== null && (t === l._checkedAttribute ? i.checked = r !== null : t === l._disabledAttribute && (i.disabled = r !== null));
2364
+ const s = this._inputElement;
2365
+ s !== null && (t === l._checkedAttribute ? s.checked = i !== null : t === l._disabledAttribute && (s.disabled = i !== null));
2173
2366
  }
2174
2367
  _handleChange = () => {
2175
2368
  const t = this._inputElement?.checked ?? !1;
@@ -2190,40 +2383,42 @@ class l extends HTMLElement {
2190
2383
  _render() {
2191
2384
  if (this.shadowRoot === null)
2192
2385
  return;
2193
- this.shadowRoot.innerHTML = fe;
2386
+ this.shadowRoot.innerHTML = Le;
2194
2387
  const t = this._inputElement;
2195
2388
  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
2389
  }
2197
2390
  }
2198
- const Pe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2391
+ const Ze = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2199
2392
  __proto__: null,
2200
2393
  ToggleComponent: l,
2201
- selector: pe
2394
+ selector: ke
2202
2395
  }, Symbol.toStringTag, { value: "Module" }));
2203
2396
  export {
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
2397
+ ze as APPLICATION_NAME,
2398
+ Ve as Alert,
2399
+ Be as Avatar,
2400
+ Ye as Badge,
2401
+ De as BarMenu,
2402
+ $e as BaseButton,
2403
+ We as BaseCard,
2404
+ Fe as BaseDialog,
2405
+ j as CUSTOM_MESSAGES,
2406
+ He as CloseButton,
2407
+ Te as ConfirmButton,
2408
+ qe as ConfirmationDialog,
2409
+ Pe as HeaderBodyFooterDialog,
2410
+ Ce as LoaderBars,
2411
+ je as NextButton,
2412
+ Ne as PreviousButton,
2413
+ Ke as ProgressBar,
2414
+ Ge as Skeleton,
2415
+ Ue as Spinner,
2416
+ Xe as Tag,
2417
+ Qe as TextInput,
2418
+ Ze as Toggle,
2419
+ Je as Tooltip,
2420
+ Ie as UndoButton,
2421
+ Me as WebComponentsRegistry,
2422
+ bt as clearThemes,
2423
+ Oe as switchTheme
2229
2424
  };