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