gentiq 0.7.20 → 0.7.22

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,13 +1,13 @@
1
- import { jsx as l, Fragment as Z, jsxs as w } from "react/jsx-runtime";
1
+ import { jsx as l, Fragment as J, jsxs as w } from "react/jsx-runtime";
2
2
  import * as an from "react";
3
- import { useState as $, useCallback as ne, useMemo as wt, useRef as ue, useEffect as J, Children as ln, memo as de, createContext as pe, useContext as Oe } from "react";
3
+ import { useState as $, useCallback as ne, useMemo as wt, useEffect as Q, Children as ln, useRef as je, memo as ue, createContext as de, useContext as Oe } from "react";
4
4
  import { useTranslation as M, initReactI18next as sn } from "react-i18next";
5
- import { ArrowDownIcon as cn, ChevronDownIcon as ae, BookIcon as un, XIcon as he, CheckIcon as Fe, ArrowUpIcon as dn, Loader2Icon as pn, SquareIcon as hn, FileIcon as xt, PaperclipIcon as gn, MessageCircle as mn, RefreshCcwIcon as fn, ThumbsUpIcon as bn, ThumbsDownIcon as kn, CopyIcon as _t, BrainIcon as yn, WrenchIcon as vn, ImagePlusIcon as wn, CodeIcon as xn, DownloadIcon as ce, GlobeIcon as _n, XCircleIcon as St, CheckCircleIcon as Sn, ClockIcon as En, CircleIcon as Nn, ChevronUpIcon as Tn } from "lucide-react";
5
+ import { ArrowDownIcon as cn, ChevronDownIcon as ae, BookIcon as un, XIcon as pe, CheckIcon as Fe, ArrowUpIcon as dn, Loader2Icon as pn, SquareIcon as hn, FileIcon as xt, PaperclipIcon as gn, MessageCircle as mn, RefreshCcwIcon as fn, ThumbsUpIcon as bn, ThumbsDownIcon as kn, CopyIcon as _t, BrainIcon as yn, WrenchIcon as vn, ImagePlusIcon as wn, CodeIcon as xn, DownloadIcon as ce, GlobeIcon as _n, XCircleIcon as St, CheckCircleIcon as Sn, ClockIcon as En, CircleIcon as Nn, ChevronUpIcon as Tn } from "lucide-react";
6
6
  import { Slot as Et } from "@radix-ui/react-slot";
7
- import { cva as De } from "class-variance-authority";
7
+ import { cva as Le } from "class-variance-authority";
8
8
  import { StickToBottom as Nt, useStickToBottomContext as Cn } from "use-stick-to-bottom";
9
- import * as Pe from "@radix-ui/react-collapsible";
10
- import * as X from "@radix-ui/react-tooltip";
9
+ import * as De from "@radix-ui/react-collapsible";
10
+ import * as K from "@radix-ui/react-tooltip";
11
11
  import { toast as An } from "sonner";
12
12
  import "@radix-ui/react-scroll-area";
13
13
  import { Streamdown as In } from "streamdown";
@@ -16,12 +16,12 @@ import { useControllableState as Ge } from "@radix-ui/react-use-controllable-sta
16
16
  import * as U from "@radix-ui/react-dialog";
17
17
  import { PrismLight as z } from "react-syntax-highlighter";
18
18
  import Rn from "i18next";
19
- import * as F from "@radix-ui/react-select";
19
+ import * as L from "@radix-ui/react-select";
20
20
  import * as oe from "@radix-ui/react-dropdown-menu";
21
21
  import * as Ve from "@radix-ui/react-checkbox";
22
- import { clsx as Ln } from "clsx";
23
- import { twMerge as On } from "tailwind-merge";
24
- class Fn extends Error {
22
+ import { clsx as On } from "clsx";
23
+ import { twMerge as Fn } from "tailwind-merge";
24
+ class Ln extends Error {
25
25
  code;
26
26
  status;
27
27
  details;
@@ -53,7 +53,7 @@ const Dn = {
53
53
  return e ? { Authorization: `Bearer ${e}` } : {};
54
54
  }
55
55
  };
56
- let L = Dn;
56
+ let O = Dn;
57
57
  const S = {
58
58
  init: (e) => {
59
59
  if (N = {
@@ -63,7 +63,7 @@ const S = {
63
63
  app: e.app ? { ...N.app, ...e.app } : N.app
64
64
  }, e.api?.authAdapter) {
65
65
  const t = e.api.authAdapter;
66
- L = {
66
+ O = {
67
67
  ...t,
68
68
  getHeaders: t.getHeaders || (() => {
69
69
  const n = t.getToken();
@@ -73,14 +73,14 @@ const S = {
73
73
  }
74
74
  },
75
75
  getConfig: () => N,
76
- getToken: () => L.getToken(),
76
+ getToken: () => O.getToken(),
77
77
  setToken: (e) => {
78
- L.setToken(e);
78
+ O.setToken(e);
79
79
  },
80
80
  clearToken: () => {
81
- L.clearToken();
81
+ O.clearToken();
82
82
  },
83
- getHeaders: () => L.getHeaders(),
83
+ getHeaders: () => O.getHeaders(),
84
84
  getEndpoint: (e, t, ...n) => {
85
85
  const o = N.api?.endpoints?.[e];
86
86
  return o ? typeof o == "function" ? o(...n) : o : typeof t == "function" ? t(...n) : t;
@@ -89,7 +89,7 @@ const S = {
89
89
  if (!e.ok) {
90
90
  const n = await e.json().catch(() => ({}));
91
91
  if (n.error && (n.error.code || n.error.message))
92
- throw new Fn(n, e.status);
92
+ throw new Ln(n, e.status);
93
93
  const o = n.error || n.message || t, r = new Error(o);
94
94
  throw r.status = e.status, r;
95
95
  }
@@ -114,7 +114,7 @@ const S = {
114
114
  getBalance: async () => {
115
115
  const e = S.getEndpoint("balance", "/users/balance"), t = await fetch(`${N.api?.basePath}${e}`, {
116
116
  headers: {
117
- ...L.getHeaders()
117
+ ...O.getHeaders()
118
118
  }
119
119
  });
120
120
  return S.handleResponse(t, "Failed to fetch balance");
@@ -122,7 +122,7 @@ const S = {
122
122
  getHistory: async (e = 0, t = 50) => {
123
123
  const n = S.getEndpoint("threads", "/chat/threads"), o = await fetch(`${N.api?.basePath}${n}?skip=${e}&limit=${t}`, {
124
124
  headers: {
125
- ...L.getHeaders()
125
+ ...O.getHeaders()
126
126
  }
127
127
  });
128
128
  return S.handleResponse(o, "Failed to fetch chat history");
@@ -131,7 +131,7 @@ const S = {
131
131
  if (!S.getToken()) throw new Error("No token found");
132
132
  const n = S.getEndpoint("threadMessages", (r) => `/chat/threads/${r.replace(/^\//, "")}`, e), o = await fetch(`${N.api?.basePath}${n}`, {
133
133
  headers: {
134
- ...L.getHeaders()
134
+ ...O.getHeaders()
135
135
  }
136
136
  });
137
137
  return S.handleResponse(o, "Failed to fetch thread messages");
@@ -141,7 +141,7 @@ const S = {
141
141
  const n = S.getEndpoint("deleteThread", (r) => `/chat/threads/${r.replace(/^\//, "")}`, e), o = await fetch(`${N.api?.basePath}${n}`, {
142
142
  method: "DELETE",
143
143
  headers: {
144
- ...L.getHeaders()
144
+ ...O.getHeaders()
145
145
  }
146
146
  });
147
147
  return S.handleResponse(o, "Failed to delete thread");
@@ -152,7 +152,7 @@ const S = {
152
152
  method: "PATCH",
153
153
  headers: {
154
154
  "Content-Type": "application/json",
155
- ...L.getHeaders()
155
+ ...O.getHeaders()
156
156
  },
157
157
  body: JSON.stringify({ title: t })
158
158
  });
@@ -167,7 +167,7 @@ const S = {
167
167
  if (N.api?.attachmentResolver)
168
168
  return N.api.attachmentResolver(e);
169
169
  const t = S.getEndpoint("attachments", (r) => `/chat/attachments/${r}`, e), n = await fetch(`${N.api?.basePath}${t}`, {
170
- headers: { ...L.getHeaders() }
170
+ headers: { ...O.getHeaders() }
171
171
  });
172
172
  if (!n.ok) return S.handleResponse(n, "Failed to fetch attachment");
173
173
  const o = await n.blob();
@@ -192,7 +192,7 @@ const S = {
192
192
  method: "POST",
193
193
  headers: {
194
194
  "Content-Type": "application/json",
195
- ...L.getHeaders()
195
+ ...O.getHeaders()
196
196
  },
197
197
  body: JSON.stringify({
198
198
  thread_id: e.replace(/^\//, ""),
@@ -205,7 +205,7 @@ const S = {
205
205
  getMe: async () => {
206
206
  const e = S.getEndpoint("me", "/users/me"), t = await fetch(`${N.api?.basePath}${e}`, {
207
207
  headers: {
208
- ...L.getHeaders()
208
+ ...O.getHeaders()
209
209
  }
210
210
  });
211
211
  return S.handleResponse(t, "Failed to fetch user profile");
@@ -215,7 +215,7 @@ const S = {
215
215
  method: "PATCH",
216
216
  headers: {
217
217
  "Content-Type": "application/json",
218
- ...L.getHeaders()
218
+ ...O.getHeaders()
219
219
  },
220
220
  body: JSON.stringify(e)
221
221
  });
@@ -227,7 +227,7 @@ const S = {
227
227
  method: "PATCH",
228
228
  headers: {
229
229
  "Content-Type": "application/json",
230
- ...L.getHeaders()
230
+ ...O.getHeaders()
231
231
  },
232
232
  body: JSON.stringify({ pinned: t })
233
233
  });
@@ -238,7 +238,7 @@ const S = {
238
238
  const n = S.getEndpoint("shareThread", (r) => `/chat/threads/${r.replace(/^\//, "")}/share`, e), o = await fetch(`${N.api?.basePath}${n}`, {
239
239
  method: "POST",
240
240
  headers: {
241
- ...L.getHeaders()
241
+ ...O.getHeaders()
242
242
  }
243
243
  });
244
244
  return S.handleResponse(o, "Failed to share thread");
@@ -267,8 +267,8 @@ function Pn(e, t) {
267
267
  const c = n === i ? void 0 : i;
268
268
  o(c);
269
269
  try {
270
- const s = e.parts.find((h) => h.type === "data-message-id"), d = s ? s.data[0].message_id : e.id;
271
- await S.saveFeedback(t, d, c ?? null);
270
+ const s = e.parts.find((h) => h.type === "data-message-id"), p = s ? s.data[0].message_id : e.id;
271
+ await S.saveFeedback(t, p, c ?? null);
272
272
  } catch (s) {
273
273
  console.error("Error saving feedback:", s);
274
274
  }
@@ -281,26 +281,26 @@ function Pn(e, t) {
281
281
  }
282
282
  const Mn = /* @__PURE__ */ new Set(["ar", "fa", "he", "ur", "yi", "ku", "ckb", "ps", "sd", "ug", "arc", "syc"]);
283
283
  function zn() {
284
- const { i18n: e } = M(["translation"]), t = wt(() => {
285
- const c = S.getConfig();
284
+ const { i18n: e } = M(["translation"]), { app: t } = W(), n = wt(() => {
285
+ const i = S.getConfig(), c = t || i.app;
286
286
  return {
287
- name: c.app?.name || "Gentiq App",
287
+ name: c?.name || "Gentiq App",
288
288
  // Use i18n.language as the primary source for the UI state.
289
289
  // Only fallback to config if i18n hasn't resolved yet.
290
- language: e.language || c.app?.language || "en",
291
- showToolDetails: c.app?.showToolDetails ?? !0
290
+ language: e.language || c?.language || "en",
291
+ showToolDetails: c?.showToolDetails ?? !0
292
292
  };
293
- }, [e.language]), n = (t.language ?? "").split("-")[0].toLowerCase(), o = Mn.has(n), r = S.getConfig().app?.language, a = ue(r), i = ue(!1);
294
- return J(() => {
295
- const c = r, s = typeof window < "u" ? localStorage.getItem("i18nextLng") : null;
296
- let d = !1;
297
- i.current ? c && c !== a.current && (d = !0) : c && !s && e.language !== c && (d = !0), d && c && e.changeLanguage(c), a.current = c, i.current = !0, document.documentElement.dir = o ? "rtl" : "ltr", document.documentElement.lang = e.language;
298
- }, [o, e, e.language, r]), {
299
- appName: t.name || "Gentiq",
300
- language: t.language || e.language,
301
- isRtl: o,
302
- showToolDetails: !!t.showToolDetails,
303
- config: t,
293
+ }, [e.language, t]), o = (n.language ?? "").split("-")[0].toLowerCase(), r = Mn.has(o), a = t?.language;
294
+ return Q(() => {
295
+ if (typeof window > "u") return;
296
+ const i = localStorage.getItem("gentiq-last-default-lang");
297
+ a && a !== i && (e.changeLanguage(a), localStorage.setItem("gentiq-last-default-lang", a)), document.documentElement.dir = r ? "rtl" : "ltr", document.documentElement.lang = e.language;
298
+ }, [r, e, e.language, a]), {
299
+ appName: n.name || "Gentiq",
300
+ language: n.language || e.language,
301
+ isRtl: r,
302
+ showToolDetails: !!n.showToolDetails,
303
+ config: n,
304
304
  isLoading: !1,
305
305
  error: null
306
306
  };
@@ -315,19 +315,19 @@ function $n(e) {
315
315
  lastMessage: i,
316
316
  conversationId: c,
317
317
  isFinished: s,
318
- renderMessagePart: d,
318
+ renderMessagePart: p,
319
319
  chat: h,
320
320
  readonly: f
321
- } = e, { showToolDetails: b } = zn(), { TextPart: m, ReasoningPart: k, ToolPart: p, FilePart: v, toolComponents: x, threadActions: g } = te(), { feedback: E, handleFeedback: C, copy: O } = Pn(n, c);
322
- if (d) {
323
- const R = d(t, n);
321
+ } = e, { showToolDetails: b } = zn(), { TextPart: m, ReasoningPart: k, ToolPart: d, FilePart: v, toolComponents: x, threadActions: g } = W(), { feedback: E, handleFeedback: C, copy: F } = Pn(n, c);
322
+ if (p) {
323
+ const R = p(t, n);
324
324
  if (R !== void 0)
325
- return /* @__PURE__ */ l(Z, { children: R });
325
+ return /* @__PURE__ */ l(J, { children: R });
326
326
  }
327
327
  if (["data-progress-update", "data-message-id", "data-chat-finished", "data-title"].includes(t.type)) return null;
328
328
  const j = n.parts.filter(
329
329
  (R) => !["data-progress-update", "data-message-id", "data-chat-finished", "data-title"].includes(R.type)
330
- ), fe = t === j[j.length - 1];
330
+ ), me = t === j[j.length - 1];
331
331
  return t.type === "text" ? /* @__PURE__ */ l(
332
332
  m,
333
333
  {
@@ -336,11 +336,11 @@ function $n(e) {
336
336
  status: o,
337
337
  isFinished: !!s,
338
338
  lastMessage: i,
339
- isLastVisiblePart: fe,
339
+ isLastVisiblePart: me,
340
340
  regen: r,
341
341
  feedback: E,
342
342
  handleFeedback: C,
343
- copyHost: O,
343
+ copyHost: F,
344
344
  feedbackEnabled: f ? !1 : g?.feedback ?? !1,
345
345
  retryEnabled: f ? !1 : g?.retry ?? !1
346
346
  }
@@ -354,7 +354,7 @@ function $n(e) {
354
354
  lastMessage: i
355
355
  }
356
356
  ) : t.type.startsWith("tool-") || "toolCallId" in t ? /* @__PURE__ */ l(
357
- p,
357
+ d,
358
358
  {
359
359
  part: t,
360
360
  message: n,
@@ -371,14 +371,14 @@ function $n(e) {
371
371
  ) : null;
372
372
  }
373
373
  function y(...e) {
374
- return On(Ln(e));
374
+ return Fn(On(e));
375
375
  }
376
376
  function bl(e, t) {
377
377
  if (t === "/") return e;
378
378
  const n = e.endsWith("/") ? e.slice(0, -1) : e, o = t.startsWith("/") ? t : "/" + t;
379
379
  return n + o;
380
380
  }
381
- const be = ({ className: e, ...t }) => /* @__PURE__ */ l(
381
+ const fe = ({ className: e, ...t }) => /* @__PURE__ */ l(
382
382
  "div",
383
383
  {
384
384
  className: y(
@@ -399,7 +399,7 @@ const be = ({ className: e, ...t }) => /* @__PURE__ */ l(
399
399
  ))
400
400
  }
401
401
  ), Un = /[\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC]/;
402
- function ge(e, t = "ltr") {
402
+ function he(e, t = "ltr") {
403
403
  if (!e) return t;
404
404
  for (const n of e) {
405
405
  if (Un.test(n))
@@ -409,7 +409,7 @@ function ge(e, t = "ltr") {
409
409
  }
410
410
  return "ltr";
411
411
  }
412
- const Bn = De(
412
+ const Bn = Le(
413
413
  "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",
414
414
  {
415
415
  variants: {
@@ -434,7 +434,7 @@ const Bn = De(
434
434
  }
435
435
  }
436
436
  );
437
- function Q({
437
+ function ee({
438
438
  className: e,
439
439
  variant: t,
440
440
  size: n,
@@ -483,23 +483,23 @@ const Hn = ({ className: e, ...t }) => /* @__PURE__ */ l(
483
483
  }
484
484
  );
485
485
  };
486
+ function Pe({ ...e }) {
487
+ return /* @__PURE__ */ l(De.Root, { "data-slot": "collapsible", ...e });
488
+ }
486
489
  function Me({ ...e }) {
487
- return /* @__PURE__ */ l(Pe.Root, { "data-slot": "collapsible", ...e });
490
+ return /* @__PURE__ */ l(De.CollapsibleTrigger, { "data-slot": "collapsible-trigger", ...e });
488
491
  }
489
492
  function ze({ ...e }) {
490
- return /* @__PURE__ */ l(Pe.CollapsibleTrigger, { "data-slot": "collapsible-trigger", ...e });
491
- }
492
- function $e({ ...e }) {
493
- return /* @__PURE__ */ l(Pe.CollapsibleContent, { "data-slot": "collapsible-content", ...e });
493
+ return /* @__PURE__ */ l(De.CollapsibleContent, { "data-slot": "collapsible-content", ...e });
494
494
  }
495
- const Gn = ({ className: e, ...t }) => /* @__PURE__ */ l(Me, { className: y("not-prose mb-4 text-primary text-xs", e), ...t }), Vn = ({ className: e, count: t, children: n, ...o }) => {
495
+ const Gn = ({ className: e, ...t }) => /* @__PURE__ */ l(Pe, { className: y("not-prose mb-4 text-primary text-xs", e), ...t }), Vn = ({ className: e, count: t, children: n, ...o }) => {
496
496
  const { t: r } = M(["chat"]);
497
- return /* @__PURE__ */ l(ze, { className: y("flex items-center gap-2", e), ...o, children: n ?? /* @__PURE__ */ w(Z, { children: [
497
+ return /* @__PURE__ */ l(Me, { className: y("flex items-center gap-2", e), ...o, children: n ?? /* @__PURE__ */ w(J, { children: [
498
498
  /* @__PURE__ */ l("p", { className: "font-medium", children: r("used_sources", { count: t }) }),
499
499
  /* @__PURE__ */ l(ae, { className: "h-4 w-4" })
500
500
  ] }) });
501
501
  }, Wn = ({ className: e, ...t }) => /* @__PURE__ */ l(
502
- $e,
502
+ ze,
503
503
  {
504
504
  className: y(
505
505
  "mt-3 flex w-fit flex-col gap-2",
@@ -508,7 +508,7 @@ const Gn = ({ className: e, ...t }) => /* @__PURE__ */ l(Me, { className: y("not
508
508
  ),
509
509
  ...t
510
510
  }
511
- ), Yn = ({ href: e, title: t, children: n, ...o }) => /* @__PURE__ */ l("a", { className: "flex items-center gap-2", href: e, rel: "noreferrer", target: "_blank", ...o, children: n ?? /* @__PURE__ */ w(Z, { children: [
511
+ ), Yn = ({ href: e, title: t, children: n, ...o }) => /* @__PURE__ */ l("a", { className: "flex items-center gap-2", href: e, rel: "noreferrer", target: "_blank", ...o, children: n ?? /* @__PURE__ */ w(J, { children: [
512
512
  /* @__PURE__ */ l(un, { className: "h-4 w-4" }),
513
513
  /* @__PURE__ */ l("span", { className: "block font-medium", children: t })
514
514
  ] }) }), Xn = ({ latestProgress: e, parts: t }) => {
@@ -516,12 +516,12 @@ const Gn = ({ className: e, ...t }) => /* @__PURE__ */ l(Me, { className: y("not
516
516
  if (!!(t.slice(r + 1).some(
517
517
  (f) => f.type === "text" && (f.text || "").trim().length > 0 || f.type === "tool-invocation" || f.type === "tool-call"
518
518
  ) && n !== "running")) return null;
519
- const s = n === "running", d = n === "error", h = ge(o);
519
+ const s = n === "running", p = n === "error", h = he(o);
520
520
  return /* @__PURE__ */ l("div", { className: y(
521
521
  "flex w-full py-3 mx-auto max-w-4xl px-4 md:px-0 animate-in-bubble",
522
522
  h === "rtl" ? "justify-end" : "justify-start"
523
523
  ), children: /* @__PURE__ */ w("div", { className: y("flex items-center gap-3 text-sm text-muted-foreground", h === "rtl" && "flex-row-reverse"), dir: h, children: [
524
- s ? /* @__PURE__ */ l("div", { className: "size-4 animate-spin rounded-full border-2 border-primary border-r-transparent shrink-0" }) : d ? /* @__PURE__ */ l(he, { className: "size-4 text-destructive shrink-0" }) : /* @__PURE__ */ l(Fe, { className: "size-4 text-green-500 shrink-0" }),
524
+ s ? /* @__PURE__ */ l("div", { className: "size-4 animate-spin rounded-full border-2 border-primary border-r-transparent shrink-0" }) : p ? /* @__PURE__ */ l(pe, { className: "size-4 text-destructive shrink-0" }) : /* @__PURE__ */ l(Fe, { className: "size-4 text-green-500 shrink-0" }),
525
525
  /* @__PURE__ */ l("span", { className: y("font-medium", s && "animate-pulse"), children: o })
526
526
  ] }) });
527
527
  };
@@ -535,9 +535,9 @@ function Kn({
535
535
  onSuggestionClick: i,
536
536
  chat: c,
537
537
  className: s,
538
- readonly: d
538
+ readonly: p
539
539
  }) {
540
- const { i18n: h, t: f } = M(["chat", "translation"]), b = h.language === "fa", { WelcomeScreen: m } = te(), k = e[e.length - 1], p = k?.role === "assistant" && (t === "ready" || k.parts.some((v) => v.type === "data-chat-finished"));
540
+ const { i18n: h, t: f } = M(["chat", "translation"]), b = h.language === "fa", { WelcomeScreen: m } = W(), k = e[e.length - 1], d = k?.role === "assistant" && (t === "ready" || k.parts.some((v) => v.type === "data-chat-finished"));
541
541
  return /* @__PURE__ */ w(Hn, { className: y("min-h-0 flex-1", s), children: [
542
542
  /* @__PURE__ */ w(jn, { className: "max-w-4xl mx-auto w-full px-4 md:px-0 pb-32", dir: "ltr", children: [
543
543
  e.length === 0 && !n ? /* @__PURE__ */ l(m, { onSuggestionClick: i }) : e.map((v) => /* @__PURE__ */ w("div", { children: [
@@ -555,9 +555,9 @@ function Kn({
555
555
  regen: a,
556
556
  lastMessage: v.id === e.at(-1)?.id,
557
557
  conversationId: r,
558
- isFinished: p,
558
+ isFinished: d,
559
559
  chat: c,
560
- readonly: d
560
+ readonly: p
561
561
  },
562
562
  `${v.id}-${g}`
563
563
  ))
@@ -569,12 +569,12 @@ function Kn({
569
569
  const x = v[v.length - 1];
570
570
  return x ? /* @__PURE__ */ l(Xn, { latestProgress: x, parts: k.parts }) : null;
571
571
  })(),
572
- (n || t === "submitted") && /* @__PURE__ */ l("div", { className: "animate-in-bubble", children: /* @__PURE__ */ l(be, {}) }),
572
+ (n || t === "submitted") && /* @__PURE__ */ l("div", { className: "animate-in-bubble", children: /* @__PURE__ */ l(fe, {}) }),
573
573
  t === "streaming" && (() => {
574
574
  const v = e[e.length - 1];
575
- return !v || v.role === "user" ? /* @__PURE__ */ l(be, {}) : v.parts?.some(
575
+ return !v || v.role === "user" ? /* @__PURE__ */ l(fe, {}) : v.parts?.some(
576
576
  (g) => g.type === "text" && g.text?.trim().length > 0 || g.type === "reasoning" || g.type === "tool-invocation" || g.type === "tool-call"
577
- ) ? null : /* @__PURE__ */ l(be, {});
577
+ ) ? null : /* @__PURE__ */ l(fe, {});
578
578
  })(),
579
579
  t === "error" && o && /* @__PURE__ */ l("div", { className: "mx-auto max-w-4xl w-full px-4 my-3 animate-in-bubble", children: /* @__PURE__ */ w("div", { className: y(
580
580
  "flex w-full items-start gap-3 px-4 py-3.5 rounded-xl bg-destructive/8 border border-destructive/15",
@@ -633,7 +633,7 @@ const Jn = ({ className: e, ...t }) => /* @__PURE__ */ l("div", { className: "bg
633
633
  const s = c.currentTarget.form;
634
634
  s && s.requestSubmit();
635
635
  }
636
- }, { i18n: a } = M(["chat"]), i = ge(o.value, a.dir());
636
+ }, { i18n: a } = M(["chat"]), i = he(o.value, a.dir());
637
637
  return /* @__PURE__ */ l(
638
638
  Zn,
639
639
  {
@@ -659,7 +659,7 @@ const Jn = ({ className: e, ...t }) => /* @__PURE__ */ l("div", { className: "bg
659
659
  }, eo = ({ className: e, ...t }) => /* @__PURE__ */ l("div", { className: y("flex shrink-0 items-center gap-1.5 pb-1", e), ...t }), to = ({ className: e, ...t }) => /* @__PURE__ */ l("div", { className: y("flex items-center gap-0.5", e), ...t }), no = ({ variant: e = "ghost", className: t, size: n, ...o }) => {
660
660
  const r = n ?? ln.count(o.children) > 1 ? "default" : "icon";
661
661
  return /* @__PURE__ */ l(
662
- Q,
662
+ ee,
663
663
  {
664
664
  className: y(
665
665
  "shrink-0 gap-1.5 rounded-xl",
@@ -684,8 +684,8 @@ const Jn = ({ className: e, ...t }) => /* @__PURE__ */ l("div", { className: "bg
684
684
  ...a
685
685
  }) => {
686
686
  let i = /* @__PURE__ */ l(dn, { className: "size-4" });
687
- return o === "submitted" ? i = /* @__PURE__ */ l(pn, { className: "size-4 animate-spin" }) : o === "streaming" ? i = /* @__PURE__ */ l(hn, { className: "size-3.5 fill-current" }) : o === "error" && (i = /* @__PURE__ */ l(he, { className: "size-4" })), /* @__PURE__ */ l(
688
- Q,
687
+ return o === "submitted" ? i = /* @__PURE__ */ l(pn, { className: "size-4 animate-spin" }) : o === "streaming" ? i = /* @__PURE__ */ l(hn, { className: "size-3.5 fill-current" }) : o === "error" && (i = /* @__PURE__ */ l(pe, { className: "size-4" })), /* @__PURE__ */ l(
688
+ ee,
689
689
  {
690
690
  className: y(
691
691
  "shrink-0 rounded-lg size-9",
@@ -710,13 +710,13 @@ const Jn = ({ className: e, ...t }) => /* @__PURE__ */ l("div", { className: "bg
710
710
  );
711
711
  };
712
712
  function Tt({ delayDuration: e = 400, ...t }) {
713
- return /* @__PURE__ */ l(X.Provider, { "data-slot": "tooltip-provider", delayDuration: e, ...t });
713
+ return /* @__PURE__ */ l(K.Provider, { "data-slot": "tooltip-provider", delayDuration: e, ...t });
714
714
  }
715
715
  function Ct({ ...e }) {
716
- return /* @__PURE__ */ l(Tt, { children: /* @__PURE__ */ l(X.Root, { "data-slot": "tooltip", ...e }) });
716
+ return /* @__PURE__ */ l(Tt, { children: /* @__PURE__ */ l(K.Root, { "data-slot": "tooltip", ...e }) });
717
717
  }
718
718
  function At({ ...e }) {
719
- return /* @__PURE__ */ l(X.Trigger, { "data-slot": "tooltip-trigger", ...e });
719
+ return /* @__PURE__ */ l(K.Trigger, { "data-slot": "tooltip-trigger", ...e });
720
720
  }
721
721
  function It({
722
722
  className: e,
@@ -724,8 +724,8 @@ function It({
724
724
  children: n,
725
725
  ...o
726
726
  }) {
727
- return /* @__PURE__ */ l(X.Portal, { children: /* @__PURE__ */ w(
728
- X.Content,
727
+ return /* @__PURE__ */ l(K.Portal, { children: /* @__PURE__ */ w(
728
+ K.Content,
729
729
  {
730
730
  "data-slot": "tooltip-content",
731
731
  sideOffset: t,
@@ -736,7 +736,7 @@ function It({
736
736
  ...o,
737
737
  children: [
738
738
  n,
739
- /* @__PURE__ */ l(X.Arrow, { className: "bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
739
+ /* @__PURE__ */ l(K.Arrow, { className: "bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
740
740
  ]
741
741
  }
742
742
  ) });
@@ -750,26 +750,26 @@ function ro({
750
750
  conversationId: a,
751
751
  className: i
752
752
  }) {
753
- const { t: c } = M(["chat", "translation"]), { composer: s } = te(), [d, h] = $(""), [f, b] = $([]), m = ue(null), k = ue(null);
754
- J(() => {
753
+ const { t: c } = M(["chat", "translation"]), { composer: s } = W(), [p, h] = $(""), [f, b] = $([]), m = je(null), k = je(null);
754
+ Q(() => {
755
755
  a === "/" && m.current && m.current.focus();
756
756
  }, [a]);
757
- const p = ne((E) => {
757
+ const d = ne((E) => {
758
758
  if (E.target.files) {
759
- const C = Array.from(E.target.files), O = s?.attachments?.maxSize;
760
- if (O && C.filter((j) => j.size > O).length > 0) {
761
- An.error(c("file_too_large", { size: O }));
759
+ const C = Array.from(E.target.files), F = s?.attachments?.maxSize;
760
+ if (F && C.filter((j) => j.size > F).length > 0) {
761
+ An.error(c("file_too_large", { size: F }));
762
762
  return;
763
763
  }
764
764
  b((H) => [...H, ...C]);
765
765
  }
766
766
  E.target.value = "";
767
767
  }, [s, c]), v = ne((E) => {
768
- b((C) => C.filter((O, H) => H !== E));
768
+ b((C) => C.filter((F, H) => H !== E));
769
769
  }, []), x = t === "streaming" && !n, g = (E) => {
770
- if (E.preventDefault(), !x && (d.trim() || f.length > 0)) {
770
+ if (E.preventDefault(), !x && (p.trim() || f.length > 0)) {
771
771
  const C = new DataTransfer();
772
- f.forEach((O) => C.items.add(O)), e(d, C.files), h(""), b([]);
772
+ f.forEach((F) => C.items.add(F)), e(p, C.files), h(""), b([]);
773
773
  }
774
774
  };
775
775
  return /* @__PURE__ */ l("div", { className: y("shrink-0 px-4 pb-5 pt-2 md:px-6 md:pb-6 w-full", i), children: /* @__PURE__ */ l("div", { className: "max-w-4xl mx-auto w-full", children: /* @__PURE__ */ w(Jn, { onSubmit: g, children: [
@@ -778,7 +778,7 @@ function ro({
778
778
  {
779
779
  type: "file",
780
780
  ref: k,
781
- onChange: p,
781
+ onChange: d,
782
782
  multiple: !0,
783
783
  accept: s?.attachments?.types?.join(",") || "image/*,text/*,.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx",
784
784
  className: "hidden"
@@ -788,14 +788,14 @@ function ro({
788
788
  f.length > 0 && /* @__PURE__ */ l("div", { className: "flex flex-wrap gap-2 px-2 pt-2", children: f.map((E, C) => /* @__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: [
789
789
  E.type.startsWith("image/") ? /* @__PURE__ */ l("img", { src: URL.createObjectURL(E), alt: E.name, className: "size-7 rounded-lg object-cover ring-1 ring-border/50" }) : /* @__PURE__ */ l(xt, { className: "size-3.5 text-muted-foreground shrink-0" }),
790
790
  /* @__PURE__ */ l("span", { className: "max-w-[120px] truncate text-xs font-medium text-foreground/80", children: E.name }),
791
- /* @__PURE__ */ l("button", { type: "button", onClick: () => v(C), 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__ */ l(he, { className: "size-2.5" }) })
791
+ /* @__PURE__ */ l("button", { type: "button", onClick: () => v(C), 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__ */ l(pe, { className: "size-2.5" }) })
792
792
  ] }, `${E.name}-${C}`)) }),
793
793
  /* @__PURE__ */ l(
794
794
  Qn,
795
795
  {
796
796
  ref: m,
797
797
  onChange: (E) => h(E.target.value),
798
- value: d,
798
+ value: p,
799
799
  autoFocus: !0,
800
800
  placeholder: s?.placeholder ? c(s.placeholder) : c("input_placeholder")
801
801
  }
@@ -809,7 +809,7 @@ function ro({
809
809
  /* @__PURE__ */ l(
810
810
  oo,
811
811
  {
812
- disabled: t !== "streaming" && !d && f.length === 0,
812
+ disabled: t !== "streaming" && !p && f.length === 0,
813
813
  status: r ? "error" : t === "error" ? void 0 : n ? "ready" : t,
814
814
  onClick: t === "streaming" && !n ? o : void 0
815
815
  }
@@ -830,7 +830,7 @@ const ao = ({
830
830
  t?.(e);
831
831
  };
832
832
  return /* @__PURE__ */ l(
833
- Q,
833
+ ee,
834
834
  {
835
835
  className: y("cursor-pointer rounded-full px-4", n),
836
836
  onClick: c,
@@ -842,10 +842,10 @@ const ao = ({
842
842
  }
843
843
  );
844
844
  }, lo = ({ onSuggestionClick: e, icons: t }) => {
845
- const { t: n, i18n: o } = M(["chat", "translation"]), { welcome: r } = te(), a = r?.prompts ?? [], i = a.map((h) => {
845
+ const { t: n, i18n: o } = M(["chat", "translation"]), { welcome: r } = W(), a = r?.prompts ?? [], i = a.map((h) => {
846
846
  const f = typeof h == "string" ? h : h.text;
847
847
  return n(f);
848
- }).filter((h) => h !== null && h !== ""), c = o.dir() === "rtl", s = r?.greeting ? n(r.greeting) ?? r.greeting : n("welcome.title"), d = r?.subtitle ? n(r.subtitle) : null;
848
+ }).filter((h) => h !== null && h !== ""), c = o.dir() === "rtl", s = r?.greeting ? n(r.greeting) ?? r.greeting : n("welcome.title"), p = r?.subtitle ? n(r.subtitle) : null;
849
849
  return /* @__PURE__ */ w(
850
850
  "div",
851
851
  {
@@ -856,12 +856,12 @@ const ao = ({
856
856
  /* @__PURE__ */ l("div", { className: "absolute size-24 rounded-full bg-primary/5 blur-[40px] animate-pulse" }),
857
857
  /* @__PURE__ */ l("div", { className: "relative size-12 md:size-16 rounded-xl bg-gradient-to-br from-surface to-secondary flex items-center justify-center border border-border/10 dark:border-border/5 shadow-xl shadow-black/10", children: typeof r.icon == "function" ? /* @__PURE__ */ l(r.icon, { className: "size-6 md:size-8 text-primary opacity-80" }) : r.icon })
858
858
  ] }),
859
- (s || d) && /* @__PURE__ */ w("div", { className: "space-y-3 mb-12 max-w-xl mx-auto", children: [
859
+ (s || p) && /* @__PURE__ */ w("div", { className: "space-y-3 mb-12 max-w-xl mx-auto", children: [
860
860
  s && /* @__PURE__ */ l("h1", { className: "text-2xl md:text-3xl font-black tracking-tight leading-tight text-foreground", children: s }),
861
- d && /* @__PURE__ */ l("p", { className: "text-muted-foreground text-base md:text-lg font-medium max-w-md mx-auto leading-relaxed opacity-85 dark:opacity-70", children: d })
861
+ p && /* @__PURE__ */ l("p", { className: "text-muted-foreground text-base md:text-lg font-medium max-w-md mx-auto leading-relaxed opacity-85 dark:opacity-70", children: p })
862
862
  ] }),
863
863
  i.length > 0 && /* @__PURE__ */ l("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-3 w-full max-w-xl", children: i.map((h, f) => {
864
- const b = a[f], m = typeof b != "string" ? b.icon : null, k = t && t[f % t.length] ? t[f % t.length] : mn, p = m || k;
864
+ const b = a[f], m = typeof b != "string" ? b.icon : null, k = t && t[f % t.length] ? t[f % t.length] : mn, d = m || k;
865
865
  return /* @__PURE__ */ l(
866
866
  "div",
867
867
  {
@@ -882,7 +882,7 @@ const ao = ({
882
882
  ),
883
883
  children: [
884
884
  /* @__PURE__ */ w("div", { className: "flex items-center gap-3 w-full text-start", children: [
885
- /* @__PURE__ */ l("div", { className: "size-8 rounded-lg bg-secondary/35 dark:bg-background/40 flex items-center justify-center shrink-0 border border-border/10 dark:border-border/5 group-hover:bg-primary group-hover:text-primary-foreground transition-colors duration-300", children: /* @__PURE__ */ l(p, { className: "size-4" }) }),
885
+ /* @__PURE__ */ l("div", { className: "size-8 rounded-lg bg-secondary/35 dark:bg-background/40 flex items-center justify-center shrink-0 border border-border/10 dark:border-border/5 group-hover:bg-primary group-hover:text-primary-foreground transition-colors duration-300", children: /* @__PURE__ */ l(d, { className: "size-4" }) }),
886
886
  /* @__PURE__ */ l("div", { className: "flex flex-col gap-0.5 overflow-hidden", children: /* @__PURE__ */ l("span", { className: "text-sm md:text-base font-semibold text-foreground/80 group-hover:text-foreground transition-colors", children: h.length > 60 ? h.substring(0, 60) + "..." : h }) })
887
887
  ] }),
888
888
  /* @__PURE__ */ l("div", { className: y(
@@ -909,7 +909,7 @@ const ao = ({
909
909
  ),
910
910
  ...n
911
911
  }
912
- ), Lt = ({ children: e, className: t, isPlain: n, ...o }) => /* @__PURE__ */ l(
912
+ ), Ot = ({ children: e, className: t, isPlain: n, ...o }) => /* @__PURE__ */ l(
913
913
  "div",
914
914
  {
915
915
  className: y(
@@ -955,7 +955,7 @@ const ao = ({
955
955
  ...i
956
956
  }) => {
957
957
  const c = /* @__PURE__ */ w(
958
- Q,
958
+ ee,
959
959
  {
960
960
  className: y(
961
961
  "size-7 p-1 rounded-lg",
@@ -998,7 +998,7 @@ class le {
998
998
  le.prototype.normal = {};
999
999
  le.prototype.property = {};
1000
1000
  le.prototype.space = void 0;
1001
- function Ot(e, t) {
1001
+ function Ft(e, t) {
1002
1002
  const n = {}, o = {};
1003
1003
  for (const r of e)
1004
1004
  Object.assign(n, r.property), Object.assign(o, r.normal);
@@ -1033,24 +1033,24 @@ D.prototype.property = "";
1033
1033
  D.prototype.spaceSeparated = !1;
1034
1034
  D.prototype.space = void 0;
1035
1035
  let so = 0;
1036
- const _ = G(), I = G(), Ce = G(), u = G(), T = G(), K = G(), P = G();
1036
+ const _ = G(), I = G(), Te = G(), u = G(), T = G(), Z = G(), P = G();
1037
1037
  function G() {
1038
1038
  return 2 ** ++so;
1039
1039
  }
1040
- const Ae = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1040
+ const Ce = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1041
1041
  __proto__: null,
1042
1042
  boolean: _,
1043
1043
  booleanish: I,
1044
1044
  commaOrSpaceSeparated: P,
1045
- commaSeparated: K,
1045
+ commaSeparated: Z,
1046
1046
  number: u,
1047
- overloadedBoolean: Ce,
1047
+ overloadedBoolean: Te,
1048
1048
  spaceSeparated: T
1049
- }, Symbol.toStringTag, { value: "Module" })), ke = (
1049
+ }, Symbol.toStringTag, { value: "Module" })), be = (
1050
1050
  /** @type {ReadonlyArray<keyof typeof types>} */
1051
- Object.keys(Ae)
1051
+ Object.keys(Ce)
1052
1052
  );
1053
- class Ue extends D {
1053
+ class $e extends D {
1054
1054
  /**
1055
1055
  * @constructor
1056
1056
  * @param {string} property
@@ -1067,20 +1067,20 @@ class Ue extends D {
1067
1067
  constructor(t, n, o, r) {
1068
1068
  let a = -1;
1069
1069
  if (super(t, n), We(this, "space", r), typeof o == "number")
1070
- for (; ++a < ke.length; ) {
1071
- const i = ke[a];
1072
- We(this, ke[a], (o & Ae[i]) === Ae[i]);
1070
+ for (; ++a < be.length; ) {
1071
+ const i = be[a];
1072
+ We(this, be[a], (o & Ce[i]) === Ce[i]);
1073
1073
  }
1074
1074
  }
1075
1075
  }
1076
- Ue.prototype.defined = !0;
1076
+ $e.prototype.defined = !0;
1077
1077
  function We(e, t, n) {
1078
1078
  n && (e[t] = n);
1079
1079
  }
1080
- function ee(e) {
1080
+ function te(e) {
1081
1081
  const t = {}, n = {};
1082
1082
  for (const [o, r] of Object.entries(e.properties)) {
1083
- const a = new Ue(
1083
+ const a = new $e(
1084
1084
  o,
1085
1085
  e.transform(e.attributes || {}, o),
1086
1086
  r,
@@ -1090,7 +1090,7 @@ function ee(e) {
1090
1090
  }
1091
1091
  return new le(t, n, e.space);
1092
1092
  }
1093
- const Ft = ee({
1093
+ const Lt = te({
1094
1094
  properties: {
1095
1095
  ariaActiveDescendant: null,
1096
1096
  ariaAtomic: I,
@@ -1152,7 +1152,7 @@ function Dt(e, t) {
1152
1152
  function Pt(e, t) {
1153
1153
  return Dt(e, t.toLowerCase());
1154
1154
  }
1155
- const co = ee({
1155
+ const co = te({
1156
1156
  attributes: {
1157
1157
  acceptcharset: "accept-charset",
1158
1158
  classname: "class",
@@ -1163,7 +1163,7 @@ const co = ee({
1163
1163
  properties: {
1164
1164
  // Standard Properties.
1165
1165
  abbr: null,
1166
- accept: K,
1166
+ accept: Z,
1167
1167
  acceptCharset: T,
1168
1168
  accessKey: T,
1169
1169
  action: null,
@@ -1190,7 +1190,7 @@ const co = ee({
1190
1190
  contentEditable: I,
1191
1191
  controls: _,
1192
1192
  controlsList: T,
1193
- coords: u | K,
1193
+ coords: u | Z,
1194
1194
  crossOrigin: null,
1195
1195
  data: null,
1196
1196
  dateTime: null,
@@ -1200,7 +1200,7 @@ const co = ee({
1200
1200
  dir: null,
1201
1201
  dirName: null,
1202
1202
  disabled: _,
1203
- download: Ce,
1203
+ download: Te,
1204
1204
  draggable: I,
1205
1205
  encType: null,
1206
1206
  enterKeyHint: null,
@@ -1213,7 +1213,7 @@ const co = ee({
1213
1213
  formTarget: null,
1214
1214
  headers: T,
1215
1215
  height: u,
1216
- hidden: Ce,
1216
+ hidden: Te,
1217
1217
  high: u,
1218
1218
  href: null,
1219
1219
  hrefLang: null,
@@ -1513,7 +1513,7 @@ const co = ee({
1513
1513
  },
1514
1514
  space: "html",
1515
1515
  transform: Pt
1516
- }), uo = ee({
1516
+ }), uo = te({
1517
1517
  attributes: {
1518
1518
  accentHeight: "accent-height",
1519
1519
  alignmentBaseline: "alignment-baseline",
@@ -1772,9 +1772,9 @@ const co = ee({
1772
1772
  from: null,
1773
1773
  fx: null,
1774
1774
  fy: null,
1775
- g1: K,
1776
- g2: K,
1777
- glyphName: K,
1775
+ g1: Z,
1776
+ g2: Z,
1777
+ glyphName: Z,
1778
1778
  glyphOrientationHorizontal: null,
1779
1779
  glyphOrientationVertical: null,
1780
1780
  glyphRef: null,
@@ -2072,7 +2072,7 @@ const co = ee({
2072
2072
  },
2073
2073
  space: "svg",
2074
2074
  transform: Dt
2075
- }), Mt = ee({
2075
+ }), Mt = te({
2076
2076
  properties: {
2077
2077
  xLinkActuate: null,
2078
2078
  xLinkArcRole: null,
@@ -2086,12 +2086,12 @@ const co = ee({
2086
2086
  transform(e, t) {
2087
2087
  return "xlink:" + t.slice(5).toLowerCase();
2088
2088
  }
2089
- }), zt = ee({
2089
+ }), zt = te({
2090
2090
  attributes: { xmlnsxlink: "xmlns:xlink" },
2091
2091
  properties: { xmlnsXLink: null, xmlns: null },
2092
2092
  space: "xmlns",
2093
2093
  transform: Pt
2094
- }), $t = ee({
2094
+ }), $t = te({
2095
2095
  properties: { xmlBase: null, xmlLang: null, xmlSpace: null },
2096
2096
  space: "xml",
2097
2097
  transform(e, t) {
@@ -2114,7 +2114,7 @@ function go(e, t) {
2114
2114
  i.charAt(0) !== "-" && (i = "-" + i), t = "data" + i;
2115
2115
  }
2116
2116
  }
2117
- r = Ue;
2117
+ r = $e;
2118
2118
  }
2119
2119
  return new r(o, t);
2120
2120
  }
@@ -2124,7 +2124,7 @@ function mo(e) {
2124
2124
  function fo(e) {
2125
2125
  return e.charAt(1).toUpperCase();
2126
2126
  }
2127
- const bo = Ot([Ft, co, Mt, zt, $t], "html"), ko = Ot([Ft, uo, Mt, zt, $t], "svg");
2127
+ const bo = Ft([Lt, co, Mt, zt, $t], "html"), ko = Ft([Lt, uo, Mt, zt, $t], "svg");
2128
2128
  function Xe(e) {
2129
2129
  const t = [], n = String(e || "");
2130
2130
  let o = n.indexOf(","), r = 0, a = !1;
@@ -2162,22 +2162,22 @@ function Ut(e, t, n) {
2162
2162
  let s;
2163
2163
  if (a == null) {
2164
2164
  s = { type: "root", children: [] };
2165
- const d = (
2165
+ const p = (
2166
2166
  /** @type {Child} */
2167
2167
  i
2168
2168
  );
2169
- c.unshift(d);
2169
+ c.unshift(p);
2170
2170
  } else {
2171
2171
  s = yo(a, t);
2172
- const d = s.tagName.toLowerCase(), h = o ? o.get(d) : void 0;
2173
- if (s.tagName = h || d, vo(i))
2172
+ const p = s.tagName.toLowerCase(), h = o ? o.get(p) : void 0;
2173
+ if (s.tagName = h || p, vo(i))
2174
2174
  c.unshift(i);
2175
2175
  else
2176
2176
  for (const [f, b] of Object.entries(i))
2177
2177
  wo(e, s.properties, f, b);
2178
2178
  }
2179
- for (const d of c)
2180
- Ie(s.children, d);
2179
+ for (const p of c)
2180
+ Ae(s.children, p);
2181
2181
  return s.type === "element" && s.tagName === "template" && (s.content = { type: "root", children: s.children }, s.children = []), s;
2182
2182
  }
2183
2183
  return r;
@@ -2228,14 +2228,14 @@ function wo(e, t, n, o) {
2228
2228
  )), t[r.property] = a;
2229
2229
  }
2230
2230
  }
2231
- function Ie(e, t) {
2231
+ function Ae(e, t) {
2232
2232
  if (t != null) if (typeof t == "number" || typeof t == "string")
2233
2233
  e.push({ type: "text", value: String(t) });
2234
2234
  else if (Array.isArray(t))
2235
2235
  for (const n of t)
2236
- Ie(e, n);
2236
+ Ae(e, n);
2237
2237
  else if (typeof t == "object" && "type" in t)
2238
- t.type === "root" ? Ie(e, t.children) : e.push(t);
2238
+ t.type === "root" ? Ae(e, t.children) : e.push(t);
2239
2239
  else
2240
2240
  throw new Error("Expected node, nodes, or string, got `" + t + "`");
2241
2241
  }
@@ -2300,7 +2300,7 @@ const So = [
2300
2300
  "solidColor",
2301
2301
  "textArea",
2302
2302
  "textPath"
2303
- ], Eo = Ut(bo, "div"), No = Ut(ko, "g", So), ye = {
2303
+ ], Eo = Ut(bo, "div"), No = Ut(ko, "g", So), ke = {
2304
2304
  html: "http://www.w3.org/1999/xhtml",
2305
2305
  svg: "http://www.w3.org/2000/svg"
2306
2306
  };
@@ -2314,7 +2314,7 @@ function Bt(e, t) {
2314
2314
  function Co(e, t) {
2315
2315
  switch (e.nodeType) {
2316
2316
  case 1:
2317
- return Lo(
2317
+ return Oo(
2318
2318
  /** @type {Element} */
2319
2319
  e,
2320
2320
  t
@@ -2364,10 +2364,10 @@ function Io(e) {
2364
2364
  function Ro(e) {
2365
2365
  return { type: "comment", value: e.nodeValue || "" };
2366
2366
  }
2367
- function Lo(e, t) {
2368
- const n = e.namespaceURI, o = n === ye.svg ? No : Eo, r = n === ye.html ? e.tagName.toLowerCase() : e.tagName, a = (
2367
+ function Oo(e, t) {
2368
+ const n = e.namespaceURI, o = n === ke.svg ? No : Eo, r = n === ke.html ? e.tagName.toLowerCase() : e.tagName, a = (
2369
2369
  // @ts-expect-error: DOM types are wrong, content can exist.
2370
- n === ye.html && r === "template" ? e.content : e
2370
+ n === ke.html && r === "template" ? e.content : e
2371
2371
  ), i = e.getAttributeNames(), c = {};
2372
2372
  let s = -1;
2373
2373
  for (; ++s < i.length; )
@@ -2384,18 +2384,18 @@ function Ht(e, t) {
2384
2384
  return o;
2385
2385
  }
2386
2386
  new DOMParser();
2387
- function Oo(e, t) {
2388
- const n = Fo(e);
2387
+ function Fo(e, t) {
2388
+ const n = Lo(e);
2389
2389
  return (
2390
2390
  /** @type {Root} */
2391
2391
  To(n)
2392
2392
  );
2393
2393
  }
2394
- function Fo(e) {
2394
+ function Lo(e) {
2395
2395
  const t = document.createElement("template");
2396
2396
  return t.innerHTML = e, t.content;
2397
2397
  }
2398
- const Be = (
2398
+ const Ue = (
2399
2399
  // Note: overloads in JSDoc can’t yet use different `@template`s.
2400
2400
  /**
2401
2401
  * @type {(
@@ -2414,7 +2414,7 @@ const Be = (
2414
2414
  if (e == null)
2415
2415
  return zo;
2416
2416
  if (typeof e == "function")
2417
- return me(e);
2417
+ return ge(e);
2418
2418
  if (typeof e == "object")
2419
2419
  return Array.isArray(e) ? Do(e) : (
2420
2420
  // Cast because `ReadonlyArray` goes into the above but `isArray`
@@ -2433,8 +2433,8 @@ function Do(e) {
2433
2433
  const t = [];
2434
2434
  let n = -1;
2435
2435
  for (; ++n < e.length; )
2436
- t[n] = Be(e[n]);
2437
- return me(o);
2436
+ t[n] = Ue(e[n]);
2437
+ return ge(o);
2438
2438
  function o(...r) {
2439
2439
  let a = -1;
2440
2440
  for (; ++a < t.length; )
@@ -2447,7 +2447,7 @@ function Po(e) {
2447
2447
  /** @type {Record<string, unknown>} */
2448
2448
  e
2449
2449
  );
2450
- return me(n);
2450
+ return ge(n);
2451
2451
  function n(o) {
2452
2452
  const r = (
2453
2453
  /** @type {Record<string, unknown>} */
@@ -2461,12 +2461,12 @@ function Po(e) {
2461
2461
  }
2462
2462
  }
2463
2463
  function Mo(e) {
2464
- return me(t);
2464
+ return ge(t);
2465
2465
  function t(n) {
2466
2466
  return n && n.type === e;
2467
2467
  }
2468
2468
  }
2469
- function me(e) {
2469
+ function ge(e) {
2470
2470
  return t;
2471
2471
  function t(n, o, r) {
2472
2472
  return !!($o(n) && e.call(
@@ -2498,7 +2498,7 @@ const et = (
2498
2498
  * @returns {UnistNode | undefined}
2499
2499
  */
2500
2500
  (function(e, t, n) {
2501
- const o = Be(n);
2501
+ const o = Ue(n);
2502
2502
  if (!e || !e.type || !e.children)
2503
2503
  throw new Error("Expected parent node");
2504
2504
  if (typeof t == "number") {
@@ -2532,7 +2532,7 @@ const et = (
2532
2532
  if (typeof e == "object")
2533
2533
  return Uo(e);
2534
2534
  if (typeof e == "function")
2535
- return He(e);
2535
+ return Be(e);
2536
2536
  throw new Error("Expected function, string, or array as `test`");
2537
2537
  })
2538
2538
  );
@@ -2541,7 +2541,7 @@ function Uo(e) {
2541
2541
  let n = -1;
2542
2542
  for (; ++n < e.length; )
2543
2543
  t[n] = V(e[n]);
2544
- return He(o);
2544
+ return Be(o);
2545
2545
  function o(...r) {
2546
2546
  let a = -1;
2547
2547
  for (; ++a < t.length; )
@@ -2550,12 +2550,12 @@ function Uo(e) {
2550
2550
  }
2551
2551
  }
2552
2552
  function Bo(e) {
2553
- return He(t);
2553
+ return Be(t);
2554
2554
  function t(n) {
2555
2555
  return n.tagName === e;
2556
2556
  }
2557
2557
  }
2558
- function He(e) {
2558
+ function Be(e) {
2559
2559
  return t;
2560
2560
  function t(n, o, r) {
2561
2561
  return !!(jo(n) && e.call(
@@ -2572,7 +2572,7 @@ function Ho(e) {
2572
2572
  function jo(e) {
2573
2573
  return e !== null && typeof e == "object" && "type" in e && "tagName" in e;
2574
2574
  }
2575
- const tt = /\n/g, nt = /[\t ]+/g, Re = V("br"), ot = V(Zo), qo = V("p"), rt = V("tr"), Go = V([
2575
+ const tt = /\n/g, nt = /[\t ]+/g, Ie = V("br"), ot = V(Zo), qo = V("p"), rt = V("tr"), Go = V([
2576
2576
  // List from: <https://html.spec.whatwg.org/multipage/rendering.html#hidden-elements>
2577
2577
  "datalist",
2578
2578
  "head",
@@ -2691,16 +2691,16 @@ function Vo(e, t) {
2691
2691
  {
2692
2692
  whitespace: a,
2693
2693
  breakBefore: c ? void 0 : r,
2694
- breakAfter: c < o.length - 1 ? Re(o[c + 1]) : r
2694
+ breakAfter: c < o.length - 1 ? Ie(o[c + 1]) : r
2695
2695
  }
2696
2696
  )
2697
2697
  );
2698
2698
  const s = [];
2699
- let d;
2699
+ let p;
2700
2700
  for (c = -1; ++c < i.length; ) {
2701
2701
  const h = i[c];
2702
- typeof h == "number" ? d !== void 0 && h > d && (d = h) : h && (d !== void 0 && d > -1 && s.push(`
2703
- `.repeat(d) || " "), d = -1, s.push(h));
2702
+ typeof h == "number" ? p !== void 0 && h > p && (p = h) : h && (p !== void 0 && p > -1 && s.push(`
2703
+ `.repeat(p) || " "), p = -1, s.push(h));
2704
2704
  }
2705
2705
  return s.join("");
2706
2706
  }
@@ -2713,14 +2713,14 @@ function Wo(e, t, n) {
2713
2713
  if (Go(e))
2714
2714
  return i;
2715
2715
  let c, s;
2716
- for (Re(e) || rt(e) && // @ts-expect-error: something up with types of parents.
2716
+ for (Ie(e) || rt(e) && // @ts-expect-error: something up with types of parents.
2717
2717
  et(t, e, rt) ? s = `
2718
2718
  ` : qo(e) ? (c = 2, s = 2) : jt(e) && (c = 1, s = 1); ++a < r.length; )
2719
2719
  i = i.concat(
2720
2720
  qt(r[a], e, {
2721
2721
  whitespace: o,
2722
2722
  breakBefore: a ? void 0 : c,
2723
- breakAfter: a < r.length - 1 ? Re(r[a + 1]) : s
2723
+ breakAfter: a < r.length - 1 ? Ie(r[a + 1]) : s
2724
2724
  })
2725
2725
  );
2726
2726
  return ot(e) && // @ts-expect-error: something up with types of parents.
@@ -2731,7 +2731,7 @@ function Gt(e, t) {
2731
2731
  let a = 0;
2732
2732
  for (; a <= n.length; ) {
2733
2733
  tt.lastIndex = a;
2734
- const s = tt.exec(n), d = s && "index" in s ? s.index : n.length;
2734
+ const s = tt.exec(n), p = s && "index" in s ? s.index : n.length;
2735
2735
  o.push(
2736
2736
  // Any sequence of collapsible spaces and tabs immediately preceding or
2737
2737
  // following a segment break is removed.
@@ -2739,11 +2739,11 @@ function Gt(e, t) {
2739
2739
  // […] ignoring bidi formatting characters (characters with the
2740
2740
  // Bidi_Control property [UAX9]: ALM, LTR, RTL, LRE-RLO, LRI-PDI) as if
2741
2741
  // they were not there.
2742
- n.slice(a, d).replace(/[\u061C\u200E\u200F\u202A-\u202E\u2066-\u2069]/g, ""),
2742
+ n.slice(a, p).replace(/[\u061C\u200E\u200F\u202A-\u202E\u2066-\u2069]/g, ""),
2743
2743
  a === 0 ? t.breakBefore : !0,
2744
- d === n.length ? t.breakAfter : !0
2744
+ p === n.length ? t.breakAfter : !0
2745
2745
  )
2746
- ), a = d + 1;
2746
+ ), a = p + 1;
2747
2747
  }
2748
2748
  let i = -1, c;
2749
2749
  for (; ++i < o.length; )
@@ -2797,9 +2797,9 @@ const Wt = [], Qo = !0, at = !1, Yt = "skip";
2797
2797
  function er(e, t, n, o) {
2798
2798
  let r;
2799
2799
  r = t;
2800
- const a = Be(r), i = 1;
2800
+ const a = Ue(r), i = 1;
2801
2801
  c(e, void 0, [])();
2802
- function c(s, d, h) {
2802
+ function c(s, p, h) {
2803
2803
  const f = (
2804
2804
  /** @type {Record<string, unknown>} */
2805
2805
  s && typeof s == "object" ? s : {}
@@ -2818,8 +2818,8 @@ function er(e, t, n, o) {
2818
2818
  }
2819
2819
  return b;
2820
2820
  function b() {
2821
- let m = Wt, k, p, v;
2822
- if (a(s, d, h[h.length - 1] || void 0) && (m = tr(n(s, h)), m[0] === at))
2821
+ let m = Wt, k, d, v;
2822
+ if (a(s, p, h[h.length - 1] || void 0) && (m = tr(n(s, h)), m[0] === at))
2823
2823
  return m;
2824
2824
  if ("children" in s && s.children) {
2825
2825
  const x = (
@@ -2827,11 +2827,11 @@ function er(e, t, n, o) {
2827
2827
  s
2828
2828
  );
2829
2829
  if (x.children && m[0] !== Yt)
2830
- for (p = -1 + i, v = h.concat(x); p > -1 && p < x.children.length; ) {
2831
- const g = x.children[p];
2832
- if (k = c(g, p, v)(), k[0] === at)
2830
+ for (d = -1 + i, v = h.concat(x); d > -1 && d < x.children.length; ) {
2831
+ const g = x.children[d];
2832
+ if (k = c(g, d, v)(), k[0] === at)
2833
2833
  return k;
2834
- p = typeof k[1] == "number" ? k[1] : p + i;
2834
+ d = typeof k[1] == "number" ? k[1] : d + i;
2835
2835
  }
2836
2836
  }
2837
2837
  return m;
@@ -2846,9 +2846,9 @@ function rr(e) {
2846
2846
  const t = e || nr;
2847
2847
  return function(n, o) {
2848
2848
  er(n, "element", function(r, a) {
2849
- const i = Array.isArray(r.properties.className) ? r.properties.className : or, c = i.includes("language-math"), s = i.includes("math-display"), d = i.includes("math-inline");
2849
+ const i = Array.isArray(r.properties.className) ? r.properties.className : or, c = i.includes("language-math"), s = i.includes("math-display"), p = i.includes("math-inline");
2850
2850
  let h = s;
2851
- if (!c && !s && !d)
2851
+ if (!c && !s && !p)
2852
2852
  return;
2853
2853
  let f = a[a.length - 1], b = r;
2854
2854
  if (r.tagName === "code" && c && f && f.type === "element" && f.tagName === "pre" && (b = f, f = a[a.length - 2], h = !0), !f) return;
@@ -2895,9 +2895,9 @@ function rr(e) {
2895
2895
  }
2896
2896
  }
2897
2897
  typeof k == "string" && (k = /** @type {Array<ElementContent>} */
2898
- Oo(k).children);
2899
- const p = f.children.indexOf(b);
2900
- return f.children.splice(p, 1, ...k), Yt;
2898
+ Fo(k).children);
2899
+ const d = f.children.indexOf(b);
2900
+ return f.children.splice(d, 1, ...k), Yt;
2901
2901
  });
2902
2902
  };
2903
2903
  }
@@ -2925,7 +2925,7 @@ function lr() {
2925
2925
  }
2926
2926
  };
2927
2927
  function e(s) {
2928
- const d = {
2928
+ const p = {
2929
2929
  type: "element",
2930
2930
  tagName: "code",
2931
2931
  properties: { className: ["language-math", "math-display"] },
@@ -2936,7 +2936,7 @@ function lr() {
2936
2936
  type: "math",
2937
2937
  meta: null,
2938
2938
  value: "",
2939
- data: { hName: "pre", hChildren: [d] }
2939
+ data: { hName: "pre", hChildren: [p] }
2940
2940
  },
2941
2941
  s
2942
2942
  );
@@ -2945,20 +2945,20 @@ function lr() {
2945
2945
  this.buffer();
2946
2946
  }
2947
2947
  function n() {
2948
- const s = this.resume(), d = this.stack[this.stack.length - 1];
2949
- d.type, d.meta = s;
2948
+ const s = this.resume(), p = this.stack[this.stack.length - 1];
2949
+ p.type, p.meta = s;
2950
2950
  }
2951
2951
  function o() {
2952
2952
  this.data.mathFlowInside || (this.buffer(), this.data.mathFlowInside = !0);
2953
2953
  }
2954
2954
  function r(s) {
2955
- const d = this.resume().replace(/^(\r?\n|\r)|(\r?\n|\r)$/g, ""), h = this.stack[this.stack.length - 1];
2956
- h.type, this.exit(s), h.value = d;
2955
+ const p = this.resume().replace(/^(\r?\n|\r)|(\r?\n|\r)$/g, ""), h = this.stack[this.stack.length - 1];
2956
+ h.type, this.exit(s), h.value = p;
2957
2957
  const f = (
2958
2958
  /** @type {HastElement} */
2959
2959
  h.data.hChildren[0]
2960
2960
  );
2961
- f.type, f.tagName, f.children.push({ type: "text", value: d }), this.data.mathFlowInside = void 0;
2961
+ f.type, f.tagName, f.children.push({ type: "text", value: p }), this.data.mathFlowInside = void 0;
2962
2962
  }
2963
2963
  function a(s) {
2964
2964
  this.enter(
@@ -2975,10 +2975,10 @@ function lr() {
2975
2975
  ), this.buffer();
2976
2976
  }
2977
2977
  function i(s) {
2978
- const d = this.resume(), h = this.stack[this.stack.length - 1];
2979
- h.type, this.exit(s), h.value = d, /** @type {Array<HastElementContent>} */
2978
+ const p = this.resume(), h = this.stack[this.stack.length - 1];
2979
+ h.type, this.exit(s), h.value = p, /** @type {Array<HastElementContent>} */
2980
2980
  // @ts-expect-error: we defined it in `enterMathFlow`.
2981
- h.data.hChildren.push({ type: "text", value: d });
2981
+ h.data.hChildren.push({ type: "text", value: p });
2982
2982
  }
2983
2983
  function c(s) {
2984
2984
  this.config.enter.data.call(this, s), this.config.exit.data.call(this, s);
@@ -3002,7 +3002,7 @@ function ir(e) {
3002
3002
  handlers: { math: n, inlineMath: o }
3003
3003
  };
3004
3004
  function n(a, i, c, s) {
3005
- const d = a.value || "", h = c.createTracker(s), f = "$".repeat(Math.max(ar(d, "$") + 1, 2)), b = c.enter("mathFlow");
3005
+ const p = a.value || "", h = c.createTracker(s), f = "$".repeat(Math.max(ar(p, "$") + 1, 2)), b = c.enter("mathFlow");
3006
3006
  let m = h.move(f);
3007
3007
  if (a.meta) {
3008
3008
  const k = c.enter("mathFlowMeta");
@@ -3017,14 +3017,14 @@ function ir(e) {
3017
3017
  ), k();
3018
3018
  }
3019
3019
  return m += h.move(`
3020
- `), d && (m += h.move(d + `
3020
+ `), p && (m += h.move(p + `
3021
3021
  `)), m += h.move(f), b(), m;
3022
3022
  }
3023
3023
  function o(a, i, c) {
3024
- let s = a.value || "", d = 1;
3025
- for (t || d++; new RegExp("(^|[^$])" + "\\$".repeat(d) + "([^$]|$)").test(s); )
3026
- d++;
3027
- const h = "$".repeat(d);
3024
+ let s = a.value || "", p = 1;
3025
+ for (t || p++; new RegExp("(^|[^$])" + "\\$".repeat(p) + "([^$]|$)").test(s); )
3026
+ p++;
3027
+ const h = "$".repeat(p);
3028
3028
  // Contains non-space.
3029
3029
  /[^ \r\n]/.test(s) && // Starts with space and ends with space.
3030
3030
  (/^[ \r\n]/.test(s) && /[ \r\n]$/.test(s) || // Starts or ends with dollar.
@@ -3036,8 +3036,8 @@ function ir(e) {
3036
3036
  const m = c.compilePattern(b);
3037
3037
  let k;
3038
3038
  for (; k = m.exec(s); ) {
3039
- let p = k.index;
3040
- s.codePointAt(p) === 10 && s.codePointAt(p - 1) === 13 && p--, s = s.slice(0, p) + " " + s.slice(k.index + 1);
3039
+ let d = k.index;
3040
+ s.codePointAt(d) === 10 && s.codePointAt(d - 1) === 13 && d--, s = s.slice(0, d) + " " + s.slice(k.index + 1);
3041
3041
  }
3042
3042
  }
3043
3043
  return h + s + h;
@@ -3079,9 +3079,9 @@ function cr(e, t, n) {
3079
3079
  return e.enter("mathFlow"), e.enter("mathFlowFence"), e.enter("mathFlowFenceSequence"), s(g);
3080
3080
  }
3081
3081
  function s(g) {
3082
- return g === 36 ? (e.consume(g), i++, s) : i < 2 ? n(g) : (e.exit("mathFlowFenceSequence"), se(e, d, "whitespace")(g));
3082
+ return g === 36 ? (e.consume(g), i++, s) : i < 2 ? n(g) : (e.exit("mathFlowFenceSequence"), se(e, p, "whitespace")(g));
3083
3083
  }
3084
- function d(g) {
3084
+ function p(g) {
3085
3085
  return g === null || q(g) ? f(g) : (e.enter("mathFlowFenceMeta"), e.enter("chunkString", {
3086
3086
  contentType: "string"
3087
3087
  }), h(g));
@@ -3102,24 +3102,24 @@ function cr(e, t, n) {
3102
3102
  return (a ? se(e, k, "linePrefix", a + 1) : k)(g);
3103
3103
  }
3104
3104
  function k(g) {
3105
- return g === null ? v(g) : q(g) ? e.attempt(it, b, v)(g) : (e.enter("mathFlowValue"), p(g));
3105
+ return g === null ? v(g) : q(g) ? e.attempt(it, b, v)(g) : (e.enter("mathFlowValue"), d(g));
3106
3106
  }
3107
- function p(g) {
3108
- return g === null || q(g) ? (e.exit("mathFlowValue"), k(g)) : (e.consume(g), p);
3107
+ function d(g) {
3108
+ return g === null || q(g) ? (e.exit("mathFlowValue"), k(g)) : (e.consume(g), d);
3109
3109
  }
3110
3110
  function v(g) {
3111
3111
  return e.exit("mathFlow"), t(g);
3112
3112
  }
3113
3113
  function x(g, E, C) {
3114
- let O = 0;
3114
+ let F = 0;
3115
3115
  return se(g, H, "linePrefix", o.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4);
3116
3116
  function H(R) {
3117
3117
  return g.enter("mathFlowFence"), g.enter("mathFlowFenceSequence"), j(R);
3118
3118
  }
3119
3119
  function j(R) {
3120
- return R === 36 ? (O++, g.consume(R), j) : O < i ? C(R) : (g.exit("mathFlowFenceSequence"), se(g, fe, "whitespace")(R));
3120
+ return R === 36 ? (F++, g.consume(R), j) : F < i ? C(R) : (g.exit("mathFlowFenceSequence"), se(g, me, "whitespace")(R));
3121
3121
  }
3122
- function fe(R) {
3122
+ function me(R) {
3123
3123
  return R === null || q(R) ? (g.exit("mathFlowFence"), E(R)) : C(R);
3124
3124
  }
3125
3125
  }
@@ -3143,22 +3143,22 @@ function dr(e) {
3143
3143
  name: "mathText"
3144
3144
  };
3145
3145
  function o(r, a, i) {
3146
- let c = 0, s, d;
3146
+ let c = 0, s, p;
3147
3147
  return h;
3148
- function h(p) {
3149
- return r.enter("mathText"), r.enter("mathTextSequence"), f(p);
3148
+ function h(d) {
3149
+ return r.enter("mathText"), r.enter("mathTextSequence"), f(d);
3150
3150
  }
3151
- function f(p) {
3152
- return p === 36 ? (r.consume(p), c++, f) : c < 2 && !n ? i(p) : (r.exit("mathTextSequence"), b(p));
3151
+ function f(d) {
3152
+ return d === 36 ? (r.consume(d), c++, f) : c < 2 && !n ? i(d) : (r.exit("mathTextSequence"), b(d));
3153
3153
  }
3154
- function b(p) {
3155
- return p === null ? i(p) : p === 36 ? (d = r.enter("mathTextSequence"), s = 0, k(p)) : p === 32 ? (r.enter("space"), r.consume(p), r.exit("space"), b) : q(p) ? (r.enter("lineEnding"), r.consume(p), r.exit("lineEnding"), b) : (r.enter("mathTextData"), m(p));
3154
+ function b(d) {
3155
+ return d === null ? i(d) : d === 36 ? (p = r.enter("mathTextSequence"), s = 0, k(d)) : d === 32 ? (r.enter("space"), r.consume(d), r.exit("space"), b) : q(d) ? (r.enter("lineEnding"), r.consume(d), r.exit("lineEnding"), b) : (r.enter("mathTextData"), m(d));
3156
3156
  }
3157
- function m(p) {
3158
- return p === null || p === 32 || p === 36 || q(p) ? (r.exit("mathTextData"), b(p)) : (r.consume(p), m);
3157
+ function m(d) {
3158
+ return d === null || d === 32 || d === 36 || q(d) ? (r.exit("mathTextData"), b(d)) : (r.consume(d), m);
3159
3159
  }
3160
- function k(p) {
3161
- return p === 36 ? (r.consume(p), s++, k) : s === c ? (r.exit("mathTextSequence"), r.exit("mathText"), a(p)) : (d.type = "mathTextData", m(p));
3160
+ function k(d) {
3161
+ return d === 36 ? (r.consume(d), s++, k) : s === c ? (r.exit("mathTextSequence"), r.exit("mathText"), a(d)) : (p.type = "mathTextData", m(d));
3162
3162
  }
3163
3163
  }
3164
3164
  }
@@ -3204,7 +3204,7 @@ function br(e = {}) {
3204
3204
  } };
3205
3205
  }
3206
3206
  var st = br();
3207
- const je = de(
3207
+ const He = ue(
3208
3208
  ({ className: e, ...t }) => /* @__PURE__ */ l(
3209
3209
  In,
3210
3210
  {
@@ -3216,7 +3216,7 @@ const je = de(
3216
3216
  ),
3217
3217
  (e, t) => e.children === t.children
3218
3218
  );
3219
- je.displayName = "Response";
3219
+ He.displayName = "Response";
3220
3220
  function kr({
3221
3221
  part: e,
3222
3222
  message: t,
@@ -3227,24 +3227,24 @@ function kr({
3227
3227
  regen: i,
3228
3228
  feedback: c,
3229
3229
  handleFeedback: s,
3230
- copyHost: d,
3230
+ copyHost: p,
3231
3231
  feedbackEnabled: h,
3232
3232
  retryEnabled: f
3233
3233
  }) {
3234
- const { t: b } = M(["chat"]), { textComponents: m, remarkPlugins: k, rehypePlugins: p } = te(), v = ge(e.text), x = !o && r && (n === "streaming" || n === "submitted"), g = i || (() => {
3234
+ const { t: b } = M(["chat"]), { textComponents: m, remarkPlugins: k, rehypePlugins: d } = W(), v = he(e.text), x = !o && r && (n === "streaming" || n === "submitted"), g = i || (() => {
3235
3235
  });
3236
3236
  return /* @__PURE__ */ w("div", { className: "group py-2 first:pt-4 animate-in-bubble", children: [
3237
- /* @__PURE__ */ l(Rt, { from: t.role, children: /* @__PURE__ */ l(Lt, { dir: v, children: /* @__PURE__ */ l(
3238
- je,
3237
+ /* @__PURE__ */ l(Rt, { from: t.role, children: /* @__PURE__ */ l(Ot, { dir: v, children: /* @__PURE__ */ l(
3238
+ He,
3239
3239
  {
3240
3240
  components: m,
3241
3241
  remarkPlugins: k,
3242
- rehypePlugins: p,
3242
+ rehypePlugins: d,
3243
3243
  children: e.text
3244
3244
  }
3245
3245
  ) }) }),
3246
3246
  a && !x && /* @__PURE__ */ w(io, { className: y("mt-1.5 ml-0.5", t.role === "user" && "justify-end"), children: [
3247
- t.role === "assistant" && /* @__PURE__ */ w(Z, { children: [
3247
+ t.role === "assistant" && /* @__PURE__ */ w(J, { children: [
3248
3248
  r && f && /* @__PURE__ */ l(
3249
3249
  ie,
3250
3250
  {
@@ -3254,7 +3254,7 @@ function kr({
3254
3254
  children: /* @__PURE__ */ l(fn, { className: "size-3" })
3255
3255
  }
3256
3256
  ),
3257
- h && /* @__PURE__ */ w(Z, { children: [
3257
+ h && /* @__PURE__ */ w(J, { children: [
3258
3258
  /* @__PURE__ */ l(
3259
3259
  ie,
3260
3260
  {
@@ -3281,7 +3281,7 @@ function kr({
3281
3281
  ie,
3282
3282
  {
3283
3283
  onClick: () => {
3284
- d(e.text);
3284
+ p(e.text);
3285
3285
  },
3286
3286
  label: b("copy"),
3287
3287
  tooltip: b("copy"),
@@ -3291,12 +3291,12 @@ function kr({
3291
3291
  ] })
3292
3292
  ] });
3293
3293
  }
3294
- const Xt = pe(null), yr = () => {
3294
+ const Xt = de(null), yr = () => {
3295
3295
  const e = Oe(Xt);
3296
3296
  if (!e)
3297
3297
  throw new Error("Reasoning components must be used within Reasoning");
3298
3298
  return e;
3299
- }, vr = 1e3, wr = 1e3, Kt = de(
3299
+ }, vr = 1e3, wr = 1e3, Kt = ue(
3300
3300
  ({
3301
3301
  className: e,
3302
3302
  isStreaming: t = !1,
@@ -3308,31 +3308,31 @@ const Xt = pe(null), yr = () => {
3308
3308
  children: i,
3309
3309
  ...c
3310
3310
  }) => {
3311
- const [s, d] = Ge({
3311
+ const [s, p] = Ge({
3312
3312
  prop: n,
3313
3313
  defaultProp: o,
3314
3314
  onChange: r
3315
3315
  }), [h, f] = Ge({
3316
3316
  prop: a,
3317
3317
  defaultProp: 0
3318
- }), [b, m] = $(!1), [k, p] = $(null);
3319
- J(() => {
3320
- t ? k === null && p(Date.now()) : k !== null && (f(Math.ceil((Date.now() - k) / wr)), p(null));
3321
- }, [t, k, f]), J(() => {
3318
+ }), [b, m] = $(!1), [k, d] = $(null);
3319
+ Q(() => {
3320
+ t ? k === null && d(Date.now()) : k !== null && (f(Math.ceil((Date.now() - k) / wr)), d(null));
3321
+ }, [t, k, f]), Q(() => {
3322
3322
  if (o && !t && s && !b) {
3323
3323
  const x = setTimeout(() => {
3324
- d(!1), m(!0);
3324
+ p(!1), m(!0);
3325
3325
  }, vr);
3326
3326
  return () => {
3327
3327
  clearTimeout(x);
3328
3328
  };
3329
3329
  }
3330
- }, [t, s, o, d, b]);
3330
+ }, [t, s, o, p, b]);
3331
3331
  const v = (x) => {
3332
- d(x);
3332
+ p(x);
3333
3333
  };
3334
- return /* @__PURE__ */ l(Xt.Provider, { value: { isStreaming: t, isOpen: s, setIsOpen: d, duration: h }, children: /* @__PURE__ */ l(
3335
- Me,
3334
+ return /* @__PURE__ */ l(Xt.Provider, { value: { isStreaming: t, isOpen: s, setIsOpen: p, duration: h }, children: /* @__PURE__ */ l(
3335
+ Pe,
3336
3336
  {
3337
3337
  className: y("not-prose mb-4", e),
3338
3338
  onOpenChange: v,
@@ -3342,9 +3342,9 @@ const Xt = pe(null), yr = () => {
3342
3342
  }
3343
3343
  ) });
3344
3344
  }
3345
- ), Zt = de(({ className: e, children: t, ...n }) => {
3345
+ ), Zt = ue(({ className: e, children: t, ...n }) => {
3346
3346
  const { isStreaming: o, isOpen: r, duration: a } = yr();
3347
- return /* @__PURE__ */ l(ze, { className: y("flex items-center gap-2 text-muted-foreground text-sm", e), ...n, children: t ?? /* @__PURE__ */ w(Z, { children: [
3347
+ return /* @__PURE__ */ l(Me, { className: y("flex items-center gap-2 text-muted-foreground text-sm", e), ...n, children: t ?? /* @__PURE__ */ w(J, { children: [
3348
3348
  /* @__PURE__ */ l(yn, { className: "size-4" }),
3349
3349
  o || a === 0 ? /* @__PURE__ */ l("p", { children: "Thinking..." }) : /* @__PURE__ */ w("p", { children: [
3350
3350
  "Thought for ",
@@ -3359,8 +3359,8 @@ const Xt = pe(null), yr = () => {
3359
3359
  }
3360
3360
  )
3361
3361
  ] }) });
3362
- }), Jt = de(({ className: e, children: t, ...n }) => /* @__PURE__ */ l(
3363
- $e,
3362
+ }), Jt = ue(({ className: e, children: t, ...n }) => /* @__PURE__ */ l(
3363
+ ze,
3364
3364
  {
3365
3365
  className: y(
3366
3366
  "mt-4 text-base",
@@ -3368,7 +3368,7 @@ const Xt = pe(null), yr = () => {
3368
3368
  e
3369
3369
  ),
3370
3370
  ...n,
3371
- children: /* @__PURE__ */ l(je, { className: "grid gap-2", children: t })
3371
+ children: /* @__PURE__ */ l(He, { className: "grid gap-2", children: t })
3372
3372
  }
3373
3373
  ));
3374
3374
  Kt.displayName = "Reasoning";
@@ -3381,7 +3381,7 @@ function xr({
3381
3381
  partsCount: o,
3382
3382
  lastMessage: r
3383
3383
  }) {
3384
- const a = ge(e.text);
3384
+ const a = he(e.text);
3385
3385
  return /* @__PURE__ */ w(
3386
3386
  Kt,
3387
3387
  {
@@ -3394,7 +3394,7 @@ function xr({
3394
3394
  }
3395
3395
  );
3396
3396
  }
3397
- const _r = De(
3397
+ const _r = Le(
3398
3398
  "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",
3399
3399
  {
3400
3400
  variants: {
@@ -3468,7 +3468,7 @@ function Ar({
3468
3468
  "data-slot": "dialog-close",
3469
3469
  className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rtl:left-4 rtl:right-auto rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
3470
3470
  children: [
3471
- /* @__PURE__ */ l(he, {}),
3471
+ /* @__PURE__ */ l(pe, {}),
3472
3472
  /* @__PURE__ */ l("span", { className: "sr-only", children: "Close" })
3473
3473
  ]
3474
3474
  }
@@ -3518,7 +3518,7 @@ function vl({ className: e, ...t }) {
3518
3518
  }
3519
3519
  );
3520
3520
  }
3521
- const Lr = {
3521
+ const Or = {
3522
3522
  'code[class*="language-"]': {
3523
3523
  background: "hsl(220, 13%, 18%)",
3524
3524
  color: "hsl(220, 14%, 71%)",
@@ -4018,7 +4018,7 @@ const Lr = {
4018
4018
  ".prism-previewer-easing.prism-previewer-easing line": {
4019
4019
  stroke: "hsl(220, 14%, 71%)"
4020
4020
  }
4021
- }, Or = {
4021
+ }, Fr = {
4022
4022
  'code[class*="language-"]': {
4023
4023
  background: "hsl(230, 1%, 98%)",
4024
4024
  color: "hsl(230, 8%, 24%)",
@@ -4510,10 +4510,10 @@ const Lr = {
4510
4510
  function B(e) {
4511
4511
  return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
4512
4512
  }
4513
- var ve, ct;
4514
- function Fr() {
4515
- if (ct) return ve;
4516
- ct = 1, ve = e, e.displayName = "python", e.aliases = ["py"];
4513
+ var ye, ct;
4514
+ function Lr() {
4515
+ if (ct) return ye;
4516
+ ct = 1, ye = e, e.displayName = "python", e.aliases = ["py"];
4517
4517
  function e(t) {
4518
4518
  t.languages.python = {
4519
4519
  comment: {
@@ -4577,14 +4577,14 @@ function Fr() {
4577
4577
  punctuation: /[{}[\];(),.:]/
4578
4578
  }, t.languages.python["string-interpolation"].inside.interpolation.inside.rest = t.languages.python, t.languages.py = t.languages.python;
4579
4579
  }
4580
- return ve;
4580
+ return ye;
4581
4581
  }
4582
- var Dr = Fr();
4582
+ var Dr = Lr();
4583
4583
  const Pr = /* @__PURE__ */ B(Dr);
4584
- var we, ut;
4584
+ var ve, ut;
4585
4585
  function Mr() {
4586
- if (ut) return we;
4587
- ut = 1, we = e, e.displayName = "javascript", e.aliases = ["js"];
4586
+ if (ut) return ve;
4587
+ ut = 1, ve = e, e.displayName = "javascript", e.aliases = ["js"];
4588
4588
  function e(t) {
4589
4589
  t.languages.javascript = t.languages.extend("clike", {
4590
4590
  "class-name": [
@@ -4709,14 +4709,14 @@ function Mr() {
4709
4709
  "javascript"
4710
4710
  )), t.languages.js = t.languages.javascript;
4711
4711
  }
4712
- return we;
4712
+ return ve;
4713
4713
  }
4714
4714
  var zr = Mr();
4715
4715
  const $r = /* @__PURE__ */ B(zr);
4716
- var xe, dt;
4716
+ var we, dt;
4717
4717
  function Ur() {
4718
- if (dt) return xe;
4719
- dt = 1, xe = e, e.displayName = "typescript", e.aliases = ["ts"];
4718
+ if (dt) return we;
4719
+ dt = 1, we = e, e.displayName = "typescript", e.aliases = ["ts"];
4720
4720
  function e(t) {
4721
4721
  (function(n) {
4722
4722
  n.languages.typescript = n.languages.extend("javascript", {
@@ -4764,14 +4764,14 @@ function Ur() {
4764
4764
  }), n.languages.ts = n.languages.typescript;
4765
4765
  })(t);
4766
4766
  }
4767
- return xe;
4767
+ return we;
4768
4768
  }
4769
4769
  var Br = Ur();
4770
4770
  const Hr = /* @__PURE__ */ B(Br);
4771
- var _e, pt;
4771
+ var xe, pt;
4772
4772
  function jr() {
4773
- if (pt) return _e;
4774
- pt = 1, _e = e, e.displayName = "json", e.aliases = ["webmanifest"];
4773
+ if (pt) return xe;
4774
+ pt = 1, xe = e, e.displayName = "json", e.aliases = ["webmanifest"];
4775
4775
  function e(t) {
4776
4776
  t.languages.json = {
4777
4777
  property: {
@@ -4798,14 +4798,14 @@ function jr() {
4798
4798
  }
4799
4799
  }, t.languages.webmanifest = t.languages.json;
4800
4800
  }
4801
- return _e;
4801
+ return xe;
4802
4802
  }
4803
4803
  var qr = jr();
4804
4804
  const Gr = /* @__PURE__ */ B(qr);
4805
- var Se, ht;
4805
+ var _e, ht;
4806
4806
  function Vr() {
4807
- if (ht) return Se;
4808
- ht = 1, Se = e, e.displayName = "bash", e.aliases = ["shell"];
4807
+ if (ht) return _e;
4808
+ ht = 1, _e = e, e.displayName = "bash", e.aliases = ["shell"];
4809
4809
  function e(t) {
4810
4810
  (function(n) {
4811
4811
  var o = "\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b", r = {
@@ -5020,14 +5020,14 @@ function Vr() {
5020
5020
  n.languages.shell = n.languages.bash;
5021
5021
  })(t);
5022
5022
  }
5023
- return Se;
5023
+ return _e;
5024
5024
  }
5025
5025
  var Wr = Vr();
5026
5026
  const Yr = /* @__PURE__ */ B(Wr);
5027
- var Ee, gt;
5027
+ var Se, gt;
5028
5028
  function Xr() {
5029
- if (gt) return Ee;
5030
- gt = 1, Ee = e, e.displayName = "sql", e.aliases = [];
5029
+ if (gt) return Se;
5030
+ gt = 1, Se = e, e.displayName = "sql", e.aliases = [];
5031
5031
  function e(t) {
5032
5032
  t.languages.sql = {
5033
5033
  comment: {
@@ -5063,14 +5063,14 @@ function Xr() {
5063
5063
  punctuation: /[;[\]()`,.]/
5064
5064
  };
5065
5065
  }
5066
- return Ee;
5066
+ return Se;
5067
5067
  }
5068
5068
  var Kr = Xr();
5069
5069
  const Zr = /* @__PURE__ */ B(Kr);
5070
- var Ne, mt;
5070
+ var Ee, mt;
5071
5071
  function Jr() {
5072
- if (mt) return Ne;
5073
- mt = 1, Ne = e, e.displayName = "yaml", e.aliases = ["yml"];
5072
+ if (mt) return Ee;
5073
+ mt = 1, Ee = e, e.displayName = "yaml", e.aliases = ["yml"];
5074
5074
  function e(t) {
5075
5075
  (function(n) {
5076
5076
  var o = /[*&][^\s[\]{},]+/, r = /!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/, a = "(?:" + r.source + "(?:[ ]+" + o.source + ")?|" + o.source + "(?:[ ]+" + r.source + ")?)", i = /(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(
@@ -5079,12 +5079,12 @@ function Jr() {
5079
5079
  return /[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source;
5080
5080
  }
5081
5081
  ), c = /"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;
5082
- function s(d, h) {
5082
+ function s(p, h) {
5083
5083
  h = (h || "").replace(/m/g, "") + "m";
5084
5084
  var f = /([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g, function() {
5085
5085
  return a;
5086
5086
  }).replace(/<<value>>/g, function() {
5087
- return d;
5087
+ return p;
5088
5088
  });
5089
5089
  return RegExp(f, h);
5090
5090
  }
@@ -5154,14 +5154,14 @@ function Jr() {
5154
5154
  }, n.languages.yml = n.languages.yaml;
5155
5155
  })(t);
5156
5156
  }
5157
- return Ne;
5157
+ return Ee;
5158
5158
  }
5159
5159
  var Qr = Jr();
5160
5160
  const ea = /* @__PURE__ */ B(Qr);
5161
- var Te, ft;
5161
+ var Ne, ft;
5162
5162
  function ta() {
5163
- if (ft) return Te;
5164
- ft = 1, Te = e, e.displayName = "markdown", e.aliases = ["md"];
5163
+ if (ft) return Ne;
5164
+ ft = 1, Ne = e, e.displayName = "markdown", e.aliases = ["md"];
5165
5165
  function e(t) {
5166
5166
  (function(n) {
5167
5167
  var o = /(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;
@@ -5420,8 +5420,8 @@ function ta() {
5420
5420
  return;
5421
5421
  function m(k) {
5422
5422
  if (!(!k || typeof k == "string"))
5423
- for (var p = 0, v = k.length; p < v; p++) {
5424
- var x = k[p];
5423
+ for (var d = 0, v = k.length; d < v; d++) {
5424
+ var x = k[d];
5425
5425
  if (x.type !== "code") {
5426
5426
  m(x.content);
5427
5427
  continue;
@@ -5430,15 +5430,15 @@ function ta() {
5430
5430
  if (g && E && g.type === "code-language" && E.type === "code-block" && typeof g.content == "string") {
5431
5431
  var C = g.content.replace(/\b#/g, "sharp").replace(/\b\+\+/g, "pp");
5432
5432
  C = (/[a-z][\w-]*/i.exec(C) || [""])[0].toLowerCase();
5433
- var O = "language-" + C;
5434
- E.alias ? typeof E.alias == "string" ? E.alias = [E.alias, O] : E.alias.push(O) : E.alias = [O];
5433
+ var F = "language-" + C;
5434
+ E.alias ? typeof E.alias == "string" ? E.alias = [E.alias, F] : E.alias.push(F) : E.alias = [F];
5435
5435
  }
5436
5436
  }
5437
5437
  }
5438
5438
  m(b.tokens);
5439
5439
  }), n.hooks.add("wrap", function(b) {
5440
5440
  if (b.type === "code-block") {
5441
- for (var m = "", k = 0, p = b.classes.length; k < p; k++) {
5441
+ for (var m = "", k = 0, d = b.classes.length; k < d; k++) {
5442
5442
  var v = b.classes[k], x = /language-(.+)/.exec(v);
5443
5443
  if (x) {
5444
5444
  m = x[1];
@@ -5465,7 +5465,7 @@ function ta() {
5465
5465
  }
5466
5466
  }
5467
5467
  });
5468
- var s = RegExp(n.languages.markup.tag.pattern.source, "gi"), d = {
5468
+ var s = RegExp(n.languages.markup.tag.pattern.source, "gi"), p = {
5469
5469
  amp: "&",
5470
5470
  lt: "<",
5471
5471
  gt: ">",
@@ -5473,12 +5473,12 @@ function ta() {
5473
5473
  }, h = String.fromCodePoint || String.fromCharCode;
5474
5474
  function f(b) {
5475
5475
  var m = b.replace(s, "");
5476
- return m = m.replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi, function(k, p) {
5477
- if (p = p.toLowerCase(), p[0] === "#") {
5476
+ return m = m.replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi, function(k, d) {
5477
+ if (d = d.toLowerCase(), d[0] === "#") {
5478
5478
  var v;
5479
- return p[1] === "x" ? v = parseInt(p.slice(2), 16) : v = Number(p.slice(1)), h(v);
5479
+ return d[1] === "x" ? v = parseInt(d.slice(2), 16) : v = Number(d.slice(1)), h(v);
5480
5480
  } else {
5481
- var x = d[p];
5481
+ var x = p[d];
5482
5482
  return x || k;
5483
5483
  }
5484
5484
  }), m;
@@ -5486,7 +5486,7 @@ function ta() {
5486
5486
  n.languages.md = n.languages.markdown;
5487
5487
  })(t);
5488
5488
  }
5489
- return Te;
5489
+ return Ne;
5490
5490
  }
5491
5491
  var na = ta();
5492
5492
  const oa = /* @__PURE__ */ B(na);
@@ -5498,9 +5498,9 @@ z.registerLanguage("bash", Yr);
5498
5498
  z.registerLanguage("sql", Zr);
5499
5499
  z.registerLanguage("yaml", ea);
5500
5500
  z.registerLanguage("markdown", oa);
5501
- const ra = pe({
5501
+ const ra = de({
5502
5502
  code: ""
5503
- }), Le = ({
5503
+ }), Re = ({
5504
5504
  code: e,
5505
5505
  language: t,
5506
5506
  showLineNumbers: n = !1,
@@ -5535,7 +5535,7 @@ const ra = pe({
5535
5535
  minWidth: "2.5rem"
5536
5536
  },
5537
5537
  showLineNumbers: n,
5538
- style: Or,
5538
+ style: Fr,
5539
5539
  children: e
5540
5540
  }
5541
5541
  ),
@@ -5560,7 +5560,7 @@ const ra = pe({
5560
5560
  minWidth: "2.5rem"
5561
5561
  },
5562
5562
  showLineNumbers: n,
5563
- style: Lr,
5563
+ style: Or,
5564
5564
  children: e
5565
5565
  }
5566
5566
  ),
@@ -5576,7 +5576,7 @@ function aa(e, t = "size-4") {
5576
5576
  image_generation: /* @__PURE__ */ l(wn, { className: t })
5577
5577
  }[e] ?? /* @__PURE__ */ l(vn, { className: t });
5578
5578
  }
5579
- const la = ({ className: e, ...t }) => /* @__PURE__ */ l(Me, { className: y("not-prose mb-4 w-full rounded-md border", e), ...t }), ia = ({ status: e }) => {
5579
+ const la = ({ className: e, ...t }) => /* @__PURE__ */ l(Pe, { className: y("not-prose mb-4 w-full rounded-md border", e), ...t }), ia = ({ status: e }) => {
5580
5580
  const { t } = M(["tools_ui"]), n = {
5581
5581
  "input-streaming": t("pending"),
5582
5582
  "input-available": t("running"),
@@ -5594,7 +5594,7 @@ const la = ({ className: e, ...t }) => /* @__PURE__ */ l(Me, { className: y("not
5594
5594
  ] });
5595
5595
  }, sa = ({ className: e, type: t, state: n, toolName: o, ...r }) => {
5596
5596
  const a = o || (t.startsWith("tool-") ? t.slice(5) : t), i = aa(a, "size-4 text-muted-foreground");
5597
- return /* @__PURE__ */ w(ze, { className: y("flex w-full items-center justify-between gap-4 p-3", e), ...r, children: [
5597
+ return /* @__PURE__ */ w(Me, { className: y("flex w-full items-center justify-between gap-4 p-3", e), ...r, children: [
5598
5598
  /* @__PURE__ */ w("div", { className: "flex items-center gap-2", children: [
5599
5599
  i,
5600
5600
  /* @__PURE__ */ l("span", { className: "font-medium text-sm", children: a }),
@@ -5603,7 +5603,7 @@ const la = ({ className: e, ...t }) => /* @__PURE__ */ l(Me, { className: y("not
5603
5603
  /* @__PURE__ */ l(ae, { className: "size-4 text-muted-foreground transition-transform group-data-[state=open]:rotate-180" })
5604
5604
  ] });
5605
5605
  }, ca = ({ className: e, ...t }) => /* @__PURE__ */ l(
5606
- $e,
5606
+ ze,
5607
5607
  {
5608
5608
  className: y(
5609
5609
  "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",
@@ -5623,7 +5623,7 @@ const la = ({ className: e, ...t }) => /* @__PURE__ */ l(Me, { className: y("not
5623
5623
  const { t: o } = M(["tools_ui"]);
5624
5624
  return /* @__PURE__ */ w("div", { className: y("space-y-2 overflow-hidden p-4", e), ...n, children: [
5625
5625
  /* @__PURE__ */ l("h4", { className: "font-medium text-muted-foreground text-xs uppercase tracking-wide", children: o("parameters") }),
5626
- /* @__PURE__ */ l("div", { className: "rounded-md bg-muted/50", children: /* @__PURE__ */ l(Le, { code: Qt(t), language: "json" }) })
5626
+ /* @__PURE__ */ l("div", { className: "rounded-md bg-muted/50", children: /* @__PURE__ */ l(Re, { code: Qt(t), language: "json" }) })
5627
5627
  ] });
5628
5628
  }, da = ({ className: e, output: t, errorText: n, ...o }) => {
5629
5629
  const { t: r } = M(["tools_ui"]), [a, i] = $(!1);
@@ -5636,17 +5636,17 @@ const la = ({ className: e, ...t }) => /* @__PURE__ */ l(Me, { className: y("not
5636
5636
  }, s = () => {
5637
5637
  if (typeof t == "string")
5638
5638
  try {
5639
- const d = JSON.parse(t);
5640
- return /* @__PURE__ */ l(Le, { code: JSON.stringify(d, null, 2), language: "json" });
5639
+ const p = JSON.parse(t);
5640
+ return /* @__PURE__ */ l(Re, { code: JSON.stringify(p, null, 2), language: "json" });
5641
5641
  } catch {
5642
5642
  return /* @__PURE__ */ l("div", { className: "p-4 text-sm whitespace-pre-wrap", dir: "ltr", children: t });
5643
5643
  }
5644
- return typeof t == "object" && t !== null && !("$$typeof" in t) ? /* @__PURE__ */ l(Le, { code: JSON.stringify(t, null, 2), language: "json" }) : t;
5644
+ return typeof t == "object" && t !== null && !("$$typeof" in t) ? /* @__PURE__ */ l(Re, { code: JSON.stringify(t, null, 2), language: "json" }) : t;
5645
5645
  };
5646
5646
  return /* @__PURE__ */ w("div", { className: y("space-y-2 p-4", e), ...o, children: [
5647
5647
  /* @__PURE__ */ l("h4", { className: "font-medium text-muted-foreground text-xs uppercase tracking-wide", children: r(n ? "error" : "result") }),
5648
5648
  n && /* @__PURE__ */ w(Er, { children: [
5649
- /* @__PURE__ */ l(Nr, { asChild: !0, children: /* @__PURE__ */ w(Q, { variant: "destructive", size: "sm", children: [
5649
+ /* @__PURE__ */ l(Nr, { asChild: !0, children: /* @__PURE__ */ w(ee, { variant: "destructive", size: "sm", children: [
5650
5650
  /* @__PURE__ */ l(St, { className: "mr-1.5 size-4" }),
5651
5651
  r("view_error")
5652
5652
  ] }) }),
@@ -5654,7 +5654,7 @@ const la = ({ className: e, ...t }) => /* @__PURE__ */ l(Me, { className: y("not
5654
5654
  /* @__PURE__ */ l(Ir, { children: /* @__PURE__ */ l(Rr, { className: "text-destructive", children: r("tool_error") }) }),
5655
5655
  /* @__PURE__ */ w("div", { className: "space-y-4", children: [
5656
5656
  /* @__PURE__ */ l("div", { className: "max-h-96 overflow-auto rounded-md bg-destructive/10 p-4 text-destructive text-sm", children: /* @__PURE__ */ l("pre", { className: "whitespace-pre-wrap break-words", children: Qt(n) }) }),
5657
- /* @__PURE__ */ w(Q, { variant: "outline", size: "sm", onClick: c, children: [
5657
+ /* @__PURE__ */ w(ee, { variant: "outline", size: "sm", onClick: c, children: [
5658
5658
  /* @__PURE__ */ l(_t, { className: "mr-1.5 size-4" }),
5659
5659
  r(a ? "copied" : "copy_error")
5660
5660
  ] })
@@ -5707,7 +5707,7 @@ function ha({
5707
5707
  const s = document.createElement("a");
5708
5708
  s.href = o.url, s.download = a, document.body.appendChild(s), s.click(), document.body.removeChild(s);
5709
5709
  };
5710
- return /* @__PURE__ */ l("div", { className: "py-2 animate-in-bubble", children: /* @__PURE__ */ l(Rt, { from: t.role, children: /* @__PURE__ */ l(Lt, { 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: [
5710
+ return /* @__PURE__ */ l("div", { className: "py-2 animate-in-bubble", children: /* @__PURE__ */ l(Rt, { from: t.role, children: /* @__PURE__ */ l(Ot, { 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: [
5711
5711
  /* @__PURE__ */ l(
5712
5712
  "img",
5713
5713
  {
@@ -5790,7 +5790,10 @@ const A = {
5790
5790
  name: void 0,
5791
5791
  adminTitle: void 0,
5792
5792
  cacheNamespace: "gentiq",
5793
- showSettings: !0
5793
+ showSettings: !0,
5794
+ settingsGeneralMode: "editable",
5795
+ settingsProfileMode: "editable",
5796
+ settingsAccountMode: "editable"
5794
5797
  },
5795
5798
  i18n: void 0,
5796
5799
  settings: {
@@ -5800,8 +5803,8 @@ const A = {
5800
5803
  account: { enabled: !0, fields: {} }
5801
5804
  }
5802
5805
  }
5803
- }, en = pe(A);
5804
- function te() {
5806
+ }, en = de(A);
5807
+ function W() {
5805
5808
  return Oe(en);
5806
5809
  }
5807
5810
  function wl({
@@ -5814,7 +5817,7 @@ function wl({
5814
5817
  disclaimer: i,
5815
5818
  app: c,
5816
5819
  i18n: s,
5817
- settings: d,
5820
+ settings: p,
5818
5821
  children: h
5819
5822
  }) {
5820
5823
  const f = wt(
@@ -5836,11 +5839,11 @@ function wl({
5836
5839
  disclaimer: i ?? A.disclaimer,
5837
5840
  app: c ? { ...A.app, ...c } : A.app,
5838
5841
  i18n: s ?? A.i18n,
5839
- settings: d ? {
5842
+ settings: p ? {
5840
5843
  ...A.settings,
5841
5844
  sections: {
5842
5845
  ...A.settings?.sections,
5843
- ...d.sections
5846
+ ...p.sections
5844
5847
  }
5845
5848
  } : A.settings
5846
5849
  }),
@@ -5856,7 +5859,7 @@ const ga = {
5856
5859
  setAccent: () => null,
5857
5860
  radius: void 0,
5858
5861
  setRadius: () => null
5859
- }, tn = pe(ga);
5862
+ }, tn = de(ga);
5860
5863
  function xl({
5861
5864
  children: e,
5862
5865
  defaultTheme: t = "system",
@@ -5867,10 +5870,10 @@ function xl({
5867
5870
  () => window.localStorage.getItem(n) ?? t
5868
5871
  ), [i, c] = $(
5869
5872
  () => window.localStorage.getItem(n + "-accent") || void 0
5870
- ), [s, d] = $(
5873
+ ), [s, p] = $(
5871
5874
  () => window.localStorage.getItem(n + "-radius") || "1.25rem"
5872
- ), { theme: h } = te(), { i18n: f } = M(["theme"]);
5873
- J(() => {
5875
+ ), { theme: h } = W(), { i18n: f } = M(["theme"]);
5876
+ Q(() => {
5874
5877
  const m = window.document.documentElement;
5875
5878
  if (m.classList.remove("light", "dark"), r === "system") {
5876
5879
  const k = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
@@ -5878,11 +5881,11 @@ function xl({
5878
5881
  return;
5879
5882
  }
5880
5883
  m.classList.add(r);
5881
- }, [r]), J(() => {
5884
+ }, [r]), Q(() => {
5882
5885
  const m = window.document.documentElement, k = f.language?.split("-")[0] || f.language;
5883
- let p = h?.typography?.fontFamily;
5884
- if (typeof p == "object" && p !== null && (p = p[f.language] || p[k] || p.en || Object.values(p)[0]), p) {
5885
- const g = p.includes(" ") && !p.startsWith("'") && !p.startsWith('"') ? `"${p}"` : p;
5886
+ let d = h?.typography?.fontFamily;
5887
+ if (typeof d == "object" && d !== null && (d = d[f.language] || d[k] || d.en || Object.values(d)[0]), d) {
5888
+ const g = d.includes(" ") && !d.startsWith("'") && !d.startsWith('"') ? `"${d}"` : d;
5886
5889
  m.style.setProperty("--gentiq-font-family", g), m.style.fontFamily = g, window.document.body && (window.document.body.style.fontFamily = g);
5887
5890
  }
5888
5891
  const v = s || (typeof h?.radius == "number" ? `${h.radius}px` : h?.radius);
@@ -5901,7 +5904,7 @@ function xl({
5901
5904
  },
5902
5905
  radius: s,
5903
5906
  setRadius: (m) => {
5904
- m ? window.localStorage.setItem(n + "-radius", m) : window.localStorage.removeItem(n + "-radius"), d(m);
5907
+ m ? window.localStorage.setItem(n + "-radius", m) : window.localStorage.removeItem(n + "-radius"), p(m);
5905
5908
  }
5906
5909
  };
5907
5910
  return /* @__PURE__ */ l(tn.Provider, { ...o, value: b, children: e });
@@ -6055,18 +6058,18 @@ var va = {
6055
6058
  return o;
6056
6059
  }
6057
6060
  };
6058
- let W = null;
6061
+ let Y = null;
6059
6062
  const yt = () => {
6060
- if (W !== null) return W;
6063
+ if (Y !== null) return Y;
6061
6064
  try {
6062
- if (W = typeof window < "u" && window.localStorage !== null, !W)
6065
+ if (Y = typeof window < "u" && window.localStorage !== null, !Y)
6063
6066
  return !1;
6064
6067
  const e = "i18next.translate.boo";
6065
6068
  window.localStorage.setItem(e, "foo"), window.localStorage.removeItem(e);
6066
6069
  } catch {
6067
- W = !1;
6070
+ Y = !1;
6068
6071
  }
6069
- return W;
6072
+ return Y;
6070
6073
  };
6071
6074
  var _a = {
6072
6075
  name: "localStorage",
@@ -6086,18 +6089,18 @@ var _a = {
6086
6089
  n && yt() && window.localStorage.setItem(n, e);
6087
6090
  }
6088
6091
  };
6089
- let Y = null;
6092
+ let X = null;
6090
6093
  const vt = () => {
6091
- if (Y !== null) return Y;
6094
+ if (X !== null) return X;
6092
6095
  try {
6093
- if (Y = typeof window < "u" && window.sessionStorage !== null, !Y)
6096
+ if (X = typeof window < "u" && window.sessionStorage !== null, !X)
6094
6097
  return !1;
6095
6098
  const e = "i18next.translate.boo";
6096
6099
  window.sessionStorage.setItem(e, "foo"), window.sessionStorage.removeItem(e);
6097
6100
  } catch {
6098
- Y = !1;
6101
+ X = !1;
6099
6102
  }
6100
- return Y;
6103
+ return X;
6101
6104
  };
6102
6105
  var Sa = {
6103
6106
  name: "sessionStorage",
@@ -6214,16 +6217,16 @@ class rn {
6214
6217
  }
6215
6218
  }
6216
6219
  rn.type = "languageDetector";
6217
- const Ia = { 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" }, Ra = { 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" }, Oa = { 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" }, Fa = { toggle: "Change theme", light: "Switch to light theme", dark: "Switch to dark theme", system: "Switch to system theme" }, Da = { 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" }, 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" }, 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", 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)", 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" } }, Pa = { 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" } }, Ma = { 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." }, za = {
6220
+ const Ia = { 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" }, Ra = { 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." }, Oa = { 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" }, Fa = { 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" }, La = { toggle: "Change theme", light: "Switch to light theme", dark: "Switch to dark theme", system: "Switch to system theme" }, Da = { 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" }, 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." }, 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", 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)", 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" } }, Pa = { 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" } }, Ma = { 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." }, za = {
6218
6221
  sidebar: Ia,
6219
6222
  chat: Ra,
6220
- tools_ui: La,
6221
- login: Oa,
6222
- theme: Fa,
6223
+ tools_ui: Oa,
6224
+ login: Fa,
6225
+ theme: La,
6223
6226
  admin: Da,
6224
6227
  settings: Pa,
6225
6228
  errors: Ma
6226
- }, $a = { 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: "اشتراک‌گذاری" }, Ua = { tools: "ابزارها", error: "خطا:", input_placeholder: "سوالتو اینجا بپرس...", insufficient_balance: "موجودی حساب شما کافی نیست. لطفا برای ادامه، حساب خود را شارژ کنید.", regenerate: "تولید مجدد", retry: "تلاش مجدد", copy: "کپی", like: "پسندیدم", dislike: "نپسندیدم", attach_file: "پیوست فایل", remove_file: "حذف فایل", used_sources: "از {{count}} منبع استفاده شد", welcome: { title: "سلام! چطور می‌تونم کمکت کنم؟", subtitle: "هر سوالی داری بپرس، تمام تلاشمو می‌کنم کمکت کنم.", suggestions: ["چه کارهایی می‌تونی انجام بدی؟", "یه چیز جالب بهم بگو", "کمکم کن یه ایمیل بنویسم", "یه مفهوم رو برام توضیح بده"] }, disclaimer: "هوش مصنوعی ممکن است اشتباه کند. اطلاعات مهم را بررسی کنید." }, Ba = { pending: "در انتظار", running: "در حال اجرا", completed: "تکمیل شده", error: "خطا", parameters: "پارامترها", result: "نتیجه", view_error: "نمایش خطا", tool_error: "خطای ابزار", copied: "کپی شد!", copy_error: "کپی خطا" }, Ha = { login_tab: "ورود", signup_tab: "ثبت نام", phone: "شماره تلفن", phone_placeholder: "شماره تلفن", password: "رمز عبور", name: "نام", name_placeholder: "نام", surname: "نام خانوادگی", surname_placeholder: "نام خانوادگی", logging_in: "در حال ورود...", signing_up: "در حال ثبت نام...", select_placeholder: "انتخاب کنید", login_button: "ورود", signup_button: "ثبت نام" }, ja = { toggle: "تغییر تم", light: "تغییر به تم روشن", dark: "تغییر به تم تاریک", system: "تغییر به تم سیستم" }, qa = { 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: "تنظیمات گفتگو" }, 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: "اجازه پین کردن گفتگوها" }, 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: "شارژ موجودی", update_balance: "بروزرسانی موجودی", update_balance_for: "بروزرسانی موجودی", token_count: "تعداد توکن", request_count: "تعداد درخواست", updating: "در حال بروزرسانی...", no_users: "هیچ کاربری یافت نشد.", confirm_delete_user: "آیا از حذف این کاربر اطمینان دارید؟", tokens_exceed_limit: "تعداد توکن نمی‌تواند بیشتر از سقف مجاز باشد", requests_exceed_limit: "تعداد درخواست نمی‌تواند بیشتر از سقف مجاز باشد", metadata: "متادیتا (JSON)", 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: "© ۲۰۲۶ پلتفرم چت‌بات هوشمند" } }, Ga = { 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: "آخرین بروزرسانی اعتبار در تاریخ" } }, Va = { 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: "منبع مورد نظر یافت نشد." }, Wa = {
6229
+ }, $a = { 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: "اشتراک‌گذاری" }, Ua = { tools: "ابزارها", error: "خطا:", input_placeholder: "سوالتو اینجا بپرس...", insufficient_balance: "موجودی حساب شما کافی نیست. لطفا برای ادامه، حساب خود را شارژ کنید.", regenerate: "تولید مجدد", retry: "تلاش مجدد", copy: "کپی", like: "پسندیدم", dislike: "نپسندیدم", attach_file: "پیوست فایل", remove_file: "حذف فایل", used_sources: "از {{count}} منبع استفاده شد", welcome: { title: "سلام! چطور می‌تونم کمکت کنم؟", subtitle: "هر سوالی داری بپرس، تمام تلاشمو می‌کنم کمکت کنم.", suggestions: ["چه کارهایی می‌تونی انجام بدی؟", "یه چیز جالب بهم بگو", "کمکم کن یه ایمیل بنویسم", "یه مفهوم رو برام توضیح بده"] }, disclaimer: "هوش مصنوعی ممکن است اشتباه کند. اطلاعات مهم را بررسی کنید." }, Ba = { pending: "در انتظار", running: "در حال اجرا", completed: "تکمیل شده", error: "خطا", parameters: "پارامترها", result: "نتیجه", view_error: "نمایش خطا", tool_error: "خطای ابزار", copied: "کپی شد!", copy_error: "کپی خطا" }, Ha = { login_tab: "ورود", signup_tab: "ثبت نام", phone: "شماره تلفن", phone_placeholder: "شماره تلفن", password: "رمز عبور", name: "نام", name_placeholder: "نام", surname: "نام خانوادگی", surname_placeholder: "نام خانوادگی", logging_in: "در حال ورود...", signing_up: "در حال ثبت نام...", select_placeholder: "انتخاب کنید", login_button: "ورود", signup_button: "ثبت نام" }, ja = { toggle: "تغییر تم", light: "تغییر به تم روشن", dark: "تغییر به تم تاریک", system: "تغییر به تم سیستم" }, qa = { 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: "تنظیمات گفتگو" }, 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: "وضعیت نمایش فیلدهای هر تب را به‌صورت مجزا پیکربندی کنید." }, 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: "شارژ موجودی", update_balance: "بروزرسانی موجودی", update_balance_for: "بروزرسانی موجودی", token_count: "تعداد توکن", request_count: "تعداد درخواست", updating: "در حال بروزرسانی...", no_users: "هیچ کاربری یافت نشد.", confirm_delete_user: "آیا از حذف این کاربر اطمینان دارید؟", tokens_exceed_limit: "تعداد توکن نمی‌تواند بیشتر از سقف مجاز باشد", requests_exceed_limit: "تعداد درخواست نمی‌تواند بیشتر از سقف مجاز باشد", metadata: "متادیتا (JSON)", 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: "© ۲۰۲۶ پلتفرم چت‌بات هوشمند" } }, Ga = { 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: "آخرین بروزرسانی اعتبار در تاریخ" } }, Va = { 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: "منبع مورد نظر یافت نشد." }, Wa = {
6227
6230
  sidebar: $a,
6228
6231
  chat: Ua,
6229
6232
  tools_ui: Ba,
@@ -6267,7 +6270,7 @@ function Sl({ className: e, type: t, ...n }) {
6267
6270
  }
6268
6271
  );
6269
6272
  }
6270
- const El = "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", Ka = De(
6273
+ const El = "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", Ka = Le(
6271
6274
  "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
6272
6275
  ), Za = an.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ l(
6273
6276
  "label",
@@ -6279,13 +6282,13 @@ const El = "data:image/svg+xml,%3csvg%20version='1.2'%20xmlns='http://www.w3.org
6279
6282
  ));
6280
6283
  Za.displayName = "Label";
6281
6284
  function Nl({ ...e }) {
6282
- return /* @__PURE__ */ l(F.Root, { "data-slot": "select", ...e });
6285
+ return /* @__PURE__ */ l(L.Root, { "data-slot": "select", ...e });
6283
6286
  }
6284
6287
  function Tl({ ...e }) {
6285
- return /* @__PURE__ */ l(F.Group, { "data-slot": "select-group", ...e });
6288
+ return /* @__PURE__ */ l(L.Group, { "data-slot": "select-group", ...e });
6286
6289
  }
6287
6290
  function Cl({ ...e }) {
6288
- return /* @__PURE__ */ l(F.Value, { "data-slot": "select-value", ...e });
6291
+ return /* @__PURE__ */ l(L.Value, { "data-slot": "select-value", ...e });
6289
6292
  }
6290
6293
  function Al({
6291
6294
  className: e,
@@ -6294,7 +6297,7 @@ function Al({
6294
6297
  ...o
6295
6298
  }) {
6296
6299
  return /* @__PURE__ */ w(
6297
- F.Trigger,
6300
+ L.Trigger,
6298
6301
  {
6299
6302
  "data-slot": "select-trigger",
6300
6303
  "data-size": t,
@@ -6305,7 +6308,7 @@ function Al({
6305
6308
  ...o,
6306
6309
  children: [
6307
6310
  n,
6308
- /* @__PURE__ */ l(F.Icon, { asChild: !0, children: /* @__PURE__ */ l(ae, { className: "size-4 opacity-50" }) })
6311
+ /* @__PURE__ */ l(L.Icon, { asChild: !0, children: /* @__PURE__ */ l(ae, { className: "size-4 opacity-50" }) })
6309
6312
  ]
6310
6313
  }
6311
6314
  );
@@ -6316,8 +6319,8 @@ function Il({
6316
6319
  position: n = "popper",
6317
6320
  ...o
6318
6321
  }) {
6319
- return /* @__PURE__ */ l(F.Portal, { children: /* @__PURE__ */ w(
6320
- F.Content,
6322
+ return /* @__PURE__ */ l(L.Portal, { children: /* @__PURE__ */ w(
6323
+ L.Content,
6321
6324
  {
6322
6325
  "data-slot": "select-content",
6323
6326
  className: y(
@@ -6330,7 +6333,7 @@ function Il({
6330
6333
  children: [
6331
6334
  /* @__PURE__ */ l(Ja, {}),
6332
6335
  /* @__PURE__ */ l(
6333
- F.Viewport,
6336
+ L.Viewport,
6334
6337
  {
6335
6338
  className: y(
6336
6339
  "p-1",
@@ -6346,7 +6349,7 @@ function Il({
6346
6349
  }
6347
6350
  function Rl({ className: e, ...t }) {
6348
6351
  return /* @__PURE__ */ l(
6349
- F.Label,
6352
+ L.Label,
6350
6353
  {
6351
6354
  "data-slot": "select-label",
6352
6355
  className: y("text-muted-foreground px-2 py-1.5 text-xs", e),
@@ -6354,9 +6357,9 @@ function Rl({ className: e, ...t }) {
6354
6357
  }
6355
6358
  );
6356
6359
  }
6357
- function Ll({ className: e, children: t, ...n }) {
6360
+ function Ol({ className: e, children: t, ...n }) {
6358
6361
  return /* @__PURE__ */ w(
6359
- F.Item,
6362
+ L.Item,
6360
6363
  {
6361
6364
  "data-slot": "select-item",
6362
6365
  className: y(
@@ -6365,15 +6368,15 @@ function Ll({ className: e, children: t, ...n }) {
6365
6368
  ),
6366
6369
  ...n,
6367
6370
  children: [
6368
- /* @__PURE__ */ l("span", { className: "absolute inset-inline-end-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ l(F.ItemIndicator, { children: /* @__PURE__ */ l(Fe, { className: "size-4" }) }) }),
6369
- /* @__PURE__ */ l(F.ItemText, { children: t })
6371
+ /* @__PURE__ */ l("span", { className: "absolute inset-inline-end-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ l(L.ItemIndicator, { children: /* @__PURE__ */ l(Fe, { className: "size-4" }) }) }),
6372
+ /* @__PURE__ */ l(L.ItemText, { children: t })
6370
6373
  ]
6371
6374
  }
6372
6375
  );
6373
6376
  }
6374
- function Ol({ className: e, ...t }) {
6377
+ function Fl({ className: e, ...t }) {
6375
6378
  return /* @__PURE__ */ l(
6376
- F.Separator,
6379
+ L.Separator,
6377
6380
  {
6378
6381
  "data-slot": "select-separator",
6379
6382
  className: y("bg-border pointer-events-none -mx-1 my-1 h-px", e),
@@ -6383,7 +6386,7 @@ function Ol({ className: e, ...t }) {
6383
6386
  }
6384
6387
  function Ja({ className: e, ...t }) {
6385
6388
  return /* @__PURE__ */ l(
6386
- F.ScrollUpButton,
6389
+ L.ScrollUpButton,
6387
6390
  {
6388
6391
  "data-slot": "select-scroll-up-button",
6389
6392
  className: y("flex cursor-default items-center justify-center py-1", e),
@@ -6397,7 +6400,7 @@ function Qa({
6397
6400
  ...t
6398
6401
  }) {
6399
6402
  return /* @__PURE__ */ l(
6400
- F.ScrollDownButton,
6403
+ L.ScrollDownButton,
6401
6404
  {
6402
6405
  "data-slot": "select-scroll-down-button",
6403
6406
  className: y("flex cursor-default items-center justify-center py-1", e),
@@ -6406,7 +6409,7 @@ function Qa({
6406
6409
  }
6407
6410
  );
6408
6411
  }
6409
- function Fl(e, t) {
6412
+ function Ll(e, t) {
6410
6413
  if (!e) return !0;
6411
6414
  const { field: n, operator: o = "equals", value: r } = e, a = t[n];
6412
6415
  switch (o) {
@@ -6490,16 +6493,16 @@ function $l({ className: e, ...t }) {
6490
6493
  export {
6491
6494
  kl as $,
6492
6495
  Ir as A,
6493
- Q as B,
6496
+ ee as B,
6494
6497
  wl as C,
6495
6498
  Er as D,
6496
6499
  Rr as E,
6497
6500
  vl as F,
6498
- Fn as G,
6501
+ Ln as G,
6499
6502
  yl as H,
6500
6503
  Sl as I,
6501
6504
  $l as J,
6502
- be as K,
6505
+ fe as K,
6503
6506
  Za as L,
6504
6507
  ha as M,
6505
6508
  Kn as N,
@@ -6512,11 +6515,11 @@ export {
6512
6515
  Rl as U,
6513
6516
  Qa as V,
6514
6517
  Ja as W,
6515
- Ol as X,
6518
+ Fl as X,
6516
6519
  kr as Y,
6517
6520
  pa as Z,
6518
6521
  lo as _,
6519
- te as a,
6522
+ W as a,
6520
6523
  Zn as a0,
6521
6524
  rn as a1,
6522
6525
  zn as b,
@@ -6530,16 +6533,16 @@ export {
6530
6533
  bl as j,
6531
6534
  It as k,
6532
6535
  _l as l,
6533
- Fl as m,
6536
+ Ll as m,
6534
6537
  Nr as n,
6535
6538
  Ar as o,
6536
6539
  Al as p,
6537
6540
  Cl as q,
6538
6541
  Il as r,
6539
- Ll as s,
6542
+ Ol as s,
6540
6543
  El as t,
6541
6544
  S as u,
6542
- ge as v,
6545
+ he as v,
6543
6546
  Dl as w,
6544
6547
  Pl as x,
6545
6548
  Ml as y,