gentiq 0.7.29 → 0.7.31

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,26 +1,115 @@
1
- import { jsx as i, Fragment as J, jsxs as w } from "react/jsx-runtime";
1
+ import { jsx as i, Fragment as Z, jsxs as _ } from "react/jsx-runtime";
2
2
  import * as Ce from "react";
3
- import { useState as B, useCallback as oe, useMemo as St, useEffect as Q, Children as cn, useRef as Ge, memo as de, createContext as pe, useContext as Le } from "react";
3
+ import { createContext as de, useContext as Fe, useState as B, useEffect as J, useCallback as oe, useMemo as St, Children as cn, useRef as Ge, memo as pe } from "react";
4
4
  import { useTranslation as M, initReactI18next as un } from "react-i18next";
5
- import { ArrowDownIcon as dn, ChevronDownIcon as ie, BookIcon as pn, XIcon as he, CheckIcon as De, ArrowUpIcon as hn, Loader2Icon as gn, SquareIcon as mn, FileIcon as Et, PaperclipIcon as fn, MessageCircle as bn, RefreshCcwIcon as yn, ThumbsUpIcon as kn, ThumbsDownIcon as vn, CopyIcon as Nt, BrainIcon as wn, WrenchIcon as xn, ImagePlusIcon as _n, CodeIcon as Sn, DownloadIcon as ue, GlobeIcon as En, XCircleIcon as Tt, CheckCircleIcon as Nn, ClockIcon as Tn, CircleIcon as Cn, ChevronUpIcon as An } from "lucide-react";
6
- import { Slot as Ct } from "@radix-ui/react-slot";
7
- import { cva as Pe } from "class-variance-authority";
8
- import { StickToBottom as At, useStickToBottomContext as In } from "use-stick-to-bottom";
9
- import * as Me from "@radix-ui/react-collapsible";
10
- import * as K from "@radix-ui/react-tooltip";
11
- import { toast as Rn } from "sonner";
5
+ import { Slot as Et } from "@radix-ui/react-slot";
6
+ import { cva as De } from "class-variance-authority";
7
+ import { ArrowDownIcon as dn, ChevronDownIcon as ie, BookIcon as pn, XIcon as he, CheckIcon as Pe, ArrowUpIcon as hn, Loader2Icon as gn, SquareIcon as mn, FileIcon as Nt, PaperclipIcon as fn, MessageCircle as bn, RefreshCcwIcon as yn, ThumbsUpIcon as kn, ThumbsDownIcon as vn, CopyIcon as Tt, BrainIcon as wn, WrenchIcon as _n, ImagePlusIcon as xn, CodeIcon as Sn, DownloadIcon as ue, GlobeIcon as En, XCircleIcon as Ct, CheckCircleIcon as Nn, ClockIcon as Tn, CircleIcon as Cn, ChevronUpIcon as An } from "lucide-react";
8
+ import * as X from "@radix-ui/react-tooltip";
9
+ import { toast as In } from "sonner";
12
10
  import "@radix-ui/react-scroll-area";
13
- import { Streamdown as On } from "streamdown";
11
+ import { Streamdown as Rn } from "streamdown";
14
12
  import Ve from "katex";
15
13
  import { useControllableState as We } from "@radix-ui/react-use-controllable-state";
14
+ import * as Me from "@radix-ui/react-collapsible";
16
15
  import * as H from "@radix-ui/react-dialog";
17
- import { PrismLight as $ } from "react-syntax-highlighter";
18
- import Fn from "i18next";
19
- import * as L from "@radix-ui/react-select";
16
+ import { PrismLight as U } from "react-syntax-highlighter";
17
+ import { StickToBottom as At, useStickToBottomContext as On } from "use-stick-to-bottom";
18
+ import Ln from "i18next";
19
+ import * as F from "@radix-ui/react-select";
20
20
  import * as re from "@radix-ui/react-dropdown-menu";
21
21
  import * as Ye from "@radix-ui/react-checkbox";
22
- import { clsx as Ln } from "clsx";
22
+ import { clsx as Fn } from "clsx";
23
23
  import { twMerge as Dn } from "tailwind-merge";
24
+ const Pn = {
25
+ theme: "system",
26
+ setTheme: () => null,
27
+ accent: void 0,
28
+ setAccent: () => null,
29
+ radius: void 0,
30
+ setRadius: () => null
31
+ }, It = de(Pn);
32
+ function ki({
33
+ children: e,
34
+ defaultTheme: t = "system",
35
+ storageKey: n = "chatbot-theme",
36
+ config: o,
37
+ ...r
38
+ }) {
39
+ const [a, l] = B(() => {
40
+ const u = window.localStorage.getItem(n);
41
+ return u === "system" || u === "light" || u === "dark" ? u : void 0;
42
+ }), [c, s] = B(
43
+ () => window.localStorage.getItem(n + "-accent") || void 0
44
+ ), [p, g] = B(
45
+ () => window.localStorage.getItem(n + "-radius") || "1.25rem"
46
+ ), { i18n: m } = M(["theme"]), f = a ?? o?.defaultTheme ?? t, b = c ?? o?.accent;
47
+ J(() => {
48
+ const u = window.document.documentElement;
49
+ if (u.classList.remove("light", "dark"), f === "system") {
50
+ const w = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
51
+ u.classList.add(w);
52
+ return;
53
+ }
54
+ u.classList.add(f);
55
+ }, [f]), J(() => {
56
+ const u = window.document.documentElement, w = m.language?.split("-")[0] || m.language;
57
+ let v = o?.typography?.fontFamily;
58
+ if (typeof v == "object" && v !== null && (v = v[m.language] || v[w] || v.en || Object.values(v)[0]), v) {
59
+ const C = v.includes(" ") && !v.startsWith("'") && !v.startsWith('"') ? `"${v}"` : v;
60
+ u.style.setProperty("--gentiq-font-family", C), u.style.fontFamily = C, window.document.body && (window.document.body.style.fontFamily = C);
61
+ }
62
+ const h = p || (typeof o?.radius == "number" ? `${o.radius}px` : o?.radius);
63
+ h !== void 0 && u.style.setProperty("--radius", h), b !== void 0 ? u.style.setProperty("--gentiq-primary", b) : u.style.removeProperty("--gentiq-primary"), window.document.documentElement.dir = m.dir();
64
+ }, [o, m, m.language, b, p]);
65
+ const k = {
66
+ theme: f,
67
+ setTheme: (u) => {
68
+ window.localStorage.setItem(n, u), l(u);
69
+ },
70
+ accent: b,
71
+ setAccent: (u) => {
72
+ u ? window.localStorage.setItem(n + "-accent", u) : window.localStorage.removeItem(n + "-accent"), s(u);
73
+ },
74
+ radius: p,
75
+ setRadius: (u) => {
76
+ u ? window.localStorage.setItem(n + "-radius", u) : window.localStorage.removeItem(n + "-radius"), g(u);
77
+ }
78
+ };
79
+ return /* @__PURE__ */ i(It.Provider, { ...r, value: k, children: e });
80
+ }
81
+ const vi = () => Fe(It), Mn = {
82
+ // Auth Errors
83
+ UNAUTHORIZED: "unauthorized",
84
+ INVALID_CREDENTIALS: "invalid_credentials",
85
+ PHONE_REQUIRED: "phone_required",
86
+ PASSWORD_REQUIRED: "password_required",
87
+ NAME_SURNAME_REQUIRED: "name_surname_required",
88
+ PHONE_ALREADY_EXISTS: "phone_already_exists",
89
+ INVALID_TOKEN: "invalid_token",
90
+ // User & Balance Errors
91
+ USER_NOT_FOUND: "user_not_found",
92
+ INSUFFICIENT_BALANCE: "insufficient_balance",
93
+ ME_UPDATE_FAILED: "me_update_failed",
94
+ // Chat & Thread Errors
95
+ THREAD_NOT_FOUND: "thread_not_found",
96
+ ACCESS_DENIED: "access_denied",
97
+ FEEDBACK_SAVE_FAILED: "feedback_save_failed",
98
+ THREAD_UPDATE_FAILED: "thread_update_failed",
99
+ THREAD_DELETE_FAILED: "thread_delete_failed",
100
+ ATTACHMENT_NOT_FOUND: "attachment_not_found",
101
+ THREAD_SHARE_FAILED: "thread_share_failed",
102
+ MODEL_QUOTA_REACHED_ERROR: "model_quota_reached_error",
103
+ // Admin Errors
104
+ ADMIN_ALREADY_EXISTS: "admin_already_exists",
105
+ ADMIN_NOT_FOUND: "admin_not_found",
106
+ CANNOT_DELETE_SELF: "cannot_delete_self",
107
+ ADMIN_UPDATE_FAILED: "admin_update_failed",
108
+ // System Errors
109
+ INTERNAL_ERROR: "internal_error",
110
+ VALIDATION_ERROR: "validation_error",
111
+ NOT_FOUND: "not_found"
112
+ };
24
113
  class Xe extends Error {
25
114
  code;
26
115
  status;
@@ -29,12 +118,12 @@ class Xe extends Error {
29
118
  super(t.error.message), this.name = "GentiqError", this.code = t.error.code, this.status = n, this.details = t.error.details;
30
119
  }
31
120
  }
32
- function yi(e, t) {
33
- const n = typeof e == "string" ? e : e.code;
34
- if (typeof n != "string")
35
- return e?.message || String(e);
36
- const o = `errors:${n}`, r = t(o);
37
- return r === o ? typeof e != "string" && e.message ? e.message : n.replace(/_/g, " ").replace(/\b\w/g, (a) => a.toUpperCase()) : r;
121
+ function wi(e, t) {
122
+ const n = typeof e == "string" ? e : e.message, o = typeof e == "string" ? e : e.code || (Object.values(Mn).includes(n) ? n : void 0);
123
+ if (typeof o != "string")
124
+ return n || String(e);
125
+ const r = `errors:${o}`, a = t(r);
126
+ return a === r ? typeof e != "string" && e.message ? e.message : o.replace(/_/g, " ").replace(/\b\w/g, (l) => l.toUpperCase()) : a;
38
127
  }
39
128
  let N = {
40
129
  api: {
@@ -45,7 +134,7 @@ let N = {
45
134
  cacheNamespace: "gentiq"
46
135
  }
47
136
  };
48
- const Pn = {
137
+ const zn = {
49
138
  getToken: () => localStorage.getItem("token"),
50
139
  setToken: (e) => localStorage.setItem("token", e),
51
140
  clearToken: () => {
@@ -56,7 +145,7 @@ const Pn = {
56
145
  return e ? { Authorization: `Bearer ${e}` } : {};
57
146
  }
58
147
  };
59
- let F = Pn;
148
+ let L = zn;
60
149
  const S = {
61
150
  init: (e) => {
62
151
  if (N = {
@@ -66,7 +155,7 @@ const S = {
66
155
  app: e.app ? { ...N.app, ...e.app } : N.app
67
156
  }, e.api?.authAdapter) {
68
157
  const t = e.api.authAdapter;
69
- F = {
158
+ L = {
70
159
  ...t,
71
160
  getHeaders: t.getHeaders || (() => {
72
161
  const n = t.getToken();
@@ -76,14 +165,14 @@ const S = {
76
165
  }
77
166
  },
78
167
  getConfig: () => N,
79
- getToken: () => F.getToken(),
168
+ getToken: () => L.getToken(),
80
169
  setToken: (e) => {
81
- F.setToken(e);
170
+ L.setToken(e);
82
171
  },
83
172
  clearToken: () => {
84
- F.clearToken();
173
+ L.clearToken();
85
174
  },
86
- getHeaders: () => F.getHeaders(),
175
+ getHeaders: () => L.getHeaders(),
87
176
  getEndpoint: (e, t, ...n) => {
88
177
  const o = N.api?.endpoints?.[e];
89
178
  return o ? typeof o == "function" ? o(...n) : o : typeof t == "function" ? t(...n) : t;
@@ -123,7 +212,7 @@ const S = {
123
212
  getBalance: async () => {
124
213
  const e = S.getEndpoint("balance", "/users/balance"), t = await fetch(`${N.api?.basePath}${e}`, {
125
214
  headers: {
126
- ...F.getHeaders()
215
+ ...L.getHeaders()
127
216
  }
128
217
  });
129
218
  return S.handleResponse(t, "Failed to fetch balance");
@@ -131,7 +220,7 @@ const S = {
131
220
  getHistory: async (e = 0, t = 50) => {
132
221
  const n = S.getEndpoint("threads", "/chat/threads"), o = await fetch(`${N.api?.basePath}${n}?skip=${e}&limit=${t}`, {
133
222
  headers: {
134
- ...F.getHeaders()
223
+ ...L.getHeaders()
135
224
  }
136
225
  });
137
226
  return S.handleResponse(o, "Failed to fetch chat history");
@@ -140,7 +229,7 @@ const S = {
140
229
  if (!S.getToken()) throw new Error("No token found");
141
230
  const n = S.getEndpoint("threadMessages", (r) => `/chat/threads/${r.replace(/^\//, "")}`, e), o = await fetch(`${N.api?.basePath}${n}`, {
142
231
  headers: {
143
- ...F.getHeaders()
232
+ ...L.getHeaders()
144
233
  }
145
234
  });
146
235
  return S.handleResponse(o, "Failed to fetch thread messages");
@@ -150,7 +239,7 @@ const S = {
150
239
  const n = S.getEndpoint("deleteThread", (r) => `/chat/threads/${r.replace(/^\//, "")}`, e), o = await fetch(`${N.api?.basePath}${n}`, {
151
240
  method: "DELETE",
152
241
  headers: {
153
- ...F.getHeaders()
242
+ ...L.getHeaders()
154
243
  }
155
244
  });
156
245
  return S.handleResponse(o, "Failed to delete thread");
@@ -161,7 +250,7 @@ const S = {
161
250
  method: "PATCH",
162
251
  headers: {
163
252
  "Content-Type": "application/json",
164
- ...F.getHeaders()
253
+ ...L.getHeaders()
165
254
  },
166
255
  body: JSON.stringify({ title: t })
167
256
  });
@@ -176,7 +265,7 @@ const S = {
176
265
  if (N.api?.attachmentResolver)
177
266
  return N.api.attachmentResolver(e);
178
267
  const t = S.getEndpoint("attachments", (r) => `/chat/attachments/${r}`, e), n = await fetch(`${N.api?.basePath}${t}`, {
179
- headers: { ...F.getHeaders() }
268
+ headers: { ...L.getHeaders() }
180
269
  });
181
270
  if (!n.ok) return S.handleResponse(n, "Failed to fetch attachment");
182
271
  const o = await n.blob();
@@ -201,7 +290,7 @@ const S = {
201
290
  method: "POST",
202
291
  headers: {
203
292
  "Content-Type": "application/json",
204
- ...F.getHeaders()
293
+ ...L.getHeaders()
205
294
  },
206
295
  body: JSON.stringify({
207
296
  thread_id: e.replace(/^\//, ""),
@@ -214,7 +303,7 @@ const S = {
214
303
  getMe: async () => {
215
304
  const e = S.getEndpoint("me", "/users/me"), t = await fetch(`${N.api?.basePath}${e}`, {
216
305
  headers: {
217
- ...F.getHeaders()
306
+ ...L.getHeaders()
218
307
  }
219
308
  });
220
309
  return S.handleResponse(t, "Failed to fetch user profile");
@@ -224,7 +313,7 @@ const S = {
224
313
  method: "PATCH",
225
314
  headers: {
226
315
  "Content-Type": "application/json",
227
- ...F.getHeaders()
316
+ ...L.getHeaders()
228
317
  },
229
318
  body: JSON.stringify(e)
230
319
  });
@@ -236,7 +325,7 @@ const S = {
236
325
  method: "PATCH",
237
326
  headers: {
238
327
  "Content-Type": "application/json",
239
- ...F.getHeaders()
328
+ ...L.getHeaders()
240
329
  },
241
330
  body: JSON.stringify({ pinned: t })
242
331
  });
@@ -247,7 +336,7 @@ const S = {
247
336
  const n = S.getEndpoint("shareThread", (r) => `/chat/threads/${r.replace(/^\//, "")}/share`, e), o = await fetch(`${N.api?.basePath}${n}`, {
248
337
  method: "POST",
249
338
  headers: {
250
- ...F.getHeaders()
339
+ ...L.getHeaders()
251
340
  }
252
341
  });
253
342
  return S.handleResponse(o, "Failed to share thread");
@@ -265,7 +354,7 @@ const S = {
265
354
  return S.handleResponse(e, "Failed to fetch app configuration");
266
355
  }
267
356
  };
268
- function Mn(e, t) {
357
+ function Un(e, t) {
269
358
  const [n, o] = B(
270
359
  e.metadata?.feedback
271
360
  ), r = oe((l) => {
@@ -276,7 +365,7 @@ function Mn(e, t) {
276
365
  const c = n === l ? void 0 : l;
277
366
  o(c);
278
367
  try {
279
- const s = e.parts.find((h) => h.type === "data-message-id"), p = s ? s.data[0].message_id : e.id;
368
+ const s = e.parts.find((g) => g.type === "data-message-id"), p = s ? s.data[0].message_id : e.id;
280
369
  await S.saveFeedback(t, p, c ?? null);
281
370
  } catch (s) {
282
371
  console.error("Error saving feedback:", s);
@@ -288,9 +377,9 @@ function Mn(e, t) {
288
377
  copy: r
289
378
  };
290
379
  }
291
- const zn = /* @__PURE__ */ new Set(["ar", "fa", "he", "ur", "yi", "ku", "ckb", "ps", "sd", "ug", "arc", "syc"]);
292
- function $n() {
293
- const { i18n: e } = M(["translation"]), { app: t } = W(), n = St(() => {
380
+ const $n = /* @__PURE__ */ new Set(["ar", "fa", "he", "ur", "yi", "ku", "ckb", "ps", "sd", "ug", "arc", "syc"]);
381
+ function Bn() {
382
+ const { i18n: e } = M(["translation"]), { app: t } = te(), n = St(() => {
294
383
  const l = S.getConfig(), c = t || l.app;
295
384
  return {
296
385
  name: c?.name || "Gentiq App",
@@ -299,8 +388,8 @@ function $n() {
299
388
  language: e.language || c?.language || "en",
300
389
  showToolDetails: c?.showToolDetails ?? !0
301
390
  };
302
- }, [e.language, t]), o = (n.language ?? "").split("-")[0].toLowerCase(), r = zn.has(o), a = t?.language;
303
- return Q(() => {
391
+ }, [e.language, t]), o = (n.language ?? "").split("-")[0].toLowerCase(), r = $n.has(o), a = t?.language;
392
+ return J(() => {
304
393
  if (typeof window > "u") return;
305
394
  const l = localStorage.getItem("gentiq-last-default-lang");
306
395
  a && a !== l && (e.changeLanguage(a), localStorage.setItem("gentiq-last-default-lang", a)), document.documentElement.dir = r ? "rtl" : "ltr", document.documentElement.lang = e.language;
@@ -314,7 +403,7 @@ function $n() {
314
403
  error: null
315
404
  };
316
405
  }
317
- function Un(e) {
406
+ function Hn(e) {
318
407
  const {
319
408
  part: t,
320
409
  message: n,
@@ -325,20 +414,20 @@ function Un(e) {
325
414
  conversationId: c,
326
415
  isFinished: s,
327
416
  renderMessagePart: p,
328
- chat: h,
329
- readonly: f
330
- } = e, { showToolDetails: b } = $n(), { TextPart: m, ReasoningPart: y, ToolPart: d, FilePart: v, toolComponents: x, threadActions: g } = W(), { feedback: R, handleFeedback: E, copy: I } = Mn(n, c);
417
+ chat: g,
418
+ readonly: m
419
+ } = e, { showToolDetails: f } = Bn(), { TextPart: b, ReasoningPart: k, ToolPart: u, FilePart: w, toolComponents: v, threadActions: h } = te(), { feedback: C, handleFeedback: E, copy: R } = Un(n, c);
331
420
  if (p) {
332
421
  const O = p(t, n);
333
422
  if (O !== void 0)
334
- return /* @__PURE__ */ i(J, { children: O });
423
+ return /* @__PURE__ */ i(Z, { children: O });
335
424
  }
336
425
  if (["data-progress-update", "data-message-id", "data-chat-finished", "data-title"].includes(t.type)) return null;
337
426
  const z = n.parts.filter(
338
427
  (O) => !["data-progress-update", "data-message-id", "data-chat-finished", "data-title"].includes(O.type)
339
428
  ), ne = t === z[z.length - 1];
340
429
  return t.type === "text" ? /* @__PURE__ */ i(
341
- m,
430
+ b,
342
431
  {
343
432
  part: t,
344
433
  message: n,
@@ -347,14 +436,14 @@ function Un(e) {
347
436
  lastMessage: l,
348
437
  isLastVisiblePart: ne,
349
438
  regen: r,
350
- feedback: R,
439
+ feedback: C,
351
440
  handleFeedback: E,
352
- copyHost: I,
353
- feedbackEnabled: f ? !1 : g?.feedback ?? !1,
354
- retryEnabled: f ? !1 : g?.retry ?? !1
441
+ copyHost: R,
442
+ feedbackEnabled: m ? !1 : h?.feedback ?? !1,
443
+ retryEnabled: m ? !1 : h?.retry ?? !1
355
444
  }
356
445
  ) : t.type === "reasoning" ? /* @__PURE__ */ i(
357
- y,
446
+ k,
358
447
  {
359
448
  part: t,
360
449
  status: o,
@@ -363,26 +452,26 @@ function Un(e) {
363
452
  lastMessage: l
364
453
  }
365
454
  ) : t.type.startsWith("tool-") || "toolCallId" in t ? /* @__PURE__ */ i(
366
- d,
455
+ u,
367
456
  {
368
457
  part: t,
369
458
  message: n,
370
- chat: h,
371
- toolComponents: x,
372
- showToolCalls: !!b
459
+ chat: g,
460
+ toolComponents: v,
461
+ showToolCalls: !!f
373
462
  }
374
463
  ) : t.type === "file" ? /* @__PURE__ */ i(
375
- v,
464
+ w,
376
465
  {
377
466
  part: t,
378
467
  message: n
379
468
  }
380
469
  ) : null;
381
470
  }
382
- function k(...e) {
383
- return Dn(Ln(e));
471
+ function y(...e) {
472
+ return Dn(Fn(e));
384
473
  }
385
- function ki(e, t) {
474
+ function _i(e, t) {
386
475
  if (t === "/") return e;
387
476
  const n = e.endsWith("/") ? e.slice(0, -1) : e, o = t.startsWith("/") ? t : "/" + t;
388
477
  return n + o;
@@ -390,7 +479,7 @@ function ki(e, t) {
390
479
  const fe = ({ className: e, ...t }) => /* @__PURE__ */ i(
391
480
  "div",
392
481
  {
393
- className: k(
482
+ className: y(
394
483
  "flex items-center gap-1.5 px-1 py-3",
395
484
  e
396
485
  ),
@@ -407,18 +496,18 @@ const fe = ({ className: e, ...t }) => /* @__PURE__ */ i(
407
496
  n
408
497
  ))
409
498
  }
410
- ), Bn = /[\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC]/;
499
+ ), qn = /[\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC]/;
411
500
  function ge(e, t = "ltr") {
412
501
  if (!e) return t;
413
502
  for (const n of e) {
414
- if (Bn.test(n))
503
+ if (qn.test(n))
415
504
  return "rtl";
416
505
  if (/[A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02B8]/.test(n))
417
506
  return "ltr";
418
507
  }
419
508
  return "ltr";
420
509
  }
421
- const Hn = Pe(
510
+ const jn = De(
422
511
  "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
423
512
  {
424
513
  variants: {
@@ -443,39 +532,39 @@ const Hn = Pe(
443
532
  }
444
533
  }
445
534
  );
446
- function ee({
535
+ function Q({
447
536
  className: e,
448
537
  variant: t,
449
538
  size: n,
450
539
  asChild: o = !1,
451
540
  ...r
452
541
  }) {
453
- return /* @__PURE__ */ i(o ? Ct : "button", { "data-slot": "button", className: k(Hn({ variant: t, size: n, className: e })), ...r });
542
+ return /* @__PURE__ */ i(o ? Et : "button", { "data-slot": "button", className: y(jn({ variant: t, size: n, className: e })), ...r });
454
543
  }
455
- const qn = ({ className: e, ...t }) => /* @__PURE__ */ i(
544
+ const Gn = ({ className: e, ...t }) => /* @__PURE__ */ i(
456
545
  At,
457
546
  {
458
- className: k("relative flex-1 overflow-hidden", e),
547
+ className: y("relative flex-1 overflow-hidden", e),
459
548
  initial: "smooth",
460
549
  resize: "smooth",
461
550
  role: "log",
462
551
  ...t
463
552
  }
464
- ), jn = ({ className: e, ...t }) => /* @__PURE__ */ i(
553
+ ), Vn = ({ className: e, ...t }) => /* @__PURE__ */ i(
465
554
  At.Content,
466
555
  {
467
- className: k("p-4 pb-6 stick-to-bottom", e),
556
+ className: y("p-4 pb-6 stick-to-bottom", e),
468
557
  scrollClassName: "custom-scrollbar",
469
558
  ...t
470
559
  }
471
- ), Gn = ({ className: e, ...t }) => {
472
- const { isAtBottom: n, scrollToBottom: o } = In(), r = oe(() => {
560
+ ), Wn = ({ className: e, ...t }) => {
561
+ const { isAtBottom: n, scrollToBottom: o } = On(), r = oe(() => {
473
562
  o();
474
563
  }, [o]);
475
564
  return n ? null : /* @__PURE__ */ i(
476
565
  "button",
477
566
  {
478
- className: k(
567
+ className: y(
479
568
  "absolute bottom-32 left-1/2 -translate-x-1/2 z-10",
480
569
  "flex items-center gap-1.5 px-4 py-2 rounded-full text-sm font-medium",
481
570
  "glass border border-border/50 shadow-lg shadow-black/10",
@@ -495,46 +584,46 @@ const qn = ({ className: e, ...t }) => /* @__PURE__ */ i(
495
584
  function ze({ ...e }) {
496
585
  return /* @__PURE__ */ i(Me.Root, { "data-slot": "collapsible", ...e });
497
586
  }
498
- function $e({ ...e }) {
587
+ function Ue({ ...e }) {
499
588
  return /* @__PURE__ */ i(Me.CollapsibleTrigger, { "data-slot": "collapsible-trigger", ...e });
500
589
  }
501
- function Ue({ ...e }) {
590
+ function $e({ ...e }) {
502
591
  return /* @__PURE__ */ i(Me.CollapsibleContent, { "data-slot": "collapsible-content", ...e });
503
592
  }
504
- const Vn = ({ className: e, ...t }) => /* @__PURE__ */ i(ze, { className: k("not-prose mb-4 text-primary text-xs", e), ...t }), Wn = ({ className: e, count: t, children: n, ...o }) => {
593
+ const Yn = ({ className: e, ...t }) => /* @__PURE__ */ i(ze, { className: y("not-prose mb-4 text-primary text-xs", e), ...t }), Xn = ({ className: e, count: t, children: n, ...o }) => {
505
594
  const { t: r } = M(["chat"]);
506
- return /* @__PURE__ */ i($e, { className: k("flex items-center gap-2", e), ...o, children: n ?? /* @__PURE__ */ w(J, { children: [
595
+ return /* @__PURE__ */ i(Ue, { className: y("flex items-center gap-2", e), ...o, children: n ?? /* @__PURE__ */ _(Z, { children: [
507
596
  /* @__PURE__ */ i("p", { className: "font-medium", children: r("used_sources", { count: t }) }),
508
597
  /* @__PURE__ */ i(ie, { className: "h-4 w-4" })
509
598
  ] }) });
510
- }, Yn = ({ className: e, ...t }) => /* @__PURE__ */ i(
511
- Ue,
599
+ }, Kn = ({ className: e, ...t }) => /* @__PURE__ */ i(
600
+ $e,
512
601
  {
513
- className: k(
602
+ className: y(
514
603
  "mt-3 flex w-fit flex-col gap-2",
515
604
  "data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 outline-none data-[state=closed]:animate-out data-[state=open]:animate-in",
516
605
  e
517
606
  ),
518
607
  ...t
519
608
  }
520
- ), Xn = ({ href: e, title: t, children: n, ...o }) => /* @__PURE__ */ i("a", { className: "flex items-center gap-2", href: e, rel: "noreferrer", target: "_blank", ...o, children: n ?? /* @__PURE__ */ w(J, { children: [
609
+ ), Zn = ({ href: e, title: t, children: n, ...o }) => /* @__PURE__ */ i("a", { className: "flex items-center gap-2", href: e, rel: "noreferrer", target: "_blank", ...o, children: n ?? /* @__PURE__ */ _(Z, { children: [
521
610
  /* @__PURE__ */ i(pn, { className: "h-4 w-4" }),
522
611
  /* @__PURE__ */ i("span", { className: "block font-medium", children: t })
523
- ] }) }), Kn = ({ latestProgress: e, parts: t }) => {
612
+ ] }) }), Jn = ({ latestProgress: e, parts: t }) => {
524
613
  const n = e.data[0].status, o = e.data[0].message, r = t.lastIndexOf(e);
525
614
  if (!!(t.slice(r + 1).some(
526
- (f) => f.type === "text" && (f.text || "").trim().length > 0 || f.type === "tool-invocation" || f.type === "tool-call"
615
+ (m) => m.type === "text" && (m.text || "").trim().length > 0 || m.type === "tool-invocation" || m.type === "tool-call"
527
616
  ) && n !== "running")) return null;
528
- const s = n === "running", p = n === "error", h = ge(o);
529
- return /* @__PURE__ */ i("div", { className: k(
617
+ const s = n === "running", p = n === "error", g = ge(o);
618
+ return /* @__PURE__ */ i("div", { className: y(
530
619
  "flex w-full py-3 mx-auto max-w-4xl px-4 md:px-0 animate-in-bubble",
531
- h === "rtl" ? "justify-end" : "justify-start"
532
- ), children: /* @__PURE__ */ w("div", { className: k("flex items-center gap-3 text-sm text-muted-foreground", h === "rtl" && "flex-row-reverse"), dir: h, children: [
533
- s ? /* @__PURE__ */ i("div", { className: "size-4 animate-spin rounded-full border-2 border-primary border-r-transparent shrink-0" }) : p ? /* @__PURE__ */ i(he, { className: "size-4 text-destructive shrink-0" }) : /* @__PURE__ */ i(De, { className: "size-4 text-green-500 shrink-0" }),
534
- /* @__PURE__ */ i("span", { className: k("font-medium", s && "animate-pulse"), children: o })
620
+ g === "rtl" ? "justify-end" : "justify-start"
621
+ ), children: /* @__PURE__ */ _("div", { className: y("flex items-center gap-3 text-sm text-muted-foreground", g === "rtl" && "flex-row-reverse"), dir: g, children: [
622
+ s ? /* @__PURE__ */ i("div", { className: "size-4 animate-spin rounded-full border-2 border-primary border-r-transparent shrink-0" }) : p ? /* @__PURE__ */ i(he, { className: "size-4 text-destructive shrink-0" }) : /* @__PURE__ */ i(Pe, { className: "size-4 text-green-500 shrink-0" }),
623
+ /* @__PURE__ */ i("span", { className: y("font-medium", s && "animate-pulse"), children: o })
535
624
  ] }) });
536
625
  };
537
- function Zn({
626
+ function Qn({
538
627
  messages: e,
539
628
  status: t,
540
629
  isLoadingHistory: n,
@@ -546,66 +635,66 @@ function Zn({
546
635
  className: s,
547
636
  readonly: p
548
637
  }) {
549
- const { i18n: h, t: f } = M(["chat", "translation"]), b = h.language === "fa", { WelcomeScreen: m } = W(), y = e[e.length - 1], d = y?.role === "assistant" && (t === "ready" || y.parts.some((v) => v.type === "data-chat-finished"));
550
- return /* @__PURE__ */ w(qn, { className: k("min-h-0 flex-1", s), children: [
551
- /* @__PURE__ */ w(jn, { className: "max-w-4xl mx-auto w-full px-4 md:px-0 pb-32", dir: "ltr", children: [
552
- e.length === 0 && !n ? /* @__PURE__ */ i(m, { onSuggestionClick: l }) : e.map((v) => /* @__PURE__ */ w("div", { children: [
553
- v.role === "assistant" && v.parts.filter((x) => x.type === "source-url").length > 0 && /* @__PURE__ */ w(Vn, { children: [
554
- /* @__PURE__ */ i(Wn, { count: v.parts.filter((x) => x.type === "source-url").length }),
555
- v.parts.filter((x) => x.type === "source-url").map((x, g) => /* @__PURE__ */ i(Yn, { children: /* @__PURE__ */ i(Xn, { href: x.url, title: x.url }, `${v.id}-${g}`) }, `${v.id}-${g}`))
638
+ const { i18n: g, t: m } = M(["chat", "translation"]), f = g.language === "fa", { WelcomeScreen: b } = te(), k = e[e.length - 1], u = k?.role === "assistant" && (t === "ready" || k.parts.some((w) => w.type === "data-chat-finished"));
639
+ return /* @__PURE__ */ _(Gn, { className: y("min-h-0 flex-1", s), children: [
640
+ /* @__PURE__ */ _(Vn, { className: "max-w-4xl mx-auto w-full px-4 md:px-0 pb-32", dir: "ltr", children: [
641
+ e.length === 0 && !n ? /* @__PURE__ */ i(b, { onSuggestionClick: l }) : e.map((w) => /* @__PURE__ */ _("div", { children: [
642
+ w.role === "assistant" && w.parts.filter((v) => v.type === "source-url").length > 0 && /* @__PURE__ */ _(Yn, { children: [
643
+ /* @__PURE__ */ i(Xn, { count: w.parts.filter((v) => v.type === "source-url").length }),
644
+ w.parts.filter((v) => v.type === "source-url").map((v, h) => /* @__PURE__ */ i(Kn, { children: /* @__PURE__ */ i(Zn, { href: v.url, title: v.url }, `${w.id}-${h}`) }, `${w.id}-${h}`))
556
645
  ] }),
557
- v.parts.map((x, g) => /* @__PURE__ */ i(
558
- Un,
646
+ w.parts.map((v, h) => /* @__PURE__ */ i(
647
+ Hn,
559
648
  {
560
- part: x,
561
- message: v,
649
+ part: v,
650
+ message: w,
562
651
  status: t,
563
- index: g,
652
+ index: h,
564
653
  regen: a,
565
- lastMessage: v.id === e.at(-1)?.id,
654
+ lastMessage: w.id === e.at(-1)?.id,
566
655
  conversationId: r,
567
- isFinished: d,
656
+ isFinished: u,
568
657
  chat: c,
569
658
  readonly: p
570
659
  },
571
- `${v.id}-${g}`
660
+ `${w.id}-${h}`
572
661
  ))
573
- ] }, v.id)),
662
+ ] }, w.id)),
574
663
  (() => {
575
- if (!y || y.role !== "assistant") return null;
576
- const v = y.parts.filter((g) => g.type === "data-progress-update");
577
- if (v.length === 0) return null;
578
- const x = v[v.length - 1];
579
- return x ? /* @__PURE__ */ i(Kn, { latestProgress: x, parts: y.parts }) : null;
664
+ if (!k || k.role !== "assistant") return null;
665
+ const w = k.parts.filter((h) => h.type === "data-progress-update");
666
+ if (w.length === 0) return null;
667
+ const v = w[w.length - 1];
668
+ return v ? /* @__PURE__ */ i(Jn, { latestProgress: v, parts: k.parts }) : null;
580
669
  })(),
581
670
  (n || t === "submitted") && /* @__PURE__ */ i("div", { className: "animate-in-bubble", children: /* @__PURE__ */ i(fe, {}) }),
582
671
  t === "streaming" && (() => {
583
- const v = e[e.length - 1];
584
- return !v || v.role === "user" ? /* @__PURE__ */ i(fe, {}) : v.parts?.some(
585
- (g) => g.type === "text" && g.text?.trim().length > 0 || g.type === "reasoning" || g.type === "tool-invocation" || g.type === "tool-call"
672
+ const w = e[e.length - 1];
673
+ return !w || w.role === "user" ? /* @__PURE__ */ i(fe, {}) : w.parts?.some(
674
+ (h) => h.type === "text" && h.text?.trim().length > 0 || h.type === "reasoning" || h.type === "tool-invocation" || h.type === "tool-call"
586
675
  ) ? null : /* @__PURE__ */ i(fe, {});
587
676
  })(),
588
- t === "error" && o && /* @__PURE__ */ i("div", { className: "mx-auto max-w-4xl w-full px-4 my-3 animate-in-bubble", children: /* @__PURE__ */ w("div", { className: k(
677
+ t === "error" && o && /* @__PURE__ */ i("div", { className: "mx-auto max-w-4xl w-full px-4 my-3 animate-in-bubble", children: /* @__PURE__ */ _("div", { className: y(
589
678
  "flex w-full items-start gap-3 px-4 py-3.5 rounded-xl bg-destructive/8 border border-destructive/15",
590
- b ? "border-r-2 border-r-destructive/60" : "border-l-2 border-l-destructive/60"
591
- ), dir: b ? "rtl" : "ltr", children: [
679
+ f ? "border-r-2 border-r-destructive/60" : "border-l-2 border-l-destructive/60"
680
+ ), dir: f ? "rtl" : "ltr", children: [
592
681
  /* @__PURE__ */ i("div", { className: "size-1.5 rounded-full bg-destructive mt-2 shrink-0" }),
593
- /* @__PURE__ */ w("div", { className: k("text-sm text-destructive/90 leading-relaxed flex-1", b ? "text-right" : "text-left"), children: [
594
- /* @__PURE__ */ i("span", { className: "font-semibold", children: f("error") }),
682
+ /* @__PURE__ */ _("div", { className: y("text-sm text-destructive/90 leading-relaxed flex-1", f ? "text-right" : "text-left"), children: [
683
+ /* @__PURE__ */ i("span", { className: "font-semibold", children: m("error") }),
595
684
  " ",
596
685
  o.message
597
686
  ] })
598
687
  ] }) })
599
688
  ] }),
600
- /* @__PURE__ */ i(Gn, {})
689
+ /* @__PURE__ */ i(Wn, {})
601
690
  ] });
602
691
  }
603
- function Jn({ className: e, ...t }) {
692
+ function eo({ className: e, ...t }) {
604
693
  return /* @__PURE__ */ i(
605
694
  "textarea",
606
695
  {
607
696
  "data-slot": "textarea",
608
- className: k(
697
+ className: y(
609
698
  "border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
610
699
  e
611
700
  ),
@@ -613,10 +702,10 @@ function Jn({ className: e, ...t }) {
613
702
  }
614
703
  );
615
704
  }
616
- const Qn = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: "bg-transparent w-full", children: /* @__PURE__ */ i(
705
+ const to = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: "bg-transparent w-full", children: /* @__PURE__ */ i(
617
706
  "form",
618
707
  {
619
- className: k(
708
+ className: y(
620
709
  "w-full flex items-end gap-2 overflow-hidden",
621
710
  "rounded-lg bg-surface glow-primary",
622
711
  "px-3 py-2",
@@ -628,7 +717,7 @@ const Qn = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: "bg
628
717
  ),
629
718
  ...t
630
719
  }
631
- ) }), eo = ({
720
+ ) }), no = ({
632
721
  onChange: e,
633
722
  className: t,
634
723
  placeholder: n = "What would you like to know?",
@@ -644,10 +733,10 @@ const Qn = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: "bg
644
733
  }
645
734
  }, { i18n: a } = M(["chat"]), l = ge(o.value, a.dir());
646
735
  return /* @__PURE__ */ i(
647
- Jn,
736
+ eo,
648
737
  {
649
738
  dir: l,
650
- className: k(
739
+ className: y(
651
740
  "flex-1 resize-none rounded-none border-none shadow-none outline-none ring-0",
652
741
  "px-2 py-2.5",
653
742
  "field-sizing-content max-h-[6lh] bg-transparent dark:bg-transparent",
@@ -665,12 +754,12 @@ const Qn = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: "bg
665
754
  ...o
666
755
  }
667
756
  );
668
- }, to = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: k("flex shrink-0 items-center gap-1.5 pb-1", e), ...t }), no = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: k("flex items-center gap-0.5", e), ...t }), oo = ({ variant: e = "ghost", className: t, size: n, ...o }) => {
757
+ }, oo = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: y("flex shrink-0 items-center gap-1.5 pb-1", e), ...t }), ro = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: y("flex items-center gap-0.5", e), ...t }), ao = ({ variant: e = "ghost", className: t, size: n, ...o }) => {
669
758
  const r = n ?? cn.count(o.children) > 1 ? "default" : "icon";
670
759
  return /* @__PURE__ */ i(
671
- ee,
760
+ Q,
672
761
  {
673
- className: k(
762
+ className: y(
674
763
  "shrink-0 gap-1.5 rounded-xl",
675
764
  "text-muted-foreground hover:text-foreground",
676
765
  "hover:bg-accent/60 transition-all duration-200",
@@ -684,7 +773,7 @@ const Qn = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: "bg
684
773
  ...o
685
774
  }
686
775
  );
687
- }, ro = ({
776
+ }, io = ({
688
777
  className: e,
689
778
  variant: t = "default",
690
779
  size: n = "icon",
@@ -694,9 +783,9 @@ const Qn = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: "bg
694
783
  }) => {
695
784
  let l = /* @__PURE__ */ i(hn, { className: "size-4" });
696
785
  return o === "submitted" ? l = /* @__PURE__ */ i(gn, { className: "size-4 animate-spin" }) : o === "streaming" ? l = /* @__PURE__ */ i(mn, { className: "size-3.5 fill-current" }) : o === "error" && (l = /* @__PURE__ */ i(he, { className: "size-4" })), /* @__PURE__ */ i(
697
- ee,
786
+ Q,
698
787
  {
699
- className: k(
788
+ className: y(
700
789
  "shrink-0 rounded-lg size-9",
701
790
  "bg-gradient-to-br from-primary to-primary/80",
702
791
  "text-primary-foreground",
@@ -718,14 +807,14 @@ const Qn = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: "bg
718
807
  }
719
808
  );
720
809
  };
721
- function It({ delayDuration: e = 400, ...t }) {
722
- return /* @__PURE__ */ i(K.Provider, { "data-slot": "tooltip-provider", delayDuration: e, ...t });
723
- }
724
- function Rt({ ...e }) {
725
- return /* @__PURE__ */ i(It, { children: /* @__PURE__ */ i(K.Root, { "data-slot": "tooltip", ...e }) });
810
+ function Rt({ delayDuration: e = 400, ...t }) {
811
+ return /* @__PURE__ */ i(X.Provider, { "data-slot": "tooltip-provider", delayDuration: e, ...t });
726
812
  }
727
813
  function Ot({ ...e }) {
728
- return /* @__PURE__ */ i(K.Trigger, { "data-slot": "tooltip-trigger", ...e });
814
+ return /* @__PURE__ */ i(Rt, { children: /* @__PURE__ */ i(X.Root, { "data-slot": "tooltip", ...e }) });
815
+ }
816
+ function Lt({ ...e }) {
817
+ return /* @__PURE__ */ i(X.Trigger, { "data-slot": "tooltip-trigger", ...e });
729
818
  }
730
819
  function Ft({
731
820
  className: e,
@@ -733,25 +822,25 @@ function Ft({
733
822
  children: n,
734
823
  ...o
735
824
  }) {
736
- return /* @__PURE__ */ i(K.Portal, { children: /* @__PURE__ */ w(
737
- K.Content,
825
+ return /* @__PURE__ */ i(X.Portal, { children: /* @__PURE__ */ _(
826
+ X.Content,
738
827
  {
739
828
  "data-slot": "tooltip-content",
740
829
  sideOffset: t,
741
- className: k(
830
+ className: y(
742
831
  "bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-sm text-balance",
743
832
  e
744
833
  ),
745
834
  ...o,
746
835
  children: [
747
836
  n,
748
- /* @__PURE__ */ i(K.Arrow, { className: "bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
837
+ /* @__PURE__ */ i(X.Arrow, { className: "bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
749
838
  ]
750
839
  }
751
840
  ) });
752
841
  }
753
842
  const be = 768;
754
- function ao() {
843
+ function lo() {
755
844
  const [e, t] = Ce.useState(void 0);
756
845
  return Ce.useEffect(() => {
757
846
  const n = window.matchMedia(`(max-width: ${be - 1}px)`), o = () => {
@@ -762,7 +851,7 @@ function ao() {
762
851
  };
763
852
  }, []), !!e;
764
853
  }
765
- function io({
854
+ function so({
766
855
  onSend: e,
767
856
  status: t,
768
857
  isLastMessageFinished: n,
@@ -771,66 +860,66 @@ function io({
771
860
  conversationId: a,
772
861
  className: l
773
862
  }) {
774
- const { t: c } = M(["chat", "translation"]), { composer: s } = W(), [p, h] = B(""), [f, b] = B([]), m = ao(), y = Ge(null), d = Ge(null);
775
- Q(() => {
776
- !m && a === "/" && y.current && y.current.focus();
777
- }, [a, m]);
778
- const v = oe((E) => {
863
+ const { t: c } = M(["chat", "translation"]), { composer: s } = te(), [p, g] = B(""), [m, f] = B([]), b = lo(), k = Ge(null), u = Ge(null);
864
+ J(() => {
865
+ !b && a === "/" && k.current && k.current.focus();
866
+ }, [a, b]);
867
+ const w = oe((E) => {
779
868
  if (E.target.files) {
780
- const I = Array.from(E.target.files), U = s?.attachments?.maxSize;
781
- if (U && I.filter((ne) => ne.size > U).length > 0) {
782
- Rn.error(c("file_too_large", { size: U }));
869
+ const R = Array.from(E.target.files), $ = s?.attachments?.maxSize;
870
+ if ($ && R.filter((ne) => ne.size > $).length > 0) {
871
+ In.error(c("file_too_large", { size: $ }));
783
872
  return;
784
873
  }
785
- b((z) => [...z, ...I]);
874
+ f((z) => [...z, ...R]);
786
875
  }
787
876
  E.target.value = "";
788
- }, [s, c]), x = oe((E) => {
789
- b((I) => I.filter((U, z) => z !== E));
790
- }, []), g = t === "streaming" && !n, R = (E) => {
791
- if (E.preventDefault(), !g && (p.trim() || f.length > 0)) {
792
- const I = new DataTransfer();
793
- f.forEach((U) => I.items.add(U)), e(p, I.files), h(""), b([]);
877
+ }, [s, c]), v = oe((E) => {
878
+ f((R) => R.filter(($, z) => z !== E));
879
+ }, []), h = t === "streaming" && !n, C = (E) => {
880
+ if (E.preventDefault(), !h && (p.trim() || m.length > 0)) {
881
+ const R = new DataTransfer();
882
+ m.forEach(($) => R.items.add($)), e(p, R.files), g(""), f([]);
794
883
  }
795
884
  };
796
- return /* @__PURE__ */ i("div", { className: k("shrink-0 px-4 pb-5 pt-2 md:px-6 md:pb-6 w-full", l), children: /* @__PURE__ */ i("div", { className: "max-w-4xl mx-auto w-full", children: /* @__PURE__ */ w(Qn, { onSubmit: R, children: [
885
+ return /* @__PURE__ */ i("div", { className: y("shrink-0 px-4 pb-5 pt-2 md:px-6 md:pb-6 w-full", l), children: /* @__PURE__ */ i("div", { className: "max-w-4xl mx-auto w-full", children: /* @__PURE__ */ _(to, { onSubmit: C, children: [
797
886
  /* @__PURE__ */ i(
798
887
  "input",
799
888
  {
800
889
  type: "file",
801
- ref: d,
802
- onChange: v,
890
+ ref: u,
891
+ onChange: w,
803
892
  multiple: !0,
804
893
  accept: s?.attachments?.types?.join(",") || "image/*,text/*,.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx",
805
894
  className: "hidden"
806
895
  }
807
896
  ),
808
- /* @__PURE__ */ w("div", { className: "flex flex-col flex-1 gap-2", children: [
809
- f.length > 0 && /* @__PURE__ */ i("div", { className: "flex flex-wrap gap-2 px-2 pt-2", children: f.map((E, I) => /* @__PURE__ */ w("div", { className: "group relative flex items-center gap-2 rounded-xl glass-surface px-2.5 py-1.5 text-sm shadow-sm", children: [
810
- E.type.startsWith("image/") ? /* @__PURE__ */ i("img", { src: URL.createObjectURL(E), alt: E.name, className: "size-7 rounded-lg object-cover ring-1 ring-border/50" }) : /* @__PURE__ */ i(Et, { className: "size-3.5 text-muted-foreground shrink-0" }),
897
+ /* @__PURE__ */ _("div", { className: "flex flex-col flex-1 gap-2", children: [
898
+ m.length > 0 && /* @__PURE__ */ i("div", { className: "flex flex-wrap gap-2 px-2 pt-2", children: m.map((E, R) => /* @__PURE__ */ _("div", { className: "group relative flex items-center gap-2 rounded-xl glass-surface px-2.5 py-1.5 text-sm shadow-sm", children: [
899
+ E.type.startsWith("image/") ? /* @__PURE__ */ i("img", { src: URL.createObjectURL(E), alt: E.name, className: "size-7 rounded-lg object-cover ring-1 ring-border/50" }) : /* @__PURE__ */ i(Nt, { className: "size-3.5 text-muted-foreground shrink-0" }),
811
900
  /* @__PURE__ */ i("span", { className: "max-w-[120px] truncate text-xs font-medium text-foreground/80", children: E.name }),
812
- /* @__PURE__ */ i("button", { type: "button", onClick: () => x(I), className: "ml-0.5 flex items-center justify-center size-4 rounded-full hover:bg-destructive/15 text-muted-foreground/60 hover:text-destructive transition-all duration-150", children: /* @__PURE__ */ i(he, { className: "size-2.5" }) })
813
- ] }, `${E.name}-${I}`)) }),
901
+ /* @__PURE__ */ i("button", { type: "button", onClick: () => v(R), className: "ml-0.5 flex items-center justify-center size-4 rounded-full hover:bg-destructive/15 text-muted-foreground/60 hover:text-destructive transition-all duration-150", children: /* @__PURE__ */ i(he, { className: "size-2.5" }) })
902
+ ] }, `${E.name}-${R}`)) }),
814
903
  /* @__PURE__ */ i(
815
- eo,
904
+ no,
816
905
  {
817
- ref: y,
818
- onChange: (E) => h(E.target.value),
906
+ ref: k,
907
+ onChange: (E) => g(E.target.value),
819
908
  value: p,
820
- autoFocus: !m,
909
+ autoFocus: !b,
821
910
  placeholder: s?.placeholder ? c(s.placeholder) : c("input_placeholder")
822
911
  }
823
912
  )
824
913
  ] }),
825
- /* @__PURE__ */ w(to, { children: [
826
- /* @__PURE__ */ i(no, { children: (s?.attachments?.enabled ?? !1) && /* @__PURE__ */ w(Rt, { children: [
827
- /* @__PURE__ */ i(Ot, { asChild: !0, children: /* @__PURE__ */ i(oo, { variant: "ghost", onClick: () => d.current?.click(), disabled: g, children: /* @__PURE__ */ i(fn, { className: "size-4" }) }) }),
914
+ /* @__PURE__ */ _(oo, { children: [
915
+ /* @__PURE__ */ i(ro, { children: (s?.attachments?.enabled ?? !1) && /* @__PURE__ */ _(Ot, { children: [
916
+ /* @__PURE__ */ i(Lt, { asChild: !0, children: /* @__PURE__ */ i(ao, { variant: "ghost", onClick: () => u.current?.click(), disabled: h, children: /* @__PURE__ */ i(fn, { className: "size-4" }) }) }),
828
917
  /* @__PURE__ */ i(Ft, { children: c("attach_file") })
829
918
  ] }) }),
830
919
  /* @__PURE__ */ i(
831
- ro,
920
+ io,
832
921
  {
833
- disabled: t !== "streaming" && !p && f.length === 0,
922
+ disabled: t !== "streaming" && !p && m.length === 0,
834
923
  status: r ? "error" : t === "error" ? void 0 : n ? "ready" : t,
835
924
  onClick: t === "streaming" && !n ? o : void 0
836
925
  }
@@ -838,7 +927,7 @@ function io({
838
927
  ] })
839
928
  ] }) }) });
840
929
  }
841
- const lo = ({
930
+ const co = ({
842
931
  suggestion: e,
843
932
  onClick: t,
844
933
  className: n,
@@ -851,9 +940,9 @@ const lo = ({
851
940
  t?.(e);
852
941
  };
853
942
  return /* @__PURE__ */ i(
854
- ee,
943
+ Q,
855
944
  {
856
- className: k("cursor-pointer rounded-full px-4", n),
945
+ className: y("cursor-pointer rounded-full px-4", n),
857
946
  onClick: c,
858
947
  size: r,
859
948
  type: "button",
@@ -862,39 +951,39 @@ const lo = ({
862
951
  children: a ?? e
863
952
  }
864
953
  );
865
- }, so = ({ onSuggestionClick: e, icons: t }) => {
866
- const { t: n, i18n: o } = M(["chat", "translation"]), { welcome: r } = W(), a = r?.prompts ?? [], l = a.map((h) => {
867
- const f = typeof h == "string" ? h : h.text;
868
- return n(f);
869
- }).filter((h) => h !== null && h !== ""), c = o.dir() === "rtl", s = r?.greeting ? n(r.greeting) ?? r.greeting : n("welcome.title"), p = r?.subtitle ? n(r.subtitle) : null;
870
- return /* @__PURE__ */ w(
954
+ }, uo = ({ onSuggestionClick: e, icons: t }) => {
955
+ const { t: n, i18n: o } = M(["chat", "translation"]), { welcome: r } = te(), a = r?.prompts ?? [], l = a.map((g) => {
956
+ const m = typeof g == "string" ? g : g.text;
957
+ return n(m);
958
+ }).filter((g) => g !== null && g !== ""), c = o.dir() === "rtl", s = r?.greeting ? n(r.greeting) ?? r.greeting : n("welcome.title"), p = r?.subtitle ? n(r.subtitle) : null;
959
+ return /* @__PURE__ */ _(
871
960
  "div",
872
961
  {
873
962
  dir: c ? "rtl" : "ltr",
874
963
  className: "flex flex-col items-center justify-center min-h-[60vh] text-center px-6 animate-in fade-in duration-700 ease-out",
875
964
  children: [
876
- r?.icon && /* @__PURE__ */ w("div", { className: "mb-8 relative flex items-center justify-center", children: [
965
+ r?.icon && /* @__PURE__ */ _("div", { className: "mb-8 relative flex items-center justify-center", children: [
877
966
  /* @__PURE__ */ i("div", { className: "absolute size-24 rounded-full bg-primary/5 blur-[40px] animate-pulse" }),
878
967
  /* @__PURE__ */ i("div", { className: "relative size-12 md:size-16 rounded-xl bg-gradient-to-br from-surface to-secondary flex items-center justify-center border border-border/10 dark:border-border/5 shadow-xl shadow-black/10", children: typeof r.icon == "function" ? /* @__PURE__ */ i(r.icon, { className: "size-6 md:size-8 text-primary opacity-80" }) : r.icon })
879
968
  ] }),
880
- (s || p) && /* @__PURE__ */ w("div", { className: "space-y-3 mb-12 max-w-xl mx-auto", children: [
969
+ (s || p) && /* @__PURE__ */ _("div", { className: "space-y-3 mb-12 max-w-xl mx-auto", children: [
881
970
  s && /* @__PURE__ */ i("h1", { className: "text-2xl md:text-3xl font-black tracking-tight leading-tight text-foreground", children: s }),
882
971
  p && /* @__PURE__ */ i("p", { className: "text-muted-foreground text-base md:text-lg font-medium max-w-md mx-auto leading-relaxed opacity-85 dark:opacity-70", children: p })
883
972
  ] }),
884
- l.length > 0 && /* @__PURE__ */ i("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-3 w-full max-w-xl", children: l.map((h, f) => {
885
- const b = a[f], m = typeof b != "string" ? b.icon : null, y = t && t[f % t.length] ? t[f % t.length] : bn, d = m || y;
973
+ l.length > 0 && /* @__PURE__ */ i("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-3 w-full max-w-xl", children: l.map((g, m) => {
974
+ const f = a[m], b = typeof f != "string" ? f.icon : null, k = t && t[m % t.length] ? t[m % t.length] : bn, u = b || k;
886
975
  return /* @__PURE__ */ i(
887
976
  "div",
888
977
  {
889
978
  className: "animate-in fade-in slide-in-from-bottom-3 duration-700 fill-mode-both",
890
- style: { animationDelay: `${f * 80}ms` },
891
- children: /* @__PURE__ */ w(
892
- lo,
979
+ style: { animationDelay: `${m * 80}ms` },
980
+ children: /* @__PURE__ */ _(
981
+ co,
893
982
  {
894
- onClick: () => e(h),
895
- suggestion: h,
983
+ onClick: () => e(g),
984
+ suggestion: g,
896
985
  variant: "ghost",
897
- className: k(
986
+ className: y(
898
987
  "h-full py-4 px-5 justify-start text-start items-center whitespace-normal w-full",
899
988
  "group rounded-xl relative overflow-hidden",
900
989
  "bg-secondary/45 border border-border/12 dark:bg-secondary/20 dark:border-border/5",
@@ -902,11 +991,11 @@ const lo = ({
902
991
  "hover:-translate-y-0.5 transition-[background-color,border-color,transform] duration-300 ease-out-quint"
903
992
  ),
904
993
  children: [
905
- /* @__PURE__ */ w("div", { className: "flex items-center gap-3 w-full text-start", children: [
906
- /* @__PURE__ */ i("div", { className: "size-8 rounded-lg bg-secondary/35 dark:bg-background/40 flex items-center justify-center shrink-0 border border-border/10 dark:border-border/5 group-hover:bg-primary group-hover:text-primary-foreground transition-colors duration-300", children: /* @__PURE__ */ i(d, { className: "size-4" }) }),
907
- /* @__PURE__ */ i("div", { className: "flex flex-col gap-0.5 overflow-hidden", children: /* @__PURE__ */ i("span", { className: "text-sm md:text-base font-semibold text-foreground/80 group-hover:text-foreground transition-colors", children: h.length > 60 ? h.substring(0, 60) + "..." : h }) })
994
+ /* @__PURE__ */ _("div", { className: "flex items-center gap-3 w-full text-start", children: [
995
+ /* @__PURE__ */ i("div", { className: "size-8 rounded-lg bg-secondary/35 dark:bg-background/40 flex items-center justify-center shrink-0 border border-border/10 dark:border-border/5 group-hover:bg-primary group-hover:text-primary-foreground transition-colors duration-300", children: /* @__PURE__ */ i(u, { className: "size-4" }) }),
996
+ /* @__PURE__ */ i("div", { className: "flex flex-col gap-0.5 overflow-hidden", children: /* @__PURE__ */ i("span", { className: "text-sm md:text-base font-semibold text-foreground/80 group-hover:text-foreground transition-colors", children: g.length > 60 ? g.substring(0, 60) + "..." : g }) })
908
997
  ] }),
909
- /* @__PURE__ */ i("div", { className: k(
998
+ /* @__PURE__ */ i("div", { className: y(
910
999
  "absolute bottom-0 left-0 w-full h-[1.5px] bg-primary scale-x-0 group-hover:scale-x-100 transition-transform duration-500",
911
1000
  c ? "origin-right" : "origin-left"
912
1001
  ) })
@@ -914,26 +1003,26 @@ const lo = ({
914
1003
  }
915
1004
  )
916
1005
  },
917
- f
1006
+ m
918
1007
  );
919
1008
  }) })
920
1009
  ]
921
1010
  }
922
1011
  );
923
- }, Lt = ({ className: e, from: t, ...n }) => /* @__PURE__ */ i(
1012
+ }, Dt = ({ className: e, from: t, ...n }) => /* @__PURE__ */ i(
924
1013
  "div",
925
1014
  {
926
- className: k(
1015
+ className: y(
927
1016
  "group flex w-full items-end gap-3",
928
1017
  t === "user" ? "is-user justify-end" : "is-assistant",
929
1018
  e
930
1019
  ),
931
1020
  ...n
932
1021
  }
933
- ), Dt = ({ children: e, className: t, isPlain: n, ...o }) => /* @__PURE__ */ i(
1022
+ ), Pt = ({ children: e, className: t, isPlain: n, ...o }) => /* @__PURE__ */ i(
934
1023
  "div",
935
1024
  {
936
- className: k(
1025
+ className: y(
937
1026
  "flex flex-col gap-2 overflow-hidden text-[1.0625rem]",
938
1027
  // User bubble: gradient pill with glow shadow
939
1028
  !n && [
@@ -954,10 +1043,10 @@ const lo = ({
954
1043
  ...o,
955
1044
  children: e
956
1045
  }
957
- ), co = ({ className: e, children: t, ...n }) => /* @__PURE__ */ i(
1046
+ ), po = ({ className: e, children: t, ...n }) => /* @__PURE__ */ i(
958
1047
  "div",
959
1048
  {
960
- className: k(
1049
+ className: y(
961
1050
  "flex items-center gap-0.5",
962
1051
  "opacity-100",
963
1052
  "transition-opacity duration-200",
@@ -975,10 +1064,10 @@ const lo = ({
975
1064
  size: a = "sm",
976
1065
  ...l
977
1066
  }) => {
978
- const c = /* @__PURE__ */ w(
979
- ee,
1067
+ const c = /* @__PURE__ */ _(
1068
+ Q,
980
1069
  {
981
- className: k(
1070
+ className: y(
982
1071
  "size-7 p-1 rounded-lg",
983
1072
  "text-muted-foreground/60 hover:text-foreground",
984
1073
  "hover:bg-accent/70",
@@ -996,8 +1085,8 @@ const lo = ({
996
1085
  ]
997
1086
  }
998
1087
  );
999
- return e ? /* @__PURE__ */ i(It, { children: /* @__PURE__ */ w(Rt, { children: [
1000
- /* @__PURE__ */ i(Ot, { asChild: !0, children: c }),
1088
+ return e ? /* @__PURE__ */ i(Rt, { children: /* @__PURE__ */ _(Ot, { children: [
1089
+ /* @__PURE__ */ i(Lt, { asChild: !0, children: c }),
1001
1090
  /* @__PURE__ */ i(Ft, { children: /* @__PURE__ */ i("p", { children: e }) })
1002
1091
  ] }) }) : c;
1003
1092
  };
@@ -1019,7 +1108,7 @@ class le {
1019
1108
  le.prototype.normal = {};
1020
1109
  le.prototype.property = {};
1021
1110
  le.prototype.space = void 0;
1022
- function Pt(e, t) {
1111
+ function Mt(e, t) {
1023
1112
  const n = {}, o = {};
1024
1113
  for (const r of e)
1025
1114
  Object.assign(n, r.property), Object.assign(o, r.normal);
@@ -1053,18 +1142,18 @@ D.prototype.overloadedBoolean = !1;
1053
1142
  D.prototype.property = "";
1054
1143
  D.prototype.spaceSeparated = !1;
1055
1144
  D.prototype.space = void 0;
1056
- let uo = 0;
1057
- const _ = G(), A = G(), Ae = G(), u = G(), T = G(), Z = G(), P = G();
1145
+ let ho = 0;
1146
+ const x = G(), I = G(), Ae = G(), d = G(), T = G(), K = G(), P = G();
1058
1147
  function G() {
1059
- return 2 ** ++uo;
1148
+ return 2 ** ++ho;
1060
1149
  }
1061
1150
  const Ie = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1062
1151
  __proto__: null,
1063
- boolean: _,
1064
- booleanish: A,
1152
+ boolean: x,
1153
+ booleanish: I,
1065
1154
  commaOrSpaceSeparated: P,
1066
- commaSeparated: Z,
1067
- number: u,
1155
+ commaSeparated: K,
1156
+ number: d,
1068
1157
  overloadedBoolean: Ae,
1069
1158
  spaceSeparated: T
1070
1159
  }, Symbol.toStringTag, { value: "Module" })), ye = (
@@ -1098,7 +1187,7 @@ Be.prototype.defined = !0;
1098
1187
  function Ke(e, t, n) {
1099
1188
  n && (e[t] = n);
1100
1189
  }
1101
- function te(e) {
1190
+ function ee(e) {
1102
1191
  const t = {}, n = {};
1103
1192
  for (const [o, r] of Object.entries(e.properties)) {
1104
1193
  const a = new Be(
@@ -1111,55 +1200,55 @@ function te(e) {
1111
1200
  }
1112
1201
  return new le(t, n, e.space);
1113
1202
  }
1114
- const Mt = te({
1203
+ const zt = ee({
1115
1204
  properties: {
1116
1205
  ariaActiveDescendant: null,
1117
- ariaAtomic: A,
1206
+ ariaAtomic: I,
1118
1207
  ariaAutoComplete: null,
1119
- ariaBusy: A,
1120
- ariaChecked: A,
1121
- ariaColCount: u,
1122
- ariaColIndex: u,
1123
- ariaColSpan: u,
1208
+ ariaBusy: I,
1209
+ ariaChecked: I,
1210
+ ariaColCount: d,
1211
+ ariaColIndex: d,
1212
+ ariaColSpan: d,
1124
1213
  ariaControls: T,
1125
1214
  ariaCurrent: null,
1126
1215
  ariaDescribedBy: T,
1127
1216
  ariaDetails: null,
1128
- ariaDisabled: A,
1217
+ ariaDisabled: I,
1129
1218
  ariaDropEffect: T,
1130
1219
  ariaErrorMessage: null,
1131
- ariaExpanded: A,
1220
+ ariaExpanded: I,
1132
1221
  ariaFlowTo: T,
1133
- ariaGrabbed: A,
1222
+ ariaGrabbed: I,
1134
1223
  ariaHasPopup: null,
1135
- ariaHidden: A,
1224
+ ariaHidden: I,
1136
1225
  ariaInvalid: null,
1137
1226
  ariaKeyShortcuts: null,
1138
1227
  ariaLabel: null,
1139
1228
  ariaLabelledBy: T,
1140
- ariaLevel: u,
1229
+ ariaLevel: d,
1141
1230
  ariaLive: null,
1142
- ariaModal: A,
1143
- ariaMultiLine: A,
1144
- ariaMultiSelectable: A,
1231
+ ariaModal: I,
1232
+ ariaMultiLine: I,
1233
+ ariaMultiSelectable: I,
1145
1234
  ariaOrientation: null,
1146
1235
  ariaOwns: T,
1147
1236
  ariaPlaceholder: null,
1148
- ariaPosInSet: u,
1149
- ariaPressed: A,
1150
- ariaReadOnly: A,
1237
+ ariaPosInSet: d,
1238
+ ariaPressed: I,
1239
+ ariaReadOnly: I,
1151
1240
  ariaRelevant: null,
1152
- ariaRequired: A,
1241
+ ariaRequired: I,
1153
1242
  ariaRoleDescription: T,
1154
- ariaRowCount: u,
1155
- ariaRowIndex: u,
1156
- ariaRowSpan: u,
1157
- ariaSelected: A,
1158
- ariaSetSize: u,
1243
+ ariaRowCount: d,
1244
+ ariaRowIndex: d,
1245
+ ariaRowSpan: d,
1246
+ ariaSelected: I,
1247
+ ariaSetSize: d,
1159
1248
  ariaSort: null,
1160
- ariaValueMax: u,
1161
- ariaValueMin: u,
1162
- ariaValueNow: u,
1249
+ ariaValueMax: d,
1250
+ ariaValueMin: d,
1251
+ ariaValueNow: d,
1163
1252
  ariaValueText: null,
1164
1253
  role: null
1165
1254
  },
@@ -1167,13 +1256,13 @@ const Mt = te({
1167
1256
  return t === "role" ? t : "aria-" + t.slice(4).toLowerCase();
1168
1257
  }
1169
1258
  });
1170
- function zt(e, t) {
1259
+ function Ut(e, t) {
1171
1260
  return t in e ? e[t] : t;
1172
1261
  }
1173
1262
  function $t(e, t) {
1174
- return zt(e, t.toLowerCase());
1263
+ return Ut(e, t.toLowerCase());
1175
1264
  }
1176
- const po = te({
1265
+ const go = ee({
1177
1266
  attributes: {
1178
1267
  acceptcharset: "accept-charset",
1179
1268
  classname: "class",
@@ -1184,45 +1273,45 @@ const po = te({
1184
1273
  properties: {
1185
1274
  // Standard Properties.
1186
1275
  abbr: null,
1187
- accept: Z,
1276
+ accept: K,
1188
1277
  acceptCharset: T,
1189
1278
  accessKey: T,
1190
1279
  action: null,
1191
1280
  allow: null,
1192
- allowFullScreen: _,
1193
- allowPaymentRequest: _,
1194
- allowUserMedia: _,
1281
+ allowFullScreen: x,
1282
+ allowPaymentRequest: x,
1283
+ allowUserMedia: x,
1195
1284
  alt: null,
1196
1285
  as: null,
1197
- async: _,
1286
+ async: x,
1198
1287
  autoCapitalize: null,
1199
1288
  autoComplete: T,
1200
- autoFocus: _,
1201
- autoPlay: _,
1289
+ autoFocus: x,
1290
+ autoPlay: x,
1202
1291
  blocking: T,
1203
1292
  capture: null,
1204
1293
  charSet: null,
1205
- checked: _,
1294
+ checked: x,
1206
1295
  cite: null,
1207
1296
  className: T,
1208
- cols: u,
1297
+ cols: d,
1209
1298
  colSpan: null,
1210
1299
  content: null,
1211
- contentEditable: A,
1212
- controls: _,
1300
+ contentEditable: I,
1301
+ controls: x,
1213
1302
  controlsList: T,
1214
- coords: u | Z,
1303
+ coords: d | K,
1215
1304
  crossOrigin: null,
1216
1305
  data: null,
1217
1306
  dateTime: null,
1218
1307
  decoding: null,
1219
- default: _,
1220
- defer: _,
1308
+ default: x,
1309
+ defer: x,
1221
1310
  dir: null,
1222
1311
  dirName: null,
1223
- disabled: _,
1312
+ disabled: x,
1224
1313
  download: Ae,
1225
- draggable: A,
1314
+ draggable: I,
1226
1315
  encType: null,
1227
1316
  enterKeyHint: null,
1228
1317
  fetchPriority: null,
@@ -1230,12 +1319,12 @@ const po = te({
1230
1319
  formAction: null,
1231
1320
  formEncType: null,
1232
1321
  formMethod: null,
1233
- formNoValidate: _,
1322
+ formNoValidate: x,
1234
1323
  formTarget: null,
1235
1324
  headers: T,
1236
- height: u,
1325
+ height: d,
1237
1326
  hidden: Ae,
1238
- high: u,
1327
+ high: d,
1239
1328
  href: null,
1240
1329
  hrefLang: null,
1241
1330
  htmlFor: T,
@@ -1243,15 +1332,15 @@ const po = te({
1243
1332
  id: null,
1244
1333
  imageSizes: null,
1245
1334
  imageSrcSet: null,
1246
- inert: _,
1335
+ inert: x,
1247
1336
  inputMode: null,
1248
1337
  integrity: null,
1249
1338
  is: null,
1250
- isMap: _,
1339
+ isMap: x,
1251
1340
  itemId: null,
1252
1341
  itemProp: T,
1253
1342
  itemRef: T,
1254
- itemScope: _,
1343
+ itemScope: x,
1255
1344
  itemType: T,
1256
1345
  kind: null,
1257
1346
  label: null,
@@ -1259,21 +1348,21 @@ const po = te({
1259
1348
  language: null,
1260
1349
  list: null,
1261
1350
  loading: null,
1262
- loop: _,
1263
- low: u,
1351
+ loop: x,
1352
+ low: d,
1264
1353
  manifest: null,
1265
1354
  max: null,
1266
- maxLength: u,
1355
+ maxLength: d,
1267
1356
  media: null,
1268
1357
  method: null,
1269
1358
  min: null,
1270
- minLength: u,
1271
- multiple: _,
1272
- muted: _,
1359
+ minLength: d,
1360
+ multiple: x,
1361
+ muted: x,
1273
1362
  name: null,
1274
1363
  nonce: null,
1275
- noModule: _,
1276
- noValidate: _,
1364
+ noModule: x,
1365
+ noValidate: x,
1277
1366
  onAbort: null,
1278
1367
  onAfterPrint: null,
1279
1368
  onAuxClick: null,
@@ -1362,54 +1451,54 @@ const po = te({
1362
1451
  onVolumeChange: null,
1363
1452
  onWaiting: null,
1364
1453
  onWheel: null,
1365
- open: _,
1366
- optimum: u,
1454
+ open: x,
1455
+ optimum: d,
1367
1456
  pattern: null,
1368
1457
  ping: T,
1369
1458
  placeholder: null,
1370
- playsInline: _,
1459
+ playsInline: x,
1371
1460
  popover: null,
1372
1461
  popoverTarget: null,
1373
1462
  popoverTargetAction: null,
1374
1463
  poster: null,
1375
1464
  preload: null,
1376
- readOnly: _,
1465
+ readOnly: x,
1377
1466
  referrerPolicy: null,
1378
1467
  rel: T,
1379
- required: _,
1380
- reversed: _,
1381
- rows: u,
1382
- rowSpan: u,
1468
+ required: x,
1469
+ reversed: x,
1470
+ rows: d,
1471
+ rowSpan: d,
1383
1472
  sandbox: T,
1384
1473
  scope: null,
1385
- scoped: _,
1386
- seamless: _,
1387
- selected: _,
1388
- shadowRootClonable: _,
1389
- shadowRootDelegatesFocus: _,
1474
+ scoped: x,
1475
+ seamless: x,
1476
+ selected: x,
1477
+ shadowRootClonable: x,
1478
+ shadowRootDelegatesFocus: x,
1390
1479
  shadowRootMode: null,
1391
1480
  shape: null,
1392
- size: u,
1481
+ size: d,
1393
1482
  sizes: null,
1394
1483
  slot: null,
1395
- span: u,
1396
- spellCheck: A,
1484
+ span: d,
1485
+ spellCheck: I,
1397
1486
  src: null,
1398
1487
  srcDoc: null,
1399
1488
  srcLang: null,
1400
1489
  srcSet: null,
1401
- start: u,
1490
+ start: d,
1402
1491
  step: null,
1403
1492
  style: null,
1404
- tabIndex: u,
1493
+ tabIndex: d,
1405
1494
  target: null,
1406
1495
  title: null,
1407
1496
  translate: null,
1408
1497
  type: null,
1409
- typeMustMatch: _,
1498
+ typeMustMatch: x,
1410
1499
  useMap: null,
1411
- value: A,
1412
- width: u,
1500
+ value: I,
1501
+ width: d,
1413
1502
  wrap: null,
1414
1503
  writingSuggestions: null,
1415
1504
  // Legacy.
@@ -1426,11 +1515,11 @@ const po = te({
1426
1515
  // `<body>`. Use CSS `background-image` instead
1427
1516
  bgColor: null,
1428
1517
  // `<body>` and table elements. Use CSS `background-color` instead
1429
- border: u,
1518
+ border: d,
1430
1519
  // `<table>`. Use CSS `border-width` instead,
1431
1520
  borderColor: null,
1432
1521
  // `<table>`. Use CSS `border-color` instead,
1433
- bottomMargin: u,
1522
+ bottomMargin: d,
1434
1523
  // `<body>`
1435
1524
  cellPadding: null,
1436
1525
  // `<table>`
@@ -1452,9 +1541,9 @@ const po = te({
1452
1541
  // `<object>`
1453
1542
  color: null,
1454
1543
  // `<font>` and `<hr>`. Use CSS instead
1455
- compact: _,
1544
+ compact: x,
1456
1545
  // Lists. Use CSS to reduce space between items instead
1457
- declare: _,
1546
+ declare: x,
1458
1547
  // `<object>`
1459
1548
  event: null,
1460
1549
  // `<script>`
@@ -1464,9 +1553,9 @@ const po = te({
1464
1553
  // `<table>`
1465
1554
  frameBorder: null,
1466
1555
  // `<iframe>`. Use CSS `border` instead
1467
- hSpace: u,
1556
+ hSpace: d,
1468
1557
  // `<img>` and `<object>`
1469
- leftMargin: u,
1558
+ leftMargin: d,
1470
1559
  // `<body>`
1471
1560
  link: null,
1472
1561
  // `<body>`. Use CSS `a:link {color: *}` instead
@@ -1474,17 +1563,17 @@ const po = te({
1474
1563
  // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`
1475
1564
  lowSrc: null,
1476
1565
  // `<img>`. Use a `<picture>`
1477
- marginHeight: u,
1566
+ marginHeight: d,
1478
1567
  // `<body>`
1479
- marginWidth: u,
1568
+ marginWidth: d,
1480
1569
  // `<body>`
1481
- noResize: _,
1570
+ noResize: x,
1482
1571
  // `<frame>`
1483
- noHref: _,
1572
+ noHref: x,
1484
1573
  // `<area>`. Use no href instead of an explicit `nohref`
1485
- noShade: _,
1574
+ noShade: x,
1486
1575
  // `<hr>`. Use background-color and height instead of borders
1487
- noWrap: _,
1576
+ noWrap: x,
1488
1577
  // `<td>` and `<th>`
1489
1578
  object: null,
1490
1579
  // `<applet>`
@@ -1494,13 +1583,13 @@ const po = te({
1494
1583
  // `<isindex>`
1495
1584
  rev: null,
1496
1585
  // `<link>`
1497
- rightMargin: u,
1586
+ rightMargin: d,
1498
1587
  // `<body>`
1499
1588
  rules: null,
1500
1589
  // `<table>`
1501
1590
  scheme: null,
1502
1591
  // `<meta>`
1503
- scrolling: A,
1592
+ scrolling: I,
1504
1593
  // `<frame>`. Use overflow in the child context
1505
1594
  standby: null,
1506
1595
  // `<object>`
@@ -1508,7 +1597,7 @@ const po = te({
1508
1597
  // `<table>`
1509
1598
  text: null,
1510
1599
  // `<body>`. Use CSS `color` instead
1511
- topMargin: u,
1600
+ topMargin: d,
1512
1601
  // `<body>`
1513
1602
  valueType: null,
1514
1603
  // `<param>`
@@ -1518,23 +1607,23 @@ const po = te({
1518
1607
  // Several. Use CSS `vertical-align` instead
1519
1608
  vLink: null,
1520
1609
  // `<body>`. Use CSS `a:visited {color}` instead
1521
- vSpace: u,
1610
+ vSpace: d,
1522
1611
  // `<img>` and `<object>`
1523
1612
  // Non-standard Properties.
1524
1613
  allowTransparency: null,
1525
1614
  autoCorrect: null,
1526
1615
  autoSave: null,
1527
- disablePictureInPicture: _,
1528
- disableRemotePlayback: _,
1616
+ disablePictureInPicture: x,
1617
+ disableRemotePlayback: x,
1529
1618
  prefix: null,
1530
1619
  property: null,
1531
- results: u,
1620
+ results: d,
1532
1621
  security: null,
1533
1622
  unselectable: null
1534
1623
  },
1535
1624
  space: "html",
1536
1625
  transform: $t
1537
- }), ho = te({
1626
+ }), mo = ee({
1538
1627
  attributes: {
1539
1628
  accentHeight: "accent-height",
1540
1629
  alignmentBaseline: "alignment-baseline",
@@ -1712,27 +1801,27 @@ const po = te({
1712
1801
  },
1713
1802
  properties: {
1714
1803
  about: P,
1715
- accentHeight: u,
1804
+ accentHeight: d,
1716
1805
  accumulate: null,
1717
1806
  additive: null,
1718
1807
  alignmentBaseline: null,
1719
- alphabetic: u,
1720
- amplitude: u,
1808
+ alphabetic: d,
1809
+ amplitude: d,
1721
1810
  arabicForm: null,
1722
- ascent: u,
1811
+ ascent: d,
1723
1812
  attributeName: null,
1724
1813
  attributeType: null,
1725
- azimuth: u,
1814
+ azimuth: d,
1726
1815
  bandwidth: null,
1727
1816
  baselineShift: null,
1728
1817
  baseFrequency: null,
1729
1818
  baseProfile: null,
1730
1819
  bbox: null,
1731
1820
  begin: null,
1732
- bias: u,
1821
+ bias: d,
1733
1822
  by: null,
1734
1823
  calcMode: null,
1735
- capHeight: u,
1824
+ capHeight: d,
1736
1825
  className: T,
1737
1826
  clip: null,
1738
1827
  clipPath: null,
@@ -1753,26 +1842,26 @@ const po = te({
1753
1842
  d: null,
1754
1843
  dataType: null,
1755
1844
  defaultAction: null,
1756
- descent: u,
1757
- diffuseConstant: u,
1845
+ descent: d,
1846
+ diffuseConstant: d,
1758
1847
  direction: null,
1759
1848
  display: null,
1760
1849
  dur: null,
1761
- divisor: u,
1850
+ divisor: d,
1762
1851
  dominantBaseline: null,
1763
- download: _,
1852
+ download: x,
1764
1853
  dx: null,
1765
1854
  dy: null,
1766
1855
  edgeMode: null,
1767
1856
  editable: null,
1768
- elevation: u,
1857
+ elevation: d,
1769
1858
  enableBackground: null,
1770
1859
  end: null,
1771
1860
  event: null,
1772
- exponent: u,
1861
+ exponent: d,
1773
1862
  externalResourcesRequired: null,
1774
1863
  fill: null,
1775
- fillOpacity: u,
1864
+ fillOpacity: d,
1776
1865
  fillRule: null,
1777
1866
  filter: null,
1778
1867
  filterRes: null,
@@ -1793,36 +1882,36 @@ const po = te({
1793
1882
  from: null,
1794
1883
  fx: null,
1795
1884
  fy: null,
1796
- g1: Z,
1797
- g2: Z,
1798
- glyphName: Z,
1885
+ g1: K,
1886
+ g2: K,
1887
+ glyphName: K,
1799
1888
  glyphOrientationHorizontal: null,
1800
1889
  glyphOrientationVertical: null,
1801
1890
  glyphRef: null,
1802
1891
  gradientTransform: null,
1803
1892
  gradientUnits: null,
1804
1893
  handler: null,
1805
- hanging: u,
1894
+ hanging: d,
1806
1895
  hatchContentUnits: null,
1807
1896
  hatchUnits: null,
1808
1897
  height: null,
1809
1898
  href: null,
1810
1899
  hrefLang: null,
1811
- horizAdvX: u,
1812
- horizOriginX: u,
1813
- horizOriginY: u,
1900
+ horizAdvX: d,
1901
+ horizOriginX: d,
1902
+ horizOriginY: d,
1814
1903
  id: null,
1815
- ideographic: u,
1904
+ ideographic: d,
1816
1905
  imageRendering: null,
1817
1906
  initialVisibility: null,
1818
1907
  in: null,
1819
1908
  in2: null,
1820
- intercept: u,
1821
- k: u,
1822
- k1: u,
1823
- k2: u,
1824
- k3: u,
1825
- k4: u,
1909
+ intercept: d,
1910
+ k: d,
1911
+ k1: d,
1912
+ k2: d,
1913
+ k3: d,
1914
+ k4: d,
1826
1915
  kernelMatrix: P,
1827
1916
  kernelUnitLength: null,
1828
1917
  keyPoints: null,
@@ -1836,7 +1925,7 @@ const po = te({
1836
1925
  lengthAdjust: null,
1837
1926
  letterSpacing: null,
1838
1927
  lightingColor: null,
1839
- limitingConeAngle: u,
1928
+ limitingConeAngle: d,
1840
1929
  local: null,
1841
1930
  markerEnd: null,
1842
1931
  markerMid: null,
@@ -1852,7 +1941,7 @@ const po = te({
1852
1941
  media: null,
1853
1942
  mediaCharacterEncoding: null,
1854
1943
  mediaContentEncodings: null,
1855
- mediaSize: u,
1944
+ mediaSize: d,
1856
1945
  mediaTime: null,
1857
1946
  method: null,
1858
1947
  min: null,
@@ -1958,12 +2047,12 @@ const po = te({
1958
2047
  origin: null,
1959
2048
  overflow: null,
1960
2049
  overlay: null,
1961
- overlinePosition: u,
1962
- overlineThickness: u,
2050
+ overlinePosition: d,
2051
+ overlineThickness: d,
1963
2052
  paintOrder: null,
1964
2053
  panose1: null,
1965
2054
  path: null,
1966
- pathLength: u,
2055
+ pathLength: d,
1967
2056
  patternContentUnits: null,
1968
2057
  patternTransform: null,
1969
2058
  patternUnits: null,
@@ -1973,9 +2062,9 @@ const po = te({
1973
2062
  playbackOrder: null,
1974
2063
  pointerEvents: null,
1975
2064
  points: null,
1976
- pointsAtX: u,
1977
- pointsAtY: u,
1978
- pointsAtZ: u,
2065
+ pointsAtX: d,
2066
+ pointsAtY: d,
2067
+ pointsAtZ: d,
1979
2068
  preserveAlpha: null,
1980
2069
  preserveAspectRatio: null,
1981
2070
  primitiveUnits: null,
@@ -2007,8 +2096,8 @@ const po = te({
2007
2096
  side: null,
2008
2097
  slope: null,
2009
2098
  snapshotTime: null,
2010
- specularConstant: u,
2011
- specularExponent: u,
2099
+ specularConstant: d,
2100
+ specularExponent: d,
2012
2101
  spreadMethod: null,
2013
2102
  spacing: null,
2014
2103
  startOffset: null,
@@ -2018,30 +2107,30 @@ const po = te({
2018
2107
  stitchTiles: null,
2019
2108
  stopColor: null,
2020
2109
  stopOpacity: null,
2021
- strikethroughPosition: u,
2022
- strikethroughThickness: u,
2110
+ strikethroughPosition: d,
2111
+ strikethroughThickness: d,
2023
2112
  string: null,
2024
2113
  stroke: null,
2025
2114
  strokeDashArray: P,
2026
2115
  strokeDashOffset: null,
2027
2116
  strokeLineCap: null,
2028
2117
  strokeLineJoin: null,
2029
- strokeMiterLimit: u,
2030
- strokeOpacity: u,
2118
+ strokeMiterLimit: d,
2119
+ strokeOpacity: d,
2031
2120
  strokeWidth: null,
2032
2121
  style: null,
2033
- surfaceScale: u,
2122
+ surfaceScale: d,
2034
2123
  syncBehavior: null,
2035
2124
  syncBehaviorDefault: null,
2036
2125
  syncMaster: null,
2037
2126
  syncTolerance: null,
2038
2127
  syncToleranceDefault: null,
2039
2128
  systemLanguage: P,
2040
- tabIndex: u,
2129
+ tabIndex: d,
2041
2130
  tableValues: null,
2042
2131
  target: null,
2043
- targetX: u,
2044
- targetY: u,
2132
+ targetX: d,
2133
+ targetY: d,
2045
2134
  textAnchor: null,
2046
2135
  textDecoration: null,
2047
2136
  textRendering: null,
@@ -2056,22 +2145,22 @@ const po = te({
2056
2145
  transformOrigin: null,
2057
2146
  u1: null,
2058
2147
  u2: null,
2059
- underlinePosition: u,
2060
- underlineThickness: u,
2148
+ underlinePosition: d,
2149
+ underlineThickness: d,
2061
2150
  unicode: null,
2062
2151
  unicodeBidi: null,
2063
2152
  unicodeRange: null,
2064
- unitsPerEm: u,
2153
+ unitsPerEm: d,
2065
2154
  values: null,
2066
- vAlphabetic: u,
2067
- vMathematical: u,
2155
+ vAlphabetic: d,
2156
+ vMathematical: d,
2068
2157
  vectorEffect: null,
2069
- vHanging: u,
2070
- vIdeographic: u,
2158
+ vHanging: d,
2159
+ vIdeographic: d,
2071
2160
  version: null,
2072
- vertAdvY: u,
2073
- vertOriginX: u,
2074
- vertOriginY: u,
2161
+ vertAdvY: d,
2162
+ vertOriginX: d,
2163
+ vertOriginY: d,
2075
2164
  viewBox: null,
2076
2165
  viewTarget: null,
2077
2166
  visibility: null,
@@ -2083,7 +2172,7 @@ const po = te({
2083
2172
  x1: null,
2084
2173
  x2: null,
2085
2174
  xChannelSelector: null,
2086
- xHeight: u,
2175
+ xHeight: d,
2087
2176
  y: null,
2088
2177
  y1: null,
2089
2178
  y2: null,
@@ -2092,8 +2181,8 @@ const po = te({
2092
2181
  zoomAndPan: null
2093
2182
  },
2094
2183
  space: "svg",
2095
- transform: zt
2096
- }), Ut = te({
2184
+ transform: Ut
2185
+ }), Bt = ee({
2097
2186
  properties: {
2098
2187
  xLinkActuate: null,
2099
2188
  xLinkArcRole: null,
@@ -2107,31 +2196,31 @@ const po = te({
2107
2196
  transform(e, t) {
2108
2197
  return "xlink:" + t.slice(5).toLowerCase();
2109
2198
  }
2110
- }), Bt = te({
2199
+ }), Ht = ee({
2111
2200
  attributes: { xmlnsxlink: "xmlns:xlink" },
2112
2201
  properties: { xmlnsXLink: null, xmlns: null },
2113
2202
  space: "xmlns",
2114
2203
  transform: $t
2115
- }), Ht = te({
2204
+ }), qt = ee({
2116
2205
  properties: { xmlBase: null, xmlLang: null, xmlSpace: null },
2117
2206
  space: "xml",
2118
2207
  transform(e, t) {
2119
2208
  return "xml:" + t.slice(3).toLowerCase();
2120
2209
  }
2121
- }), go = /[A-Z]/g, Ze = /-[a-z]/g, mo = /^data[-\w.:]+$/i;
2122
- function fo(e, t) {
2210
+ }), fo = /[A-Z]/g, Ze = /-[a-z]/g, bo = /^data[-\w.:]+$/i;
2211
+ function yo(e, t) {
2123
2212
  const n = ae(t);
2124
2213
  let o = t, r = D;
2125
2214
  if (n in e.normal)
2126
2215
  return e.property[e.normal[n]];
2127
- if (n.length > 4 && n.slice(0, 4) === "data" && mo.test(t)) {
2216
+ if (n.length > 4 && n.slice(0, 4) === "data" && bo.test(t)) {
2128
2217
  if (t.charAt(4) === "-") {
2129
- const a = t.slice(5).replace(Ze, yo);
2218
+ const a = t.slice(5).replace(Ze, vo);
2130
2219
  o = "data" + a.charAt(0).toUpperCase() + a.slice(1);
2131
2220
  } else {
2132
2221
  const a = t.slice(4);
2133
2222
  if (!Ze.test(a)) {
2134
- let l = a.replace(go, bo);
2223
+ let l = a.replace(fo, ko);
2135
2224
  l.charAt(0) !== "-" && (l = "-" + l), t = "data" + l;
2136
2225
  }
2137
2226
  }
@@ -2139,13 +2228,13 @@ function fo(e, t) {
2139
2228
  }
2140
2229
  return new r(o, t);
2141
2230
  }
2142
- function bo(e) {
2231
+ function ko(e) {
2143
2232
  return "-" + e.toLowerCase();
2144
2233
  }
2145
- function yo(e) {
2234
+ function vo(e) {
2146
2235
  return e.charAt(1).toUpperCase();
2147
2236
  }
2148
- const ko = Pt([Mt, po, Ut, Bt, Ht], "html"), vo = Pt([Mt, ho, Ut, Bt, Ht], "svg");
2237
+ const wo = Mt([zt, go, Bt, Ht, qt], "html"), _o = Mt([zt, mo, Bt, Ht, qt], "svg");
2149
2238
  function Je(e) {
2150
2239
  const t = [], n = String(e || "");
2151
2240
  let o = n.indexOf(","), r = 0, a = !1;
@@ -2157,7 +2246,7 @@ function Je(e) {
2157
2246
  return t;
2158
2247
  }
2159
2248
  const Qe = /[#.]/g;
2160
- function wo(e, t) {
2249
+ function xo(e, t) {
2161
2250
  const n = e || "", o = {};
2162
2251
  let r = 0, a, l;
2163
2252
  for (; r < n.length; ) {
@@ -2177,8 +2266,8 @@ function et(e) {
2177
2266
  const t = String(e || "").trim();
2178
2267
  return t ? t.split(/[ \t\n\r\f]+/g) : [];
2179
2268
  }
2180
- function qt(e, t, n) {
2181
- const o = n ? Eo(n) : void 0;
2269
+ function jt(e, t, n) {
2270
+ const o = n ? To(n) : void 0;
2182
2271
  function r(a, l, ...c) {
2183
2272
  let s;
2184
2273
  if (a == null) {
@@ -2189,13 +2278,13 @@ function qt(e, t, n) {
2189
2278
  );
2190
2279
  c.unshift(p);
2191
2280
  } else {
2192
- s = wo(a, t);
2193
- const p = s.tagName.toLowerCase(), h = o ? o.get(p) : void 0;
2194
- if (s.tagName = h || p, xo(l))
2281
+ s = xo(a, t);
2282
+ const p = s.tagName.toLowerCase(), g = o ? o.get(p) : void 0;
2283
+ if (s.tagName = g || p, So(l))
2195
2284
  c.unshift(l);
2196
2285
  else
2197
- for (const [f, b] of Object.entries(l))
2198
- _o(e, s.properties, f, b);
2286
+ for (const [m, f] of Object.entries(l))
2287
+ Eo(e, s.properties, m, f);
2199
2288
  }
2200
2289
  for (const p of c)
2201
2290
  Re(s.children, p);
@@ -2203,7 +2292,7 @@ function qt(e, t, n) {
2203
2292
  }
2204
2293
  return r;
2205
2294
  }
2206
- function xo(e) {
2295
+ function So(e) {
2207
2296
  if (e === null || typeof e != "object" || Array.isArray(e))
2208
2297
  return !0;
2209
2298
  if (typeof e.type != "string") return !1;
@@ -2226,14 +2315,14 @@ function xo(e) {
2226
2315
  }
2227
2316
  return !!("children" in e && Array.isArray(e.children));
2228
2317
  }
2229
- function _o(e, t, n, o) {
2230
- const r = fo(e, n);
2318
+ function Eo(e, t, n, o) {
2319
+ const r = yo(e, n);
2231
2320
  let a;
2232
2321
  if (o != null) {
2233
2322
  if (typeof o == "number") {
2234
2323
  if (Number.isNaN(o)) return;
2235
2324
  a = o;
2236
- } else typeof o == "boolean" ? a = o : typeof o == "string" ? r.spaceSeparated ? a = et(o) : r.commaSeparated ? a = Je(o) : r.commaOrSpaceSeparated ? a = et(Je(o).join(" ")) : a = tt(r, r.property, o) : Array.isArray(o) ? a = [...o] : a = r.property === "style" ? So(o) : String(o);
2325
+ } else typeof o == "boolean" ? a = o : typeof o == "string" ? r.spaceSeparated ? a = et(o) : r.commaSeparated ? a = Je(o) : r.commaOrSpaceSeparated ? a = et(Je(o).join(" ")) : a = tt(r, r.property, o) : Array.isArray(o) ? a = [...o] : a = r.property === "style" ? No(o) : String(o);
2237
2326
  if (Array.isArray(a)) {
2238
2327
  const l = [];
2239
2328
  for (const c of a)
@@ -2269,19 +2358,19 @@ function tt(e, t, n) {
2269
2358
  }
2270
2359
  return n;
2271
2360
  }
2272
- function So(e) {
2361
+ function No(e) {
2273
2362
  const t = [];
2274
2363
  for (const [n, o] of Object.entries(e))
2275
2364
  t.push([n, o].join(": "));
2276
2365
  return t.join("; ");
2277
2366
  }
2278
- function Eo(e) {
2367
+ function To(e) {
2279
2368
  const t = /* @__PURE__ */ new Map();
2280
2369
  for (const n of e)
2281
2370
  t.set(n.toLowerCase(), n);
2282
2371
  return t;
2283
2372
  }
2284
- const No = [
2373
+ const Co = [
2285
2374
  "altGlyph",
2286
2375
  "altGlyphDef",
2287
2376
  "altGlyphItem",
@@ -2321,28 +2410,28 @@ const No = [
2321
2410
  "solidColor",
2322
2411
  "textArea",
2323
2412
  "textPath"
2324
- ], To = qt(ko, "div"), Co = qt(vo, "g", No), ke = {
2413
+ ], Ao = jt(wo, "div"), Io = jt(_o, "g", Co), ke = {
2325
2414
  html: "http://www.w3.org/1999/xhtml",
2326
2415
  svg: "http://www.w3.org/2000/svg"
2327
2416
  };
2328
- function Ao(e, t) {
2329
- return jt(e, {}) || { type: "root", children: [] };
2417
+ function Ro(e, t) {
2418
+ return Gt(e, {}) || { type: "root", children: [] };
2330
2419
  }
2331
- function jt(e, t) {
2332
- const n = Io(e, t);
2420
+ function Gt(e, t) {
2421
+ const n = Oo(e, t);
2333
2422
  return n && t.afterTransform && t.afterTransform(e, n), n;
2334
2423
  }
2335
- function Io(e, t) {
2424
+ function Oo(e, t) {
2336
2425
  switch (e.nodeType) {
2337
2426
  case 1:
2338
- return Lo(
2427
+ return Po(
2339
2428
  /** @type {Element} */
2340
2429
  e,
2341
2430
  t
2342
2431
  );
2343
2432
  // Ignore: Attr (2).
2344
2433
  case 3:
2345
- return Oo(
2434
+ return Fo(
2346
2435
  /** @type {Text} */
2347
2436
  e
2348
2437
  );
@@ -2351,7 +2440,7 @@ function Io(e, t) {
2351
2440
  // Removed: Entity (6)
2352
2441
  // Ignore: Processing instruction (7).
2353
2442
  case 8:
2354
- return Fo(
2443
+ return Do(
2355
2444
  /** @type {Comment} */
2356
2445
  e
2357
2446
  );
@@ -2362,7 +2451,7 @@ function Io(e, t) {
2362
2451
  t
2363
2452
  );
2364
2453
  case 10:
2365
- return Ro();
2454
+ return Lo();
2366
2455
  case 11:
2367
2456
  return nt(
2368
2457
  /** @type {DocumentFragment} */
@@ -2374,45 +2463,45 @@ function Io(e, t) {
2374
2463
  }
2375
2464
  }
2376
2465
  function nt(e, t) {
2377
- return { type: "root", children: Gt(e, t) };
2466
+ return { type: "root", children: Vt(e, t) };
2378
2467
  }
2379
- function Ro() {
2468
+ function Lo() {
2380
2469
  return { type: "doctype" };
2381
2470
  }
2382
- function Oo(e) {
2471
+ function Fo(e) {
2383
2472
  return { type: "text", value: e.nodeValue || "" };
2384
2473
  }
2385
- function Fo(e) {
2474
+ function Do(e) {
2386
2475
  return { type: "comment", value: e.nodeValue || "" };
2387
2476
  }
2388
- function Lo(e, t) {
2389
- const n = e.namespaceURI, o = n === ke.svg ? Co : To, r = n === ke.html ? e.tagName.toLowerCase() : e.tagName, a = (
2477
+ function Po(e, t) {
2478
+ const n = e.namespaceURI, o = n === ke.svg ? Io : Ao, r = n === ke.html ? e.tagName.toLowerCase() : e.tagName, a = (
2390
2479
  // @ts-expect-error: DOM types are wrong, content can exist.
2391
2480
  n === ke.html && r === "template" ? e.content : e
2392
2481
  ), l = e.getAttributeNames(), c = {};
2393
2482
  let s = -1;
2394
2483
  for (; ++s < l.length; )
2395
2484
  c[l[s]] = e.getAttribute(l[s]) || "";
2396
- return o(r, c, Gt(a, t));
2485
+ return o(r, c, Vt(a, t));
2397
2486
  }
2398
- function Gt(e, t) {
2487
+ function Vt(e, t) {
2399
2488
  const n = e.childNodes, o = [];
2400
2489
  let r = -1;
2401
2490
  for (; ++r < n.length; ) {
2402
- const a = jt(n[r], t);
2491
+ const a = Gt(n[r], t);
2403
2492
  a !== void 0 && o.push(a);
2404
2493
  }
2405
2494
  return o;
2406
2495
  }
2407
2496
  new DOMParser();
2408
- function Do(e, t) {
2409
- const n = Po(e);
2497
+ function Mo(e, t) {
2498
+ const n = zo(e);
2410
2499
  return (
2411
2500
  /** @type {Root} */
2412
- Ao(n)
2501
+ Ro(n)
2413
2502
  );
2414
2503
  }
2415
- function Po(e) {
2504
+ function zo(e) {
2416
2505
  const t = document.createElement("template");
2417
2506
  return t.innerHTML = e, t.content;
2418
2507
  }
@@ -2433,24 +2522,24 @@ const He = (
2433
2522
  */
2434
2523
  (function(e) {
2435
2524
  if (e == null)
2436
- return Uo;
2525
+ return Ho;
2437
2526
  if (typeof e == "function")
2438
2527
  return me(e);
2439
2528
  if (typeof e == "object")
2440
- return Array.isArray(e) ? Mo(e) : (
2529
+ return Array.isArray(e) ? Uo(e) : (
2441
2530
  // Cast because `ReadonlyArray` goes into the above but `isArray`
2442
2531
  // narrows to `Array`.
2443
- zo(
2532
+ $o(
2444
2533
  /** @type {Props} */
2445
2534
  e
2446
2535
  )
2447
2536
  );
2448
2537
  if (typeof e == "string")
2449
- return $o(e);
2538
+ return Bo(e);
2450
2539
  throw new Error("Expected function, string, or object as test");
2451
2540
  })
2452
2541
  );
2453
- function Mo(e) {
2542
+ function Uo(e) {
2454
2543
  const t = [];
2455
2544
  let n = -1;
2456
2545
  for (; ++n < e.length; )
@@ -2463,7 +2552,7 @@ function Mo(e) {
2463
2552
  return !1;
2464
2553
  }
2465
2554
  }
2466
- function zo(e) {
2555
+ function $o(e) {
2467
2556
  const t = (
2468
2557
  /** @type {Record<string, unknown>} */
2469
2558
  e
@@ -2481,7 +2570,7 @@ function zo(e) {
2481
2570
  return !0;
2482
2571
  }
2483
2572
  }
2484
- function $o(e) {
2573
+ function Bo(e) {
2485
2574
  return me(t);
2486
2575
  function t(n) {
2487
2576
  return n && n.type === e;
@@ -2490,7 +2579,7 @@ function $o(e) {
2490
2579
  function me(e) {
2491
2580
  return t;
2492
2581
  function t(n, o, r) {
2493
- return !!(Bo(n) && e.call(
2582
+ return !!(qo(n) && e.call(
2494
2583
  this,
2495
2584
  n,
2496
2585
  typeof o == "number" ? o : void 0,
@@ -2498,10 +2587,10 @@ function me(e) {
2498
2587
  ));
2499
2588
  }
2500
2589
  }
2501
- function Uo() {
2590
+ function Ho() {
2502
2591
  return !0;
2503
2592
  }
2504
- function Bo(e) {
2593
+ function qo(e) {
2505
2594
  return e !== null && typeof e == "object" && "type" in e;
2506
2595
  }
2507
2596
  const ot = (
@@ -2547,17 +2636,17 @@ const ot = (
2547
2636
  */
2548
2637
  (function(e) {
2549
2638
  if (e == null)
2550
- return jo;
2639
+ return Vo;
2551
2640
  if (typeof e == "string")
2552
- return qo(e);
2641
+ return Go(e);
2553
2642
  if (typeof e == "object")
2554
- return Ho(e);
2643
+ return jo(e);
2555
2644
  if (typeof e == "function")
2556
2645
  return qe(e);
2557
2646
  throw new Error("Expected function, string, or array as `test`");
2558
2647
  })
2559
2648
  );
2560
- function Ho(e) {
2649
+ function jo(e) {
2561
2650
  const t = [];
2562
2651
  let n = -1;
2563
2652
  for (; ++n < e.length; )
@@ -2570,7 +2659,7 @@ function Ho(e) {
2570
2659
  return !1;
2571
2660
  }
2572
2661
  }
2573
- function qo(e) {
2662
+ function Go(e) {
2574
2663
  return qe(t);
2575
2664
  function t(n) {
2576
2665
  return n.tagName === e;
@@ -2579,7 +2668,7 @@ function qo(e) {
2579
2668
  function qe(e) {
2580
2669
  return t;
2581
2670
  function t(n, o, r) {
2582
- return !!(Go(n) && e.call(
2671
+ return !!(Wo(n) && e.call(
2583
2672
  this,
2584
2673
  n,
2585
2674
  typeof o == "number" ? o : void 0,
@@ -2587,13 +2676,13 @@ function qe(e) {
2587
2676
  ));
2588
2677
  }
2589
2678
  }
2590
- function jo(e) {
2679
+ function Vo(e) {
2591
2680
  return !!(e && typeof e == "object" && "type" in e && e.type === "element" && "tagName" in e && typeof e.tagName == "string");
2592
2681
  }
2593
- function Go(e) {
2682
+ function Wo(e) {
2594
2683
  return e !== null && typeof e == "object" && "type" in e && "tagName" in e;
2595
2684
  }
2596
- const rt = /\n/g, at = /[\t ]+/g, Oe = V("br"), it = V(Qo), Vo = V("p"), lt = V("tr"), Wo = V([
2685
+ const rt = /\n/g, at = /[\t ]+/g, Oe = V("br"), it = V(tr), Yo = V("p"), lt = V("tr"), Xo = V([
2597
2686
  // List from: <https://html.spec.whatwg.org/multipage/rendering.html#hidden-elements>
2598
2687
  "datalist",
2599
2688
  "head",
@@ -2607,10 +2696,10 @@ const rt = /\n/g, at = /[\t ]+/g, Oe = V("br"), it = V(Qo), Vo = V("p"), lt = V(
2607
2696
  "template",
2608
2697
  "title",
2609
2698
  // Hidden attribute.
2610
- Jo,
2699
+ er,
2611
2700
  // From: <https://html.spec.whatwg.org/multipage/rendering.html#flow-content-3>
2612
- er
2613
- ]), Vt = V([
2701
+ nr
2702
+ ]), Wt = V([
2614
2703
  "address",
2615
2704
  // Flow content
2616
2705
  "article",
@@ -2692,12 +2781,12 @@ const rt = /\n/g, at = /[\t ]+/g, Oe = V("br"), it = V(Qo), Vo = V("p"), lt = V(
2692
2781
  "xmp"
2693
2782
  // Flow content (legacy)
2694
2783
  ]);
2695
- function Yo(e, t) {
2696
- const n = t || {}, o = "children" in e ? e.children : [], r = Vt(e), a = Xt(e, {
2784
+ function Ko(e, t) {
2785
+ const n = t || {}, o = "children" in e ? e.children : [], r = Wt(e), a = Kt(e, {
2697
2786
  whitespace: n.whitespace || "normal"
2698
2787
  }), l = [];
2699
2788
  (e.type === "text" || e.type === "comment") && l.push(
2700
- ...Yt(e, {
2789
+ ...Xt(e, {
2701
2790
  breakBefore: !0,
2702
2791
  breakAfter: !0
2703
2792
  })
@@ -2705,7 +2794,7 @@ function Yo(e, t) {
2705
2794
  let c = -1;
2706
2795
  for (; ++c < o.length; )
2707
2796
  l.push(
2708
- ...Wt(
2797
+ ...Yt(
2709
2798
  o[c],
2710
2799
  // @ts-expect-error: `tree` is a parent if we’re here.
2711
2800
  e,
@@ -2719,26 +2808,26 @@ function Yo(e, t) {
2719
2808
  const s = [];
2720
2809
  let p;
2721
2810
  for (c = -1; ++c < l.length; ) {
2722
- const h = l[c];
2723
- typeof h == "number" ? p !== void 0 && h > p && (p = h) : h && (p !== void 0 && p > -1 && s.push(`
2724
- `.repeat(p) || " "), p = -1, s.push(h));
2811
+ const g = l[c];
2812
+ typeof g == "number" ? p !== void 0 && g > p && (p = g) : g && (p !== void 0 && p > -1 && s.push(`
2813
+ `.repeat(p) || " "), p = -1, s.push(g));
2725
2814
  }
2726
2815
  return s.join("");
2727
2816
  }
2728
- function Wt(e, t, n) {
2729
- return e.type === "element" ? Xo(e, t, n) : e.type === "text" ? n.whitespace === "normal" ? Yt(e, n) : Ko(e) : [];
2817
+ function Yt(e, t, n) {
2818
+ return e.type === "element" ? Zo(e, t, n) : e.type === "text" ? n.whitespace === "normal" ? Xt(e, n) : Jo(e) : [];
2730
2819
  }
2731
- function Xo(e, t, n) {
2732
- const o = Xt(e, n), r = e.children || [];
2820
+ function Zo(e, t, n) {
2821
+ const o = Kt(e, n), r = e.children || [];
2733
2822
  let a = -1, l = [];
2734
- if (Wo(e))
2823
+ if (Xo(e))
2735
2824
  return l;
2736
2825
  let c, s;
2737
2826
  for (Oe(e) || lt(e) && // @ts-expect-error: something up with types of parents.
2738
2827
  ot(t, e, lt) ? s = `
2739
- ` : Vo(e) ? (c = 2, s = 2) : Vt(e) && (c = 1, s = 1); ++a < r.length; )
2828
+ ` : Yo(e) ? (c = 2, s = 2) : Wt(e) && (c = 1, s = 1); ++a < r.length; )
2740
2829
  l = l.concat(
2741
- Wt(r[a], e, {
2830
+ Yt(r[a], e, {
2742
2831
  whitespace: o,
2743
2832
  breakBefore: a ? void 0 : c,
2744
2833
  breakAfter: a < r.length - 1 ? Oe(r[a + 1]) : s
@@ -2747,7 +2836,7 @@ function Xo(e, t, n) {
2747
2836
  return it(e) && // @ts-expect-error: something up with types of parents.
2748
2837
  ot(t, e, it) && l.push(" "), c && l.unshift(c), s && l.push(s), l;
2749
2838
  }
2750
- function Yt(e, t) {
2839
+ function Xt(e, t) {
2751
2840
  const n = String(e.value), o = [], r = [];
2752
2841
  let a = 0;
2753
2842
  for (; a <= n.length; ) {
@@ -2756,7 +2845,7 @@ function Yt(e, t) {
2756
2845
  o.push(
2757
2846
  // Any sequence of collapsible spaces and tabs immediately preceding or
2758
2847
  // following a segment break is removed.
2759
- Zo(
2848
+ Qo(
2760
2849
  // […] ignoring bidi formatting characters (characters with the
2761
2850
  // Bidi_Control property [UAX9]: ALM, LTR, RTL, LRE-RLO, LRI-PDI) as if
2762
2851
  // they were not there.
@@ -2771,10 +2860,10 @@ function Yt(e, t) {
2771
2860
  o[l].charCodeAt(o[l].length - 1) === 8203 || l < o.length - 1 && o[l + 1].charCodeAt(0) === 8203 ? (r.push(o[l]), c = void 0) : o[l] ? (typeof c == "number" && r.push(c), r.push(o[l]), c = 0) : (l === 0 || l === o.length - 1) && r.push(0);
2772
2861
  return r;
2773
2862
  }
2774
- function Ko(e) {
2863
+ function Jo(e) {
2775
2864
  return [String(e.value)];
2776
2865
  }
2777
- function Zo(e, t, n) {
2866
+ function Qo(e, t, n) {
2778
2867
  const o = [];
2779
2868
  let r = 0, a;
2780
2869
  for (; r < e.length; ) {
@@ -2784,7 +2873,7 @@ function Zo(e, t, n) {
2784
2873
  }
2785
2874
  return r !== a && !n && o.push(""), o.join(" ");
2786
2875
  }
2787
- function Xt(e, t) {
2876
+ function Kt(e, t) {
2788
2877
  if (e.type === "element") {
2789
2878
  const n = e.properties || {};
2790
2879
  switch (e.tagName) {
@@ -2805,131 +2894,131 @@ function Xt(e, t) {
2805
2894
  }
2806
2895
  return t.whitespace;
2807
2896
  }
2808
- function Jo(e) {
2897
+ function er(e) {
2809
2898
  return !!(e.properties || {}).hidden;
2810
2899
  }
2811
- function Qo(e) {
2900
+ function tr(e) {
2812
2901
  return e.tagName === "td" || e.tagName === "th";
2813
2902
  }
2814
- function er(e) {
2903
+ function nr(e) {
2815
2904
  return e.tagName === "dialog" && !(e.properties || {}).open;
2816
2905
  }
2817
- const Kt = [], tr = !0, st = !1, Zt = "skip";
2818
- function nr(e, t, n, o) {
2906
+ const Zt = [], or = !0, st = !1, Jt = "skip";
2907
+ function rr(e, t, n, o) {
2819
2908
  let r;
2820
2909
  r = t;
2821
2910
  const a = He(r), l = 1;
2822
2911
  c(e, void 0, [])();
2823
- function c(s, p, h) {
2824
- const f = (
2912
+ function c(s, p, g) {
2913
+ const m = (
2825
2914
  /** @type {Record<string, unknown>} */
2826
2915
  s && typeof s == "object" ? s : {}
2827
2916
  );
2828
- if (typeof f.type == "string") {
2829
- const m = (
2917
+ if (typeof m.type == "string") {
2918
+ const b = (
2830
2919
  // `hast`
2831
- typeof f.tagName == "string" ? f.tagName : (
2920
+ typeof m.tagName == "string" ? m.tagName : (
2832
2921
  // `xast`
2833
- typeof f.name == "string" ? f.name : void 0
2922
+ typeof m.name == "string" ? m.name : void 0
2834
2923
  )
2835
2924
  );
2836
- Object.defineProperty(b, "name", {
2837
- value: "node (" + (s.type + (m ? "<" + m + ">" : "")) + ")"
2925
+ Object.defineProperty(f, "name", {
2926
+ value: "node (" + (s.type + (b ? "<" + b + ">" : "")) + ")"
2838
2927
  });
2839
2928
  }
2840
- return b;
2841
- function b() {
2842
- let m = Kt, y, d, v;
2843
- if (a(s, p, h[h.length - 1] || void 0) && (m = or(n(s, h)), m[0] === st))
2844
- return m;
2929
+ return f;
2930
+ function f() {
2931
+ let b = Zt, k, u, w;
2932
+ if (a(s, p, g[g.length - 1] || void 0) && (b = ar(n(s, g)), b[0] === st))
2933
+ return b;
2845
2934
  if ("children" in s && s.children) {
2846
- const x = (
2935
+ const v = (
2847
2936
  /** @type {UnistParent} */
2848
2937
  s
2849
2938
  );
2850
- if (x.children && m[0] !== Zt)
2851
- for (d = -1 + l, v = h.concat(x); d > -1 && d < x.children.length; ) {
2852
- const g = x.children[d];
2853
- if (y = c(g, d, v)(), y[0] === st)
2854
- return y;
2855
- d = typeof y[1] == "number" ? y[1] : d + l;
2939
+ if (v.children && b[0] !== Jt)
2940
+ for (u = -1 + l, w = g.concat(v); u > -1 && u < v.children.length; ) {
2941
+ const h = v.children[u];
2942
+ if (k = c(h, u, w)(), k[0] === st)
2943
+ return k;
2944
+ u = typeof k[1] == "number" ? k[1] : u + l;
2856
2945
  }
2857
2946
  }
2858
- return m;
2947
+ return b;
2859
2948
  }
2860
2949
  }
2861
2950
  }
2862
- function or(e) {
2863
- return Array.isArray(e) ? e : typeof e == "number" ? [tr, e] : e == null ? Kt : [e];
2951
+ function ar(e) {
2952
+ return Array.isArray(e) ? e : typeof e == "number" ? [or, e] : e == null ? Zt : [e];
2864
2953
  }
2865
- const rr = {}, ar = [];
2866
- function ir(e) {
2867
- const t = e || rr;
2954
+ const ir = {}, lr = [];
2955
+ function sr(e) {
2956
+ const t = e || ir;
2868
2957
  return function(n, o) {
2869
- nr(n, "element", function(r, a) {
2870
- const l = Array.isArray(r.properties.className) ? r.properties.className : ar, c = l.includes("language-math"), s = l.includes("math-display"), p = l.includes("math-inline");
2871
- let h = s;
2958
+ rr(n, "element", function(r, a) {
2959
+ const l = Array.isArray(r.properties.className) ? r.properties.className : lr, c = l.includes("language-math"), s = l.includes("math-display"), p = l.includes("math-inline");
2960
+ let g = s;
2872
2961
  if (!c && !s && !p)
2873
2962
  return;
2874
- let f = a[a.length - 1], b = r;
2875
- if (r.tagName === "code" && c && f && f.type === "element" && f.tagName === "pre" && (b = f, f = a[a.length - 2], h = !0), !f) return;
2876
- const m = Yo(b, { whitespace: "pre" });
2877
- let y;
2963
+ let m = a[a.length - 1], f = r;
2964
+ if (r.tagName === "code" && c && m && m.type === "element" && m.tagName === "pre" && (f = m, m = a[a.length - 2], g = !0), !m) return;
2965
+ const b = Ko(f, { whitespace: "pre" });
2966
+ let k;
2878
2967
  try {
2879
- y = Ve.renderToString(m, {
2968
+ k = Ve.renderToString(b, {
2880
2969
  ...t,
2881
- displayMode: h,
2970
+ displayMode: g,
2882
2971
  throwOnError: !0
2883
2972
  });
2884
- } catch (v) {
2885
- const x = (
2973
+ } catch (w) {
2974
+ const v = (
2886
2975
  /** @type {Error} */
2887
- v
2888
- ), g = x.name.toLowerCase();
2976
+ w
2977
+ ), h = v.name.toLowerCase();
2889
2978
  o.message("Could not render math with KaTeX", {
2890
2979
  ancestors: [...a, r],
2891
- cause: x,
2980
+ cause: v,
2892
2981
  place: r.position,
2893
- ruleId: g,
2982
+ ruleId: h,
2894
2983
  source: "rehype-katex"
2895
2984
  });
2896
2985
  try {
2897
- y = Ve.renderToString(m, {
2986
+ k = Ve.renderToString(b, {
2898
2987
  ...t,
2899
- displayMode: h,
2988
+ displayMode: g,
2900
2989
  strict: "ignore",
2901
2990
  throwOnError: !1
2902
2991
  });
2903
2992
  } catch {
2904
- y = [
2993
+ k = [
2905
2994
  {
2906
2995
  type: "element",
2907
2996
  tagName: "span",
2908
2997
  properties: {
2909
2998
  className: ["katex-error"],
2910
2999
  style: "color:" + (t.errorColor || "#cc0000"),
2911
- title: String(v)
3000
+ title: String(w)
2912
3001
  },
2913
- children: [{ type: "text", value: m }]
3002
+ children: [{ type: "text", value: b }]
2914
3003
  }
2915
3004
  ];
2916
3005
  }
2917
3006
  }
2918
- typeof y == "string" && (y = /** @type {Array<ElementContent>} */
2919
- Do(y).children);
2920
- const d = f.children.indexOf(b);
2921
- return f.children.splice(d, 1, ...y), Zt;
3007
+ typeof k == "string" && (k = /** @type {Array<ElementContent>} */
3008
+ Mo(k).children);
3009
+ const u = m.children.indexOf(f);
3010
+ return m.children.splice(u, 1, ...k), Jt;
2922
3011
  });
2923
3012
  };
2924
3013
  }
2925
- function lr(e, t) {
3014
+ function cr(e, t) {
2926
3015
  const n = String(e);
2927
3016
  let o = n.indexOf(t), r = o, a = 0, l = 0;
2928
3017
  for (; o !== -1; )
2929
3018
  o === r ? ++a > l && (l = a) : a = 1, r = o + t.length, o = n.indexOf(t, r);
2930
3019
  return l;
2931
3020
  }
2932
- function sr() {
3021
+ function ur() {
2933
3022
  return {
2934
3023
  enter: {
2935
3024
  mathFlow: e,
@@ -2973,13 +3062,13 @@ function sr() {
2973
3062
  this.data.mathFlowInside || (this.buffer(), this.data.mathFlowInside = !0);
2974
3063
  }
2975
3064
  function r(s) {
2976
- const p = this.resume().replace(/^(\r?\n|\r)|(\r?\n|\r)$/g, ""), h = this.stack[this.stack.length - 1];
2977
- h.type, this.exit(s), h.value = p;
2978
- const f = (
3065
+ const p = this.resume().replace(/^(\r?\n|\r)|(\r?\n|\r)$/g, ""), g = this.stack[this.stack.length - 1];
3066
+ g.type, this.exit(s), g.value = p;
3067
+ const m = (
2979
3068
  /** @type {HastElement} */
2980
- h.data.hChildren[0]
3069
+ g.data.hChildren[0]
2981
3070
  );
2982
- f.type, f.tagName, f.children.push({ type: "text", value: p }), this.data.mathFlowInside = void 0;
3071
+ m.type, m.tagName, m.children.push({ type: "text", value: p }), this.data.mathFlowInside = void 0;
2983
3072
  }
2984
3073
  function a(s) {
2985
3074
  this.enter(
@@ -2996,16 +3085,16 @@ function sr() {
2996
3085
  ), this.buffer();
2997
3086
  }
2998
3087
  function l(s) {
2999
- const p = this.resume(), h = this.stack[this.stack.length - 1];
3000
- h.type, this.exit(s), h.value = p, /** @type {Array<HastElementContent>} */
3088
+ const p = this.resume(), g = this.stack[this.stack.length - 1];
3089
+ g.type, this.exit(s), g.value = p, /** @type {Array<HastElementContent>} */
3001
3090
  // @ts-expect-error: we defined it in `enterMathFlow`.
3002
- h.data.hChildren.push({ type: "text", value: p });
3091
+ g.data.hChildren.push({ type: "text", value: p });
3003
3092
  }
3004
3093
  function c(s) {
3005
3094
  this.config.enter.data.call(this, s), this.config.exit.data.call(this, s);
3006
3095
  }
3007
3096
  }
3008
- function cr(e) {
3097
+ function dr(e) {
3009
3098
  let t = (e || {}).singleDollarTextMath;
3010
3099
  return t == null && (t = !0), o.peek = r, {
3011
3100
  unsafe: [
@@ -3023,45 +3112,45 @@ function cr(e) {
3023
3112
  handlers: { math: n, inlineMath: o }
3024
3113
  };
3025
3114
  function n(a, l, c, s) {
3026
- const p = a.value || "", h = c.createTracker(s), f = "$".repeat(Math.max(lr(p, "$") + 1, 2)), b = c.enter("mathFlow");
3027
- let m = h.move(f);
3115
+ const p = a.value || "", g = c.createTracker(s), m = "$".repeat(Math.max(cr(p, "$") + 1, 2)), f = c.enter("mathFlow");
3116
+ let b = g.move(m);
3028
3117
  if (a.meta) {
3029
- const y = c.enter("mathFlowMeta");
3030
- m += h.move(
3118
+ const k = c.enter("mathFlowMeta");
3119
+ b += g.move(
3031
3120
  c.safe(a.meta, {
3032
3121
  after: `
3033
3122
  `,
3034
- before: m,
3123
+ before: b,
3035
3124
  encode: ["$"],
3036
- ...h.current()
3125
+ ...g.current()
3037
3126
  })
3038
- ), y();
3127
+ ), k();
3039
3128
  }
3040
- return m += h.move(`
3041
- `), p && (m += h.move(p + `
3042
- `)), m += h.move(f), b(), m;
3129
+ return b += g.move(`
3130
+ `), p && (b += g.move(p + `
3131
+ `)), b += g.move(m), f(), b;
3043
3132
  }
3044
3133
  function o(a, l, c) {
3045
3134
  let s = a.value || "", p = 1;
3046
3135
  for (t || p++; new RegExp("(^|[^$])" + "\\$".repeat(p) + "([^$]|$)").test(s); )
3047
3136
  p++;
3048
- const h = "$".repeat(p);
3137
+ const g = "$".repeat(p);
3049
3138
  // Contains non-space.
3050
3139
  /[^ \r\n]/.test(s) && // Starts with space and ends with space.
3051
3140
  (/^[ \r\n]/.test(s) && /[ \r\n]$/.test(s) || // Starts or ends with dollar.
3052
3141
  /^\$|\$$/.test(s)) && (s = " " + s + " ");
3053
- let f = -1;
3054
- for (; ++f < c.unsafe.length; ) {
3055
- const b = c.unsafe[f];
3056
- if (!b.atBreak) continue;
3057
- const m = c.compilePattern(b);
3058
- let y;
3059
- for (; y = m.exec(s); ) {
3060
- let d = y.index;
3061
- s.codePointAt(d) === 10 && s.codePointAt(d - 1) === 13 && d--, s = s.slice(0, d) + " " + s.slice(y.index + 1);
3142
+ let m = -1;
3143
+ for (; ++m < c.unsafe.length; ) {
3144
+ const f = c.unsafe[m];
3145
+ if (!f.atBreak) continue;
3146
+ const b = c.compilePattern(f);
3147
+ let k;
3148
+ for (; k = b.exec(s); ) {
3149
+ let u = k.index;
3150
+ s.codePointAt(u) === 10 && s.codePointAt(u - 1) === 13 && u--, s = s.slice(0, u) + " " + s.slice(k.index + 1);
3062
3151
  }
3063
3152
  }
3064
- return h + s + h;
3153
+ return g + s + g;
3065
3154
  }
3066
3155
  function r() {
3067
3156
  return "$";
@@ -3084,68 +3173,68 @@ function ce(e, t, n, o) {
3084
3173
  return ct(s) && a++ < r ? (e.consume(s), c) : (e.exit(n), t(s));
3085
3174
  }
3086
3175
  }
3087
- const ur = {
3088
- tokenize: dr,
3176
+ const pr = {
3177
+ tokenize: hr,
3089
3178
  concrete: !0,
3090
3179
  name: "mathFlow"
3091
3180
  }, ut = {
3092
- tokenize: pr,
3181
+ tokenize: gr,
3093
3182
  partial: !0
3094
3183
  };
3095
- function dr(e, t, n) {
3184
+ function hr(e, t, n) {
3096
3185
  const o = this, r = o.events[o.events.length - 1], a = r && r[1].type === "linePrefix" ? r[2].sliceSerialize(r[1], !0).length : 0;
3097
3186
  let l = 0;
3098
3187
  return c;
3099
- function c(g) {
3100
- return e.enter("mathFlow"), e.enter("mathFlowFence"), e.enter("mathFlowFenceSequence"), s(g);
3188
+ function c(h) {
3189
+ return e.enter("mathFlow"), e.enter("mathFlowFence"), e.enter("mathFlowFenceSequence"), s(h);
3101
3190
  }
3102
- function s(g) {
3103
- return g === 36 ? (e.consume(g), l++, s) : l < 2 ? n(g) : (e.exit("mathFlowFenceSequence"), ce(e, p, "whitespace")(g));
3191
+ function s(h) {
3192
+ return h === 36 ? (e.consume(h), l++, s) : l < 2 ? n(h) : (e.exit("mathFlowFenceSequence"), ce(e, p, "whitespace")(h));
3104
3193
  }
3105
- function p(g) {
3106
- return g === null || j(g) ? f(g) : (e.enter("mathFlowFenceMeta"), e.enter("chunkString", {
3194
+ function p(h) {
3195
+ return h === null || j(h) ? m(h) : (e.enter("mathFlowFenceMeta"), e.enter("chunkString", {
3107
3196
  contentType: "string"
3108
- }), h(g));
3197
+ }), g(h));
3109
3198
  }
3110
- function h(g) {
3111
- return g === null || j(g) ? (e.exit("chunkString"), e.exit("mathFlowFenceMeta"), f(g)) : g === 36 ? n(g) : (e.consume(g), h);
3199
+ function g(h) {
3200
+ return h === null || j(h) ? (e.exit("chunkString"), e.exit("mathFlowFenceMeta"), m(h)) : h === 36 ? n(h) : (e.consume(h), g);
3112
3201
  }
3113
- function f(g) {
3114
- return e.exit("mathFlowFence"), o.interrupt ? t(g) : e.attempt(ut, b, v)(g);
3202
+ function m(h) {
3203
+ return e.exit("mathFlowFence"), o.interrupt ? t(h) : e.attempt(ut, f, w)(h);
3115
3204
  }
3116
- function b(g) {
3205
+ function f(h) {
3117
3206
  return e.attempt({
3118
- tokenize: x,
3207
+ tokenize: v,
3119
3208
  partial: !0
3120
- }, v, m)(g);
3209
+ }, w, b)(h);
3121
3210
  }
3122
- function m(g) {
3123
- return (a ? ce(e, y, "linePrefix", a + 1) : y)(g);
3211
+ function b(h) {
3212
+ return (a ? ce(e, k, "linePrefix", a + 1) : k)(h);
3124
3213
  }
3125
- function y(g) {
3126
- return g === null ? v(g) : j(g) ? e.attempt(ut, b, v)(g) : (e.enter("mathFlowValue"), d(g));
3214
+ function k(h) {
3215
+ return h === null ? w(h) : j(h) ? e.attempt(ut, f, w)(h) : (e.enter("mathFlowValue"), u(h));
3127
3216
  }
3128
- function d(g) {
3129
- return g === null || j(g) ? (e.exit("mathFlowValue"), y(g)) : (e.consume(g), d);
3217
+ function u(h) {
3218
+ return h === null || j(h) ? (e.exit("mathFlowValue"), k(h)) : (e.consume(h), u);
3130
3219
  }
3131
- function v(g) {
3132
- return e.exit("mathFlow"), t(g);
3220
+ function w(h) {
3221
+ return e.exit("mathFlow"), t(h);
3133
3222
  }
3134
- function x(g, R, E) {
3135
- let I = 0;
3136
- return ce(g, U, "linePrefix", o.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4);
3137
- function U(O) {
3138
- return g.enter("mathFlowFence"), g.enter("mathFlowFenceSequence"), z(O);
3223
+ function v(h, C, E) {
3224
+ let R = 0;
3225
+ return ce(h, $, "linePrefix", o.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4);
3226
+ function $(O) {
3227
+ return h.enter("mathFlowFence"), h.enter("mathFlowFenceSequence"), z(O);
3139
3228
  }
3140
3229
  function z(O) {
3141
- return O === 36 ? (I++, g.consume(O), z) : I < l ? E(O) : (g.exit("mathFlowFenceSequence"), ce(g, ne, "whitespace")(O));
3230
+ return O === 36 ? (R++, h.consume(O), z) : R < l ? E(O) : (h.exit("mathFlowFenceSequence"), ce(h, ne, "whitespace")(O));
3142
3231
  }
3143
3232
  function ne(O) {
3144
- return O === null || j(O) ? (g.exit("mathFlowFence"), R(O)) : E(O);
3233
+ return O === null || j(O) ? (h.exit("mathFlowFence"), C(O)) : E(O);
3145
3234
  }
3146
3235
  }
3147
3236
  }
3148
- function pr(e, t, n) {
3237
+ function gr(e, t, n) {
3149
3238
  const o = this;
3150
3239
  return r;
3151
3240
  function r(l) {
@@ -3155,35 +3244,35 @@ function pr(e, t, n) {
3155
3244
  return o.parser.lazy[o.now().line] ? n(l) : t(l);
3156
3245
  }
3157
3246
  }
3158
- function hr(e) {
3247
+ function mr(e) {
3159
3248
  let n = (e || {}).singleDollarTextMath;
3160
3249
  return n == null && (n = !0), {
3161
3250
  tokenize: o,
3162
- resolve: gr,
3163
- previous: mr,
3251
+ resolve: fr,
3252
+ previous: br,
3164
3253
  name: "mathText"
3165
3254
  };
3166
3255
  function o(r, a, l) {
3167
3256
  let c = 0, s, p;
3168
- return h;
3169
- function h(d) {
3170
- return r.enter("mathText"), r.enter("mathTextSequence"), f(d);
3257
+ return g;
3258
+ function g(u) {
3259
+ return r.enter("mathText"), r.enter("mathTextSequence"), m(u);
3171
3260
  }
3172
- function f(d) {
3173
- return d === 36 ? (r.consume(d), c++, f) : c < 2 && !n ? l(d) : (r.exit("mathTextSequence"), b(d));
3261
+ function m(u) {
3262
+ return u === 36 ? (r.consume(u), c++, m) : c < 2 && !n ? l(u) : (r.exit("mathTextSequence"), f(u));
3174
3263
  }
3175
- function b(d) {
3176
- return d === null ? l(d) : d === 36 ? (p = r.enter("mathTextSequence"), s = 0, y(d)) : d === 32 ? (r.enter("space"), r.consume(d), r.exit("space"), b) : j(d) ? (r.enter("lineEnding"), r.consume(d), r.exit("lineEnding"), b) : (r.enter("mathTextData"), m(d));
3264
+ function f(u) {
3265
+ return u === null ? l(u) : u === 36 ? (p = r.enter("mathTextSequence"), s = 0, k(u)) : u === 32 ? (r.enter("space"), r.consume(u), r.exit("space"), f) : j(u) ? (r.enter("lineEnding"), r.consume(u), r.exit("lineEnding"), f) : (r.enter("mathTextData"), b(u));
3177
3266
  }
3178
- function m(d) {
3179
- return d === null || d === 32 || d === 36 || j(d) ? (r.exit("mathTextData"), b(d)) : (r.consume(d), m);
3267
+ function b(u) {
3268
+ return u === null || u === 32 || u === 36 || j(u) ? (r.exit("mathTextData"), f(u)) : (r.consume(u), b);
3180
3269
  }
3181
- function y(d) {
3182
- return d === 36 ? (r.consume(d), s++, y) : s === c ? (r.exit("mathTextSequence"), r.exit("mathText"), a(d)) : (p.type = "mathTextData", m(d));
3270
+ function k(u) {
3271
+ return u === 36 ? (r.consume(u), s++, k) : s === c ? (r.exit("mathTextSequence"), r.exit("mathText"), a(u)) : (p.type = "mathTextData", b(u));
3183
3272
  }
3184
3273
  }
3185
3274
  }
3186
- function gr(e) {
3275
+ function fr(e) {
3187
3276
  let t = e.length - 4, n = 3, o, r;
3188
3277
  if ((e[n][1].type === "lineEnding" || e[n][1].type === "space") && (e[t][1].type === "lineEnding" || e[t][1].type === "space")) {
3189
3278
  for (o = n; ++o < t; )
@@ -3196,40 +3285,40 @@ function gr(e) {
3196
3285
  r === void 0 ? o !== t && e[o][1].type !== "lineEnding" && (r = o) : (o === t || e[o][1].type === "lineEnding") && (e[r][1].type = "mathTextData", o !== r + 2 && (e[r][1].end = e[o - 1][1].end, e.splice(r + 2, o - r - 2), t -= o - r - 2, o = r + 2), r = void 0);
3197
3286
  return e;
3198
3287
  }
3199
- function mr(e) {
3288
+ function br(e) {
3200
3289
  return e !== 36 || this.events[this.events.length - 1][1].type === "characterEscape";
3201
3290
  }
3202
- function fr(e) {
3291
+ function yr(e) {
3203
3292
  return {
3204
3293
  flow: {
3205
- 36: ur
3294
+ 36: pr
3206
3295
  },
3207
3296
  text: {
3208
- 36: hr(e)
3297
+ 36: mr(e)
3209
3298
  }
3210
3299
  };
3211
3300
  }
3212
- const br = {};
3213
- function yr(e) {
3301
+ const kr = {};
3302
+ function vr(e) {
3214
3303
  const t = (
3215
3304
  /** @type {Processor} */
3216
3305
  this
3217
- ), n = e || br, o = t.data(), r = o.micromarkExtensions || (o.micromarkExtensions = []), a = o.fromMarkdownExtensions || (o.fromMarkdownExtensions = []), l = o.toMarkdownExtensions || (o.toMarkdownExtensions = []);
3218
- r.push(fr(n)), a.push(sr()), l.push(cr(n));
3306
+ ), n = e || kr, o = t.data(), r = o.micromarkExtensions || (o.micromarkExtensions = []), a = o.fromMarkdownExtensions || (o.fromMarkdownExtensions = []), l = o.toMarkdownExtensions || (o.toMarkdownExtensions = []);
3307
+ r.push(yr(n)), a.push(ur()), l.push(dr(n));
3219
3308
  }
3220
- function kr(e = {}) {
3309
+ function wr(e = {}) {
3221
3310
  var t, n;
3222
- let o = [yr, { singleDollarTextMath: (t = e.singleDollarTextMath) != null ? t : !1 }], r = [ir, { errorColor: (n = e.errorColor) != null ? n : "var(--color-muted-foreground)" }];
3311
+ let o = [vr, { singleDollarTextMath: (t = e.singleDollarTextMath) != null ? t : !1 }], r = [sr, { errorColor: (n = e.errorColor) != null ? n : "var(--color-muted-foreground)" }];
3223
3312
  return { name: "katex", type: "math", remarkPlugin: o, rehypePlugin: r, getStyles() {
3224
3313
  return "katex/dist/katex.min.css";
3225
3314
  } };
3226
3315
  }
3227
- var dt = kr();
3228
- const je = de(
3316
+ var dt = wr();
3317
+ const je = pe(
3229
3318
  ({ className: e, ...t }) => /* @__PURE__ */ i(
3230
- On,
3319
+ Rn,
3231
3320
  {
3232
- className: k("size-full [&>*:first-child]:mt-0 [&>*:last-child]:mb-0 code-bg ", e),
3321
+ className: y("size-full [&>*:first-child]:mt-0 [&>*:last-child]:mb-0 code-bg ", e),
3233
3322
  ...t,
3234
3323
  remarkPlugins: [dt.remarkPlugin, ...t.remarkPlugins || []],
3235
3324
  rehypePlugins: [dt.rehypePlugin, ...t.rehypePlugins || []]
@@ -3238,7 +3327,7 @@ const je = de(
3238
3327
  (e, t) => e.children === t.children
3239
3328
  );
3240
3329
  je.displayName = "Response";
3241
- function vr({
3330
+ function _r({
3242
3331
  part: e,
3243
3332
  message: t,
3244
3333
  status: n,
@@ -3249,39 +3338,40 @@ function vr({
3249
3338
  feedback: c,
3250
3339
  handleFeedback: s,
3251
3340
  copyHost: p,
3252
- feedbackEnabled: h,
3253
- retryEnabled: f
3341
+ feedbackEnabled: g,
3342
+ retryEnabled: m
3254
3343
  }) {
3255
- const { t: b } = M(["chat"]), { textComponents: m, remarkPlugins: y, rehypePlugins: d } = W(), v = ge(e.text), x = !o && r && (n === "streaming" || n === "submitted"), g = l || (() => {
3344
+ const { t: f } = M(["chat"]), { textComponents: b, remarkPlugins: k, rehypePlugins: u } = te(), w = ge(e.text), v = !o && r && (n === "streaming" || n === "submitted"), h = l || (() => {
3256
3345
  });
3257
- return /* @__PURE__ */ w("div", { className: "group py-2 first:pt-4 animate-in-bubble", children: [
3258
- /* @__PURE__ */ i(Lt, { from: t.role, children: /* @__PURE__ */ i(Dt, { dir: v, children: /* @__PURE__ */ i(
3346
+ return /* @__PURE__ */ _("div", { className: "group py-2 first:pt-4 animate-in-bubble", children: [
3347
+ /* @__PURE__ */ i(Dt, { from: t.role, children: /* @__PURE__ */ i(Pt, { dir: w, children: /* @__PURE__ */ i(
3259
3348
  je,
3260
3349
  {
3261
- components: m,
3262
- remarkPlugins: y,
3263
- rehypePlugins: d,
3350
+ className: y(t.role === "user" && "whitespace-pre-wrap break-words"),
3351
+ components: b,
3352
+ remarkPlugins: k,
3353
+ rehypePlugins: u,
3264
3354
  children: e.text
3265
3355
  }
3266
3356
  ) }) }),
3267
- a && !x && /* @__PURE__ */ w(co, { className: k("mt-1.5 ml-0.5", t.role === "user" && "justify-end"), children: [
3268
- t.role === "assistant" && /* @__PURE__ */ w(J, { children: [
3269
- r && f && /* @__PURE__ */ i(
3357
+ a && !v && /* @__PURE__ */ _(po, { className: y("mt-1.5 ml-0.5", t.role === "user" && "justify-end"), children: [
3358
+ t.role === "assistant" && /* @__PURE__ */ _(Z, { children: [
3359
+ r && m && /* @__PURE__ */ i(
3270
3360
  se,
3271
3361
  {
3272
- onClick: () => g(t.id),
3273
- label: b("retry"),
3274
- tooltip: b("retry"),
3362
+ onClick: () => h(t.id),
3363
+ label: f("retry"),
3364
+ tooltip: f("retry"),
3275
3365
  children: /* @__PURE__ */ i(yn, { className: "size-3" })
3276
3366
  }
3277
3367
  ),
3278
- h && /* @__PURE__ */ w(J, { children: [
3368
+ g && /* @__PURE__ */ _(Z, { children: [
3279
3369
  /* @__PURE__ */ i(
3280
3370
  se,
3281
3371
  {
3282
3372
  onClick: () => s("like"),
3283
- label: b("like"),
3284
- tooltip: b("like"),
3373
+ label: f("like"),
3374
+ tooltip: f("like"),
3285
3375
  className: c === "like" ? "text-primary" : "",
3286
3376
  children: /* @__PURE__ */ i(kn, { className: "size-3" })
3287
3377
  }
@@ -3290,8 +3380,8 @@ function vr({
3290
3380
  se,
3291
3381
  {
3292
3382
  onClick: () => s("dislike"),
3293
- label: b("dislike"),
3294
- tooltip: b("dislike"),
3383
+ label: f("dislike"),
3384
+ tooltip: f("dislike"),
3295
3385
  className: c === "dislike" ? "text-destructive" : "",
3296
3386
  children: /* @__PURE__ */ i(vn, { className: "size-3" })
3297
3387
  }
@@ -3304,20 +3394,20 @@ function vr({
3304
3394
  onClick: () => {
3305
3395
  p(e.text);
3306
3396
  },
3307
- label: b("copy"),
3308
- tooltip: b("copy"),
3309
- children: /* @__PURE__ */ i(Nt, { className: "size-3" })
3397
+ label: f("copy"),
3398
+ tooltip: f("copy"),
3399
+ children: /* @__PURE__ */ i(Tt, { className: "size-3" })
3310
3400
  }
3311
3401
  )
3312
3402
  ] })
3313
3403
  ] });
3314
3404
  }
3315
- const Jt = pe(null), wr = () => {
3316
- const e = Le(Jt);
3405
+ const Qt = de(null), xr = () => {
3406
+ const e = Fe(Qt);
3317
3407
  if (!e)
3318
3408
  throw new Error("Reasoning components must be used within Reasoning");
3319
3409
  return e;
3320
- }, xr = 1e3, _r = 1e3, Qt = de(
3410
+ }, Sr = 1e3, Er = 1e3, en = pe(
3321
3411
  ({
3322
3412
  className: e,
3323
3413
  isStreaming: t = !1,
@@ -3333,41 +3423,41 @@ const Jt = pe(null), wr = () => {
3333
3423
  prop: n,
3334
3424
  defaultProp: o,
3335
3425
  onChange: r
3336
- }), [h, f] = We({
3426
+ }), [g, m] = We({
3337
3427
  prop: a,
3338
3428
  defaultProp: 0
3339
- }), [b, m] = B(!1), [y, d] = B(null);
3340
- Q(() => {
3341
- t ? y === null && d(Date.now()) : y !== null && (f(Math.ceil((Date.now() - y) / _r)), d(null));
3342
- }, [t, y, f]), Q(() => {
3343
- if (o && !t && s && !b) {
3344
- const x = setTimeout(() => {
3345
- p(!1), m(!0);
3346
- }, xr);
3429
+ }), [f, b] = B(!1), [k, u] = B(null);
3430
+ J(() => {
3431
+ t ? k === null && u(Date.now()) : k !== null && (m(Math.ceil((Date.now() - k) / Er)), u(null));
3432
+ }, [t, k, m]), J(() => {
3433
+ if (o && !t && s && !f) {
3434
+ const v = setTimeout(() => {
3435
+ p(!1), b(!0);
3436
+ }, Sr);
3347
3437
  return () => {
3348
- clearTimeout(x);
3438
+ clearTimeout(v);
3349
3439
  };
3350
3440
  }
3351
- }, [t, s, o, p, b]);
3352
- const v = (x) => {
3353
- p(x);
3441
+ }, [t, s, o, p, f]);
3442
+ const w = (v) => {
3443
+ p(v);
3354
3444
  };
3355
- return /* @__PURE__ */ i(Jt.Provider, { value: { isStreaming: t, isOpen: s, setIsOpen: p, duration: h }, children: /* @__PURE__ */ i(
3445
+ return /* @__PURE__ */ i(Qt.Provider, { value: { isStreaming: t, isOpen: s, setIsOpen: p, duration: g }, children: /* @__PURE__ */ i(
3356
3446
  ze,
3357
3447
  {
3358
- className: k("not-prose mb-4", e),
3359
- onOpenChange: v,
3448
+ className: y("not-prose mb-4", e),
3449
+ onOpenChange: w,
3360
3450
  open: s,
3361
3451
  ...c,
3362
3452
  children: l
3363
3453
  }
3364
3454
  ) });
3365
3455
  }
3366
- ), en = de(({ className: e, children: t, ...n }) => {
3367
- const { isStreaming: o, isOpen: r, duration: a } = wr();
3368
- return /* @__PURE__ */ i($e, { className: k("flex items-center gap-2 text-muted-foreground text-sm", e), ...n, children: t ?? /* @__PURE__ */ w(J, { children: [
3456
+ ), tn = pe(({ className: e, children: t, ...n }) => {
3457
+ const { isStreaming: o, isOpen: r, duration: a } = xr();
3458
+ return /* @__PURE__ */ i(Ue, { className: y("flex items-center gap-2 text-muted-foreground text-sm", e), ...n, children: t ?? /* @__PURE__ */ _(Z, { children: [
3369
3459
  /* @__PURE__ */ i(wn, { className: "size-4" }),
3370
- o || a === 0 ? /* @__PURE__ */ i("p", { children: "Thinking..." }) : /* @__PURE__ */ w("p", { children: [
3460
+ o || a === 0 ? /* @__PURE__ */ i("p", { children: "Thinking..." }) : /* @__PURE__ */ _("p", { children: [
3371
3461
  "Thought for ",
3372
3462
  a,
3373
3463
  " ",
@@ -3376,14 +3466,14 @@ const Jt = pe(null), wr = () => {
3376
3466
  /* @__PURE__ */ i(
3377
3467
  ie,
3378
3468
  {
3379
- className: k("size-4 text-muted-foreground transition-transform", r ? "rotate-180" : "rotate-0")
3469
+ className: y("size-4 text-muted-foreground transition-transform", r ? "rotate-180" : "rotate-0")
3380
3470
  }
3381
3471
  )
3382
3472
  ] }) });
3383
- }), tn = de(({ className: e, children: t, ...n }) => /* @__PURE__ */ i(
3384
- Ue,
3473
+ }), nn = pe(({ className: e, children: t, ...n }) => /* @__PURE__ */ i(
3474
+ $e,
3385
3475
  {
3386
- className: k(
3476
+ className: y(
3387
3477
  "mt-4 text-base",
3388
3478
  "data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-popover-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in",
3389
3479
  e
@@ -3392,10 +3482,10 @@ const Jt = pe(null), wr = () => {
3392
3482
  children: /* @__PURE__ */ i(je, { className: "grid gap-2", children: t })
3393
3483
  }
3394
3484
  ));
3395
- Qt.displayName = "Reasoning";
3396
- en.displayName = "ReasoningTrigger";
3397
- tn.displayName = "ReasoningContent";
3398
- function Sr({
3485
+ en.displayName = "Reasoning";
3486
+ tn.displayName = "ReasoningTrigger";
3487
+ nn.displayName = "ReasoningContent";
3488
+ function Nr({
3399
3489
  part: e,
3400
3490
  status: t,
3401
3491
  index: n,
@@ -3403,19 +3493,19 @@ function Sr({
3403
3493
  lastMessage: r
3404
3494
  }) {
3405
3495
  const a = ge(e.text);
3406
- return /* @__PURE__ */ w(
3407
- Qt,
3496
+ return /* @__PURE__ */ _(
3497
+ en,
3408
3498
  {
3409
3499
  className: "w-full animate-in-bubble",
3410
3500
  isStreaming: t === "streaming" && n === o - 1 && r,
3411
3501
  children: [
3412
- /* @__PURE__ */ i(en, {}),
3413
- /* @__PURE__ */ i(tn, { dir: a, children: e.text })
3502
+ /* @__PURE__ */ i(tn, {}),
3503
+ /* @__PURE__ */ i(nn, { dir: a, children: e.text })
3414
3504
  ]
3415
3505
  }
3416
3506
  );
3417
3507
  }
3418
- const Er = Pe(
3508
+ const Tr = De(
3419
3509
  "inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
3420
3510
  {
3421
3511
  variants: {
@@ -3431,32 +3521,32 @@ const Er = Pe(
3431
3521
  }
3432
3522
  }
3433
3523
  );
3434
- function Nr({
3524
+ function Cr({
3435
3525
  className: e,
3436
3526
  variant: t,
3437
3527
  asChild: n = !1,
3438
3528
  ...o
3439
3529
  }) {
3440
- return /* @__PURE__ */ i(n ? Ct : "span", { "data-slot": "badge", className: k(Er({ variant: t }), e), ...o });
3530
+ return /* @__PURE__ */ i(n ? Et : "span", { "data-slot": "badge", className: y(Tr({ variant: t }), e), ...o });
3441
3531
  }
3442
- function Tr({ ...e }) {
3532
+ function Ar({ ...e }) {
3443
3533
  return /* @__PURE__ */ i(H.Root, { "data-slot": "dialog", ...e });
3444
3534
  }
3445
- function Cr({ ...e }) {
3535
+ function Ir({ ...e }) {
3446
3536
  return /* @__PURE__ */ i(H.Trigger, { "data-slot": "dialog-trigger", ...e });
3447
3537
  }
3448
- function Ar({ ...e }) {
3538
+ function Rr({ ...e }) {
3449
3539
  return /* @__PURE__ */ i(H.Portal, { "data-slot": "dialog-portal", ...e });
3450
3540
  }
3451
- function vi({ ...e }) {
3541
+ function xi({ ...e }) {
3452
3542
  return /* @__PURE__ */ i(H.Close, { "data-slot": "dialog-close", ...e });
3453
3543
  }
3454
- function Ir({ className: e, ...t }) {
3544
+ function Or({ className: e, ...t }) {
3455
3545
  return /* @__PURE__ */ i(
3456
3546
  H.Overlay,
3457
3547
  {
3458
3548
  "data-slot": "dialog-overlay",
3459
- className: k(
3549
+ className: y(
3460
3550
  "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
3461
3551
  e
3462
3552
  ),
@@ -3464,26 +3554,26 @@ function Ir({ className: e, ...t }) {
3464
3554
  }
3465
3555
  );
3466
3556
  }
3467
- function Rr({
3557
+ function Lr({
3468
3558
  className: e,
3469
3559
  children: t,
3470
3560
  showCloseButton: n = !0,
3471
3561
  ...o
3472
3562
  }) {
3473
- return /* @__PURE__ */ w(Ar, { "data-slot": "dialog-portal", children: [
3474
- /* @__PURE__ */ i(Ir, {}),
3475
- /* @__PURE__ */ w(
3563
+ return /* @__PURE__ */ _(Rr, { "data-slot": "dialog-portal", children: [
3564
+ /* @__PURE__ */ i(Or, {}),
3565
+ /* @__PURE__ */ _(
3476
3566
  H.Content,
3477
3567
  {
3478
3568
  "data-slot": "dialog-content",
3479
- className: k(
3569
+ className: y(
3480
3570
  "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",
3481
3571
  e
3482
3572
  ),
3483
3573
  ...o,
3484
3574
  children: [
3485
3575
  t,
3486
- n && /* @__PURE__ */ w(
3576
+ n && /* @__PURE__ */ _(
3487
3577
  H.Close,
3488
3578
  {
3489
3579
  "data-slot": "dialog-close",
@@ -3499,47 +3589,47 @@ function Rr({
3499
3589
  )
3500
3590
  ] });
3501
3591
  }
3502
- function Or({ className: e, ...t }) {
3592
+ function Fr({ className: e, ...t }) {
3503
3593
  return /* @__PURE__ */ i(
3504
3594
  "div",
3505
3595
  {
3506
3596
  "data-slot": "dialog-header",
3507
- className: k("flex flex-col gap-2 text-center sm:text-start", e),
3597
+ className: y("flex flex-col gap-2 text-center sm:text-start", e),
3508
3598
  ...t
3509
3599
  }
3510
3600
  );
3511
3601
  }
3512
- function wi({ className: e, ...t }) {
3602
+ function Si({ className: e, ...t }) {
3513
3603
  return /* @__PURE__ */ i(
3514
3604
  "div",
3515
3605
  {
3516
3606
  "data-slot": "dialog-footer",
3517
- className: k("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", e),
3607
+ className: y("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", e),
3518
3608
  ...t
3519
3609
  }
3520
3610
  );
3521
3611
  }
3522
- function Fr({ className: e, ...t }) {
3612
+ function Dr({ className: e, ...t }) {
3523
3613
  return /* @__PURE__ */ i(
3524
3614
  H.Title,
3525
3615
  {
3526
3616
  "data-slot": "dialog-title",
3527
- className: k("text-xl leading-none font-semibold", e),
3617
+ className: y("text-xl leading-none font-semibold", e),
3528
3618
  ...t
3529
3619
  }
3530
3620
  );
3531
3621
  }
3532
- function xi({ className: e, ...t }) {
3622
+ function Ei({ className: e, ...t }) {
3533
3623
  return /* @__PURE__ */ i(
3534
3624
  H.Description,
3535
3625
  {
3536
3626
  "data-slot": "dialog-description",
3537
- className: k("text-muted-foreground text-base", e),
3627
+ className: y("text-muted-foreground text-base", e),
3538
3628
  ...t
3539
3629
  }
3540
3630
  );
3541
3631
  }
3542
- const Lr = {
3632
+ const Pr = {
3543
3633
  'code[class*="language-"]': {
3544
3634
  background: "hsl(220, 13%, 18%)",
3545
3635
  color: "hsl(220, 14%, 71%)",
@@ -4039,7 +4129,7 @@ const Lr = {
4039
4129
  ".prism-previewer-easing.prism-previewer-easing line": {
4040
4130
  stroke: "hsl(220, 14%, 71%)"
4041
4131
  }
4042
- }, Dr = {
4132
+ }, Mr = {
4043
4133
  'code[class*="language-"]': {
4044
4134
  background: "hsl(230, 1%, 98%)",
4045
4135
  color: "hsl(230, 8%, 24%)",
@@ -4532,7 +4622,7 @@ function q(e) {
4532
4622
  return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
4533
4623
  }
4534
4624
  var ve, pt;
4535
- function Pr() {
4625
+ function zr() {
4536
4626
  if (pt) return ve;
4537
4627
  pt = 1, ve = e, e.displayName = "python", e.aliases = ["py"];
4538
4628
  function e(t) {
@@ -4600,10 +4690,10 @@ function Pr() {
4600
4690
  }
4601
4691
  return ve;
4602
4692
  }
4603
- var Mr = Pr();
4604
- const zr = /* @__PURE__ */ q(Mr);
4693
+ var Ur = zr();
4694
+ const $r = /* @__PURE__ */ q(Ur);
4605
4695
  var we, ht;
4606
- function $r() {
4696
+ function Br() {
4607
4697
  if (ht) return we;
4608
4698
  ht = 1, we = e, e.displayName = "javascript", e.aliases = ["js"];
4609
4699
  function e(t) {
@@ -4732,12 +4822,12 @@ function $r() {
4732
4822
  }
4733
4823
  return we;
4734
4824
  }
4735
- var Ur = $r();
4736
- const Br = /* @__PURE__ */ q(Ur);
4737
- var xe, gt;
4738
- function Hr() {
4739
- if (gt) return xe;
4740
- gt = 1, xe = e, e.displayName = "typescript", e.aliases = ["ts"];
4825
+ var Hr = Br();
4826
+ const qr = /* @__PURE__ */ q(Hr);
4827
+ var _e, gt;
4828
+ function jr() {
4829
+ if (gt) return _e;
4830
+ gt = 1, _e = e, e.displayName = "typescript", e.aliases = ["ts"];
4741
4831
  function e(t) {
4742
4832
  (function(n) {
4743
4833
  n.languages.typescript = n.languages.extend("javascript", {
@@ -4785,14 +4875,14 @@ function Hr() {
4785
4875
  }), n.languages.ts = n.languages.typescript;
4786
4876
  })(t);
4787
4877
  }
4788
- return xe;
4878
+ return _e;
4789
4879
  }
4790
- var qr = Hr();
4791
- const jr = /* @__PURE__ */ q(qr);
4792
- var _e, mt;
4793
- function Gr() {
4794
- if (mt) return _e;
4795
- mt = 1, _e = e, e.displayName = "json", e.aliases = ["webmanifest"];
4880
+ var Gr = jr();
4881
+ const Vr = /* @__PURE__ */ q(Gr);
4882
+ var xe, mt;
4883
+ function Wr() {
4884
+ if (mt) return xe;
4885
+ mt = 1, xe = e, e.displayName = "json", e.aliases = ["webmanifest"];
4796
4886
  function e(t) {
4797
4887
  t.languages.json = {
4798
4888
  property: {
@@ -4819,12 +4909,12 @@ function Gr() {
4819
4909
  }
4820
4910
  }, t.languages.webmanifest = t.languages.json;
4821
4911
  }
4822
- return _e;
4912
+ return xe;
4823
4913
  }
4824
- var Vr = Gr();
4825
- const Wr = /* @__PURE__ */ q(Vr);
4914
+ var Yr = Wr();
4915
+ const Xr = /* @__PURE__ */ q(Yr);
4826
4916
  var Se, ft;
4827
- function Yr() {
4917
+ function Kr() {
4828
4918
  if (ft) return Se;
4829
4919
  ft = 1, Se = e, e.displayName = "bash", e.aliases = ["shell"];
4830
4920
  function e(t) {
@@ -5043,10 +5133,10 @@ function Yr() {
5043
5133
  }
5044
5134
  return Se;
5045
5135
  }
5046
- var Xr = Yr();
5047
- const Kr = /* @__PURE__ */ q(Xr);
5136
+ var Zr = Kr();
5137
+ const Jr = /* @__PURE__ */ q(Zr);
5048
5138
  var Ee, bt;
5049
- function Zr() {
5139
+ function Qr() {
5050
5140
  if (bt) return Ee;
5051
5141
  bt = 1, Ee = e, e.displayName = "sql", e.aliases = [];
5052
5142
  function e(t) {
@@ -5086,10 +5176,10 @@ function Zr() {
5086
5176
  }
5087
5177
  return Ee;
5088
5178
  }
5089
- var Jr = Zr();
5090
- const Qr = /* @__PURE__ */ q(Jr);
5179
+ var ea = Qr();
5180
+ const ta = /* @__PURE__ */ q(ea);
5091
5181
  var Ne, yt;
5092
- function ea() {
5182
+ function na() {
5093
5183
  if (yt) return Ne;
5094
5184
  yt = 1, Ne = e, e.displayName = "yaml", e.aliases = ["yml"];
5095
5185
  function e(t) {
@@ -5100,14 +5190,14 @@ function ea() {
5100
5190
  return /[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source;
5101
5191
  }
5102
5192
  ), c = /"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;
5103
- function s(p, h) {
5104
- h = (h || "").replace(/m/g, "") + "m";
5105
- var f = /([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g, function() {
5193
+ function s(p, g) {
5194
+ g = (g || "").replace(/m/g, "") + "m";
5195
+ var m = /([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g, function() {
5106
5196
  return a;
5107
5197
  }).replace(/<<value>>/g, function() {
5108
5198
  return p;
5109
5199
  });
5110
- return RegExp(f, h);
5200
+ return RegExp(m, g);
5111
5201
  }
5112
5202
  n.languages.yaml = {
5113
5203
  scalar: {
@@ -5177,19 +5267,19 @@ function ea() {
5177
5267
  }
5178
5268
  return Ne;
5179
5269
  }
5180
- var ta = ea();
5181
- const na = /* @__PURE__ */ q(ta);
5270
+ var oa = na();
5271
+ const ra = /* @__PURE__ */ q(oa);
5182
5272
  var Te, kt;
5183
- function oa() {
5273
+ function aa() {
5184
5274
  if (kt) return Te;
5185
5275
  kt = 1, Te = e, e.displayName = "markdown", e.aliases = ["md"];
5186
5276
  function e(t) {
5187
5277
  (function(n) {
5188
5278
  var o = /(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;
5189
- function r(b) {
5190
- return b = b.replace(/<inner>/g, function() {
5279
+ function r(f) {
5280
+ return f = f.replace(/<inner>/g, function() {
5191
5281
  return o;
5192
- }), RegExp(/((?:^|[^\\])(?:\\{2})*)/.source + "(?:" + b + ")");
5282
+ }), RegExp(/((?:^|[^\\])(?:\\{2})*)/.source + "(?:" + f + ")");
5193
5283
  }
5194
5284
  var a = /(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source, l = /\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(
5195
5285
  /__/g,
@@ -5432,55 +5522,55 @@ function oa() {
5432
5522
  }
5433
5523
  }
5434
5524
  }
5435
- }), ["url", "bold", "italic", "strike"].forEach(function(b) {
5436
- ["url", "bold", "italic", "strike", "code-snippet"].forEach(function(m) {
5437
- b !== m && (n.languages.markdown[b].inside.content.inside[m] = n.languages.markdown[m]);
5525
+ }), ["url", "bold", "italic", "strike"].forEach(function(f) {
5526
+ ["url", "bold", "italic", "strike", "code-snippet"].forEach(function(b) {
5527
+ f !== b && (n.languages.markdown[f].inside.content.inside[b] = n.languages.markdown[b]);
5438
5528
  });
5439
- }), n.hooks.add("after-tokenize", function(b) {
5440
- if (b.language !== "markdown" && b.language !== "md")
5529
+ }), n.hooks.add("after-tokenize", function(f) {
5530
+ if (f.language !== "markdown" && f.language !== "md")
5441
5531
  return;
5442
- function m(y) {
5443
- if (!(!y || typeof y == "string"))
5444
- for (var d = 0, v = y.length; d < v; d++) {
5445
- var x = y[d];
5446
- if (x.type !== "code") {
5447
- m(x.content);
5532
+ function b(k) {
5533
+ if (!(!k || typeof k == "string"))
5534
+ for (var u = 0, w = k.length; u < w; u++) {
5535
+ var v = k[u];
5536
+ if (v.type !== "code") {
5537
+ b(v.content);
5448
5538
  continue;
5449
5539
  }
5450
- var g = x.content[1], R = x.content[3];
5451
- if (g && R && g.type === "code-language" && R.type === "code-block" && typeof g.content == "string") {
5452
- var E = g.content.replace(/\b#/g, "sharp").replace(/\b\+\+/g, "pp");
5540
+ var h = v.content[1], C = v.content[3];
5541
+ if (h && C && h.type === "code-language" && C.type === "code-block" && typeof h.content == "string") {
5542
+ var E = h.content.replace(/\b#/g, "sharp").replace(/\b\+\+/g, "pp");
5453
5543
  E = (/[a-z][\w-]*/i.exec(E) || [""])[0].toLowerCase();
5454
- var I = "language-" + E;
5455
- R.alias ? typeof R.alias == "string" ? R.alias = [R.alias, I] : R.alias.push(I) : R.alias = [I];
5544
+ var R = "language-" + E;
5545
+ C.alias ? typeof C.alias == "string" ? C.alias = [C.alias, R] : C.alias.push(R) : C.alias = [R];
5456
5546
  }
5457
5547
  }
5458
5548
  }
5459
- m(b.tokens);
5460
- }), n.hooks.add("wrap", function(b) {
5461
- if (b.type === "code-block") {
5462
- for (var m = "", y = 0, d = b.classes.length; y < d; y++) {
5463
- var v = b.classes[y], x = /language-(.+)/.exec(v);
5464
- if (x) {
5465
- m = x[1];
5549
+ b(f.tokens);
5550
+ }), n.hooks.add("wrap", function(f) {
5551
+ if (f.type === "code-block") {
5552
+ for (var b = "", k = 0, u = f.classes.length; k < u; k++) {
5553
+ var w = f.classes[k], v = /language-(.+)/.exec(w);
5554
+ if (v) {
5555
+ b = v[1];
5466
5556
  break;
5467
5557
  }
5468
5558
  }
5469
- var g = n.languages[m];
5470
- if (g)
5471
- b.content = n.highlight(
5472
- f(b.content.value),
5473
- g,
5474
- m
5559
+ var h = n.languages[b];
5560
+ if (h)
5561
+ f.content = n.highlight(
5562
+ m(f.content.value),
5563
+ h,
5564
+ b
5475
5565
  );
5476
- else if (m && m !== "none" && n.plugins.autoloader) {
5477
- var R = "md-" + (/* @__PURE__ */ new Date()).valueOf() + "-" + Math.floor(Math.random() * 1e16);
5478
- b.attributes.id = R, n.plugins.autoloader.loadLanguages(m, function() {
5479
- var E = document.getElementById(R);
5566
+ else if (b && b !== "none" && n.plugins.autoloader) {
5567
+ var C = "md-" + (/* @__PURE__ */ new Date()).valueOf() + "-" + Math.floor(Math.random() * 1e16);
5568
+ f.attributes.id = C, n.plugins.autoloader.loadLanguages(b, function() {
5569
+ var E = document.getElementById(C);
5480
5570
  E && (E.innerHTML = n.highlight(
5481
5571
  E.textContent,
5482
- n.languages[m],
5483
- m
5572
+ n.languages[b],
5573
+ b
5484
5574
  ));
5485
5575
  });
5486
5576
  }
@@ -5491,52 +5581,52 @@ function oa() {
5491
5581
  lt: "<",
5492
5582
  gt: ">",
5493
5583
  quot: '"'
5494
- }, h = String.fromCodePoint || String.fromCharCode;
5495
- function f(b) {
5496
- var m = b.replace(s, "");
5497
- return m = m.replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi, function(y, d) {
5498
- if (d = d.toLowerCase(), d[0] === "#") {
5499
- var v;
5500
- return d[1] === "x" ? v = parseInt(d.slice(2), 16) : v = Number(d.slice(1)), h(v);
5584
+ }, g = String.fromCodePoint || String.fromCharCode;
5585
+ function m(f) {
5586
+ var b = f.replace(s, "");
5587
+ return b = b.replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi, function(k, u) {
5588
+ if (u = u.toLowerCase(), u[0] === "#") {
5589
+ var w;
5590
+ return u[1] === "x" ? w = parseInt(u.slice(2), 16) : w = Number(u.slice(1)), g(w);
5501
5591
  } else {
5502
- var x = p[d];
5503
- return x || y;
5592
+ var v = p[u];
5593
+ return v || k;
5504
5594
  }
5505
- }), m;
5595
+ }), b;
5506
5596
  }
5507
5597
  n.languages.md = n.languages.markdown;
5508
5598
  })(t);
5509
5599
  }
5510
5600
  return Te;
5511
5601
  }
5512
- var ra = oa();
5513
- const aa = /* @__PURE__ */ q(ra);
5514
- $.registerLanguage("python", zr);
5515
- $.registerLanguage("javascript", Br);
5516
- $.registerLanguage("typescript", jr);
5517
- $.registerLanguage("json", Wr);
5518
- $.registerLanguage("bash", Kr);
5519
- $.registerLanguage("sql", Qr);
5520
- $.registerLanguage("yaml", na);
5521
- $.registerLanguage("markdown", aa);
5522
- const ia = pe({
5602
+ var ia = aa();
5603
+ const la = /* @__PURE__ */ q(ia);
5604
+ U.registerLanguage("python", $r);
5605
+ U.registerLanguage("javascript", qr);
5606
+ U.registerLanguage("typescript", Vr);
5607
+ U.registerLanguage("json", Xr);
5608
+ U.registerLanguage("bash", Jr);
5609
+ U.registerLanguage("sql", ta);
5610
+ U.registerLanguage("yaml", ra);
5611
+ U.registerLanguage("markdown", la);
5612
+ const sa = de({
5523
5613
  code: ""
5524
- }), Fe = ({
5614
+ }), Le = ({
5525
5615
  code: e,
5526
5616
  language: t,
5527
5617
  showLineNumbers: n = !1,
5528
5618
  className: o,
5529
5619
  children: r,
5530
5620
  ...a
5531
- }) => /* @__PURE__ */ i(ia.Provider, { value: { code: e }, children: /* @__PURE__ */ i(
5621
+ }) => /* @__PURE__ */ i(sa.Provider, { value: { code: e }, children: /* @__PURE__ */ i(
5532
5622
  "div",
5533
5623
  {
5534
- className: k("relative w-full overflow-hidden rounded-md border bg-background text-foreground", o),
5624
+ className: y("relative w-full overflow-hidden rounded-md border bg-background text-foreground", o),
5535
5625
  dir: "ltr",
5536
5626
  ...a,
5537
- children: /* @__PURE__ */ w("div", { className: "relative", children: [
5627
+ children: /* @__PURE__ */ _("div", { className: "relative", children: [
5538
5628
  /* @__PURE__ */ i(
5539
- $,
5629
+ U,
5540
5630
  {
5541
5631
  className: "overflow-hidden dark:hidden",
5542
5632
  codeTagProps: {
@@ -5556,12 +5646,12 @@ const ia = pe({
5556
5646
  minWidth: "2.5rem"
5557
5647
  },
5558
5648
  showLineNumbers: n,
5559
- style: Dr,
5649
+ style: Mr,
5560
5650
  children: e
5561
5651
  }
5562
5652
  ),
5563
5653
  /* @__PURE__ */ i(
5564
- $,
5654
+ U,
5565
5655
  {
5566
5656
  className: "hidden overflow-hidden dark:block",
5567
5657
  codeTagProps: {
@@ -5581,7 +5671,7 @@ const ia = pe({
5581
5671
  minWidth: "2.5rem"
5582
5672
  },
5583
5673
  showLineNumbers: n,
5584
- style: Lr,
5674
+ style: Pr,
5585
5675
  children: e
5586
5676
  }
5587
5677
  ),
@@ -5589,50 +5679,50 @@ const ia = pe({
5589
5679
  ] })
5590
5680
  }
5591
5681
  ) });
5592
- function la(e, t = "size-4") {
5682
+ function ca(e, t = "size-4") {
5593
5683
  return {
5594
5684
  web_search: /* @__PURE__ */ i(En, { className: t }),
5595
5685
  web_fetch: /* @__PURE__ */ i(ue, { className: t }),
5596
5686
  code_execution: /* @__PURE__ */ i(Sn, { className: t }),
5597
- image_generation: /* @__PURE__ */ i(_n, { className: t })
5598
- }[e] ?? /* @__PURE__ */ i(xn, { className: t });
5687
+ image_generation: /* @__PURE__ */ i(xn, { className: t })
5688
+ }[e] ?? /* @__PURE__ */ i(_n, { className: t });
5599
5689
  }
5600
- const sa = ({ className: e, ...t }) => /* @__PURE__ */ i(ze, { className: k("not-prose mb-4 w-full rounded-md border", e), ...t }), ca = ({ status: e }) => {
5690
+ const ua = ({ className: e, ...t }) => /* @__PURE__ */ i(ze, { className: y("not-prose mb-4 w-full rounded-md border", e), ...t }), da = ({ status: e }) => {
5601
5691
  const { t } = M(["tools_ui"]), n = {
5602
5692
  "input-streaming": t("pending"),
5603
5693
  "input-available": t("running"),
5604
5694
  "output-available": t("completed"),
5605
5695
  "output-error": t("error")
5606
5696
  };
5607
- return /* @__PURE__ */ w(Nr, { className: "gap-1.5 rounded-full text-xs", variant: "secondary", children: [
5697
+ return /* @__PURE__ */ _(Cr, { className: "gap-1.5 rounded-full text-xs", variant: "secondary", children: [
5608
5698
  {
5609
5699
  "input-streaming": /* @__PURE__ */ i(Cn, { className: "size-4" }),
5610
5700
  "input-available": /* @__PURE__ */ i(Tn, { className: "size-4 animate-pulse" }),
5611
5701
  "output-available": /* @__PURE__ */ i(Nn, { className: "size-4 text-green-600" }),
5612
- "output-error": /* @__PURE__ */ i(Tt, { className: "size-4 text-red-600" })
5702
+ "output-error": /* @__PURE__ */ i(Ct, { className: "size-4 text-red-600" })
5613
5703
  }[e],
5614
5704
  n[e]
5615
5705
  ] });
5616
- }, ua = ({ className: e, type: t, state: n, toolName: o, ...r }) => {
5617
- const a = o || (t.startsWith("tool-") ? t.slice(5) : t), l = la(a, "size-4 text-muted-foreground");
5618
- return /* @__PURE__ */ w($e, { className: k("flex w-full items-center justify-between gap-4 p-3", e), ...r, children: [
5619
- /* @__PURE__ */ w("div", { className: "flex items-center gap-2", children: [
5706
+ }, pa = ({ className: e, type: t, state: n, toolName: o, ...r }) => {
5707
+ const a = o || (t.startsWith("tool-") ? t.slice(5) : t), l = ca(a, "size-4 text-muted-foreground");
5708
+ return /* @__PURE__ */ _(Ue, { className: y("flex w-full items-center justify-between gap-4 p-3", e), ...r, children: [
5709
+ /* @__PURE__ */ _("div", { className: "flex items-center gap-2", children: [
5620
5710
  l,
5621
5711
  /* @__PURE__ */ i("span", { className: "font-medium text-sm", children: a }),
5622
- /* @__PURE__ */ i(ca, { status: n })
5712
+ /* @__PURE__ */ i(da, { status: n })
5623
5713
  ] }),
5624
5714
  /* @__PURE__ */ i(ie, { className: "size-4 text-muted-foreground transition-transform group-data-[state=open]:rotate-180" })
5625
5715
  ] });
5626
- }, da = ({ className: e, ...t }) => /* @__PURE__ */ i(
5627
- Ue,
5716
+ }, ha = ({ className: e, ...t }) => /* @__PURE__ */ i(
5717
+ $e,
5628
5718
  {
5629
- className: k(
5719
+ className: y(
5630
5720
  "data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-popover-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in",
5631
5721
  e
5632
5722
  ),
5633
5723
  ...t
5634
5724
  }
5635
- ), nn = (e) => {
5725
+ ), on = (e) => {
5636
5726
  if (typeof e == "string")
5637
5727
  try {
5638
5728
  return JSON.stringify(JSON.parse(e), null, 2);
@@ -5640,13 +5730,13 @@ const sa = ({ className: e, ...t }) => /* @__PURE__ */ i(ze, { className: k("not
5640
5730
  return e;
5641
5731
  }
5642
5732
  return JSON.stringify(e, null, 2);
5643
- }, pa = ({ className: e, input: t, ...n }) => {
5733
+ }, ga = ({ className: e, input: t, ...n }) => {
5644
5734
  const { t: o } = M(["tools_ui"]);
5645
- return /* @__PURE__ */ w("div", { className: k("space-y-2 overflow-hidden p-4", e), ...n, children: [
5735
+ return /* @__PURE__ */ _("div", { className: y("space-y-2 overflow-hidden p-4", e), ...n, children: [
5646
5736
  /* @__PURE__ */ i("h4", { className: "font-medium text-muted-foreground text-xs uppercase tracking-wide", children: o("parameters") }),
5647
- /* @__PURE__ */ i("div", { className: "rounded-md bg-muted/50", children: /* @__PURE__ */ i(Fe, { code: nn(t), language: "json" }) })
5737
+ /* @__PURE__ */ i("div", { className: "rounded-md bg-muted/50", children: /* @__PURE__ */ i(Le, { code: on(t), language: "json" }) })
5648
5738
  ] });
5649
- }, ha = ({ className: e, output: t, errorText: n, ...o }) => {
5739
+ }, ma = ({ className: e, output: t, errorText: n, ...o }) => {
5650
5740
  const { t: r } = M(["tools_ui"]), [a, l] = B(!1);
5651
5741
  if (!(t || n))
5652
5742
  return null;
@@ -5658,25 +5748,25 @@ const sa = ({ className: e, ...t }) => /* @__PURE__ */ i(ze, { className: k("not
5658
5748
  if (typeof t == "string")
5659
5749
  try {
5660
5750
  const p = JSON.parse(t);
5661
- return /* @__PURE__ */ i(Fe, { code: JSON.stringify(p, null, 2), language: "json" });
5751
+ return /* @__PURE__ */ i(Le, { code: JSON.stringify(p, null, 2), language: "json" });
5662
5752
  } catch {
5663
5753
  return /* @__PURE__ */ i("div", { className: "p-4 text-sm whitespace-pre-wrap", dir: "ltr", children: t });
5664
5754
  }
5665
- return typeof t == "object" && t !== null && !("$$typeof" in t) ? /* @__PURE__ */ i(Fe, { code: JSON.stringify(t, null, 2), language: "json" }) : t;
5755
+ return typeof t == "object" && t !== null && !("$$typeof" in t) ? /* @__PURE__ */ i(Le, { code: JSON.stringify(t, null, 2), language: "json" }) : t;
5666
5756
  };
5667
- return /* @__PURE__ */ w("div", { className: k("space-y-2 p-4", e), ...o, children: [
5757
+ return /* @__PURE__ */ _("div", { className: y("space-y-2 p-4", e), ...o, children: [
5668
5758
  /* @__PURE__ */ i("h4", { className: "font-medium text-muted-foreground text-xs uppercase tracking-wide", children: r(n ? "error" : "result") }),
5669
- n && /* @__PURE__ */ w(Tr, { children: [
5670
- /* @__PURE__ */ i(Cr, { asChild: !0, children: /* @__PURE__ */ w(ee, { variant: "destructive", size: "sm", children: [
5671
- /* @__PURE__ */ i(Tt, { className: "mr-1.5 size-4" }),
5759
+ n && /* @__PURE__ */ _(Ar, { children: [
5760
+ /* @__PURE__ */ i(Ir, { asChild: !0, children: /* @__PURE__ */ _(Q, { variant: "destructive", size: "sm", children: [
5761
+ /* @__PURE__ */ i(Ct, { className: "mr-1.5 size-4" }),
5672
5762
  r("view_error")
5673
5763
  ] }) }),
5674
- /* @__PURE__ */ w(Rr, { className: "max-w-2xl", children: [
5675
- /* @__PURE__ */ i(Or, { children: /* @__PURE__ */ i(Fr, { className: "text-destructive", children: r("tool_error") }) }),
5676
- /* @__PURE__ */ w("div", { className: "space-y-4", children: [
5677
- /* @__PURE__ */ i("div", { className: "max-h-96 overflow-auto rounded-md bg-destructive/10 p-4 text-destructive text-sm", children: /* @__PURE__ */ i("pre", { className: "whitespace-pre-wrap break-words", children: nn(n) }) }),
5678
- /* @__PURE__ */ w(ee, { variant: "outline", size: "sm", onClick: c, children: [
5679
- /* @__PURE__ */ i(Nt, { className: "mr-1.5 size-4" }),
5764
+ /* @__PURE__ */ _(Lr, { className: "max-w-2xl", children: [
5765
+ /* @__PURE__ */ i(Fr, { children: /* @__PURE__ */ i(Dr, { className: "text-destructive", children: r("tool_error") }) }),
5766
+ /* @__PURE__ */ _("div", { className: "space-y-4", children: [
5767
+ /* @__PURE__ */ i("div", { className: "max-h-96 overflow-auto rounded-md bg-destructive/10 p-4 text-destructive text-sm", children: /* @__PURE__ */ i("pre", { className: "whitespace-pre-wrap break-words", children: on(n) }) }),
5768
+ /* @__PURE__ */ _(Q, { variant: "outline", size: "sm", onClick: c, children: [
5769
+ /* @__PURE__ */ i(Tt, { className: "mr-1.5 size-4" }),
5680
5770
  r(a ? "copied" : "copy_error")
5681
5771
  ] })
5682
5772
  ] })
@@ -5685,7 +5775,7 @@ const sa = ({ className: e, ...t }) => /* @__PURE__ */ i(ze, { className: k("not
5685
5775
  t && !n && /* @__PURE__ */ i("div", { className: "overflow-x-auto rounded-md bg-muted/50 text-foreground text-xs [&_table]:w-full line-clamp-[20]", children: /* @__PURE__ */ i("div", { children: s() }) })
5686
5776
  ] });
5687
5777
  };
5688
- function ga({
5778
+ function fa({
5689
5779
  part: e,
5690
5780
  message: t,
5691
5781
  chat: n,
@@ -5711,15 +5801,15 @@ function ga({
5711
5801
  const c = o[l];
5712
5802
  return /* @__PURE__ */ i(c, { part: e, message: t, chat: n });
5713
5803
  }
5714
- return r ? /* @__PURE__ */ w(sa, { className: "animate-in-bubble", children: [
5715
- /* @__PURE__ */ i(ua, { type: e.type, state: a.state, toolName: l }),
5716
- /* @__PURE__ */ w(da, { children: [
5717
- /* @__PURE__ */ i(pa, { input: a.input }),
5718
- (a.state === "output-available" || a.state === "output-error") && /* @__PURE__ */ i(ha, { errorText: a.errorText, output: a.output })
5804
+ return r ? /* @__PURE__ */ _(ua, { className: "animate-in-bubble", children: [
5805
+ /* @__PURE__ */ i(pa, { type: e.type, state: a.state, toolName: l }),
5806
+ /* @__PURE__ */ _(ha, { children: [
5807
+ /* @__PURE__ */ i(ga, { input: a.input }),
5808
+ (a.state === "output-available" || a.state === "output-error") && /* @__PURE__ */ i(ma, { errorText: a.errorText, output: a.output })
5719
5809
  ] })
5720
5810
  ] }) : null;
5721
5811
  }
5722
- function ma({
5812
+ function ba({
5723
5813
  part: e,
5724
5814
  message: t
5725
5815
  }) {
@@ -5728,7 +5818,7 @@ function ma({
5728
5818
  const s = document.createElement("a");
5729
5819
  s.href = o.url, s.download = a, document.body.appendChild(s), s.click(), document.body.removeChild(s);
5730
5820
  };
5731
- return /* @__PURE__ */ i("div", { className: "py-2 animate-in-bubble", children: /* @__PURE__ */ i(Lt, { from: t.role, children: /* @__PURE__ */ i(Dt, { isPlain: !0, children: r ? /* @__PURE__ */ w("div", { className: "group relative max-w-[280px] rounded-xl overflow-hidden border border-border/5 transition-all duration-300 hover:border-primary/30 hover:shadow-[0_0_20px_var(--glow)]", children: [
5821
+ return /* @__PURE__ */ i("div", { className: "py-2 animate-in-bubble", children: /* @__PURE__ */ i(Dt, { from: t.role, children: /* @__PURE__ */ i(Pt, { isPlain: !0, children: r ? /* @__PURE__ */ _("div", { className: "group relative max-w-[280px] rounded-xl overflow-hidden border border-border/5 transition-all duration-300 hover:border-primary/30 hover:shadow-[0_0_20px_var(--glow)]", children: [
5732
5822
  /* @__PURE__ */ i(
5733
5823
  "img",
5734
5824
  {
@@ -5737,7 +5827,7 @@ function ma({
5737
5827
  className: "max-h-[280px] w-full rounded-xl object-cover transition-transform duration-500 group-hover:scale-105"
5738
5828
  }
5739
5829
  ),
5740
- /* @__PURE__ */ w("div", { className: "absolute inset-x-0 bottom-0 p-3 bg-gradient-to-t from-black/80 via-black/40 to-transparent opacity-0 group-hover:opacity-100 transition-opacity flex items-center justify-between", children: [
5830
+ /* @__PURE__ */ _("div", { className: "absolute inset-x-0 bottom-0 p-3 bg-gradient-to-t from-black/80 via-black/40 to-transparent opacity-0 group-hover:opacity-100 transition-opacity flex items-center justify-between", children: [
5741
5831
  /* @__PURE__ */ i("span", { className: "text-[10px] text-white truncate max-w-[150px] font-medium drop-shadow-sm", children: a }),
5742
5832
  /* @__PURE__ */ i(
5743
5833
  "button",
@@ -5757,9 +5847,9 @@ function ma({
5757
5847
  children: /* @__PURE__ */ i(ue, { className: "size-4" })
5758
5848
  }
5759
5849
  ) })
5760
- ] }) : /* @__PURE__ */ i("div", { className: "flex flex-col gap-1.5", children: /* @__PURE__ */ w("div", { className: "group inline-flex items-center gap-3 rounded-xl p-3 text-sm transition-all duration-300 bg-secondary/10 border border-border/5 hover:border-primary/30 hover:bg-secondary/20 hover:shadow-[0_0_15px_var(--glow)]", children: [
5761
- /* @__PURE__ */ i("div", { className: "p-2.5 rounded-lg bg-background/50 border border-border/10 group-hover:border-primary/20 group-hover:text-primary transition-colors", children: /* @__PURE__ */ i(Et, { className: "size-4 shrink-0" }) }),
5762
- /* @__PURE__ */ w("div", { className: "flex flex-col min-w-0 mr-4", children: [
5850
+ ] }) : /* @__PURE__ */ i("div", { className: "flex flex-col gap-1.5", children: /* @__PURE__ */ _("div", { className: "group inline-flex items-center gap-3 rounded-xl p-3 text-sm transition-all duration-300 bg-secondary/10 border border-border/5 hover:border-primary/30 hover:bg-secondary/20 hover:shadow-[0_0_15px_var(--glow)]", children: [
5851
+ /* @__PURE__ */ i("div", { className: "p-2.5 rounded-lg bg-background/50 border border-border/10 group-hover:border-primary/20 group-hover:text-primary transition-colors", children: /* @__PURE__ */ i(Nt, { className: "size-4 shrink-0" }) }),
5852
+ /* @__PURE__ */ _("div", { className: "flex flex-col min-w-0 mr-4", children: [
5763
5853
  /* @__PURE__ */ i("span", { className: "truncate max-w-[180px] font-semibold text-foreground/90 leading-none mb-1 group-hover:text-foreground transition-colors", children: a }),
5764
5854
  (o.mediaType || o.media_type) && /* @__PURE__ */ i("span", { className: "text-[10px] text-muted-foreground uppercase font-bold tracking-widest opacity-60", children: (o.mediaType || o.media_type).split("/").pop() })
5765
5855
  ] }),
@@ -5774,14 +5864,14 @@ function ma({
5774
5864
  )
5775
5865
  ] }) }) }) }) });
5776
5866
  }
5777
- const C = {
5778
- MessageList: Zn,
5779
- PromptInput: io,
5780
- WelcomeScreen: so,
5781
- TextPart: vr,
5782
- ReasoningPart: Sr,
5783
- ToolPart: ga,
5784
- FilePart: ma,
5867
+ const A = {
5868
+ MessageList: Qn,
5869
+ PromptInput: so,
5870
+ WelcomeScreen: uo,
5871
+ TextPart: _r,
5872
+ ReasoningPart: Nr,
5873
+ ToolPart: fa,
5874
+ FilePart: ba,
5785
5875
  toolComponents: void 0,
5786
5876
  textComponents: void 0,
5787
5877
  remarkPlugins: void 0,
@@ -5810,6 +5900,8 @@ const C = {
5810
5900
  app: {
5811
5901
  name: void 0,
5812
5902
  adminTitle: void 0,
5903
+ version: void 0,
5904
+ showVersionInSettings: !0,
5813
5905
  cacheNamespace: "gentiq",
5814
5906
  showSettings: !0,
5815
5907
  settingsGeneralMode: "editable",
@@ -5824,11 +5916,11 @@ const C = {
5824
5916
  account: { enabled: !0, fields: {} }
5825
5917
  }
5826
5918
  }
5827
- }, on = pe(C);
5828
- function W() {
5829
- return Le(on);
5919
+ }, rn = de(A);
5920
+ function te() {
5921
+ return Fe(rn);
5830
5922
  }
5831
- function _i({
5923
+ function Ni({
5832
5924
  components: e,
5833
5925
  history: t,
5834
5926
  welcome: n,
@@ -5839,111 +5931,54 @@ function _i({
5839
5931
  app: c,
5840
5932
  i18n: s,
5841
5933
  settings: p,
5842
- children: h
5934
+ children: g
5843
5935
  }) {
5844
- const f = St(
5936
+ const m = St(
5845
5937
  () => ({
5846
- ...C,
5938
+ ...A,
5847
5939
  ...e,
5848
5940
  // toolComponents is a plain merge (not nested-spread) — callers
5849
5941
  // provide the full map for all tool names they want to override.
5850
- toolComponents: e?.toolComponents ?? C.toolComponents,
5851
- history: t ? { ...C.history, ...t } : C.history,
5852
- welcome: n ? { ...C.welcome, ...n } : C.welcome,
5853
- threadActions: o ? { ...C.threadActions, ...o } : C.threadActions,
5942
+ toolComponents: e?.toolComponents ?? A.toolComponents,
5943
+ history: t ? { ...A.history, ...t } : A.history,
5944
+ welcome: n ? { ...A.welcome, ...n } : A.welcome,
5945
+ threadActions: o ? { ...A.threadActions, ...o } : A.threadActions,
5854
5946
  composer: r ? {
5855
- ...C.composer,
5947
+ ...A.composer,
5856
5948
  ...r,
5857
- attachments: r.attachments ? { ...C.composer?.attachments, ...r.attachments } : C.composer?.attachments
5858
- } : C.composer,
5859
- theme: a ?? C.theme,
5860
- disclaimer: l ?? C.disclaimer,
5861
- app: c ? { ...C.app, ...c } : C.app,
5862
- i18n: s ?? C.i18n,
5949
+ attachments: r.attachments ? { ...A.composer?.attachments, ...r.attachments } : A.composer?.attachments
5950
+ } : A.composer,
5951
+ theme: a ?? A.theme,
5952
+ disclaimer: l ?? A.disclaimer,
5953
+ app: c ? { ...A.app, ...c } : A.app,
5954
+ i18n: s ?? A.i18n,
5863
5955
  settings: p ? {
5864
- ...C.settings,
5956
+ ...A.settings,
5865
5957
  sections: {
5866
- ...C.settings?.sections,
5958
+ ...A.settings?.sections,
5867
5959
  ...p.sections
5868
5960
  }
5869
- } : C.settings
5961
+ } : A.settings
5870
5962
  }),
5871
5963
  [e, t, n, o, r, a, l, c, s, p]
5872
5964
  );
5873
- return /* @__PURE__ */ i(on.Provider, { value: f, children: h });
5965
+ return /* @__PURE__ */ i(rn.Provider, { value: m, children: g });
5874
5966
  }
5875
- const fa = {
5876
- theme: "system",
5877
- setTheme: () => null,
5878
- accent: void 0,
5879
- setAccent: () => null,
5880
- radius: void 0,
5881
- setRadius: () => null
5882
- }, rn = pe(fa);
5883
- function Si({
5884
- children: e,
5885
- defaultTheme: t = "system",
5886
- storageKey: n = "chatbot-theme",
5887
- ...o
5888
- }) {
5889
- const [r, a] = B(
5890
- () => window.localStorage.getItem(n) ?? t
5891
- ), [l, c] = B(
5892
- () => window.localStorage.getItem(n + "-accent") || void 0
5893
- ), [s, p] = B(
5894
- () => window.localStorage.getItem(n + "-radius") || "1.25rem"
5895
- ), { theme: h } = W(), { i18n: f } = M(["theme"]);
5896
- Q(() => {
5897
- const m = window.document.documentElement;
5898
- if (m.classList.remove("light", "dark"), r === "system") {
5899
- const y = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
5900
- m.classList.add(y);
5901
- return;
5902
- }
5903
- m.classList.add(r);
5904
- }, [r]), Q(() => {
5905
- const m = window.document.documentElement, y = f.language?.split("-")[0] || f.language;
5906
- let d = h?.typography?.fontFamily;
5907
- if (typeof d == "object" && d !== null && (d = d[f.language] || d[y] || d.en || Object.values(d)[0]), d) {
5908
- const g = d.includes(" ") && !d.startsWith("'") && !d.startsWith('"') ? `"${d}"` : d;
5909
- m.style.setProperty("--gentiq-font-family", g), m.style.fontFamily = g, window.document.body && (window.document.body.style.fontFamily = g);
5910
- }
5911
- const v = s || (typeof h?.radius == "number" ? `${h.radius}px` : h?.radius);
5912
- v !== void 0 && m.style.setProperty("--radius", v);
5913
- const x = l || h?.accent;
5914
- x !== void 0 && m.style.setProperty("--gentiq-primary", x), window.document.documentElement.dir = f.dir();
5915
- }, [h, f, f.language, l, s]);
5916
- const b = {
5917
- theme: r,
5918
- setTheme: (m) => {
5919
- window.localStorage.setItem(n, m), a(m);
5920
- },
5921
- accent: l,
5922
- setAccent: (m) => {
5923
- m ? window.localStorage.setItem(n + "-accent", m) : window.localStorage.removeItem(n + "-accent"), c(m);
5924
- },
5925
- radius: s,
5926
- setRadius: (m) => {
5927
- m ? window.localStorage.setItem(n + "-radius", m) : window.localStorage.removeItem(n + "-radius"), p(m);
5928
- }
5929
- };
5930
- return /* @__PURE__ */ i(rn.Provider, { ...o, value: b, children: e });
5931
- }
5932
- const Ei = () => Le(rn), {
5933
- slice: ba,
5934
- forEach: ya
5967
+ const {
5968
+ slice: ya,
5969
+ forEach: ka
5935
5970
  } = [];
5936
- function ka(e) {
5937
- return ya.call(ba.call(arguments, 1), (t) => {
5971
+ function va(e) {
5972
+ return ka.call(ya.call(arguments, 1), (t) => {
5938
5973
  if (t)
5939
5974
  for (const n in t)
5940
5975
  e[n] === void 0 && (e[n] = t[n]);
5941
5976
  }), e;
5942
5977
  }
5943
- function va(e) {
5978
+ function wa(e) {
5944
5979
  return typeof e != "string" ? !1 : [/<\s*script.*?>/i, /<\s*\/\s*script\s*>/i, /<\s*img.*?on\w+\s*=/i, /<\s*\w+\s*on\w+\s*=.*?>/i, /javascript\s*:/i, /vbscript\s*:/i, /expression\s*\(/i, /eval\s*\(/i, /alert\s*\(/i, /document\.cookie/i, /document\.write\s*\(/i, /window\.location/i, /innerHTML/i].some((n) => n.test(e));
5945
5980
  }
5946
- const vt = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/, wa = function(e, t) {
5981
+ const vt = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/, _a = function(e, t) {
5947
5982
  const o = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {
5948
5983
  path: "/"
5949
5984
  }, r = encodeURIComponent(t);
@@ -5992,7 +6027,7 @@ const vt = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/, wa = function(e, t) {
5992
6027
  path: "/",
5993
6028
  sameSite: "strict"
5994
6029
  };
5995
- n && (r.expires = /* @__PURE__ */ new Date(), r.expires.setTime(r.expires.getTime() + n * 60 * 1e3)), o && (r.domain = o), document.cookie = wa(e, t, r);
6030
+ n && (r.expires = /* @__PURE__ */ new Date(), r.expires.setTime(r.expires.getTime() + n * 60 * 1e3)), o && (r.domain = o), document.cookie = _a(e, t, r);
5996
6031
  },
5997
6032
  read(e) {
5998
6033
  const t = `${e}=`, n = document.cookie.split(";");
@@ -6027,7 +6062,7 @@ var xa = {
6027
6062
  } = t;
6028
6063
  n && typeof document < "u" && wt.create(n, e, o, r, a);
6029
6064
  }
6030
- }, _a = {
6065
+ }, Sa = {
6031
6066
  name: "querystring",
6032
6067
  // Deconstruct the options object and extract the lookupQuerystring property
6033
6068
  lookup(e) {
@@ -6047,7 +6082,7 @@ var xa = {
6047
6082
  }
6048
6083
  return n;
6049
6084
  }
6050
- }, Sa = {
6085
+ }, Ea = {
6051
6086
  name: "hash",
6052
6087
  // Deconstruct the options object and extract the lookupHash property and the lookupFromHashIndex property
6053
6088
  lookup(e) {
@@ -6078,27 +6113,27 @@ var xa = {
6078
6113
  return o;
6079
6114
  }
6080
6115
  };
6081
- let Y = null;
6082
- const xt = () => {
6083
- if (Y !== null) return Y;
6116
+ let W = null;
6117
+ const _t = () => {
6118
+ if (W !== null) return W;
6084
6119
  try {
6085
- if (Y = typeof window < "u" && window.localStorage !== null, !Y)
6120
+ if (W = typeof window < "u" && window.localStorage !== null, !W)
6086
6121
  return !1;
6087
6122
  const e = "i18next.translate.boo";
6088
6123
  window.localStorage.setItem(e, "foo"), window.localStorage.removeItem(e);
6089
6124
  } catch {
6090
- Y = !1;
6125
+ W = !1;
6091
6126
  }
6092
- return Y;
6127
+ return W;
6093
6128
  };
6094
- var Ea = {
6129
+ var Na = {
6095
6130
  name: "localStorage",
6096
6131
  // Deconstruct the options object and extract the lookupLocalStorage property
6097
6132
  lookup(e) {
6098
6133
  let {
6099
6134
  lookupLocalStorage: t
6100
6135
  } = e;
6101
- if (t && xt())
6136
+ if (t && _t())
6102
6137
  return window.localStorage.getItem(t) || void 0;
6103
6138
  },
6104
6139
  // Deconstruct the options object and extract the lookupLocalStorage property
@@ -6106,38 +6141,38 @@ var Ea = {
6106
6141
  let {
6107
6142
  lookupLocalStorage: n
6108
6143
  } = t;
6109
- n && xt() && window.localStorage.setItem(n, e);
6144
+ n && _t() && window.localStorage.setItem(n, e);
6110
6145
  }
6111
6146
  };
6112
- let X = null;
6113
- const _t = () => {
6114
- if (X !== null) return X;
6147
+ let Y = null;
6148
+ const xt = () => {
6149
+ if (Y !== null) return Y;
6115
6150
  try {
6116
- if (X = typeof window < "u" && window.sessionStorage !== null, !X)
6151
+ if (Y = typeof window < "u" && window.sessionStorage !== null, !Y)
6117
6152
  return !1;
6118
6153
  const e = "i18next.translate.boo";
6119
6154
  window.sessionStorage.setItem(e, "foo"), window.sessionStorage.removeItem(e);
6120
6155
  } catch {
6121
- X = !1;
6156
+ Y = !1;
6122
6157
  }
6123
- return X;
6158
+ return Y;
6124
6159
  };
6125
- var Na = {
6160
+ var Ta = {
6126
6161
  name: "sessionStorage",
6127
6162
  lookup(e) {
6128
6163
  let {
6129
6164
  lookupSessionStorage: t
6130
6165
  } = e;
6131
- if (t && _t())
6166
+ if (t && xt())
6132
6167
  return window.sessionStorage.getItem(t) || void 0;
6133
6168
  },
6134
6169
  cacheUserLanguage(e, t) {
6135
6170
  let {
6136
6171
  lookupSessionStorage: n
6137
6172
  } = t;
6138
- n && _t() && window.sessionStorage.setItem(n, e);
6173
+ n && xt() && window.sessionStorage.setItem(n, e);
6139
6174
  }
6140
- }, Ta = {
6175
+ }, Ca = {
6141
6176
  name: "navigator",
6142
6177
  lookup(e) {
6143
6178
  const t = [];
@@ -6154,7 +6189,7 @@ var Na = {
6154
6189
  }
6155
6190
  return t.length > 0 ? t : void 0;
6156
6191
  }
6157
- }, Ca = {
6192
+ }, Aa = {
6158
6193
  name: "htmlTag",
6159
6194
  // Deconstruct the options object and extract the htmlTag property
6160
6195
  lookup(e) {
@@ -6164,7 +6199,7 @@ var Na = {
6164
6199
  const o = t || (typeof document < "u" ? document.documentElement : null);
6165
6200
  return o && typeof o.getAttribute == "function" && (n = o.getAttribute("lang")), n;
6166
6201
  }
6167
- }, Aa = {
6202
+ }, Ia = {
6168
6203
  name: "path",
6169
6204
  // Deconstruct the options object and extract the lookupFromPathIndex property
6170
6205
  lookup(e) {
@@ -6175,7 +6210,7 @@ var Na = {
6175
6210
  const n = window.location.pathname.match(/\/([a-zA-Z-]*)/g);
6176
6211
  return Array.isArray(n) ? n[typeof t == "number" ? t : 0]?.replace("/", "") : void 0;
6177
6212
  }
6178
- }, Ia = {
6213
+ }, Ra = {
6179
6214
  name: "subdomain",
6180
6215
  lookup(e) {
6181
6216
  let {
@@ -6193,7 +6228,7 @@ try {
6193
6228
  }
6194
6229
  const ln = ["querystring", "cookie", "localStorage", "sessionStorage", "navigator", "htmlTag"];
6195
6230
  an || ln.splice(1, 1);
6196
- const Ra = () => ({
6231
+ const Oa = () => ({
6197
6232
  order: ln,
6198
6233
  lookupQuerystring: "lng",
6199
6234
  lookupCookie: "i18next",
@@ -6215,7 +6250,7 @@ class sn {
6215
6250
  let t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {
6216
6251
  languageUtils: {}
6217
6252
  }, n = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, o = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
6218
- this.services = t, this.options = ka(n, this.options || {}, Ra()), typeof this.options.convertDetectedLanguage == "string" && this.options.convertDetectedLanguage.indexOf("15897") > -1 && (this.options.convertDetectedLanguage = (r) => r.replace("-", "_")), this.options.lookupFromUrlIndex && (this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex), this.i18nOptions = o, this.addDetector(xa), this.addDetector(_a), this.addDetector(Ea), this.addDetector(Na), this.addDetector(Ta), this.addDetector(Ca), this.addDetector(Aa), this.addDetector(Ia), this.addDetector(Sa);
6253
+ this.services = t, this.options = va(n, this.options || {}, Oa()), typeof this.options.convertDetectedLanguage == "string" && this.options.convertDetectedLanguage.indexOf("15897") > -1 && (this.options.convertDetectedLanguage = (r) => r.replace("-", "_")), this.options.lookupFromUrlIndex && (this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex), this.i18nOptions = o, this.addDetector(xa), this.addDetector(Sa), this.addDetector(Na), this.addDetector(Ta), this.addDetector(Ca), this.addDetector(Aa), this.addDetector(Ia), this.addDetector(Ra), this.addDetector(Ea);
6219
6254
  }
6220
6255
  addDetector(t) {
6221
6256
  return this.detectors[t.name] = t, this;
@@ -6227,7 +6262,7 @@ class sn {
6227
6262
  let r = this.detectors[o].lookup(this.options);
6228
6263
  r && typeof r == "string" && (r = [r]), r && (n = n.concat(r));
6229
6264
  }
6230
- }), n = n.filter((o) => o != null && !va(o)).map((o) => this.options.convertDetectedLanguage(o)), this.services && this.services.languageUtils && this.services.languageUtils.getBestMatchFromCodes ? n : n.length > 0 ? n[0] : null;
6265
+ }), n = n.filter((o) => o != null && !wa(o)).map((o) => this.options.convertDetectedLanguage(o)), this.services && this.services.languageUtils && this.services.languageUtils.getBestMatchFromCodes ? n : n.length > 0 ? n[0] : null;
6231
6266
  }
6232
6267
  cacheUserLanguage(t) {
6233
6268
  let n = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : this.options.caches;
@@ -6237,30 +6272,30 @@ class sn {
6237
6272
  }
6238
6273
  }
6239
6274
  sn.type = "languageDetector";
6240
- const Oa = { new_conversation: "New conversation", tooltip_new_conversation: "Start a new conversation", delete_conversation: "Delete", delete_confirm_title: "Delete conversation?", delete_confirm_description: "Are you sure you want to delete this chat? This action cannot be undone.", cancel: "Cancel", delete: "Delete", chat_deleted_success: "Chat deleted successfully", logout: "Logout", new_chat: "New Chat", rename_conversation: "Rename", rename_success: "Conversation renamed successfully", rename_failed: "Failed to rename conversation", search_conversations: "Search conversations...", save: "Save", no_conversations: "No conversations yet", loading_more: "Loading more...", pinned_success: "Conversation pinned", unpinned_success: "Conversation unpinned", pin_failed: "Failed to pin conversation", share_success: "Link copied", share_description: "The shareable link has been copied to your clipboard.", share_failed: "Failed to generate share link", pin_conversation: "Pin", unpin_conversation: "Unpin", share_conversation: "Share" }, Fa = { tools: "Tools", error: "Error:", input_placeholder: "Ask something...", insufficient_balance: "Insufficient balance. Please recharge your account to continue.", regenerate: "Regenerate", retry: "Retry", copy: "Copy", like: "Like", dislike: "Dislike", attach_file: "Attach file", remove_file: "Remove file", used_sources: "Used {{count}} sources", welcome: { title: "Hello! How can I help you today?", subtitle: "Ask me anything and I'll do my best to help.", suggestions: ["What can you help me with?", "Tell me something interesting", "Help me write an email", "Explain a concept to me"] }, disclaimer: "AI can make mistakes. Check important info." }, La = { pending: "Pending", running: "Running", completed: "Completed", error: "Error", parameters: "Parameters", result: "Result", view_error: "View Error", tool_error: "Tool Error", copied: "Copied!", copy_error: "Copy Error" }, Da = { login_tab: "Login", signup_tab: "Sign Up", phone: "Phone", phone_placeholder: "Phone number", password: "Password", name: "Name", name_placeholder: "First Name", surname: "Surname", surname_placeholder: "Last Name", loading: "Loading...", logging_in: "Logging in...", signing_up: "Signing up...", auth_page_disabled_title: "The sign-in page is currently disabled.", auth_page_disabled_description: "Please contact the administrator for access.", select_placeholder: "Select an option", login_button: "Login", signup_button: "Sign Up" }, Pa = { toggle: "Change theme", light: "Switch to light theme", dark: "Switch to dark theme", system: "Switch to system theme" }, Ma = { select_placeholder: "Select an option", loading: "Loading...", retry: "Retry", save: "Save", saving: "Saving...", cancel: "Cancel", delete: "Delete", edit: "Edit", search: "Search", search_placeholder: "Search...", no_data: "No data available", loading_more: "Loading more...", confirm_delete: "Are you sure you want to delete?", error_loading: "Error loading data", dashboard: { title: "Admin Panel", logout: "Logout", tabs: { analytics: "Analytics", chat_history: "Chats", users: "Users", admins: "Admins", settings: "Settings" } }, app_settings: { title: "System Settings", subtitle: "Manage global configuration for application appearance and behavior.", sections: { general: "Basic Information", chat: "Chat Experience", user_billing: "User & Billing" }, general: { app_name: "App Name", admin_title: "Admin Panel Title", language: "Default Language", language_help: "The language users see on their first visit (if not auto-detected)." }, chat: { welcome_greeting: "Welcome Greeting", welcome_subtitle: "Welcome Subtitle", disclaimer: "Disclaimer Text", show_tool_details: "Show technical tool details", show_tool_details_help: "Enable this to show professional technical details of AI tools to users.", show_settings: "Show settings icon for users", show_settings_help: "Show a settings gear icon in the chat interface for user customization.", disable_signup: "Disable signup", disable_signup_help: "Hide the signup tab so users can only log in.", disable_auth_page: "Disable login/signup page", disable_auth_page_help: "Hide the entire auth page and prevent users from reaching login or signup forms.", composer_attachments: "Enable File Attachments", composer_attachments_help: "Allow users to upload and attach files to their messages.", thread_actions_feedback: "Enable Feedback Buttons", thread_actions_feedback_help: "Show like/dislike buttons on AI responses.", thread_actions_retry: "Enable Retry Button", thread_actions_retry_help: "Show a retry button to regenerate the last AI response.", history_enabled: "Enable Chat History Sidebar", history_enabled_help: "Show the sidebar containing previous conversations.", history_show_delete: "Allow Deleting Conversations", history_show_rename: "Allow Renaming Conversations", history_show_share: "Allow Sharing Conversations", history_show_pin: "Allow Pinning Conversations", sections_modes: "Settings Tab Modes", sections_modes_help: "Control visibility and interactability of settings tabs for users.", mode_editable: "Enable (Editable)", mode_faded: "Fade (Readonly)", mode_hidden: "Hide (Disable)", general_tab: "General Tab", profile_tab: "Profile Tab", account_tab: "Account Tab", inner_fields_modes: "Inner Fields Visibility", inner_fields_modes_help: "Configure visibility for individual fields within each tab." }, user_billing: { initial_balance_tokens: "Default Initial Tokens", initial_balance_requests: "Default Initial Requests", initial_balance_help: "These values will be assigned to new users by default if not specified during creation." }, save_success: "Settings saved successfully", save_error: "Failed to save settings", save: "Save Changes", translations_management: "Translations Management", editor_tips: "All changes are saved automatically to local state. Don't forget to push 'Save Changes' to persist.", sync_from_code: "Sync from Code", reset_button: "Reset to Defaults", reset_confirm_title: "Reset Settings?", reset_confirm_description: "This will reset all fields to their original default values from the code. Current unsaved changes will be lost.", preview: "Preview", tips_label: "TIPS" }, analytics: { title: "Analytics & Statistics", days: "{{count}} Days", total_users: "Total Users", total_threads: "Total Threads", total_messages: "Total Messages", total_token_usage: "Total Token Usage", threads_chart: "Threads", messages_chart: "Messages", token_usage_chart: "Token Usage", active_users: "Active Users", conversations: "conversations", threads: "threads", feedback: "User Feedback", total_feedback: "Total Feedback", positive: "Positive", negative: "Negative", loading_analytics: "Loading analytics...", error_loading: "Error loading data" }, chat_history: { title: "Chat History Management", search_placeholder: "Search by name, phone, thread title, or ID...", search_button: "Search", threads_list: "Threads List", thread_count: "{{count}}", no_thread_title: "Untitled conversation", messages: "Messages", messages_for: "Messages for: {{title}}", select_thread: "Select a conversation to view", no_threads: "No conversations found", empty_thread: "This conversation is empty", loading_threads: "Loading...", loading_messages: "Loading messages...", user_label: "User", assistant_label: "AI Assistant", input_tokens: "Input: {{value}}", output_tokens: "Output: {{value}}", total_tokens: "Total: {{value}}", all_feedbacks: "All Conversations", liked_feedbacks: "Liked 👍", disliked_feedbacks: "Disliked 👎", any_feedback: "With Feedback", output_available: "Output Available", running: "Running...", unnamed_file: "Unnamed File", download_file: "Download File" }, users: { title: "User Management", user_count: "User count: {{count}}", add_user: "Add New User", edit_user: "Edit User", phone: "Phone Number", phone_placeholder: "09123456789", name: "Name", surname: "Surname", initial_tokens: "Initial Tokens (optional)", initial_requests: "Initial Requests (optional)", balance: "Balance", requests_label: "Requests", tokens_label: "Tokens", token_limit: "Token Limit", request_limit: "Request Limit", tokens_usage: "Tokens Usage", requests_usage: "Requests Usage", actions: "Actions", copy_token: "Copy Token (auto-refresh)", token_copied: "Token copied successfully", no_token: "No token found for this user", recharge: "Recharge Balance", full_charge: "Full Charge", update_balance: "Update Balance", update_balance_for: "Update Balance for", token_count: "Token Count", request_count: "Request Count", updating: "Updating...", no_users: "No users found.", confirm_delete_user: "Are you sure you want to delete this user?", tokens_exceed_limit: "Tokens cannot exceed the specified limit", requests_exceed_limit: "Requests cannot exceed the specified limit", metadata: "Metadata (JSON)", initial_balance: "Initial Balance", custom_fields: "Additional Fields", metadata_raw: "Metadata (Raw JSON)", advanced_usage: "Advanced usage", invalid_json: "Invalid JSON format" }, admins: { title: "Admin Management", admin_count: "Admin count: {{count}}", add_admin: "Add New Admin", edit_admin: "Edit Admin", username: "Username", name: "Name", password: "Password", password_edit: "New Password (leave empty to keep current)", permissions: "Permissions", perm_chat_history: "Chat History", perm_admin_management: "Admin Management", perm_user_management: "User Management", perm_analytics: "Analytics", perm_settings: "Settings", no_admins: "No admins found.", confirm_delete_admin: "Are you sure you want to delete this admin?" }, errors: { access_denied_title: "Access Denied", access_denied_message: "You don't have the necessary permissions to access this page. You can contact the administrator!", back_to_dashboard: "Back to Dashboard" }, login: { title: "Admin Panel", setup_title: "Initial Setup", setup_description: "No admin account exists yet. Set a password for the default admin user to get started.", set_password: "Set Password", set_password_placeholder: "Choose a strong password", confirm_password: "Confirm Password", confirm_password_placeholder: "Re-enter the password", passwords_mismatch: "Passwords do not match", password_too_short: "Password must be at least 4 characters", create_admin: "Create Admin & Login", setting_up: "Setting up...", username: "Username", username_placeholder: "Username", password: "Password", password_placeholder: "••••••••", submit: "Login", logging_in: "Logging in...", error: "Login failed", copyright: "© 2026 AI Chatbot Platform" } }, za = { title: "Settings", sections: { profile: "Profile", general: "General", account: "Account" }, profile: { title: "Profile Information", subtitle: "Update your personal details below.", name: "First Name", surname: "Last Name", phone: "Phone Number", password: "New Password", password_placeholder: "Leave empty to keep current", save: "Save Changes", saving: "Saving...", success: "Profile updated successfully", error: "Failed to update profile", select_placeholder: "Select an option" }, general: { title: "General Settings", subtitle: "Configure look and feel and language.", theme: "Theme", language: "Language", themes: { light: "Light", dark: "Dark", system: "System" }, accent: "Accent Color", radius: "Rounded Corners", radius_levels: { sharp: "Sharp", round: "Round" }, languages: { en: "English", fa: "Persian" } }, account: { title: "Account & Usage", subtitle: "Monitor your quotas and manage your session.", balance: "Current Balance", tokens: "Tokens", requests: "Requests", logout: "Logout", logout_confirm: "Are you sure you want to logout?", last_recharge: "Last balance update on" } }, $a = { unauthorized: "Authentication required. Please login again.", invalid_credentials: "Invalid phone number or password.", phone_required: "Phone number is required.", password_required: "Password is required.", name_surname_required: "Name and surname are required.", phone_already_exists: "This phone number is already registered.", invalid_token: "Your session has expired. Please login again.", user_not_found: "User not found.", insufficient_balance: "Insufficient balance. Please recharge your account.", me_update_failed: "Failed to update profile information.", thread_not_found: "Conversation not found.", access_denied: "You do not have permission to perform this action.", feedback_save_failed: "Failed to save feedback.", thread_update_failed: "Failed to update conversation.", thread_delete_failed: "Failed to delete conversation.", attachment_not_found: "Attachment not found.", thread_share_failed: "Failed to share conversation.", admin_already_exists: "Admin with this username already exists.", admin_not_found: "Admin not found.", cannot_delete_self: "You cannot delete your own admin account.", admin_update_failed: "Failed to update admin information.", internal_error: "An internal server error occurred. Please try again later.", validation_error: "Invalid data provided. Please check your input.", not_found: "The requested resource was not found." }, Ua = {
6241
- sidebar: Oa,
6275
+ const La = { new_conversation: "New conversation", tooltip_new_conversation: "Start a new conversation", delete_conversation: "Delete", delete_confirm_title: "Delete conversation?", delete_confirm_description: "Are you sure you want to delete this chat? This action cannot be undone.", cancel: "Cancel", delete: "Delete", chat_deleted_success: "Chat deleted successfully", logout: "Logout", new_chat: "New Chat", rename_conversation: "Rename", rename_success: "Conversation renamed successfully", rename_failed: "Failed to rename conversation", search_conversations: "Search conversations...", save: "Save", no_conversations: "No conversations yet", loading_more: "Loading more...", pinned_success: "Conversation pinned", unpinned_success: "Conversation unpinned", pin_failed: "Failed to pin conversation", share_success: "Link copied", share_description: "The shareable link has been copied to your clipboard.", share_failed: "Failed to generate share link", pin_conversation: "Pin", unpin_conversation: "Unpin", share_conversation: "Share" }, Fa = { tools: "Tools", error: "Error:", input_placeholder: "Ask something...", insufficient_balance: "Insufficient balance. Please recharge your account to continue.", regenerate: "Regenerate", retry: "Retry", copy: "Copy", like: "Like", dislike: "Dislike", attach_file: "Attach file", remove_file: "Remove file", used_sources: "Used {{count}} sources", welcome: { title: "Hello! How can I help you today?", subtitle: "Ask me anything and I'll do my best to help.", suggestions: ["What can you help me with?", "Tell me something interesting", "Help me write an email", "Explain a concept to me"] }, disclaimer: "AI can make mistakes. Check important info." }, Da = { pending: "Pending", running: "Running", completed: "Completed", error: "Error", parameters: "Parameters", result: "Result", view_error: "View Error", tool_error: "Tool Error", copied: "Copied!", copy_error: "Copy Error" }, Pa = { login_tab: "Login", signup_tab: "Sign Up", phone: "Phone", phone_placeholder: "Phone number", password: "Password", name: "Name", name_placeholder: "First Name", surname: "Surname", surname_placeholder: "Last Name", loading: "Loading...", logging_in: "Logging in...", signing_up: "Signing up...", auth_page_disabled_title: "The sign-in page is currently disabled.", auth_page_disabled_description: "Please contact the administrator for access.", select_placeholder: "Select an option", login_button: "Login", signup_button: "Sign Up" }, Ma = { toggle: "Change theme", light: "Switch to light theme", dark: "Switch to dark theme", system: "Switch to system theme" }, za = { select_placeholder: "Select an option", loading: "Loading...", retry: "Retry", save: "Save", saving: "Saving...", cancel: "Cancel", delete: "Delete", edit: "Edit", search: "Search", search_placeholder: "Search...", no_data: "No data available", loading_more: "Loading more...", confirm_delete: "Are you sure you want to delete?", error_loading: "Error loading data", dashboard: { title: "Admin Panel", logout: "Logout", tabs: { analytics: "Analytics", chat_history: "Chats", users: "Users", admins: "Admins", settings: "Settings" } }, app_settings: { title: "System Settings", subtitle: "Manage global configuration for application appearance and behavior.", sections: { general: "Basic Information", chat: "Chat Experience", user_billing: "User & Billing" }, general: { app_name: "App Name", admin_title: "Admin Panel Title", language: "Default Language", language_help: "The language users see on their first visit (if not auto-detected).", appearance: "Default Appearance", appearance_help: "These values apply when a user has not saved their own appearance preferences.", default_theme: "Default Theme", default_accent: "Default Accent Color", default_accent_help: "Enter any browser-supported CSS color, such as #3b82f6, rgb(59 130 246), or oklch(0.623 0.214 259.815).", default_accent_invalid: "Enter a valid browser-supported CSS color.", default_accent_preview: "Accent color preview" }, chat: { welcome_greeting: "Welcome Greeting", welcome_subtitle: "Welcome Subtitle", disclaimer: "Disclaimer Text", show_tool_details: "Show technical tool details", show_tool_details_help: "Enable this to show professional technical details of AI tools to users.", show_settings: "Show settings icon for users", show_settings_help: "Show a settings gear icon in the chat interface for user customization.", show_version_in_settings: "Show app version in user settings", show_version_in_settings_help: "Show the app version at the bottom of the user settings dialog. This does not affect the admin settings page.", disable_signup: "Disable signup", disable_signup_help: "Hide the signup tab so users can only log in.", disable_auth_page: "Disable login/signup page", disable_auth_page_help: "Hide the entire auth page and prevent users from reaching login or signup forms.", composer_attachments: "Enable File Attachments", composer_attachments_help: "Allow users to upload and attach files to their messages.", thread_actions_feedback: "Enable Feedback Buttons", thread_actions_feedback_help: "Show like/dislike buttons on AI responses.", thread_actions_retry: "Enable Retry Button", thread_actions_retry_help: "Show a retry button to regenerate the last AI response.", history_enabled: "Enable Chat History Sidebar", history_enabled_help: "Show the sidebar containing previous conversations.", history_show_delete: "Allow Deleting Conversations", history_show_rename: "Allow Renaming Conversations", history_show_share: "Allow Sharing Conversations", history_show_pin: "Allow Pinning Conversations", sections_modes: "Settings Tab Modes", sections_modes_help: "Control visibility and interactability of settings tabs for users.", mode_editable: "Enable (Editable)", mode_faded: "Fade (Readonly)", mode_hidden: "Hide (Disable)", general_tab: "General Tab", profile_tab: "Profile Tab", account_tab: "Account Tab", inner_fields_modes: "Inner Fields Visibility", inner_fields_modes_help: "Configure visibility for individual fields within each tab." }, user_billing: { initial_balance_tokens: "Default Initial Tokens", initial_balance_requests: "Default Initial Requests", initial_balance_help: "These values will be assigned to new users by default if not specified during creation." }, save_success: "Settings saved successfully", save_error: "Failed to save settings", save: "Save Changes", translations_management: "Translations Management", editor_tips: "All changes are saved automatically to local state. Don't forget to push 'Save Changes' to persist.", sync_from_code: "Sync from Code", reset_button: "Reset to Defaults", reset_confirm_title: "Reset Settings?", reset_confirm_description: "This will reset all fields to their original default values from the code. Current unsaved changes will be lost.", preview: "Preview", tips_label: "TIPS" }, analytics: { title: "Analytics & Statistics", days: "{{count}} Days", total_users: "Total Users", total_threads: "Total Threads", total_messages: "Total Messages", total_token_usage: "Total Token Usage", threads_chart: "Threads", messages_chart: "Messages", token_usage_chart: "Token Usage", active_users: "Active Users", conversations: "conversations", threads: "threads", feedback: "User Feedback", total_feedback: "Total Feedback", positive: "Positive", negative: "Negative", loading_analytics: "Loading analytics...", error_loading: "Error loading data" }, chat_history: { title: "Chat History Management", search_placeholder: "Search by name, phone, thread title, or ID...", search_button: "Search", threads_list: "Threads List", thread_count: "{{count}}", no_thread_title: "Untitled conversation", messages: "Messages", messages_for: "Messages for: {{title}}", select_thread: "Select a conversation to view", no_threads: "No conversations found", empty_thread: "This conversation is empty", loading_threads: "Loading...", loading_messages: "Loading messages...", user_label: "User", assistant_label: "AI Assistant", input_tokens: "Input: {{value}}", output_tokens: "Output: {{value}}", total_tokens: "Total: {{value}}", all_feedbacks: "All Conversations", liked_feedbacks: "Liked 👍", disliked_feedbacks: "Disliked 👎", any_feedback: "With Feedback", output_available: "Output Available", running: "Running...", unnamed_file: "Unnamed File", download_file: "Download File" }, users: { title: "User Management", user_count: "User count: {{count}}", add_user: "Add New User", edit_user: "Edit User", phone: "Phone Number", phone_placeholder: "09123456789", name: "Name", surname: "Surname", initial_tokens: "Initial Tokens (optional)", initial_requests: "Initial Requests (optional)", balance: "Balance", requests_label: "Requests", tokens_label: "Tokens", token_limit: "Token Limit", request_limit: "Request Limit", tokens_usage: "Tokens Usage", requests_usage: "Requests Usage", actions: "Actions", copy_token: "Copy Token (auto-refresh)", token_copied: "Token copied successfully", no_token: "No token found for this user", recharge: "Recharge Balance", full_charge: "Full Charge", update_balance: "Update Balance", update_balance_for: "Update Balance for", token_count: "Token Count", request_count: "Request Count", updating: "Updating...", no_users: "No users found.", confirm_delete_user: "Are you sure you want to delete this user?", tokens_exceed_limit: "Tokens cannot exceed the specified limit", requests_exceed_limit: "Requests cannot exceed the specified limit", metadata: "Metadata (JSON)", initial_balance: "Initial Balance", custom_fields: "Additional Fields", metadata_raw: "Metadata (Raw JSON)", advanced_usage: "Advanced usage", invalid_json: "Invalid JSON format" }, admins: { title: "Admin Management", admin_count: "Admin count: {{count}}", add_admin: "Add New Admin", edit_admin: "Edit Admin", username: "Username", name: "Name", password: "Password", password_edit: "New Password (leave empty to keep current)", permissions: "Permissions", perm_chat_history: "Chat History", perm_admin_management: "Admin Management", perm_user_management: "User Management", perm_analytics: "Analytics", perm_settings: "Settings", no_admins: "No admins found.", confirm_delete_admin: "Are you sure you want to delete this admin?" }, errors: { access_denied_title: "Access Denied", access_denied_message: "You don't have the necessary permissions to access this page. You can contact the administrator!", back_to_dashboard: "Back to Dashboard" }, login: { title: "Admin Panel", setup_title: "Initial Setup", setup_description: "No admin account exists yet. Set a password for the default admin user to get started.", set_password: "Set Password", set_password_placeholder: "Choose a strong password", confirm_password: "Confirm Password", confirm_password_placeholder: "Re-enter the password", passwords_mismatch: "Passwords do not match", password_too_short: "Password must be at least 4 characters", create_admin: "Create Admin & Login", setting_up: "Setting up...", username: "Username", username_placeholder: "Username", password: "Password", password_placeholder: "••••••••", submit: "Login", logging_in: "Logging in...", error: "Login failed", copyright: "© 2026 AI Chatbot Platform" } }, Ua = { title: "Settings", sections: { profile: "Profile", general: "General", account: "Account" }, profile: { title: "Profile Information", subtitle: "Update your personal details below.", name: "First Name", surname: "Last Name", phone: "Phone Number", password: "New Password", password_placeholder: "Leave empty to keep current", save: "Save Changes", saving: "Saving...", success: "Profile updated successfully", error: "Failed to update profile", select_placeholder: "Select an option" }, general: { title: "General Settings", subtitle: "Configure look and feel and language.", theme: "Theme", language: "Language", themes: { light: "Light", dark: "Dark", system: "System" }, accent: "Accent Color", radius: "Rounded Corners", radius_levels: { sharp: "Sharp", round: "Round" }, languages: { en: "English", fa: "Persian" } }, account: { title: "Account & Usage", subtitle: "Monitor your quotas and manage your session.", balance: "Current Balance", tokens: "Tokens", requests: "Requests", logout: "Logout", logout_confirm: "Are you sure you want to logout?", last_recharge: "Last balance update on" } }, $a = { unauthorized: "Authentication required. Please login again.", invalid_credentials: "Invalid phone number or password.", phone_required: "Phone number is required.", password_required: "Password is required.", name_surname_required: "Name and surname are required.", phone_already_exists: "This phone number is already registered.", invalid_token: "Your session has expired. Please login again.", user_not_found: "User not found.", insufficient_balance: "Insufficient balance. Please recharge your account.", me_update_failed: "Failed to update profile information.", thread_not_found: "Conversation not found.", access_denied: "You do not have permission to perform this action.", feedback_save_failed: "Failed to save feedback.", thread_update_failed: "Failed to update conversation.", thread_delete_failed: "Failed to delete conversation.", attachment_not_found: "Attachment not found.", thread_share_failed: "Failed to share conversation.", model_quota_reached_error: "The system cannot respond at this time. Please try again later.", admin_already_exists: "Admin with this username already exists.", admin_not_found: "Admin not found.", cannot_delete_self: "You cannot delete your own admin account.", admin_update_failed: "Failed to update admin information.", internal_error: "An internal server error occurred. Please try again later.", validation_error: "Invalid data provided. Please check your input.", not_found: "The requested resource was not found." }, Ba = {
6276
+ sidebar: La,
6242
6277
  chat: Fa,
6243
- tools_ui: La,
6244
- login: Da,
6245
- theme: Pa,
6246
- admin: Ma,
6247
- settings: za,
6278
+ tools_ui: Da,
6279
+ login: Pa,
6280
+ theme: Ma,
6281
+ admin: za,
6282
+ settings: Ua,
6248
6283
  errors: $a
6249
- }, Ba = { new_conversation: "گفتگوی جدید", tooltip_new_conversation: "شروع یک گفتگوی جدید", delete_conversation: "حذف", delete_confirm_title: "حذف گفتگو؟", delete_confirm_description: "آیا از حذف این گفتگو اطمینان دارید؟ این عمل قابل بازگشت نیست.", cancel: "انصراف", delete: "حذف", chat_deleted_success: "گفتگو با موفقیت حذف شد", logout: "خروج", new_chat: "گفتگوی جدید", rename_conversation: "تغییر نام", rename_success: "نام گفتگو با موفقیت تغییر کرد", rename_failed: "خطا در تغییر نام گفتگو", search_conversations: "جستجوی گفتگوها...", save: "ذخیره", no_conversations: "هنوز گفتگویی ندارید", loading_more: "در حال بارگذاری...", pinned_success: "گفتگو پین شد", unpinned_success: "گفتگو از حالت پین خارج شد", pin_failed: "خطا در پین کردن گفتگو", share_success: "لینک کپی شد", share_description: "لینک اشتراک‌گذاری در حافظه موقت کپی شد.", share_failed: "خطا در ایجاد لینک اشتراک‌گذاری", pin_conversation: "پین", unpin_conversation: "برداشتن پین", share_conversation: "اشتراک‌گذاری" }, Ha = { tools: "ابزارها", error: "خطا:", input_placeholder: "سوالتو اینجا بپرس...", insufficient_balance: "موجودی حساب شما کافی نیست. لطفا برای ادامه، حساب خود را شارژ کنید.", regenerate: "تولید مجدد", retry: "تلاش مجدد", copy: "کپی", like: "پسندیدم", dislike: "نپسندیدم", attach_file: "پیوست فایل", remove_file: "حذف فایل", used_sources: "از {{count}} منبع استفاده شد", welcome: { title: "سلام! چطور می‌تونم کمکت کنم؟", subtitle: "هر سوالی داری بپرس، تمام تلاشمو می‌کنم کمکت کنم.", suggestions: ["چه کارهایی می‌تونی انجام بدی؟", "یه چیز جالب بهم بگو", "کمکم کن یه ایمیل بنویسم", "یه مفهوم رو برام توضیح بده"] }, disclaimer: "هوش مصنوعی ممکن است اشتباه کند. اطلاعات مهم را بررسی کنید." }, qa = { pending: "در انتظار", running: "در حال اجرا", completed: "تکمیل شده", error: "خطا", parameters: "پارامترها", result: "نتیجه", view_error: "نمایش خطا", tool_error: "خطای ابزار", copied: "کپی شد!", copy_error: "کپی خطا" }, ja = { login_tab: "ورود", signup_tab: "ثبت نام", phone: "شماره تلفن", phone_placeholder: "شماره تلفن", password: "رمز عبور", name: "نام", name_placeholder: "نام", surname: "نام خانوادگی", surname_placeholder: "نام خانوادگی", logging_in: "در حال ورود...", signing_up: "در حال ثبت نام...", auth_page_disabled_title: "صفحه ورود غیرفعال شده است.", auth_page_disabled_description: "برای دسترسی با مدیر سامانه تماس بگیرید.", select_placeholder: "انتخاب کنید", login_button: "ورود", signup_button: "ثبت نام" }, Ga = { toggle: "تغییر تم", light: "تغییر به تم روشن", dark: "تغییر به تم تاریک", system: "تغییر به تم سیستم" }, Va = { select_placeholder: "انتخاب کنید", loading: "در حال بارگذاری...", retry: "تلاش مجدد", save: "ذخیره", saving: "در حال ذخیره...", cancel: "انصراف", delete: "حذف", edit: "ویرایش", search: "جستجو", search_placeholder: "جستجو...", no_data: "داده‌ای موجود نیست", loading_more: "در حال بارگذاری بیشتر...", confirm_delete: "آیا از حذف اطمینان دارید؟", error_loading: "خطا در بارگذاری داده‌ها", dashboard: { title: "پنل ادمین", logout: "خروج", tabs: { analytics: "تحلیل و آمار", chat_history: "گفتگوها", users: "کاربران", admins: "ادمین‌ها", settings: "تنظیمات" } }, app_settings: { title: "تنظیمات سامانه", subtitle: "پیکربندی کلی ظاهر و رفتار سامانه را مدیریت کنید.", sections: { general: "اطلاعات پایه", chat: "تنظیمات گفتگو", user_billing: "کاربری و مالی" }, general: { app_name: "نام سامانه", admin_title: "عنوان پنل ادمین", language: "زبان پیش‌فرض", language_help: "زبانی که کاربر در اولین ورود مشاهده می‌کند (در صورت عدم تشخیص خودکار)." }, chat: { welcome_greeting: "پیام خوش‌آمدگویی", welcome_subtitle: "زیرعنوان خوش‌آمدگویی", disclaimer: "متن سلب مسئولیت", show_tool_details: "نمایش جزئیات فنی ابزارها (Tools)", show_tool_details_help: "برای نمایش جزئیات فنی و نحوه عملکرد ابزارهای هوش مصنوعی به کاربران، این گزینه را فعال کنید.", show_settings: "نمایش آیکون تنظیمات برای کاربران", show_settings_help: "نمایش چرخ‌دنده تنظیمات در محیط چت برای شخصی‌سازی توسط کاربر.", disable_signup: "غیرفعال‌سازی ثبت‌نام", disable_signup_help: "تب ثبت‌نام را مخفی می‌کند تا کاربران فقط بتوانند وارد شوند.", disable_auth_page: "غیرفعال‌سازی صفحه ورود/ثبت‌نام", disable_auth_page_help: "کل صفحه احراز هویت را مخفی می‌کند و دسترسی به فرم‌های ورود و ثبت‌نام را می‌بندد.", composer_attachments: "فعال‌سازی پیوست فایل", composer_attachments_help: "اجازه به کاربران برای آپلود و پیوست فایل به پیام‌ها.", thread_actions_feedback: "فعال‌سازی دکمه‌های بازخورد", thread_actions_feedback_help: "نمایش دکمه‌های پسندیدن/نپسندیدن در پاسخ‌های هوش مصنوعی.", thread_actions_retry: "فعال‌سازی دکمه تلاش مجدد", thread_actions_retry_help: "نمایش دکمه تلاش مجدد برای تولید دوباره آخرین پاسخ هوش مصنوعی.", history_enabled: "فعال‌سازی سایدبار تاریخچه", history_enabled_help: "نمایش منوی کناری شامل گفتگوهای قبلی.", history_show_delete: "اجازه حذف گفتگوها", history_show_rename: "اجازه تغییر نام گفتگوها", history_show_share: "اجازه اشتراک‌گذاری گفتگوها", history_show_pin: "اجازه پین کردن گفتگوها", sections_modes: "وضعیت نمایش تب‌های تنظیمات", sections_modes_help: "کنترل نمایش یا غیرفعال بودن تب‌های مختلف در بخش تنظیمات کاربر.", mode_editable: "فعال (قابل ویرایش)", mode_faded: "محو (فقط خواندنی)", mode_hidden: "مخفی (غیرفعال)", general_tab: "تب عمومی", profile_tab: "تب پروفایل", account_tab: "تب حساب کاربری", inner_fields_modes: "مشاهده‌پذیری فیلدهای داخلی", inner_fields_modes_help: "وضعیت نمایش فیلدهای هر تب را به‌صورت مجزا پیکربندی کنید." }, user_billing: { initial_balance_tokens: "توکن اولیه پیش‌فرض", initial_balance_requests: "تعداد درخواست اولیه پیش‌فرض", initial_balance_help: "این مقادیر به‌صورت خودکار به کاربران جدید اختصاص داده می‌شوند، مگر اینکه هنگام ایجاد کاربر مقدار دیگری تعیین شود." }, save_success: "تنظیمات با موفقیت ذخیره شد", save_error: "خطا در ذخیره‌سازی تنظیمات", save: "ذخیره تغییرات", translations_management: "مدیریت ترجمه‌ها", editor_tips: "تمام تغییرات به‌صورت خودکار در حالت محلی ذخیره می‌شوند. برای نهایی‌سازی، دکمه «ذخیره تغییرات» را بزنید.", sync_from_code: "همگام‌سازی از کد", reset_button: "بازنشانی به تنظیمات اولیه", reset_confirm_title: "بازنشانی تنظیمات؟", reset_confirm_description: "این عمل تمام فیلدها را به مقادیر پیش‌فرض در کد بازمی‌گرداند. تغییرات ذخیره نشده فعلی از بین خواهند رفت.", preview: "پیش‌نمایش", tips_label: "نکته" }, analytics: { title: "تحلیل و آمار", days: "{{count}} روز", total_users: "تعداد کاربران", total_threads: "تعداد گفتگوها", total_messages: "تعداد پیام‌ها", total_token_usage: "مصرف کل توکن", threads_chart: "گفتگوها", messages_chart: "پیام‌ها", token_usage_chart: "مصرف توکن", active_users: "کاربران فعال", conversations: "گفتگو", threads: "گفتگو", feedback: "نظرات کاربران", total_feedback: "کل نظرات", positive: "مثبت", negative: "منفی", loading_analytics: "در حال بارگذاری تحلیل‌ها...", error_loading: "خطا در بارگذاری داده‌ها" }, chat_history: { title: "مدیریت تاریخچه گفتگوها", search_placeholder: "جستجو بر اساس نام، شماره تماس، عنوان گفتگو یا شناسه...", search_button: "جستجو", threads_list: "لیست گفتگوها", thread_count: "{{count}}", no_thread_title: "گفتگو بدون عنوان", messages: "پیام‌ها", messages_for: "پیام‌های گفتگو: {{title}}", select_thread: "یک گفتگو را برای مشاهده انتخاب کنید", no_threads: "هیچ گفتگویی یافت نشد", empty_thread: "این گفتگو خالی است", loading_threads: "در حال بارگذاری...", loading_messages: "در حال بارگذاری پیام‌ها...", user_label: "کاربر", assistant_label: "دستیار هوشمند", input_tokens: "ورودی: {{value}}", output_tokens: "خروجی: {{value}}", total_tokens: "کل: {{value}}", all_feedbacks: "همه گفتگوها", liked_feedbacks: "پسندیده شده 👍", disliked_feedbacks: "نپسندیده شده 👎", any_feedback: "دارای بازخورد", output_available: "خروجی موجود است", running: "در حال اجرا...", unnamed_file: "فایل بدون نام", download_file: "دانلود فایل" }, users: { title: "مدیریت کاربران", user_count: "تعداد کاربران: {{count}}", add_user: "افزودن کاربر جدید", edit_user: "ویرایش کاربر", phone: "شماره تلفن", phone_placeholder: "۰۹۱۲۳۴۵۶۷۸۹", name: "نام", surname: "نام خانوادگی", initial_tokens: "تعداد توکن اولیه (اختیاری)", initial_requests: "تعداد درخواست اولیه (اختیاری)", balance: "موجودی", requests_label: "درخواست‌ها", tokens_label: "توکن‌ها", token_limit: "سقف توکن", request_limit: "سقف درخواست", tokens_usage: "میزان مصرف توکن", requests_usage: "میزان مصرف درخواست", actions: "عملیات", copy_token: "کپی توکن (با بروزرسانی خودکار)", token_copied: "توکن با موفقیت کپی شد", no_token: "توکنی برای این کاربر یافت نشد", recharge: "شارژ موجودی", full_charge: "شارژ کامل", update_balance: "بروزرسانی موجودی", update_balance_for: "بروزرسانی موجودی", token_count: "تعداد توکن", request_count: "تعداد درخواست", updating: "در حال بروزرسانی...", no_users: "هیچ کاربری یافت نشد.", confirm_delete_user: "آیا از حذف این کاربر اطمینان دارید؟", tokens_exceed_limit: "تعداد توکن نمی‌تواند بیشتر از سقف مجاز باشد", requests_exceed_limit: "تعداد درخواست نمی‌تواند بیشتر از سقف مجاز باشد", metadata: "متادیتا (JSON)", initial_balance: "موجودی اولیه", custom_fields: "فیلدهای اضافه", metadata_raw: "متادیتا (JSON خام)", advanced_usage: "استفاده پیشرفته", invalid_json: "فرمت JSON نامعتبر است" }, admins: { title: "مدیریت ادمین‌ها", admin_count: "تعداد ادمین‌ها: {{count}}", add_admin: "افزودن ادمین جدید", edit_admin: "ویرایش ادمین", username: "نام کاربری", name: "نام", password: "رمز عبور", password_edit: "رمز عبور جدید (خالی بگذارید تا تغییر نکند)", permissions: "دسترسی‌ها", perm_chat_history: "تاریخچه گفتگوها", perm_admin_management: "مدیریت ادمین‌ها", perm_user_management: "مدیریت کاربران", perm_analytics: "تحلیل و آمار", perm_settings: "تنظیمات", no_admins: "هیچ ادمینی یافت نشد.", confirm_delete_admin: "آیا از حذف این ادمین اطمینان دارید؟" }, errors: { access_denied_title: "عدم دسترسی", access_denied_message: "شما مجوزهای لازم برای دسترسی به این صفحه را ندارید. می‌توانید با مدیر سیستم تماس بگیرید.", back_to_dashboard: "بازگشت به پیشخوان" }, login: { title: "پنل ادمین", setup_title: "راه‌اندازی اولیه", setup_description: "هنوز حساب ادمینی وجود ندارد. برای شروع، یک رمز عبور برای کاربر ادمین پیش‌فرض تنظیم کنید.", set_password: "تعیین رمز عبور", set_password_placeholder: "یک رمز عبور قوی انتخاب کنید", confirm_password: "تأیید رمز عبور", confirm_password_placeholder: "رمز عبور را دوباره وارد کنید", passwords_mismatch: "رمزهای عبور مطابقت ندارند", password_too_short: "رمز عبور باید حداقل ۴ کاراکتر باشد", create_admin: "ایجاد ادمین و ورود", setting_up: "در حال راه‌اندازی...", username: "نام کاربری", username_placeholder: "نام کاربری", password: "رمز عبور", password_placeholder: "••••••••", submit: "ورود به پنل", logging_in: "در حال ورود...", error: "خطا در ورود", copyright: "© ۲۰۲۶ پلتفرم چت‌بات هوشمند" } }, Wa = { title: "تنظیمات", sections: { profile: "پروفایل", general: "عمومی", account: "حساب کاربری" }, profile: { title: "اطلاعات پروفایل", subtitle: "اطلاعات شخصی خود را در زیر بروز کنید.", name: "نام", surname: "نام خانوادگی", phone: "شماره تلفن", password: "رمز عبور جدید", password_placeholder: "برای عدم تغییر خالی بگذارید", save: "ذخیره تغییرات", saving: "در حال ذخیره...", success: "پروفایل با موفقیت بروزرسانی شد", error: "خطا در بروزرسانی پروفایل", select_placeholder: "انتخاب کنید" }, general: { title: "تنظیمات عمومی", subtitle: "ظاهر و زبان برنامه را تنظیم کنید.", theme: "تم", language: "زبان", themes: { light: "روشن", dark: "تاریک", system: "سیستم" }, accent: "رنگ اصلی", radius: "میزان گردی لبه‌ها", radius_levels: { sharp: "تیز", round: "گرد" }, languages: { en: "English", fa: "فارسی" } }, account: { title: "حساب و میزان مصرف", subtitle: "سهمیه مصرف و نشست خود را مدیریت کنید.", balance: "موجود فعلی", tokens: "توکن‌ها", requests: "درخواست‌ها", logout: "خروج از حساب", logout_confirm: "آیا از خروج اطمینان دارید؟", last_recharge: "آخرین بروزرسانی اعتبار در تاریخ" } }, Ya = { unauthorized: "دسترسی مجاز نیست. لطفاً دوباره وارد شوید.", invalid_credentials: "شماره تلفن یا رمز عبور اشتباه است.", phone_required: "شماره تلفن الزامی است.", password_required: "رمز عبور الزامی است.", name_surname_required: "نام و نام خانوادگی الزامی است.", phone_already_exists: "این شماره تلفن قبلاً ثبت شده است.", invalid_token: "نشست شما منقضی شده است. لطفاً دوباره وارد شوید.", user_not_found: "کاربر یافت نشد.", insufficient_balance: "موجودی کافی نیست. لطفاً حساب خود را شارژ کنید.", me_update_failed: "خطا در بروزرسانی اطلاعات پروفایل.", thread_not_found: "گفتگو یافت نشد.", access_denied: "شما اجازه انجام این عملیات را ندارید.", feedback_save_failed: "خطا در ثبت بازخورد.", thread_update_failed: "خطا در بروزرسانی گفتگو.", thread_delete_failed: "خطا در حذف گفتگو.", attachment_not_found: "فایل پیوست یافت نشد.", thread_share_failed: "خطا در اشتراک‌گذاری گفتگو.", admin_already_exists: "ادمین با این نام کاربری قبلاً ایجاد شده است.", admin_not_found: "ادمین یافت نشد.", cannot_delete_self: "شما نمی‌توانید حساب مدیریت خود را حذف کنید.", admin_update_failed: "خطا در بروزرسانی اطلاعات ادمین.", internal_error: "یک خطای داخلی در سرور رخ داده است. لطفاً بعداً تلاش کنید.", validation_error: "داده‌های ارسالی معتبر نیستند. لطفاً ورودی‌های خود را بررسی کنید.", not_found: "منبع مورد نظر یافت نشد." }, Xa = {
6250
- sidebar: Ba,
6251
- chat: Ha,
6252
- tools_ui: qa,
6253
- login: ja,
6254
- theme: Ga,
6255
- admin: Va,
6256
- settings: Wa,
6257
- errors: Ya
6258
- }, Ka = {
6259
- en: Ua,
6260
- fa: Xa
6261
- }, Za = Fn.createInstance();
6262
- Za.use(sn).use(un).init({
6263
- resources: Ka,
6284
+ }, Ha = { new_conversation: "گفتگوی جدید", tooltip_new_conversation: "شروع یک گفتگوی جدید", delete_conversation: "حذف", delete_confirm_title: "حذف گفتگو؟", delete_confirm_description: "آیا از حذف این گفتگو اطمینان دارید؟ این عمل قابل بازگشت نیست.", cancel: "انصراف", delete: "حذف", chat_deleted_success: "گفتگو با موفقیت حذف شد", logout: "خروج", new_chat: "گفتگوی جدید", rename_conversation: "تغییر نام", rename_success: "نام گفتگو با موفقیت تغییر کرد", rename_failed: "خطا در تغییر نام گفتگو", search_conversations: "جستجوی گفتگوها...", save: "ذخیره", no_conversations: "هنوز گفتگویی ندارید", loading_more: "در حال بارگذاری...", pinned_success: "گفتگو پین شد", unpinned_success: "گفتگو از حالت پین خارج شد", pin_failed: "خطا در پین کردن گفتگو", share_success: "لینک کپی شد", share_description: "لینک اشتراک‌گذاری در حافظه موقت کپی شد.", share_failed: "خطا در ایجاد لینک اشتراک‌گذاری", pin_conversation: "پین", unpin_conversation: "برداشتن پین", share_conversation: "اشتراک‌گذاری" }, qa = { tools: "ابزارها", error: "خطا:", input_placeholder: "سوالتو اینجا بپرس...", insufficient_balance: "موجودی حساب شما کافی نیست. لطفا برای ادامه، حساب خود را شارژ کنید.", regenerate: "تولید مجدد", retry: "تلاش مجدد", copy: "کپی", like: "پسندیدم", dislike: "نپسندیدم", attach_file: "پیوست فایل", remove_file: "حذف فایل", used_sources: "از {{count}} منبع استفاده شد", welcome: { title: "سلام! چطور می‌تونم کمکت کنم؟", subtitle: "هر سوالی داری بپرس، تمام تلاشمو می‌کنم کمکت کنم.", suggestions: ["چه کارهایی می‌تونی انجام بدی؟", "یه چیز جالب بهم بگو", "کمکم کن یه ایمیل بنویسم", "یه مفهوم رو برام توضیح بده"] }, disclaimer: "هوش مصنوعی ممکن است اشتباه کند. اطلاعات مهم را بررسی کنید." }, ja = { pending: "در انتظار", running: "در حال اجرا", completed: "تکمیل شده", error: "خطا", parameters: "پارامترها", result: "نتیجه", view_error: "نمایش خطا", tool_error: "خطای ابزار", copied: "کپی شد!", copy_error: "کپی خطا" }, Ga = { login_tab: "ورود", signup_tab: "ثبت نام", phone: "شماره تلفن", phone_placeholder: "شماره تلفن", password: "رمز عبور", name: "نام", name_placeholder: "نام", surname: "نام خانوادگی", surname_placeholder: "نام خانوادگی", logging_in: "در حال ورود...", signing_up: "در حال ثبت نام...", auth_page_disabled_title: "صفحه ورود غیرفعال شده است.", auth_page_disabled_description: "برای دسترسی با مدیر سامانه تماس بگیرید.", select_placeholder: "انتخاب کنید", login_button: "ورود", signup_button: "ثبت نام" }, Va = { toggle: "تغییر تم", light: "تغییر به تم روشن", dark: "تغییر به تم تاریک", system: "تغییر به تم سیستم" }, Wa = { select_placeholder: "انتخاب کنید", loading: "در حال بارگذاری...", retry: "تلاش مجدد", save: "ذخیره", saving: "در حال ذخیره...", cancel: "انصراف", delete: "حذف", edit: "ویرایش", search: "جستجو", search_placeholder: "جستجو...", no_data: "داده‌ای موجود نیست", loading_more: "در حال بارگذاری بیشتر...", confirm_delete: "آیا از حذف اطمینان دارید؟", error_loading: "خطا در بارگذاری داده‌ها", dashboard: { title: "پنل ادمین", logout: "خروج", tabs: { analytics: "تحلیل و آمار", chat_history: "گفتگوها", users: "کاربران", admins: "ادمین‌ها", settings: "تنظیمات" } }, app_settings: { title: "تنظیمات سامانه", subtitle: "پیکربندی کلی ظاهر و رفتار سامانه را مدیریت کنید.", sections: { general: "اطلاعات پایه", chat: "تنظیمات گفتگو", user_billing: "کاربری و مالی" }, general: { app_name: "نام سامانه", admin_title: "عنوان پنل ادمین", language: "زبان پیش‌فرض", language_help: "زبانی که کاربر در اولین ورود مشاهده می‌کند (در صورت عدم تشخیص خودکار).", appearance: "ظاهر پیش‌فرض", appearance_help: "این مقادیر زمانی اعمال می‌شوند که کاربر تنظیمات ظاهری خود را ذخیره نکرده باشد.", default_theme: "پوسته پیش‌فرض", default_accent: "رنگ اصلی پیش‌فرض", default_accent_help: "هر رنگ CSS پشتیبانی‌شده توسط مرورگر را وارد کنید؛ مانند #3b82f6 یا rgb(59 130 246).", default_accent_invalid: "یک رنگ CSS معتبر و پشتیبانی‌شده توسط مرورگر وارد کنید.", default_accent_preview: "پیش‌نمایش رنگ اصلی" }, chat: { welcome_greeting: "پیام خوش‌آمدگویی", welcome_subtitle: "زیرعنوان خوش‌آمدگویی", disclaimer: "متن سلب مسئولیت", show_tool_details: "نمایش جزئیات فنی ابزارها (Tools)", show_tool_details_help: "برای نمایش جزئیات فنی و نحوه عملکرد ابزارهای هوش مصنوعی به کاربران، این گزینه را فعال کنید.", show_settings: "نمایش آیکون تنظیمات برای کاربران", show_settings_help: "نمایش چرخ‌دنده تنظیمات در محیط چت برای شخصی‌سازی توسط کاربر.", show_version_in_settings: "نمایش نسخه برنامه در تنظیمات کاربر", show_version_in_settings_help: "نسخه برنامه را در پایین پنجره تنظیمات کاربر نمایش می‌دهد. این گزینه روی صفحه تنظیمات ادمین اثری ندارد.", disable_signup: "غیرفعال‌سازی ثبت‌نام", disable_signup_help: "تب ثبت‌نام را مخفی می‌کند تا کاربران فقط بتوانند وارد شوند.", disable_auth_page: "غیرفعال‌سازی صفحه ورود/ثبت‌نام", disable_auth_page_help: "کل صفحه احراز هویت را مخفی می‌کند و دسترسی به فرم‌های ورود و ثبت‌نام را می‌بندد.", composer_attachments: "فعال‌سازی پیوست فایل", composer_attachments_help: "اجازه به کاربران برای آپلود و پیوست فایل به پیام‌ها.", thread_actions_feedback: "فعال‌سازی دکمه‌های بازخورد", thread_actions_feedback_help: "نمایش دکمه‌های پسندیدن/نپسندیدن در پاسخ‌های هوش مصنوعی.", thread_actions_retry: "فعال‌سازی دکمه تلاش مجدد", thread_actions_retry_help: "نمایش دکمه تلاش مجدد برای تولید دوباره آخرین پاسخ هوش مصنوعی.", history_enabled: "فعال‌سازی سایدبار تاریخچه", history_enabled_help: "نمایش منوی کناری شامل گفتگوهای قبلی.", history_show_delete: "اجازه حذف گفتگوها", history_show_rename: "اجازه تغییر نام گفتگوها", history_show_share: "اجازه اشتراک‌گذاری گفتگوها", history_show_pin: "اجازه پین کردن گفتگوها", sections_modes: "وضعیت نمایش تب‌های تنظیمات", sections_modes_help: "کنترل نمایش یا غیرفعال بودن تب‌های مختلف در بخش تنظیمات کاربر.", mode_editable: "فعال (قابل ویرایش)", mode_faded: "محو (فقط خواندنی)", mode_hidden: "مخفی (غیرفعال)", general_tab: "تب عمومی", profile_tab: "تب پروفایل", account_tab: "تب حساب کاربری", inner_fields_modes: "مشاهده‌پذیری فیلدهای داخلی", inner_fields_modes_help: "وضعیت نمایش فیلدهای هر تب را به‌صورت مجزا پیکربندی کنید." }, user_billing: { initial_balance_tokens: "توکن اولیه پیش‌فرض", initial_balance_requests: "تعداد درخواست اولیه پیش‌فرض", initial_balance_help: "این مقادیر به‌صورت خودکار به کاربران جدید اختصاص داده می‌شوند، مگر اینکه هنگام ایجاد کاربر مقدار دیگری تعیین شود." }, save_success: "تنظیمات با موفقیت ذخیره شد", save_error: "خطا در ذخیره‌سازی تنظیمات", save: "ذخیره تغییرات", translations_management: "مدیریت ترجمه‌ها", editor_tips: "تمام تغییرات به‌صورت خودکار در حالت محلی ذخیره می‌شوند. برای نهایی‌سازی، دکمه «ذخیره تغییرات» را بزنید.", sync_from_code: "همگام‌سازی از کد", reset_button: "بازنشانی به تنظیمات اولیه", reset_confirm_title: "بازنشانی تنظیمات؟", reset_confirm_description: "این عمل تمام فیلدها را به مقادیر پیش‌فرض در کد بازمی‌گرداند. تغییرات ذخیره نشده فعلی از بین خواهند رفت.", preview: "پیش‌نمایش", tips_label: "نکته" }, analytics: { title: "تحلیل و آمار", days: "{{count}} روز", total_users: "تعداد کاربران", total_threads: "تعداد گفتگوها", total_messages: "تعداد پیام‌ها", total_token_usage: "مصرف کل توکن", threads_chart: "گفتگوها", messages_chart: "پیام‌ها", token_usage_chart: "مصرف توکن", active_users: "کاربران فعال", conversations: "گفتگو", threads: "گفتگو", feedback: "نظرات کاربران", total_feedback: "کل نظرات", positive: "مثبت", negative: "منفی", loading_analytics: "در حال بارگذاری تحلیل‌ها...", error_loading: "خطا در بارگذاری داده‌ها" }, chat_history: { title: "مدیریت تاریخچه گفتگوها", search_placeholder: "جستجو بر اساس نام، شماره تماس، عنوان گفتگو یا شناسه...", search_button: "جستجو", threads_list: "لیست گفتگوها", thread_count: "{{count}}", no_thread_title: "گفتگو بدون عنوان", messages: "پیام‌ها", messages_for: "پیام‌های گفتگو: {{title}}", select_thread: "یک گفتگو را برای مشاهده انتخاب کنید", no_threads: "هیچ گفتگویی یافت نشد", empty_thread: "این گفتگو خالی است", loading_threads: "در حال بارگذاری...", loading_messages: "در حال بارگذاری پیام‌ها...", user_label: "کاربر", assistant_label: "دستیار هوشمند", input_tokens: "ورودی: {{value}}", output_tokens: "خروجی: {{value}}", total_tokens: "کل: {{value}}", all_feedbacks: "همه گفتگوها", liked_feedbacks: "پسندیده شده 👍", disliked_feedbacks: "نپسندیده شده 👎", any_feedback: "دارای بازخورد", output_available: "خروجی موجود است", running: "در حال اجرا...", unnamed_file: "فایل بدون نام", download_file: "دانلود فایل" }, users: { title: "مدیریت کاربران", user_count: "تعداد کاربران: {{count}}", add_user: "افزودن کاربر جدید", edit_user: "ویرایش کاربر", phone: "شماره تلفن", phone_placeholder: "۰۹۱۲۳۴۵۶۷۸۹", name: "نام", surname: "نام خانوادگی", initial_tokens: "تعداد توکن اولیه (اختیاری)", initial_requests: "تعداد درخواست اولیه (اختیاری)", balance: "موجودی", requests_label: "درخواست‌ها", tokens_label: "توکن‌ها", token_limit: "سقف توکن", request_limit: "سقف درخواست", tokens_usage: "میزان مصرف توکن", requests_usage: "میزان مصرف درخواست", actions: "عملیات", copy_token: "کپی توکن (با بروزرسانی خودکار)", token_copied: "توکن با موفقیت کپی شد", no_token: "توکنی برای این کاربر یافت نشد", recharge: "شارژ موجودی", full_charge: "شارژ کامل", update_balance: "بروزرسانی موجودی", update_balance_for: "بروزرسانی موجودی", token_count: "تعداد توکن", request_count: "تعداد درخواست", updating: "در حال بروزرسانی...", no_users: "هیچ کاربری یافت نشد.", confirm_delete_user: "آیا از حذف این کاربر اطمینان دارید؟", tokens_exceed_limit: "تعداد توکن نمی‌تواند بیشتر از سقف مجاز باشد", requests_exceed_limit: "تعداد درخواست نمی‌تواند بیشتر از سقف مجاز باشد", metadata: "متادیتا (JSON)", initial_balance: "موجودی اولیه", custom_fields: "فیلدهای اضافه", metadata_raw: "متادیتا (JSON خام)", advanced_usage: "استفاده پیشرفته", invalid_json: "فرمت JSON نامعتبر است" }, admins: { title: "مدیریت ادمین‌ها", admin_count: "تعداد ادمین‌ها: {{count}}", add_admin: "افزودن ادمین جدید", edit_admin: "ویرایش ادمین", username: "نام کاربری", name: "نام", password: "رمز عبور", password_edit: "رمز عبور جدید (خالی بگذارید تا تغییر نکند)", permissions: "دسترسی‌ها", perm_chat_history: "تاریخچه گفتگوها", perm_admin_management: "مدیریت ادمین‌ها", perm_user_management: "مدیریت کاربران", perm_analytics: "تحلیل و آمار", perm_settings: "تنظیمات", no_admins: "هیچ ادمینی یافت نشد.", confirm_delete_admin: "آیا از حذف این ادمین اطمینان دارید؟" }, errors: { access_denied_title: "عدم دسترسی", access_denied_message: "شما مجوزهای لازم برای دسترسی به این صفحه را ندارید. می‌توانید با مدیر سیستم تماس بگیرید.", back_to_dashboard: "بازگشت به پیشخوان" }, login: { title: "پنل ادمین", setup_title: "راه‌اندازی اولیه", setup_description: "هنوز حساب ادمینی وجود ندارد. برای شروع، یک رمز عبور برای کاربر ادمین پیش‌فرض تنظیم کنید.", set_password: "تعیین رمز عبور", set_password_placeholder: "یک رمز عبور قوی انتخاب کنید", confirm_password: "تأیید رمز عبور", confirm_password_placeholder: "رمز عبور را دوباره وارد کنید", passwords_mismatch: "رمزهای عبور مطابقت ندارند", password_too_short: "رمز عبور باید حداقل ۴ کاراکتر باشد", create_admin: "ایجاد ادمین و ورود", setting_up: "در حال راه‌اندازی...", username: "نام کاربری", username_placeholder: "نام کاربری", password: "رمز عبور", password_placeholder: "••••••••", submit: "ورود به پنل", logging_in: "در حال ورود...", error: "خطا در ورود", copyright: "© ۲۰۲۶ پلتفرم چت‌بات هوشمند" } }, Ya = { title: "تنظیمات", sections: { profile: "پروفایل", general: "عمومی", account: "حساب کاربری" }, profile: { title: "اطلاعات پروفایل", subtitle: "اطلاعات شخصی خود را در زیر بروز کنید.", name: "نام", surname: "نام خانوادگی", phone: "شماره تلفن", password: "رمز عبور جدید", password_placeholder: "برای عدم تغییر خالی بگذارید", save: "ذخیره تغییرات", saving: "در حال ذخیره...", success: "پروفایل با موفقیت بروزرسانی شد", error: "خطا در بروزرسانی پروفایل", select_placeholder: "انتخاب کنید" }, general: { title: "تنظیمات عمومی", subtitle: "ظاهر و زبان برنامه را تنظیم کنید.", theme: "تم", language: "زبان", themes: { light: "روشن", dark: "تاریک", system: "سیستم" }, accent: "رنگ اصلی", radius: "میزان گردی لبه‌ها", radius_levels: { sharp: "تیز", round: "گرد" }, languages: { en: "English", fa: "فارسی" } }, account: { title: "حساب و میزان مصرف", subtitle: "سهمیه مصرف و نشست خود را مدیریت کنید.", balance: "موجود فعلی", tokens: "توکن‌ها", requests: "درخواست‌ها", logout: "خروج از حساب", logout_confirm: "آیا از خروج اطمینان دارید؟", last_recharge: "آخرین بروزرسانی اعتبار در تاریخ" } }, Xa = { unauthorized: "دسترسی مجاز نیست. لطفاً دوباره وارد شوید.", invalid_credentials: "شماره تلفن یا رمز عبور اشتباه است.", phone_required: "شماره تلفن الزامی است.", password_required: "رمز عبور الزامی است.", name_surname_required: "نام و نام خانوادگی الزامی است.", phone_already_exists: "این شماره تلفن قبلاً ثبت شده است.", invalid_token: "نشست شما منقضی شده است. لطفاً دوباره وارد شوید.", user_not_found: "کاربر یافت نشد.", insufficient_balance: "موجودی کافی نیست. لطفاً حساب خود را شارژ کنید.", me_update_failed: "خطا در بروزرسانی اطلاعات پروفایل.", thread_not_found: "گفتگو یافت نشد.", access_denied: "شما اجازه انجام این عملیات را ندارید.", feedback_save_failed: "خطا در ثبت بازخورد.", thread_update_failed: "خطا در بروزرسانی گفتگو.", thread_delete_failed: "خطا در حذف گفتگو.", attachment_not_found: "فایل پیوست یافت نشد.", thread_share_failed: "خطا در اشتراک‌گذاری گفتگو.", model_quota_reached_error: "سامانه در حال حاضر قادر به پاسخ‌گویی نیست. لطفاً بعداً دوباره تلاش کنید.", admin_already_exists: "ادمین با این نام کاربری قبلاً ایجاد شده است.", admin_not_found: "ادمین یافت نشد.", cannot_delete_self: "شما نمی‌توانید حساب مدیریت خود را حذف کنید.", admin_update_failed: "خطا در بروزرسانی اطلاعات ادمین.", internal_error: "یک خطای داخلی در سرور رخ داده است. لطفاً بعداً تلاش کنید.", validation_error: "داده‌های ارسالی معتبر نیستند. لطفاً ورودی‌های خود را بررسی کنید.", not_found: "منبع مورد نظر یافت نشد." }, Ka = {
6285
+ sidebar: Ha,
6286
+ chat: qa,
6287
+ tools_ui: ja,
6288
+ login: Ga,
6289
+ theme: Va,
6290
+ admin: Wa,
6291
+ settings: Ya,
6292
+ errors: Xa
6293
+ }, Za = {
6294
+ en: Ba,
6295
+ fa: Ka
6296
+ }, Ja = Ln.createInstance();
6297
+ Ja.use(sn).use(un).init({
6298
+ resources: Za,
6264
6299
  fallbackLng: "en",
6265
6300
  returnNull: !1,
6266
6301
  returnEmptyString: !1,
@@ -6274,13 +6309,13 @@ Za.use(sn).use(un).init({
6274
6309
  caches: ["localStorage"]
6275
6310
  }
6276
6311
  });
6277
- function Ni({ className: e, type: t, ...n }) {
6312
+ function Ti({ className: e, type: t, ...n }) {
6278
6313
  return /* @__PURE__ */ i(
6279
6314
  "input",
6280
6315
  {
6281
6316
  type: t,
6282
6317
  "data-slot": "input",
6283
- className: k(
6318
+ className: y(
6284
6319
  "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
6285
6320
  "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
6286
6321
  "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
@@ -6290,60 +6325,60 @@ function Ni({ className: e, type: t, ...n }) {
6290
6325
  }
6291
6326
  );
6292
6327
  }
6293
- const Ti = "data:image/svg+xml,%3csvg%20version='1.2'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201280%201280'%20width='500'%20height='500'%3e%3cstyle%3e%20.s0%20{%20opacity:%201;fill:%20%2317535d%20}%20.s1%20{%20opacity:%20.99;fill:%20%23fab185%20}%20%3c/style%3e%3cg%20id='gentiq%20(7)'%3e%3cpath%20id='Path%201'%20fill-rule='evenodd'%20class='s0'%20d='m616.5%2012.22c19.25-0.09%2038.15%200.29%2042%200.84%203.85%200.54%2011.73%201.43%2017.5%201.98%205.77%200.55%2016.35%201.85%2023.5%202.91%207.15%201.05%2016.6%202.62%2021%203.49%204.4%200.88%209.8%202.02%2012%202.53%202.2%200.52%207.15%201.65%2011%202.5%203.85%200.86%208.58%202%2010.5%202.54%201.92%200.54%207.77%202.15%2013%203.6%205.23%201.44%2016.02%204.77%2024%207.4%207.98%202.63%2017.65%205.99%2021.5%207.48%203.85%201.48%2011.95%204.74%2018%207.24%206.05%202.5%2014.6%206.16%2019%208.14%204.4%201.98%2013.4%206.35%2020%209.72%206.6%203.36%2014.48%207.47%2017.5%209.11%203.02%201.65%2011.35%206.5%2018.5%2010.77%207.15%204.27%2018.17%2011.2%2024.49%2015.4%206.32%204.2%2012.17%208.16%2013%208.82%200.83%200.65%207.36%205.55%2014.51%2010.88%207.15%205.33%2013.23%209.97%2013.5%2010.31%200.27%200.34%202.73%202.42%205.45%204.62%202.72%202.2%205.43%204.45%206.02%205%200.59%200.55%204.89%204.35%209.55%208.45%204.67%204.1%2015.04%2014%2023.05%2022%208.02%208%2018.22%2018.6%2022.67%2023.55%204.46%204.95%2011.4%2013.07%2015.43%2018.04%204.03%204.97%2011.43%2014.42%2016.43%2021%205.01%206.58%2012.65%2017.36%2016.97%2023.96%204.33%206.6%208.56%2013.15%209.4%2014.57%200.84%201.41%204.08%206.81%207.19%2012%203.11%205.18%207.29%2012.36%209.29%2015.93%202%203.57%207.6%2014.6%2012.44%2024.5%204.84%209.9%2010.51%2022.05%2012.6%2027%202.08%204.95%204.36%2010.35%205.07%2012%200.71%201.65%202.26%205.48%203.44%208.5%201.19%203.02%204.44%2012.25%207.22%2020.5%202.79%208.25%205.42%2016.35%205.84%2018%200.43%201.65%201.72%206.15%202.87%2010%201.15%203.85%203.86%2014.43%206.03%2023.5%202.16%209.07%204.38%2019.2%204.94%2022.5%200.56%203.3%201.5%208.7%202.1%2012%200.59%203.3%201.68%2010.05%202.43%2015%200.74%204.95%201.85%2013.27%202.47%2018.5%200.61%205.23%201.56%2018.95%202.11%2030.5%200.55%2011.55%200.99%2034.61%200.99%2051.25%200%2019.16-0.37%2030.43-1%2030.75-0.55%200.27-1%202.64-1.01%205.25%200%202.61-0.43%207.45-0.96%2010.75-0.52%203.3-1.7%2011.17-2.62%2017.5-0.92%206.33-2.02%2013.52-2.44%2016-0.43%202.48-1.29%207.42-1.93%2011-0.63%203.58-2.7%2013.02-4.6%2021-1.9%207.98-3.93%2016.3-4.51%2018.5-0.58%202.2-2.41%208.5-4.05%2014-1.64%205.5-4.8%2015.4-7.01%2022-2.21%206.6-4.39%2012.9-4.85%2014-0.46%201.1-2.22%205.71-3.92%2010.25-1.71%204.54-3.44%208.24-3.85%208.22-0.41-0.02-2.55-1.5-4.75-3.29-2.2-1.8-6.25-4.85-9-6.79-2.75-1.94-9.95-6.45-16-10.03-6.05-3.58-14.83-8.34-19.5-10.57-4.67-2.23-10.64-5.01-13.25-6.18-2.61-1.16-8.91-3.51-14-5.21-5.09-1.71-10.71-3.51-12.5-4-1.79-0.5-4.94-1.38-7-1.96-2.06-0.58-6.9-1.73-10.75-2.54-3.85-0.82-9.47-1.94-12.5-2.48-3.02-0.54-10.9-1.64-17.5-2.44-6.6-0.81-18.52-1.46-26.5-1.45-7.98%200-20.13%200.68-27%201.5-6.88%200.81-13.85%201.75-15.5%202.08-1.65%200.32-7.27%201.43-12.5%202.47-5.23%201.04-12.65%202.83-16.5%203.98-3.85%201.16-9.02%202.67-11.5%203.38-2.48%200.7-9.45%203.31-15.5%205.8-6.05%202.49-14.6%206.3-19%208.46-4.4%202.17-12.05%206.39-17%209.38-4.95%203-13.5%208.66-19%2012.58-5.5%203.92-12.7%209.48-16%2012.36-3.3%202.88-8.88%207.99-12.41%2011.36-3.52%203.36-9.6%209.72-13.5%2014.12-3.9%204.4-7.32%208.23-7.59%208.5-0.27%200.27-2.09%202.52-4.04%205-1.94%202.48-4.39%205.85-5.43%207.5-1.04%201.65-2.38%203.47-2.96%204.05-0.59%200.58-3.12%204.4-5.63%208.5-2.5%204.1-5.89%209.7-7.53%2012.45-1.63%202.75-4.16%207.48-5.61%2010.5-1.45%203.02-4.03%208.42-5.73%2012-1.71%203.58-3.1%206.95-3.09%207.5%200%200.55-0.69%202.35-1.54%204-0.85%201.65-2.83%206.83-4.39%2011.5-1.56%204.67-4.24%2014.12-5.95%2021-1.71%206.87-4.01%2019.25-5.1%2027.5-1.42%2010.7-1.99%2020.73-1.99%2035%200%2014.2%200.58%2024.35%201.98%2035%201.09%208.25%203.53%2021.08%205.43%2028.5%201.9%207.42%204.63%2016.87%206.07%2021%201.44%204.12%203.03%208.4%203.54%209.5%200.5%201.1%201.87%204.47%203.03%207.5%201.16%203.03%204.23%209.78%206.82%2015%202.59%205.22%205.48%2010.62%206.42%2012%200.94%201.37%201.73%202.72%201.74%203%200.01%200.28-1.91%201.07-4.26%201.77-2.35%200.7-8.55%202.17-13.78%203.28-5.23%201.11-11.98%202.47-15%203.03-3.02%200.55-7.75%201.43-10.5%201.95-2.75%200.52-10.63%201.65-17.5%202.53-6.88%200.87-16.33%202-21%202.5-4.67%200.5-17.27%201.4-28%202.01-11.32%200.65-29.56%200.85-43.5%200.48-13.2-0.35-27.83-1.06-32.5-1.57-4.67-0.52-14.8-1.66-22.5-2.54-7.7-0.88-17.6-2.21-22-2.95-4.4-0.75-14.98-2.78-23.5-4.5-8.52-1.73-18.88-4.05-23-5.15-4.13-1.1-10.2-2.68-13.5-3.51-3.3-0.83-10.27-2.86-15.5-4.51-5.23-1.65-12.88-4.1-17-5.45-4.13-1.35-8.4-2.85-9.5-3.33-1.1-0.47-6.5-2.54-12-4.6-5.5-2.05-11.8-4.52-14-5.49-2.2-0.97-8.73-3.88-14.5-6.47-5.77-2.59-15.45-7.18-21.5-10.21-6.05-3.02-14.38-7.3-18.5-9.51-4.13-2.2-7.95-4.36-8.5-4.78-0.55-0.42-3.25-2.02-6-3.54-2.75-1.52-12.65-7.69-22-13.71-9.35-6.02-23.75-16.02-32-22.22-8.25-6.21-16.78-12.8-18.96-14.65-2.18-1.85-8.68-7.41-14.44-12.36-5.77-4.95-17.28-15.75-25.58-24-8.3-8.25-17.33-17.48-20.07-20.5-2.74-3.02-7.71-8.65-11.05-12.5-3.34-3.85-9.97-11.95-14.75-18-4.77-6.05-9.02-11.45-9.44-12-0.42-0.55-3.51-4.83-6.87-9.5-3.36-4.67-8.78-12.55-12.05-17.5-3.26-4.95-8.45-13.05-11.52-18-3.07-4.95-8.47-14.17-11.99-20.5-3.53-6.33-9.38-17.58-13-25-3.63-7.42-7.59-15.75-8.8-18.5-1.21-2.75-3.22-7.25-4.45-10-1.24-2.75-2.6-6.13-3.02-7.5-0.43-1.38-1.6-4.3-2.61-6.5-1.01-2.2-3.68-9.17-5.94-15.5-2.27-6.33-4.71-13.3-5.43-15.5-0.73-2.2-2.52-8.05-3.99-13-1.46-4.95-3.06-10.13-3.55-11.5-0.49-1.38-2.5-9.25-4.47-17.5-1.98-8.25-4.02-16.8-4.54-19-0.52-2.2-1.42-6.7-2-10-0.58-3.3-1.67-9.6-2.42-14-0.75-4.4-1.83-11.6-2.41-16-0.58-4.4-1.54-12.5-2.13-18-0.59-5.5-1.51-10.11-2.05-10.25-0.6-0.16-0.97-11.89-0.96-31%200-16.91%200.44-39.3%200.97-49.75%200.53-10.45%201.45-23.73%202.03-29.5%200.59-5.77%201.55-14.1%202.13-18.5%200.58-4.4%201.67-11.6%202.42-16%200.75-4.4%201.84-10.7%202.42-14%200.58-3.3%201.48-7.8%202-10%200.52-2.2%202.56-10.75%204.54-19%201.97-8.25%203.98-16.13%204.47-17.5%200.48-1.38%201.84-5.88%203.02-10%201.18-4.13%204.4-14.02%207.15-22%202.75-7.98%205.36-15.4%205.81-16.5%200.44-1.1%201.97-4.7%203.39-8%201.43-3.3%202.6-6.34%202.61-6.75%200.02-0.41%201.2-3.34%202.64-6.5%201.43-3.16%203.3-7.32%204.15-9.25%200.86-1.93%204.59-9.8%208.3-17.5%203.71-7.7%209.76-19.4%2013.45-26%203.68-6.6%209.22-16.05%2012.3-21%203.08-4.95%208.58-13.5%2012.22-19%203.64-5.5%207.72-11.57%209.05-13.5%201.34-1.93%204.43-6.2%206.87-9.5%202.43-3.3%207.79-10.28%2011.91-15.5%204.11-5.22%2010.67-13.1%2014.56-17.5%203.89-4.4%209.08-10.25%2011.53-13%202.44-2.75%2010.77-11.3%2018.5-19.01%207.73-7.7%2019.23-18.52%2025.55-24.04%206.32-5.51%2015.1-12.94%2019.5-16.49%204.4-3.56%2010.02-7.96%2012.5-9.77%202.48-1.82%207.43-5.45%2011-8.06%203.57-2.62%209.43-6.72%2013-9.11%203.57-2.39%208.3-5.57%2010.5-7.06%202.2-1.49%209.85-6.21%2017-10.48%207.15-4.28%2015.48-9.13%2018.5-10.78%203.02-1.66%2010.92-5.75%2017.53-9.1%206.62-3.36%2015.17-7.53%2019-9.27%203.84-1.75%2010.12-4.52%2013.97-6.17%203.85-1.66%2012.4-5.11%2019-7.67%206.6-2.56%2018.64-6.87%2026.75-9.58%208.11-2.7%2016.44-5.33%2018.5-5.85%202.06-0.52%207.12-1.9%2011.25-3.06%204.12-1.17%2010.43-2.8%2014-3.63%203.57-0.84%208.07-1.88%2010-2.32%201.93-0.45%207.1-1.54%2011.5-2.42%204.4-0.89%2010.25-2.05%2013-2.58%202.75-0.53%207.25-1.24%2010-1.57%202.75-0.34%207.25-1.02%2010-1.52%202.75-0.5%2010.4-1.45%2017-2.1%206.6-0.65%2016.95-1.48%2023-1.84%206.05-0.36%2026.75-0.72%2046-0.8zm-42.29%20288.46c-6.99%200.78-16.76%202.31-21.71%203.4-4.95%201.09-11.48%202.67-14.5%203.51-3.02%200.84-7.98%202.24-11%203.12-3.02%200.88-10.45%203.5-16.5%205.83-6.05%202.33-14.82%206-19.5%208.16-4.68%202.15-12.77%206.32-18%209.26-5.23%202.94-13.32%207.87-18%2010.95-4.68%203.09-11.2%207.62-14.5%2010.08-3.3%202.45-8.93%206.92-12.5%209.92-3.57%203.01-12.15%2011.12-19.05%2018.03-6.9%206.91-15.61%2016.38-19.34%2021.06-3.73%204.68-10.49%2014.13-15.01%2021-4.53%206.88-9.98%2015.65-12.11%2019.5-2.13%203.85-5.64%2010.6-7.79%2015-2.15%204.4-5.5%2011.82-7.43%2016.5-1.94%204.68-4.38%2011.2-5.43%2014.5-1.06%203.3-3.22%2010.5-4.81%2016-1.59%205.5-3.42%2012.7-4.06%2016-0.64%203.3-1.58%208.25-2.08%2011-0.5%202.75-1.58%209.95-2.39%2016-0.95%207.05-1.49%2019.36-1.49%2034.25-0.01%2012.79%200.45%2026.51%201.02%2030.5%200.56%203.99%201.5%2010.17%202.07%2013.75%200.58%203.58%201.73%209.88%202.57%2014%200.84%204.13%202.88%2012.23%204.53%2018%201.65%205.77%204.12%2013.88%205.5%2018%201.37%204.13%202.84%207.95%203.27%208.5%200.42%200.55%201.68%203.48%202.79%206.5%201.11%203.02%203.79%209.1%205.94%2013.5%202.15%204.4%205.66%2011.15%207.78%2015%202.13%203.85%207.59%2012.63%2012.14%2019.5%204.54%206.88%2011.3%2016.33%2015.02%2021%203.73%204.67%2012.09%2013.9%2018.58%2020.5%206.5%206.6%2014.62%2014.29%2018.05%2017.09%203.43%202.8%2010.05%207.98%2014.73%2011.51%204.68%203.53%2012.1%208.74%2016.5%2011.58%204.4%202.83%2010.02%206.3%2012.5%207.7%202.48%201.4%209.45%204.99%2015.5%207.97%206.05%202.98%2013.25%206.42%2016%207.65%202.75%201.23%2012.2%204.61%2021%207.5%208.8%202.9%2021.62%206.44%2028.5%207.89%206.87%201.44%2014.52%203.04%2017%203.55%202.48%200.51%2013.27%201.48%2024%202.15%2015.34%200.97%2023.66%200.97%2039%200.01%2010.73-0.67%2021.3-1.6%2023.5-2.08%202.2-0.47%206.7-1.37%2010-1.99%203.3-0.63%208.92-1.82%2012.5-2.66%203.58-0.84%2010.1-2.58%2014.5-3.87%204.4-1.29%2012.27-3.89%2017.5-5.78%205.23-1.89%2011.51-4.29%2013.96-5.33%202.46-1.04%2010.33-4.84%2017.5-8.44%207.17-3.61%2018.21-9.87%2024.54-13.92%206.33-4.04%2012.68-8.3%2014.12-9.44%201.45-1.15%203.87-2.99%205.39-4.09%201.53-1.1%203.56-2.67%204.52-3.5%200.97-0.83%204.51-3.75%207.88-6.5%203.37-2.75%2011.85-10.86%2018.86-18.02%207-7.16%2016.15-17.51%2020.34-23%204.19-5.49%2010.3-14.03%2013.6-18.98%203.29-4.95%207.48-11.7%209.3-15%201.83-3.3%205.43-10.27%208.02-15.5%202.58-5.23%205.41-11.08%206.28-13%200.88-1.92%202.57-5.98%203.75-9%201.18-3.02%203.02-8.2%204.08-11.5%201.07-3.3%203.22-10.5%204.78-16%201.56-5.5%203.34-12.02%203.96-14.5%200.61-2.48%201.6-7.42%202.18-11%200.59-3.58%201.51-9.65%202.04-13.5%200.54-3.85%201.34-13.98%201.79-22.5%200.44-8.52%200.44-22.25%200-30.5-0.45-8.25-1.25-18.15-1.79-22-0.53-3.85-1.46-9.92-2.05-13.5-0.59-3.58-2.01-10.33-3.14-15-1.14-4.67-2.44-9.62-2.89-11-0.45-1.37-1.84-5.87-3.08-10-1.24-4.12-3.56-10.87-5.15-15-1.59-4.12-3.6-9.07-4.47-11-0.87-1.93-3.71-7.77-6.31-13-2.59-5.23-5.55-11.07-6.56-13-1.01-1.93-3.99-6.87-6.62-11-2.63-4.12-7.45-11.32-10.7-16-3.25-4.68-9.5-12.77-13.89-18-4.39-5.23-13.1-14.45-19.36-20.5-6.26-6.05-15.21-14.06-19.88-17.8-4.68-3.74-10.92-8.47-13.88-10.5-2.96-2.04-9.26-6.13-14-9.1-4.74-2.97-13.12-7.77-18.62-10.66-5.5-2.89-14.5-7.13-20-9.42-5.5-2.28-10.9-4.56-12-5.06-1.1-0.49-6.05-2.24-11-3.88-4.95-1.65-11.02-3.49-13.5-4.09-2.48-0.6-9.23-2.16-15-3.47-5.77-1.3-15.9-3.11-22.5-4.02-6.81-0.93-20.87-1.79-32.5-1.97-11.27-0.17-22.66-0.08-25.29%200.21-2.63%200.29-10.51%201.16-17.5%201.94z'/%3e%3cpath%20id='Path%202'%20class='s1'%20d='m953.5%20831.1c-2.75%200.49-7.7%201.38-11%201.99-3.3%200.61-8.48%201.77-11.5%202.57-3.02%200.81-9.33%202.84-14%204.52-4.67%201.68-13%205.31-18.5%208.06-5.5%202.75-12.48%206.61-15.5%208.58-3.02%201.97-8.2%205.61-11.5%208.08-3.3%202.47-9.33%207.44-13.39%2011.05-4.07%203.6-10.64%2010.38-14.61%2015.05-3.96%204.67-10.02%2012.77-13.46%2018-3.44%205.22-7.84%2012.65-9.78%2016.5-1.94%203.85-5.1%2011.05-7.02%2016-1.92%204.95-4.35%2011.92-5.39%2015.5-1.04%203.58-2.57%209.65-3.39%2013.5-0.83%203.85-2%2013.3-2.61%2021-0.81%2010.28-0.8%2017.79%200.02%2028.25%200.62%207.84%202.22%2018.86%203.55%2024.5%201.33%205.64%203.42%2013.17%204.65%2016.75%201.22%203.58%204%2010.55%206.17%2015.5%202.17%204.95%206.32%2013.05%209.22%2018%202.91%204.95%207.71%2012.22%2010.66%2016.15%202.96%203.94%208.08%2010.19%2011.38%2013.89%203.3%203.7%2010.05%2010.13%2015%2014.28%204.95%204.15%2013.05%2010.21%2018%2013.47%204.95%203.25%2011.92%207.4%2015.5%209.2%203.58%201.81%2010.55%204.92%2015.5%206.91%204.95%201.99%2012.83%204.69%2017.5%206%204.67%201.3%209.85%202.69%2011.5%203.07%201.65%200.39%206.83%201.33%2011.5%202.1%205.11%200.84%2015.89%201.4%2027%201.4%2010.17%200%2020.08-0.41%2022-0.92%201.92-0.5%206.2-1.45%209.5-2.1%203.3-0.65%2010.27-2.42%2015.5-3.93%205.22-1.5%2013.55-4.41%2018.5-6.46%204.95-2.05%2013.05-5.96%2018-8.68%204.95-2.73%2013.5-8.3%2019-12.39%205.5-4.08%2013.97-11.38%2018.82-16.21%204.86-4.83%2012.1-13.06%2016.09-18.28%203.99-5.22%209.09-12.65%2011.32-16.5%202.23-3.85%205.93-10.83%208.21-15.5%202.28-4.67%205.68-13.22%207.55-19%201.87-5.78%203.86-12.3%204.41-14.5%200.55-2.2%201.7-8.39%202.55-13.75%200.98-6.14%201.55-16.31%201.54-27.5%200-12.91-0.53-20.88-1.94-29.25-1.06-6.33-3.1-15.33-4.52-20-1.43-4.67-3.03-9.29-3.56-10.25-0.53-0.96-0.97-2.2-0.97-2.75%200-0.55-0.86-2.91-1.92-5.25-1.06-2.34-2.98-6.5-4.28-9.25-1.29-2.75-4.32-8.38-6.72-12.5-2.41-4.13-5.99-9.75-7.98-12.5-1.98-2.75-4.5-6.1-5.6-7.45-1.1-1.35-4.03-4.71-6.5-7.48-2.47-2.76-5.63-6.17-7-7.56-1.38-1.39-5.65-5.28-9.5-8.64-3.85-3.36-11.5-9.16-17-12.89-5.5-3.73-14.3-8.85-19.55-11.38-5.26-2.53-10.88-5.15-12.5-5.82-1.62-0.68-6.33-2.39-10.45-3.8-4.13-1.42-10.65-3.26-14.5-4.09-3.85-0.84-10.83-2.16-15.5-2.94-5.29-0.88-15.11-1.38-26-1.32-9.63%200.05-19.75%200.49-22.5%200.97z'/%3e%3c/g%3e%3c/svg%3e", Ja = Pe(
6328
+ const Ci = "data:image/svg+xml,%3csvg%20version='1.2'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201280%201280'%20width='500'%20height='500'%3e%3cstyle%3e%20.s0%20{%20opacity:%201;fill:%20%2317535d%20}%20.s1%20{%20opacity:%20.99;fill:%20%23fab185%20}%20%3c/style%3e%3cg%20id='gentiq%20(7)'%3e%3cpath%20id='Path%201'%20fill-rule='evenodd'%20class='s0'%20d='m616.5%2012.22c19.25-0.09%2038.15%200.29%2042%200.84%203.85%200.54%2011.73%201.43%2017.5%201.98%205.77%200.55%2016.35%201.85%2023.5%202.91%207.15%201.05%2016.6%202.62%2021%203.49%204.4%200.88%209.8%202.02%2012%202.53%202.2%200.52%207.15%201.65%2011%202.5%203.85%200.86%208.58%202%2010.5%202.54%201.92%200.54%207.77%202.15%2013%203.6%205.23%201.44%2016.02%204.77%2024%207.4%207.98%202.63%2017.65%205.99%2021.5%207.48%203.85%201.48%2011.95%204.74%2018%207.24%206.05%202.5%2014.6%206.16%2019%208.14%204.4%201.98%2013.4%206.35%2020%209.72%206.6%203.36%2014.48%207.47%2017.5%209.11%203.02%201.65%2011.35%206.5%2018.5%2010.77%207.15%204.27%2018.17%2011.2%2024.49%2015.4%206.32%204.2%2012.17%208.16%2013%208.82%200.83%200.65%207.36%205.55%2014.51%2010.88%207.15%205.33%2013.23%209.97%2013.5%2010.31%200.27%200.34%202.73%202.42%205.45%204.62%202.72%202.2%205.43%204.45%206.02%205%200.59%200.55%204.89%204.35%209.55%208.45%204.67%204.1%2015.04%2014%2023.05%2022%208.02%208%2018.22%2018.6%2022.67%2023.55%204.46%204.95%2011.4%2013.07%2015.43%2018.04%204.03%204.97%2011.43%2014.42%2016.43%2021%205.01%206.58%2012.65%2017.36%2016.97%2023.96%204.33%206.6%208.56%2013.15%209.4%2014.57%200.84%201.41%204.08%206.81%207.19%2012%203.11%205.18%207.29%2012.36%209.29%2015.93%202%203.57%207.6%2014.6%2012.44%2024.5%204.84%209.9%2010.51%2022.05%2012.6%2027%202.08%204.95%204.36%2010.35%205.07%2012%200.71%201.65%202.26%205.48%203.44%208.5%201.19%203.02%204.44%2012.25%207.22%2020.5%202.79%208.25%205.42%2016.35%205.84%2018%200.43%201.65%201.72%206.15%202.87%2010%201.15%203.85%203.86%2014.43%206.03%2023.5%202.16%209.07%204.38%2019.2%204.94%2022.5%200.56%203.3%201.5%208.7%202.1%2012%200.59%203.3%201.68%2010.05%202.43%2015%200.74%204.95%201.85%2013.27%202.47%2018.5%200.61%205.23%201.56%2018.95%202.11%2030.5%200.55%2011.55%200.99%2034.61%200.99%2051.25%200%2019.16-0.37%2030.43-1%2030.75-0.55%200.27-1%202.64-1.01%205.25%200%202.61-0.43%207.45-0.96%2010.75-0.52%203.3-1.7%2011.17-2.62%2017.5-0.92%206.33-2.02%2013.52-2.44%2016-0.43%202.48-1.29%207.42-1.93%2011-0.63%203.58-2.7%2013.02-4.6%2021-1.9%207.98-3.93%2016.3-4.51%2018.5-0.58%202.2-2.41%208.5-4.05%2014-1.64%205.5-4.8%2015.4-7.01%2022-2.21%206.6-4.39%2012.9-4.85%2014-0.46%201.1-2.22%205.71-3.92%2010.25-1.71%204.54-3.44%208.24-3.85%208.22-0.41-0.02-2.55-1.5-4.75-3.29-2.2-1.8-6.25-4.85-9-6.79-2.75-1.94-9.95-6.45-16-10.03-6.05-3.58-14.83-8.34-19.5-10.57-4.67-2.23-10.64-5.01-13.25-6.18-2.61-1.16-8.91-3.51-14-5.21-5.09-1.71-10.71-3.51-12.5-4-1.79-0.5-4.94-1.38-7-1.96-2.06-0.58-6.9-1.73-10.75-2.54-3.85-0.82-9.47-1.94-12.5-2.48-3.02-0.54-10.9-1.64-17.5-2.44-6.6-0.81-18.52-1.46-26.5-1.45-7.98%200-20.13%200.68-27%201.5-6.88%200.81-13.85%201.75-15.5%202.08-1.65%200.32-7.27%201.43-12.5%202.47-5.23%201.04-12.65%202.83-16.5%203.98-3.85%201.16-9.02%202.67-11.5%203.38-2.48%200.7-9.45%203.31-15.5%205.8-6.05%202.49-14.6%206.3-19%208.46-4.4%202.17-12.05%206.39-17%209.38-4.95%203-13.5%208.66-19%2012.58-5.5%203.92-12.7%209.48-16%2012.36-3.3%202.88-8.88%207.99-12.41%2011.36-3.52%203.36-9.6%209.72-13.5%2014.12-3.9%204.4-7.32%208.23-7.59%208.5-0.27%200.27-2.09%202.52-4.04%205-1.94%202.48-4.39%205.85-5.43%207.5-1.04%201.65-2.38%203.47-2.96%204.05-0.59%200.58-3.12%204.4-5.63%208.5-2.5%204.1-5.89%209.7-7.53%2012.45-1.63%202.75-4.16%207.48-5.61%2010.5-1.45%203.02-4.03%208.42-5.73%2012-1.71%203.58-3.1%206.95-3.09%207.5%200%200.55-0.69%202.35-1.54%204-0.85%201.65-2.83%206.83-4.39%2011.5-1.56%204.67-4.24%2014.12-5.95%2021-1.71%206.87-4.01%2019.25-5.1%2027.5-1.42%2010.7-1.99%2020.73-1.99%2035%200%2014.2%200.58%2024.35%201.98%2035%201.09%208.25%203.53%2021.08%205.43%2028.5%201.9%207.42%204.63%2016.87%206.07%2021%201.44%204.12%203.03%208.4%203.54%209.5%200.5%201.1%201.87%204.47%203.03%207.5%201.16%203.03%204.23%209.78%206.82%2015%202.59%205.22%205.48%2010.62%206.42%2012%200.94%201.37%201.73%202.72%201.74%203%200.01%200.28-1.91%201.07-4.26%201.77-2.35%200.7-8.55%202.17-13.78%203.28-5.23%201.11-11.98%202.47-15%203.03-3.02%200.55-7.75%201.43-10.5%201.95-2.75%200.52-10.63%201.65-17.5%202.53-6.88%200.87-16.33%202-21%202.5-4.67%200.5-17.27%201.4-28%202.01-11.32%200.65-29.56%200.85-43.5%200.48-13.2-0.35-27.83-1.06-32.5-1.57-4.67-0.52-14.8-1.66-22.5-2.54-7.7-0.88-17.6-2.21-22-2.95-4.4-0.75-14.98-2.78-23.5-4.5-8.52-1.73-18.88-4.05-23-5.15-4.13-1.1-10.2-2.68-13.5-3.51-3.3-0.83-10.27-2.86-15.5-4.51-5.23-1.65-12.88-4.1-17-5.45-4.13-1.35-8.4-2.85-9.5-3.33-1.1-0.47-6.5-2.54-12-4.6-5.5-2.05-11.8-4.52-14-5.49-2.2-0.97-8.73-3.88-14.5-6.47-5.77-2.59-15.45-7.18-21.5-10.21-6.05-3.02-14.38-7.3-18.5-9.51-4.13-2.2-7.95-4.36-8.5-4.78-0.55-0.42-3.25-2.02-6-3.54-2.75-1.52-12.65-7.69-22-13.71-9.35-6.02-23.75-16.02-32-22.22-8.25-6.21-16.78-12.8-18.96-14.65-2.18-1.85-8.68-7.41-14.44-12.36-5.77-4.95-17.28-15.75-25.58-24-8.3-8.25-17.33-17.48-20.07-20.5-2.74-3.02-7.71-8.65-11.05-12.5-3.34-3.85-9.97-11.95-14.75-18-4.77-6.05-9.02-11.45-9.44-12-0.42-0.55-3.51-4.83-6.87-9.5-3.36-4.67-8.78-12.55-12.05-17.5-3.26-4.95-8.45-13.05-11.52-18-3.07-4.95-8.47-14.17-11.99-20.5-3.53-6.33-9.38-17.58-13-25-3.63-7.42-7.59-15.75-8.8-18.5-1.21-2.75-3.22-7.25-4.45-10-1.24-2.75-2.6-6.13-3.02-7.5-0.43-1.38-1.6-4.3-2.61-6.5-1.01-2.2-3.68-9.17-5.94-15.5-2.27-6.33-4.71-13.3-5.43-15.5-0.73-2.2-2.52-8.05-3.99-13-1.46-4.95-3.06-10.13-3.55-11.5-0.49-1.38-2.5-9.25-4.47-17.5-1.98-8.25-4.02-16.8-4.54-19-0.52-2.2-1.42-6.7-2-10-0.58-3.3-1.67-9.6-2.42-14-0.75-4.4-1.83-11.6-2.41-16-0.58-4.4-1.54-12.5-2.13-18-0.59-5.5-1.51-10.11-2.05-10.25-0.6-0.16-0.97-11.89-0.96-31%200-16.91%200.44-39.3%200.97-49.75%200.53-10.45%201.45-23.73%202.03-29.5%200.59-5.77%201.55-14.1%202.13-18.5%200.58-4.4%201.67-11.6%202.42-16%200.75-4.4%201.84-10.7%202.42-14%200.58-3.3%201.48-7.8%202-10%200.52-2.2%202.56-10.75%204.54-19%201.97-8.25%203.98-16.13%204.47-17.5%200.48-1.38%201.84-5.88%203.02-10%201.18-4.13%204.4-14.02%207.15-22%202.75-7.98%205.36-15.4%205.81-16.5%200.44-1.1%201.97-4.7%203.39-8%201.43-3.3%202.6-6.34%202.61-6.75%200.02-0.41%201.2-3.34%202.64-6.5%201.43-3.16%203.3-7.32%204.15-9.25%200.86-1.93%204.59-9.8%208.3-17.5%203.71-7.7%209.76-19.4%2013.45-26%203.68-6.6%209.22-16.05%2012.3-21%203.08-4.95%208.58-13.5%2012.22-19%203.64-5.5%207.72-11.57%209.05-13.5%201.34-1.93%204.43-6.2%206.87-9.5%202.43-3.3%207.79-10.28%2011.91-15.5%204.11-5.22%2010.67-13.1%2014.56-17.5%203.89-4.4%209.08-10.25%2011.53-13%202.44-2.75%2010.77-11.3%2018.5-19.01%207.73-7.7%2019.23-18.52%2025.55-24.04%206.32-5.51%2015.1-12.94%2019.5-16.49%204.4-3.56%2010.02-7.96%2012.5-9.77%202.48-1.82%207.43-5.45%2011-8.06%203.57-2.62%209.43-6.72%2013-9.11%203.57-2.39%208.3-5.57%2010.5-7.06%202.2-1.49%209.85-6.21%2017-10.48%207.15-4.28%2015.48-9.13%2018.5-10.78%203.02-1.66%2010.92-5.75%2017.53-9.1%206.62-3.36%2015.17-7.53%2019-9.27%203.84-1.75%2010.12-4.52%2013.97-6.17%203.85-1.66%2012.4-5.11%2019-7.67%206.6-2.56%2018.64-6.87%2026.75-9.58%208.11-2.7%2016.44-5.33%2018.5-5.85%202.06-0.52%207.12-1.9%2011.25-3.06%204.12-1.17%2010.43-2.8%2014-3.63%203.57-0.84%208.07-1.88%2010-2.32%201.93-0.45%207.1-1.54%2011.5-2.42%204.4-0.89%2010.25-2.05%2013-2.58%202.75-0.53%207.25-1.24%2010-1.57%202.75-0.34%207.25-1.02%2010-1.52%202.75-0.5%2010.4-1.45%2017-2.1%206.6-0.65%2016.95-1.48%2023-1.84%206.05-0.36%2026.75-0.72%2046-0.8zm-42.29%20288.46c-6.99%200.78-16.76%202.31-21.71%203.4-4.95%201.09-11.48%202.67-14.5%203.51-3.02%200.84-7.98%202.24-11%203.12-3.02%200.88-10.45%203.5-16.5%205.83-6.05%202.33-14.82%206-19.5%208.16-4.68%202.15-12.77%206.32-18%209.26-5.23%202.94-13.32%207.87-18%2010.95-4.68%203.09-11.2%207.62-14.5%2010.08-3.3%202.45-8.93%206.92-12.5%209.92-3.57%203.01-12.15%2011.12-19.05%2018.03-6.9%206.91-15.61%2016.38-19.34%2021.06-3.73%204.68-10.49%2014.13-15.01%2021-4.53%206.88-9.98%2015.65-12.11%2019.5-2.13%203.85-5.64%2010.6-7.79%2015-2.15%204.4-5.5%2011.82-7.43%2016.5-1.94%204.68-4.38%2011.2-5.43%2014.5-1.06%203.3-3.22%2010.5-4.81%2016-1.59%205.5-3.42%2012.7-4.06%2016-0.64%203.3-1.58%208.25-2.08%2011-0.5%202.75-1.58%209.95-2.39%2016-0.95%207.05-1.49%2019.36-1.49%2034.25-0.01%2012.79%200.45%2026.51%201.02%2030.5%200.56%203.99%201.5%2010.17%202.07%2013.75%200.58%203.58%201.73%209.88%202.57%2014%200.84%204.13%202.88%2012.23%204.53%2018%201.65%205.77%204.12%2013.88%205.5%2018%201.37%204.13%202.84%207.95%203.27%208.5%200.42%200.55%201.68%203.48%202.79%206.5%201.11%203.02%203.79%209.1%205.94%2013.5%202.15%204.4%205.66%2011.15%207.78%2015%202.13%203.85%207.59%2012.63%2012.14%2019.5%204.54%206.88%2011.3%2016.33%2015.02%2021%203.73%204.67%2012.09%2013.9%2018.58%2020.5%206.5%206.6%2014.62%2014.29%2018.05%2017.09%203.43%202.8%2010.05%207.98%2014.73%2011.51%204.68%203.53%2012.1%208.74%2016.5%2011.58%204.4%202.83%2010.02%206.3%2012.5%207.7%202.48%201.4%209.45%204.99%2015.5%207.97%206.05%202.98%2013.25%206.42%2016%207.65%202.75%201.23%2012.2%204.61%2021%207.5%208.8%202.9%2021.62%206.44%2028.5%207.89%206.87%201.44%2014.52%203.04%2017%203.55%202.48%200.51%2013.27%201.48%2024%202.15%2015.34%200.97%2023.66%200.97%2039%200.01%2010.73-0.67%2021.3-1.6%2023.5-2.08%202.2-0.47%206.7-1.37%2010-1.99%203.3-0.63%208.92-1.82%2012.5-2.66%203.58-0.84%2010.1-2.58%2014.5-3.87%204.4-1.29%2012.27-3.89%2017.5-5.78%205.23-1.89%2011.51-4.29%2013.96-5.33%202.46-1.04%2010.33-4.84%2017.5-8.44%207.17-3.61%2018.21-9.87%2024.54-13.92%206.33-4.04%2012.68-8.3%2014.12-9.44%201.45-1.15%203.87-2.99%205.39-4.09%201.53-1.1%203.56-2.67%204.52-3.5%200.97-0.83%204.51-3.75%207.88-6.5%203.37-2.75%2011.85-10.86%2018.86-18.02%207-7.16%2016.15-17.51%2020.34-23%204.19-5.49%2010.3-14.03%2013.6-18.98%203.29-4.95%207.48-11.7%209.3-15%201.83-3.3%205.43-10.27%208.02-15.5%202.58-5.23%205.41-11.08%206.28-13%200.88-1.92%202.57-5.98%203.75-9%201.18-3.02%203.02-8.2%204.08-11.5%201.07-3.3%203.22-10.5%204.78-16%201.56-5.5%203.34-12.02%203.96-14.5%200.61-2.48%201.6-7.42%202.18-11%200.59-3.58%201.51-9.65%202.04-13.5%200.54-3.85%201.34-13.98%201.79-22.5%200.44-8.52%200.44-22.25%200-30.5-0.45-8.25-1.25-18.15-1.79-22-0.53-3.85-1.46-9.92-2.05-13.5-0.59-3.58-2.01-10.33-3.14-15-1.14-4.67-2.44-9.62-2.89-11-0.45-1.37-1.84-5.87-3.08-10-1.24-4.12-3.56-10.87-5.15-15-1.59-4.12-3.6-9.07-4.47-11-0.87-1.93-3.71-7.77-6.31-13-2.59-5.23-5.55-11.07-6.56-13-1.01-1.93-3.99-6.87-6.62-11-2.63-4.12-7.45-11.32-10.7-16-3.25-4.68-9.5-12.77-13.89-18-4.39-5.23-13.1-14.45-19.36-20.5-6.26-6.05-15.21-14.06-19.88-17.8-4.68-3.74-10.92-8.47-13.88-10.5-2.96-2.04-9.26-6.13-14-9.1-4.74-2.97-13.12-7.77-18.62-10.66-5.5-2.89-14.5-7.13-20-9.42-5.5-2.28-10.9-4.56-12-5.06-1.1-0.49-6.05-2.24-11-3.88-4.95-1.65-11.02-3.49-13.5-4.09-2.48-0.6-9.23-2.16-15-3.47-5.77-1.3-15.9-3.11-22.5-4.02-6.81-0.93-20.87-1.79-32.5-1.97-11.27-0.17-22.66-0.08-25.29%200.21-2.63%200.29-10.51%201.16-17.5%201.94z'/%3e%3cpath%20id='Path%202'%20class='s1'%20d='m953.5%20831.1c-2.75%200.49-7.7%201.38-11%201.99-3.3%200.61-8.48%201.77-11.5%202.57-3.02%200.81-9.33%202.84-14%204.52-4.67%201.68-13%205.31-18.5%208.06-5.5%202.75-12.48%206.61-15.5%208.58-3.02%201.97-8.2%205.61-11.5%208.08-3.3%202.47-9.33%207.44-13.39%2011.05-4.07%203.6-10.64%2010.38-14.61%2015.05-3.96%204.67-10.02%2012.77-13.46%2018-3.44%205.22-7.84%2012.65-9.78%2016.5-1.94%203.85-5.1%2011.05-7.02%2016-1.92%204.95-4.35%2011.92-5.39%2015.5-1.04%203.58-2.57%209.65-3.39%2013.5-0.83%203.85-2%2013.3-2.61%2021-0.81%2010.28-0.8%2017.79%200.02%2028.25%200.62%207.84%202.22%2018.86%203.55%2024.5%201.33%205.64%203.42%2013.17%204.65%2016.75%201.22%203.58%204%2010.55%206.17%2015.5%202.17%204.95%206.32%2013.05%209.22%2018%202.91%204.95%207.71%2012.22%2010.66%2016.15%202.96%203.94%208.08%2010.19%2011.38%2013.89%203.3%203.7%2010.05%2010.13%2015%2014.28%204.95%204.15%2013.05%2010.21%2018%2013.47%204.95%203.25%2011.92%207.4%2015.5%209.2%203.58%201.81%2010.55%204.92%2015.5%206.91%204.95%201.99%2012.83%204.69%2017.5%206%204.67%201.3%209.85%202.69%2011.5%203.07%201.65%200.39%206.83%201.33%2011.5%202.1%205.11%200.84%2015.89%201.4%2027%201.4%2010.17%200%2020.08-0.41%2022-0.92%201.92-0.5%206.2-1.45%209.5-2.1%203.3-0.65%2010.27-2.42%2015.5-3.93%205.22-1.5%2013.55-4.41%2018.5-6.46%204.95-2.05%2013.05-5.96%2018-8.68%204.95-2.73%2013.5-8.3%2019-12.39%205.5-4.08%2013.97-11.38%2018.82-16.21%204.86-4.83%2012.1-13.06%2016.09-18.28%203.99-5.22%209.09-12.65%2011.32-16.5%202.23-3.85%205.93-10.83%208.21-15.5%202.28-4.67%205.68-13.22%207.55-19%201.87-5.78%203.86-12.3%204.41-14.5%200.55-2.2%201.7-8.39%202.55-13.75%200.98-6.14%201.55-16.31%201.54-27.5%200-12.91-0.53-20.88-1.94-29.25-1.06-6.33-3.1-15.33-4.52-20-1.43-4.67-3.03-9.29-3.56-10.25-0.53-0.96-0.97-2.2-0.97-2.75%200-0.55-0.86-2.91-1.92-5.25-1.06-2.34-2.98-6.5-4.28-9.25-1.29-2.75-4.32-8.38-6.72-12.5-2.41-4.13-5.99-9.75-7.98-12.5-1.98-2.75-4.5-6.1-5.6-7.45-1.1-1.35-4.03-4.71-6.5-7.48-2.47-2.76-5.63-6.17-7-7.56-1.38-1.39-5.65-5.28-9.5-8.64-3.85-3.36-11.5-9.16-17-12.89-5.5-3.73-14.3-8.85-19.55-11.38-5.26-2.53-10.88-5.15-12.5-5.82-1.62-0.68-6.33-2.39-10.45-3.8-4.13-1.42-10.65-3.26-14.5-4.09-3.85-0.84-10.83-2.16-15.5-2.94-5.29-0.88-15.11-1.38-26-1.32-9.63%200.05-19.75%200.49-22.5%200.97z'/%3e%3c/g%3e%3c/svg%3e", Qa = De(
6294
6329
  "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
6295
- ), Qa = Ce.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ i(
6330
+ ), ei = Ce.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ i(
6296
6331
  "label",
6297
6332
  {
6298
6333
  ref: n,
6299
- className: k(Ja(), e),
6334
+ className: y(Qa(), e),
6300
6335
  ...t
6301
6336
  }
6302
6337
  ));
6303
- Qa.displayName = "Label";
6304
- function Ci({ ...e }) {
6305
- return /* @__PURE__ */ i(L.Root, { "data-slot": "select", ...e });
6306
- }
6338
+ ei.displayName = "Label";
6307
6339
  function Ai({ ...e }) {
6308
- return /* @__PURE__ */ i(L.Group, { "data-slot": "select-group", ...e });
6340
+ return /* @__PURE__ */ i(F.Root, { "data-slot": "select", ...e });
6309
6341
  }
6310
6342
  function Ii({ ...e }) {
6311
- return /* @__PURE__ */ i(L.Value, { "data-slot": "select-value", ...e });
6343
+ return /* @__PURE__ */ i(F.Group, { "data-slot": "select-group", ...e });
6344
+ }
6345
+ function Ri({ ...e }) {
6346
+ return /* @__PURE__ */ i(F.Value, { "data-slot": "select-value", ...e });
6312
6347
  }
6313
- function Ri({
6348
+ function Oi({
6314
6349
  className: e,
6315
6350
  size: t = "default",
6316
6351
  children: n,
6317
6352
  ...o
6318
6353
  }) {
6319
- return /* @__PURE__ */ w(
6320
- L.Trigger,
6354
+ return /* @__PURE__ */ _(
6355
+ F.Trigger,
6321
6356
  {
6322
6357
  "data-slot": "select-trigger",
6323
6358
  "data-size": t,
6324
- className: k(
6359
+ className: y(
6325
6360
  "border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
6326
6361
  e
6327
6362
  ),
6328
6363
  ...o,
6329
6364
  children: [
6330
6365
  n,
6331
- /* @__PURE__ */ i(L.Icon, { asChild: !0, children: /* @__PURE__ */ i(ie, { className: "size-4 opacity-50" }) })
6366
+ /* @__PURE__ */ i(F.Icon, { asChild: !0, children: /* @__PURE__ */ i(ie, { className: "size-4 opacity-50" }) })
6332
6367
  ]
6333
6368
  }
6334
6369
  );
6335
6370
  }
6336
- function Oi({
6371
+ function Li({
6337
6372
  className: e,
6338
6373
  children: t,
6339
6374
  position: n = "popper",
6340
6375
  ...o
6341
6376
  }) {
6342
- return /* @__PURE__ */ i(L.Portal, { children: /* @__PURE__ */ w(
6343
- L.Content,
6377
+ return /* @__PURE__ */ i(F.Portal, { children: /* @__PURE__ */ _(
6378
+ F.Content,
6344
6379
  {
6345
6380
  "data-slot": "select-content",
6346
- className: k(
6381
+ className: y(
6347
6382
  "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",
6348
6383
  n === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
6349
6384
  e
@@ -6351,85 +6386,85 @@ function Oi({
6351
6386
  position: n,
6352
6387
  ...o,
6353
6388
  children: [
6354
- /* @__PURE__ */ i(ei, {}),
6389
+ /* @__PURE__ */ i(ti, {}),
6355
6390
  /* @__PURE__ */ i(
6356
- L.Viewport,
6391
+ F.Viewport,
6357
6392
  {
6358
- className: k(
6393
+ className: y(
6359
6394
  "p-1",
6360
6395
  n === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"
6361
6396
  ),
6362
6397
  children: t
6363
6398
  }
6364
6399
  ),
6365
- /* @__PURE__ */ i(ti, {})
6400
+ /* @__PURE__ */ i(ni, {})
6366
6401
  ]
6367
6402
  }
6368
6403
  ) });
6369
6404
  }
6370
6405
  function Fi({ className: e, ...t }) {
6371
6406
  return /* @__PURE__ */ i(
6372
- L.Label,
6407
+ F.Label,
6373
6408
  {
6374
6409
  "data-slot": "select-label",
6375
- className: k("text-muted-foreground px-2 py-1.5 text-xs", e),
6410
+ className: y("text-muted-foreground px-2 py-1.5 text-xs", e),
6376
6411
  ...t
6377
6412
  }
6378
6413
  );
6379
6414
  }
6380
- function Li({ className: e, children: t, ...n }) {
6381
- return /* @__PURE__ */ w(
6382
- L.Item,
6415
+ function Di({ className: e, children: t, ...n }) {
6416
+ return /* @__PURE__ */ _(
6417
+ F.Item,
6383
6418
  {
6384
6419
  "data-slot": "select-item",
6385
- className: k(
6420
+ className: y(
6386
6421
  "focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pe-8 ps-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 text-start",
6387
6422
  e
6388
6423
  ),
6389
6424
  ...n,
6390
6425
  children: [
6391
- /* @__PURE__ */ i("span", { className: "absolute inset-inline-end-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ i(L.ItemIndicator, { children: /* @__PURE__ */ i(De, { className: "size-4" }) }) }),
6392
- /* @__PURE__ */ i(L.ItemText, { children: t })
6426
+ /* @__PURE__ */ i("span", { className: "absolute inset-inline-end-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ i(F.ItemIndicator, { children: /* @__PURE__ */ i(Pe, { className: "size-4" }) }) }),
6427
+ /* @__PURE__ */ i(F.ItemText, { children: t })
6393
6428
  ]
6394
6429
  }
6395
6430
  );
6396
6431
  }
6397
- function Di({ className: e, ...t }) {
6432
+ function Pi({ className: e, ...t }) {
6398
6433
  return /* @__PURE__ */ i(
6399
- L.Separator,
6434
+ F.Separator,
6400
6435
  {
6401
6436
  "data-slot": "select-separator",
6402
- className: k("bg-border pointer-events-none -mx-1 my-1 h-px", e),
6437
+ className: y("bg-border pointer-events-none -mx-1 my-1 h-px", e),
6403
6438
  ...t
6404
6439
  }
6405
6440
  );
6406
6441
  }
6407
- function ei({ className: e, ...t }) {
6442
+ function ti({ className: e, ...t }) {
6408
6443
  return /* @__PURE__ */ i(
6409
- L.ScrollUpButton,
6444
+ F.ScrollUpButton,
6410
6445
  {
6411
6446
  "data-slot": "select-scroll-up-button",
6412
- className: k("flex cursor-default items-center justify-center py-1", e),
6447
+ className: y("flex cursor-default items-center justify-center py-1", e),
6413
6448
  ...t,
6414
6449
  children: /* @__PURE__ */ i(An, { className: "size-4" })
6415
6450
  }
6416
6451
  );
6417
6452
  }
6418
- function ti({
6453
+ function ni({
6419
6454
  className: e,
6420
6455
  ...t
6421
6456
  }) {
6422
6457
  return /* @__PURE__ */ i(
6423
- L.ScrollDownButton,
6458
+ F.ScrollDownButton,
6424
6459
  {
6425
6460
  "data-slot": "select-scroll-down-button",
6426
- className: k("flex cursor-default items-center justify-center py-1", e),
6461
+ className: y("flex cursor-default items-center justify-center py-1", e),
6427
6462
  ...t,
6428
6463
  children: /* @__PURE__ */ i(ie, { className: "size-4" })
6429
6464
  }
6430
6465
  );
6431
6466
  }
6432
- function Pi(e, t) {
6467
+ function Mi(e, t) {
6433
6468
  if (!e) return !0;
6434
6469
  const { field: n, operator: o = "equals", value: r } = e, a = t[n];
6435
6470
  switch (o) {
@@ -6445,10 +6480,10 @@ function Pi(e, t) {
6445
6480
  return !0;
6446
6481
  }
6447
6482
  }
6448
- function Mi({ ...e }) {
6483
+ function zi({ ...e }) {
6449
6484
  return /* @__PURE__ */ i(re.Root, { "data-slot": "dropdown-menu", ...e });
6450
6485
  }
6451
- function zi({ ...e }) {
6486
+ function Ui({ ...e }) {
6452
6487
  return /* @__PURE__ */ i(re.Trigger, { "data-slot": "dropdown-menu-trigger", ...e });
6453
6488
  }
6454
6489
  function $i({
@@ -6461,7 +6496,7 @@ function $i({
6461
6496
  {
6462
6497
  "data-slot": "dropdown-menu-content",
6463
6498
  sideOffset: t,
6464
- className: k(
6499
+ className: y(
6465
6500
  "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
6466
6501
  e
6467
6502
  ),
@@ -6469,7 +6504,7 @@ function $i({
6469
6504
  }
6470
6505
  ) });
6471
6506
  }
6472
- function Ui({
6507
+ function Bi({
6473
6508
  className: e,
6474
6509
  inset: t,
6475
6510
  variant: n = "default",
@@ -6481,7 +6516,7 @@ function Ui({
6481
6516
  "data-slot": "dropdown-menu-item",
6482
6517
  "data-inset": t,
6483
6518
  "data-variant": n,
6484
- className: k(
6519
+ className: y(
6485
6520
  "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
6486
6521
  e
6487
6522
  ),
@@ -6489,12 +6524,12 @@ function Ui({
6489
6524
  }
6490
6525
  );
6491
6526
  }
6492
- function Bi({ className: e, ...t }) {
6527
+ function Hi({ className: e, ...t }) {
6493
6528
  return /* @__PURE__ */ i(
6494
6529
  Ye.Root,
6495
6530
  {
6496
6531
  "data-slot": "checkbox",
6497
- className: k(
6532
+ className: y(
6498
6533
  "peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
6499
6534
  e
6500
6535
  ),
@@ -6504,68 +6539,68 @@ function Bi({ className: e, ...t }) {
6504
6539
  {
6505
6540
  "data-slot": "checkbox-indicator",
6506
6541
  className: "grid place-content-center text-current transition-none",
6507
- children: /* @__PURE__ */ i(De, { className: "size-3.5" })
6542
+ children: /* @__PURE__ */ i(Pe, { className: "size-3.5" })
6508
6543
  }
6509
6544
  )
6510
6545
  }
6511
6546
  );
6512
6547
  }
6513
6548
  export {
6514
- so as $,
6515
- Ui as A,
6516
- ee as B,
6517
- _i as C,
6518
- Tr as D,
6519
- Or as E,
6520
- Fr as F,
6549
+ uo as $,
6550
+ Bi as A,
6551
+ Q as B,
6552
+ Ni as C,
6553
+ Ar as D,
6554
+ Fr as E,
6555
+ Dr as F,
6521
6556
  Xe as G,
6522
- xi as H,
6523
- Ni as I,
6524
- wi as J,
6525
- Bi as K,
6526
- Qa as L,
6557
+ Ei as H,
6558
+ Ti as I,
6559
+ Si as J,
6560
+ Hi as K,
6561
+ ei as L,
6527
6562
  fe as M,
6528
- ma as N,
6529
- Zn as O,
6530
- Un as P,
6531
- io as Q,
6532
- Sr as R,
6533
- Ci as S,
6534
- Si as T,
6535
- Ai as U,
6563
+ ba as N,
6564
+ Qn as O,
6565
+ Hn as P,
6566
+ so as Q,
6567
+ Nr as R,
6568
+ Ai as S,
6569
+ ki as T,
6570
+ Ii as U,
6536
6571
  Fi as V,
6537
- ti as W,
6538
- ei as X,
6539
- Di as Y,
6540
- vr as Z,
6541
- ga as _,
6542
- W as a,
6543
- vi as a0,
6544
- Jn as a1,
6572
+ ni as W,
6573
+ ti as X,
6574
+ Pi as Y,
6575
+ _r as Z,
6576
+ fa as _,
6577
+ te as a,
6578
+ xi as a0,
6579
+ eo as a1,
6545
6580
  sn as a2,
6546
- $n as b,
6547
- yi as c,
6548
- Ka as d,
6549
- k as e,
6550
- ao as f,
6551
- Za as g,
6552
- It as h,
6553
- Rt as i,
6554
- ki as j,
6555
- Ot as k,
6581
+ Bn as b,
6582
+ wi as c,
6583
+ Za as d,
6584
+ y as e,
6585
+ lo as f,
6586
+ Ja as g,
6587
+ Rt as h,
6588
+ Ot as i,
6589
+ _i as j,
6590
+ Lt as k,
6556
6591
  Ft as l,
6557
- Ei as m,
6558
- Pi as n,
6559
- Cr as o,
6560
- Rr as p,
6561
- Ri as q,
6562
- Ii as r,
6563
- Oi as s,
6564
- Li as t,
6592
+ vi as m,
6593
+ Mi as n,
6594
+ Ir as o,
6595
+ Lr as p,
6596
+ Oi as q,
6597
+ Ri as r,
6598
+ Li as s,
6599
+ Di as t,
6565
6600
  S as u,
6566
- Ti as v,
6601
+ Ci as v,
6567
6602
  ge as w,
6568
- Mi as x,
6569
- zi as y,
6603
+ zi as x,
6604
+ Ui as y,
6570
6605
  $i as z
6571
6606
  };