@epam/ai-dial-attachment-input 1.0.0-rc.2 → 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.
- package/components/AttachmentCard/AttachmentCard.d.ts.map +1 -1
- package/components/AttachmentCard/Attachments/Actions.d.ts +1 -1
- package/components/AttachmentCard/Attachments/Actions.d.ts.map +1 -1
- package/components/AttachmentCard/Attachments/Audio.d.ts +2 -0
- package/components/AttachmentCard/Attachments/Audio.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 +3 -5
- package/index.d.ts.map +1 -1
- package/index.js +315 -370
- package/models/attachment-card.d.ts +8 -2
- package/models/attachment-card.d.ts.map +1 -1
- package/models/attachment-file-row.d.ts +2 -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/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,177 +1,163 @@
|
|
|
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 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
|
-
},
|
|
11
|
+
}, ue = {
|
|
13
12
|
image: "Image files",
|
|
14
13
|
audio: "Audio files",
|
|
15
14
|
video: "Video files",
|
|
16
15
|
text: "Text files"
|
|
17
|
-
},
|
|
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(", "),
|
|
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
|
-
}),
|
|
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
|
|
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 W;
|
|
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
|
+
}, me = (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 ? 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
|
-
},
|
|
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 =
|
|
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
|
-
},
|
|
100
|
-
let { type:
|
|
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 :
|
|
108
|
-
typeLabel: f ? null :
|
|
106
|
+
BottomIcon: f ? null : me(e),
|
|
107
|
+
typeLabel: f ? null : ge(e, n)
|
|
109
108
|
};
|
|
110
|
-
},
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
tile: "
|
|
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
|
-
}),
|
|
143
|
-
icon: /* @__PURE__ */
|
|
144
|
-
size:
|
|
128
|
+
}), _e = ({ ...e }) => /* @__PURE__ */ q(Q, {
|
|
129
|
+
icon: /* @__PURE__ */ q(te, {
|
|
130
|
+
size: G.SM,
|
|
145
131
|
"aria-hidden": !0
|
|
146
132
|
}),
|
|
147
|
-
className:
|
|
133
|
+
className: Z.retryIcon,
|
|
148
134
|
...e
|
|
149
|
-
}),
|
|
150
|
-
icon: /* @__PURE__ */
|
|
151
|
-
size:
|
|
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
|
-
}),
|
|
156
|
-
icon: /* @__PURE__ */
|
|
157
|
-
size:
|
|
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
|
-
}),
|
|
162
|
-
icon: /* @__PURE__ */
|
|
163
|
-
size:
|
|
147
|
+
}), be = ({ ...e }) => /* @__PURE__ */ q(Q, {
|
|
148
|
+
icon: /* @__PURE__ */ q(ne, {
|
|
149
|
+
size: G.SM,
|
|
164
150
|
"aria-hidden": !0
|
|
165
151
|
}),
|
|
166
|
-
className:
|
|
152
|
+
className: Z.hoverIcon,
|
|
167
153
|
...e
|
|
168
|
-
}),
|
|
169
|
-
let { clickLabel: u = "Open attachment", downloadLabel: d = "Download attachment", removeLabel: f = "Remove attachment" } =
|
|
170
|
-
|
|
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__ */
|
|
173
|
-
style:
|
|
174
|
-
...
|
|
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:
|
|
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__ */
|
|
171
|
+
/* @__PURE__ */ q("span", {
|
|
186
172
|
title: e.name,
|
|
187
|
-
className:
|
|
188
|
-
children: t ? /* @__PURE__ */
|
|
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__ */
|
|
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
|
-
|
|
188
|
+
r && /* @__PURE__ */ q(ve, {
|
|
203
189
|
ariaLabel: d,
|
|
204
|
-
onClick:
|
|
190
|
+
onClick: r,
|
|
205
191
|
id: e.id
|
|
206
192
|
}),
|
|
207
|
-
|
|
193
|
+
i && /* @__PURE__ */ q(be, {
|
|
208
194
|
ariaLabel: f,
|
|
209
|
-
onClick:
|
|
195
|
+
onClick: i,
|
|
210
196
|
id: e.id
|
|
211
197
|
})
|
|
212
198
|
]
|
|
213
199
|
});
|
|
214
|
-
},
|
|
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
|
-
},
|
|
218
|
-
let { clickLabel:
|
|
219
|
-
(e.key === "Enter" || e.key === " ") && (e.preventDefault(),
|
|
220
|
-
}, V =
|
|
221
|
-
window.open(
|
|
222
|
-
}, [
|
|
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:
|
|
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
|
-
}),
|
|
227
|
-
className:
|
|
228
|
-
children: [/* @__PURE__ */
|
|
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:
|
|
216
|
+
className: Z.typeText,
|
|
231
217
|
"aria-hidden": !0
|
|
232
|
-
}), /* @__PURE__ */
|
|
233
|
-
className:
|
|
234
|
-
children:
|
|
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
|
-
|
|
238
|
-
},
|
|
239
|
-
|
|
240
|
-
|
|
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":
|
|
243
|
-
className:
|
|
244
|
-
children: /* @__PURE__ */
|
|
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
|
-
|
|
247
|
-
ariaLabel:
|
|
248
|
-
errorTitle:
|
|
249
|
-
errorDescId:
|
|
250
|
-
onClick:
|
|
251
|
-
id:
|
|
232
|
+
R && /* @__PURE__ */ q(ve, {
|
|
233
|
+
ariaLabel: b,
|
|
234
|
+
errorTitle: F,
|
|
235
|
+
errorDescId: P,
|
|
236
|
+
onClick: f,
|
|
237
|
+
id: O
|
|
252
238
|
}),
|
|
253
|
-
|
|
254
|
-
ariaLabel:
|
|
255
|
-
errorTitle:
|
|
256
|
-
errorDescId:
|
|
257
|
-
onClick:
|
|
258
|
-
id:
|
|
239
|
+
z && /* @__PURE__ */ q(_e, {
|
|
240
|
+
ariaLabel: x,
|
|
241
|
+
errorTitle: F,
|
|
242
|
+
errorDescId: P,
|
|
243
|
+
onClick: s,
|
|
244
|
+
id: O
|
|
259
245
|
}),
|
|
260
|
-
|
|
261
|
-
ariaLabel:
|
|
262
|
-
errorTitle:
|
|
263
|
-
errorDescId:
|
|
264
|
-
onClick:
|
|
246
|
+
m && /* @__PURE__ */ q(ye, {
|
|
247
|
+
ariaLabel: x,
|
|
248
|
+
errorTitle: F,
|
|
249
|
+
errorDescId: P,
|
|
250
|
+
onClick: H
|
|
265
251
|
}),
|
|
266
|
-
|
|
267
|
-
ariaLabel:
|
|
268
|
-
errorTitle:
|
|
269
|
-
errorDescId:
|
|
270
|
-
onClick:
|
|
271
|
-
id:
|
|
252
|
+
v && /* @__PURE__ */ q(be, {
|
|
253
|
+
ariaLabel: x,
|
|
254
|
+
errorTitle: F,
|
|
255
|
+
errorDescId: P,
|
|
256
|
+
onClick: v,
|
|
257
|
+
id: O
|
|
272
258
|
}),
|
|
273
|
-
|
|
274
|
-
id:
|
|
259
|
+
N && /* @__PURE__ */ q("span", {
|
|
260
|
+
id: P,
|
|
275
261
|
role: "status",
|
|
276
262
|
"aria-live": "polite",
|
|
277
263
|
className: "sr-only",
|
|
278
|
-
children:
|
|
264
|
+
children: F
|
|
279
265
|
})
|
|
280
266
|
] });
|
|
281
|
-
return /* @__PURE__ */
|
|
282
|
-
style:
|
|
283
|
-
className:
|
|
284
|
-
children: /* @__PURE__ */
|
|
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":
|
|
273
|
+
"aria-label": b,
|
|
288
274
|
onClick: ne,
|
|
289
|
-
onKeyDown:
|
|
290
|
-
style:
|
|
291
|
-
className:
|
|
292
|
-
children:
|
|
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
|
-
},
|
|
281
|
+
}, $ = /* @__PURE__ */ function(e) {
|
|
296
282
|
return e.Idle = "idle", e.Loading = "loading", e.Loaded = "loaded", e.Error = "error", e;
|
|
297
|
-
}({}),
|
|
298
|
-
let n =
|
|
299
|
-
return
|
|
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]),
|
|
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
|
-
},
|
|
313
|
-
let { clickLabel:
|
|
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__ */
|
|
320
|
-
className:
|
|
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 ?
|
|
329
|
-
children: /* @__PURE__ */
|
|
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
|
-
|
|
333
|
-
onClick:
|
|
334
|
-
id: h
|
|
318
|
+
o && /* @__PURE__ */ q(be, {
|
|
319
|
+
onClick: o,
|
|
320
|
+
id: h,
|
|
321
|
+
className: Z.imageActionButton
|
|
335
322
|
}),
|
|
336
|
-
c && /* @__PURE__ */
|
|
323
|
+
c && /* @__PURE__ */ q(ve, {
|
|
337
324
|
onClick: c,
|
|
338
|
-
id: h
|
|
325
|
+
id: h,
|
|
326
|
+
className: Z.imageActionButton
|
|
339
327
|
}),
|
|
340
|
-
w !==
|
|
341
|
-
variant:
|
|
328
|
+
w !== $.Loaded && /* @__PURE__ */ q(re, {
|
|
329
|
+
variant: ie.Rectangular,
|
|
342
330
|
width: "100%",
|
|
343
331
|
height: "100%",
|
|
344
|
-
active: w ===
|
|
345
|
-
overlay: /* @__PURE__ */
|
|
346
|
-
size:
|
|
347
|
-
className:
|
|
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__ */
|
|
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:
|
|
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
|
-
},
|
|
364
|
-
let { colors:
|
|
365
|
-
"--
|
|
366
|
-
"--
|
|
367
|
-
"--
|
|
368
|
-
"--
|
|
369
|
-
"--
|
|
370
|
-
"--
|
|
371
|
-
"--
|
|
372
|
-
"--
|
|
373
|
-
"--
|
|
374
|
-
"--
|
|
375
|
-
"--
|
|
376
|
-
"--
|
|
377
|
-
"--
|
|
378
|
-
|
|
379
|
-
|
|
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:
|
|
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:
|
|
388
|
-
|
|
378
|
+
cssVars: g,
|
|
379
|
+
isSelected: f
|
|
380
|
+
}) : _ ? /* @__PURE__ */ q(De, {
|
|
389
381
|
attachment: e,
|
|
390
|
-
labels:
|
|
382
|
+
labels: u,
|
|
391
383
|
onClick: s,
|
|
392
384
|
onExpand: o,
|
|
393
385
|
styles: d,
|
|
394
386
|
onRemove: r,
|
|
395
|
-
cssVars:
|
|
396
|
-
onDownload: c
|
|
397
|
-
|
|
387
|
+
cssVars: g,
|
|
388
|
+
onDownload: c,
|
|
389
|
+
isSelected: f
|
|
390
|
+
}) : /* @__PURE__ */ q(Te, {
|
|
398
391
|
attachment: e,
|
|
399
392
|
onClick: s,
|
|
400
|
-
onRetry:
|
|
393
|
+
onRetry: a,
|
|
401
394
|
onRemove: r,
|
|
402
395
|
onDownload: c,
|
|
403
|
-
isLink:
|
|
404
|
-
isPasted:
|
|
396
|
+
isLink: y,
|
|
397
|
+
isPasted: m,
|
|
405
398
|
styles: d,
|
|
406
|
-
labels:
|
|
399
|
+
labels: u,
|
|
407
400
|
onExpand: o,
|
|
408
|
-
cssVars:
|
|
409
|
-
isExpandable:
|
|
401
|
+
cssVars: g,
|
|
402
|
+
isExpandable: h,
|
|
403
|
+
isSelected: f
|
|
410
404
|
});
|
|
411
|
-
},
|
|
412
|
-
let { ariaLabel: c = "Attached files", removeLabel: l, retryLabel: u, clickLabel: d } =
|
|
413
|
-
return e.length === 0 ? null : /* @__PURE__ */
|
|
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:
|
|
417
|
-
children: e.map((e) => /* @__PURE__ */
|
|
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__ */
|
|
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
|
-
},
|
|
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]);
|
|
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
|
|
468
|
-
let t = e.filter((e) => e.status ===
|
|
469
|
-
|
|
470
|
-
},
|
|
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 &&
|
|
438
|
+
n && o?.([n]);
|
|
473
439
|
};
|
|
474
|
-
return /* @__PURE__ */
|
|
440
|
+
return /* @__PURE__ */ J("div", {
|
|
475
441
|
role: "group",
|
|
476
442
|
"aria-label": d,
|
|
477
|
-
style:
|
|
478
|
-
className:
|
|
479
|
-
children: [/* @__PURE__ */
|
|
480
|
-
className: "
|
|
481
|
-
children: [
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
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
|
-
|
|
488
|
-
|
|
489
|
-
|
|
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":
|
|
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
|
-
})
|
|
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
|
-
},
|
|
546
|
-
overlay: "
|
|
547
|
-
icon: "
|
|
548
|
-
deniedIcon: "
|
|
549
|
-
},
|
|
550
|
-
let { title:
|
|
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 =
|
|
553
|
-
"--fd-bg": c?.background,
|
|
554
|
-
"--fd-icon": c?.icon,
|
|
555
|
-
"--fd-denied-icon": c?.deniedIcon
|
|
556
|
-
}), d =
|
|
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 ?
|
|
559
|
-
return /* @__PURE__ */
|
|
503
|
+
}, h = t ? g : B;
|
|
504
|
+
return /* @__PURE__ */ q("div", {
|
|
560
505
|
role: "status",
|
|
561
506
|
"aria-live": "polite",
|
|
562
|
-
className:
|
|
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__ */
|
|
511
|
+
children: /* @__PURE__ */ J("div", {
|
|
567
512
|
className: "flex flex-col items-center text-center",
|
|
568
513
|
children: [
|
|
569
|
-
/* @__PURE__ */
|
|
514
|
+
/* @__PURE__ */ q(h, {
|
|
570
515
|
size: 100,
|
|
571
516
|
className: p,
|
|
572
517
|
"aria-hidden": !0
|
|
573
518
|
}),
|
|
574
|
-
/* @__PURE__ */
|
|
575
|
-
className:
|
|
519
|
+
/* @__PURE__ */ q("span", {
|
|
520
|
+
className: a("mt-5", l?.titleClassName ?? "dial-h3-text"),
|
|
576
521
|
children: d
|
|
577
522
|
}),
|
|
578
|
-
/* @__PURE__ */
|
|
579
|
-
className:
|
|
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
|
-
},
|
|
586
|
-
let { screenshotName: a = "Screenshot.png", pastedTextName:
|
|
587
|
-
return { handlePaste:
|
|
588
|
-
if (!
|
|
589
|
-
let
|
|
590
|
-
if (
|
|
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
|
|
593
|
-
let
|
|
594
|
-
if (!
|
|
595
|
-
let o = new File([
|
|
596
|
-
id:
|
|
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:
|
|
543
|
+
contentType: i.type,
|
|
599
544
|
file: o,
|
|
600
545
|
type: t.Image,
|
|
601
|
-
status:
|
|
546
|
+
status: r.Idle,
|
|
602
547
|
previewUrl: URL.createObjectURL(o)
|
|
603
548
|
};
|
|
604
549
|
n.push(s);
|
|
605
550
|
}
|
|
606
|
-
|
|
551
|
+
i.preventDefault(), e(n);
|
|
607
552
|
return;
|
|
608
553
|
}
|
|
609
|
-
let l =
|
|
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) ||
|
|
612
|
-
id:
|
|
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:
|
|
560
|
+
file: o,
|
|
616
561
|
type: t.Pasted,
|
|
617
|
-
status:
|
|
562
|
+
status: r.Idle
|
|
618
563
|
};
|
|
619
|
-
|
|
564
|
+
i.preventDefault(), e([c]);
|
|
620
565
|
}
|
|
621
566
|
}, [
|
|
622
567
|
e,
|
|
623
568
|
n,
|
|
624
569
|
a,
|
|
625
|
-
|
|
570
|
+
s
|
|
626
571
|
]) };
|
|
627
|
-
},
|
|
572
|
+
}, Ie = 100;
|
|
628
573
|
//#endregion
|
|
629
|
-
export {
|
|
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 };
|