@luzmo/lucero 1.0.3-alpha.8 → 1.0.3-alpha.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/components/checkbox/checkbox.d.ts +1 -1
  2. package/components/date-range-picker/index.cjs +1 -1
  3. package/components/date-range-picker/index.js +1 -1
  4. package/components/{date-range-picker-DdY9hGsU.cjs → date-range-picker-A-XRRg1X.cjs} +1 -1
  5. package/components/{date-range-picker-DocjwZKA.js → date-range-picker-CcDzRDm5.js} +1 -1
  6. package/components/date-time-picker/index.cjs +1 -1
  7. package/components/date-time-picker/index.js +1 -1
  8. package/components/{date-time-picker-DdujhIkd.cjs → date-time-picker-Ca9GEA4N.cjs} +1 -1
  9. package/components/{date-time-picker-CPbIj4TN.js → date-time-picker-PHKHDgL9.js} +1 -1
  10. package/components/index.cjs +1 -1
  11. package/components/index.js +12 -12
  12. package/components/prompt-box/controllers/attachments-controller.d.ts +1 -0
  13. package/components/prompt-box/index.cjs +1 -1
  14. package/components/prompt-box/index.d.ts +2 -1
  15. package/components/prompt-box/index.js +2 -2
  16. package/components/prompt-box/prompt-box-templates.d.ts +3 -0
  17. package/components/prompt-box/prompt-box.d.ts +30 -4
  18. package/components/prompt-box/types.d.ts +8 -0
  19. package/components/{prompt-box-Bj0qIPOy.js → prompt-box-DahvVbcc.js} +205 -155
  20. package/components/prompt-box-DfTe3nG0.cjs +311 -0
  21. package/components/skeleton-loader/index.cjs +1 -1
  22. package/components/skeleton-loader/index.js +1 -1
  23. package/components/slider/index.cjs +1 -1
  24. package/components/slider/index.js +1 -1
  25. package/components/status-light/index.cjs +1 -1
  26. package/components/status-light/index.js +1 -1
  27. package/components/switch/index.cjs +1 -1
  28. package/components/switch/index.js +1 -1
  29. package/components/tabs/index.cjs +1 -1
  30. package/components/tabs/index.js +1 -1
  31. package/components/{tabs-DYpbsO58.js → tabs-B54ELQtU.js} +1 -1
  32. package/components/{tabs-CTKkW-L8.cjs → tabs-Jo_qqM_H.cjs} +1 -1
  33. package/components/tags/index.cjs +1 -1
  34. package/components/tags/index.js +1 -1
  35. package/components/top-nav/index.cjs +1 -1
  36. package/components/top-nav/index.js +1 -1
  37. package/components/{top-nav-CMVB3G_v.js → top-nav-B3w3DZ56.js} +1 -1
  38. package/components/{top-nav-bekRXHUk.cjs → top-nav-DZO8yZs6.cjs} +1 -1
  39. package/custom-elements.json +1 -1
  40. package/package.json +1 -1
  41. package/components/prompt-box-6Z5LIjCF.cjs +0 -299
  42. /package/components/{scaled-indicator-DF45Sc3W.cjs → scaled-indicator-Bl-3A2gz.cjs} +0 -0
  43. /package/components/{scaled-indicator-BoLeYSgL.js → scaled-indicator-fMYan6VK.js} +0 -0
  44. /package/components/{skeleton-loader-B8NgELvX.cjs → skeleton-loader-dNRfq6lt.cjs} +0 -0
  45. /package/components/{skeleton-loader-C1XG3m_u.js → skeleton-loader-oJVESWls.js} +0 -0
  46. /package/components/{slider-uXRKcOz5.cjs → slider-D8w2ipBg.cjs} +0 -0
  47. /package/components/{slider-3QBnq0S8.js → slider-Fy-VeKrU.js} +0 -0
  48. /package/components/{status-light-CBaAFRUc.cjs → status-light-BG_kopZQ.cjs} +0 -0
  49. /package/components/{status-light-Bf8jGu4G.js → status-light-DXWPBufE.js} +0 -0
  50. /package/components/{switch-C5g5t5x2.js → switch-CSuMgmAh.js} +0 -0
  51. /package/components/{switch-COhz9ka9.cjs → switch-nuCOB2P3.cjs} +0 -0
  52. /package/components/{tags-CBL5oFEo.js → tags-Bpl4u-eo.js} +0 -0
  53. /package/components/{tags-CndS4S2k.cjs → tags-Dj7Xm3KI.cjs} +0 -0
@@ -23,13 +23,13 @@ import { m as r } from "./overlay-BbQuYBxp.js";
23
23
  import "./overlay-mdk7-NOt.js";
24
24
  import "./button-D1a4B85S.js";
25
25
  import "./text-field-BoGAvXvh.js";
26
- import "./tags-CBL5oFEo.js";
26
+ import "./skeleton-loader-oJVESWls.js";
27
27
  import { t as i } from "./voice-recorder-477xPHRU.js";
28
28
  import { html as a, nothing as o, unsafeCSS as s } from "lit";
29
29
  import { property as c, query as l, state as u } from "lit/decorators.js";
30
- import { luzmoArrowEnter as d, luzmoArrowUp as f, luzmoCheck as p, luzmoClear as m, luzmoMicrophone as h, luzmoStop as ee } from "@luzmo/icons";
30
+ import { luzmoArrowEnter as d, luzmoArrowUp as f, luzmoCheck as p, luzmoClear as m, luzmoFileCsv as h, luzmoFileDoc as g, luzmoFileExcel as _, luzmoFilePdf as v, luzmoFileVideo as y, luzmoMicrophone as b, luzmoStop as ee } from "@luzmo/icons";
31
31
  //#region src/components/prompt-box/controllers/attachments-controller.ts
32
- var te = class {
32
+ var x = class {
33
33
  constructor(e) {
34
34
  this._attachments = [], this._idCounter = 0, this._host = e, e.addController(this);
35
35
  }
@@ -66,6 +66,19 @@ var te = class {
66
66
  let t = this._attachments.find((t) => t.id === e);
67
67
  t && (t.previewUrl && URL.revokeObjectURL(t.previewUrl), this._attachments = this._attachments.filter((t) => t.id !== e), this._dispatchChange(), this._host.requestUpdate());
68
68
  }
69
+ setAttachmentLoading(e, t) {
70
+ let n = this._attachments.findIndex((t) => t.id === e);
71
+ if (n === -1) return;
72
+ let r = this._attachments[n];
73
+ !!r.loading !== t && (this._attachments = [
74
+ ...this._attachments.slice(0, n),
75
+ {
76
+ ...r,
77
+ loading: t
78
+ },
79
+ ...this._attachments.slice(n + 1)
80
+ ], this._dispatchChange(), this._host.requestUpdate());
81
+ }
69
82
  clearAttachments() {
70
83
  this._revokeAllPreviewUrls(), this._attachments = [], this._dispatchChange(), this._host.requestUpdate();
71
84
  }
@@ -118,7 +131,7 @@ var te = class {
118
131
  detail: { attachments: this._attachments }
119
132
  }));
120
133
  }
121
- }, g = class {
134
+ }, te = class {
122
135
  constructor(e) {
123
136
  this._voiceRecorder = null, this.isRecording = !1, this.duration = 0, this.audioLevel = 0, this.shouldFocusFinishButton = !1, this._host = e, e.addController(this);
124
137
  }
@@ -191,38 +204,38 @@ var te = class {
191
204
  };
192
205
  //#endregion
193
206
  //#region src/components/prompt-box/range-from-point.ts
194
- function _(e, t) {
207
+ function S(e, t) {
195
208
  let n = document.createRange();
196
209
  return n.setStart(e, t), n.collapse(!0), n;
197
210
  }
198
- function v(e, t, n) {
211
+ function C(e, t, n) {
199
212
  let r = e.getBoundingClientRect(), i = t - r.left, a = n - r.top;
200
213
  return i * i + a * a;
201
214
  }
202
- function y(e, t, n, r) {
215
+ function ne(e, t, n, r) {
203
216
  let i = 0, a = t;
204
217
  for (; a - i > 1;) {
205
218
  let t = i + a >>> 1, r = document.createRange();
206
219
  r.setStart(e, t), r.collapse(!0), r.getBoundingClientRect().left < n ? i = t : a = t;
207
220
  }
208
- let o = _(e, i), s = v(o, n, r), c = _(e, a), l = v(c, n, r);
221
+ let o = S(e, i), s = C(o, n, r), c = S(e, a), l = C(c, n, r);
209
222
  return l < s && (o = c, s = l), {
210
223
  range: o,
211
224
  distSq: s
212
225
  };
213
226
  }
214
- function b(e, t, n, r) {
227
+ function re(e, t, n, r) {
215
228
  let i = null, a = Infinity;
216
229
  for (let [o, s] of e.childNodes.entries()) if (s !== r) {
217
230
  if (s.nodeType === Node.TEXT_NODE) {
218
231
  let e = (s.textContent ?? "").length;
219
232
  if (e === 0) continue;
220
- let r = y(s, e, t, n);
233
+ let r = ne(s, e, t, n);
221
234
  r.distSq < a && (a = r.distSq, i = r.range);
222
235
  } else if (s.nodeType === Node.ELEMENT_NODE) {
223
236
  let r = s.getBoundingClientRect();
224
237
  if (r.width === 0 && r.height === 0) continue;
225
- let c = r.left + r.width / 2, l = _(e, o), u = _(e, o + 1), d = t < c ? l : u, f = n - (r.top + r.height / 2), p = t < c ? t - r.left : t - r.right, m = p * p + f * f;
238
+ let c = r.left + r.width / 2, l = S(e, o), u = S(e, o + 1), d = t < c ? l : u, f = n - (r.top + r.height / 2), p = t < c ? t - r.left : t - r.right, m = p * p + f * f;
226
239
  m < a && (a = m, i = d);
227
240
  }
228
241
  }
@@ -232,22 +245,22 @@ function b(e, t, n, r) {
232
245
  }
233
246
  return i;
234
247
  }
235
- function x(e, t, n, r, i) {
248
+ function w(e, t, n, r, i) {
236
249
  if (Number.isNaN(n) || Number.isNaN(r)) return null;
237
250
  let a = null, o = e;
238
251
  if (o?.caretPositionFromPoint) {
239
252
  let e = o.caretPositionFromPoint(n, r);
240
- e && (a = _(e.offsetNode, e.offset));
253
+ e && (a = S(e.offsetNode, e.offset));
241
254
  } else o?.caretRangeFromPoint && (a = o.caretRangeFromPoint(n, r));
242
255
  if (!a) if ("caretPositionFromPoint" in document) {
243
256
  let e = document.caretPositionFromPoint(n, r);
244
- e && (a = _(e.offsetNode, e.offset));
257
+ e && (a = S(e.offsetNode, e.offset));
245
258
  } else "caretRangeFromPoint" in document && (a = document.caretRangeFromPoint(n, r));
246
- return (!a || !t.contains(a.startContainer)) && (a = b(t, n, r, i)), a;
259
+ return (!a || !t.contains(a.startContainer)) && (a = re(t, n, r, i)), a;
247
260
  }
248
261
  //#endregion
249
262
  //#region src/components/prompt-box/selection-utils.ts
250
- function S(e) {
263
+ function T(e) {
251
264
  if (e) {
252
265
  let t = e.getSelection?.();
253
266
  if (t && t.rangeCount > 0) return t.getRangeAt(0);
@@ -266,7 +279,7 @@ function S(e) {
266
279
  } catch {}
267
280
  return null;
268
281
  }
269
- function C(e, t) {
282
+ function E(e, t) {
270
283
  let n = document.getSelection();
271
284
  if (n) try {
272
285
  n.setBaseAndExtent(e, t, e, t);
@@ -275,19 +288,19 @@ function C(e, t) {
275
288
  r.setStart(e, t), r.collapse(!0), n.removeAllRanges(), n.addRange(r);
276
289
  }
277
290
  }
278
- function w(e) {
291
+ function D(e) {
279
292
  return e === " " || e === "\n" || e === "\xA0";
280
293
  }
281
- function T(e) {
282
- let t = S(e);
294
+ function O(e) {
295
+ let t = T(e);
283
296
  if (!t || !t.collapsed) return !1;
284
297
  let n = t.startContainer, r = t.startOffset;
285
298
  if (n.nodeType === Node.TEXT_NODE) {
286
- if (r >= 2) return w(n.textContent?.charAt(r - 2) ?? "");
299
+ if (r >= 2) return D(n.textContent?.charAt(r - 2) ?? "");
287
300
  let e = n.previousSibling;
288
301
  if (!e || e.nodeType === Node.ELEMENT_NODE && e.classList?.contains("element-badge")) return !0;
289
302
  let t = e.textContent ?? "";
290
- return t.length === 0 ? !0 : w(t.at(-1) ?? "");
303
+ return t.length === 0 ? !0 : D(t.at(-1) ?? "");
291
304
  }
292
305
  if (n.nodeType === Node.ELEMENT_NODE) {
293
306
  if (r === 0) return !0;
@@ -295,13 +308,13 @@ function T(e) {
295
308
  if (!e || e.nodeType === Node.ELEMENT_NODE && e.classList?.contains("element-badge")) return !0;
296
309
  if (e.nodeType === Node.TEXT_NODE) {
297
310
  let t = e.textContent ?? "";
298
- return t.length === 0 ? !0 : w(t.at(-1) ?? "");
311
+ return t.length === 0 ? !0 : D(t.at(-1) ?? "");
299
312
  }
300
313
  }
301
314
  return !1;
302
315
  }
303
- function E(e, t) {
304
- let n = S(e);
316
+ function ie(e, t) {
317
+ let n = T(e);
305
318
  if (!n) {
306
319
  if (!t) return null;
307
320
  let e = t.getBoundingClientRect();
@@ -338,22 +351,22 @@ function E(e, t) {
338
351
  y: o.bottom
339
352
  };
340
353
  }
341
- function ne(e, t) {
342
- let n = S(e);
354
+ function ae(e, t) {
355
+ let n = T(e);
343
356
  if (!n || !n.collapsed) return null;
344
357
  let r = n.startContainer, i = n.startOffset;
345
358
  if (r.nodeType !== Node.TEXT_NODE) return null;
346
359
  let a = (r.textContent ?? "").slice(0, Math.max(0, i)), o = a.lastIndexOf(t);
347
360
  return o === -1 ? null : a.slice(Math.max(0, o + 1));
348
361
  }
349
- function D(e, t) {
362
+ function k(e, t) {
350
363
  if (e.focus(), !t) return;
351
364
  let n = e.querySelector(`[data-element-id="${t}"]`);
352
365
  if (!n) return;
353
366
  let r = n.nextSibling;
354
367
  if (r && r.nodeType === Node.TEXT_NODE) {
355
368
  let e = r.textContent ?? "", t = e.indexOf(" ");
356
- C(r, t === -1 ? e.length : t + 1);
369
+ E(r, t === -1 ? e.length : t + 1);
357
370
  return;
358
371
  }
359
372
  let i = document.getSelection();
@@ -361,14 +374,14 @@ function D(e, t) {
361
374
  let a = document.createRange();
362
375
  a.setStartAfter(n), a.collapse(!0), i.removeAllRanges(), i.addRange(a);
363
376
  }
364
- function O(e, t, n, r) {
365
- let i = S(e);
377
+ function oe(e, t, n, r) {
378
+ let i = T(e);
366
379
  if (i) {
367
380
  let e = i.startContainer, r = i.startOffset;
368
381
  if (e.nodeType === Node.TEXT_NODE && t.contains(e)) {
369
382
  let t = e.textContent ?? "", i = t.slice(0, Math.max(0, r)).lastIndexOf(n);
370
383
  if (i !== -1) {
371
- e.textContent = t.slice(0, Math.max(0, i)) + t.slice(Math.max(0, r)), C(e, i);
384
+ e.textContent = t.slice(0, Math.max(0, i)) + t.slice(Math.max(0, r)), E(e, i);
372
385
  return;
373
386
  }
374
387
  }
@@ -377,14 +390,14 @@ function O(e, t, n, r) {
377
390
  for (; s = o.nextNode();) {
378
391
  let e = s.textContent ?? "", n = e.lastIndexOf(a);
379
392
  if (n !== -1) {
380
- s.textContent = e.slice(0, Math.max(0, n)) + e.slice(Math.max(0, n + a.length)), t.focus(), C(s, n);
393
+ s.textContent = e.slice(0, Math.max(0, n)) + e.slice(Math.max(0, n + a.length)), t.focus(), E(s, n);
381
394
  return;
382
395
  }
383
396
  }
384
397
  }
385
398
  //#endregion
386
399
  //#region src/components/prompt-box/types.ts
387
- var k = "application/x-luzmo-element", A = class {
400
+ var A = "application/x-luzmo-element", j = class {
388
401
  constructor(e) {
389
402
  this._elements = /* @__PURE__ */ new Map(), this._idCounter = 0, this._dragCaret = null, this.isDragOver = !1, this.richInputElement = null, this.handleRichInput = () => {
390
403
  this.syncValue(), this._host.dispatchEvent(new Event("input", {
@@ -399,7 +412,7 @@ var k = "application/x-luzmo-element", A = class {
399
412
  }
400
413
  let t = e.clipboardData?.getData("text/plain") ?? "";
401
414
  if (t) {
402
- let e = S(this._host.shadowRoot);
415
+ let e = T(this._host.shadowRoot);
403
416
  if (e) {
404
417
  e.deleteContents(), e.insertNode(document.createTextNode(t)), e.collapse(!1);
405
418
  let n = document.getSelection();
@@ -420,7 +433,7 @@ var k = "application/x-luzmo-element", A = class {
420
433
  this._host.requestUpdate();
421
434
  return;
422
435
  }
423
- let t = e.dataTransfer?.getData(k);
436
+ let t = e.dataTransfer?.getData(A);
424
437
  if (!t) {
425
438
  this._host.requestUpdate();
426
439
  return;
@@ -429,7 +442,7 @@ var k = "application/x-luzmo-element", A = class {
429
442
  let n = JSON.parse(t);
430
443
  if (n.elementType && n.label) {
431
444
  this.richInputElement?.focus();
432
- let t = this.richInputElement ? x(this._host.shadowRoot, this.richInputElement, e.clientX, e.clientY, this._dragCaret) : null;
445
+ let t = this.richInputElement ? w(this._host.shadowRoot, this.richInputElement, e.clientX, e.clientY, this._dragCaret) : null;
433
446
  this._insertElementAtRange(n.elementType, n.label, n.data ?? null, void 0, t);
434
447
  }
435
448
  this._host.requestUpdate();
@@ -490,16 +503,16 @@ var k = "application/x-luzmo-element", A = class {
490
503
  let t = e.previousSibling;
491
504
  t?.classList?.contains("element-badge") && this._ensureSpaceAfter(t);
492
505
  }
493
- this._ensureSpaceAfter(s), D(c, a), l = !0;
506
+ this._ensureSpaceAfter(s), k(c, a), l = !0;
494
507
  }
495
- return l || (c.append(s), this._ensureSpaceAfter(s), D(c, a)), this.syncValue(), this._host.dispatchEvent(new CustomEvent("luzmo-element-inserted", {
508
+ return l || (c.append(s), this._ensureSpaceAfter(s), k(c, a)), this.syncValue(), this._host.dispatchEvent(new CustomEvent("luzmo-element-inserted", {
496
509
  bubbles: !0,
497
510
  composed: !0,
498
511
  detail: { element: o }
499
512
  })), a;
500
513
  }
501
514
  _getSelectionRange() {
502
- return S(this._host.shadowRoot);
515
+ return T(this._host.shadowRoot);
503
516
  }
504
517
  removeElement(e) {
505
518
  let t = this._elements.get(e);
@@ -527,7 +540,7 @@ var k = "application/x-luzmo-element", A = class {
527
540
  this._elements.clear(), this.richInputElement && (this.richInputElement.innerHTML = "");
528
541
  }
529
542
  handleBadgeDelete(e) {
530
- let t = S(this._host.shadowRoot);
543
+ let t = T(this._host.shadowRoot);
531
544
  if (!t || !t.collapsed) return !1;
532
545
  let n = e === "Backspace" ? this._findBadgeBefore(t.startContainer, t.startOffset) : e === "Delete" ? this._findBadgeAfter(t.startContainer, t.startOffset) : null;
533
546
  return n?.dataset.elementId ? (this.removeElement(n.dataset.elementId), !0) : !1;
@@ -650,7 +663,7 @@ var k = "application/x-luzmo-element", A = class {
650
663
  this._hideDragCaret();
651
664
  return;
652
665
  }
653
- let n = x(this._host.shadowRoot, this.richInputElement, e, t, this._dragCaret);
666
+ let n = w(this._host.shadowRoot, this.richInputElement, e, t, this._dragCaret);
654
667
  if (!n) {
655
668
  this._hideDragCaret();
656
669
  return;
@@ -672,13 +685,13 @@ var k = "application/x-luzmo-element", A = class {
672
685
  }
673
686
  _positionCaretAtPoint(e, t) {
674
687
  if (!this.richInputElement) return;
675
- let n = x(this._host.shadowRoot, this.richInputElement, e, t, this._dragCaret);
688
+ let n = w(this._host.shadowRoot, this.richInputElement, e, t, this._dragCaret);
676
689
  if (n) {
677
690
  let e = document.getSelection();
678
691
  e && (e.removeAllRanges(), e.addRange(n));
679
692
  }
680
693
  }
681
- }, j = class {
694
+ }, M = class {
682
695
  constructor(e) {
683
696
  this._triggers = [], this.activeTrigger = null, this.searchString = "", this.virtualElement = null, this.highlightedIndex = 0, this.pointerMovedSinceKeyNav = !0, this.hoveredIndex = -1, this.filteredOptions = [], this.richInputElement = null, this.handleOverlayClosed = () => {
684
697
  this.close();
@@ -727,13 +740,13 @@ var k = "application/x-luzmo-element", A = class {
727
740
  }
728
741
  handleInput(e) {
729
742
  if (this.activeTrigger) {
730
- let e = ne(this._host.shadowRoot, this.activeTrigger) ?? this._extractTriggerSearchFromContent(this.activeTrigger);
743
+ let e = ae(this._host.shadowRoot, this.activeTrigger) ?? this._extractTriggerSearchFromContent(this.activeTrigger);
731
744
  e === null ? this.close() : (this.searchString = e, this._updateFilteredOptions(), this.highlightedIndex = this._findSelectableIndex(0, 1), this._dispatchChange(!0), this._host.requestUpdate(), document.dispatchEvent(new Event("luzmo-update-overlays")));
732
745
  } else this._detectTrigger(e);
733
746
  }
734
747
  open(e) {
735
748
  if (!this._triggers.find((t) => t.key === e)) return;
736
- let t = E(this._host.shadowRoot, this.richInputElement);
749
+ let t = ie(this._host.shadowRoot, this.richInputElement);
737
750
  if (!t) return;
738
751
  this.activeTrigger = e, this.searchString = "", this._updateFilteredOptions(), this.highlightedIndex = this._findSelectableIndex(0, 1);
739
752
  let n = this.richInputElement?.getBoundingClientRect().top ?? t.y;
@@ -761,7 +774,7 @@ var k = "application/x-luzmo-element", A = class {
761
774
  _detectTrigger(e) {
762
775
  if (this._host.disabled || this._host.readonly || this._host.pending) return;
763
776
  let t = e?.data ?? "";
764
- t.length !== 1 || !this._isTriggerKey(t) || T(this._host.shadowRoot) && this.open(t);
777
+ t.length !== 1 || !this._isTriggerKey(t) || O(this._host.shadowRoot) && this.open(t);
765
778
  }
766
779
  _extractTriggerSearchFromContent(e) {
767
780
  let t = this.richInputElement?.textContent ?? "";
@@ -827,11 +840,11 @@ var k = "application/x-luzmo-element", A = class {
827
840
  selectOption(e) {
828
841
  if (!this.activeTrigger || !this.richInputElement) return;
829
842
  let t = this.activeTrigger, n = this.richInputElement, r = this._host.shadowRoot;
830
- O(r, n, t, this.searchString);
843
+ oe(r, n, t, this.searchString);
831
844
  let i = e.elementType ?? t, a = this._host.insertElement(i, e.label, e.data ?? null, e.icon);
832
- D(n, a), this.close(), this._host.updateComplete.then(() => {
845
+ k(n, a), this.close(), this._host.updateComplete.then(() => {
833
846
  requestAnimationFrame(() => {
834
- D(n, a);
847
+ k(n, a);
835
848
  });
836
849
  });
837
850
  }
@@ -846,38 +859,38 @@ var k = "application/x-luzmo-element", A = class {
846
859
  }
847
860
  }));
848
861
  }
849
- }, M = !1, N = 0;
850
- function P() {
851
- M = !0;
852
- }
862
+ }, N = !1, P = 0;
853
863
  function F() {
854
- M = !1;
864
+ N = !0;
855
865
  }
856
866
  function I() {
857
- document.addEventListener("keydown", P, !0), document.addEventListener("mousedown", F, !0), document.addEventListener("pointerdown", F, !0);
867
+ N = !1;
858
868
  }
859
869
  function L() {
860
- document.removeEventListener("keydown", P, !0), document.removeEventListener("mousedown", F, !0), document.removeEventListener("pointerdown", F, !0);
870
+ document.addEventListener("keydown", F, !0), document.addEventListener("mousedown", I, !0), document.addEventListener("pointerdown", I, !0);
861
871
  }
862
872
  function R() {
863
- N === 0 && typeof window < "u" && I(), N++;
873
+ document.removeEventListener("keydown", F, !0), document.removeEventListener("mousedown", I, !0), document.removeEventListener("pointerdown", I, !0);
864
874
  }
865
875
  function z() {
866
- N--, N <= 0 && (N = 0, L());
876
+ P === 0 && typeof window < "u" && L(), P++;
867
877
  }
868
878
  function B() {
869
- return M;
879
+ P--, P <= 0 && (P = 0, R());
880
+ }
881
+ function V() {
882
+ return N;
870
883
  }
871
884
  //#endregion
872
885
  //#region src/components/prompt-box/prompt-box-templates.ts
873
- function V(e, t, n) {
886
+ function H(e, t, n) {
874
887
  return a`
875
888
  <div class="top-actions ${t ? "" : "empty"}" part="top-actions">
876
889
  <slot name="top-actions" @slotchange=${n}></slot>
877
890
  </div>
878
891
  `;
879
892
  }
880
- function H(e, t, n) {
893
+ function U(e, t, n) {
881
894
  return a`
882
895
  <div
883
896
  class="bottom-actions ${t ? "" : "empty"}"
@@ -887,7 +900,7 @@ function H(e, t, n) {
887
900
  </div>
888
901
  `;
889
902
  }
890
- function U(e) {
903
+ function W(e) {
891
904
  let t = [];
892
905
  for (let n = 0; n < 5; n++) {
893
906
  let r = 1 - Math.abs(n - 2) * .15, i = .3 + e.recordingController.audioLevel * .7 * r, o = Math.max(.2, Math.min(1, i));
@@ -899,7 +912,7 @@ function U(e) {
899
912
  <div class="waveform" part="waveform" aria-hidden="true">${t}</div>
900
913
  `;
901
914
  }
902
- function W(e) {
915
+ function G(e) {
903
916
  let t = e.handleRecordButtonSlotChange, n = e.hasRecordButton, r = e.recordingController.isRecording, i = () => {
904
917
  e.recordingController.cancel();
905
918
  }, o = (t) => {
@@ -922,7 +935,7 @@ function W(e) {
922
935
  .size=${e.size}
923
936
  ></luzmo-icon>
924
937
  </luzmo-action-button>
925
- ${U(e)}
938
+ ${W(e)}
926
939
  <span class="recording-duration" part="recording-duration">
927
940
  ${e.recordingController.formatDuration()}
928
941
  </span>
@@ -953,13 +966,13 @@ function W(e) {
953
966
  >
954
967
  <luzmo-icon
955
968
  slot="icon"
956
- .icon=${h}
969
+ .icon=${b}
957
970
  .size=${e.size}
958
971
  ></luzmo-icon>
959
972
  </luzmo-action-button>
960
973
  `;
961
974
  }
962
- function re(e) {
975
+ function K(e) {
963
976
  let t = e.handleSubmitButtonSlotChange, n = e.recordingController.isRecording, r = () => {
964
977
  e.submit();
965
978
  }, i = () => {
@@ -1001,12 +1014,12 @@ function re(e) {
1001
1014
  </luzmo-button>
1002
1015
  `;
1003
1016
  }
1004
- function G(e, t) {
1017
+ function q(e, t) {
1005
1018
  if (!t) return e;
1006
1019
  let n = e.toLowerCase().indexOf(t.toLowerCase());
1007
1020
  return n === -1 ? e : a`${e.slice(0, n)}<mark class="trigger-option-highlight">${e.slice(n, n + t.length)}</mark>${e.slice(n + t.length)}`;
1008
1021
  }
1009
- function K(e, t) {
1022
+ function se(e, t) {
1010
1023
  return a`
1011
1024
  <div
1012
1025
  class="trigger-option-header"
@@ -1022,7 +1035,7 @@ function K(e, t) {
1022
1035
  </div>
1023
1036
  `;
1024
1037
  }
1025
- function q(e, t, n, r, i) {
1038
+ function ce(e, t, n, r, i) {
1026
1039
  let s = () => {
1027
1040
  e.selectTriggerOption(t);
1028
1041
  }, c = () => {
@@ -1036,7 +1049,7 @@ function q(e, t, n, r, i) {
1036
1049
  ></luzmo-icon>` : o}
1037
1050
  <div class="trigger-option-content">
1038
1051
  <span class="trigger-option-label"
1039
- >${i?.highlightSearch && p ? G(t.label, p) : t.label}</span
1052
+ >${i?.highlightSearch && p ? q(t.label, p) : t.label}</span
1040
1053
  >
1041
1054
  ${t.description ? a`<span class="trigger-option-description"
1042
1055
  >${t.description}</span
@@ -1061,9 +1074,9 @@ function q(e, t, n, r, i) {
1061
1074
  </div>
1062
1075
  `;
1063
1076
  }
1064
- function J(e, t, n, r) {
1077
+ function le(e, t, n, r) {
1065
1078
  let i = [];
1066
- for (let [a, o] of t.entries()) o.header ? i.push(K(o, r)) : i.push(q(e, o, a, n, r));
1079
+ for (let [a, o] of t.entries()) o.header ? i.push(se(o, r)) : i.push(ce(e, o, a, n, r));
1067
1080
  return a`
1068
1081
  <div
1069
1082
  class="trigger-options"
@@ -1075,18 +1088,18 @@ function J(e, t, n, r) {
1075
1088
  </div>
1076
1089
  `;
1077
1090
  }
1078
- function Y(e) {
1091
+ function J(e) {
1079
1092
  return a`<slot name=${e} style="display: none;"></slot>`;
1080
1093
  }
1081
- function X(e) {
1094
+ function ue(e) {
1082
1095
  let t = e.triggerMenuController;
1083
1096
  if (!t.hasTriggers) {
1084
1097
  let e = [];
1085
- for (let n of t.allSlotNames) e.push(Y(n));
1098
+ for (let n of t.allSlotNames) e.push(J(n));
1086
1099
  return a`${e}`;
1087
1100
  }
1088
1101
  let n = t.activeConfig, r = n?.slotName ?? null, i = t.filteredOptions.length > 0, s = t.activeTrigger !== null, c = [];
1089
- for (let e of t.allSlotNames) e !== r && c.push(Y(e));
1102
+ for (let e of t.allSlotNames) e !== r && c.push(J(e));
1090
1103
  return a`
1091
1104
  <luzmo-overlay
1092
1105
  part="trigger-menu-overlay"
@@ -1099,12 +1112,12 @@ function X(e) {
1099
1112
  @keydown=${t.handleOverlayKeydown}
1100
1113
  >
1101
1114
  ${s && r ? a`<slot name=${r}></slot>` : o}
1102
- ${s && i ? J(e, t.filteredOptions, t.highlightedIndex, n) : o}
1115
+ ${s && i ? le(e, t.filteredOptions, t.highlightedIndex, n) : o}
1103
1116
  </luzmo-overlay>
1104
1117
  ${c}
1105
1118
  `;
1106
1119
  }
1107
- function ie(e) {
1120
+ function de(e) {
1108
1121
  let t = !e.readonly && !e.pending && !e.disabled, n = e.richInputController;
1109
1122
  return a`
1110
1123
  <div
@@ -1126,8 +1139,8 @@ function ie(e) {
1126
1139
  ></div>
1127
1140
  `;
1128
1141
  }
1129
- function ae(e) {
1130
- return e.allowElements ? ie(e) : a`
1142
+ function fe(e) {
1143
+ return e.allowElements ? de(e) : a`
1131
1144
  <luzmo-text-field
1132
1145
  class="input-field"
1133
1146
  part="input"
@@ -1150,73 +1163,113 @@ function ae(e) {
1150
1163
  ></luzmo-text-field>
1151
1164
  `;
1152
1165
  }
1153
- function oe(e, t) {
1166
+ var Y = {
1167
+ pdf: v,
1168
+ csv: h,
1169
+ xls: _,
1170
+ xlsx: _,
1171
+ mp4: y,
1172
+ mov: y,
1173
+ webm: y,
1174
+ avi: y,
1175
+ mkv: y
1176
+ }, pe = new Set([
1177
+ "__proto__",
1178
+ "constructor",
1179
+ "prototype"
1180
+ ]);
1181
+ function X(e) {
1182
+ return e.trim().toLowerCase().replace(/^\./, "");
1183
+ }
1184
+ function me(e) {
1185
+ let t = e.lastIndexOf(".");
1186
+ if (!(t <= 0 || t === e.length - 1)) return X(e.slice(t + 1));
1187
+ }
1188
+ function he(e) {
1189
+ if (!e || Object.keys(e).length === 0) return Y;
1190
+ let t = { ...Y };
1191
+ for (let [n, r] of Object.entries(e)) {
1192
+ let e = X(n);
1193
+ !e || pe.has(e) || (t[e] = r);
1194
+ }
1195
+ return t;
1196
+ }
1197
+ function ge(e, t) {
1198
+ let n = me(e.name);
1199
+ return n ? t[n] ?? g : g;
1200
+ }
1201
+ function _e(e, t) {
1154
1202
  return a`
1155
- <div class="image-attachment" part="image-attachment">
1156
- <img
1157
- src=${t.previewUrl || ""}
1158
- alt=${t.file.name}
1159
- class="image-preview"
1160
- />
1203
+ <div
1204
+ class="image-attachment"
1205
+ part="image-attachment"
1206
+ title=${t.file.name}
1207
+ aria-busy=${t.loading ? "true" : o}
1208
+ >
1209
+ ${t.loading ? a`
1210
+ <luzmo-skeleton-loader
1211
+ class="attachment-skeleton"
1212
+ part="attachment-skeleton"
1213
+ ></luzmo-skeleton-loader>
1214
+ ` : a`
1215
+ <img
1216
+ src=${t.previewUrl || ""}
1217
+ alt=${t.file.name}
1218
+ class="image-preview"
1219
+ />
1220
+ `}
1161
1221
  <luzmo-clear-button
1162
1222
  class="attachment-remove"
1163
1223
  .size=${e.size}
1164
1224
  ?disabled=${e.disabled || e.pending}
1165
- label="Remove ${t.file.name}"
1225
+ label=${e.removeAttachmentLabel(t.file.name)}
1166
1226
  data-attachment-id=${t.id}
1167
- @click=${(t) => {
1168
- let n = t.currentTarget.dataset.attachmentId;
1169
- n && e.attachmentsController.removeAttachment(n);
1170
- }}
1227
+ @click=${e.handleAttachmentRemoveClick}
1171
1228
  ></luzmo-clear-button>
1172
1229
  </div>
1173
1230
  `;
1174
1231
  }
1175
- function se(e, t) {
1232
+ function ve(e, t, n) {
1176
1233
  return a`
1177
- <luzmo-tag
1234
+ <div
1178
1235
  class="file-attachment"
1179
1236
  part="file-attachment"
1180
- .size=${e.tagSize}
1181
- deletable
1182
- ?disabled=${e.disabled || e.pending}
1183
- data-attachment-id=${t.id}
1184
- @delete=${(t) => {
1185
- let n = t.target.dataset.attachmentId;
1186
- n && (t.preventDefault(), e.attachmentsController.removeAttachment(n));
1187
- }}
1237
+ title=${t.file.name}
1238
+ aria-busy=${t.loading ? "true" : o}
1188
1239
  >
1189
- ${t.file.name}
1190
- </luzmo-tag>
1240
+ ${t.loading ? a`
1241
+ <luzmo-skeleton-loader
1242
+ class="attachment-skeleton"
1243
+ part="attachment-skeleton"
1244
+ ></luzmo-skeleton-loader>
1245
+ ` : a`
1246
+ <luzmo-icon
1247
+ class="file-attachment-icon"
1248
+ .icon=${ge(t.file, n)}
1249
+ ></luzmo-icon>
1250
+ `}
1251
+ <luzmo-clear-button
1252
+ class="attachment-remove"
1253
+ .size=${e.size}
1254
+ ?disabled=${e.disabled || e.pending}
1255
+ label=${e.removeAttachmentLabel(t.file.name)}
1256
+ data-attachment-id=${t.id}
1257
+ @click=${e.handleAttachmentRemoveClick}
1258
+ ></luzmo-clear-button>
1259
+ </div>
1191
1260
  `;
1192
1261
  }
1193
- function ce(e) {
1262
+ function ye(e) {
1194
1263
  let t = e.attachmentsController;
1195
1264
  if (!t.hasAttachments) return o;
1196
- let n = t.imageAttachments, r = t.fileAttachments, i = [];
1197
- for (let t of n) i.push(oe(e, t));
1198
- let s = [];
1199
- for (let t of r) s.push(se(e, t));
1265
+ let n = he(e.fileIcons), r = t.imageAttachments, i = t.fileAttachments, s = [];
1266
+ for (let t of r) s.push(_e(e, t));
1267
+ for (let t of i) s.push(ve(e, t, n));
1200
1268
  return a`
1201
- <div class="attachments" part="attachments">
1202
- ${n.length > 0 ? a`
1203
- <div class="image-attachments" part="image-attachments">
1204
- ${i}
1205
- </div>
1206
- ` : o}
1207
- ${r.length > 0 ? a`
1208
- <luzmo-tags
1209
- class="file-attachments"
1210
- part="file-attachments"
1211
- .size=${e.tagSize}
1212
- >
1213
- ${s}
1214
- </luzmo-tags>
1215
- ` : o}
1216
- </div>
1269
+ <div class="attachments" part="attachments">${s}</div>
1217
1270
  `;
1218
1271
  }
1219
- function le(e) {
1272
+ function be(e) {
1220
1273
  return !e.allowImages && !e.allowFiles ? o : a`
1221
1274
  <input
1222
1275
  type="file"
@@ -1239,7 +1292,7 @@ function Q(e) {
1239
1292
  let t = [];
1240
1293
  return e.matches(Z) && t.push(e), t.push(...e.querySelectorAll(Z)), t;
1241
1294
  }
1242
- function ue(e, t, n) {
1295
+ function xe(e, t, n) {
1243
1296
  if (!e) return;
1244
1297
  let r = e.querySelector("slot[name=\"submit-button\"]");
1245
1298
  for (let e of r?.assignedElements() ?? []) for (let r of Q(e)) n ? (r.setAttribute("pending", ""), r.removeAttribute("disabled"), r.removeAttribute("readonly")) : t ? (r.removeAttribute("pending"), r.setAttribute("disabled", ""), r.removeAttribute("readonly")) : (r.removeAttribute("pending"), r.removeAttribute("disabled"), r.removeAttribute("readonly"));
@@ -1252,7 +1305,7 @@ function ue(e, t, n) {
1252
1305
  for (let e of i?.assignedElements() ?? []) for (let r of Q(e)) t || n ? (r.setAttribute("disabled", ""), r.removeAttribute("readonly")) : (r.removeAttribute("disabled"), r.removeAttribute("readonly"));
1253
1306
  }
1254
1307
  }
1255
- function de(e) {
1308
+ function Se(e) {
1256
1309
  let t = [], n = new Set([
1257
1310
  "luzmo-switch",
1258
1311
  "luzmo-checkbox",
@@ -1271,7 +1324,7 @@ function de(e) {
1271
1324
  }
1272
1325
  //#endregion
1273
1326
  //#region src/components/prompt-box/prompt-box.module.scss?inline
1274
- var fe = ":host{font-family:var(--luzmo-prompt-box-font-family,var(--prompt-box-font-family));font-size:var(--luzmo-prompt-box-font-size,var(--prompt-box-font-size));line-height:var(--luzmo-prompt-box-line-height,var(--prompt-box-line-height));color:var(--highcontrast-prompt-box-text-color,var(--luzmo-prompt-box-text-color,var(--prompt-box-text-color)));flex-direction:column;width:100%;display:flex}:host([disabled]){opacity:var(--luzmo-prompt-box-disabled-opacity,var(--prompt-box-disabled-opacity));pointer-events:none}.container{gap:var(--luzmo-prompt-box-gap,var(--prompt-box-gap));padding:var(--luzmo-prompt-box-vertical-padding,var(--prompt-box-vertical-padding)) var(--luzmo-prompt-box-horizontal-padding,var(--prompt-box-horizontal-padding));background-color:var(--highcontrast-prompt-box-background-color,var(--luzmo-prompt-box-background-color,var(--prompt-box-background-color)));border-radius:var(--luzmo-prompt-box-border-radius,var(--prompt-box-border-radius));border-width:var(--luzmo-prompt-box-border-width,var(--prompt-box-border-width));border-style:solid;border-color:var(--highcontrast-prompt-box-border-color,var(--luzmo-prompt-box-border-color,var(--prompt-box-border-color)));box-shadow:var(--luzmo-prompt-box-shadow,var(--prompt-box-shadow));transition:border-color var(--luzmo-prompt-box-animation-duration,var(--prompt-box-animation-duration)) ease-in-out, box-shadow var(--luzmo-prompt-box-animation-duration,var(--prompt-box-animation-duration)) ease-in-out;flex-direction:column;display:flex}.container.input-focused{border-color:var(--highcontrast-prompt-box-border-color-focus,var(--luzmo-prompt-box-border-color-focus,var(--prompt-box-border-color-focus)))}.container.drag-over{border-color:var(--luzmo-prompt-box-border-color-drag,var(--luzmo-primary,#0064fa))}:host(:focus-visible) .container,:host(.focus-visible) .container{border-color:var(--highcontrast-prompt-box-border-color-focus,var(--luzmo-prompt-box-border-color-focus,var(--prompt-box-border-color-focus)));box-shadow:var(--luzmo-prompt-box-shadow-focus,var(--prompt-box-shadow-focus))}:host(:focus){outline:none}.top-actions{align-items:center;gap:var(--luzmo-prompt-box-top-actions-gap,var(--prompt-box-top-actions-gap));opacity:var(--luzmo-prompt-box-actions-opacity,var(--prompt-box-actions-opacity,1));transition:opacity var(--luzmo-prompt-box-animation-duration,var(--prompt-box-animation-duration)) ease-in-out;flex-wrap:wrap;display:flex}.top-actions.empty{display:none}.hidden-file-input{opacity:0;pointer-events:none;width:0;height:0;position:absolute;overflow:hidden}.attachments{gap:var(--luzmo-prompt-box-attachments-gap,var(--prompt-box-attachments-gap,8px));flex-direction:column;display:flex}.image-attachments{gap:var(--luzmo-prompt-box-image-attachments-gap,var(--prompt-box-image-attachments-gap,8px));flex-wrap:wrap;display:flex}.image-attachment{width:var(--luzmo-prompt-box-image-preview-size,var(--prompt-box-image-preview-size,80px));height:var(--luzmo-prompt-box-image-preview-size,var(--prompt-box-image-preview-size,80px));border-radius:var(--luzmo-prompt-box-image-border-radius,var(--prompt-box-image-border-radius,8px));background-color:var(--luzmo-prompt-box-image-background,var(--prompt-box-image-background,#0000000d));display:inline-flex;position:relative;overflow:hidden}.image-preview{object-fit:cover;width:100%;height:100%}.attachment-remove{width:var(--luzmo-prompt-box-remove-button-size,var(--prompt-box-remove-button-size,24px));height:var(--luzmo-prompt-box-remove-button-size,var(--prompt-box-remove-button-size,24px));background-color:var(--luzmo-prompt-box-remove-button-background,var(--prompt-box-remove-button-background,#00000080));--luzmo-clear-button-icon-color:var(--luzmo-prompt-box-remove-button-icon-color,var(--prompt-box-remove-button-icon-color,#fff));border-radius:50%;position:absolute;top:4px;right:4px}.attachment-remove:hover{background-color:var(--luzmo-prompt-box-remove-button-background-hover,var(--prompt-box-remove-button-background-hover,#000000b3))}.file-attachments{--luzmo-tag-border-radius:16px;gap:var(--luzmo-prompt-box-file-attachments-gap,var(--prompt-box-file-attachments-gap,4px));flex-wrap:wrap;display:flex}.file-attachment{text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.input-wrapper{flex:1;display:flex;position:relative}.input-field{--luzmo-text-field-focus-indicator-width:0;--luzmo-text-field-border-width:0;--luzmo-text-field-width:100%;--luzmo-text-field-min-width:0;--luzmo-text-field-placeholder-text-color-default:var(--luzmo-prompt-box-placeholder-color,var(--prompt-box-placeholder-color));flex:1;width:100%;min-width:0}.actions-row{justify-content:space-between;align-items:center;gap:var(--luzmo-prompt-box-actions-gap,var(--prompt-box-actions-gap));display:flex}.bottom-actions{align-items:center;gap:var(--luzmo-prompt-box-bottom-actions-gap,var(--prompt-box-bottom-actions-gap));opacity:var(--luzmo-prompt-box-actions-opacity,var(--prompt-box-actions-opacity,1));transition:opacity var(--luzmo-prompt-box-animation-duration,var(--prompt-box-animation-duration)) ease-in-out;flex-wrap:wrap;flex:1;display:flex}.button-group{align-items:center;gap:var(--luzmo-prompt-box-button-group-gap,var(--prompt-box-button-group-gap));margin-left:auto;display:flex}.record-button,.cancel-recording-button{--luzmo-action-button-border-radius:var(--luzmo-prompt-box-record-button-border-radius,50%);--luzmo-action-button-focus-indicator-border-radius:var(--luzmo-prompt-box-record-button-focus-indicator-border-radius,50%)}.submit-button{margin-inline-start:var(--luzmo-prompt-box-submit-button-margin-inline-start,var(--prompt-box-submit-button-margin-inline-start))}.recording-ui{align-items:center;gap:var(--luzmo-prompt-box-recording-gap,var(--prompt-box-recording-gap));display:flex}.waveform{align-items:center;gap:var(--luzmo-prompt-box-waveform-gap,var(--prompt-box-waveform-gap,3px));height:var(--luzmo-prompt-box-waveform-height,var(--prompt-box-waveform-height,24px));padding:0 4px;display:flex}.waveform-bar{width:var(--luzmo-prompt-box-waveform-bar-width,var(--prompt-box-waveform-bar-width,3px));height:calc(var(--bar-height,.3) * var(--luzmo-prompt-box-waveform-height,var(--prompt-box-waveform-height,24px)));background-color:var(--luzmo-prompt-box-waveform-bar-color,var(--prompt-box-waveform-bar-color,currentColor));border-radius:var(--luzmo-prompt-box-waveform-bar-radius,var(--prompt-box-waveform-bar-radius,2px));min-height:4px;transition:height 50ms ease-out;animation:1s ease-in-out infinite waveform-pulse}.waveform-bar:first-child{animation-delay:0s}.waveform-bar:nth-child(2){animation-delay:.1s}.waveform-bar:nth-child(3){animation-delay:.2s}.waveform-bar:nth-child(4){animation-delay:.1s}.waveform-bar:nth-child(5){animation-delay:0s}@keyframes waveform-pulse{0%,to{opacity:.6}50%{opacity:1}}.recording-duration{font-family:var(--luzmo-prompt-box-recording-duration-font-family,var(--prompt-box-recording-duration-font-family,monospace));font-size:var(--luzmo-prompt-box-recording-duration-font-size,var(--prompt-box-recording-duration-font-size,14px));font-weight:var(--luzmo-prompt-box-recording-duration-font-weight,var(--prompt-box-recording-duration-font-weight,500));color:var(--luzmo-prompt-box-recording-duration-color,var(--prompt-box-recording-duration-color,currentColor));text-align:center}.rich-input{width:100%;min-width:0;min-height:1.5em;max-height:var(--luzmo-prompt-box-max-height,var(--prompt-box-max-height,200px));padding:var(--luzmo-prompt-box-rich-input-padding,var(--prompt-box-rich-input-padding,4px 0));font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;white-space:pre-wrap;word-break:break-word;background:0 0;border:none;outline:none;flex:1;overflow-y:auto}.rich-input:empty:before{content:attr(data-placeholder);color:var(--luzmo-prompt-box-placeholder-color,var(--prompt-box-placeholder-color));pointer-events:none}.rich-input[contenteditable=false]{opacity:.5;cursor:default}.drag-caret{background:var(--luzmo-primary,#0064fa);pointer-events:none;border-radius:1px;width:2px}.element-badge{align-items:center;gap:var(--luzmo-prompt-box-badge-gap,var(--prompt-box-badge-gap,6px));vertical-align:baseline;padding:var(--luzmo-prompt-box-badge-padding,var(--prompt-box-badge-padding,1px 6px));background-color:var(--luzmo-prompt-box-badge-background,var(--prompt-box-badge-background,rgba(var(--luzmo-primary-rgb,0, 100, 250), .1)));color:var(--luzmo-prompt-box-badge-color,var(--prompt-box-badge-color,var(--luzmo-primary,#0064fa)));border-radius:var(--luzmo-prompt-box-badge-border-radius,var(--prompt-box-badge-border-radius,4px));font-size:var(--luzmo-prompt-box-badge-font-size,var(--prompt-box-badge-font-size,.9em));font-weight:var(--luzmo-prompt-box-badge-font-weight,var(--prompt-box-badge-font-weight,500));cursor:default;-webkit-user-select:none;user-select:none;white-space:nowrap;max-width:var(--luzmo-prompt-box-badge-max-width,var(--prompt-box-badge-max-width,200px));margin:0 1px;line-height:1.4;display:inline-flex}.element-badge-icon{flex-shrink:0;display:inline-flex}.element-badge-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.element-badge-remove{appearance:none;font:inherit;color:inherit;width:var(--luzmo-prompt-box-badge-remove-size,var(--prompt-box-badge-remove-size,14px));height:var(--luzmo-prompt-box-badge-remove-size,var(--prompt-box-badge-remove-size,14px));font-size:var(--luzmo-prompt-box-badge-remove-font-size,var(--prompt-box-badge-remove-font-size,12px));cursor:pointer;opacity:.6;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin:0;padding:0;line-height:1;transition:opacity .1s,background-color .1s;display:inline-flex}.element-badge-remove:hover{opacity:1;background-color:var(--luzmo-prompt-box-badge-remove-hover-background,var(--prompt-box-badge-remove-hover-background,#0000001a))}.element-badge-remove:focus-visible{opacity:1;outline:2px solid var(--luzmo-primary,#0064fa);outline-offset:1px}:host([single-line]) .container{align-items:center;gap:var(--luzmo-prompt-box-single-line-gap,var(--prompt-box-single-line-gap));flex-direction:row}:host([single-line]) .top-actions{flex-wrap:nowrap;flex-shrink:0}:host([single-line]) .attachments{max-height:var(--luzmo-prompt-box-single-line-attachments-max-height,var(--prompt-box-single-line-attachments-max-height));flex-direction:row;flex-shrink:0;align-items:center;overflow:hidden}:host([single-line]) .image-attachments{flex-wrap:nowrap}:host([single-line]) .image-attachment{width:var(--luzmo-prompt-box-single-line-image-size,var(--prompt-box-single-line-image-size));height:var(--luzmo-prompt-box-single-line-image-size,var(--prompt-box-single-line-image-size))}:host([single-line]) .file-attachments{flex-wrap:nowrap}:host([single-line]) .input-wrapper{min-width:0}:host([single-line]) .input-field{--luzmo-text-area-min-block-size-quiet:auto;--luzmo-text-field-spacing-block-start:0px;--luzmo-text-field-spacing-block-end:0px}:host([single-line]) .rich-input{min-height:unset;padding:0}:host([single-line]) .actions-row{flex-shrink:0}:host([single-line]) .bottom-actions{flex-wrap:nowrap;flex:0}::slotted([slot=top-actions]),::slotted([slot=bottom-actions]){align-items:center;display:inline-flex}::slotted([slot=record-button]){display:inline-flex}::slotted([slot=submit-button]){margin-inline-start:var(--luzmo-prompt-box-submit-button-margin-inline-start,var(--prompt-box-submit-button-margin-inline-start));display:inline-flex}luzmo-overlay[part=trigger-menu-overlay]{--luzmo-overlay-min-width:0}.trigger-options{min-width:var(--luzmo-prompt-box-trigger-menu-min-width,var(--prompt-box-trigger-menu-min-width,250px));max-width:var(--luzmo-prompt-box-trigger-menu-max-width,var(--prompt-box-trigger-menu-max-width,400px));max-height:var(--luzmo-prompt-box-trigger-menu-max-height,var(--prompt-box-trigger-menu-max-height,300px));flex-direction:column;display:flex;overflow-y:auto}.trigger-options::-webkit-scrollbar{width:var(--luzmo-prompt-box-trigger-menu-scrollbar-width,var(--prompt-box-trigger-menu-scrollbar-width))}.trigger-options::-webkit-scrollbar-track{background:var(--luzmo-prompt-box-trigger-menu-scrollbar-track-background,var(--prompt-box-trigger-menu-scrollbar-track-background));border-radius:var(--luzmo-prompt-box-trigger-menu-scrollbar-track-border-radius,var(--prompt-box-trigger-menu-scrollbar-track-border-radius))}.trigger-options::-webkit-scrollbar-thumb{background:var(--luzmo-prompt-box-trigger-menu-scrollbar-thumb-background,var(--prompt-box-trigger-menu-scrollbar-thumb-background));border-radius:var(--luzmo-prompt-box-trigger-menu-scrollbar-thumb-border-radius,var(--prompt-box-trigger-menu-scrollbar-thumb-border-radius))}.trigger-options::-webkit-scrollbar-thumb:hover{background:var(--luzmo-prompt-box-trigger-menu-scrollbar-thumb-hover-background,var(--prompt-box-trigger-menu-scrollbar-thumb-hover-background))}.trigger-options{scrollbar-width:var(--luzmo-scrollbar-width,thin);scrollbar-color:var(--luzmo-prompt-box-trigger-menu-scrollbar-thumb-background,var(--prompt-box-trigger-menu-scrollbar-thumb-background)) var(--luzmo-prompt-box-trigger-menu-scrollbar-track-background,var(--prompt-box-trigger-menu-scrollbar-track-background));background-color:var(--luzmo-prompt-box-trigger-menu-background,var(--prompt-box-trigger-menu-background,var(--luzmo-background-color,#fff)));border:1px solid var(--luzmo-prompt-box-trigger-menu-border-color,var(--prompt-box-trigger-menu-border-color,var(--luzmo-border-color,#0000001a)));border-radius:var(--luzmo-prompt-box-trigger-menu-border-radius,var(--prompt-box-trigger-menu-border-radius,var(--luzmo-border-radius-100,8px)));box-shadow:0 2px 8px var(--luzmo-prompt-box-trigger-menu-shadow-color,var(--prompt-box-trigger-menu-shadow-color,#0000001f))}.trigger-option{align-items:center;gap:var(--luzmo-prompt-box-trigger-option-gap,var(--prompt-box-trigger-option-gap,10px));min-block-size:var(--luzmo-prompt-box-trigger-option-min-height,var(--prompt-box-trigger-option-min-height,var(--luzmo-component-height,32px)));padding-block:var(--luzmo-prompt-box-trigger-option-padding-block,var(--prompt-box-trigger-option-padding-block,4px));padding-inline:var(--luzmo-prompt-box-trigger-option-padding-inline,var(--prompt-box-trigger-option-padding-inline,10px));cursor:pointer;box-sizing:border-box;scroll-margin-block:var(--luzmo-prompt-box-trigger-option-min-height,var(--prompt-box-trigger-option-min-height,var(--luzmo-component-height,32px)));transition:background-color .1s;display:flex}.trigger-option.has-description{padding-block:var(--luzmo-prompt-box-trigger-option-description-padding-block,var(--prompt-box-trigger-option-description-padding-block,4px));min-block-size:auto}.trigger-option.hovered,.trigger-option.highlighted{background-color:var(--luzmo-prompt-box-trigger-option-background-hover,var(--prompt-box-trigger-option-background-hover,var(--luzmo-background-color-hover,#0000000f)))}.trigger-option-icon{width:var(--luzmo-prompt-box-trigger-option-icon-width,var(--prompt-box-trigger-option-icon-width,20px));color:var(--luzmo-prompt-box-trigger-option-icon-color,var(--prompt-box-trigger-option-icon-color,var(--luzmo-font-color,inherit)));font-size:var(--luzmo-prompt-box-trigger-option-icon-size,var(--prompt-box-trigger-option-icon-size,var(--luzmo-font-size,14px)));flex-shrink:0;justify-content:center;align-items:center;display:flex}.trigger-option-content{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.trigger-option-label{font-size:var(--luzmo-prompt-box-trigger-option-font-size,var(--prompt-box-trigger-option-font-size,var(--luzmo-font-size,14px)));line-height:var(--luzmo-prompt-box-trigger-option-line-height,var(--prompt-box-trigger-option-line-height,var(--luzmo-line-height,1.4)));color:var(--luzmo-prompt-box-trigger-option-color,var(--prompt-box-trigger-option-color,var(--luzmo-font-color,#333)));white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.trigger-option-description{font-size:var(--luzmo-prompt-box-trigger-option-description-font-size,var(--prompt-box-trigger-option-description-font-size,var(--luzmo-font-size-xs,12px)));line-height:var(--luzmo-prompt-box-trigger-option-description-line-height,var(--prompt-box-trigger-option-description-line-height,var(--luzmo-line-height,1.4)));color:var(--luzmo-prompt-box-trigger-option-description-color,var(--prompt-box-trigger-option-description-color,var(--luzmo-font-color,#6e6e6e)));white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.trigger-option-enter-icon{color:var(--luzmo-prompt-box-trigger-option-enter-icon-color,var(--prompt-box-trigger-option-enter-icon-color,var(--luzmo-font-color-dimmed,#0006)));flex-shrink:0;justify-content:center;align-items:center;margin-inline-start:auto;display:flex}.trigger-option-highlight{background-color:var(--luzmo-prompt-box-trigger-option-highlight-background,var(--prompt-box-trigger-option-highlight-background,rgba(var(--luzmo-primary-rgb,0, 100, 250), .12)));color:inherit;border-radius:2px;padding:0 1px}.trigger-option-header{align-items:center;gap:var(--luzmo-prompt-box-trigger-option-header-gap,var(--prompt-box-trigger-option-header-gap,10px));min-block-size:var(--luzmo-prompt-box-trigger-option-min-height,var(--prompt-box-trigger-option-min-height,var(--luzmo-component-height,32px)));padding-block:var(--luzmo-prompt-box-trigger-option-header-padding-block,var(--prompt-box-trigger-option-header-padding-block,4px));padding-inline:var(--luzmo-prompt-box-trigger-option-header-padding-inline,var(--prompt-box-trigger-option-header-padding-inline,10px));background-color:var(--luzmo-prompt-box-trigger-option-header-background,var(--prompt-box-trigger-option-header-background));border-block-start:1px solid var(--luzmo-prompt-box-trigger-option-header-border-color,var(--prompt-box-trigger-option-header-border-color,var(--luzmo-border-color,#0000001f)));border-block-end:1px solid var(--luzmo-prompt-box-trigger-option-header-border-color,var(--prompt-box-trigger-option-header-border-color,var(--luzmo-border-color,#0000001f)));box-sizing:border-box;-webkit-user-select:none;user-select:none;display:flex}.trigger-options>.trigger-option-header:first-child{border-block-start:none}.trigger-option-header-icon{width:var(--luzmo-prompt-box-trigger-option-icon-width,var(--prompt-box-trigger-option-icon-width,20px));color:var(--luzmo-prompt-box-trigger-option-header-icon-color,var(--prompt-box-trigger-option-header-icon-color,var(--luzmo-font-color,#333)));flex-shrink:0;justify-content:center;align-items:center;display:flex}.trigger-option-header-label{font-size:var(--luzmo-prompt-box-trigger-option-header-font-size,var(--prompt-box-trigger-option-header-font-size,var(--luzmo-font-size,14px)));font-weight:var(--luzmo-prompt-box-trigger-option-header-font-weight,var(--prompt-box-trigger-option-header-font-weight,normal));line-height:var(--luzmo-prompt-box-trigger-option-header-line-height,var(--prompt-box-trigger-option-header-line-height,var(--luzmo-line-height,1.4)));color:var(--luzmo-prompt-box-trigger-option-header-color,var(--prompt-box-trigger-option-header-color,var(--luzmo-font-color,#333)));white-space:nowrap;text-overflow:ellipsis;overflow:hidden}luzmo-overlay[part=trigger-menu-overlay] ::slotted(*){min-width:var(--luzmo-prompt-box-trigger-menu-min-width,var(--prompt-box-trigger-menu-min-width,250px));max-height:var(--luzmo-prompt-box-trigger-menu-max-height,var(--prompt-box-trigger-menu-max-height,300px));overflow-y:auto;visibility:visible!important;opacity:1!important;pointer-events:auto!important;position:relative!important}@media (forced-colors:active){:host{--highcontrast-prompt-box-background-color:Canvas;--highcontrast-prompt-box-border-color:CanvasText;--highcontrast-prompt-box-border-color-focus:Highlight;--highcontrast-prompt-box-text-color:CanvasText}}:host{--prompt-box-font-family:var(--luzmo-font-family);--prompt-box-font-size:var(--luzmo-font-size);--prompt-box-line-height:1.5;--prompt-box-text-color:var(--luzmo-font-color);--prompt-box-background-color:var(--luzmo-background-color);--prompt-box-border-radius:var(--luzmo-border-radius-xl);--prompt-box-border-width:var(--luzmo-border-width);--prompt-box-border-color:var(--luzmo-border-color);--prompt-box-border-color-focus:var(--luzmo-primary);--prompt-box-shadow:0 2px 8px rgba(var(--luzmo-border-color-rgb), .08);--prompt-box-shadow-focus:0 2px 12px rgba(var(--luzmo-primary-rgb), .15);--prompt-box-gap:var(--luzmo-spacing-5);--prompt-box-recording-gap:calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1));--prompt-box-vertical-padding:var(--luzmo-spacing-4);--prompt-box-horizontal-padding:var(--luzmo-spacing-5);--prompt-box-actions-gap:var(--luzmo-spacing-3);--prompt-box-top-actions-gap:var(--luzmo-spacing-2);--prompt-box-bottom-actions-gap:var(--luzmo-spacing-2);--prompt-box-button-group-gap:var(--luzmo-spacing-2);--prompt-box-submit-button-margin-inline-start:var(--luzmo-spacing-3);--prompt-box-max-height:200px;--prompt-box-rich-input-padding:4px 0;--prompt-box-placeholder-color:var(--luzmo-font-color-extra-dimmed);--prompt-box-animation-duration:var(--luzmo-animation-duration,.15s);--prompt-box-disabled-opacity:.5;--prompt-box-attachments-gap:var(--luzmo-spacing-1);--prompt-box-image-attachments-gap:var(--luzmo-spacing-2);--prompt-box-file-attachments-gap:var(--luzmo-spacing-2);--prompt-box-image-preview-size:64px;--prompt-box-image-border-radius:var(--luzmo-border-radius);--prompt-box-image-background:#0000000d;--prompt-box-remove-button-size:20px;--prompt-box-remove-button-background:#00000080;--prompt-box-remove-button-background-hover:#000000b3;--prompt-box-remove-button-icon-color:#fff;--prompt-box-badge-gap:6px;--prompt-box-badge-padding:1px 6px;--prompt-box-badge-background:rgba(var(--luzmo-primary-rgb,0, 100, 250), .1);--prompt-box-badge-color:var(--luzmo-primary,#0064fa);--prompt-box-badge-border-radius:4px;--prompt-box-badge-font-size:.9em;--prompt-box-badge-font-weight:500;--prompt-box-badge-max-width:200px;--prompt-box-badge-remove-size:14px;--prompt-box-badge-remove-font-size:12px;--prompt-box-badge-remove-hover-background:#0000001a;--prompt-box-waveform-gap:3px;--prompt-box-waveform-height:24px;--prompt-box-waveform-bar-width:3px;--prompt-box-waveform-bar-color:currentColor;--prompt-box-waveform-bar-radius:2px;--prompt-box-recording-duration-font-family:monospace;--prompt-box-recording-duration-font-size:14px;--prompt-box-recording-duration-font-weight:500;--prompt-box-recording-duration-color:currentColor;--prompt-box-trigger-menu-min-width:250px;--prompt-box-trigger-menu-max-width:300px;--prompt-box-trigger-menu-max-height:300px;--prompt-box-trigger-menu-background:var(--luzmo-background-color,#fff);--prompt-box-trigger-menu-border-color:var(--luzmo-border-color,#0000001a);--prompt-box-trigger-menu-border-radius:var(--luzmo-border-radius-100,8px);--prompt-box-trigger-menu-shadow-color:#0000001f;--prompt-box-trigger-menu-scrollbar-width:var(--luzmo-scrollbar-size);--prompt-box-trigger-menu-scrollbar-track-background:var(--luzmo-scrollbar-track-background);--prompt-box-trigger-menu-scrollbar-track-border-radius:var(--luzmo-scrollbar-track-border-radius);--prompt-box-trigger-menu-scrollbar-thumb-background:var(--luzmo-scrollbar-thumb-background);--prompt-box-trigger-menu-scrollbar-thumb-border-radius:var(--luzmo-scrollbar-thumb-border-radius);--prompt-box-trigger-menu-scrollbar-thumb-hover-background:var(--luzmo-scrollbar-thumb-hover-background);--prompt-box-single-line-gap:var(--luzmo-spacing-3);--prompt-box-single-line-attachments-max-height:32px;--prompt-box-single-line-image-size:28px;--prompt-box-trigger-option-gap:10px;--prompt-box-trigger-option-min-height:var(--luzmo-component-height,32px);--prompt-box-trigger-option-padding-block:4px;--prompt-box-trigger-option-padding-inline:10px;--prompt-box-trigger-option-description-padding-block:4px;--prompt-box-trigger-option-background-hover:var(--luzmo-background-color-highlight,#f5f5f5);--prompt-box-trigger-option-icon-color:var(--luzmo-font-color,inherit);--prompt-box-trigger-option-icon-width:20px;--prompt-box-trigger-option-icon-size:var(--luzmo-font-size,14px);--prompt-box-trigger-option-font-size:var(--luzmo-font-size,14px);--prompt-box-trigger-option-line-height:var(--luzmo-line-height,1.4);--prompt-box-trigger-option-color:var(--luzmo-font-color,#333);--prompt-box-trigger-option-description-font-size:var(--luzmo-font-size-xs,12px);--prompt-box-trigger-option-description-line-height:var(--luzmo-line-height,1.4);--prompt-box-trigger-option-description-color:var(--luzmo-font-color,#6e6e6e);--prompt-box-trigger-option-enter-icon-color:var(--prompt-box-trigger-option-icon-color,var(--luzmo-font-color,inherit));--prompt-box-trigger-option-highlight-background:rgba(var(--luzmo-primary-rgb,0, 100, 250), .12);--prompt-box-trigger-option-header-gap:10px;--prompt-box-trigger-option-header-padding-block:4px;--prompt-box-trigger-option-header-padding-inline:10px;--prompt-box-trigger-option-header-background:var(--luzmo-background-color-highlight,#f5f5f5);--prompt-box-trigger-option-header-border-color:var(--luzmo-border-color,#0000001f);--prompt-box-trigger-option-header-icon-color:var(--luzmo-font-color,#333);--prompt-box-trigger-option-header-font-size:var(--luzmo-font-size,14px);--prompt-box-trigger-option-header-font-weight:normal;--prompt-box-trigger-option-header-line-height:var(--luzmo-line-height,1.4);--prompt-box-trigger-option-header-color:var(--luzmo-font-color,#333)}:host([size=xs]){--prompt-box-font-size:var(--luzmo-font-size-xs);--prompt-box-border-radius:var(--luzmo-border-radius);--prompt-box-vertical-padding:var(--luzmo-spacing-2);--prompt-box-horizontal-padding:var(--luzmo-spacing-3);--prompt-box-gap:var(--luzmo-spacing-3);--prompt-box-attachments-gap:0;--prompt-box-image-attachments-gap:var(--luzmo-spacing-1);--prompt-box-recording-gap:var(--luzmo-spacing-3);--prompt-box-max-height:120px;--prompt-box-image-preview-size:40px;--prompt-box-remove-button-size:16px;--prompt-box-badge-font-size:.8em;--prompt-box-badge-padding:0px 3px;--prompt-box-badge-remove-size:10px;--prompt-box-badge-remove-font-size:9px}:host([size=s]){--prompt-box-font-size:var(--luzmo-font-size-s);--prompt-box-border-radius:var(--luzmo-border-radius-l);--prompt-box-vertical-padding:var(--luzmo-spacing-3);--prompt-box-horizontal-padding:var(--luzmo-spacing-4);--prompt-box-gap:var(--luzmo-spacing-4);--prompt-box-attachments-gap:0;--prompt-box-image-attachments-gap:var(--luzmo-spacing-1);--prompt-box-recording-gap:calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1));--prompt-box-max-height:150px;--prompt-box-image-preview-size:48px;--prompt-box-remove-button-size:18px;--prompt-box-badge-font-size:.85em;--prompt-box-badge-padding:0px 4px;--prompt-box-badge-remove-size:12px;--prompt-box-badge-remove-font-size:10px}:host([size=l]){--prompt-box-font-size:var(--luzmo-font-size-l);--prompt-box-border-radius:var(--luzmo-border-radius-xl);--prompt-box-vertical-padding:var(--luzmo-spacing-5);--prompt-box-horizontal-padding:calc(var(--luzmo-spacing-5) + var(--luzmo-spacing-1));--prompt-box-gap:var(--luzmo-spacing-4);--prompt-box-attachments-gap:var(--luzmo-spacing-1);--prompt-box-image-attachments-gap:calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--prompt-box-recording-gap:calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--prompt-box-max-height:250px;--prompt-box-image-preview-size:72px;--prompt-box-remove-button-size:24px;--prompt-box-badge-font-size:.9em;--prompt-box-badge-padding:2px 8px;--prompt-box-badge-remove-size:16px;--prompt-box-badge-remove-font-size:13px}:host([size=xl]){--prompt-box-font-size:var(--luzmo-font-size-xl);--prompt-box-border-radius:var(--luzmo-border-radius-xl);--prompt-box-vertical-padding:calc(var(--luzmo-spacing-5) + var(--luzmo-spacing-1));--prompt-box-horizontal-padding:calc(var(--luzmo-spacing-5) + var(--luzmo-spacing-2));--prompt-box-gap:var(--luzmo-spacing-5);--prompt-box-attachments-gap:var(--luzmo-spacing-2);--prompt-box-image-attachments-gap:var(--luzmo-spacing-3);--prompt-box-max-height:300px;--prompt-box-image-preview-size:96px;--prompt-box-remove-button-size:28px;--prompt-box-badge-font-size:.9em;--prompt-box-badge-padding:2px 10px;--prompt-box-badge-remove-size:18px;--prompt-box-badge-remove-font-size:14px}:host([pending]){--prompt-box-actions-opacity:.75}", $ = class extends n(e, {
1327
+ var Ce = ":host{font-family:var(--luzmo-prompt-box-font-family,var(--prompt-box-font-family));font-size:var(--luzmo-prompt-box-font-size,var(--prompt-box-font-size));line-height:var(--luzmo-prompt-box-line-height,var(--prompt-box-line-height));color:var(--highcontrast-prompt-box-text-color,var(--luzmo-prompt-box-text-color,var(--prompt-box-text-color)));flex-direction:column;width:100%;display:flex}:host([disabled]){opacity:var(--luzmo-prompt-box-disabled-opacity,var(--prompt-box-disabled-opacity));pointer-events:none}.container{gap:var(--luzmo-prompt-box-gap,var(--prompt-box-gap));padding:var(--luzmo-prompt-box-vertical-padding,var(--prompt-box-vertical-padding)) var(--luzmo-prompt-box-horizontal-padding,var(--prompt-box-horizontal-padding));background-color:var(--highcontrast-prompt-box-background-color,var(--luzmo-prompt-box-background-color,var(--prompt-box-background-color)));border-radius:var(--luzmo-prompt-box-border-radius,var(--prompt-box-border-radius));border-width:var(--luzmo-prompt-box-border-width,var(--prompt-box-border-width));border-style:solid;border-color:var(--highcontrast-prompt-box-border-color,var(--luzmo-prompt-box-border-color,var(--prompt-box-border-color)));box-shadow:var(--luzmo-prompt-box-shadow,var(--prompt-box-shadow));transition:border-color var(--luzmo-prompt-box-animation-duration,var(--prompt-box-animation-duration)) ease-in-out, box-shadow var(--luzmo-prompt-box-animation-duration,var(--prompt-box-animation-duration)) ease-in-out;flex-direction:column;display:flex}.container.input-focused{border-color:var(--highcontrast-prompt-box-border-color-focus,var(--luzmo-prompt-box-border-color-focus,var(--prompt-box-border-color-focus)))}.container.drag-over{border-color:var(--luzmo-prompt-box-border-color-drag,var(--luzmo-primary,#0064fa))}:host(:focus-visible) .container,:host(.focus-visible) .container{border-color:var(--highcontrast-prompt-box-border-color-focus,var(--luzmo-prompt-box-border-color-focus,var(--prompt-box-border-color-focus)));box-shadow:var(--luzmo-prompt-box-shadow-focus,var(--prompt-box-shadow-focus))}:host(:focus){outline:none}.top-actions{align-items:center;gap:var(--luzmo-prompt-box-top-actions-gap,var(--prompt-box-top-actions-gap));opacity:var(--luzmo-prompt-box-actions-opacity,var(--prompt-box-actions-opacity,1));transition:opacity var(--luzmo-prompt-box-animation-duration,var(--prompt-box-animation-duration)) ease-in-out;flex-wrap:wrap;display:flex}.top-actions.empty{display:none}.hidden-file-input{opacity:0;pointer-events:none;width:0;height:0;position:absolute;overflow:hidden}.attachments{align-items:center;gap:var(--luzmo-prompt-box-attachments-gap,var(--prompt-box-attachments-gap,8px));flex-flow:row;display:flex;overflow:auto hidden}.image-attachment,.file-attachment{width:var(--luzmo-prompt-box-image-preview-size,var(--prompt-box-image-preview-size,80px));height:var(--luzmo-prompt-box-image-preview-size,var(--prompt-box-image-preview-size,80px));border-radius:var(--luzmo-prompt-box-image-border-radius,var(--prompt-box-image-border-radius,8px));background-color:var(--luzmo-prompt-box-image-background,var(--prompt-box-image-background,#0000000d));flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative;overflow:hidden}.image-preview{object-fit:cover;width:100%;height:100%}.file-attachment-icon{--luzmo-icon-size:var(--luzmo-prompt-box-file-icon-size,var(--prompt-box-file-icon-size,28px));color:var(--luzmo-prompt-box-file-icon-color,var(--prompt-box-file-icon-color,var(--luzmo-font-color-extra-dimmed)))}.attachment-skeleton{--luzmo-skeleton-loader-border-radius:var(--luzmo-prompt-box-image-border-radius,var(--prompt-box-image-border-radius,8px));block-size:100%;inline-size:100%}.attachment-remove{width:var(--luzmo-prompt-box-remove-button-size,var(--prompt-box-remove-button-size,24px));height:var(--luzmo-prompt-box-remove-button-size,var(--prompt-box-remove-button-size,24px));background-color:var(--luzmo-prompt-box-remove-button-background,var(--prompt-box-remove-button-background,#00000080));--luzmo-clear-button-icon-color:var(--luzmo-prompt-box-remove-button-icon-color,var(--prompt-box-remove-button-icon-color,#fff));border-radius:50%;position:absolute;top:4px;right:4px}.attachment-remove:hover{background-color:var(--luzmo-prompt-box-remove-button-background-hover,var(--prompt-box-remove-button-background-hover,#000000b3))}.input-wrapper{flex:1;display:flex;position:relative}.input-field{--luzmo-text-field-focus-indicator-width:0;--luzmo-text-field-border-width:0;--luzmo-text-field-width:100%;--luzmo-text-field-min-width:0;--luzmo-text-field-placeholder-text-color-default:var(--luzmo-prompt-box-placeholder-color,var(--prompt-box-placeholder-color));flex:1;width:100%;min-width:0}.actions-row{justify-content:space-between;align-items:center;gap:var(--luzmo-prompt-box-actions-gap,var(--prompt-box-actions-gap));display:flex}.bottom-actions{align-items:center;gap:var(--luzmo-prompt-box-bottom-actions-gap,var(--prompt-box-bottom-actions-gap));opacity:var(--luzmo-prompt-box-actions-opacity,var(--prompt-box-actions-opacity,1));transition:opacity var(--luzmo-prompt-box-animation-duration,var(--prompt-box-animation-duration)) ease-in-out;flex-wrap:wrap;flex:1;display:flex}.button-group{align-items:center;gap:var(--luzmo-prompt-box-button-group-gap,var(--prompt-box-button-group-gap));margin-left:auto;display:flex}.record-button,.cancel-recording-button{--luzmo-action-button-border-radius:var(--luzmo-prompt-box-record-button-border-radius,50%);--luzmo-action-button-focus-indicator-border-radius:var(--luzmo-prompt-box-record-button-focus-indicator-border-radius,50%)}.submit-button{margin-inline-start:var(--luzmo-prompt-box-submit-button-margin-inline-start,var(--prompt-box-submit-button-margin-inline-start))}.recording-ui{align-items:center;gap:var(--luzmo-prompt-box-recording-gap,var(--prompt-box-recording-gap));display:flex}.waveform{align-items:center;gap:var(--luzmo-prompt-box-waveform-gap,var(--prompt-box-waveform-gap,3px));height:var(--luzmo-prompt-box-waveform-height,var(--prompt-box-waveform-height,24px));padding:0 4px;display:flex}.waveform-bar{width:var(--luzmo-prompt-box-waveform-bar-width,var(--prompt-box-waveform-bar-width,3px));height:calc(var(--bar-height,.3) * var(--luzmo-prompt-box-waveform-height,var(--prompt-box-waveform-height,24px)));background-color:var(--luzmo-prompt-box-waveform-bar-color,var(--prompt-box-waveform-bar-color,currentColor));border-radius:var(--luzmo-prompt-box-waveform-bar-radius,var(--prompt-box-waveform-bar-radius,2px));min-height:4px;transition:height 50ms ease-out;animation:1s ease-in-out infinite waveform-pulse}.waveform-bar:first-child{animation-delay:0s}.waveform-bar:nth-child(2){animation-delay:.1s}.waveform-bar:nth-child(3){animation-delay:.2s}.waveform-bar:nth-child(4){animation-delay:.1s}.waveform-bar:nth-child(5){animation-delay:0s}@keyframes waveform-pulse{0%,to{opacity:.6}50%{opacity:1}}.recording-duration{font-family:var(--luzmo-prompt-box-recording-duration-font-family,var(--prompt-box-recording-duration-font-family,monospace));font-size:var(--luzmo-prompt-box-recording-duration-font-size,var(--prompt-box-recording-duration-font-size,14px));font-weight:var(--luzmo-prompt-box-recording-duration-font-weight,var(--prompt-box-recording-duration-font-weight,500));color:var(--luzmo-prompt-box-recording-duration-color,var(--prompt-box-recording-duration-color,currentColor));text-align:center}.rich-input{width:100%;min-width:0;min-height:1.5em;max-height:var(--luzmo-prompt-box-max-height,var(--prompt-box-max-height,200px));padding:var(--luzmo-prompt-box-rich-input-padding,var(--prompt-box-rich-input-padding,4px 0));font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;white-space:pre-wrap;word-break:break-word;background:0 0;border:none;outline:none;flex:1;overflow-y:auto}.rich-input:empty:before{content:attr(data-placeholder);color:var(--luzmo-prompt-box-placeholder-color,var(--prompt-box-placeholder-color));pointer-events:none}.rich-input[contenteditable=false]{opacity:.5;cursor:default}.drag-caret{background:var(--luzmo-primary,#0064fa);pointer-events:none;border-radius:1px;width:2px}.element-badge{align-items:center;gap:var(--luzmo-prompt-box-badge-gap,var(--prompt-box-badge-gap,6px));vertical-align:baseline;padding:var(--luzmo-prompt-box-badge-padding,var(--prompt-box-badge-padding,1px 6px));background-color:var(--luzmo-prompt-box-badge-background,var(--prompt-box-badge-background,rgba(var(--luzmo-primary-rgb,0, 100, 250), .1)));color:var(--luzmo-prompt-box-badge-color,var(--prompt-box-badge-color,var(--luzmo-primary,#0064fa)));border-radius:var(--luzmo-prompt-box-badge-border-radius,var(--prompt-box-badge-border-radius,4px));font-size:var(--luzmo-prompt-box-badge-font-size,var(--prompt-box-badge-font-size,.9em));font-weight:var(--luzmo-prompt-box-badge-font-weight,var(--prompt-box-badge-font-weight,500));cursor:default;-webkit-user-select:none;user-select:none;white-space:nowrap;max-width:var(--luzmo-prompt-box-badge-max-width,var(--prompt-box-badge-max-width,200px));margin:0 1px;line-height:1.4;display:inline-flex}.element-badge-icon{flex-shrink:0;display:inline-flex}.element-badge-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.element-badge-remove{appearance:none;font:inherit;color:inherit;width:var(--luzmo-prompt-box-badge-remove-size,var(--prompt-box-badge-remove-size,14px));height:var(--luzmo-prompt-box-badge-remove-size,var(--prompt-box-badge-remove-size,14px));font-size:var(--luzmo-prompt-box-badge-remove-font-size,var(--prompt-box-badge-remove-font-size,12px));cursor:pointer;opacity:.6;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin:0;padding:0;line-height:1;transition:opacity .1s,background-color .1s;display:inline-flex}.element-badge-remove:hover{opacity:1;background-color:var(--luzmo-prompt-box-badge-remove-hover-background,var(--prompt-box-badge-remove-hover-background,#0000001a))}.element-badge-remove:focus-visible{opacity:1;outline:2px solid var(--luzmo-primary,#0064fa);outline-offset:1px}:host([single-line]) .container{align-items:center;gap:var(--luzmo-prompt-box-single-line-gap,var(--prompt-box-single-line-gap));flex-direction:row}:host([single-line]) .top-actions{flex-wrap:nowrap;flex-shrink:0}:host([single-line]) .attachments{max-height:var(--luzmo-prompt-box-single-line-attachments-max-height,var(--prompt-box-single-line-attachments-max-height));flex-direction:row;flex-shrink:0;align-items:center;overflow:auto hidden}:host([single-line]) .image-attachment,:host([single-line]) .file-attachment{width:var(--luzmo-prompt-box-single-line-image-size,var(--prompt-box-single-line-image-size));height:var(--luzmo-prompt-box-single-line-image-size,var(--prompt-box-single-line-image-size))}:host([single-line]) .file-attachment-icon{--luzmo-icon-size:var(--luzmo-prompt-box-single-line-file-icon-size,var(--prompt-box-single-line-file-icon-size,14px))}:host([single-line]) .input-wrapper{min-width:0}:host([single-line]) .input-field{--luzmo-text-area-min-block-size-quiet:auto;--luzmo-text-field-spacing-block-start:0px;--luzmo-text-field-spacing-block-end:0px}:host([single-line]) .rich-input{min-height:unset;padding:0}:host([single-line]) .actions-row{flex-shrink:0}:host([single-line]) .bottom-actions{flex-wrap:nowrap;flex:0}::slotted([slot=top-actions]),::slotted([slot=bottom-actions]){align-items:center;display:inline-flex}::slotted([slot=record-button]){display:inline-flex}::slotted([slot=submit-button]){margin-inline-start:var(--luzmo-prompt-box-submit-button-margin-inline-start,var(--prompt-box-submit-button-margin-inline-start));display:inline-flex}luzmo-overlay[part=trigger-menu-overlay]{--luzmo-overlay-min-width:0}.trigger-options{min-width:var(--luzmo-prompt-box-trigger-menu-min-width,var(--prompt-box-trigger-menu-min-width,250px));max-width:var(--luzmo-prompt-box-trigger-menu-max-width,var(--prompt-box-trigger-menu-max-width,400px));max-height:var(--luzmo-prompt-box-trigger-menu-max-height,var(--prompt-box-trigger-menu-max-height,300px));flex-direction:column;display:flex;overflow-y:auto}.trigger-options::-webkit-scrollbar{width:var(--luzmo-prompt-box-trigger-menu-scrollbar-width,var(--prompt-box-trigger-menu-scrollbar-width))}.trigger-options::-webkit-scrollbar-track{background:var(--luzmo-prompt-box-trigger-menu-scrollbar-track-background,var(--prompt-box-trigger-menu-scrollbar-track-background));border-radius:var(--luzmo-prompt-box-trigger-menu-scrollbar-track-border-radius,var(--prompt-box-trigger-menu-scrollbar-track-border-radius))}.trigger-options::-webkit-scrollbar-thumb{background:var(--luzmo-prompt-box-trigger-menu-scrollbar-thumb-background,var(--prompt-box-trigger-menu-scrollbar-thumb-background));border-radius:var(--luzmo-prompt-box-trigger-menu-scrollbar-thumb-border-radius,var(--prompt-box-trigger-menu-scrollbar-thumb-border-radius))}.trigger-options::-webkit-scrollbar-thumb:hover{background:var(--luzmo-prompt-box-trigger-menu-scrollbar-thumb-hover-background,var(--prompt-box-trigger-menu-scrollbar-thumb-hover-background))}.trigger-options{scrollbar-width:var(--luzmo-scrollbar-width,thin);scrollbar-color:var(--luzmo-prompt-box-trigger-menu-scrollbar-thumb-background,var(--prompt-box-trigger-menu-scrollbar-thumb-background)) var(--luzmo-prompt-box-trigger-menu-scrollbar-track-background,var(--prompt-box-trigger-menu-scrollbar-track-background));background-color:var(--luzmo-prompt-box-trigger-menu-background,var(--prompt-box-trigger-menu-background,var(--luzmo-background-color,#fff)));border:1px solid var(--luzmo-prompt-box-trigger-menu-border-color,var(--prompt-box-trigger-menu-border-color,var(--luzmo-border-color,#0000001a)));border-radius:var(--luzmo-prompt-box-trigger-menu-border-radius,var(--prompt-box-trigger-menu-border-radius,var(--luzmo-border-radius-100,8px)));box-shadow:0 2px 8px var(--luzmo-prompt-box-trigger-menu-shadow-color,var(--prompt-box-trigger-menu-shadow-color,#0000001f))}.trigger-option{align-items:center;gap:var(--luzmo-prompt-box-trigger-option-gap,var(--prompt-box-trigger-option-gap,10px));min-block-size:var(--luzmo-prompt-box-trigger-option-min-height,var(--prompt-box-trigger-option-min-height,var(--luzmo-component-height,32px)));padding-block:var(--luzmo-prompt-box-trigger-option-padding-block,var(--prompt-box-trigger-option-padding-block,4px));padding-inline:var(--luzmo-prompt-box-trigger-option-padding-inline,var(--prompt-box-trigger-option-padding-inline,10px));cursor:pointer;box-sizing:border-box;scroll-margin-block:var(--luzmo-prompt-box-trigger-option-min-height,var(--prompt-box-trigger-option-min-height,var(--luzmo-component-height,32px)));transition:background-color .1s;display:flex}.trigger-option.has-description{padding-block:var(--luzmo-prompt-box-trigger-option-description-padding-block,var(--prompt-box-trigger-option-description-padding-block,4px));min-block-size:auto}.trigger-option.hovered,.trigger-option.highlighted{background-color:var(--luzmo-prompt-box-trigger-option-background-hover,var(--prompt-box-trigger-option-background-hover,var(--luzmo-background-color-hover,#0000000f)))}.trigger-option-icon{width:var(--luzmo-prompt-box-trigger-option-icon-width,var(--prompt-box-trigger-option-icon-width,20px));color:var(--luzmo-prompt-box-trigger-option-icon-color,var(--prompt-box-trigger-option-icon-color,var(--luzmo-font-color,inherit)));font-size:var(--luzmo-prompt-box-trigger-option-icon-size,var(--prompt-box-trigger-option-icon-size,var(--luzmo-font-size,14px)));flex-shrink:0;justify-content:center;align-items:center;display:flex}.trigger-option-content{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.trigger-option-label{font-size:var(--luzmo-prompt-box-trigger-option-font-size,var(--prompt-box-trigger-option-font-size,var(--luzmo-font-size,14px)));line-height:var(--luzmo-prompt-box-trigger-option-line-height,var(--prompt-box-trigger-option-line-height,var(--luzmo-line-height,1.4)));color:var(--luzmo-prompt-box-trigger-option-color,var(--prompt-box-trigger-option-color,var(--luzmo-font-color,#333)));white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.trigger-option-description{font-size:var(--luzmo-prompt-box-trigger-option-description-font-size,var(--prompt-box-trigger-option-description-font-size,var(--luzmo-font-size-xs,12px)));line-height:var(--luzmo-prompt-box-trigger-option-description-line-height,var(--prompt-box-trigger-option-description-line-height,var(--luzmo-line-height,1.4)));color:var(--luzmo-prompt-box-trigger-option-description-color,var(--prompt-box-trigger-option-description-color,var(--luzmo-font-color,#6e6e6e)));white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.trigger-option-enter-icon{color:var(--luzmo-prompt-box-trigger-option-enter-icon-color,var(--prompt-box-trigger-option-enter-icon-color,var(--luzmo-font-color-dimmed,#0006)));flex-shrink:0;justify-content:center;align-items:center;margin-inline-start:auto;display:flex}.trigger-option-highlight{background-color:var(--luzmo-prompt-box-trigger-option-highlight-background,var(--prompt-box-trigger-option-highlight-background,rgba(var(--luzmo-primary-rgb,0, 100, 250), .12)));color:inherit;border-radius:2px;padding:0 1px}.trigger-option-header{align-items:center;gap:var(--luzmo-prompt-box-trigger-option-header-gap,var(--prompt-box-trigger-option-header-gap,10px));min-block-size:var(--luzmo-prompt-box-trigger-option-min-height,var(--prompt-box-trigger-option-min-height,var(--luzmo-component-height,32px)));padding-block:var(--luzmo-prompt-box-trigger-option-header-padding-block,var(--prompt-box-trigger-option-header-padding-block,4px));padding-inline:var(--luzmo-prompt-box-trigger-option-header-padding-inline,var(--prompt-box-trigger-option-header-padding-inline,10px));background-color:var(--luzmo-prompt-box-trigger-option-header-background,var(--prompt-box-trigger-option-header-background));border-block-start:1px solid var(--luzmo-prompt-box-trigger-option-header-border-color,var(--prompt-box-trigger-option-header-border-color,var(--luzmo-border-color,#0000001f)));border-block-end:1px solid var(--luzmo-prompt-box-trigger-option-header-border-color,var(--prompt-box-trigger-option-header-border-color,var(--luzmo-border-color,#0000001f)));box-sizing:border-box;-webkit-user-select:none;user-select:none;display:flex}.trigger-options>.trigger-option-header:first-child{border-block-start:none}.trigger-option-header-icon{width:var(--luzmo-prompt-box-trigger-option-icon-width,var(--prompt-box-trigger-option-icon-width,20px));color:var(--luzmo-prompt-box-trigger-option-header-icon-color,var(--prompt-box-trigger-option-header-icon-color,var(--luzmo-font-color,#333)));flex-shrink:0;justify-content:center;align-items:center;display:flex}.trigger-option-header-label{font-size:var(--luzmo-prompt-box-trigger-option-header-font-size,var(--prompt-box-trigger-option-header-font-size,var(--luzmo-font-size,14px)));font-weight:var(--luzmo-prompt-box-trigger-option-header-font-weight,var(--prompt-box-trigger-option-header-font-weight,normal));line-height:var(--luzmo-prompt-box-trigger-option-header-line-height,var(--prompt-box-trigger-option-header-line-height,var(--luzmo-line-height,1.4)));color:var(--luzmo-prompt-box-trigger-option-header-color,var(--prompt-box-trigger-option-header-color,var(--luzmo-font-color,#333)));white-space:nowrap;text-overflow:ellipsis;overflow:hidden}luzmo-overlay[part=trigger-menu-overlay] ::slotted(*){min-width:var(--luzmo-prompt-box-trigger-menu-min-width,var(--prompt-box-trigger-menu-min-width,250px));max-height:var(--luzmo-prompt-box-trigger-menu-max-height,var(--prompt-box-trigger-menu-max-height,300px));overflow-y:auto;visibility:visible!important;opacity:1!important;pointer-events:auto!important;position:relative!important}@media (forced-colors:active){:host{--highcontrast-prompt-box-background-color:Canvas;--highcontrast-prompt-box-border-color:CanvasText;--highcontrast-prompt-box-border-color-focus:Highlight;--highcontrast-prompt-box-text-color:CanvasText}}:host{--prompt-box-font-family:var(--luzmo-font-family);--prompt-box-font-size:var(--luzmo-font-size);--prompt-box-line-height:1.5;--prompt-box-text-color:var(--luzmo-font-color);--prompt-box-background-color:var(--luzmo-background-color);--prompt-box-border-radius:var(--luzmo-border-radius-xl);--prompt-box-border-width:var(--luzmo-border-width);--prompt-box-border-color:var(--luzmo-border-color);--prompt-box-border-color-focus:var(--luzmo-primary);--prompt-box-shadow:0 2px 8px rgba(var(--luzmo-border-color-rgb), .08);--prompt-box-shadow-focus:0 2px 12px rgba(var(--luzmo-primary-rgb), .15);--prompt-box-gap:var(--luzmo-spacing-5);--prompt-box-recording-gap:calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1));--prompt-box-vertical-padding:var(--luzmo-spacing-4);--prompt-box-horizontal-padding:var(--luzmo-spacing-5);--prompt-box-actions-gap:var(--luzmo-spacing-3);--prompt-box-top-actions-gap:var(--luzmo-spacing-2);--prompt-box-bottom-actions-gap:var(--luzmo-spacing-2);--prompt-box-button-group-gap:var(--luzmo-spacing-2);--prompt-box-submit-button-margin-inline-start:var(--luzmo-spacing-3);--prompt-box-max-height:200px;--prompt-box-rich-input-padding:4px 0;--prompt-box-placeholder-color:var(--luzmo-font-color-extra-dimmed);--prompt-box-animation-duration:var(--luzmo-animation-duration,.15s);--prompt-box-disabled-opacity:.5;--prompt-box-attachments-gap:var(--luzmo-spacing-2);--prompt-box-image-preview-size:64px;--prompt-box-image-border-radius:var(--luzmo-border-radius);--prompt-box-image-background:#0000000d;--prompt-box-file-icon-size:var(--luzmo-icon-size-xl);--prompt-box-file-icon-color:var(--luzmo-font-color-extra-dimmed);--prompt-box-remove-button-size:20px;--prompt-box-remove-button-background:#00000080;--prompt-box-remove-button-background-hover:#000000b3;--prompt-box-remove-button-icon-color:#fff;--prompt-box-badge-gap:6px;--prompt-box-badge-padding:1px 6px;--prompt-box-badge-background:rgba(var(--luzmo-primary-rgb,0, 100, 250), .1);--prompt-box-badge-color:var(--luzmo-primary,#0064fa);--prompt-box-badge-border-radius:4px;--prompt-box-badge-font-size:.9em;--prompt-box-badge-font-weight:500;--prompt-box-badge-max-width:200px;--prompt-box-badge-remove-size:14px;--prompt-box-badge-remove-font-size:12px;--prompt-box-badge-remove-hover-background:#0000001a;--prompt-box-waveform-gap:3px;--prompt-box-waveform-height:24px;--prompt-box-waveform-bar-width:3px;--prompt-box-waveform-bar-color:currentColor;--prompt-box-waveform-bar-radius:2px;--prompt-box-recording-duration-font-family:monospace;--prompt-box-recording-duration-font-size:14px;--prompt-box-recording-duration-font-weight:500;--prompt-box-recording-duration-color:currentColor;--prompt-box-trigger-menu-min-width:250px;--prompt-box-trigger-menu-max-width:300px;--prompt-box-trigger-menu-max-height:300px;--prompt-box-trigger-menu-background:var(--luzmo-background-color,#fff);--prompt-box-trigger-menu-border-color:var(--luzmo-border-color,#0000001a);--prompt-box-trigger-menu-border-radius:var(--luzmo-border-radius-100,8px);--prompt-box-trigger-menu-shadow-color:#0000001f;--prompt-box-trigger-menu-scrollbar-width:var(--luzmo-scrollbar-size);--prompt-box-trigger-menu-scrollbar-track-background:var(--luzmo-scrollbar-track-background);--prompt-box-trigger-menu-scrollbar-track-border-radius:var(--luzmo-scrollbar-track-border-radius);--prompt-box-trigger-menu-scrollbar-thumb-background:var(--luzmo-scrollbar-thumb-background);--prompt-box-trigger-menu-scrollbar-thumb-border-radius:var(--luzmo-scrollbar-thumb-border-radius);--prompt-box-trigger-menu-scrollbar-thumb-hover-background:var(--luzmo-scrollbar-thumb-hover-background);--prompt-box-single-line-gap:var(--luzmo-spacing-3);--prompt-box-single-line-attachments-max-height:32px;--prompt-box-single-line-image-size:28px;--prompt-box-single-line-file-icon-size:var(--luzmo-icon-size-s);--prompt-box-trigger-option-gap:10px;--prompt-box-trigger-option-min-height:var(--luzmo-component-height,32px);--prompt-box-trigger-option-padding-block:4px;--prompt-box-trigger-option-padding-inline:10px;--prompt-box-trigger-option-description-padding-block:4px;--prompt-box-trigger-option-background-hover:var(--luzmo-background-color-highlight,#f5f5f5);--prompt-box-trigger-option-icon-color:var(--luzmo-font-color,inherit);--prompt-box-trigger-option-icon-width:20px;--prompt-box-trigger-option-icon-size:var(--luzmo-font-size,14px);--prompt-box-trigger-option-font-size:var(--luzmo-font-size,14px);--prompt-box-trigger-option-line-height:var(--luzmo-line-height,1.4);--prompt-box-trigger-option-color:var(--luzmo-font-color,#333);--prompt-box-trigger-option-description-font-size:var(--luzmo-font-size-xs,12px);--prompt-box-trigger-option-description-line-height:var(--luzmo-line-height,1.4);--prompt-box-trigger-option-description-color:var(--luzmo-font-color,#6e6e6e);--prompt-box-trigger-option-enter-icon-color:var(--prompt-box-trigger-option-icon-color,var(--luzmo-font-color,inherit));--prompt-box-trigger-option-highlight-background:rgba(var(--luzmo-primary-rgb,0, 100, 250), .12);--prompt-box-trigger-option-header-gap:10px;--prompt-box-trigger-option-header-padding-block:4px;--prompt-box-trigger-option-header-padding-inline:10px;--prompt-box-trigger-option-header-background:var(--luzmo-background-color-highlight,#f5f5f5);--prompt-box-trigger-option-header-border-color:var(--luzmo-border-color,#0000001f);--prompt-box-trigger-option-header-icon-color:var(--luzmo-font-color,#333);--prompt-box-trigger-option-header-font-size:var(--luzmo-font-size,14px);--prompt-box-trigger-option-header-font-weight:normal;--prompt-box-trigger-option-header-line-height:var(--luzmo-line-height,1.4);--prompt-box-trigger-option-header-color:var(--luzmo-font-color,#333)}:host([size=xs]){--prompt-box-font-size:var(--luzmo-font-size-xs);--prompt-box-border-radius:var(--luzmo-border-radius);--prompt-box-vertical-padding:var(--luzmo-spacing-2);--prompt-box-horizontal-padding:var(--luzmo-spacing-3);--prompt-box-gap:var(--luzmo-spacing-3);--prompt-box-attachments-gap:var(--luzmo-spacing-1);--prompt-box-recording-gap:var(--luzmo-spacing-3);--prompt-box-max-height:120px;--prompt-box-image-preview-size:40px;--prompt-box-file-icon-size:var(--luzmo-icon-size-m);--prompt-box-remove-button-size:16px;--prompt-box-badge-font-size:.8em;--prompt-box-badge-padding:0px 3px;--prompt-box-badge-remove-size:10px;--prompt-box-badge-remove-font-size:9px}:host([size=s]){--prompt-box-font-size:var(--luzmo-font-size-s);--prompt-box-border-radius:var(--luzmo-border-radius-l);--prompt-box-vertical-padding:var(--luzmo-spacing-3);--prompt-box-horizontal-padding:var(--luzmo-spacing-4);--prompt-box-gap:var(--luzmo-spacing-4);--prompt-box-attachments-gap:var(--luzmo-spacing-1);--prompt-box-recording-gap:calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1));--prompt-box-max-height:150px;--prompt-box-image-preview-size:48px;--prompt-box-file-icon-size:var(--luzmo-icon-size-l);--prompt-box-remove-button-size:18px;--prompt-box-badge-font-size:.85em;--prompt-box-badge-padding:0px 4px;--prompt-box-badge-remove-size:12px;--prompt-box-badge-remove-font-size:10px}:host([size=l]){--prompt-box-font-size:var(--luzmo-font-size-l);--prompt-box-border-radius:var(--luzmo-border-radius-xl);--prompt-box-vertical-padding:var(--luzmo-spacing-5);--prompt-box-horizontal-padding:calc(var(--luzmo-spacing-5) + var(--luzmo-spacing-1));--prompt-box-gap:var(--luzmo-spacing-4);--prompt-box-attachments-gap:calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--prompt-box-recording-gap:calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--prompt-box-max-height:250px;--prompt-box-image-preview-size:72px;--prompt-box-file-icon-size:var(--luzmo-icon-size-xxl);--prompt-box-remove-button-size:24px;--prompt-box-badge-font-size:.9em;--prompt-box-badge-padding:2px 8px;--prompt-box-badge-remove-size:16px;--prompt-box-badge-remove-font-size:13px}:host([size=xl]){--prompt-box-font-size:var(--luzmo-font-size-xl);--prompt-box-border-radius:var(--luzmo-border-radius-xl);--prompt-box-vertical-padding:calc(var(--luzmo-spacing-5) + var(--luzmo-spacing-1));--prompt-box-horizontal-padding:calc(var(--luzmo-spacing-5) + var(--luzmo-spacing-2));--prompt-box-gap:var(--luzmo-spacing-5);--prompt-box-attachments-gap:var(--luzmo-spacing-3);--prompt-box-max-height:300px;--prompt-box-image-preview-size:96px;--prompt-box-file-icon-size:var(--luzmo-icon-size-xxl);--prompt-box-remove-button-size:28px;--prompt-box-badge-font-size:.9em;--prompt-box-badge-padding:2px 10px;--prompt-box-badge-remove-size:18px;--prompt-box-badge-remove-font-size:14px}:host([pending]){--prompt-box-actions-opacity:.75}", $ = class extends n(e, {
1275
1328
  validSizes: [
1276
1329
  "xs",
1277
1330
  "s",
@@ -1282,9 +1335,12 @@ var fe = ":host{font-family:var(--luzmo-prompt-box-font-family,var(--prompt-box-
1282
1335
  defaultSize: "m"
1283
1336
  }) {
1284
1337
  constructor(...e) {
1285
- super(...e), this.rows = 1, this.grows = !1, this.maxRows = -1, this.recording = !1, this.hideSubmit = !1, this.disableSubmit = !1, this.singleLine = !1, this.placeholder = "", this.value = "", this.disabled = !1, this.readonly = !1, this.maxlength = -1, this.pending = !1, this.stoppable = !1, this.allowImages = !1, this.allowFiles = !1, this.acceptedFileTypes = [], this.allowElements = !1, this.acceptedElementTypes = [], this._hasTopActions = !1, this._hasBottomActions = !1, this._hasRecordButton = !1, this._hasSubmitButton = !1, this._inputFocused = !1, this._attachments = new te(this), this._recording = new g(this), this._richInput = new A(this), this._triggerMenu = new j(this), this.handleRecordButtonSlotChange = this._slotPresenceHandler((e) => this._hasRecordButton = e), this.handleSubmitButtonSlotChange = this._slotPresenceHandler((e) => this._hasSubmitButton = e), this.handleRecordClick = (e) => {
1338
+ super(...e), this.rows = 1, this.grows = !1, this.maxRows = -1, this.recording = !1, this.hideSubmit = !1, this.disableSubmit = !1, this.singleLine = !1, this.placeholder = "", this.value = "", this.disabled = !1, this.readonly = !1, this.maxlength = -1, this.pending = !1, this.stoppable = !1, this.allowImages = !1, this.allowFiles = !1, this.acceptedFileTypes = [], this.fileIcons = {}, this.removeAttachmentLabel = (e) => `Remove ${e}`, this.allowElements = !1, this.acceptedElementTypes = [], this._hasTopActions = !1, this._hasBottomActions = !1, this._hasRecordButton = !1, this._hasSubmitButton = !1, this._inputFocused = !1, this._attachments = new x(this), this._recording = new te(this), this._richInput = new j(this), this._triggerMenu = new M(this), this.handleRecordButtonSlotChange = this._slotPresenceHandler((e) => this._hasRecordButton = e), this.handleSubmitButtonSlotChange = this._slotPresenceHandler((e) => this._hasSubmitButton = e), this.handleRecordClick = (e) => {
1286
1339
  let t = e.currentTarget.matches(":focus-visible");
1287
1340
  this._recording.start(t);
1341
+ }, this.handleAttachmentRemoveClick = (e) => {
1342
+ let t = e.currentTarget.dataset.attachmentId;
1343
+ t && this._attachments.removeAttachment(t);
1288
1344
  }, this.handleInput = (e) => {
1289
1345
  let t = e.target;
1290
1346
  this.value = t.value, this.dispatchEvent(new Event("input", {
@@ -1320,7 +1376,7 @@ var fe = ":host{font-family:var(--luzmo-prompt-box-font-family,var(--prompt-box-
1320
1376
  composed: !0
1321
1377
  }));
1322
1378
  }, this._handleComponentFocusIn = () => {
1323
- B() && this.classList.add("focus-visible");
1379
+ V() && this.classList.add("focus-visible");
1324
1380
  }, this._handleComponentFocusOut = (e) => {
1325
1381
  let t = e.relatedTarget;
1326
1382
  t instanceof Node && (this.contains(t) || this.shadowRoot?.contains(t)) || this.classList.remove("focus-visible");
@@ -1329,7 +1385,7 @@ var fe = ":host{font-family:var(--luzmo-prompt-box-font-family,var(--prompt-box-
1329
1385
  }, this._handleTopActionsSlotChange = this._slotPresenceHandler((e) => this._hasTopActions = e), this._handleBottomActionsSlotChange = this._slotPresenceHandler((e) => this._hasBottomActions = e);
1330
1386
  }
1331
1387
  static get styles() {
1332
- return [s(fe)];
1388
+ return [s(Ce)];
1333
1389
  }
1334
1390
  get triggers() {
1335
1391
  return this._triggerMenu.triggers;
@@ -1356,15 +1412,6 @@ var fe = ":host{font-family:var(--luzmo-prompt-box-font-family,var(--prompt-box-
1356
1412
  get hasSubmitButton() {
1357
1413
  return this._hasSubmitButton;
1358
1414
  }
1359
- get tagSize() {
1360
- switch (this.size) {
1361
- case "s":
1362
- case "m": return "s";
1363
- case "l":
1364
- case "xl": return "m";
1365
- default: return "s";
1366
- }
1367
- }
1368
1415
  get segments() {
1369
1416
  return this._richInput.getSegments();
1370
1417
  }
@@ -1372,13 +1419,13 @@ var fe = ":host{font-family:var(--luzmo-prompt-box-font-family,var(--prompt-box-
1372
1419
  this._richInput.setSegments(e);
1373
1420
  }
1374
1421
  connectedCallback() {
1375
- super.connectedCallback(), R(), this.addEventListener("focusin", this._handleComponentFocusIn), this.addEventListener("focusout", this._handleComponentFocusOut), this.addEventListener("paste", this._handlePaste);
1422
+ super.connectedCallback(), z(), this.addEventListener("focusin", this._handleComponentFocusIn), this.addEventListener("focusout", this._handleComponentFocusOut), this.addEventListener("paste", this._handlePaste);
1376
1423
  }
1377
1424
  disconnectedCallback() {
1378
- super.disconnectedCallback(), z(), this.removeEventListener("focusin", this._handleComponentFocusIn), this.removeEventListener("focusout", this._handleComponentFocusOut), this.removeEventListener("paste", this._handlePaste);
1425
+ super.disconnectedCallback(), B(), this.removeEventListener("focusin", this._handleComponentFocusIn), this.removeEventListener("focusout", this._handleComponentFocusOut), this.removeEventListener("paste", this._handlePaste);
1379
1426
  }
1380
1427
  updated(e) {
1381
- super.updated(e), this._richInputElement && (this._richInput.richInputElement = this._richInputElement, this._triggerMenu.richInputElement = this._richInputElement), (e.has("pending") || e.has("disabled")) && ue(this.shadowRoot, this.disabled, this.pending), this._recording.shouldFocusFinishButton && this._recording.isRecording && (this._recording.shouldFocusFinishButton = !1, requestAnimationFrame(() => {
1428
+ super.updated(e), this._richInputElement && (this._richInput.richInputElement = this._richInputElement, this._triggerMenu.richInputElement = this._richInputElement), (e.has("pending") || e.has("disabled")) && xe(this.shadowRoot, this.disabled, this.pending), this._recording.shouldFocusFinishButton && this._recording.isRecording && (this._recording.shouldFocusFinishButton = !1, requestAnimationFrame(() => {
1382
1429
  this._finishRecordingButton?.focus();
1383
1430
  }));
1384
1431
  }
@@ -1394,6 +1441,9 @@ var fe = ":host{font-family:var(--luzmo-prompt-box-font-family,var(--prompt-box-
1394
1441
  removeAttachment(e) {
1395
1442
  this._attachments.removeAttachment(e);
1396
1443
  }
1444
+ setAttachmentLoading(e, t) {
1445
+ this._attachments.setAttachmentLoading(e, t);
1446
+ }
1397
1447
  clearAttachments() {
1398
1448
  this._attachments.clearAttachments();
1399
1449
  }
@@ -1438,7 +1488,7 @@ var fe = ":host{font-family:var(--luzmo-prompt-box-font-family,var(--prompt-box-
1438
1488
  }
1439
1489
  _submit() {
1440
1490
  if (this.disabled || this.readonly || this.pending || this.disableSubmit) return;
1441
- let e = this.shadowRoot?.querySelector("slot[name=\"top-actions\"]"), t = this.shadowRoot?.querySelector("slot[name=\"bottom-actions\"]"), n = e?.assignedElements() ?? [], r = t?.assignedElements() ?? [], i = de([...n, ...r]), a = {
1491
+ let e = this.shadowRoot?.querySelector("slot[name=\"top-actions\"]"), t = this.shadowRoot?.querySelector("slot[name=\"bottom-actions\"]"), n = e?.assignedElements() ?? [], r = t?.assignedElements() ?? [], i = Se([...n, ...r]), a = {
1442
1492
  value: this.value,
1443
1493
  segments: this.segments,
1444
1494
  topActions: [...n],
@@ -1454,24 +1504,24 @@ var fe = ":host{font-family:var(--luzmo-prompt-box-font-family,var(--prompt-box-
1454
1504
  }
1455
1505
  render() {
1456
1506
  return a`
1457
- ${le(this)}
1507
+ ${be(this)}
1458
1508
  <div
1459
1509
  class="container ${this._inputFocused ? "input-focused" : ""} ${this._richInput?.isDragOver ? "drag-over" : ""}"
1460
1510
  part="container"
1461
1511
  >
1462
- ${V(this, this._hasTopActions, this._handleTopActionsSlotChange)}
1463
- ${ce(this)}
1512
+ ${H(this, this._hasTopActions, this._handleTopActionsSlotChange)}
1464
1513
  <div class="input-wrapper" part="input-wrapper">
1465
- ${ae(this)}
1514
+ ${fe(this)}
1466
1515
  </div>
1516
+ ${ye(this)}
1467
1517
  <div class="actions-row" part="actions-row">
1468
- ${H(this, this._hasBottomActions, this._handleBottomActionsSlotChange)}
1518
+ ${U(this, this._hasBottomActions, this._handleBottomActionsSlotChange)}
1469
1519
  <div class="button-group" part="button-group">
1470
- ${W(this)} ${re(this)}
1520
+ ${G(this)} ${K(this)}
1471
1521
  </div>
1472
1522
  </div>
1473
1523
  </div>
1474
- ${X(this)}
1524
+ ${ue(this)}
1475
1525
  `;
1476
1526
  }
1477
1527
  };
@@ -1521,7 +1571,7 @@ t([c({ type: Number })], $.prototype, "rows", void 0), t([c({
1521
1571
  })], $.prototype, "allowFiles", void 0), t([c({
1522
1572
  type: Array,
1523
1573
  attribute: "accepted-file-types"
1524
- })], $.prototype, "acceptedFileTypes", void 0), t([c({
1574
+ })], $.prototype, "acceptedFileTypes", void 0), t([c({ attribute: !1 })], $.prototype, "fileIcons", void 0), t([c({ attribute: !1 })], $.prototype, "removeAttachmentLabel", void 0), t([c({
1525
1575
  type: Boolean,
1526
1576
  reflect: !0,
1527
1577
  attribute: "allow-elements"
@@ -1530,4 +1580,4 @@ t([c({ type: Number })], $.prototype, "rows", void 0), t([c({
1530
1580
  attribute: "accepted-element-types"
1531
1581
  })], $.prototype, "acceptedElementTypes", void 0), t([c({ type: Array })], $.prototype, "triggers", null), t([u()], $.prototype, "_hasTopActions", void 0), t([u()], $.prototype, "_hasBottomActions", void 0), t([u()], $.prototype, "_hasRecordButton", void 0), t([u()], $.prototype, "_hasSubmitButton", void 0), t([u()], $.prototype, "_inputFocused", void 0), t([l("luzmo-text-field")], $.prototype, "_inputElement", void 0), t([l(".rich-input")], $.prototype, "_richInputElement", void 0), t([l("input[type=\"file\"]")], $.prototype, "_fileInput", void 0), t([l(".finish-recording-button")], $.prototype, "_finishRecordingButton", void 0), customElements.get("luzmo-prompt-box") || customElements.define("luzmo-prompt-box", $);
1532
1582
  //#endregion
1533
- export { k as n, $ as t };
1583
+ export { Y as n, A as r, $ as t };