gentiq 0.7.28 → 0.7.30

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,8 +1,8 @@
1
1
  import { jsx as i, Fragment as J, jsxs as w } 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 { 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 Fe } 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";
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 _n, ImagePlusIcon as xn, 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
6
  import { Slot as Ct } from "@radix-ui/react-slot";
7
7
  import { cva as Pe } from "class-variance-authority";
8
8
  import { StickToBottom as At, useStickToBottomContext as In } from "use-stick-to-bottom";
@@ -14,13 +14,45 @@ import { Streamdown as On } from "streamdown";
14
14
  import Ve from "katex";
15
15
  import { useControllableState as We } from "@radix-ui/react-use-controllable-state";
16
16
  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";
17
+ import { PrismLight as U } from "react-syntax-highlighter";
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
+ // Auth Errors
26
+ UNAUTHORIZED: "unauthorized",
27
+ INVALID_CREDENTIALS: "invalid_credentials",
28
+ PHONE_REQUIRED: "phone_required",
29
+ PASSWORD_REQUIRED: "password_required",
30
+ NAME_SURNAME_REQUIRED: "name_surname_required",
31
+ PHONE_ALREADY_EXISTS: "phone_already_exists",
32
+ INVALID_TOKEN: "invalid_token",
33
+ // User & Balance Errors
34
+ USER_NOT_FOUND: "user_not_found",
35
+ INSUFFICIENT_BALANCE: "insufficient_balance",
36
+ ME_UPDATE_FAILED: "me_update_failed",
37
+ // Chat & Thread Errors
38
+ THREAD_NOT_FOUND: "thread_not_found",
39
+ ACCESS_DENIED: "access_denied",
40
+ FEEDBACK_SAVE_FAILED: "feedback_save_failed",
41
+ THREAD_UPDATE_FAILED: "thread_update_failed",
42
+ THREAD_DELETE_FAILED: "thread_delete_failed",
43
+ ATTACHMENT_NOT_FOUND: "attachment_not_found",
44
+ THREAD_SHARE_FAILED: "thread_share_failed",
45
+ MODEL_QUOTA_REACHED_ERROR: "model_quota_reached_error",
46
+ // Admin Errors
47
+ ADMIN_ALREADY_EXISTS: "admin_already_exists",
48
+ ADMIN_NOT_FOUND: "admin_not_found",
49
+ CANNOT_DELETE_SELF: "cannot_delete_self",
50
+ ADMIN_UPDATE_FAILED: "admin_update_failed",
51
+ // System Errors
52
+ INTERNAL_ERROR: "internal_error",
53
+ VALIDATION_ERROR: "validation_error",
54
+ NOT_FOUND: "not_found"
55
+ };
24
56
  class Xe extends Error {
25
57
  code;
26
58
  status;
@@ -29,12 +61,12 @@ class Xe extends Error {
29
61
  super(t.error.message), this.name = "GentiqError", this.code = t.error.code, this.status = n, this.details = t.error.details;
30
62
  }
31
63
  }
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;
64
+ function ki(e, t) {
65
+ const n = typeof e == "string" ? e : e.message, o = typeof e == "string" ? e : e.code || (Object.values(Pn).includes(n) ? n : void 0);
66
+ if (typeof o != "string")
67
+ return n || String(e);
68
+ const r = `errors:${o}`, a = t(r);
69
+ return a === r ? typeof e != "string" && e.message ? e.message : o.replace(/_/g, " ").replace(/\b\w/g, (l) => l.toUpperCase()) : a;
38
70
  }
39
71
  let N = {
40
72
  api: {
@@ -45,7 +77,7 @@ let N = {
45
77
  cacheNamespace: "gentiq"
46
78
  }
47
79
  };
48
- const Pn = {
80
+ const Mn = {
49
81
  getToken: () => localStorage.getItem("token"),
50
82
  setToken: (e) => localStorage.setItem("token", e),
51
83
  clearToken: () => {
@@ -56,7 +88,7 @@ const Pn = {
56
88
  return e ? { Authorization: `Bearer ${e}` } : {};
57
89
  }
58
90
  };
59
- let F = Pn;
91
+ let L = Mn;
60
92
  const S = {
61
93
  init: (e) => {
62
94
  if (N = {
@@ -66,7 +98,7 @@ const S = {
66
98
  app: e.app ? { ...N.app, ...e.app } : N.app
67
99
  }, e.api?.authAdapter) {
68
100
  const t = e.api.authAdapter;
69
- F = {
101
+ L = {
70
102
  ...t,
71
103
  getHeaders: t.getHeaders || (() => {
72
104
  const n = t.getToken();
@@ -76,14 +108,14 @@ const S = {
76
108
  }
77
109
  },
78
110
  getConfig: () => N,
79
- getToken: () => F.getToken(),
111
+ getToken: () => L.getToken(),
80
112
  setToken: (e) => {
81
- F.setToken(e);
113
+ L.setToken(e);
82
114
  },
83
115
  clearToken: () => {
84
- F.clearToken();
116
+ L.clearToken();
85
117
  },
86
- getHeaders: () => F.getHeaders(),
118
+ getHeaders: () => L.getHeaders(),
87
119
  getEndpoint: (e, t, ...n) => {
88
120
  const o = N.api?.endpoints?.[e];
89
121
  return o ? typeof o == "function" ? o(...n) : o : typeof t == "function" ? t(...n) : t;
@@ -123,7 +155,7 @@ const S = {
123
155
  getBalance: async () => {
124
156
  const e = S.getEndpoint("balance", "/users/balance"), t = await fetch(`${N.api?.basePath}${e}`, {
125
157
  headers: {
126
- ...F.getHeaders()
158
+ ...L.getHeaders()
127
159
  }
128
160
  });
129
161
  return S.handleResponse(t, "Failed to fetch balance");
@@ -131,7 +163,7 @@ const S = {
131
163
  getHistory: async (e = 0, t = 50) => {
132
164
  const n = S.getEndpoint("threads", "/chat/threads"), o = await fetch(`${N.api?.basePath}${n}?skip=${e}&limit=${t}`, {
133
165
  headers: {
134
- ...F.getHeaders()
166
+ ...L.getHeaders()
135
167
  }
136
168
  });
137
169
  return S.handleResponse(o, "Failed to fetch chat history");
@@ -140,7 +172,7 @@ const S = {
140
172
  if (!S.getToken()) throw new Error("No token found");
141
173
  const n = S.getEndpoint("threadMessages", (r) => `/chat/threads/${r.replace(/^\//, "")}`, e), o = await fetch(`${N.api?.basePath}${n}`, {
142
174
  headers: {
143
- ...F.getHeaders()
175
+ ...L.getHeaders()
144
176
  }
145
177
  });
146
178
  return S.handleResponse(o, "Failed to fetch thread messages");
@@ -150,7 +182,7 @@ const S = {
150
182
  const n = S.getEndpoint("deleteThread", (r) => `/chat/threads/${r.replace(/^\//, "")}`, e), o = await fetch(`${N.api?.basePath}${n}`, {
151
183
  method: "DELETE",
152
184
  headers: {
153
- ...F.getHeaders()
185
+ ...L.getHeaders()
154
186
  }
155
187
  });
156
188
  return S.handleResponse(o, "Failed to delete thread");
@@ -161,7 +193,7 @@ const S = {
161
193
  method: "PATCH",
162
194
  headers: {
163
195
  "Content-Type": "application/json",
164
- ...F.getHeaders()
196
+ ...L.getHeaders()
165
197
  },
166
198
  body: JSON.stringify({ title: t })
167
199
  });
@@ -176,7 +208,7 @@ const S = {
176
208
  if (N.api?.attachmentResolver)
177
209
  return N.api.attachmentResolver(e);
178
210
  const t = S.getEndpoint("attachments", (r) => `/chat/attachments/${r}`, e), n = await fetch(`${N.api?.basePath}${t}`, {
179
- headers: { ...F.getHeaders() }
211
+ headers: { ...L.getHeaders() }
180
212
  });
181
213
  if (!n.ok) return S.handleResponse(n, "Failed to fetch attachment");
182
214
  const o = await n.blob();
@@ -201,7 +233,7 @@ const S = {
201
233
  method: "POST",
202
234
  headers: {
203
235
  "Content-Type": "application/json",
204
- ...F.getHeaders()
236
+ ...L.getHeaders()
205
237
  },
206
238
  body: JSON.stringify({
207
239
  thread_id: e.replace(/^\//, ""),
@@ -214,7 +246,7 @@ const S = {
214
246
  getMe: async () => {
215
247
  const e = S.getEndpoint("me", "/users/me"), t = await fetch(`${N.api?.basePath}${e}`, {
216
248
  headers: {
217
- ...F.getHeaders()
249
+ ...L.getHeaders()
218
250
  }
219
251
  });
220
252
  return S.handleResponse(t, "Failed to fetch user profile");
@@ -224,7 +256,7 @@ const S = {
224
256
  method: "PATCH",
225
257
  headers: {
226
258
  "Content-Type": "application/json",
227
- ...F.getHeaders()
259
+ ...L.getHeaders()
228
260
  },
229
261
  body: JSON.stringify(e)
230
262
  });
@@ -236,7 +268,7 @@ const S = {
236
268
  method: "PATCH",
237
269
  headers: {
238
270
  "Content-Type": "application/json",
239
- ...F.getHeaders()
271
+ ...L.getHeaders()
240
272
  },
241
273
  body: JSON.stringify({ pinned: t })
242
274
  });
@@ -247,7 +279,7 @@ const S = {
247
279
  const n = S.getEndpoint("shareThread", (r) => `/chat/threads/${r.replace(/^\//, "")}/share`, e), o = await fetch(`${N.api?.basePath}${n}`, {
248
280
  method: "POST",
249
281
  headers: {
250
- ...F.getHeaders()
282
+ ...L.getHeaders()
251
283
  }
252
284
  });
253
285
  return S.handleResponse(o, "Failed to share thread");
@@ -265,7 +297,7 @@ const S = {
265
297
  return S.handleResponse(e, "Failed to fetch app configuration");
266
298
  }
267
299
  };
268
- function Mn(e, t) {
300
+ function zn(e, t) {
269
301
  const [n, o] = B(
270
302
  e.metadata?.feedback
271
303
  ), r = oe((l) => {
@@ -288,7 +320,7 @@ function Mn(e, t) {
288
320
  copy: r
289
321
  };
290
322
  }
291
- const zn = /* @__PURE__ */ new Set(["ar", "fa", "he", "ur", "yi", "ku", "ckb", "ps", "sd", "ug", "arc", "syc"]);
323
+ const Un = /* @__PURE__ */ new Set(["ar", "fa", "he", "ur", "yi", "ku", "ckb", "ps", "sd", "ug", "arc", "syc"]);
292
324
  function $n() {
293
325
  const { i18n: e } = M(["translation"]), { app: t } = W(), n = St(() => {
294
326
  const l = S.getConfig(), c = t || l.app;
@@ -299,7 +331,7 @@ function $n() {
299
331
  language: e.language || c?.language || "en",
300
332
  showToolDetails: c?.showToolDetails ?? !0
301
333
  };
302
- }, [e.language, t]), o = (n.language ?? "").split("-")[0].toLowerCase(), r = zn.has(o), a = t?.language;
334
+ }, [e.language, t]), o = (n.language ?? "").split("-")[0].toLowerCase(), r = Un.has(o), a = t?.language;
303
335
  return Q(() => {
304
336
  if (typeof window > "u") return;
305
337
  const l = localStorage.getItem("gentiq-last-default-lang");
@@ -314,7 +346,7 @@ function $n() {
314
346
  error: null
315
347
  };
316
348
  }
317
- function Un(e) {
349
+ function Bn(e) {
318
350
  const {
319
351
  part: t,
320
352
  message: n,
@@ -327,7 +359,7 @@ function Un(e) {
327
359
  renderMessagePart: p,
328
360
  chat: h,
329
361
  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);
362
+ } = e, { showToolDetails: b } = $n(), { TextPart: m, ReasoningPart: y, ToolPart: d, FilePart: v, toolComponents: _, threadActions: g } = W(), { feedback: R, handleFeedback: E, copy: I } = zn(n, c);
331
363
  if (p) {
332
364
  const O = p(t, n);
333
365
  if (O !== void 0)
@@ -368,7 +400,7 @@ function Un(e) {
368
400
  part: t,
369
401
  message: n,
370
402
  chat: h,
371
- toolComponents: x,
403
+ toolComponents: _,
372
404
  showToolCalls: !!b
373
405
  }
374
406
  ) : t.type === "file" ? /* @__PURE__ */ i(
@@ -380,9 +412,9 @@ function Un(e) {
380
412
  ) : null;
381
413
  }
382
414
  function k(...e) {
383
- return Dn(Ln(e));
415
+ return Dn(Fn(e));
384
416
  }
385
- function ki(e, t) {
417
+ function vi(e, t) {
386
418
  if (t === "/") return e;
387
419
  const n = e.endsWith("/") ? e.slice(0, -1) : e, o = t.startsWith("/") ? t : "/" + t;
388
420
  return n + o;
@@ -407,18 +439,18 @@ const fe = ({ className: e, ...t }) => /* @__PURE__ */ i(
407
439
  n
408
440
  ))
409
441
  }
410
- ), Bn = /[\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC]/;
442
+ ), Hn = /[\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC]/;
411
443
  function ge(e, t = "ltr") {
412
444
  if (!e) return t;
413
445
  for (const n of e) {
414
- if (Bn.test(n))
446
+ if (Hn.test(n))
415
447
  return "rtl";
416
448
  if (/[A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02B8]/.test(n))
417
449
  return "ltr";
418
450
  }
419
451
  return "ltr";
420
452
  }
421
- const Hn = Pe(
453
+ const qn = Pe(
422
454
  "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
455
  {
424
456
  variants: {
@@ -450,9 +482,9 @@ function ee({
450
482
  asChild: o = !1,
451
483
  ...r
452
484
  }) {
453
- return /* @__PURE__ */ i(o ? Ct : "button", { "data-slot": "button", className: k(Hn({ variant: t, size: n, className: e })), ...r });
485
+ return /* @__PURE__ */ i(o ? Ct : "button", { "data-slot": "button", className: k(qn({ variant: t, size: n, className: e })), ...r });
454
486
  }
455
- const qn = ({ className: e, ...t }) => /* @__PURE__ */ i(
487
+ const jn = ({ className: e, ...t }) => /* @__PURE__ */ i(
456
488
  At,
457
489
  {
458
490
  className: k("relative flex-1 overflow-hidden", e),
@@ -461,14 +493,14 @@ const qn = ({ className: e, ...t }) => /* @__PURE__ */ i(
461
493
  role: "log",
462
494
  ...t
463
495
  }
464
- ), jn = ({ className: e, ...t }) => /* @__PURE__ */ i(
496
+ ), Gn = ({ className: e, ...t }) => /* @__PURE__ */ i(
465
497
  At.Content,
466
498
  {
467
499
  className: k("p-4 pb-6 stick-to-bottom", e),
468
500
  scrollClassName: "custom-scrollbar",
469
501
  ...t
470
502
  }
471
- ), Gn = ({ className: e, ...t }) => {
503
+ ), Vn = ({ className: e, ...t }) => {
472
504
  const { isAtBottom: n, scrollToBottom: o } = In(), r = oe(() => {
473
505
  o();
474
506
  }, [o]);
@@ -495,20 +527,20 @@ const qn = ({ className: e, ...t }) => /* @__PURE__ */ i(
495
527
  function ze({ ...e }) {
496
528
  return /* @__PURE__ */ i(Me.Root, { "data-slot": "collapsible", ...e });
497
529
  }
498
- function $e({ ...e }) {
530
+ function Ue({ ...e }) {
499
531
  return /* @__PURE__ */ i(Me.CollapsibleTrigger, { "data-slot": "collapsible-trigger", ...e });
500
532
  }
501
- function Ue({ ...e }) {
533
+ function $e({ ...e }) {
502
534
  return /* @__PURE__ */ i(Me.CollapsibleContent, { "data-slot": "collapsible-content", ...e });
503
535
  }
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 }) => {
536
+ const Wn = ({ className: e, ...t }) => /* @__PURE__ */ i(ze, { className: k("not-prose mb-4 text-primary text-xs", e), ...t }), Yn = ({ className: e, count: t, children: n, ...o }) => {
505
537
  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: [
538
+ return /* @__PURE__ */ i(Ue, { className: k("flex items-center gap-2", e), ...o, children: n ?? /* @__PURE__ */ w(J, { children: [
507
539
  /* @__PURE__ */ i("p", { className: "font-medium", children: r("used_sources", { count: t }) }),
508
540
  /* @__PURE__ */ i(ie, { className: "h-4 w-4" })
509
541
  ] }) });
510
- }, Yn = ({ className: e, ...t }) => /* @__PURE__ */ i(
511
- Ue,
542
+ }, Xn = ({ className: e, ...t }) => /* @__PURE__ */ i(
543
+ $e,
512
544
  {
513
545
  className: k(
514
546
  "mt-3 flex w-fit flex-col gap-2",
@@ -517,10 +549,10 @@ const Vn = ({ className: e, ...t }) => /* @__PURE__ */ i(ze, { className: k("not
517
549
  ),
518
550
  ...t
519
551
  }
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: [
552
+ ), Kn = ({ 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: [
521
553
  /* @__PURE__ */ i(pn, { className: "h-4 w-4" }),
522
554
  /* @__PURE__ */ i("span", { className: "block font-medium", children: t })
523
- ] }) }), Kn = ({ latestProgress: e, parts: t }) => {
555
+ ] }) }), Zn = ({ latestProgress: e, parts: t }) => {
524
556
  const n = e.data[0].status, o = e.data[0].message, r = t.lastIndexOf(e);
525
557
  if (!!(t.slice(r + 1).some(
526
558
  (f) => f.type === "text" && (f.text || "").trim().length > 0 || f.type === "tool-invocation" || f.type === "tool-call"
@@ -534,7 +566,7 @@ const Vn = ({ className: e, ...t }) => /* @__PURE__ */ i(ze, { className: k("not
534
566
  /* @__PURE__ */ i("span", { className: k("font-medium", s && "animate-pulse"), children: o })
535
567
  ] }) });
536
568
  };
537
- function Zn({
569
+ function Jn({
538
570
  messages: e,
539
571
  status: t,
540
572
  isLoadingHistory: n,
@@ -547,17 +579,17 @@ function Zn({
547
579
  readonly: p
548
580
  }) {
549
581
  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: [
582
+ return /* @__PURE__ */ w(jn, { className: k("min-h-0 flex-1", s), children: [
583
+ /* @__PURE__ */ w(Gn, { className: "max-w-4xl mx-auto w-full px-4 md:px-0 pb-32", dir: "ltr", children: [
552
584
  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}`))
585
+ v.role === "assistant" && v.parts.filter((_) => _.type === "source-url").length > 0 && /* @__PURE__ */ w(Wn, { children: [
586
+ /* @__PURE__ */ i(Yn, { count: v.parts.filter((_) => _.type === "source-url").length }),
587
+ v.parts.filter((_) => _.type === "source-url").map((_, g) => /* @__PURE__ */ i(Xn, { children: /* @__PURE__ */ i(Kn, { href: _.url, title: _.url }, `${v.id}-${g}`) }, `${v.id}-${g}`))
556
588
  ] }),
557
- v.parts.map((x, g) => /* @__PURE__ */ i(
558
- Un,
589
+ v.parts.map((_, g) => /* @__PURE__ */ i(
590
+ Bn,
559
591
  {
560
- part: x,
592
+ part: _,
561
593
  message: v,
562
594
  status: t,
563
595
  index: g,
@@ -575,8 +607,8 @@ function Zn({
575
607
  if (!y || y.role !== "assistant") return null;
576
608
  const v = y.parts.filter((g) => g.type === "data-progress-update");
577
609
  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;
610
+ const _ = v[v.length - 1];
611
+ return _ ? /* @__PURE__ */ i(Zn, { latestProgress: _, parts: y.parts }) : null;
580
612
  })(),
581
613
  (n || t === "submitted") && /* @__PURE__ */ i("div", { className: "animate-in-bubble", children: /* @__PURE__ */ i(fe, {}) }),
582
614
  t === "streaming" && (() => {
@@ -597,10 +629,10 @@ function Zn({
597
629
  ] })
598
630
  ] }) })
599
631
  ] }),
600
- /* @__PURE__ */ i(Gn, {})
632
+ /* @__PURE__ */ i(Vn, {})
601
633
  ] });
602
634
  }
603
- function Jn({ className: e, ...t }) {
635
+ function Qn({ className: e, ...t }) {
604
636
  return /* @__PURE__ */ i(
605
637
  "textarea",
606
638
  {
@@ -613,7 +645,7 @@ function Jn({ className: e, ...t }) {
613
645
  }
614
646
  );
615
647
  }
616
- const Qn = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: "bg-transparent w-full", children: /* @__PURE__ */ i(
648
+ const eo = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: "bg-transparent w-full", children: /* @__PURE__ */ i(
617
649
  "form",
618
650
  {
619
651
  className: k(
@@ -628,7 +660,7 @@ const Qn = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: "bg
628
660
  ),
629
661
  ...t
630
662
  }
631
- ) }), eo = ({
663
+ ) }), to = ({
632
664
  onChange: e,
633
665
  className: t,
634
666
  placeholder: n = "What would you like to know?",
@@ -644,7 +676,7 @@ const Qn = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: "bg
644
676
  }
645
677
  }, { i18n: a } = M(["chat"]), l = ge(o.value, a.dir());
646
678
  return /* @__PURE__ */ i(
647
- Jn,
679
+ Qn,
648
680
  {
649
681
  dir: l,
650
682
  className: k(
@@ -665,7 +697,7 @@ const Qn = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: "bg
665
697
  ...o
666
698
  }
667
699
  );
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 }) => {
700
+ }, no = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: k("flex shrink-0 items-center gap-1.5 pb-1", e), ...t }), oo = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: k("flex items-center gap-0.5", e), ...t }), ro = ({ variant: e = "ghost", className: t, size: n, ...o }) => {
669
701
  const r = n ?? cn.count(o.children) > 1 ? "default" : "icon";
670
702
  return /* @__PURE__ */ i(
671
703
  ee,
@@ -684,7 +716,7 @@ const Qn = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: "bg
684
716
  ...o
685
717
  }
686
718
  );
687
- }, ro = ({
719
+ }, ao = ({
688
720
  className: e,
689
721
  variant: t = "default",
690
722
  size: n = "icon",
@@ -727,7 +759,7 @@ function Rt({ ...e }) {
727
759
  function Ot({ ...e }) {
728
760
  return /* @__PURE__ */ i(K.Trigger, { "data-slot": "tooltip-trigger", ...e });
729
761
  }
730
- function Ft({
762
+ function Lt({
731
763
  className: e,
732
764
  sideOffset: t = 0,
733
765
  children: n,
@@ -751,7 +783,7 @@ function Ft({
751
783
  ) });
752
784
  }
753
785
  const be = 768;
754
- function ao() {
786
+ function io() {
755
787
  const [e, t] = Ce.useState(void 0);
756
788
  return Ce.useEffect(() => {
757
789
  const n = window.matchMedia(`(max-width: ${be - 1}px)`), o = () => {
@@ -762,7 +794,7 @@ function ao() {
762
794
  };
763
795
  }, []), !!e;
764
796
  }
765
- function io({
797
+ function lo({
766
798
  onSend: e,
767
799
  status: t,
768
800
  isLastMessageFinished: n,
@@ -771,29 +803,29 @@ function io({
771
803
  conversationId: a,
772
804
  className: l
773
805
  }) {
774
- const { t: c } = M(["chat", "translation"]), { composer: s } = W(), [p, h] = B(""), [f, b] = B([]), m = ao(), y = Ge(null), d = Ge(null);
806
+ const { t: c } = M(["chat", "translation"]), { composer: s } = W(), [p, h] = B(""), [f, b] = B([]), m = io(), y = Ge(null), d = Ge(null);
775
807
  Q(() => {
776
808
  !m && a === "/" && y.current && y.current.focus();
777
809
  }, [a, m]);
778
810
  const v = oe((E) => {
779
811
  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 }));
812
+ const I = Array.from(E.target.files), $ = s?.attachments?.maxSize;
813
+ if ($ && I.filter((ne) => ne.size > $).length > 0) {
814
+ Rn.error(c("file_too_large", { size: $ }));
783
815
  return;
784
816
  }
785
817
  b((z) => [...z, ...I]);
786
818
  }
787
819
  E.target.value = "";
788
- }, [s, c]), x = oe((E) => {
789
- b((I) => I.filter((U, z) => z !== E));
820
+ }, [s, c]), _ = oe((E) => {
821
+ b((I) => I.filter(($, z) => z !== E));
790
822
  }, []), g = t === "streaming" && !n, R = (E) => {
791
823
  if (E.preventDefault(), !g && (p.trim() || f.length > 0)) {
792
824
  const I = new DataTransfer();
793
- f.forEach((U) => I.items.add(U)), e(p, I.files), h(""), b([]);
825
+ f.forEach(($) => I.items.add($)), e(p, I.files), h(""), b([]);
794
826
  }
795
827
  };
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: [
828
+ 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(eo, { onSubmit: R, children: [
797
829
  /* @__PURE__ */ i(
798
830
  "input",
799
831
  {
@@ -809,10 +841,10 @@ function io({
809
841
  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
842
  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" }),
811
843
  /* @__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" }) })
844
+ /* @__PURE__ */ i("button", { type: "button", onClick: () => _(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
845
  ] }, `${E.name}-${I}`)) }),
814
846
  /* @__PURE__ */ i(
815
- eo,
847
+ to,
816
848
  {
817
849
  ref: y,
818
850
  onChange: (E) => h(E.target.value),
@@ -822,13 +854,13 @@ function io({
822
854
  }
823
855
  )
824
856
  ] }),
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" }) }) }),
828
- /* @__PURE__ */ i(Ft, { children: c("attach_file") })
857
+ /* @__PURE__ */ w(no, { children: [
858
+ /* @__PURE__ */ i(oo, { children: (s?.attachments?.enabled ?? !1) && /* @__PURE__ */ w(Rt, { children: [
859
+ /* @__PURE__ */ i(Ot, { asChild: !0, children: /* @__PURE__ */ i(ro, { variant: "ghost", onClick: () => d.current?.click(), disabled: g, children: /* @__PURE__ */ i(fn, { className: "size-4" }) }) }),
860
+ /* @__PURE__ */ i(Lt, { children: c("attach_file") })
829
861
  ] }) }),
830
862
  /* @__PURE__ */ i(
831
- ro,
863
+ ao,
832
864
  {
833
865
  disabled: t !== "streaming" && !p && f.length === 0,
834
866
  status: r ? "error" : t === "error" ? void 0 : n ? "ready" : t,
@@ -838,7 +870,7 @@ function io({
838
870
  ] })
839
871
  ] }) }) });
840
872
  }
841
- const lo = ({
873
+ const so = ({
842
874
  suggestion: e,
843
875
  onClick: t,
844
876
  className: n,
@@ -862,7 +894,7 @@ const lo = ({
862
894
  children: a ?? e
863
895
  }
864
896
  );
865
- }, so = ({ onSuggestionClick: e, icons: t }) => {
897
+ }, co = ({ onSuggestionClick: e, icons: t }) => {
866
898
  const { t: n, i18n: o } = M(["chat", "translation"]), { welcome: r } = W(), a = r?.prompts ?? [], l = a.map((h) => {
867
899
  const f = typeof h == "string" ? h : h.text;
868
900
  return n(f);
@@ -889,7 +921,7 @@ const lo = ({
889
921
  className: "animate-in fade-in slide-in-from-bottom-3 duration-700 fill-mode-both",
890
922
  style: { animationDelay: `${f * 80}ms` },
891
923
  children: /* @__PURE__ */ w(
892
- lo,
924
+ so,
893
925
  {
894
926
  onClick: () => e(h),
895
927
  suggestion: h,
@@ -920,7 +952,7 @@ const lo = ({
920
952
  ]
921
953
  }
922
954
  );
923
- }, Lt = ({ className: e, from: t, ...n }) => /* @__PURE__ */ i(
955
+ }, Ft = ({ className: e, from: t, ...n }) => /* @__PURE__ */ i(
924
956
  "div",
925
957
  {
926
958
  className: k(
@@ -954,7 +986,7 @@ const lo = ({
954
986
  ...o,
955
987
  children: e
956
988
  }
957
- ), co = ({ className: e, children: t, ...n }) => /* @__PURE__ */ i(
989
+ ), uo = ({ className: e, children: t, ...n }) => /* @__PURE__ */ i(
958
990
  "div",
959
991
  {
960
992
  className: k(
@@ -998,7 +1030,7 @@ const lo = ({
998
1030
  );
999
1031
  return e ? /* @__PURE__ */ i(It, { children: /* @__PURE__ */ w(Rt, { children: [
1000
1032
  /* @__PURE__ */ i(Ot, { asChild: !0, children: c }),
1001
- /* @__PURE__ */ i(Ft, { children: /* @__PURE__ */ i("p", { children: e }) })
1033
+ /* @__PURE__ */ i(Lt, { children: /* @__PURE__ */ i("p", { children: e }) })
1002
1034
  ] }) }) : c;
1003
1035
  };
1004
1036
  class le {
@@ -1053,14 +1085,14 @@ D.prototype.overloadedBoolean = !1;
1053
1085
  D.prototype.property = "";
1054
1086
  D.prototype.spaceSeparated = !1;
1055
1087
  D.prototype.space = void 0;
1056
- let uo = 0;
1057
- const _ = G(), A = G(), Ae = G(), u = G(), T = G(), Z = G(), P = G();
1088
+ let po = 0;
1089
+ const x = G(), A = G(), Ae = G(), u = G(), T = G(), Z = G(), P = G();
1058
1090
  function G() {
1059
- return 2 ** ++uo;
1091
+ return 2 ** ++po;
1060
1092
  }
1061
1093
  const Ie = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1062
1094
  __proto__: null,
1063
- boolean: _,
1095
+ boolean: x,
1064
1096
  booleanish: A,
1065
1097
  commaOrSpaceSeparated: P,
1066
1098
  commaSeparated: Z,
@@ -1170,10 +1202,10 @@ const Mt = te({
1170
1202
  function zt(e, t) {
1171
1203
  return t in e ? e[t] : t;
1172
1204
  }
1173
- function $t(e, t) {
1205
+ function Ut(e, t) {
1174
1206
  return zt(e, t.toLowerCase());
1175
1207
  }
1176
- const po = te({
1208
+ const ho = te({
1177
1209
  attributes: {
1178
1210
  acceptcharset: "accept-charset",
1179
1211
  classname: "class",
@@ -1189,38 +1221,38 @@ const po = te({
1189
1221
  accessKey: T,
1190
1222
  action: null,
1191
1223
  allow: null,
1192
- allowFullScreen: _,
1193
- allowPaymentRequest: _,
1194
- allowUserMedia: _,
1224
+ allowFullScreen: x,
1225
+ allowPaymentRequest: x,
1226
+ allowUserMedia: x,
1195
1227
  alt: null,
1196
1228
  as: null,
1197
- async: _,
1229
+ async: x,
1198
1230
  autoCapitalize: null,
1199
1231
  autoComplete: T,
1200
- autoFocus: _,
1201
- autoPlay: _,
1232
+ autoFocus: x,
1233
+ autoPlay: x,
1202
1234
  blocking: T,
1203
1235
  capture: null,
1204
1236
  charSet: null,
1205
- checked: _,
1237
+ checked: x,
1206
1238
  cite: null,
1207
1239
  className: T,
1208
1240
  cols: u,
1209
1241
  colSpan: null,
1210
1242
  content: null,
1211
1243
  contentEditable: A,
1212
- controls: _,
1244
+ controls: x,
1213
1245
  controlsList: T,
1214
1246
  coords: u | Z,
1215
1247
  crossOrigin: null,
1216
1248
  data: null,
1217
1249
  dateTime: null,
1218
1250
  decoding: null,
1219
- default: _,
1220
- defer: _,
1251
+ default: x,
1252
+ defer: x,
1221
1253
  dir: null,
1222
1254
  dirName: null,
1223
- disabled: _,
1255
+ disabled: x,
1224
1256
  download: Ae,
1225
1257
  draggable: A,
1226
1258
  encType: null,
@@ -1230,7 +1262,7 @@ const po = te({
1230
1262
  formAction: null,
1231
1263
  formEncType: null,
1232
1264
  formMethod: null,
1233
- formNoValidate: _,
1265
+ formNoValidate: x,
1234
1266
  formTarget: null,
1235
1267
  headers: T,
1236
1268
  height: u,
@@ -1243,15 +1275,15 @@ const po = te({
1243
1275
  id: null,
1244
1276
  imageSizes: null,
1245
1277
  imageSrcSet: null,
1246
- inert: _,
1278
+ inert: x,
1247
1279
  inputMode: null,
1248
1280
  integrity: null,
1249
1281
  is: null,
1250
- isMap: _,
1282
+ isMap: x,
1251
1283
  itemId: null,
1252
1284
  itemProp: T,
1253
1285
  itemRef: T,
1254
- itemScope: _,
1286
+ itemScope: x,
1255
1287
  itemType: T,
1256
1288
  kind: null,
1257
1289
  label: null,
@@ -1259,7 +1291,7 @@ const po = te({
1259
1291
  language: null,
1260
1292
  list: null,
1261
1293
  loading: null,
1262
- loop: _,
1294
+ loop: x,
1263
1295
  low: u,
1264
1296
  manifest: null,
1265
1297
  max: null,
@@ -1268,12 +1300,12 @@ const po = te({
1268
1300
  method: null,
1269
1301
  min: null,
1270
1302
  minLength: u,
1271
- multiple: _,
1272
- muted: _,
1303
+ multiple: x,
1304
+ muted: x,
1273
1305
  name: null,
1274
1306
  nonce: null,
1275
- noModule: _,
1276
- noValidate: _,
1307
+ noModule: x,
1308
+ noValidate: x,
1277
1309
  onAbort: null,
1278
1310
  onAfterPrint: null,
1279
1311
  onAuxClick: null,
@@ -1362,31 +1394,31 @@ const po = te({
1362
1394
  onVolumeChange: null,
1363
1395
  onWaiting: null,
1364
1396
  onWheel: null,
1365
- open: _,
1397
+ open: x,
1366
1398
  optimum: u,
1367
1399
  pattern: null,
1368
1400
  ping: T,
1369
1401
  placeholder: null,
1370
- playsInline: _,
1402
+ playsInline: x,
1371
1403
  popover: null,
1372
1404
  popoverTarget: null,
1373
1405
  popoverTargetAction: null,
1374
1406
  poster: null,
1375
1407
  preload: null,
1376
- readOnly: _,
1408
+ readOnly: x,
1377
1409
  referrerPolicy: null,
1378
1410
  rel: T,
1379
- required: _,
1380
- reversed: _,
1411
+ required: x,
1412
+ reversed: x,
1381
1413
  rows: u,
1382
1414
  rowSpan: u,
1383
1415
  sandbox: T,
1384
1416
  scope: null,
1385
- scoped: _,
1386
- seamless: _,
1387
- selected: _,
1388
- shadowRootClonable: _,
1389
- shadowRootDelegatesFocus: _,
1417
+ scoped: x,
1418
+ seamless: x,
1419
+ selected: x,
1420
+ shadowRootClonable: x,
1421
+ shadowRootDelegatesFocus: x,
1390
1422
  shadowRootMode: null,
1391
1423
  shape: null,
1392
1424
  size: u,
@@ -1406,7 +1438,7 @@ const po = te({
1406
1438
  title: null,
1407
1439
  translate: null,
1408
1440
  type: null,
1409
- typeMustMatch: _,
1441
+ typeMustMatch: x,
1410
1442
  useMap: null,
1411
1443
  value: A,
1412
1444
  width: u,
@@ -1452,9 +1484,9 @@ const po = te({
1452
1484
  // `<object>`
1453
1485
  color: null,
1454
1486
  // `<font>` and `<hr>`. Use CSS instead
1455
- compact: _,
1487
+ compact: x,
1456
1488
  // Lists. Use CSS to reduce space between items instead
1457
- declare: _,
1489
+ declare: x,
1458
1490
  // `<object>`
1459
1491
  event: null,
1460
1492
  // `<script>`
@@ -1478,13 +1510,13 @@ const po = te({
1478
1510
  // `<body>`
1479
1511
  marginWidth: u,
1480
1512
  // `<body>`
1481
- noResize: _,
1513
+ noResize: x,
1482
1514
  // `<frame>`
1483
- noHref: _,
1515
+ noHref: x,
1484
1516
  // `<area>`. Use no href instead of an explicit `nohref`
1485
- noShade: _,
1517
+ noShade: x,
1486
1518
  // `<hr>`. Use background-color and height instead of borders
1487
- noWrap: _,
1519
+ noWrap: x,
1488
1520
  // `<td>` and `<th>`
1489
1521
  object: null,
1490
1522
  // `<applet>`
@@ -1524,8 +1556,8 @@ const po = te({
1524
1556
  allowTransparency: null,
1525
1557
  autoCorrect: null,
1526
1558
  autoSave: null,
1527
- disablePictureInPicture: _,
1528
- disableRemotePlayback: _,
1559
+ disablePictureInPicture: x,
1560
+ disableRemotePlayback: x,
1529
1561
  prefix: null,
1530
1562
  property: null,
1531
1563
  results: u,
@@ -1533,8 +1565,8 @@ const po = te({
1533
1565
  unselectable: null
1534
1566
  },
1535
1567
  space: "html",
1536
- transform: $t
1537
- }), ho = te({
1568
+ transform: Ut
1569
+ }), go = te({
1538
1570
  attributes: {
1539
1571
  accentHeight: "accent-height",
1540
1572
  alignmentBaseline: "alignment-baseline",
@@ -1760,7 +1792,7 @@ const po = te({
1760
1792
  dur: null,
1761
1793
  divisor: u,
1762
1794
  dominantBaseline: null,
1763
- download: _,
1795
+ download: x,
1764
1796
  dx: null,
1765
1797
  dy: null,
1766
1798
  edgeMode: null,
@@ -2093,7 +2125,7 @@ const po = te({
2093
2125
  },
2094
2126
  space: "svg",
2095
2127
  transform: zt
2096
- }), Ut = te({
2128
+ }), $t = te({
2097
2129
  properties: {
2098
2130
  xLinkActuate: null,
2099
2131
  xLinkArcRole: null,
@@ -2111,27 +2143,27 @@ const po = te({
2111
2143
  attributes: { xmlnsxlink: "xmlns:xlink" },
2112
2144
  properties: { xmlnsXLink: null, xmlns: null },
2113
2145
  space: "xmlns",
2114
- transform: $t
2146
+ transform: Ut
2115
2147
  }), Ht = te({
2116
2148
  properties: { xmlBase: null, xmlLang: null, xmlSpace: null },
2117
2149
  space: "xml",
2118
2150
  transform(e, t) {
2119
2151
  return "xml:" + t.slice(3).toLowerCase();
2120
2152
  }
2121
- }), go = /[A-Z]/g, Ze = /-[a-z]/g, mo = /^data[-\w.:]+$/i;
2122
- function fo(e, t) {
2153
+ }), mo = /[A-Z]/g, Ze = /-[a-z]/g, fo = /^data[-\w.:]+$/i;
2154
+ function bo(e, t) {
2123
2155
  const n = ae(t);
2124
2156
  let o = t, r = D;
2125
2157
  if (n in e.normal)
2126
2158
  return e.property[e.normal[n]];
2127
- if (n.length > 4 && n.slice(0, 4) === "data" && mo.test(t)) {
2159
+ if (n.length > 4 && n.slice(0, 4) === "data" && fo.test(t)) {
2128
2160
  if (t.charAt(4) === "-") {
2129
- const a = t.slice(5).replace(Ze, yo);
2161
+ const a = t.slice(5).replace(Ze, ko);
2130
2162
  o = "data" + a.charAt(0).toUpperCase() + a.slice(1);
2131
2163
  } else {
2132
2164
  const a = t.slice(4);
2133
2165
  if (!Ze.test(a)) {
2134
- let l = a.replace(go, bo);
2166
+ let l = a.replace(mo, yo);
2135
2167
  l.charAt(0) !== "-" && (l = "-" + l), t = "data" + l;
2136
2168
  }
2137
2169
  }
@@ -2139,13 +2171,13 @@ function fo(e, t) {
2139
2171
  }
2140
2172
  return new r(o, t);
2141
2173
  }
2142
- function bo(e) {
2174
+ function yo(e) {
2143
2175
  return "-" + e.toLowerCase();
2144
2176
  }
2145
- function yo(e) {
2177
+ function ko(e) {
2146
2178
  return e.charAt(1).toUpperCase();
2147
2179
  }
2148
- const ko = Pt([Mt, po, Ut, Bt, Ht], "html"), vo = Pt([Mt, ho, Ut, Bt, Ht], "svg");
2180
+ const vo = Pt([Mt, ho, $t, Bt, Ht], "html"), wo = Pt([Mt, go, $t, Bt, Ht], "svg");
2149
2181
  function Je(e) {
2150
2182
  const t = [], n = String(e || "");
2151
2183
  let o = n.indexOf(","), r = 0, a = !1;
@@ -2157,7 +2189,7 @@ function Je(e) {
2157
2189
  return t;
2158
2190
  }
2159
2191
  const Qe = /[#.]/g;
2160
- function wo(e, t) {
2192
+ function _o(e, t) {
2161
2193
  const n = e || "", o = {};
2162
2194
  let r = 0, a, l;
2163
2195
  for (; r < n.length; ) {
@@ -2178,7 +2210,7 @@ function et(e) {
2178
2210
  return t ? t.split(/[ \t\n\r\f]+/g) : [];
2179
2211
  }
2180
2212
  function qt(e, t, n) {
2181
- const o = n ? Eo(n) : void 0;
2213
+ const o = n ? No(n) : void 0;
2182
2214
  function r(a, l, ...c) {
2183
2215
  let s;
2184
2216
  if (a == null) {
@@ -2189,13 +2221,13 @@ function qt(e, t, n) {
2189
2221
  );
2190
2222
  c.unshift(p);
2191
2223
  } else {
2192
- s = wo(a, t);
2224
+ s = _o(a, t);
2193
2225
  const p = s.tagName.toLowerCase(), h = o ? o.get(p) : void 0;
2194
2226
  if (s.tagName = h || p, xo(l))
2195
2227
  c.unshift(l);
2196
2228
  else
2197
2229
  for (const [f, b] of Object.entries(l))
2198
- _o(e, s.properties, f, b);
2230
+ So(e, s.properties, f, b);
2199
2231
  }
2200
2232
  for (const p of c)
2201
2233
  Re(s.children, p);
@@ -2226,14 +2258,14 @@ function xo(e) {
2226
2258
  }
2227
2259
  return !!("children" in e && Array.isArray(e.children));
2228
2260
  }
2229
- function _o(e, t, n, o) {
2230
- const r = fo(e, n);
2261
+ function So(e, t, n, o) {
2262
+ const r = bo(e, n);
2231
2263
  let a;
2232
2264
  if (o != null) {
2233
2265
  if (typeof o == "number") {
2234
2266
  if (Number.isNaN(o)) return;
2235
2267
  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);
2268
+ } 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" ? Eo(o) : String(o);
2237
2269
  if (Array.isArray(a)) {
2238
2270
  const l = [];
2239
2271
  for (const c of a)
@@ -2269,19 +2301,19 @@ function tt(e, t, n) {
2269
2301
  }
2270
2302
  return n;
2271
2303
  }
2272
- function So(e) {
2304
+ function Eo(e) {
2273
2305
  const t = [];
2274
2306
  for (const [n, o] of Object.entries(e))
2275
2307
  t.push([n, o].join(": "));
2276
2308
  return t.join("; ");
2277
2309
  }
2278
- function Eo(e) {
2310
+ function No(e) {
2279
2311
  const t = /* @__PURE__ */ new Map();
2280
2312
  for (const n of e)
2281
2313
  t.set(n.toLowerCase(), n);
2282
2314
  return t;
2283
2315
  }
2284
- const No = [
2316
+ const To = [
2285
2317
  "altGlyph",
2286
2318
  "altGlyphDef",
2287
2319
  "altGlyphItem",
@@ -2321,28 +2353,28 @@ const No = [
2321
2353
  "solidColor",
2322
2354
  "textArea",
2323
2355
  "textPath"
2324
- ], To = qt(ko, "div"), Co = qt(vo, "g", No), ke = {
2356
+ ], Co = qt(vo, "div"), Ao = qt(wo, "g", To), ke = {
2325
2357
  html: "http://www.w3.org/1999/xhtml",
2326
2358
  svg: "http://www.w3.org/2000/svg"
2327
2359
  };
2328
- function Ao(e, t) {
2360
+ function Io(e, t) {
2329
2361
  return jt(e, {}) || { type: "root", children: [] };
2330
2362
  }
2331
2363
  function jt(e, t) {
2332
- const n = Io(e, t);
2364
+ const n = Ro(e, t);
2333
2365
  return n && t.afterTransform && t.afterTransform(e, n), n;
2334
2366
  }
2335
- function Io(e, t) {
2367
+ function Ro(e, t) {
2336
2368
  switch (e.nodeType) {
2337
2369
  case 1:
2338
- return Lo(
2370
+ return Do(
2339
2371
  /** @type {Element} */
2340
2372
  e,
2341
2373
  t
2342
2374
  );
2343
2375
  // Ignore: Attr (2).
2344
2376
  case 3:
2345
- return Oo(
2377
+ return Lo(
2346
2378
  /** @type {Text} */
2347
2379
  e
2348
2380
  );
@@ -2362,7 +2394,7 @@ function Io(e, t) {
2362
2394
  t
2363
2395
  );
2364
2396
  case 10:
2365
- return Ro();
2397
+ return Oo();
2366
2398
  case 11:
2367
2399
  return nt(
2368
2400
  /** @type {DocumentFragment} */
@@ -2376,17 +2408,17 @@ function Io(e, t) {
2376
2408
  function nt(e, t) {
2377
2409
  return { type: "root", children: Gt(e, t) };
2378
2410
  }
2379
- function Ro() {
2411
+ function Oo() {
2380
2412
  return { type: "doctype" };
2381
2413
  }
2382
- function Oo(e) {
2414
+ function Lo(e) {
2383
2415
  return { type: "text", value: e.nodeValue || "" };
2384
2416
  }
2385
2417
  function Fo(e) {
2386
2418
  return { type: "comment", value: e.nodeValue || "" };
2387
2419
  }
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 = (
2420
+ function Do(e, t) {
2421
+ const n = e.namespaceURI, o = n === ke.svg ? Ao : Co, r = n === ke.html ? e.tagName.toLowerCase() : e.tagName, a = (
2390
2422
  // @ts-expect-error: DOM types are wrong, content can exist.
2391
2423
  n === ke.html && r === "template" ? e.content : e
2392
2424
  ), l = e.getAttributeNames(), c = {};
@@ -2405,14 +2437,14 @@ function Gt(e, t) {
2405
2437
  return o;
2406
2438
  }
2407
2439
  new DOMParser();
2408
- function Do(e, t) {
2409
- const n = Po(e);
2440
+ function Po(e, t) {
2441
+ const n = Mo(e);
2410
2442
  return (
2411
2443
  /** @type {Root} */
2412
- Ao(n)
2444
+ Io(n)
2413
2445
  );
2414
2446
  }
2415
- function Po(e) {
2447
+ function Mo(e) {
2416
2448
  const t = document.createElement("template");
2417
2449
  return t.innerHTML = e, t.content;
2418
2450
  }
@@ -2433,14 +2465,14 @@ const He = (
2433
2465
  */
2434
2466
  (function(e) {
2435
2467
  if (e == null)
2436
- return Uo;
2468
+ return Bo;
2437
2469
  if (typeof e == "function")
2438
2470
  return me(e);
2439
2471
  if (typeof e == "object")
2440
- return Array.isArray(e) ? Mo(e) : (
2472
+ return Array.isArray(e) ? zo(e) : (
2441
2473
  // Cast because `ReadonlyArray` goes into the above but `isArray`
2442
2474
  // narrows to `Array`.
2443
- zo(
2475
+ Uo(
2444
2476
  /** @type {Props} */
2445
2477
  e
2446
2478
  )
@@ -2450,7 +2482,7 @@ const He = (
2450
2482
  throw new Error("Expected function, string, or object as test");
2451
2483
  })
2452
2484
  );
2453
- function Mo(e) {
2485
+ function zo(e) {
2454
2486
  const t = [];
2455
2487
  let n = -1;
2456
2488
  for (; ++n < e.length; )
@@ -2463,7 +2495,7 @@ function Mo(e) {
2463
2495
  return !1;
2464
2496
  }
2465
2497
  }
2466
- function zo(e) {
2498
+ function Uo(e) {
2467
2499
  const t = (
2468
2500
  /** @type {Record<string, unknown>} */
2469
2501
  e
@@ -2490,7 +2522,7 @@ function $o(e) {
2490
2522
  function me(e) {
2491
2523
  return t;
2492
2524
  function t(n, o, r) {
2493
- return !!(Bo(n) && e.call(
2525
+ return !!(Ho(n) && e.call(
2494
2526
  this,
2495
2527
  n,
2496
2528
  typeof o == "number" ? o : void 0,
@@ -2498,10 +2530,10 @@ function me(e) {
2498
2530
  ));
2499
2531
  }
2500
2532
  }
2501
- function Uo() {
2533
+ function Bo() {
2502
2534
  return !0;
2503
2535
  }
2504
- function Bo(e) {
2536
+ function Ho(e) {
2505
2537
  return e !== null && typeof e == "object" && "type" in e;
2506
2538
  }
2507
2539
  const ot = (
@@ -2547,17 +2579,17 @@ const ot = (
2547
2579
  */
2548
2580
  (function(e) {
2549
2581
  if (e == null)
2550
- return jo;
2582
+ return Go;
2551
2583
  if (typeof e == "string")
2552
- return qo(e);
2584
+ return jo(e);
2553
2585
  if (typeof e == "object")
2554
- return Ho(e);
2586
+ return qo(e);
2555
2587
  if (typeof e == "function")
2556
2588
  return qe(e);
2557
2589
  throw new Error("Expected function, string, or array as `test`");
2558
2590
  })
2559
2591
  );
2560
- function Ho(e) {
2592
+ function qo(e) {
2561
2593
  const t = [];
2562
2594
  let n = -1;
2563
2595
  for (; ++n < e.length; )
@@ -2570,7 +2602,7 @@ function Ho(e) {
2570
2602
  return !1;
2571
2603
  }
2572
2604
  }
2573
- function qo(e) {
2605
+ function jo(e) {
2574
2606
  return qe(t);
2575
2607
  function t(n) {
2576
2608
  return n.tagName === e;
@@ -2579,7 +2611,7 @@ function qo(e) {
2579
2611
  function qe(e) {
2580
2612
  return t;
2581
2613
  function t(n, o, r) {
2582
- return !!(Go(n) && e.call(
2614
+ return !!(Vo(n) && e.call(
2583
2615
  this,
2584
2616
  n,
2585
2617
  typeof o == "number" ? o : void 0,
@@ -2587,13 +2619,13 @@ function qe(e) {
2587
2619
  ));
2588
2620
  }
2589
2621
  }
2590
- function jo(e) {
2622
+ function Go(e) {
2591
2623
  return !!(e && typeof e == "object" && "type" in e && e.type === "element" && "tagName" in e && typeof e.tagName == "string");
2592
2624
  }
2593
- function Go(e) {
2625
+ function Vo(e) {
2594
2626
  return e !== null && typeof e == "object" && "type" in e && "tagName" in e;
2595
2627
  }
2596
- const rt = /\n/g, at = /[\t ]+/g, Oe = V("br"), it = V(Qo), Vo = V("p"), lt = V("tr"), Wo = V([
2628
+ const rt = /\n/g, at = /[\t ]+/g, Oe = V("br"), it = V(er), Wo = V("p"), lt = V("tr"), Yo = V([
2597
2629
  // List from: <https://html.spec.whatwg.org/multipage/rendering.html#hidden-elements>
2598
2630
  "datalist",
2599
2631
  "head",
@@ -2607,9 +2639,9 @@ const rt = /\n/g, at = /[\t ]+/g, Oe = V("br"), it = V(Qo), Vo = V("p"), lt = V(
2607
2639
  "template",
2608
2640
  "title",
2609
2641
  // Hidden attribute.
2610
- Jo,
2642
+ Qo,
2611
2643
  // From: <https://html.spec.whatwg.org/multipage/rendering.html#flow-content-3>
2612
- er
2644
+ tr
2613
2645
  ]), Vt = V([
2614
2646
  "address",
2615
2647
  // Flow content
@@ -2692,7 +2724,7 @@ const rt = /\n/g, at = /[\t ]+/g, Oe = V("br"), it = V(Qo), Vo = V("p"), lt = V(
2692
2724
  "xmp"
2693
2725
  // Flow content (legacy)
2694
2726
  ]);
2695
- function Yo(e, t) {
2727
+ function Xo(e, t) {
2696
2728
  const n = t || {}, o = "children" in e ? e.children : [], r = Vt(e), a = Xt(e, {
2697
2729
  whitespace: n.whitespace || "normal"
2698
2730
  }), l = [];
@@ -2726,17 +2758,17 @@ function Yo(e, t) {
2726
2758
  return s.join("");
2727
2759
  }
2728
2760
  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) : [];
2761
+ return e.type === "element" ? Ko(e, t, n) : e.type === "text" ? n.whitespace === "normal" ? Yt(e, n) : Zo(e) : [];
2730
2762
  }
2731
- function Xo(e, t, n) {
2763
+ function Ko(e, t, n) {
2732
2764
  const o = Xt(e, n), r = e.children || [];
2733
2765
  let a = -1, l = [];
2734
- if (Wo(e))
2766
+ if (Yo(e))
2735
2767
  return l;
2736
2768
  let c, s;
2737
2769
  for (Oe(e) || lt(e) && // @ts-expect-error: something up with types of parents.
2738
2770
  ot(t, e, lt) ? s = `
2739
- ` : Vo(e) ? (c = 2, s = 2) : Vt(e) && (c = 1, s = 1); ++a < r.length; )
2771
+ ` : Wo(e) ? (c = 2, s = 2) : Vt(e) && (c = 1, s = 1); ++a < r.length; )
2740
2772
  l = l.concat(
2741
2773
  Wt(r[a], e, {
2742
2774
  whitespace: o,
@@ -2756,7 +2788,7 @@ function Yt(e, t) {
2756
2788
  o.push(
2757
2789
  // Any sequence of collapsible spaces and tabs immediately preceding or
2758
2790
  // following a segment break is removed.
2759
- Zo(
2791
+ Jo(
2760
2792
  // […] ignoring bidi formatting characters (characters with the
2761
2793
  // Bidi_Control property [UAX9]: ALM, LTR, RTL, LRE-RLO, LRI-PDI) as if
2762
2794
  // they were not there.
@@ -2771,10 +2803,10 @@ function Yt(e, t) {
2771
2803
  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
2804
  return r;
2773
2805
  }
2774
- function Ko(e) {
2806
+ function Zo(e) {
2775
2807
  return [String(e.value)];
2776
2808
  }
2777
- function Zo(e, t, n) {
2809
+ function Jo(e, t, n) {
2778
2810
  const o = [];
2779
2811
  let r = 0, a;
2780
2812
  for (; r < e.length; ) {
@@ -2805,17 +2837,17 @@ function Xt(e, t) {
2805
2837
  }
2806
2838
  return t.whitespace;
2807
2839
  }
2808
- function Jo(e) {
2840
+ function Qo(e) {
2809
2841
  return !!(e.properties || {}).hidden;
2810
2842
  }
2811
- function Qo(e) {
2843
+ function er(e) {
2812
2844
  return e.tagName === "td" || e.tagName === "th";
2813
2845
  }
2814
- function er(e) {
2846
+ function tr(e) {
2815
2847
  return e.tagName === "dialog" && !(e.properties || {}).open;
2816
2848
  }
2817
- const Kt = [], tr = !0, st = !1, Zt = "skip";
2818
- function nr(e, t, n, o) {
2849
+ const Kt = [], nr = !0, st = !1, Zt = "skip";
2850
+ function or(e, t, n, o) {
2819
2851
  let r;
2820
2852
  r = t;
2821
2853
  const a = He(r), l = 1;
@@ -2840,16 +2872,16 @@ function nr(e, t, n, o) {
2840
2872
  return b;
2841
2873
  function b() {
2842
2874
  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))
2875
+ if (a(s, p, h[h.length - 1] || void 0) && (m = rr(n(s, h)), m[0] === st))
2844
2876
  return m;
2845
2877
  if ("children" in s && s.children) {
2846
- const x = (
2878
+ const _ = (
2847
2879
  /** @type {UnistParent} */
2848
2880
  s
2849
2881
  );
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];
2882
+ if (_.children && m[0] !== Zt)
2883
+ for (d = -1 + l, v = h.concat(_); d > -1 && d < _.children.length; ) {
2884
+ const g = _.children[d];
2853
2885
  if (y = c(g, d, v)(), y[0] === st)
2854
2886
  return y;
2855
2887
  d = typeof y[1] == "number" ? y[1] : d + l;
@@ -2859,21 +2891,21 @@ function nr(e, t, n, o) {
2859
2891
  }
2860
2892
  }
2861
2893
  }
2862
- function or(e) {
2863
- return Array.isArray(e) ? e : typeof e == "number" ? [tr, e] : e == null ? Kt : [e];
2894
+ function rr(e) {
2895
+ return Array.isArray(e) ? e : typeof e == "number" ? [nr, e] : e == null ? Kt : [e];
2864
2896
  }
2865
- const rr = {}, ar = [];
2866
- function ir(e) {
2867
- const t = e || rr;
2897
+ const ar = {}, ir = [];
2898
+ function lr(e) {
2899
+ const t = e || ar;
2868
2900
  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");
2901
+ or(n, "element", function(r, a) {
2902
+ const l = Array.isArray(r.properties.className) ? r.properties.className : ir, c = l.includes("language-math"), s = l.includes("math-display"), p = l.includes("math-inline");
2871
2903
  let h = s;
2872
2904
  if (!c && !s && !p)
2873
2905
  return;
2874
2906
  let f = a[a.length - 1], b = r;
2875
2907
  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" });
2908
+ const m = Xo(b, { whitespace: "pre" });
2877
2909
  let y;
2878
2910
  try {
2879
2911
  y = Ve.renderToString(m, {
@@ -2882,13 +2914,13 @@ function ir(e) {
2882
2914
  throwOnError: !0
2883
2915
  });
2884
2916
  } catch (v) {
2885
- const x = (
2917
+ const _ = (
2886
2918
  /** @type {Error} */
2887
2919
  v
2888
- ), g = x.name.toLowerCase();
2920
+ ), g = _.name.toLowerCase();
2889
2921
  o.message("Could not render math with KaTeX", {
2890
2922
  ancestors: [...a, r],
2891
- cause: x,
2923
+ cause: _,
2892
2924
  place: r.position,
2893
2925
  ruleId: g,
2894
2926
  source: "rehype-katex"
@@ -2916,20 +2948,20 @@ function ir(e) {
2916
2948
  }
2917
2949
  }
2918
2950
  typeof y == "string" && (y = /** @type {Array<ElementContent>} */
2919
- Do(y).children);
2951
+ Po(y).children);
2920
2952
  const d = f.children.indexOf(b);
2921
2953
  return f.children.splice(d, 1, ...y), Zt;
2922
2954
  });
2923
2955
  };
2924
2956
  }
2925
- function lr(e, t) {
2957
+ function sr(e, t) {
2926
2958
  const n = String(e);
2927
2959
  let o = n.indexOf(t), r = o, a = 0, l = 0;
2928
2960
  for (; o !== -1; )
2929
2961
  o === r ? ++a > l && (l = a) : a = 1, r = o + t.length, o = n.indexOf(t, r);
2930
2962
  return l;
2931
2963
  }
2932
- function sr() {
2964
+ function cr() {
2933
2965
  return {
2934
2966
  enter: {
2935
2967
  mathFlow: e,
@@ -3005,7 +3037,7 @@ function sr() {
3005
3037
  this.config.enter.data.call(this, s), this.config.exit.data.call(this, s);
3006
3038
  }
3007
3039
  }
3008
- function cr(e) {
3040
+ function ur(e) {
3009
3041
  let t = (e || {}).singleDollarTextMath;
3010
3042
  return t == null && (t = !0), o.peek = r, {
3011
3043
  unsafe: [
@@ -3023,7 +3055,7 @@ function cr(e) {
3023
3055
  handlers: { math: n, inlineMath: o }
3024
3056
  };
3025
3057
  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");
3058
+ const p = a.value || "", h = c.createTracker(s), f = "$".repeat(Math.max(sr(p, "$") + 1, 2)), b = c.enter("mathFlow");
3027
3059
  let m = h.move(f);
3028
3060
  if (a.meta) {
3029
3061
  const y = c.enter("mathFlowMeta");
@@ -3084,15 +3116,15 @@ function ce(e, t, n, o) {
3084
3116
  return ct(s) && a++ < r ? (e.consume(s), c) : (e.exit(n), t(s));
3085
3117
  }
3086
3118
  }
3087
- const ur = {
3088
- tokenize: dr,
3119
+ const dr = {
3120
+ tokenize: pr,
3089
3121
  concrete: !0,
3090
3122
  name: "mathFlow"
3091
3123
  }, ut = {
3092
- tokenize: pr,
3124
+ tokenize: hr,
3093
3125
  partial: !0
3094
3126
  };
3095
- function dr(e, t, n) {
3127
+ function pr(e, t, n) {
3096
3128
  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
3129
  let l = 0;
3098
3130
  return c;
@@ -3115,7 +3147,7 @@ function dr(e, t, n) {
3115
3147
  }
3116
3148
  function b(g) {
3117
3149
  return e.attempt({
3118
- tokenize: x,
3150
+ tokenize: _,
3119
3151
  partial: !0
3120
3152
  }, v, m)(g);
3121
3153
  }
@@ -3131,10 +3163,10 @@ function dr(e, t, n) {
3131
3163
  function v(g) {
3132
3164
  return e.exit("mathFlow"), t(g);
3133
3165
  }
3134
- function x(g, R, E) {
3166
+ function _(g, R, E) {
3135
3167
  let I = 0;
3136
- return ce(g, U, "linePrefix", o.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4);
3137
- function U(O) {
3168
+ return ce(g, $, "linePrefix", o.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4);
3169
+ function $(O) {
3138
3170
  return g.enter("mathFlowFence"), g.enter("mathFlowFenceSequence"), z(O);
3139
3171
  }
3140
3172
  function z(O) {
@@ -3145,7 +3177,7 @@ function dr(e, t, n) {
3145
3177
  }
3146
3178
  }
3147
3179
  }
3148
- function pr(e, t, n) {
3180
+ function hr(e, t, n) {
3149
3181
  const o = this;
3150
3182
  return r;
3151
3183
  function r(l) {
@@ -3155,12 +3187,12 @@ function pr(e, t, n) {
3155
3187
  return o.parser.lazy[o.now().line] ? n(l) : t(l);
3156
3188
  }
3157
3189
  }
3158
- function hr(e) {
3190
+ function gr(e) {
3159
3191
  let n = (e || {}).singleDollarTextMath;
3160
3192
  return n == null && (n = !0), {
3161
3193
  tokenize: o,
3162
- resolve: gr,
3163
- previous: mr,
3194
+ resolve: mr,
3195
+ previous: fr,
3164
3196
  name: "mathText"
3165
3197
  };
3166
3198
  function o(r, a, l) {
@@ -3183,7 +3215,7 @@ function hr(e) {
3183
3215
  }
3184
3216
  }
3185
3217
  }
3186
- function gr(e) {
3218
+ function mr(e) {
3187
3219
  let t = e.length - 4, n = 3, o, r;
3188
3220
  if ((e[n][1].type === "lineEnding" || e[n][1].type === "space") && (e[t][1].type === "lineEnding" || e[t][1].type === "space")) {
3189
3221
  for (o = n; ++o < t; )
@@ -3196,35 +3228,35 @@ function gr(e) {
3196
3228
  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
3229
  return e;
3198
3230
  }
3199
- function mr(e) {
3231
+ function fr(e) {
3200
3232
  return e !== 36 || this.events[this.events.length - 1][1].type === "characterEscape";
3201
3233
  }
3202
- function fr(e) {
3234
+ function br(e) {
3203
3235
  return {
3204
3236
  flow: {
3205
- 36: ur
3237
+ 36: dr
3206
3238
  },
3207
3239
  text: {
3208
- 36: hr(e)
3240
+ 36: gr(e)
3209
3241
  }
3210
3242
  };
3211
3243
  }
3212
- const br = {};
3213
- function yr(e) {
3244
+ const yr = {};
3245
+ function kr(e) {
3214
3246
  const t = (
3215
3247
  /** @type {Processor} */
3216
3248
  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));
3249
+ ), n = e || yr, o = t.data(), r = o.micromarkExtensions || (o.micromarkExtensions = []), a = o.fromMarkdownExtensions || (o.fromMarkdownExtensions = []), l = o.toMarkdownExtensions || (o.toMarkdownExtensions = []);
3250
+ r.push(br(n)), a.push(cr()), l.push(ur(n));
3219
3251
  }
3220
- function kr(e = {}) {
3252
+ function vr(e = {}) {
3221
3253
  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)" }];
3254
+ let o = [kr, { singleDollarTextMath: (t = e.singleDollarTextMath) != null ? t : !1 }], r = [lr, { errorColor: (n = e.errorColor) != null ? n : "var(--color-muted-foreground)" }];
3223
3255
  return { name: "katex", type: "math", remarkPlugin: o, rehypePlugin: r, getStyles() {
3224
3256
  return "katex/dist/katex.min.css";
3225
3257
  } };
3226
3258
  }
3227
- var dt = kr();
3259
+ var dt = vr();
3228
3260
  const je = de(
3229
3261
  ({ className: e, ...t }) => /* @__PURE__ */ i(
3230
3262
  On,
@@ -3238,7 +3270,7 @@ const je = de(
3238
3270
  (e, t) => e.children === t.children
3239
3271
  );
3240
3272
  je.displayName = "Response";
3241
- function vr({
3273
+ function wr({
3242
3274
  part: e,
3243
3275
  message: t,
3244
3276
  status: n,
@@ -3252,10 +3284,10 @@ function vr({
3252
3284
  feedbackEnabled: h,
3253
3285
  retryEnabled: f
3254
3286
  }) {
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 || (() => {
3287
+ const { t: b } = M(["chat"]), { textComponents: m, remarkPlugins: y, rehypePlugins: d } = W(), v = ge(e.text), _ = !o && r && (n === "streaming" || n === "submitted"), g = l || (() => {
3256
3288
  });
3257
3289
  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(
3290
+ /* @__PURE__ */ i(Ft, { from: t.role, children: /* @__PURE__ */ i(Dt, { dir: v, children: /* @__PURE__ */ i(
3259
3291
  je,
3260
3292
  {
3261
3293
  components: m,
@@ -3264,7 +3296,7 @@ function vr({
3264
3296
  children: e.text
3265
3297
  }
3266
3298
  ) }) }),
3267
- a && !x && /* @__PURE__ */ w(co, { className: k("mt-1.5 ml-0.5", t.role === "user" && "justify-end"), children: [
3299
+ a && !_ && /* @__PURE__ */ w(uo, { className: k("mt-1.5 ml-0.5", t.role === "user" && "justify-end"), children: [
3268
3300
  t.role === "assistant" && /* @__PURE__ */ w(J, { children: [
3269
3301
  r && f && /* @__PURE__ */ i(
3270
3302
  se,
@@ -3312,12 +3344,12 @@ function vr({
3312
3344
  ] })
3313
3345
  ] });
3314
3346
  }
3315
- const Jt = pe(null), wr = () => {
3316
- const e = Le(Jt);
3347
+ const Jt = pe(null), _r = () => {
3348
+ const e = Fe(Jt);
3317
3349
  if (!e)
3318
3350
  throw new Error("Reasoning components must be used within Reasoning");
3319
3351
  return e;
3320
- }, xr = 1e3, _r = 1e3, Qt = de(
3352
+ }, xr = 1e3, Sr = 1e3, Qt = de(
3321
3353
  ({
3322
3354
  className: e,
3323
3355
  isStreaming: t = !1,
@@ -3338,19 +3370,19 @@ const Jt = pe(null), wr = () => {
3338
3370
  defaultProp: 0
3339
3371
  }), [b, m] = B(!1), [y, d] = B(null);
3340
3372
  Q(() => {
3341
- t ? y === null && d(Date.now()) : y !== null && (f(Math.ceil((Date.now() - y) / _r)), d(null));
3373
+ t ? y === null && d(Date.now()) : y !== null && (f(Math.ceil((Date.now() - y) / Sr)), d(null));
3342
3374
  }, [t, y, f]), Q(() => {
3343
3375
  if (o && !t && s && !b) {
3344
- const x = setTimeout(() => {
3376
+ const _ = setTimeout(() => {
3345
3377
  p(!1), m(!0);
3346
3378
  }, xr);
3347
3379
  return () => {
3348
- clearTimeout(x);
3380
+ clearTimeout(_);
3349
3381
  };
3350
3382
  }
3351
3383
  }, [t, s, o, p, b]);
3352
- const v = (x) => {
3353
- p(x);
3384
+ const v = (_) => {
3385
+ p(_);
3354
3386
  };
3355
3387
  return /* @__PURE__ */ i(Jt.Provider, { value: { isStreaming: t, isOpen: s, setIsOpen: p, duration: h }, children: /* @__PURE__ */ i(
3356
3388
  ze,
@@ -3364,8 +3396,8 @@ const Jt = pe(null), wr = () => {
3364
3396
  ) });
3365
3397
  }
3366
3398
  ), 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: [
3399
+ const { isStreaming: o, isOpen: r, duration: a } = _r();
3400
+ return /* @__PURE__ */ i(Ue, { className: k("flex items-center gap-2 text-muted-foreground text-sm", e), ...n, children: t ?? /* @__PURE__ */ w(J, { children: [
3369
3401
  /* @__PURE__ */ i(wn, { className: "size-4" }),
3370
3402
  o || a === 0 ? /* @__PURE__ */ i("p", { children: "Thinking..." }) : /* @__PURE__ */ w("p", { children: [
3371
3403
  "Thought for ",
@@ -3381,7 +3413,7 @@ const Jt = pe(null), wr = () => {
3381
3413
  )
3382
3414
  ] }) });
3383
3415
  }), tn = de(({ className: e, children: t, ...n }) => /* @__PURE__ */ i(
3384
- Ue,
3416
+ $e,
3385
3417
  {
3386
3418
  className: k(
3387
3419
  "mt-4 text-base",
@@ -3395,7 +3427,7 @@ const Jt = pe(null), wr = () => {
3395
3427
  Qt.displayName = "Reasoning";
3396
3428
  en.displayName = "ReasoningTrigger";
3397
3429
  tn.displayName = "ReasoningContent";
3398
- function Sr({
3430
+ function Er({
3399
3431
  part: e,
3400
3432
  status: t,
3401
3433
  index: n,
@@ -3415,7 +3447,7 @@ function Sr({
3415
3447
  }
3416
3448
  );
3417
3449
  }
3418
- const Er = Pe(
3450
+ const Nr = Pe(
3419
3451
  "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
3452
  {
3421
3453
  variants: {
@@ -3431,27 +3463,27 @@ const Er = Pe(
3431
3463
  }
3432
3464
  }
3433
3465
  );
3434
- function Nr({
3466
+ function Tr({
3435
3467
  className: e,
3436
3468
  variant: t,
3437
3469
  asChild: n = !1,
3438
3470
  ...o
3439
3471
  }) {
3440
- return /* @__PURE__ */ i(n ? Ct : "span", { "data-slot": "badge", className: k(Er({ variant: t }), e), ...o });
3472
+ return /* @__PURE__ */ i(n ? Ct : "span", { "data-slot": "badge", className: k(Nr({ variant: t }), e), ...o });
3441
3473
  }
3442
- function Tr({ ...e }) {
3474
+ function Cr({ ...e }) {
3443
3475
  return /* @__PURE__ */ i(H.Root, { "data-slot": "dialog", ...e });
3444
3476
  }
3445
- function Cr({ ...e }) {
3477
+ function Ar({ ...e }) {
3446
3478
  return /* @__PURE__ */ i(H.Trigger, { "data-slot": "dialog-trigger", ...e });
3447
3479
  }
3448
- function Ar({ ...e }) {
3480
+ function Ir({ ...e }) {
3449
3481
  return /* @__PURE__ */ i(H.Portal, { "data-slot": "dialog-portal", ...e });
3450
3482
  }
3451
- function vi({ ...e }) {
3483
+ function wi({ ...e }) {
3452
3484
  return /* @__PURE__ */ i(H.Close, { "data-slot": "dialog-close", ...e });
3453
3485
  }
3454
- function Ir({ className: e, ...t }) {
3486
+ function Rr({ className: e, ...t }) {
3455
3487
  return /* @__PURE__ */ i(
3456
3488
  H.Overlay,
3457
3489
  {
@@ -3464,14 +3496,14 @@ function Ir({ className: e, ...t }) {
3464
3496
  }
3465
3497
  );
3466
3498
  }
3467
- function Rr({
3499
+ function Or({
3468
3500
  className: e,
3469
3501
  children: t,
3470
3502
  showCloseButton: n = !0,
3471
3503
  ...o
3472
3504
  }) {
3473
- return /* @__PURE__ */ w(Ar, { "data-slot": "dialog-portal", children: [
3474
- /* @__PURE__ */ i(Ir, {}),
3505
+ return /* @__PURE__ */ w(Ir, { "data-slot": "dialog-portal", children: [
3506
+ /* @__PURE__ */ i(Rr, {}),
3475
3507
  /* @__PURE__ */ w(
3476
3508
  H.Content,
3477
3509
  {
@@ -3499,7 +3531,7 @@ function Rr({
3499
3531
  )
3500
3532
  ] });
3501
3533
  }
3502
- function Or({ className: e, ...t }) {
3534
+ function Lr({ className: e, ...t }) {
3503
3535
  return /* @__PURE__ */ i(
3504
3536
  "div",
3505
3537
  {
@@ -3509,7 +3541,7 @@ function Or({ className: e, ...t }) {
3509
3541
  }
3510
3542
  );
3511
3543
  }
3512
- function wi({ className: e, ...t }) {
3544
+ function _i({ className: e, ...t }) {
3513
3545
  return /* @__PURE__ */ i(
3514
3546
  "div",
3515
3547
  {
@@ -3539,7 +3571,7 @@ function xi({ className: e, ...t }) {
3539
3571
  }
3540
3572
  );
3541
3573
  }
3542
- const Lr = {
3574
+ const Dr = {
3543
3575
  'code[class*="language-"]': {
3544
3576
  background: "hsl(220, 13%, 18%)",
3545
3577
  color: "hsl(220, 14%, 71%)",
@@ -4039,7 +4071,7 @@ const Lr = {
4039
4071
  ".prism-previewer-easing.prism-previewer-easing line": {
4040
4072
  stroke: "hsl(220, 14%, 71%)"
4041
4073
  }
4042
- }, Dr = {
4074
+ }, Pr = {
4043
4075
  'code[class*="language-"]': {
4044
4076
  background: "hsl(230, 1%, 98%)",
4045
4077
  color: "hsl(230, 8%, 24%)",
@@ -4532,7 +4564,7 @@ function q(e) {
4532
4564
  return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
4533
4565
  }
4534
4566
  var ve, pt;
4535
- function Pr() {
4567
+ function Mr() {
4536
4568
  if (pt) return ve;
4537
4569
  pt = 1, ve = e, e.displayName = "python", e.aliases = ["py"];
4538
4570
  function e(t) {
@@ -4600,8 +4632,8 @@ function Pr() {
4600
4632
  }
4601
4633
  return ve;
4602
4634
  }
4603
- var Mr = Pr();
4604
- const zr = /* @__PURE__ */ q(Mr);
4635
+ var zr = Mr();
4636
+ const Ur = /* @__PURE__ */ q(zr);
4605
4637
  var we, ht;
4606
4638
  function $r() {
4607
4639
  if (ht) return we;
@@ -4732,12 +4764,12 @@ function $r() {
4732
4764
  }
4733
4765
  return we;
4734
4766
  }
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"];
4767
+ var Br = $r();
4768
+ const Hr = /* @__PURE__ */ q(Br);
4769
+ var _e, gt;
4770
+ function qr() {
4771
+ if (gt) return _e;
4772
+ gt = 1, _e = e, e.displayName = "typescript", e.aliases = ["ts"];
4741
4773
  function e(t) {
4742
4774
  (function(n) {
4743
4775
  n.languages.typescript = n.languages.extend("javascript", {
@@ -4785,14 +4817,14 @@ function Hr() {
4785
4817
  }), n.languages.ts = n.languages.typescript;
4786
4818
  })(t);
4787
4819
  }
4788
- return xe;
4820
+ return _e;
4789
4821
  }
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"];
4822
+ var jr = qr();
4823
+ const Gr = /* @__PURE__ */ q(jr);
4824
+ var xe, mt;
4825
+ function Vr() {
4826
+ if (mt) return xe;
4827
+ mt = 1, xe = e, e.displayName = "json", e.aliases = ["webmanifest"];
4796
4828
  function e(t) {
4797
4829
  t.languages.json = {
4798
4830
  property: {
@@ -4819,12 +4851,12 @@ function Gr() {
4819
4851
  }
4820
4852
  }, t.languages.webmanifest = t.languages.json;
4821
4853
  }
4822
- return _e;
4854
+ return xe;
4823
4855
  }
4824
- var Vr = Gr();
4825
- const Wr = /* @__PURE__ */ q(Vr);
4856
+ var Wr = Vr();
4857
+ const Yr = /* @__PURE__ */ q(Wr);
4826
4858
  var Se, ft;
4827
- function Yr() {
4859
+ function Xr() {
4828
4860
  if (ft) return Se;
4829
4861
  ft = 1, Se = e, e.displayName = "bash", e.aliases = ["shell"];
4830
4862
  function e(t) {
@@ -5043,10 +5075,10 @@ function Yr() {
5043
5075
  }
5044
5076
  return Se;
5045
5077
  }
5046
- var Xr = Yr();
5047
- const Kr = /* @__PURE__ */ q(Xr);
5078
+ var Kr = Xr();
5079
+ const Zr = /* @__PURE__ */ q(Kr);
5048
5080
  var Ee, bt;
5049
- function Zr() {
5081
+ function Jr() {
5050
5082
  if (bt) return Ee;
5051
5083
  bt = 1, Ee = e, e.displayName = "sql", e.aliases = [];
5052
5084
  function e(t) {
@@ -5086,10 +5118,10 @@ function Zr() {
5086
5118
  }
5087
5119
  return Ee;
5088
5120
  }
5089
- var Jr = Zr();
5090
- const Qr = /* @__PURE__ */ q(Jr);
5121
+ var Qr = Jr();
5122
+ const ea = /* @__PURE__ */ q(Qr);
5091
5123
  var Ne, yt;
5092
- function ea() {
5124
+ function ta() {
5093
5125
  if (yt) return Ne;
5094
5126
  yt = 1, Ne = e, e.displayName = "yaml", e.aliases = ["yml"];
5095
5127
  function e(t) {
@@ -5177,10 +5209,10 @@ function ea() {
5177
5209
  }
5178
5210
  return Ne;
5179
5211
  }
5180
- var ta = ea();
5181
- const na = /* @__PURE__ */ q(ta);
5212
+ var na = ta();
5213
+ const oa = /* @__PURE__ */ q(na);
5182
5214
  var Te, kt;
5183
- function oa() {
5215
+ function ra() {
5184
5216
  if (kt) return Te;
5185
5217
  kt = 1, Te = e, e.displayName = "markdown", e.aliases = ["md"];
5186
5218
  function e(t) {
@@ -5442,12 +5474,12 @@ function oa() {
5442
5474
  function m(y) {
5443
5475
  if (!(!y || typeof y == "string"))
5444
5476
  for (var d = 0, v = y.length; d < v; d++) {
5445
- var x = y[d];
5446
- if (x.type !== "code") {
5447
- m(x.content);
5477
+ var _ = y[d];
5478
+ if (_.type !== "code") {
5479
+ m(_.content);
5448
5480
  continue;
5449
5481
  }
5450
- var g = x.content[1], R = x.content[3];
5482
+ var g = _.content[1], R = _.content[3];
5451
5483
  if (g && R && g.type === "code-language" && R.type === "code-block" && typeof g.content == "string") {
5452
5484
  var E = g.content.replace(/\b#/g, "sharp").replace(/\b\+\+/g, "pp");
5453
5485
  E = (/[a-z][\w-]*/i.exec(E) || [""])[0].toLowerCase();
@@ -5460,9 +5492,9 @@ function oa() {
5460
5492
  }), n.hooks.add("wrap", function(b) {
5461
5493
  if (b.type === "code-block") {
5462
5494
  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];
5495
+ var v = b.classes[y], _ = /language-(.+)/.exec(v);
5496
+ if (_) {
5497
+ m = _[1];
5466
5498
  break;
5467
5499
  }
5468
5500
  }
@@ -5499,8 +5531,8 @@ function oa() {
5499
5531
  var v;
5500
5532
  return d[1] === "x" ? v = parseInt(d.slice(2), 16) : v = Number(d.slice(1)), h(v);
5501
5533
  } else {
5502
- var x = p[d];
5503
- return x || y;
5534
+ var _ = p[d];
5535
+ return _ || y;
5504
5536
  }
5505
5537
  }), m;
5506
5538
  }
@@ -5509,26 +5541,26 @@ function oa() {
5509
5541
  }
5510
5542
  return Te;
5511
5543
  }
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({
5544
+ var aa = ra();
5545
+ const ia = /* @__PURE__ */ q(aa);
5546
+ U.registerLanguage("python", Ur);
5547
+ U.registerLanguage("javascript", Hr);
5548
+ U.registerLanguage("typescript", Gr);
5549
+ U.registerLanguage("json", Yr);
5550
+ U.registerLanguage("bash", Zr);
5551
+ U.registerLanguage("sql", ea);
5552
+ U.registerLanguage("yaml", oa);
5553
+ U.registerLanguage("markdown", ia);
5554
+ const la = pe({
5523
5555
  code: ""
5524
- }), Fe = ({
5556
+ }), Le = ({
5525
5557
  code: e,
5526
5558
  language: t,
5527
5559
  showLineNumbers: n = !1,
5528
5560
  className: o,
5529
5561
  children: r,
5530
5562
  ...a
5531
- }) => /* @__PURE__ */ i(ia.Provider, { value: { code: e }, children: /* @__PURE__ */ i(
5563
+ }) => /* @__PURE__ */ i(la.Provider, { value: { code: e }, children: /* @__PURE__ */ i(
5532
5564
  "div",
5533
5565
  {
5534
5566
  className: k("relative w-full overflow-hidden rounded-md border bg-background text-foreground", o),
@@ -5536,7 +5568,7 @@ const ia = pe({
5536
5568
  ...a,
5537
5569
  children: /* @__PURE__ */ w("div", { className: "relative", children: [
5538
5570
  /* @__PURE__ */ i(
5539
- $,
5571
+ U,
5540
5572
  {
5541
5573
  className: "overflow-hidden dark:hidden",
5542
5574
  codeTagProps: {
@@ -5556,12 +5588,12 @@ const ia = pe({
5556
5588
  minWidth: "2.5rem"
5557
5589
  },
5558
5590
  showLineNumbers: n,
5559
- style: Dr,
5591
+ style: Pr,
5560
5592
  children: e
5561
5593
  }
5562
5594
  ),
5563
5595
  /* @__PURE__ */ i(
5564
- $,
5596
+ U,
5565
5597
  {
5566
5598
  className: "hidden overflow-hidden dark:block",
5567
5599
  codeTagProps: {
@@ -5581,7 +5613,7 @@ const ia = pe({
5581
5613
  minWidth: "2.5rem"
5582
5614
  },
5583
5615
  showLineNumbers: n,
5584
- style: Lr,
5616
+ style: Dr,
5585
5617
  children: e
5586
5618
  }
5587
5619
  ),
@@ -5589,22 +5621,22 @@ const ia = pe({
5589
5621
  ] })
5590
5622
  }
5591
5623
  ) });
5592
- function la(e, t = "size-4") {
5624
+ function sa(e, t = "size-4") {
5593
5625
  return {
5594
5626
  web_search: /* @__PURE__ */ i(En, { className: t }),
5595
5627
  web_fetch: /* @__PURE__ */ i(ue, { className: t }),
5596
5628
  code_execution: /* @__PURE__ */ i(Sn, { className: t }),
5597
- image_generation: /* @__PURE__ */ i(_n, { className: t })
5598
- }[e] ?? /* @__PURE__ */ i(xn, { className: t });
5629
+ image_generation: /* @__PURE__ */ i(xn, { className: t })
5630
+ }[e] ?? /* @__PURE__ */ i(_n, { className: t });
5599
5631
  }
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 }) => {
5632
+ const ca = ({ className: e, ...t }) => /* @__PURE__ */ i(ze, { className: k("not-prose mb-4 w-full rounded-md border", e), ...t }), ua = ({ status: e }) => {
5601
5633
  const { t } = M(["tools_ui"]), n = {
5602
5634
  "input-streaming": t("pending"),
5603
5635
  "input-available": t("running"),
5604
5636
  "output-available": t("completed"),
5605
5637
  "output-error": t("error")
5606
5638
  };
5607
- return /* @__PURE__ */ w(Nr, { className: "gap-1.5 rounded-full text-xs", variant: "secondary", children: [
5639
+ return /* @__PURE__ */ w(Tr, { className: "gap-1.5 rounded-full text-xs", variant: "secondary", children: [
5608
5640
  {
5609
5641
  "input-streaming": /* @__PURE__ */ i(Cn, { className: "size-4" }),
5610
5642
  "input-available": /* @__PURE__ */ i(Tn, { className: "size-4 animate-pulse" }),
@@ -5613,18 +5645,18 @@ const sa = ({ className: e, ...t }) => /* @__PURE__ */ i(ze, { className: k("not
5613
5645
  }[e],
5614
5646
  n[e]
5615
5647
  ] });
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: [
5648
+ }, da = ({ className: e, type: t, state: n, toolName: o, ...r }) => {
5649
+ const a = o || (t.startsWith("tool-") ? t.slice(5) : t), l = sa(a, "size-4 text-muted-foreground");
5650
+ return /* @__PURE__ */ w(Ue, { className: k("flex w-full items-center justify-between gap-4 p-3", e), ...r, children: [
5619
5651
  /* @__PURE__ */ w("div", { className: "flex items-center gap-2", children: [
5620
5652
  l,
5621
5653
  /* @__PURE__ */ i("span", { className: "font-medium text-sm", children: a }),
5622
- /* @__PURE__ */ i(ca, { status: n })
5654
+ /* @__PURE__ */ i(ua, { status: n })
5623
5655
  ] }),
5624
5656
  /* @__PURE__ */ i(ie, { className: "size-4 text-muted-foreground transition-transform group-data-[state=open]:rotate-180" })
5625
5657
  ] });
5626
- }, da = ({ className: e, ...t }) => /* @__PURE__ */ i(
5627
- Ue,
5658
+ }, pa = ({ className: e, ...t }) => /* @__PURE__ */ i(
5659
+ $e,
5628
5660
  {
5629
5661
  className: k(
5630
5662
  "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",
@@ -5640,13 +5672,13 @@ const sa = ({ className: e, ...t }) => /* @__PURE__ */ i(ze, { className: k("not
5640
5672
  return e;
5641
5673
  }
5642
5674
  return JSON.stringify(e, null, 2);
5643
- }, pa = ({ className: e, input: t, ...n }) => {
5675
+ }, ha = ({ className: e, input: t, ...n }) => {
5644
5676
  const { t: o } = M(["tools_ui"]);
5645
5677
  return /* @__PURE__ */ w("div", { className: k("space-y-2 overflow-hidden p-4", e), ...n, children: [
5646
5678
  /* @__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" }) })
5679
+ /* @__PURE__ */ i("div", { className: "rounded-md bg-muted/50", children: /* @__PURE__ */ i(Le, { code: nn(t), language: "json" }) })
5648
5680
  ] });
5649
- }, ha = ({ className: e, output: t, errorText: n, ...o }) => {
5681
+ }, ga = ({ className: e, output: t, errorText: n, ...o }) => {
5650
5682
  const { t: r } = M(["tools_ui"]), [a, l] = B(!1);
5651
5683
  if (!(t || n))
5652
5684
  return null;
@@ -5658,21 +5690,21 @@ const sa = ({ className: e, ...t }) => /* @__PURE__ */ i(ze, { className: k("not
5658
5690
  if (typeof t == "string")
5659
5691
  try {
5660
5692
  const p = JSON.parse(t);
5661
- return /* @__PURE__ */ i(Fe, { code: JSON.stringify(p, null, 2), language: "json" });
5693
+ return /* @__PURE__ */ i(Le, { code: JSON.stringify(p, null, 2), language: "json" });
5662
5694
  } catch {
5663
5695
  return /* @__PURE__ */ i("div", { className: "p-4 text-sm whitespace-pre-wrap", dir: "ltr", children: t });
5664
5696
  }
5665
- return typeof t == "object" && t !== null && !("$$typeof" in t) ? /* @__PURE__ */ i(Fe, { code: JSON.stringify(t, null, 2), language: "json" }) : t;
5697
+ return typeof t == "object" && t !== null && !("$$typeof" in t) ? /* @__PURE__ */ i(Le, { code: JSON.stringify(t, null, 2), language: "json" }) : t;
5666
5698
  };
5667
5699
  return /* @__PURE__ */ w("div", { className: k("space-y-2 p-4", e), ...o, children: [
5668
5700
  /* @__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: [
5701
+ n && /* @__PURE__ */ w(Cr, { children: [
5702
+ /* @__PURE__ */ i(Ar, { asChild: !0, children: /* @__PURE__ */ w(ee, { variant: "destructive", size: "sm", children: [
5671
5703
  /* @__PURE__ */ i(Tt, { className: "mr-1.5 size-4" }),
5672
5704
  r("view_error")
5673
5705
  ] }) }),
5674
- /* @__PURE__ */ w(Rr, { className: "max-w-2xl", children: [
5675
- /* @__PURE__ */ i(Or, { children: /* @__PURE__ */ i(Fr, { className: "text-destructive", children: r("tool_error") }) }),
5706
+ /* @__PURE__ */ w(Or, { className: "max-w-2xl", children: [
5707
+ /* @__PURE__ */ i(Lr, { children: /* @__PURE__ */ i(Fr, { className: "text-destructive", children: r("tool_error") }) }),
5676
5708
  /* @__PURE__ */ w("div", { className: "space-y-4", children: [
5677
5709
  /* @__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
5710
  /* @__PURE__ */ w(ee, { variant: "outline", size: "sm", onClick: c, children: [
@@ -5685,7 +5717,7 @@ const sa = ({ className: e, ...t }) => /* @__PURE__ */ i(ze, { className: k("not
5685
5717
  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
5718
  ] });
5687
5719
  };
5688
- function ga({
5720
+ function ma({
5689
5721
  part: e,
5690
5722
  message: t,
5691
5723
  chat: n,
@@ -5711,15 +5743,15 @@ function ga({
5711
5743
  const c = o[l];
5712
5744
  return /* @__PURE__ */ i(c, { part: e, message: t, chat: n });
5713
5745
  }
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 })
5746
+ return r ? /* @__PURE__ */ w(ca, { className: "animate-in-bubble", children: [
5747
+ /* @__PURE__ */ i(da, { type: e.type, state: a.state, toolName: l }),
5748
+ /* @__PURE__ */ w(pa, { children: [
5749
+ /* @__PURE__ */ i(ha, { input: a.input }),
5750
+ (a.state === "output-available" || a.state === "output-error") && /* @__PURE__ */ i(ga, { errorText: a.errorText, output: a.output })
5719
5751
  ] })
5720
5752
  ] }) : null;
5721
5753
  }
5722
- function ma({
5754
+ function fa({
5723
5755
  part: e,
5724
5756
  message: t
5725
5757
  }) {
@@ -5728,7 +5760,7 @@ function ma({
5728
5760
  const s = document.createElement("a");
5729
5761
  s.href = o.url, s.download = a, document.body.appendChild(s), s.click(), document.body.removeChild(s);
5730
5762
  };
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: [
5763
+ return /* @__PURE__ */ i("div", { className: "py-2 animate-in-bubble", children: /* @__PURE__ */ i(Ft, { 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: [
5732
5764
  /* @__PURE__ */ i(
5733
5765
  "img",
5734
5766
  {
@@ -5775,13 +5807,13 @@ function ma({
5775
5807
  ] }) }) }) }) });
5776
5808
  }
5777
5809
  const C = {
5778
- MessageList: Zn,
5779
- PromptInput: io,
5780
- WelcomeScreen: so,
5781
- TextPart: vr,
5782
- ReasoningPart: Sr,
5783
- ToolPart: ga,
5784
- FilePart: ma,
5810
+ MessageList: Jn,
5811
+ PromptInput: lo,
5812
+ WelcomeScreen: co,
5813
+ TextPart: wr,
5814
+ ReasoningPart: Er,
5815
+ ToolPart: ma,
5816
+ FilePart: fa,
5785
5817
  toolComponents: void 0,
5786
5818
  textComponents: void 0,
5787
5819
  remarkPlugins: void 0,
@@ -5810,6 +5842,8 @@ const C = {
5810
5842
  app: {
5811
5843
  name: void 0,
5812
5844
  adminTitle: void 0,
5845
+ version: void 0,
5846
+ showVersionInSettings: !0,
5813
5847
  cacheNamespace: "gentiq",
5814
5848
  showSettings: !0,
5815
5849
  settingsGeneralMode: "editable",
@@ -5826,9 +5860,9 @@ const C = {
5826
5860
  }
5827
5861
  }, on = pe(C);
5828
5862
  function W() {
5829
- return Le(on);
5863
+ return Fe(on);
5830
5864
  }
5831
- function _i({
5865
+ function Si({
5832
5866
  components: e,
5833
5867
  history: t,
5834
5868
  welcome: n,
@@ -5872,15 +5906,15 @@ function _i({
5872
5906
  );
5873
5907
  return /* @__PURE__ */ i(on.Provider, { value: f, children: h });
5874
5908
  }
5875
- const fa = {
5909
+ const ba = {
5876
5910
  theme: "system",
5877
5911
  setTheme: () => null,
5878
5912
  accent: void 0,
5879
5913
  setAccent: () => null,
5880
5914
  radius: void 0,
5881
5915
  setRadius: () => null
5882
- }, rn = pe(fa);
5883
- function Si({
5916
+ }, rn = pe(ba);
5917
+ function Ei({
5884
5918
  children: e,
5885
5919
  defaultTheme: t = "system",
5886
5920
  storageKey: n = "chatbot-theme",
@@ -5910,8 +5944,8 @@ function Si({
5910
5944
  }
5911
5945
  const v = s || (typeof h?.radius == "number" ? `${h.radius}px` : h?.radius);
5912
5946
  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();
5947
+ const _ = l || h?.accent;
5948
+ _ !== void 0 && m.style.setProperty("--gentiq-primary", _), window.document.documentElement.dir = f.dir();
5915
5949
  }, [h, f, f.language, l, s]);
5916
5950
  const b = {
5917
5951
  theme: r,
@@ -5929,21 +5963,21 @@ function Si({
5929
5963
  };
5930
5964
  return /* @__PURE__ */ i(rn.Provider, { ...o, value: b, children: e });
5931
5965
  }
5932
- const Ei = () => Le(rn), {
5933
- slice: ba,
5934
- forEach: ya
5966
+ const Ni = () => Fe(rn), {
5967
+ slice: ya,
5968
+ forEach: ka
5935
5969
  } = [];
5936
- function ka(e) {
5937
- return ya.call(ba.call(arguments, 1), (t) => {
5970
+ function va(e) {
5971
+ return ka.call(ya.call(arguments, 1), (t) => {
5938
5972
  if (t)
5939
5973
  for (const n in t)
5940
5974
  e[n] === void 0 && (e[n] = t[n]);
5941
5975
  }), e;
5942
5976
  }
5943
- function va(e) {
5977
+ function wa(e) {
5944
5978
  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
5979
  }
5946
- const vt = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/, wa = function(e, t) {
5980
+ const vt = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/, _a = function(e, t) {
5947
5981
  const o = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {
5948
5982
  path: "/"
5949
5983
  }, r = encodeURIComponent(t);
@@ -5992,7 +6026,7 @@ const vt = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/, wa = function(e, t) {
5992
6026
  path: "/",
5993
6027
  sameSite: "strict"
5994
6028
  };
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);
6029
+ 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
6030
  },
5997
6031
  read(e) {
5998
6032
  const t = `${e}=`, n = document.cookie.split(";");
@@ -6027,7 +6061,7 @@ var xa = {
6027
6061
  } = t;
6028
6062
  n && typeof document < "u" && wt.create(n, e, o, r, a);
6029
6063
  }
6030
- }, _a = {
6064
+ }, Sa = {
6031
6065
  name: "querystring",
6032
6066
  // Deconstruct the options object and extract the lookupQuerystring property
6033
6067
  lookup(e) {
@@ -6047,7 +6081,7 @@ var xa = {
6047
6081
  }
6048
6082
  return n;
6049
6083
  }
6050
- }, Sa = {
6084
+ }, Ea = {
6051
6085
  name: "hash",
6052
6086
  // Deconstruct the options object and extract the lookupHash property and the lookupFromHashIndex property
6053
6087
  lookup(e) {
@@ -6079,7 +6113,7 @@ var xa = {
6079
6113
  }
6080
6114
  };
6081
6115
  let Y = null;
6082
- const xt = () => {
6116
+ const _t = () => {
6083
6117
  if (Y !== null) return Y;
6084
6118
  try {
6085
6119
  if (Y = typeof window < "u" && window.localStorage !== null, !Y)
@@ -6091,14 +6125,14 @@ const xt = () => {
6091
6125
  }
6092
6126
  return Y;
6093
6127
  };
6094
- var Ea = {
6128
+ var Na = {
6095
6129
  name: "localStorage",
6096
6130
  // Deconstruct the options object and extract the lookupLocalStorage property
6097
6131
  lookup(e) {
6098
6132
  let {
6099
6133
  lookupLocalStorage: t
6100
6134
  } = e;
6101
- if (t && xt())
6135
+ if (t && _t())
6102
6136
  return window.localStorage.getItem(t) || void 0;
6103
6137
  },
6104
6138
  // Deconstruct the options object and extract the lookupLocalStorage property
@@ -6106,11 +6140,11 @@ var Ea = {
6106
6140
  let {
6107
6141
  lookupLocalStorage: n
6108
6142
  } = t;
6109
- n && xt() && window.localStorage.setItem(n, e);
6143
+ n && _t() && window.localStorage.setItem(n, e);
6110
6144
  }
6111
6145
  };
6112
6146
  let X = null;
6113
- const _t = () => {
6147
+ const xt = () => {
6114
6148
  if (X !== null) return X;
6115
6149
  try {
6116
6150
  if (X = typeof window < "u" && window.sessionStorage !== null, !X)
@@ -6122,22 +6156,22 @@ const _t = () => {
6122
6156
  }
6123
6157
  return X;
6124
6158
  };
6125
- var Na = {
6159
+ var Ta = {
6126
6160
  name: "sessionStorage",
6127
6161
  lookup(e) {
6128
6162
  let {
6129
6163
  lookupSessionStorage: t
6130
6164
  } = e;
6131
- if (t && _t())
6165
+ if (t && xt())
6132
6166
  return window.sessionStorage.getItem(t) || void 0;
6133
6167
  },
6134
6168
  cacheUserLanguage(e, t) {
6135
6169
  let {
6136
6170
  lookupSessionStorage: n
6137
6171
  } = t;
6138
- n && _t() && window.sessionStorage.setItem(n, e);
6172
+ n && xt() && window.sessionStorage.setItem(n, e);
6139
6173
  }
6140
- }, Ta = {
6174
+ }, Ca = {
6141
6175
  name: "navigator",
6142
6176
  lookup(e) {
6143
6177
  const t = [];
@@ -6154,7 +6188,7 @@ var Na = {
6154
6188
  }
6155
6189
  return t.length > 0 ? t : void 0;
6156
6190
  }
6157
- }, Ca = {
6191
+ }, Aa = {
6158
6192
  name: "htmlTag",
6159
6193
  // Deconstruct the options object and extract the htmlTag property
6160
6194
  lookup(e) {
@@ -6164,7 +6198,7 @@ var Na = {
6164
6198
  const o = t || (typeof document < "u" ? document.documentElement : null);
6165
6199
  return o && typeof o.getAttribute == "function" && (n = o.getAttribute("lang")), n;
6166
6200
  }
6167
- }, Aa = {
6201
+ }, Ia = {
6168
6202
  name: "path",
6169
6203
  // Deconstruct the options object and extract the lookupFromPathIndex property
6170
6204
  lookup(e) {
@@ -6175,7 +6209,7 @@ var Na = {
6175
6209
  const n = window.location.pathname.match(/\/([a-zA-Z-]*)/g);
6176
6210
  return Array.isArray(n) ? n[typeof t == "number" ? t : 0]?.replace("/", "") : void 0;
6177
6211
  }
6178
- }, Ia = {
6212
+ }, Ra = {
6179
6213
  name: "subdomain",
6180
6214
  lookup(e) {
6181
6215
  let {
@@ -6193,7 +6227,7 @@ try {
6193
6227
  }
6194
6228
  const ln = ["querystring", "cookie", "localStorage", "sessionStorage", "navigator", "htmlTag"];
6195
6229
  an || ln.splice(1, 1);
6196
- const Ra = () => ({
6230
+ const Oa = () => ({
6197
6231
  order: ln,
6198
6232
  lookupQuerystring: "lng",
6199
6233
  lookupCookie: "i18next",
@@ -6215,7 +6249,7 @@ class sn {
6215
6249
  let t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {
6216
6250
  languageUtils: {}
6217
6251
  }, 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);
6252
+ 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
6253
  }
6220
6254
  addDetector(t) {
6221
6255
  return this.detectors[t.name] = t, this;
@@ -6227,7 +6261,7 @@ class sn {
6227
6261
  let r = this.detectors[o].lookup(this.options);
6228
6262
  r && typeof r == "string" && (r = [r]), r && (n = n.concat(r));
6229
6263
  }
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;
6264
+ }), 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
6265
  }
6232
6266
  cacheUserLanguage(t) {
6233
6267
  let n = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : this.options.caches;
@@ -6237,30 +6271,30 @@ class sn {
6237
6271
  }
6238
6272
  }
6239
6273
  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...", 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.", 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,
6274
+ 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)." }, 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 = {
6275
+ sidebar: La,
6242
6276
  chat: Fa,
6243
- tools_ui: La,
6244
- login: Da,
6245
- theme: Pa,
6246
- admin: Ma,
6247
- settings: za,
6277
+ tools_ui: Da,
6278
+ login: Pa,
6279
+ theme: Ma,
6280
+ admin: za,
6281
+ settings: Ua,
6248
6282
  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: "در حال ثبت نام...", 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: "نمایش چرخ‌دنده تنظیمات در محیط چت برای شخصی‌سازی توسط کاربر.", 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,
6283
+ }, 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: "زبانی که کاربر در اولین ورود مشاهده می‌کند (در صورت عدم تشخیص خودکار)." }, 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 = {
6284
+ sidebar: Ha,
6285
+ chat: qa,
6286
+ tools_ui: ja,
6287
+ login: Ga,
6288
+ theme: Va,
6289
+ admin: Wa,
6290
+ settings: Ya,
6291
+ errors: Xa
6292
+ }, Za = {
6293
+ en: Ba,
6294
+ fa: Ka
6295
+ }, Ja = Ln.createInstance();
6296
+ Ja.use(sn).use(un).init({
6297
+ resources: Za,
6264
6298
  fallbackLng: "en",
6265
6299
  returnNull: !1,
6266
6300
  returnEmptyString: !1,
@@ -6274,7 +6308,7 @@ Za.use(sn).use(un).init({
6274
6308
  caches: ["localStorage"]
6275
6309
  }
6276
6310
  });
6277
- function Ni({ className: e, type: t, ...n }) {
6311
+ function Ti({ className: e, type: t, ...n }) {
6278
6312
  return /* @__PURE__ */ i(
6279
6313
  "input",
6280
6314
  {
@@ -6290,34 +6324,34 @@ function Ni({ className: e, type: t, ...n }) {
6290
6324
  }
6291
6325
  );
6292
6326
  }
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(
6327
+ 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 = Pe(
6294
6328
  "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(
6329
+ ), ei = Ce.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ i(
6296
6330
  "label",
6297
6331
  {
6298
6332
  ref: n,
6299
- className: k(Ja(), e),
6333
+ className: k(Qa(), e),
6300
6334
  ...t
6301
6335
  }
6302
6336
  ));
6303
- Qa.displayName = "Label";
6304
- function Ci({ ...e }) {
6305
- return /* @__PURE__ */ i(L.Root, { "data-slot": "select", ...e });
6306
- }
6337
+ ei.displayName = "Label";
6307
6338
  function Ai({ ...e }) {
6308
- return /* @__PURE__ */ i(L.Group, { "data-slot": "select-group", ...e });
6339
+ return /* @__PURE__ */ i(F.Root, { "data-slot": "select", ...e });
6309
6340
  }
6310
6341
  function Ii({ ...e }) {
6311
- return /* @__PURE__ */ i(L.Value, { "data-slot": "select-value", ...e });
6342
+ return /* @__PURE__ */ i(F.Group, { "data-slot": "select-group", ...e });
6312
6343
  }
6313
- function Ri({
6344
+ function Ri({ ...e }) {
6345
+ return /* @__PURE__ */ i(F.Value, { "data-slot": "select-value", ...e });
6346
+ }
6347
+ function Oi({
6314
6348
  className: e,
6315
6349
  size: t = "default",
6316
6350
  children: n,
6317
6351
  ...o
6318
6352
  }) {
6319
6353
  return /* @__PURE__ */ w(
6320
- L.Trigger,
6354
+ F.Trigger,
6321
6355
  {
6322
6356
  "data-slot": "select-trigger",
6323
6357
  "data-size": t,
@@ -6328,19 +6362,19 @@ function Ri({
6328
6362
  ...o,
6329
6363
  children: [
6330
6364
  n,
6331
- /* @__PURE__ */ i(L.Icon, { asChild: !0, children: /* @__PURE__ */ i(ie, { className: "size-4 opacity-50" }) })
6365
+ /* @__PURE__ */ i(F.Icon, { asChild: !0, children: /* @__PURE__ */ i(ie, { className: "size-4 opacity-50" }) })
6332
6366
  ]
6333
6367
  }
6334
6368
  );
6335
6369
  }
6336
- function Oi({
6370
+ function Li({
6337
6371
  className: e,
6338
6372
  children: t,
6339
6373
  position: n = "popper",
6340
6374
  ...o
6341
6375
  }) {
6342
- return /* @__PURE__ */ i(L.Portal, { children: /* @__PURE__ */ w(
6343
- L.Content,
6376
+ return /* @__PURE__ */ i(F.Portal, { children: /* @__PURE__ */ w(
6377
+ F.Content,
6344
6378
  {
6345
6379
  "data-slot": "select-content",
6346
6380
  className: k(
@@ -6351,9 +6385,9 @@ function Oi({
6351
6385
  position: n,
6352
6386
  ...o,
6353
6387
  children: [
6354
- /* @__PURE__ */ i(ei, {}),
6388
+ /* @__PURE__ */ i(ti, {}),
6355
6389
  /* @__PURE__ */ i(
6356
- L.Viewport,
6390
+ F.Viewport,
6357
6391
  {
6358
6392
  className: k(
6359
6393
  "p-1",
@@ -6362,14 +6396,14 @@ function Oi({
6362
6396
  children: t
6363
6397
  }
6364
6398
  ),
6365
- /* @__PURE__ */ i(ti, {})
6399
+ /* @__PURE__ */ i(ni, {})
6366
6400
  ]
6367
6401
  }
6368
6402
  ) });
6369
6403
  }
6370
6404
  function Fi({ className: e, ...t }) {
6371
6405
  return /* @__PURE__ */ i(
6372
- L.Label,
6406
+ F.Label,
6373
6407
  {
6374
6408
  "data-slot": "select-label",
6375
6409
  className: k("text-muted-foreground px-2 py-1.5 text-xs", e),
@@ -6377,9 +6411,9 @@ function Fi({ className: e, ...t }) {
6377
6411
  }
6378
6412
  );
6379
6413
  }
6380
- function Li({ className: e, children: t, ...n }) {
6414
+ function Di({ className: e, children: t, ...n }) {
6381
6415
  return /* @__PURE__ */ w(
6382
- L.Item,
6416
+ F.Item,
6383
6417
  {
6384
6418
  "data-slot": "select-item",
6385
6419
  className: k(
@@ -6388,15 +6422,15 @@ function Li({ className: e, children: t, ...n }) {
6388
6422
  ),
6389
6423
  ...n,
6390
6424
  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 })
6425
+ /* @__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(De, { className: "size-4" }) }) }),
6426
+ /* @__PURE__ */ i(F.ItemText, { children: t })
6393
6427
  ]
6394
6428
  }
6395
6429
  );
6396
6430
  }
6397
- function Di({ className: e, ...t }) {
6431
+ function Pi({ className: e, ...t }) {
6398
6432
  return /* @__PURE__ */ i(
6399
- L.Separator,
6433
+ F.Separator,
6400
6434
  {
6401
6435
  "data-slot": "select-separator",
6402
6436
  className: k("bg-border pointer-events-none -mx-1 my-1 h-px", e),
@@ -6404,9 +6438,9 @@ function Di({ className: e, ...t }) {
6404
6438
  }
6405
6439
  );
6406
6440
  }
6407
- function ei({ className: e, ...t }) {
6441
+ function ti({ className: e, ...t }) {
6408
6442
  return /* @__PURE__ */ i(
6409
- L.ScrollUpButton,
6443
+ F.ScrollUpButton,
6410
6444
  {
6411
6445
  "data-slot": "select-scroll-up-button",
6412
6446
  className: k("flex cursor-default items-center justify-center py-1", e),
@@ -6415,12 +6449,12 @@ function ei({ className: e, ...t }) {
6415
6449
  }
6416
6450
  );
6417
6451
  }
6418
- function ti({
6452
+ function ni({
6419
6453
  className: e,
6420
6454
  ...t
6421
6455
  }) {
6422
6456
  return /* @__PURE__ */ i(
6423
- L.ScrollDownButton,
6457
+ F.ScrollDownButton,
6424
6458
  {
6425
6459
  "data-slot": "select-scroll-down-button",
6426
6460
  className: k("flex cursor-default items-center justify-center py-1", e),
@@ -6429,7 +6463,7 @@ function ti({
6429
6463
  }
6430
6464
  );
6431
6465
  }
6432
- function Pi(e, t) {
6466
+ function Mi(e, t) {
6433
6467
  if (!e) return !0;
6434
6468
  const { field: n, operator: o = "equals", value: r } = e, a = t[n];
6435
6469
  switch (o) {
@@ -6445,10 +6479,10 @@ function Pi(e, t) {
6445
6479
  return !0;
6446
6480
  }
6447
6481
  }
6448
- function Mi({ ...e }) {
6482
+ function zi({ ...e }) {
6449
6483
  return /* @__PURE__ */ i(re.Root, { "data-slot": "dropdown-menu", ...e });
6450
6484
  }
6451
- function zi({ ...e }) {
6485
+ function Ui({ ...e }) {
6452
6486
  return /* @__PURE__ */ i(re.Trigger, { "data-slot": "dropdown-menu-trigger", ...e });
6453
6487
  }
6454
6488
  function $i({
@@ -6469,7 +6503,7 @@ function $i({
6469
6503
  }
6470
6504
  ) });
6471
6505
  }
6472
- function Ui({
6506
+ function Bi({
6473
6507
  className: e,
6474
6508
  inset: t,
6475
6509
  variant: n = "default",
@@ -6489,7 +6523,7 @@ function Ui({
6489
6523
  }
6490
6524
  );
6491
6525
  }
6492
- function Bi({ className: e, ...t }) {
6526
+ function Hi({ className: e, ...t }) {
6493
6527
  return /* @__PURE__ */ i(
6494
6528
  Ye.Root,
6495
6529
  {
@@ -6511,61 +6545,61 @@ function Bi({ className: e, ...t }) {
6511
6545
  );
6512
6546
  }
6513
6547
  export {
6514
- so as $,
6515
- Ui as A,
6548
+ co as $,
6549
+ Bi as A,
6516
6550
  ee as B,
6517
- _i as C,
6518
- Tr as D,
6519
- Or as E,
6551
+ Si as C,
6552
+ Cr as D,
6553
+ Lr as E,
6520
6554
  Fr as F,
6521
6555
  Xe as G,
6522
6556
  xi as H,
6523
- Ni as I,
6524
- wi as J,
6525
- Bi as K,
6526
- Qa as L,
6557
+ Ti as I,
6558
+ _i as J,
6559
+ Hi as K,
6560
+ ei as L,
6527
6561
  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,
6562
+ fa as N,
6563
+ Jn as O,
6564
+ Bn as P,
6565
+ lo as Q,
6566
+ Er as R,
6567
+ Ai as S,
6568
+ Ei as T,
6569
+ Ii as U,
6536
6570
  Fi as V,
6537
- ti as W,
6538
- ei as X,
6539
- Di as Y,
6540
- vr as Z,
6541
- ga as _,
6571
+ ni as W,
6572
+ ti as X,
6573
+ Pi as Y,
6574
+ wr as Z,
6575
+ ma as _,
6542
6576
  W as a,
6543
- vi as a0,
6544
- Jn as a1,
6577
+ wi as a0,
6578
+ Qn as a1,
6545
6579
  sn as a2,
6546
6580
  $n as b,
6547
- yi as c,
6548
- Ka as d,
6581
+ ki as c,
6582
+ Za as d,
6549
6583
  k as e,
6550
- ao as f,
6551
- Za as g,
6584
+ io as f,
6585
+ Ja as g,
6552
6586
  It as h,
6553
6587
  Rt as i,
6554
- ki as j,
6588
+ vi as j,
6555
6589
  Ot as k,
6556
- 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,
6590
+ Lt as l,
6591
+ Ni as m,
6592
+ Mi as n,
6593
+ Ar as o,
6594
+ Or as p,
6595
+ Oi as q,
6596
+ Ri as r,
6597
+ Li as s,
6598
+ Di as t,
6565
6599
  S as u,
6566
- Ti as v,
6600
+ Ci as v,
6567
6601
  ge as w,
6568
- Mi as x,
6569
- zi as y,
6602
+ zi as x,
6603
+ Ui as y,
6570
6604
  $i as z
6571
6605
  };