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