@inkeep/agents-ui 0.0.0-dev-20260506222442 → 0.0.0-dev-20260506225821

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.
@@ -1,65 +1,205 @@
1
1
  "use client";
2
- import { jsx as a, jsxs as x } from "react/jsx-runtime";
3
- import P, { useState as C, useEffect as T, useMemo as w } from "react";
4
- import { CustomIcon as F } from "../../atoms/icons/custom-icon.js";
5
- import { useImagePreview as b } from "../../providers/image-preview-provider.js";
6
- import { useMessage as L } from "../../providers/message-provider.js";
7
- import { useChat as d } from "./chat-provider.js";
8
- import { useFileUploadApi as m, FileUploadRoot as M } from "../../atoms/file-upload.js";
9
- import { dataAttr as I } from "../../utils/misc.js";
10
- import { composeEventHandlers as l } from "../../utils/compose-event-handlers.js";
2
+ import { jsx as a, jsxs as j } from "react/jsx-runtime";
3
+ import C, { useState as h, useEffect as E, useMemo as w } from "react";
4
+ import { CustomIcon as v } from "../../atoms/icons/custom-icon.js";
5
+ import { useImagePreview as I } from "../../providers/image-preview-provider.js";
6
+ import { useMessage as k } from "../../providers/message-provider.js";
7
+ import { useChat as c } from "./chat-provider.js";
8
+ import { useFileUploadApi as d, FileUploadRoot as N } from "../../atoms/file-upload.js";
9
+ import { dataAttr as g } from "../../utils/misc.js";
10
+ import { composeEventHandlers as r } from "../../utils/compose-event-handlers.js";
11
11
  import { ikp as o } from "../factory.js";
12
- import { useInkeepConfig as y } from "../../providers/config-provider.js";
13
- const j = {
12
+ import { useInkeepConfig as T } from "../../providers/config-provider.js";
13
+ const L = {
14
14
  "application/pdf": "filePdf",
15
15
  "text/plain": "fileText",
16
16
  "text/markdown": "fileMarkdown",
17
17
  "text/html": "fileHtml",
18
18
  "text/csv": "fileCsv",
19
19
  "text/x-log": "fileLog",
20
- "application/json": "fileJson"
20
+ "application/json": "fileJson",
21
+ "text/x-sql": "fileSql",
22
+ "application/x-sql": "fileSql",
23
+ "text/x-script.python": "filePy",
24
+ "text/x-python": "filePy",
25
+ "text/x-python-script": "filePy"
21
26
  };
22
- function g(e) {
23
- return e.startsWith("image/");
27
+ function F(t) {
28
+ return t.startsWith("image/");
24
29
  }
25
- const p = {
30
+ const _ = {
31
+ // Images
26
32
  "image/png": [".png"],
27
33
  "image/jpeg": [".jpg", ".jpeg"],
28
34
  "image/webp": [".webp"],
35
+ // PDF
29
36
  "application/pdf": [".pdf"],
30
- "text/plain": [".txt"],
31
- "text/markdown": [".md"],
32
- "text/html": [".html"],
33
- "text/csv": [".csv"],
37
+ // Plain text & logs
38
+ "text/plain": [".txt", ".text", ".bat", ".cfg", ".conf", ".def", ".dic", ".in", ".list"],
34
39
  "text/x-log": [".log"],
35
- "application/json": [".json"]
36
- }, k = new Set(Object.keys(p)), U = Object.values(p).flat().join(", "), E = 10, N = 1024 * 1024 * 10, R = Object.entries(p).reduce(
37
- (e, [t, i]) => {
38
- for (const n of i) e[n] = t;
39
- return e;
40
+ // Markup & web
41
+ "text/markdown": [".md", ".markdown"],
42
+ "text/html": [".html", ".htm"],
43
+ "text/csv": [".csv"],
44
+ "text/xml": [".xml"],
45
+ "text/css": [".css"],
46
+ // Data formats
47
+ "application/json": [".json"],
48
+ "application/yaml": [".yaml", ".yml"],
49
+ "application/x-yaml": [".yaml", ".yml"],
50
+ "text/x-yaml": [".yaml", ".yml"],
51
+ "application/toml": [".toml"],
52
+ "application/x-toml": [".toml"],
53
+ "application/graphql": [".graphql", ".gql"],
54
+ "application/x-graphql": [".graphql", ".gql"],
55
+ "text/x-graphql": [".graphql", ".gql"],
56
+ "application/x-ndjson": [".ndjson"],
57
+ "application/json5": [".json5"],
58
+ "application/x-json5": [".json5"],
59
+ // JavaScript & TypeScript
60
+ "application/javascript": [".js", ".mjs"],
61
+ "text/javascript": [".js", ".mjs"],
62
+ "application/typescript": [".ts"],
63
+ "text/x-typescript": [".ts"],
64
+ "text/jsx": [".jsx"],
65
+ "text/tsx": [".tsx"],
66
+ // Shell & scripting
67
+ "text/x-sh": [".sh"],
68
+ "text/x-bash": [".bash"],
69
+ "application/x-bash": [".bash"],
70
+ "text/x-zsh": [".zsh"],
71
+ "text/x-shellscript": [".sh", ".ksh"],
72
+ "application/x-powershell": [".ps1"],
73
+ "text/vbscript": [".vbs"],
74
+ "text/x-awk": [".awk"],
75
+ "application/x-awk": [".awk"],
76
+ // C-family
77
+ "text/x-c": [".c", ".h"],
78
+ "text/x-c++": [".cpp", ".cc", ".cxx", ".hh"],
79
+ "text/x-csharp": [".cs"],
80
+ "text/x-objectivec": [".m"],
81
+ "text/x-objectivec++": [".mm"],
82
+ // JVM
83
+ "text/x-java": [".java"],
84
+ "text/x-scala": [".scala"],
85
+ "application/x-scala": [".scala"],
86
+ "text/x-kotlin": [".kt"],
87
+ "text/x-groovy": [".groovy"],
88
+ "text/x-clojure": [".clj"],
89
+ // Systems & compiled
90
+ "text/x-go": [".go"],
91
+ "text/x-golang": [".go"],
92
+ "text/x-rust": [".rs"],
93
+ "application/x-rust": [".rs"],
94
+ "text/x-swift": [".swift"],
95
+ "text/x-dart": [".dart"],
96
+ // Scripting languages
97
+ "text/x-python": [".py"],
98
+ "text/x-script.python": [".py"],
99
+ "text/x-python-script": [".py"],
100
+ "text/x-ruby": [".rb"],
101
+ "text/x-perl": [".pl"],
102
+ "text/x-lua": [".lua"],
103
+ "text/x-r": [".r"],
104
+ "text/x-R": [".r"],
105
+ "text/x-julia": [".jl"],
106
+ "text/x-elixir": [".ex"],
107
+ "text/x-erlang": [".erl"],
108
+ "text/x-haskell": [".hs"],
109
+ "text/x-lisp": [".lisp"],
110
+ // PHP
111
+ "text/x-php": [".php"],
112
+ "application/x-php": [".php"],
113
+ "application/x-httpd-php": [".php"],
114
+ "application/x-httpd-php-source": [".php"],
115
+ // Markup & templating
116
+ "text/x-tex": [".tex"],
117
+ "text/x-rst": [".rst"],
118
+ "text/x-handlebars": [".hbs"],
119
+ "text/x-mustache": [".mustache"],
120
+ "text/x-ejs": [".ejs"],
121
+ "text/x-jinja2": [".jinja", ".jinja2"],
122
+ "text/x-liquid": [".liquid"],
123
+ "text/x-erb": [".erb"],
124
+ "text/x-twig": [".twig"],
125
+ "text/x-pug": [".pug"],
126
+ "text/x-jade": [".jade"],
127
+ "text/x-tmpl": [".tmpl"],
128
+ "text/x-astro": [".astro"],
129
+ // Style
130
+ "text/x-sass": [".sass"],
131
+ "text/x-scss": [".scss"],
132
+ "text/x-less": [".less"],
133
+ // SQL
134
+ "text/x-sql": [".sql"],
135
+ "application/x-sql": [".sql"],
136
+ // Config & build
137
+ "text/x-makefile": [".makefile", ".mk"],
138
+ "text/x-cmake": [".cmake"],
139
+ "text/x-dockerfile": [".dockerfile"],
140
+ "text/x-gradle": [".gradle"],
141
+ "text/x-ini": [".ini"],
142
+ "text/x-properties": [".properties"],
143
+ "text/x-protobuf": [".proto"],
144
+ "application/x-protobuf": [".proto"],
145
+ "text/x-hcl": [".hcl"],
146
+ "text/x-terraform": [".tf"],
147
+ "application/x-terraform": [".tf"],
148
+ // Diff & patch
149
+ "text/x-diff": [".diff"],
150
+ "text/x-patch": [".patch"],
151
+ "application/x-patch": [".patch"],
152
+ // Assembly
153
+ "text/x-asm": [".asm", ".s"],
154
+ // Email
155
+ "message/rfc822": [".eml", ".mht", ".mhtml", ".mime", ".nws"],
156
+ // Subtitles & calendar
157
+ "text/srt": [".srt"],
158
+ "application/x-subrip": [".srt"],
159
+ "text/x-subrip": [".srt"],
160
+ "text/vtt": [".vtt"],
161
+ "text/x-vcard": [".vcf"],
162
+ "text/calendar": [".ics", ".ifb"],
163
+ // Office documents
164
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document": [".docx"],
165
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": [".xlsx"],
166
+ "application/vnd.openxmlformats-officedocument.presentationml.presentation": [".pptx"],
167
+ "application/vnd.oasis.opendocument.text": [".odt"],
168
+ "application/vnd.oasis.opendocument.spreadsheet": [".ods"],
169
+ "application/vnd.oasis.opendocument.presentation": [".odp"],
170
+ "application/vnd.apple.pages": [".pages"],
171
+ "application/vnd.apple.numbers": [".numbers"],
172
+ "application/vnd.apple.keynote": [".key"],
173
+ "application/x-iwork-pages-sffpages": [".pages"],
174
+ "application/x-iwork-numbers-sffnumbers": [".numbers"],
175
+ "application/x-iwork-keynote-sffkey": [".key"]
176
+ }, M = new Set(Object.keys(_)), P = 10, y = 1024 * 1024 * 10, q = Object.entries(_).reduce(
177
+ (t, [e, i]) => {
178
+ for (const n of i) t[n] = e;
179
+ return t;
40
180
  },
41
181
  {}
42
182
  );
43
- function A(e) {
44
- if (e.type) return e;
45
- const t = `.${e.name.split(".").pop()?.toLowerCase()}`, i = R[t];
46
- return i ? new File([e], e.name, { type: i }) : e;
183
+ function R(t) {
184
+ if (t.type) return t;
185
+ const e = `.${t.name.split(".").pop()?.toLowerCase()}`, i = q[e];
186
+ return i ? new File([t], t.name, { type: i }) : t;
47
187
  }
48
- function O(e) {
49
- if (!e.length) return null;
50
- const t = (i) => e.some((n) => n.errors.includes(i));
51
- return t("TOO_MANY_FILES") ? {
188
+ function U(t) {
189
+ if (!t.length) return null;
190
+ const e = (i) => t.some((n) => n.errors.includes(i));
191
+ return e("TOO_MANY_FILES") ? {
52
192
  title: "Attachment limit reached",
53
- message: `You can only attach up to ${E} files per message.`
54
- } : t("FILE_INVALID_TYPE") ? {
193
+ message: `You can only attach up to ${P} files per message.`
194
+ } : e("FILE_INVALID_TYPE") ? {
55
195
  title: "Unsupported file type",
56
- message: `Only ${U} files are supported.`
57
- } : t("FILE_TOO_LARGE") ? {
196
+ message: "Supported formats include images, PDFs, text, code, and document files."
197
+ } : e("FILE_TOO_LARGE") ? {
58
198
  title: "File too large",
59
- message: `Files must be smaller than ${N / 1024 / 1024}MB.`
60
- } : t("FILE_EXISTS") ? {
199
+ message: `Files must be smaller than ${y / 1024 / 1024}MB.`
200
+ } : e("FILE_EXISTS") ? {
61
201
  title: "File already exists",
62
- message: `The file "${e.find((n) => n.errors.includes("FILE_EXISTS"))?.file.name ?? "file"}" is already attached to this message.`
202
+ message: `The file "${t.find((n) => n.errors.includes("FILE_EXISTS"))?.file.name ?? "file"}" is already attached to this message.`
63
203
  } : {
64
204
  title: "File rejected",
65
205
  message: "This file could not be added."
@@ -67,265 +207,264 @@ function O(e) {
67
207
  }
68
208
  const S = o("div", {
69
209
  _id: "aiChatMessage__Files"
70
- }), ue = ({ children: e, ...t }) => {
71
- const { message: i } = L();
210
+ }), dt = ({ children: t, ...e }) => {
211
+ const { message: i } = k();
72
212
  if (i.role !== "user") return null;
73
- const n = (i.parts ?? []).filter((r) => {
74
- if (r.type !== "file") return !1;
75
- const s = r.mediaType;
76
- return k.has(s ?? "");
213
+ const n = (i.parts ?? []).filter((s) => {
214
+ if (s.type !== "file") return !1;
215
+ const l = s.mediaType;
216
+ return M.has(l ?? "");
77
217
  });
78
- return n.length ? /* @__PURE__ */ a(S, { ...t, children: e(n) }) : null;
79
- }, D = o("button", {
218
+ return n.length ? /* @__PURE__ */ a(S, { ...e, children: t(n) }) : null;
219
+ }, A = o("button", {
80
220
  _id: "aiChatMessage__File"
81
- }), pe = ({
82
- url: e,
83
- name: t,
221
+ }), xt = ({
222
+ url: t,
223
+ name: e,
84
224
  mediaType: i,
85
225
  onClick: n,
86
- ...r
226
+ ...s
87
227
  }) => {
88
- const { openImagePreview: s } = b(), [c, f] = C(!0), _ = w(
89
- () => new File([], t ?? "file", { type: i }),
90
- [t, i]
228
+ const { openImagePreview: l } = I(), [p, m] = h(!0), u = w(
229
+ () => new File([], e ?? "file", { type: i }),
230
+ [e, i]
91
231
  );
92
232
  return /* @__PURE__ */ a(
93
- v.Provider,
233
+ b.Provider,
94
234
  {
95
- value: { file: _, objectUrl: e, isLoading: c, setIsLoading: f, onRemove: () => {
235
+ value: { file: u, objectUrl: t, isLoading: p, setIsLoading: m, onRemove: () => {
96
236
  } },
97
237
  children: /* @__PURE__ */ a(
98
- D,
238
+ A,
99
239
  {
100
240
  type: "button",
101
- "aria-label": g(i ?? "") ? `Preview ${t ?? "file"}` : `Open ${t ?? "file"} in new tab`,
102
- "data-loading": I(c),
103
- onClick: l(n, () => {
104
- if (g(i ?? ""))
105
- s({ url: e, name: t ?? "file" });
106
- else if (e)
107
- if (e.startsWith("data:")) {
108
- const h = document.createElement("a");
109
- h.href = e, h.download = t ?? "file", h.click();
241
+ "aria-label": F(i ?? "") ? `Preview ${e ?? "file"}` : `Open ${e ?? "file"} in new tab`,
242
+ "data-loading": g(p),
243
+ onClick: r(n, () => {
244
+ if (F(i ?? ""))
245
+ l({ url: t, name: e ?? "file" });
246
+ else if (t)
247
+ if (t.startsWith("data:")) {
248
+ const f = document.createElement("a");
249
+ f.href = t, f.download = e ?? "file", f.click();
110
250
  } else
111
- window.open(e, "_blank", "noopener,noreferrer");
251
+ window.open(t, "_blank", "noopener,noreferrer");
112
252
  }),
113
- ...r
253
+ ...s
114
254
  }
115
255
  )
116
256
  }
117
257
  );
118
- }, $ = o("div", {
258
+ }, O = o("div", {
119
259
  _id: "aiChatInput__Fieldset"
120
- }), B = (e) => {
121
- const t = m();
260
+ }), D = (t) => {
261
+ const e = d();
122
262
  return /* @__PURE__ */ a(
123
- $,
263
+ O,
124
264
  {
125
- ...t.getDropzoneProps({ disableClick: !0 }),
126
- "data-drag-over": I(t.dragging),
127
- ...e
265
+ ...e.getDropzoneProps({ disableClick: !0 }),
266
+ "data-drag-over": g(e.dragging),
267
+ ...t
128
268
  }
129
269
  );
130
- }, fe = ({
131
- ...e
270
+ }, mt = ({
271
+ ...t
132
272
  }) => {
133
- const { files: t, setFiles: i, showInputNotification: n } = d();
273
+ const { files: e, setFiles: i, showInputNotification: n } = c();
134
274
  return /* @__PURE__ */ a(
135
- M,
275
+ N,
136
276
  {
137
- accept: p,
138
- maxFiles: E,
139
- maxFileSize: N,
277
+ accept: _,
278
+ maxFiles: P,
279
+ maxFileSize: y,
140
280
  preventDocumentDrop: !0,
141
- acceptedFiles: t,
142
- onFileAccept: (r) => i(r.files),
143
- onFileReject: (r) => {
144
- const s = O(r.files);
145
- s && n(s);
281
+ acceptedFiles: e,
282
+ onFileAccept: (s) => i(s.files),
283
+ onFileReject: (s) => {
284
+ const l = U(s.files);
285
+ l && n(l);
146
286
  },
147
- children: /* @__PURE__ */ a(B, { ...e })
287
+ children: /* @__PURE__ */ a(D, { ...t })
148
288
  }
149
289
  );
150
- }, _e = o("div", {
290
+ }, ut = o("div", {
151
291
  _id: "aiChatInput__DropZone"
152
- }), X = o("div", {
292
+ }), $ = o("div", {
153
293
  _id: "aiChatInput__Notification"
154
- }), he = (e) => {
155
- const { inputNotification: t } = d();
156
- return t ? /* @__PURE__ */ a(X, { role: "alert", ...e }) : null;
157
- }, H = o("p", {
294
+ }), ft = (t) => {
295
+ const { inputNotification: e } = c();
296
+ return e ? /* @__PURE__ */ a($, { role: "alert", ...t }) : null;
297
+ }, B = o("p", {
158
298
  _id: "aiChatInput__NotificationTitle"
159
- }), Ce = ({
160
- children: e,
161
- ...t
299
+ }), ht = ({
300
+ children: t,
301
+ ...e
162
302
  }) => {
163
- const { inputNotification: i } = d();
164
- return i?.title ? /* @__PURE__ */ x(H, { ...t, children: [
165
- e,
303
+ const { inputNotification: i } = c();
304
+ return i?.title ? /* @__PURE__ */ j(B, { ...e, children: [
305
+ t,
166
306
  i.title
167
307
  ] }) : null;
168
- }, Y = o("p", {
308
+ }, z = o("p", {
169
309
  _id: "aiChatInput__NotificationMessage"
170
- }), Fe = (e) => {
171
- const { inputNotification: t } = d();
172
- return /* @__PURE__ */ a(Y, { ...e, children: t?.message });
173
- }, z = o("button", {
310
+ }), vt = (t) => {
311
+ const { inputNotification: e } = c();
312
+ return /* @__PURE__ */ a(z, { ...t, children: e?.message });
313
+ }, H = o("button", {
174
314
  _id: "aiChatInput__NotificationClose"
175
- }), Ie = ({
176
- onClick: e,
177
- ...t
315
+ }), gt = ({
316
+ onClick: t,
317
+ ...e
178
318
  }) => {
179
- const { clearInputNotification: i } = d();
319
+ const { clearInputNotification: i } = c();
180
320
  return /* @__PURE__ */ a(
181
- z,
321
+ H,
182
322
  {
183
323
  type: "button",
184
324
  "aria-label": "Dismiss",
185
- onClick: l(e, i),
186
- ...t
325
+ onClick: r(t, i),
326
+ ...e
187
327
  }
188
328
  );
189
- }, ve = o("div", {
329
+ }, _t = o("div", {
190
330
  _id: "aiChatInput__NotificationContent"
191
- }), ge = o("div", {
331
+ }), bt = o("div", {
192
332
  _id: "aiChatInput__NotificationHeader"
193
- }), Pe = o(F, {
333
+ }), Ft = o(v, {
194
334
  _id: "aiChatInput__FileUploadButtonIcon",
195
335
  iconKey: "fileUpload"
196
- }), K = o("button", {
336
+ }), X = o("button", {
197
337
  _id: "aiChatInput__FileUploadButton"
198
- }), be = (e) => {
199
- const { aiChatSettings: t } = y(), i = m(), { onClick: n, ...r } = e;
338
+ }), Ct = (t) => {
339
+ const { aiChatSettings: e } = T(), i = d(), { onClick: n, ...s } = t;
200
340
  return /* @__PURE__ */ a(
201
- K,
341
+ X,
202
342
  {
203
343
  type: "button",
204
344
  "aria-label": "Upload file",
205
- disabled: t.isViewOnly,
206
- onClick: l(n, () => i.openFilePicker()),
207
- ...r
345
+ disabled: e.isViewOnly,
346
+ onClick: r(n, () => i.openFilePicker()),
347
+ ...s
208
348
  }
209
349
  );
210
- }, Z = o("input", {
350
+ }, Y = o("input", {
211
351
  _id: "aiChatInput__FileInput"
212
- }), Ee = (e) => {
213
- const t = m();
214
- return /* @__PURE__ */ a(Z, { ...e, ...t.getHiddenInputProps() });
215
- }, V = o("div", {
352
+ }), It = (t) => {
353
+ const e = d();
354
+ return /* @__PURE__ */ a(Y, { ...t, ...e.getHiddenInputProps() });
355
+ }, K = o("div", {
216
356
  _id: "aiChatInput__FileList"
217
- }), Ne = ({ children: e, ...t }) => {
218
- const n = m().acceptedFiles;
219
- return n.length ? /* @__PURE__ */ a(V, { ...t, children: e(n) }) : null;
220
- }, v = P.createContext(null);
221
- function u() {
222
- const e = P.useContext(v);
223
- if (!e) throw new Error("useFileContext must be used within EmbeddedChatPrimitiveFileItem");
224
- return e;
357
+ }), Pt = ({ children: t, ...e }) => {
358
+ const n = d().acceptedFiles;
359
+ return n.length ? /* @__PURE__ */ a(K, { ...e, children: t(n) }) : null;
360
+ }, b = C.createContext(null);
361
+ function x() {
362
+ const t = C.useContext(b);
363
+ if (!t) throw new Error("useFileContext must be used within EmbeddedChatPrimitiveFileItem");
364
+ return t;
225
365
  }
226
- const W = o("div", {
366
+ const Z = o("div", {
227
367
  _id: "aiChatInput__FileItem"
228
- }), xe = ({ file: e, ...t }) => {
229
- const i = m(), [n, r] = C(void 0), [s, c] = C(!0);
230
- T(() => i.createFileUrl(e, (_) => {
231
- r(_), c(!0);
232
- }), [e]);
233
- const f = () => i.deleteFile(e);
234
- return /* @__PURE__ */ a(v.Provider, { value: { file: e, objectUrl: n, isLoading: s, setIsLoading: c, onRemove: f }, children: /* @__PURE__ */ a(W, { "data-loading": I(s), ...t }) });
235
- }, G = o("button", {
368
+ }), yt = ({ file: t, ...e }) => {
369
+ const i = d(), [n, s] = h(void 0), [l, p] = h(!0);
370
+ E(() => i.createFileUrl(t, (u) => {
371
+ s(u), p(!0);
372
+ }), [t]);
373
+ const m = () => i.deleteFile(t);
374
+ return /* @__PURE__ */ a(b.Provider, { value: { file: t, objectUrl: n, isLoading: l, setIsLoading: p, onRemove: m }, children: /* @__PURE__ */ a(Z, { "data-loading": g(l), ...e }) });
375
+ }, V = o("button", {
236
376
  _id: "aiChatInput__FilePreviewTrigger"
237
- }), Te = ({
238
- onClick: e,
239
- ...t
377
+ }), jt = ({
378
+ onClick: t,
379
+ ...e
240
380
  }) => {
241
- const { objectUrl: i, file: n } = u(), { openImagePreview: r } = b();
381
+ const { objectUrl: i, file: n } = x(), { openImagePreview: s } = I();
242
382
  return /* @__PURE__ */ a(
243
- G,
383
+ V,
244
384
  {
245
385
  type: "button",
246
386
  "aria-label": `Preview ${n.name}`,
247
387
  disabled: !i,
248
- onClick: l(e, () => {
249
- i && r({ url: i, name: n.name });
388
+ onClick: r(t, () => {
389
+ i && s({ url: i, name: n.name });
250
390
  }),
251
- ...t
391
+ ...e
252
392
  }
253
393
  );
254
- }, J = o("span", {
394
+ }, W = o("span", {
255
395
  _id: "aiChatInput__FileContent"
256
- }), we = (e) => /* @__PURE__ */ a(J, { ...e }), q = o("img", {
396
+ }), Et = (t) => /* @__PURE__ */ a(W, { ...t }), G = o("img", {
257
397
  _id: "aiChatInput__FileThumbnail"
258
- }), Le = ({
259
- onLoad: e,
260
- ...t
398
+ }), wt = ({
399
+ onLoad: t,
400
+ ...e
261
401
  }) => {
262
- const { objectUrl: i, file: n, setIsLoading: r } = u();
402
+ const { objectUrl: i, file: n, setIsLoading: s } = x();
263
403
  return /* @__PURE__ */ a(
264
- q,
404
+ G,
265
405
  {
266
406
  src: i,
267
407
  alt: n.name,
268
- onLoad: l(e, () => r(!1)),
269
- ...t
408
+ onLoad: r(t, () => s(!1)),
409
+ ...e
270
410
  }
271
411
  );
272
- }, Me = ({ className: e }) => {
273
- const { file: t } = u(), i = j[A(t).type] ?? "fileText";
274
- return /* @__PURE__ */ a(F, { iconKey: i, className: e });
275
- }, Q = o("span", {
412
+ }, kt = ({ className: t }) => {
413
+ const { file: e } = x(), i = L[R(e).type] ?? "file";
414
+ return /* @__PURE__ */ a(v, { iconKey: i, className: t });
415
+ }, J = o("span", {
276
416
  _id: "aiChatInput__FileName"
277
- }), ye = (e) => {
278
- const { file: t } = u();
279
- return /* @__PURE__ */ a(Q, { ...e, children: t.name });
280
- }, ee = o("button", {
417
+ }), Nt = (t) => {
418
+ const { file: e } = x();
419
+ return /* @__PURE__ */ a(J, { ...t, children: e.name });
420
+ }, Q = o("button", {
281
421
  _id: "aiChatInput__FileRemove"
282
- }), je = o(F, {
422
+ }), Tt = o(v, {
283
423
  _id: "aiChatInput__FileRemoveIcon",
284
424
  iconKey: "close"
285
- }), ke = ({
286
- onClick: e,
287
- ...t
425
+ }), Lt = ({
426
+ onClick: t,
427
+ ...e
288
428
  }) => {
289
- const { onRemove: i } = u();
429
+ const { onRemove: i } = x();
290
430
  return /* @__PURE__ */ a(
291
- ee,
431
+ Q,
292
432
  {
293
433
  type: "button",
294
434
  "aria-label": "Remove file",
295
- onClick: l(e, i),
296
- ...t
435
+ onClick: r(t, i),
436
+ ...e
297
437
  }
298
438
  );
299
439
  };
300
440
  export {
301
- U as ACCEPTED_FILE_EXTENSIONS,
302
- k as ACCEPTED_FILE_MIME_TYPES,
303
- _e as EmbeddedChatPrimitiveDropZone,
304
- we as EmbeddedChatPrimitiveFileContent,
305
- Ee as EmbeddedChatPrimitiveFileInput,
306
- xe as EmbeddedChatPrimitiveFileItem,
307
- Ne as EmbeddedChatPrimitiveFileList,
308
- ye as EmbeddedChatPrimitiveFileName,
309
- Te as EmbeddedChatPrimitiveFilePreviewTrigger,
310
- ke as EmbeddedChatPrimitiveFileRemove,
311
- je as EmbeddedChatPrimitiveFileRemoveIcon,
312
- Le as EmbeddedChatPrimitiveFileThumbnail,
313
- Me as EmbeddedChatPrimitiveFileTypeIcon,
314
- be as EmbeddedChatPrimitiveFileUploadButton,
315
- Pe as EmbeddedChatPrimitiveFileUploadButtonIcon,
316
- fe as EmbeddedChatPrimitiveInputFieldset,
317
- he as EmbeddedChatPrimitiveInputNotification,
318
- Ie as EmbeddedChatPrimitiveInputNotificationClose,
319
- ve as EmbeddedChatPrimitiveInputNotificationContent,
320
- ge as EmbeddedChatPrimitiveInputNotificationHeader,
321
- Fe as EmbeddedChatPrimitiveInputNotificationMessage,
322
- Ce as EmbeddedChatPrimitiveInputNotificationTitle,
323
- pe as EmbeddedChatPrimitiveMessageFile,
324
- ue as EmbeddedChatPrimitiveMessageFiles,
325
- p as FILE_ACCEPT_MAP,
326
- j as FILE_TYPE_ICON_MAP,
327
- E as MAX_FILES,
328
- N as MAX_FILE_SIZE,
329
- g as isImageMimeType,
330
- A as normalizeFileType
441
+ M as ACCEPTED_FILE_MIME_TYPES,
442
+ ut as EmbeddedChatPrimitiveDropZone,
443
+ Et as EmbeddedChatPrimitiveFileContent,
444
+ It as EmbeddedChatPrimitiveFileInput,
445
+ yt as EmbeddedChatPrimitiveFileItem,
446
+ Pt as EmbeddedChatPrimitiveFileList,
447
+ Nt as EmbeddedChatPrimitiveFileName,
448
+ jt as EmbeddedChatPrimitiveFilePreviewTrigger,
449
+ Lt as EmbeddedChatPrimitiveFileRemove,
450
+ Tt as EmbeddedChatPrimitiveFileRemoveIcon,
451
+ wt as EmbeddedChatPrimitiveFileThumbnail,
452
+ kt as EmbeddedChatPrimitiveFileTypeIcon,
453
+ Ct as EmbeddedChatPrimitiveFileUploadButton,
454
+ Ft as EmbeddedChatPrimitiveFileUploadButtonIcon,
455
+ mt as EmbeddedChatPrimitiveInputFieldset,
456
+ ft as EmbeddedChatPrimitiveInputNotification,
457
+ gt as EmbeddedChatPrimitiveInputNotificationClose,
458
+ _t as EmbeddedChatPrimitiveInputNotificationContent,
459
+ bt as EmbeddedChatPrimitiveInputNotificationHeader,
460
+ vt as EmbeddedChatPrimitiveInputNotificationMessage,
461
+ ht as EmbeddedChatPrimitiveInputNotificationTitle,
462
+ xt as EmbeddedChatPrimitiveMessageFile,
463
+ dt as EmbeddedChatPrimitiveMessageFiles,
464
+ _ as FILE_ACCEPT_MAP,
465
+ L as FILE_TYPE_ICON_MAP,
466
+ P as MAX_FILES,
467
+ y as MAX_FILE_SIZE,
468
+ F as isImageMimeType,
469
+ R as normalizeFileType
331
470
  };