@epam/ai-dial-attachment-input 1.0.0-rc.1 → 1.1.0-dev.101

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 (30) hide show
  1. package/components/AttachmentCard/AttachmentCard.d.ts.map +1 -1
  2. package/components/AttachmentCard/Attachments/Actions.d.ts +1 -1
  3. package/components/AttachmentCard/Attachments/Actions.d.ts.map +1 -1
  4. package/components/AttachmentCard/Attachments/Audio.d.ts +2 -0
  5. package/components/AttachmentCard/Attachments/Audio.d.ts.map +1 -1
  6. package/components/AttachmentCard/Attachments/File.d.ts +1 -8
  7. package/components/AttachmentCard/Attachments/File.d.ts.map +1 -1
  8. package/components/AttachmentCard/Attachments/Image.d.ts +2 -0
  9. package/components/AttachmentCard/Attachments/Image.d.ts.map +1 -1
  10. package/components/AttachmentGroup/AttachmentGroup.d.ts +1 -8
  11. package/components/AttachmentGroup/AttachmentGroup.d.ts.map +1 -1
  12. package/constants/attachment-group.d.ts +1 -3
  13. package/constants/attachment-group.d.ts.map +1 -1
  14. package/index.css +1 -1
  15. package/index.d.ts +3 -5
  16. package/index.d.ts.map +1 -1
  17. package/index.js +315 -370
  18. package/models/attachment-card.d.ts +8 -2
  19. package/models/attachment-card.d.ts.map +1 -1
  20. package/models/attachment-file-row.d.ts +2 -0
  21. package/models/attachment-file-row.d.ts.map +1 -1
  22. package/models/attachment-group.d.ts +2 -24
  23. package/models/attachment-group.d.ts.map +1 -1
  24. package/package.json +4 -4
  25. package/utils/attachment.d.ts +4 -27
  26. package/utils/attachment.d.ts.map +1 -1
  27. package/components/AttachmentMoreTile/AttachmentMoreTile.d.ts +0 -9
  28. package/components/AttachmentMoreTile/AttachmentMoreTile.d.ts.map +0 -1
  29. package/models/attachment-more-tile.d.ts +0 -54
  30. package/models/attachment-more-tile.d.ts.map +0 -1
package/index.js CHANGED
@@ -1,177 +1,163 @@
1
- import { AttachmentErrorReason as e, AttachmentType as t, Highlight as n, MIME_TYPE_EXT_MAP as r, RequestStatus as i, buildCssVars as a, mergeClasses as o } from "@epam/ai-dial-chat-shared";
2
- import { useCallback as s, useEffect as c, useId as l, useMemo as u, useRef as d, useState as f } from "react";
3
- import { IconChevronUp as p, IconClipboard as m, IconDownload as h, IconExternalLink as g, IconFile as _, IconFileDescription as v, IconFileTypeBmp as y, IconFileTypeCss as b, IconFileTypeCsv as x, IconFileTypeDoc as S, IconFileTypeDocx as C, IconFileTypeHtml as w, IconFileTypeJpg as T, IconFileTypeJs as E, IconFileTypeJsx as D, IconFileTypePdf as O, IconFileTypePhp as k, IconFileTypePng as A, IconFileTypePpt as j, IconFileTypeRs as M, IconFileTypeSql as N, IconFileTypeSvg as P, IconFileTypeTs as F, IconFileTypeTsx as I, IconFileTypeTxt as L, IconFileTypeVue as R, IconFileTypeXls as z, IconFileTypeXml as B, IconFileTypeZip as V, IconFileX as ee, IconMusic as te, IconPaperclip as H, IconPhoto as U, IconReload as ne, IconTerminal2 as re, IconVideo as ie, IconX as ae } from "@tabler/icons-react";
4
- import { DIAL_ICON_SIZE as W, DialGhostIconButton as oe, DialSkeleton as se, DialSkeletonVariant as ce, ElementSize as le } from "@epam/ai-dial-ui-kit";
5
- import { Fragment as G, jsx as K, jsxs as q } from "react/jsx-runtime";
6
- //#region src/constants/attachment-group.ts
7
- var ue = 5, de = 4, fe = "flex size-[84px] items-center justify-center rounded-xl border", J = /* @__PURE__ */ function(e) {
8
- return e.None = "none", e.AllVisible = "all-visible", e.Collapsed = "collapsed", e;
9
- }({}), pe = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, me = (e) => {
1
+ import { AttachmentErrorReason as e, AttachmentType as t, MIME_TYPE_EXT_MAP as n, RequestStatus as r, buildCssVars as i, mergeClasses as a } from "@epam/ai-dial-chat-shared";
2
+ import { useCallback as o, useEffect as s, useId as c, useMemo as l, useRef as u, useState as d } from "react";
3
+ import { IconClipboard as f, IconDownload as p, IconExternalLink as m, IconFile as h, IconFileDescription as g, IconFileTypeBmp as _, IconFileTypeCss as v, IconFileTypeCsv as y, IconFileTypeDoc as b, IconFileTypeDocx as x, IconFileTypeHtml as S, IconFileTypeJpg as C, IconFileTypeJs as w, IconFileTypeJsx as T, IconFileTypePdf as E, IconFileTypePhp as D, IconFileTypePng as O, IconFileTypePpt as k, IconFileTypeRs as A, IconFileTypeSql as j, IconFileTypeSvg as M, IconFileTypeTs as N, IconFileTypeTsx as P, IconFileTypeTxt as F, IconFileTypeVue as I, IconFileTypeXls as L, IconFileTypeXml as R, IconFileTypeZip as z, IconFileX as B, IconMusic as ee, IconPaperclip as V, IconPhoto as H, IconReload as te, IconTerminal2 as U, IconVideo as W, IconX as ne } from "@tabler/icons-react";
4
+ import { DIAL_ICON_SIZE as G, DialSkeleton as re, DialSkeletonVariant as ie, DialSpinner as ae, ElementSize as oe, GhostIconButton as se, Highlight as ce } from "@epam/ai-dial-ui-kit";
5
+ import { Fragment as K, jsx as q, jsxs as J } from "react/jsx-runtime";
6
+ //#region src/utils/attachment.ts
7
+ var Y = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, le = (e) => {
8
+ if (e == null) return "";
10
9
  let t = e.lastIndexOf(".");
11
10
  return t > 0 ? e.slice(0, t) : e;
12
- }, he = {
11
+ }, ue = {
13
12
  image: "Image files",
14
13
  audio: "Audio files",
15
14
  video: "Video files",
16
15
  text: "Text files"
17
- }, ge = (e, t = he) => e.map((e) => {
16
+ }, de = (e, t = ue) => e.map((e) => {
18
17
  if (e.endsWith("/*")) {
19
18
  let n = e.slice(0, -2);
20
19
  return t[n] ?? `${n} files`;
21
20
  }
22
21
  let n = e.split("/")[1];
23
22
  return n == null ? e.toUpperCase() : n.toUpperCase();
24
- }).join(", "), _e = (e, t) => t.length === 0 ? !1 : t.some((t) => {
23
+ }).join(", "), fe = (e, t) => t.length === 0 ? !1 : t.some((t) => {
25
24
  if (t === "*" || t === "*/*") return !0;
26
25
  if (t.endsWith("/*")) {
27
26
  let n = t.slice(0, -2);
28
27
  return e.startsWith(`${n}/`);
29
28
  }
30
29
  return e === t;
31
- }), ve = (e) => {
32
- if (!e) return _;
30
+ }), pe = (e) => {
31
+ if (!e) return h;
33
32
  if (e.startsWith("image/")) switch (e) {
34
33
  case "image/jpeg":
35
- case "image/jpg": return T;
36
- case "image/png": return A;
37
- case "image/svg+xml": return P;
38
- case "image/bmp": return y;
39
- default: return U;
34
+ case "image/jpg": return C;
35
+ case "image/png": return O;
36
+ case "image/svg+xml": return M;
37
+ case "image/bmp": return _;
38
+ default: return H;
40
39
  }
41
- if (e.startsWith("video/")) return ie;
42
- if (e.startsWith("audio/")) return te;
40
+ if (e.startsWith("video/")) return W;
41
+ if (e.startsWith("audio/")) return ee;
43
42
  switch (e) {
44
- case "application/pdf": return O;
43
+ case "application/pdf": return E;
45
44
  case "application/msword":
46
- case "application/vnd.ms-word": return S;
47
- case "application/vnd.openxmlformats-officedocument.wordprocessingml.document": return C;
48
- case "application/vnd.ms-powerpoint": return j;
49
- case "application/vnd.openxmlformats-officedocument.presentationml.presentation": return j;
50
- case "application/vnd.ms-excel": return z;
51
- case "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": return z;
45
+ case "application/vnd.ms-word": return b;
46
+ case "application/vnd.openxmlformats-officedocument.wordprocessingml.document": return x;
47
+ case "application/vnd.ms-powerpoint": return k;
48
+ case "application/vnd.openxmlformats-officedocument.presentationml.presentation": return k;
49
+ case "application/vnd.ms-excel": return L;
50
+ case "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": return L;
52
51
  case "application/zip":
53
52
  case "application/x-zip-compressed":
54
53
  case "application/x-rar-compressed":
55
54
  case "application/x-7z-compressed":
56
55
  case "application/gzip":
57
- case "application/x-tar": return V;
58
- case "text/csv": return x;
59
- case "text/plain": return L;
56
+ case "application/x-tar": return z;
57
+ case "text/csv": return y;
58
+ case "text/plain": return F;
60
59
  case "text/html":
61
- case "application/xhtml+xml": return w;
60
+ case "application/xhtml+xml": return S;
62
61
  case "text/xml":
63
- case "application/xml": return B;
62
+ case "application/xml": return R;
64
63
  case "application/sql":
65
- case "text/x-sql": return N;
64
+ case "text/x-sql": return j;
66
65
  case "text/javascript":
67
- case "application/javascript": return E;
68
- case "text/jsx": return D;
66
+ case "application/javascript": return w;
67
+ case "text/jsx": return T;
69
68
  case "application/typescript":
70
- case "text/typescript": return F;
71
- case "text/tsx": return I;
72
- case "text/css": return b;
69
+ case "text/typescript": return N;
70
+ case "text/tsx": return P;
71
+ case "text/css": return v;
73
72
  case "text/x-php":
74
- case "application/x-php": return k;
73
+ case "application/x-php": return D;
75
74
  case "text/x-rustsrc":
76
- case "application/x-rust": return M;
77
- case "text/x-vue": return R;
78
- default: return _;
75
+ case "application/x-rust": return A;
76
+ case "text/x-vue": return I;
77
+ default: return h;
79
78
  }
80
- }, ye = (e) => {
79
+ }, me = (e) => {
81
80
  let { type: n, contentType: r } = e;
82
- return n === t.Prompt ? re : n === t.Pasted ? m : n === t.Image ? U : ve(r ?? "");
83
- }, be = (e) => {
84
- let t = e.toLowerCase().split(";")[0].trim(), n = r[t];
85
- if (n) return n;
81
+ return n === t.Prompt ? U : n === t.Pasted ? f : n === t.Image ? H : pe(r ?? "");
82
+ }, he = (e) => {
83
+ let t = e.toLowerCase().split(";")[0].trim(), r = n[t];
84
+ if (r) return r;
86
85
  let i = t.split("/")[1];
87
86
  if (i && !i.startsWith("vnd.") && !i.includes("+")) return i;
88
- }, xe = (e, n) => {
87
+ }, ge = (e, n) => {
89
88
  let { type: r, name: i, contentType: a } = e;
90
89
  if (r === t.Prompt) return n.promptLabel ?? "Prompt";
91
90
  if (r === t.Pasted) return n.pastedLabel ?? "Pasted";
92
91
  if (r === t.Image) return n.imageLabel ?? "Image";
93
92
  if (a) {
94
- let e = be(a);
93
+ let e = he(a);
95
94
  if (e) return `.${e}`;
96
95
  }
97
96
  let o = i.lastIndexOf(".");
98
97
  return o > 0 && o < i.length - 1 ? `.${i.slice(o + 1).toLowerCase()}` : i;
99
- }, Y = (e, n = {}) => {
100
- let { type: r, status: a, previewUrl: o, url: s } = e, c = a === i.Loading, l = a === i.Error, u = r === t.Image && !!(o ?? s) && !l, d = r === t.Audio && !l, f = r === t.Link && !l;
98
+ }, X = (e, n = {}) => {
99
+ let { type: i, status: a, previewUrl: o, url: s } = e, c = a === r.Loading, l = a === r.Error, u = i === t.Image && !!(o ?? s) && !l, d = i === t.Audio && !l, f = i === t.Link && !l;
101
100
  return {
102
101
  isLoading: c,
103
102
  isError: l,
104
103
  isImage: u,
105
104
  isAudio: d,
106
105
  isLink: f,
107
- BottomIcon: f ? null : ye(e),
108
- typeLabel: f ? null : xe(e, n)
106
+ BottomIcon: f ? null : me(e),
107
+ typeLabel: f ? null : ge(e, n)
109
108
  };
110
- }, Se = (e, t) => e <= 0 ? {
111
- layout: J.None,
112
- visibleCount: 0,
113
- hiddenCount: 0
114
- } : e < 5 || t ? {
115
- layout: J.AllVisible,
116
- visibleCount: e,
117
- hiddenCount: 0
118
- } : {
119
- layout: J.Collapsed,
120
- visibleCount: 4,
121
- hiddenCount: e - 4
122
- }, X = {
123
- tile: "_tile_3x6ks_1",
124
- tileLight: "_tileLight_3x6ks_12",
125
- tileError: "_tileError_3x6ks_16",
126
- nameText: "_nameText_3x6ks_23",
127
- typeText: "_typeText_3x6ks_24",
128
- retryIcon: "_retryIcon_3x6ks_36",
129
- hoverIcon: "_hoverIcon_3x6ks_40",
130
- track: "_track_3x6ks_48",
131
- indeterminateFill: "_indeterminateFill_3x6ks_52",
132
- "attachment-tile-indeterminate": "_attachment-tile-indeterminate_3x6ks_1"
133
- }, Z = ({ ariaLabel: e, errorTitle: t, errorDescId: n, onClick: r, id: i, icon: a, className: s }) => /* @__PURE__ */ K(oe, {
134
- icon: a,
135
- size: le.Small,
136
- className: o("absolute end-1 top-1 h-6 w-6 rounded-lg", s ?? X.hoverIcon),
109
+ }, Z = {
110
+ tile: "_tile_1x4ax_1",
111
+ hovered: "_hovered_1x4ax_5",
112
+ selected: "_selected_1x4ax_12",
113
+ tileError: "_tileError_1x4ax_17",
114
+ nameText: "_nameText_1x4ax_22",
115
+ typeText: "_typeText_1x4ax_26",
116
+ retryIcon: "_retryIcon_1x4ax_30",
117
+ track: "_track_1x4ax_34",
118
+ imageActionButton: "_imageActionButton_1x4ax_38"
119
+ }, Q = ({ ariaLabel: e, errorTitle: t, errorDescId: n, onClick: r, id: i, icon: o, className: s }) => /* @__PURE__ */ q(se, {
120
+ icon: o,
121
+ size: oe.Small,
122
+ className: a("absolute end-1 top-1 opacity-0 focus-visible:opacity-100 group-focus-within/attachment-tile:opacity-100 group-hover/attachment-tile:opacity-100", s),
137
123
  "aria-label": e,
138
124
  "aria-describedby": t ? n : void 0,
139
125
  onClick: (e) => {
140
126
  e.stopPropagation(), r(i);
141
127
  }
142
- }), Ce = ({ ...e }) => /* @__PURE__ */ K(Z, {
143
- icon: /* @__PURE__ */ K(ne, {
144
- size: W.SM,
128
+ }), _e = ({ ...e }) => /* @__PURE__ */ q(Q, {
129
+ icon: /* @__PURE__ */ q(te, {
130
+ size: G.SM,
145
131
  "aria-hidden": !0
146
132
  }),
147
- className: X.retryIcon,
133
+ className: Z.retryIcon,
148
134
  ...e
149
- }), we = ({ ...e }) => /* @__PURE__ */ K(Z, {
150
- icon: /* @__PURE__ */ K(h, {
151
- size: W.SM,
135
+ }), ve = ({ ...e }) => /* @__PURE__ */ q(Q, {
136
+ icon: /* @__PURE__ */ q(p, {
137
+ size: G.SM,
152
138
  "aria-hidden": !0
153
139
  }),
154
140
  ...e
155
- }), Te = ({ ...e }) => /* @__PURE__ */ K(Z, {
156
- icon: /* @__PURE__ */ K(g, {
157
- size: W.SM,
141
+ }), ye = ({ ...e }) => /* @__PURE__ */ q(Q, {
142
+ icon: /* @__PURE__ */ q(m, {
143
+ size: G.SM,
158
144
  "aria-hidden": !0
159
145
  }),
160
146
  ...e
161
- }), Ee = ({ ...e }) => /* @__PURE__ */ K(Z, {
162
- icon: /* @__PURE__ */ K(ae, {
163
- size: W.SM,
147
+ }), be = ({ ...e }) => /* @__PURE__ */ q(Q, {
148
+ icon: /* @__PURE__ */ q(ne, {
149
+ size: G.SM,
164
150
  "aria-hidden": !0
165
151
  }),
166
- className: X.hoverIcon,
152
+ className: Z.hoverIcon,
167
153
  ...e
168
- }), De = ({ attachment: e, searchQuery: t = "", onClick: r, onDownload: i, onRemove: a, labels: s, styles: c, cssVars: l }) => {
169
- let { clickLabel: u = "Open attachment", downloadLabel: d = "Download attachment", removeLabel: f = "Remove attachment" } = s ?? {}, { typography: p, className: m } = c ?? {}, h = () => {
170
- r?.(e.id);
154
+ }), xe = ({ attachment: e, searchQuery: t = "", onClick: n, onDownload: r, onRemove: i, labels: o, styles: s, cssVars: c, isSelected: l }) => {
155
+ let { clickLabel: u = "Open attachment", downloadLabel: d = "Download attachment", removeLabel: f = "Remove attachment" } = o ?? {}, { typography: p, className: m } = s ?? {}, h = () => {
156
+ n?.(e.id);
171
157
  };
172
- return /* @__PURE__ */ q("div", {
173
- style: l,
174
- ...r == null ? {} : {
158
+ return /* @__PURE__ */ J("div", {
159
+ style: c,
160
+ ...n == null ? {} : {
175
161
  role: "button",
176
162
  tabIndex: 0,
177
163
  "aria-label": u,
@@ -180,18 +166,18 @@ var ue = 5, de = 4, fe = "flex size-[84px] items-center justify-center rounded-x
180
166
  (e.key === "Enter" || e.key === " ") && (e.preventDefault(), h());
181
167
  }
182
168
  },
183
- className: o("group relative flex w-full min-w-[280px] max-w-[300px] flex-col gap-2 rounded-xl border p-3", r && "cursor-pointer", (i || a) && "pe-8", m),
169
+ className: a("group/attachment-tile relative flex w-full min-w-[280px] max-w-[300px] flex-col gap-2 rounded-xl border p-3", n && "cursor-pointer", (r || i) && "pe-8", l && Z.selected, m),
184
170
  children: [
185
- /* @__PURE__ */ K("span", {
171
+ /* @__PURE__ */ q("span", {
186
172
  title: e.name,
187
- className: o(p?.fontClassName ?? "dial-tiny-text", "min-w-0 truncate", X.nameText),
188
- children: t ? /* @__PURE__ */ K(n, {
173
+ className: a(p?.fontClassName ?? "dial-tiny-text", "min-w-0 truncate", Z.nameText),
174
+ children: t ? /* @__PURE__ */ q(ce, {
189
175
  text: e.name,
190
176
  query: t,
191
177
  maxLines: 1
192
178
  }) : e.name
193
179
  }),
194
- e.playUrl && /* @__PURE__ */ K("audio", {
180
+ e.playUrl && /* @__PURE__ */ q("audio", {
195
181
  controls: !0,
196
182
  src: e.playUrl,
197
183
  "aria-label": e.name,
@@ -199,106 +185,106 @@ var ue = 5, de = 4, fe = "flex size-[84px] items-center justify-center rounded-x
199
185
  preload: "metadata",
200
186
  onClick: (e) => e.stopPropagation()
201
187
  }),
202
- i && /* @__PURE__ */ K(we, {
188
+ r && /* @__PURE__ */ q(ve, {
203
189
  ariaLabel: d,
204
- onClick: i,
190
+ onClick: r,
205
191
  id: e.id
206
192
  }),
207
- a && /* @__PURE__ */ K(Ee, {
193
+ i && /* @__PURE__ */ q(be, {
208
194
  ariaLabel: f,
209
- onClick: a,
195
+ onClick: i,
210
196
  id: e.id
211
197
  })
212
198
  ]
213
199
  });
214
- }, Oe = {
200
+ }, Se = 5, Ce = "flex size-[84px] items-center justify-center rounded-xl border", we = {
215
201
  [e.Network]: "Upload failed · network error",
216
202
  [e.UnsupportedType]: "Upload failed · unsupported file type"
217
- }, ke = ({ attachment: t, onClick: n, onRetry: r, labels: a, styles: c, onDownload: d, isPasted: f, isLink: p, cssVars: m, onExpand: h, isExpandable: g, onRemove: _ }) => {
218
- let { clickLabel: v = "Download attachment", retryLabel: y = "Retry upload", sizeLabel: b, uploadingLabel: x = "Uploading", errorReasonLabels: S, genericErrorLabel: C = "Upload failed" } = a ?? {}, { typography: { nameClassName: w = "dial-caption-text", metaClassName: T = "dial-caption-text" } = {}, className: E } = c ?? {}, { id: D, name: O, status: k, errorReason: A } = t, j = k === i.Loading, M = k === i.Error, N = l(), P = M ? A && (S?.[A] ?? Oe[A]) || C : "", { BottomIcon: F, typeLabel: I } = Y(t), L = !M && !j && d && !p, R = M && !!r && A !== e.UnsupportedType, z = L || R ? "pe-5" : void 0, B = (e) => {
219
- (e.key === "Enter" || e.key === " ") && (e.preventDefault(), n?.(t.id));
220
- }, V = u(() => f ? O : me(O), [f, O]), ee = s(() => {
221
- window.open(t.referenceUrl, "_blank", "noopener,noreferrer");
222
- }, [t]), te = o(fe, "group relative flex-col justify-between items-start gap-1 overflow-hidden p-1.5", X.tile, !M && X.tileLight, M && X.tileError), H = /* @__PURE__ */ K("div", {
203
+ }, Te = ({ attachment: n, onClick: i, onRetry: s, labels: u, styles: d, onDownload: f, isPasted: p, isLink: m, cssVars: h, onExpand: g, isExpandable: _, onRemove: v, isSelected: y }) => {
204
+ let { clickLabel: b = "Download attachment", retryLabel: x = "Retry upload", sizeLabel: S, uploadingLabel: C = "Uploading", errorReasonLabels: w, genericErrorLabel: T = "Upload failed" } = u ?? {}, { typography: E, className: D } = d ?? {}, { id: O, name: k, status: A, errorReason: j } = n, M = A === r.Loading, N = A === r.Error, P = c(), F = N ? j && (w?.[j] ?? we[j]) || T : "", { BottomIcon: I, typeLabel: L } = X(n), R = !N && !M && f && !m, z = N && !!s && j !== e.UnsupportedType, B = R || z ? "pe-5" : void 0, ee = (e) => {
205
+ (e.key === "Enter" || e.key === " ") && (e.preventDefault(), i?.(n.id));
206
+ }, V = l(() => p ? k : le(k), [p, k]), H = o(() => {
207
+ window.open(n.referenceUrl, "_blank", "noopener,noreferrer");
208
+ }, [n]), te = a(Ce, "group/attachment-tile relative flex-col justify-between items-start gap-1 overflow-hidden p-1.5", Z.tile, (n.type === t.Prompt || n.type === t.Pasted) && "hovered", y && Z.selected, N && Z.tileError), U = /* @__PURE__ */ q("div", {
223
209
  title: V,
224
- className: o(w, "line-clamp-2 min-w-0 break-all", X.nameText, !M && z),
210
+ className: a(E?.nameClassName ?? "dial-caption-text", "line-clamp-2 min-w-0 break-all", Z.nameText, !N && B),
225
211
  children: V
226
- }), U = F && /* @__PURE__ */ q("div", {
227
- className: o("flex w-full items-center gap-1", M && z),
228
- children: [/* @__PURE__ */ K(F, {
212
+ }), W = I && /* @__PURE__ */ J("div", {
213
+ className: a("flex w-full items-center gap-1", N && B),
214
+ children: [/* @__PURE__ */ q(I, {
229
215
  size: 16,
230
- className: X.typeText,
216
+ className: Z.typeText,
231
217
  "aria-hidden": !0
232
- }), /* @__PURE__ */ K("span", {
233
- className: o(T, "min-w-0 flex-1 truncate", X.typeText),
234
- children: b ? `${I} · ${b}` : I
218
+ }), /* @__PURE__ */ q("span", {
219
+ className: a(E?.metaClassName ?? "dial-caption-text", "min-w-0 flex-1 truncate", Z.typeText),
220
+ children: S ? `${L} · ${S}` : L
235
221
  })]
236
222
  }), ne = () => {
237
- g && h ? h(D) : n && n(D);
238
- }, re = /* @__PURE__ */ q(G, { children: [
239
- M ? /* @__PURE__ */ q(G, { children: [U, H] }) : /* @__PURE__ */ q(G, { children: [H, U] }),
240
- j && /* @__PURE__ */ K("div", {
223
+ _ && g ? g(O) : i && i(O);
224
+ }, G = /* @__PURE__ */ J(K, { children: [
225
+ N ? /* @__PURE__ */ J(K, { children: [W, U] }) : /* @__PURE__ */ J(K, { children: [U, W] }),
226
+ M && /* @__PURE__ */ q("div", {
241
227
  role: "progressbar",
242
- "aria-label": x,
243
- className: o("absolute inset-x-2 bottom-2 h-[3px] overflow-hidden rounded-full", X.track),
244
- children: /* @__PURE__ */ K("div", { className: o("h-full w-1/3 rounded-full", X.indeterminateFill) })
228
+ "aria-label": C,
229
+ className: a("absolute inset-x-2 bottom-2 h-[3px] overflow-hidden rounded-full", Z.track),
230
+ children: /* @__PURE__ */ q(ae, { size: 32 })
245
231
  }),
246
- L && /* @__PURE__ */ K(we, {
247
- ariaLabel: v,
248
- errorTitle: P,
249
- errorDescId: N,
250
- onClick: d,
251
- id: D
232
+ R && /* @__PURE__ */ q(ve, {
233
+ ariaLabel: b,
234
+ errorTitle: F,
235
+ errorDescId: P,
236
+ onClick: f,
237
+ id: O
252
238
  }),
253
- R && /* @__PURE__ */ K(Ce, {
254
- ariaLabel: y,
255
- errorTitle: P,
256
- errorDescId: N,
257
- onClick: r,
258
- id: D
239
+ z && /* @__PURE__ */ q(_e, {
240
+ ariaLabel: x,
241
+ errorTitle: F,
242
+ errorDescId: P,
243
+ onClick: s,
244
+ id: O
259
245
  }),
260
- p && /* @__PURE__ */ K(Te, {
261
- ariaLabel: y,
262
- errorTitle: P,
263
- errorDescId: N,
264
- onClick: ee
246
+ m && /* @__PURE__ */ q(ye, {
247
+ ariaLabel: x,
248
+ errorTitle: F,
249
+ errorDescId: P,
250
+ onClick: H
265
251
  }),
266
- _ && /* @__PURE__ */ K(Ee, {
267
- ariaLabel: y,
268
- errorTitle: P,
269
- errorDescId: N,
270
- onClick: _,
271
- id: D
252
+ v && /* @__PURE__ */ q(be, {
253
+ ariaLabel: x,
254
+ errorTitle: F,
255
+ errorDescId: P,
256
+ onClick: v,
257
+ id: O
272
258
  }),
273
- M && /* @__PURE__ */ K("span", {
274
- id: N,
259
+ N && /* @__PURE__ */ q("span", {
260
+ id: P,
275
261
  role: "status",
276
262
  "aria-live": "polite",
277
263
  className: "sr-only",
278
- children: P
264
+ children: F
279
265
  })
280
266
  ] });
281
- return /* @__PURE__ */ K("div", {
282
- style: m,
283
- className: o("inline-flex", E),
284
- children: /* @__PURE__ */ K("div", {
267
+ return /* @__PURE__ */ q("div", {
268
+ style: h,
269
+ className: a("inline-flex", D),
270
+ children: /* @__PURE__ */ q("div", {
285
271
  role: "button",
286
272
  tabIndex: 0,
287
- "aria-label": v,
273
+ "aria-label": b,
288
274
  onClick: ne,
289
- onKeyDown: B,
290
- style: m,
291
- className: o(te, "cursor-pointer focus-within:outline focus-within:outline-1 focus-within:outline-offset-1"),
292
- children: re
275
+ onKeyDown: ee,
276
+ style: h,
277
+ className: a(te, "cursor-pointer focus-within:outline focus-within:outline-1 focus-within:outline-offset-1"),
278
+ children: G
293
279
  })
294
280
  });
295
- }, Q = /* @__PURE__ */ function(e) {
281
+ }, $ = /* @__PURE__ */ function(e) {
296
282
  return e.Idle = "idle", e.Loading = "loading", e.Loaded = "loaded", e.Error = "error", e;
297
- }({}), Ae = ({ enabled: e, src: t }) => {
298
- let n = d(null), [r, i] = f("idle");
299
- return c(() => {
283
+ }({}), Ee = ({ enabled: e, src: t }) => {
284
+ let n = u(null), [r, i] = d("idle");
285
+ return s(() => {
300
286
  i(e && t ? "loading" : "idle");
301
- }, [e, t]), c(() => {
287
+ }, [e, t]), s(() => {
302
288
  let r = n.current;
303
289
  if (!r || !e || !t) return;
304
290
  let a = () => i("loaded"), o = () => i("error");
@@ -309,15 +295,15 @@ var ue = 5, de = 4, fe = "flex size-[84px] items-center justify-center rounded-x
309
295
  imageRef: n,
310
296
  imageLoadStatus: r
311
297
  };
312
- }, je = ({ attachment: e, onExpand: n, onClick: r, labels: i, onRemove: a, cssVars: s, onDownload: c, styles: l }) => {
313
- let { clickLabel: d = "Open attachment", expandLabel: f = "Expand pasted text" } = i ?? {}, { typography: p, className: m } = l ?? {}, { id: h, name: g } = e, _ = e.previewUrl ?? e.url, v = e.type === t.Pasted && n !== void 0, { isLoading: y, isError: b, isImage: x } = u(() => Y(e), [e]), S = r !== void 0 && !v && !y && !b, { imageRef: C, imageLoadStatus: w } = Ae({
298
+ }, De = ({ attachment: e, onExpand: n, onClick: r, labels: i, onRemove: o, cssVars: s, onDownload: c, styles: u, isSelected: d }) => {
299
+ let { clickLabel: f = "Open attachment", expandLabel: p = "Expand pasted text" } = i ?? {}, { className: m } = u ?? {}, { id: h, name: g } = e, _ = e.previewUrl ?? e.url, v = e.type === t.Pasted && n !== void 0, { isLoading: y, isError: b, isImage: x } = l(() => X(e), [e]), S = r !== void 0 && !v && !y && !b, { imageRef: C, imageLoadStatus: w } = Ee({
314
300
  enabled: x,
315
301
  src: _
316
302
  }), T = () => {
317
303
  v && n ? n(h) : S && r && r(h);
318
304
  };
319
- return /* @__PURE__ */ K("div", {
320
- className: o(fe, S && "cursor-pointer", X.tile, m),
305
+ return /* @__PURE__ */ q("div", {
306
+ className: a(Ce, "group/attachment-tile", S && "cursor-pointer", Z.tile, d && Z.selected, m),
321
307
  onClick: T,
322
308
  onKeyDown: (e) => {
323
309
  (e.key === "Enter" || e.key === " ") && (e.preventDefault(), T());
@@ -325,98 +311,106 @@ var ue = 5, de = 4, fe = "flex size-[84px] items-center justify-center rounded-x
325
311
  tabIndex: 0,
326
312
  role: "button",
327
313
  style: s,
328
- "aria-label": S ? d : v ? f : void 0,
329
- children: /* @__PURE__ */ q("div", {
314
+ "aria-label": S ? f : v ? p : void 0,
315
+ children: /* @__PURE__ */ J("div", {
330
316
  className: "relative h-full w-full overflow-hidden",
331
317
  children: [
332
- a && /* @__PURE__ */ K(Ee, {
333
- onClick: a,
334
- id: h
318
+ o && /* @__PURE__ */ q(be, {
319
+ onClick: o,
320
+ id: h,
321
+ className: Z.imageActionButton
335
322
  }),
336
- c && /* @__PURE__ */ K(we, {
323
+ c && /* @__PURE__ */ q(ve, {
337
324
  onClick: c,
338
- id: h
325
+ id: h,
326
+ className: Z.imageActionButton
339
327
  }),
340
- w !== Q.Loaded && /* @__PURE__ */ K(se, {
341
- variant: ce.Rectangular,
328
+ w !== $.Loaded && /* @__PURE__ */ q(re, {
329
+ variant: ie.Rectangular,
342
330
  width: "100%",
343
331
  height: "100%",
344
- active: w === Q.Loading,
345
- overlay: /* @__PURE__ */ K(U, {
346
- size: W.LG,
347
- className: p?.placeholderIconClassName ?? "text-secondary",
332
+ active: w === $.Loading,
333
+ overlay: /* @__PURE__ */ q(H, {
334
+ size: G.LG,
335
+ className: Z.typeText,
348
336
  "aria-hidden": !0
349
337
  }),
350
338
  className: "absolute inset-0 rounded-xl"
351
339
  }),
352
- /* @__PURE__ */ K("img", {
340
+ /* @__PURE__ */ q("img", {
353
341
  ref: C,
354
342
  src: _,
355
343
  alt: g,
356
344
  loading: "lazy",
357
345
  decoding: "async",
358
- className: o("h-full w-full rounded-xl object-cover transition-opacity duration-200", w === Q.Loaded ? "opacity-100" : "opacity-0")
346
+ className: a("h-full w-full rounded-xl object-cover transition-opacity duration-200", w === $.Loaded ? "opacity-100" : "opacity-0")
359
347
  })
360
348
  ]
361
349
  })
362
350
  });
363
- }, Me = ({ attachment: e, searchQuery: n = "", onRemove: r, onRetry: i, onExpand: o, onClick: s, onDownload: c, labels: l, styles: d }) => {
364
- let { colors: f } = d ?? {}, p = e.type === t.Pasted, m = p && o !== void 0, h = a({
365
- "--ci-tile-bg": f?.background,
366
- "--ci-tile-border": f?.border,
367
- "--ci-tile-border-hover": f?.borderHover,
368
- "--ci-tile-focus-outline": f?.focusOutline,
369
- "--ci-tile-bg-error": f?.backgroundError,
370
- "--ci-tile-border-error": f?.borderError,
371
- "--ci-tile-error-text": f?.errorText,
372
- "--ci-tile-name-text": f?.nameText,
373
- "--ci-tile-type-text": f?.typeText,
374
- "--ci-tile-hover-icon-bg": f?.hoverIconBackground,
375
- "--ci-tile-hover-icon-color": f?.hoverIconColor,
376
- "--ci-tile-track-bg": f?.trackBackground,
377
- "--ci-tile-fill-bg": f?.fillBackground
378
- }), { isImage: g, isAudio: _, isLink: v } = u(() => Y(e), [e]);
379
- return _ ? /* @__PURE__ */ K(De, {
351
+ }, Oe = ({ attachment: e, searchQuery: n = "", onRemove: r, onRetry: a, onExpand: o, onClick: s, onDownload: c, labels: u, styles: d, isSelected: f }) => {
352
+ let { colors: p } = d ?? {}, m = e.type === t.Pasted, h = m && o !== void 0, g = i({
353
+ "--ai-tile-bg": p?.background,
354
+ "--ai-tile-border": p?.border,
355
+ "--ai-tile-bg-hover": p?.backgroundHover,
356
+ "--ai-tile-border-hover": p?.borderHover,
357
+ "--ai-tile-bg-selected": p?.backgroundSelected,
358
+ "--ai-tile-border-selected": p?.borderSelected,
359
+ "--ai-tile-focus-outline": p?.focusOutline,
360
+ "--ai-tile-bg-error": p?.backgroundError,
361
+ "--ai-tile-border-error": p?.borderError,
362
+ "--ai-tile-error-text": p?.errorText,
363
+ "--ai-tile-name-text": p?.nameText,
364
+ "--ai-tile-type-text": p?.typeText,
365
+ "--ai-tile-hover-icon-bg": p?.hoverIconBackground,
366
+ "--ai-tile-hover-icon-color": p?.hoverIconColor,
367
+ "--ai-tile-progress-track": p?.trackBackground,
368
+ "--ai-tile-fill-bg": p?.fillBackground
369
+ }), { isImage: _, isAudio: v, isLink: y } = l(() => X(e), [e]);
370
+ return v ? /* @__PURE__ */ q(xe, {
380
371
  attachment: e,
381
- labels: l,
372
+ labels: u,
382
373
  onClick: s,
383
374
  onDownload: c,
384
375
  onRemove: r,
385
376
  searchQuery: n,
386
377
  styles: d,
387
- cssVars: h
388
- }) : g ? /* @__PURE__ */ K(je, {
378
+ cssVars: g,
379
+ isSelected: f
380
+ }) : _ ? /* @__PURE__ */ q(De, {
389
381
  attachment: e,
390
- labels: l,
382
+ labels: u,
391
383
  onClick: s,
392
384
  onExpand: o,
393
385
  styles: d,
394
386
  onRemove: r,
395
- cssVars: h,
396
- onDownload: c
397
- }) : /* @__PURE__ */ K(ke, {
387
+ cssVars: g,
388
+ onDownload: c,
389
+ isSelected: f
390
+ }) : /* @__PURE__ */ q(Te, {
398
391
  attachment: e,
399
392
  onClick: s,
400
- onRetry: i,
393
+ onRetry: a,
401
394
  onRemove: r,
402
395
  onDownload: c,
403
- isLink: v,
404
- isPasted: p,
396
+ isLink: y,
397
+ isPasted: m,
405
398
  styles: d,
406
- labels: l,
399
+ labels: u,
407
400
  onExpand: o,
408
- cssVars: h,
409
- isExpandable: m
401
+ cssVars: g,
402
+ isExpandable: h,
403
+ isSelected: f
410
404
  });
411
- }, Ne = ({ attachments: e, onRemove: t, onRetry: n, onExpand: r, onAttachmentClick: i, labels: a, styles: s }) => {
412
- let { ariaLabel: c = "Attached files", removeLabel: l, retryLabel: u, clickLabel: d } = a ?? {}, { className: f } = s ?? {};
413
- return e.length === 0 ? null : /* @__PURE__ */ K("div", {
405
+ }, ke = ({ attachments: e, onRemove: t, onRetry: n, onExpand: r, onAttachmentClick: i, labels: o, styles: s }) => {
406
+ let { ariaLabel: c = "Attached files", removeLabel: l, retryLabel: u, clickLabel: d } = o ?? {}, { className: f } = s ?? {};
407
+ return e.length === 0 ? null : /* @__PURE__ */ q("div", {
414
408
  role: "list",
415
409
  "aria-label": c,
416
- className: o("flex w-full min-w-0 gap-2 overflow-x-auto", f),
417
- children: e.map((e) => /* @__PURE__ */ K("div", {
410
+ className: a("flex w-full min-w-0 gap-2 overflow-x-auto", f),
411
+ children: e.map((e) => /* @__PURE__ */ q("div", {
418
412
  role: "listitem",
419
- children: /* @__PURE__ */ K(Me, {
413
+ children: /* @__PURE__ */ q(Oe, {
420
414
  attachment: e,
421
415
  onRemove: t,
422
416
  onRetry: n,
@@ -430,200 +424,151 @@ var ue = 5, de = 4, fe = "flex size-[84px] items-center justify-center rounded-x
430
424
  })
431
425
  }, e.id))
432
426
  });
433
- }, Pe = { tile: "_tile_nzsrz_1" }, Fe = ({ count: e, onClick: t, labels: n, children: r, styles: i }) => {
434
- let { ariaLabel: s } = n ?? {}, { typography: { fontClassName: c = "dial-small-semi-text" } = {}, className: l, colors: u } = i ?? {}, d = a({
435
- "--ci-more-tile-bg": u?.background,
436
- "--ci-more-tile-border": u?.border,
437
- "--ci-more-tile-color": u?.color,
438
- "--ci-more-tile-bg-hover": u?.backgroundHover,
439
- "--ci-more-tile-color-hover": u?.colorHover,
440
- "--ci-more-tile-border-hover": u?.borderHover,
441
- "--ci-more-tile-focus-outline": u?.focusOutline
442
- });
443
- return /* @__PURE__ */ K("button", {
444
- type: "button",
445
- onClick: t,
446
- "aria-label": s ?? `Show ${e} more attachments`,
447
- style: d,
448
- className: o(fe, c, Pe.tile, l),
449
- children: r ?? /* @__PURE__ */ K("bdi", {
450
- dir: "ltr",
451
- children: `+${e}`
452
- })
453
- });
454
- }, $ = {
455
- container: "_container_7fktb_1",
456
- headerIcon: "_headerIcon_7fktb_6",
457
- headerLabel: "_headerLabel_7fktb_7",
458
- downloadAllButton: "_downloadAllButton_7fktb_8",
459
- imageTile: "_imageTile_7fktb_12"
460
- }, Ie = (e, t) => `${e} ${t}${e === 1 ? "" : "s"}`, Le = ({ attachments: e, onAttachmentClick: n, onDownloadAll: r, onRetry: s, labels: c, styles: l }) => {
461
- let { ariaLabel: d = "Attachments", clickLabel: m = "Download attachment", retryLabel: g = "Retry upload", showLessLabel: v = "Show less", downloadAllLabel: y = "Download all", openInNewTabLabel: b, getHeaderLabel: x = (e) => Ie(e, "attachment"), promptLabel: S, pastedLabel: C, imageLabel: w } = c ?? {}, { typography: { headerLabelClassName: T = "dial-tiny-semi-text" } = {}, colors: E, className: D } = l ?? {}, O = a({
462
- "--ci-group-bg": E?.background,
463
- "--ci-group-border": E?.border,
464
- "--ci-group-text": E?.text
465
- }), [k, A] = f(!1), j = u(() => Se(e.length, k), [e.length, k]);
427
+ }, Ae = {
428
+ headerIcon: "_headerIcon_1sgtq_1",
429
+ headerLabel: "_headerLabel_1sgtq_2"
430
+ }, je = (e, t) => `${e} ${t}${e === 1 ? "" : "s"}`, Me = ({ attachments: e, onAttachmentClick: n, onDownloadAll: o, onRetry: s, labels: c, styles: l, selectedAttachmentId: u }) => {
431
+ let { ariaLabel: d = "Attachments", clickLabel: f = "Download attachment", retryLabel: m = "Retry upload", downloadAllLabel: g = "Download all", openInNewTabLabel: _, getHeaderLabel: v = (e) => je(e, "attachment"), promptLabel: y, pastedLabel: b, imageLabel: x } = c ?? {}, { typography: S, colors: C, className: w } = l ?? {}, T = i({ "--ai-group-text": C?.text });
466
432
  if (e.length === 0) return null;
467
- let M = e.some((e) => e.type === t.Image), N = e.some((e) => e.type !== t.Image), P = M && N, F = e.length >= 5, I = P ? H : M ? U : _, L = x(e.length), R = e.slice(0, j.visibleCount), z = () => {
468
- let t = e.filter((e) => e.status === i.Idle);
469
- r ? r(t) : t.forEach((e) => n?.(e.id));
470
- }, B = (t) => {
433
+ let E = e.some((e) => e.type === t.Image), D = e.some((e) => e.type !== t.Image), O = E && D, k = e.length >= 5, A = O ? V : E ? H : h, j = v(e.length), M = () => {
434
+ let t = e.filter((e) => e.status === r.Idle);
435
+ o ? o(t) : t.forEach((e) => n?.(e.id));
436
+ }, N = (t) => {
471
437
  let n = e.find((e) => e.id === t);
472
- n && r?.([n]);
438
+ n && o?.([n]);
473
439
  };
474
- return /* @__PURE__ */ q("div", {
440
+ return /* @__PURE__ */ J("div", {
475
441
  role: "group",
476
442
  "aria-label": d,
477
- style: O,
478
- className: o("rounded-2xl border p-3", F ? "w-full min-w-0 max-w-[492px]" : "max-w-[420px]", $.container, D),
479
- children: [/* @__PURE__ */ q("div", {
480
- className: "mb-3 flex min-h-6 items-center gap-2",
481
- children: [
482
- /* @__PURE__ */ K(I, {
483
- size: W.SM,
484
- className: o("shrink-0", $.headerIcon),
443
+ style: T,
444
+ className: a("flex flex-col gap-1", k ? "w-full min-w-0 max-w-[492px]" : "max-w-[420px]", Ae.container, w),
445
+ children: [/* @__PURE__ */ J("div", {
446
+ className: "flex items-center justify-between",
447
+ children: [/* @__PURE__ */ J("div", {
448
+ className: "flex items-center gap-1",
449
+ children: [/* @__PURE__ */ q(A, {
450
+ size: G.SM,
451
+ className: a("shrink-0", Ae.headerIcon),
452
+ "aria-hidden": !0
453
+ }), /* @__PURE__ */ q("span", {
454
+ className: a(S?.headerLabelClassName ?? "dial-tiny-semi-text", Ae.headerLabel),
455
+ children: j
456
+ })]
457
+ }), e.length >= 2 && (o || n) && /* @__PURE__ */ q(se, {
458
+ icon: /* @__PURE__ */ q(p, {
459
+ size: G.SM,
485
460
  "aria-hidden": !0
486
461
  }),
487
- /* @__PURE__ */ K("span", {
488
- className: o(T, $.headerLabel),
489
- children: L
490
- }),
491
- e.length >= 2 && (r || n) && /* @__PURE__ */ K(oe, {
492
- icon: /* @__PURE__ */ K(h, {
493
- size: W.SM,
494
- "aria-hidden": !0
495
- }),
496
- className: o("ms-auto h-6 w-6 rounded-lg", $.downloadAllButton),
497
- "aria-label": y,
498
- onClick: z
499
- })
500
- ]
462
+ size: oe.Small,
463
+ "aria-label": g,
464
+ onClick: M
465
+ })]
501
466
  }), /* @__PURE__ */ q("div", {
502
467
  role: "list",
503
- "aria-label": L,
504
- className: o("gap-3", F ? "grid grid-cols-[repeat(5,83px)] overflow-x-auto" : "flex flex-wrap"),
505
- children: [
506
- R.map((e) => /* @__PURE__ */ K("div", {
507
- role: "listitem",
508
- children: /* @__PURE__ */ K(Me, {
509
- attachment: e,
510
- onClick: n,
511
- onDownload: B,
512
- onRetry: s,
513
- labels: {
514
- clickLabel: m,
515
- retryLabel: g,
516
- promptLabel: S,
517
- pastedLabel: C,
518
- imageLabel: w,
519
- openInNewTabLabel: b
520
- }
521
- })
522
- }, e.id)),
523
- j.layout === J.Collapsed && /* @__PURE__ */ K("div", {
524
- role: "listitem",
525
- children: /* @__PURE__ */ K(Fe, {
526
- count: j.hiddenCount,
527
- onClick: () => A(!0)
528
- })
529
- }),
530
- F && k && /* @__PURE__ */ K("div", {
531
- role: "listitem",
532
- children: /* @__PURE__ */ K(Fe, {
533
- count: 0,
534
- onClick: () => A(!1),
535
- labels: { ariaLabel: v },
536
- children: /* @__PURE__ */ K(p, {
537
- size: W.MD,
538
- "aria-hidden": !0
539
- })
540
- })
468
+ "aria-label": j,
469
+ className: a("gap-3", k ? "grid grid-cols-[repeat(5,83px)]" : "flex flex-wrap"),
470
+ children: e.map((e, t) => /* @__PURE__ */ q("div", {
471
+ role: "listitem",
472
+ children: /* @__PURE__ */ q(Oe, {
473
+ attachment: e,
474
+ onClick: n,
475
+ onDownload: N,
476
+ onRetry: s,
477
+ labels: {
478
+ clickLabel: f,
479
+ retryLabel: m,
480
+ promptLabel: y,
481
+ pastedLabel: b,
482
+ imageLabel: x,
483
+ openInNewTabLabel: _
484
+ },
485
+ isSelected: e.id === u
541
486
  })
542
- ]
487
+ }, `${e.id}-${t}`))
543
488
  })]
544
489
  });
545
- }, Re = {
546
- overlay: "_overlay_1f3nw_1",
547
- icon: "_icon_1f3nw_5",
548
- deniedIcon: "_deniedIcon_1f3nw_9"
549
- }, ze = ({ isVisible: e, isAttachmentsAllowed: t = !0, labels: n, styles: r }) => {
550
- let { title: i, subtitle: s } = n ?? {}, { colors: c, typography: l } = r ?? {};
490
+ }, Ne = {
491
+ overlay: "_overlay_mzpdp_1",
492
+ icon: "_icon_mzpdp_5",
493
+ deniedIcon: "_deniedIcon_mzpdp_9"
494
+ }, Pe = ({ isVisible: e, isAttachmentsAllowed: t = !0, labels: n, styles: r }) => {
495
+ let { title: o, subtitle: s } = n ?? {}, { colors: c, typography: l } = r ?? {};
551
496
  if (!e) return null;
552
- let u = a({
553
- "--fd-bg": c?.background,
554
- "--fd-icon": c?.icon,
555
- "--fd-denied-icon": c?.deniedIcon
556
- }), d = i ?? (t ? "Attach files" : "No attachments allowed"), f = s ?? (t ? "Drop files here to attach them to message" : "Attachments can't be added to message"), p = t ? Re.icon : Re.deniedIcon, m = (e) => {
497
+ let u = i({
498
+ "--ai-fd-bg": c?.background,
499
+ "--ai-fd-icon": c?.icon,
500
+ "--ai-fd-denied-icon": c?.deniedIcon
501
+ }), d = o ?? (t ? "Attach files" : "No attachments allowed"), f = s ?? (t ? "Drop files here to attach them to message" : "Attachments can't be added to message"), p = t ? Ne.icon : Ne.deniedIcon, m = (e) => {
557
502
  e.preventDefault();
558
- }, h = t ? v : ee;
559
- return /* @__PURE__ */ K("div", {
503
+ }, h = t ? g : B;
504
+ return /* @__PURE__ */ q("div", {
560
505
  role: "status",
561
506
  "aria-live": "polite",
562
- className: o("fixed inset-0 z-[9999] flex items-center justify-center backdrop-blur-sm", Re.overlay, t ? "pointer-events-none" : "pointer-events-auto cursor-not-allowed"),
507
+ className: a("fixed inset-0 z-[9999] flex items-center justify-center backdrop-blur-sm", Ne.overlay, t ? "pointer-events-none" : "pointer-events-auto cursor-not-allowed"),
563
508
  onDragOver: t ? void 0 : m,
564
509
  onDrop: t ? void 0 : m,
565
510
  style: u,
566
- children: /* @__PURE__ */ q("div", {
511
+ children: /* @__PURE__ */ J("div", {
567
512
  className: "flex flex-col items-center text-center",
568
513
  children: [
569
- /* @__PURE__ */ K(h, {
514
+ /* @__PURE__ */ q(h, {
570
515
  size: 100,
571
516
  className: p,
572
517
  "aria-hidden": !0
573
518
  }),
574
- /* @__PURE__ */ K("span", {
575
- className: o("mt-5", l?.titleClassName ?? "dial-h3-text"),
519
+ /* @__PURE__ */ q("span", {
520
+ className: a("mt-5", l?.titleClassName ?? "dial-h3-text"),
576
521
  children: d
577
522
  }),
578
- /* @__PURE__ */ K("span", {
579
- className: o("mt-4", l?.subtitleClassName ?? "dial-small-text"),
523
+ /* @__PURE__ */ q("span", {
524
+ className: a("mt-4", l?.subtitleClassName ?? "dial-small-text"),
580
525
  children: f
581
526
  })
582
527
  ]
583
528
  })
584
529
  });
585
- }, Be = (e, n, r = {}) => {
586
- let { screenshotName: a = "Screenshot.png", pastedTextName: o = "Pasted text" } = r;
587
- return { handlePaste: s((r) => {
588
- if (!r.clipboardData) return;
589
- let s = Array.from(r.clipboardData.items).filter((e) => e.kind === "file" && e.type.startsWith("image/")), c = r.clipboardData.getData("text/plain").length > 0;
590
- if (s.length > 0 && !c) {
530
+ }, Fe = (e, n, i = {}) => {
531
+ let { screenshotName: a = "Screenshot.png", pastedTextName: s = "Pasted text" } = i;
532
+ return { handlePaste: o((i) => {
533
+ if (!i.clipboardData) return;
534
+ let o = Array.from(i.clipboardData.items).filter((e) => e.kind === "file" && e.type.startsWith("image/")), c = i.clipboardData.getData("text/plain").length > 0;
535
+ if (o.length > 0 && !c) {
591
536
  let n = [];
592
- for (let e of s) {
593
- let r = e.getAsFile();
594
- if (!r) continue;
595
- let o = new File([r], a, { type: r.type }), s = {
596
- id: pe(),
537
+ for (let e of o) {
538
+ let i = e.getAsFile();
539
+ if (!i) continue;
540
+ let o = new File([i], a, { type: i.type }), s = {
541
+ id: Y(),
597
542
  name: a,
598
- contentType: r.type,
543
+ contentType: i.type,
599
544
  file: o,
600
545
  type: t.Image,
601
- status: i.Idle,
546
+ status: r.Idle,
602
547
  previewUrl: URL.createObjectURL(o)
603
548
  };
604
549
  n.push(s);
605
550
  }
606
- r.preventDefault(), e(n);
551
+ i.preventDefault(), e(n);
607
552
  return;
608
553
  }
609
- let l = r.clipboardData.getData("text/plain");
554
+ let l = i.clipboardData.getData("text/plain");
610
555
  if (l.length > n) {
611
- let n = l.trim(), a = (n.length > 80 ? `${n.slice(0, 80).trimEnd()}…` : n) || o, s = new File([l], a, { type: "text/plain" }), c = {
612
- id: pe(),
556
+ let n = l.trim(), a = (n.length > 80 ? `${n.slice(0, 80).trimEnd()}…` : n) || s, o = new File([l], a, { type: "text/plain" }), c = {
557
+ id: Y(),
613
558
  name: a,
614
559
  contentType: "text/plain",
615
- file: s,
560
+ file: o,
616
561
  type: t.Pasted,
617
- status: i.Idle
562
+ status: r.Idle
618
563
  };
619
- r.preventDefault(), e([c]);
564
+ i.preventDefault(), e([c]);
620
565
  }
621
566
  }, [
622
567
  e,
623
568
  n,
624
569
  a,
625
- o
570
+ s
626
571
  ]) };
627
- }, Ve = 100;
572
+ }, Ie = 100;
628
573
  //#endregion
629
- export { de as ATTACHMENT_COLLAPSED_VISIBLE_COUNT, ue as ATTACHMENT_COLLAPSE_THRESHOLD, Me as AttachmentCard, Le as AttachmentGroup, Fe as AttachmentMoreTile, J as AttachmentTilesLayout, Ne as AttachmentTray, ze as FileDndOverlay, Q as LazyImageLoadStatus, Ve as MAX_UPLOADS_PER_MINUTE, pe as generateAttachmentId, Y as getAttachmentCardState, ve as getAttachmentIcon, Se as getAttachmentTilesPlan, be as getExtFromContentType, me as getNameWithoutExtension, _e as isMimeTypeAllowed, ge as mimeTypesToExtensionLabels, Be as useClipboardPaste, Ae as useLazyImageLoad };
574
+ export { Se as ATTACHMENT_COLLAPSE_THRESHOLD, Oe as AttachmentCard, Me as AttachmentGroup, ke as AttachmentTray, Pe as FileDndOverlay, $ as LazyImageLoadStatus, Ie as MAX_UPLOADS_PER_MINUTE, Y as generateAttachmentId, X as getAttachmentCardState, pe as getAttachmentIcon, he as getExtFromContentType, le as getNameWithoutExtension, fe as isMimeTypeAllowed, de as mimeTypesToExtensionLabels, Fe as useClipboardPaste, Ee as useLazyImageLoad };