gentiq 0.8.2 → 0.8.3

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,21 +1,21 @@
1
- import { jsx as i, jsxs as x, Fragment as ce } from "react/jsx-runtime";
1
+ import { jsx as i, jsxs as w, Fragment as ce } from "react/jsx-runtime";
2
2
  import * as Ke from "react";
3
- import { createContext as ke, useContext as Ae, useState as z, useEffect as Z, useCallback as Y, useMemo as ue, useRef as de, Children as Pn, memo as Ie } from "react";
3
+ import { createContext as ke, useContext as Ae, useState as z, useEffect as J, useCallback as Y, useMemo as ue, useRef as de, Children as Pn, memo as Ie } from "react";
4
4
  import { useTranslation as $, initReactI18next as Mn } from "react-i18next";
5
5
  import { Slot as Yt } from "@radix-ui/react-slot";
6
6
  import { cva as ot } from "class-variance-authority";
7
- import { QuoteIcon as Re, CheckIcon as Oe, SendIcon as zn, ArrowDownIcon as Un, ChevronDownIcon as ve, BookIcon as $n, XIcon as fe, ArrowUpIcon as qn, Loader2Icon as Bn, SquareIcon as Hn, FileIcon as Xt, PaperclipIcon as jn, MessageCircle as Gn, RefreshCcwIcon as Wn, ThumbsUpIcon as Vn, ThumbsDownIcon as Yn, CopyIcon as Kt, BrainIcon as Xn, WrenchIcon as Kn, ImagePlusIcon as Zn, CodeIcon as Jn, DownloadIcon as Ne, GlobeIcon as Qn, XCircleIcon as Zt, CheckCircleIcon as eo, ClockIcon as to, CircleIcon as no, ChevronUpIcon as oo } from "lucide-react";
7
+ import { QuoteIcon as Re, CheckIcon as Oe, SendIcon as zn, ArrowDownIcon as Un, ChevronDownIcon as ve, BookIcon as $n, XIcon as fe, ArrowUpIcon as qn, Loader2Icon as Bn, SquareIcon as Hn, FileIcon as Xt, PaperclipIcon as jn, MessageCircle as Gn, RefreshCcwIcon as Wn, ThumbsUpIcon as Vn, ThumbsDownIcon as Yn, CopyIcon as Kt, BrainIcon as Xn, WrenchIcon as Kn, ImagePlusIcon as Jn, CodeIcon as Zn, DownloadIcon as Ne, GlobeIcon as Qn, XCircleIcon as Jt, CheckCircleIcon as eo, ClockIcon as to, CircleIcon as no, ChevronUpIcon as oo } from "lucide-react";
8
8
  import * as le from "@radix-ui/react-tooltip";
9
9
  import { toast as ro } from "sonner";
10
10
  import { createPortal as ao } from "react-dom";
11
- import { nanoid as Jt } from "nanoid";
11
+ import { nanoid as Zt } from "nanoid";
12
12
  import "@radix-ui/react-scroll-area";
13
13
  import { useQuery as io } from "@tanstack/react-query";
14
14
  import { Streamdown as lo } from "streamdown";
15
15
  import pt from "katex";
16
16
  import { useControllableState as ht } from "@radix-ui/react-use-controllable-state";
17
17
  import * as rt from "@radix-ui/react-collapsible";
18
- import * as J from "@radix-ui/react-dialog";
18
+ import * as Z from "@radix-ui/react-dialog";
19
19
  import { PrismLight as K } from "react-syntax-highlighter";
20
20
  import { StickToBottom as Qt, useStickToBottomContext as so } from "use-stick-to-bottom";
21
21
  import co from "i18next";
@@ -47,7 +47,7 @@ function dl({
47
47
  ), [u, f] = z(
48
48
  () => window.localStorage.getItem(n + "-radius") || "1.25rem"
49
49
  ), { i18n: m } = $(["theme"]), b = a ?? o?.defaultTheme ?? t, p = c ?? o?.accent;
50
- Z(() => {
50
+ J(() => {
51
51
  const d = window.document.documentElement;
52
52
  if (d.classList.remove("light", "dark"), b === "system") {
53
53
  const v = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
@@ -55,11 +55,11 @@ function dl({
55
55
  return;
56
56
  }
57
57
  d.classList.add(b);
58
- }, [b]), Z(() => {
58
+ }, [b]), J(() => {
59
59
  const d = window.document.documentElement, v = m.language?.split("-")[0] || m.language;
60
- let w = o?.typography?.fontFamily;
61
- if (typeof w == "object" && w !== null && (w = w[m.language] || w[v] || w.en || Object.values(w)[0]), w) {
62
- const T = w.includes(" ") && !w.startsWith("'") && !w.startsWith('"') ? `"${w}"` : w;
60
+ let _ = o?.typography?.fontFamily;
61
+ if (typeof _ == "object" && _ !== null && (_ = _[m.language] || _[v] || _.en || Object.values(_)[0]), _) {
62
+ const T = _.includes(" ") && !_.startsWith("'") && !_.startsWith('"') ? `"${_}"` : _;
63
63
  d.style.setProperty("--gentiq-font-family", T), d.style.fontFamily = T, window.document.body && (window.document.body.style.fontFamily = T);
64
64
  }
65
65
  const g = u || (typeof o?.radius == "number" ? `${o.radius}px` : o?.radius);
@@ -392,7 +392,7 @@ function yo() {
392
392
  showToolDetails: c?.showToolDetails ?? !0
393
393
  };
394
394
  }, [e.language, t]), o = (n.language ?? "").split("-")[0].toLowerCase(), r = bo.has(o), a = t?.language;
395
- return Z(() => {
395
+ return J(() => {
396
396
  if (typeof window > "u") return;
397
397
  const l = localStorage.getItem("gentiq-last-default-lang");
398
398
  a && a !== l && (e.changeLanguage(a), localStorage.setItem("gentiq-last-default-lang", a)), document.documentElement.dir = r ? "rtl" : "ltr", document.documentElement.lang = e.language;
@@ -459,7 +459,7 @@ const tn = ke(null), H = (e) => e.replace(/\s+/g, " ").trim(), Me = (e, t) => {
459
459
  }, vo = (e, t) => {
460
460
  const n = yt(e, t.startContainer, t.startOffset), o = yt(e, t.endContainer, t.endOffset);
461
461
  return n === null || o === null || o <= n ? null : { textStart: n, textEnd: o };
462
- }, wo = (e) => {
462
+ }, _o = (e) => {
463
463
  let t = "";
464
464
  const n = [];
465
465
  let o = !0;
@@ -470,7 +470,7 @@ const tn = ke(null), H = (e) => e.replace(/\s+/g, " ").trim(), Me = (e, t) => {
470
470
  }
471
471
  t += r, n.push(a), o = !1;
472
472
  }), t.endsWith(" ") && (t = t.slice(0, -1), n.pop()), { normalized: t, map: n };
473
- }, xo = (e) => {
473
+ }, wo = (e) => {
474
474
  let t = e.parentElement;
475
475
  for (; t; ) {
476
476
  const n = window.getComputedStyle(t);
@@ -478,8 +478,8 @@ const tn = ke(null), H = (e) => e.replace(/\s+/g, " ").trim(), Me = (e, t) => {
478
478
  t = t.parentElement;
479
479
  }
480
480
  return null;
481
- }, _o = (e) => {
482
- const t = xo(e);
481
+ }, xo = (e) => {
482
+ const t = wo(e);
483
483
  if (!t) {
484
484
  e.scrollIntoView({ behavior: "smooth", block: "center" });
485
485
  return;
@@ -489,10 +489,10 @@ const tn = ke(null), H = (e) => e.replace(/\s+/g, " ").trim(), Me = (e, t) => {
489
489
  top: Math.max(0, r),
490
490
  behavior: "smooth"
491
491
  });
492
- }, _e = (e) => typeof CSS < "u" && CSS.escape ? CSS.escape(e) : e.replace(/"/g, '\\"'), So = (e) => {
492
+ }, xe = (e) => typeof CSS < "u" && CSS.escape ? CSS.escape(e) : e.replace(/"/g, '\\"'), So = (e) => {
493
493
  if (e.sourceId) {
494
494
  const r = document.querySelector(
495
- `[data-gentiq-reference-source-id="${_e(e.sourceId)}"]`
495
+ `[data-gentiq-reference-source-id="${xe(e.sourceId)}"]`
496
496
  );
497
497
  if (r) return r;
498
498
  }
@@ -500,7 +500,7 @@ const tn = ke(null), H = (e) => e.replace(/\s+/g, " ").trim(), Me = (e, t) => {
500
500
  if (t) {
501
501
  const r = Array.from(
502
502
  document.querySelectorAll("[data-gentiq-reference-source-id]")
503
- ), a = e.messageId, c = (a ? r.filter((u) => u.closest(`[data-gentiq-message-id="${_e(a)}"]`)) : r).find(
503
+ ), a = e.messageId, c = (a ? r.filter((u) => u.closest(`[data-gentiq-message-id="${xe(a)}"]`)) : r).find(
504
504
  (u) => Te(u.textContent || "") === t
505
505
  );
506
506
  if (c) return c;
@@ -521,7 +521,7 @@ const tn = ke(null), H = (e) => e.replace(/\s+/g, " ").trim(), Me = (e, t) => {
521
521
  }
522
522
  if (e.messageId) {
523
523
  const a = document.querySelector(
524
- `[data-gentiq-message-id="${_e(e.messageId)}"]`
524
+ `[data-gentiq-message-id="${xe(e.messageId)}"]`
525
525
  )?.querySelector('[data-gentiq-reference-kind="text"]');
526
526
  if (a) return a;
527
527
  }
@@ -535,7 +535,7 @@ const tn = ke(null), H = (e) => e.replace(/\s+/g, " ").trim(), Me = (e, t) => {
535
535
  }
536
536
  if (e.kind !== "text") {
537
537
  const r = H(e.excerpt || ""), a = H(e.label || ""), c = Array.from(
538
- document.querySelectorAll(`[data-gentiq-reference-kind="${_e(e.kind)}"]`)
538
+ document.querySelectorAll(`[data-gentiq-reference-kind="${xe(e.kind)}"]`)
539
539
  ).find((s) => {
540
540
  const u = H(s.textContent || ""), f = H(s.dataset.gentiqReferenceLabel || ""), m = H(s.dataset.gentiqReferenceExcerpt || "");
541
541
  return !!r && (u.includes(r) || m === r) || !!a && f === a && !!r && u.includes(r);
@@ -572,7 +572,7 @@ const tn = ke(null), H = (e) => e.replace(/\s+/g, " ").trim(), Me = (e, t) => {
572
572
  if (!o) return !1;
573
573
  let r = n.indexOf(o), a = r + o.length;
574
574
  if (r === -1) {
575
- const l = wo(n), c = H(o), s = l.normalized.indexOf(c);
575
+ const l = _o(n), c = H(o), s = l.normalized.indexOf(c);
576
576
  if (s !== -1) {
577
577
  r = l.map[s];
578
578
  const u = s + c.length - 1;
@@ -588,41 +588,41 @@ function ml({
588
588
  maxExcerptLength: o = 500,
589
589
  children: r
590
590
  }) {
591
- const { t: a } = $(["chat"]), [l, c] = z([]), [s, u] = z(null), f = de(/* @__PURE__ */ new Map()), m = de(null), b = e && !t, p = Y((_) => {
592
- _.sourceId && f.current.set(_.sourceId, _);
593
- }, []), y = Y((_) => {
594
- _ && f.current.delete(_);
595
- }, []), d = Y((_) => {
591
+ const { t: a } = $(["chat"]), [l, c] = z([]), [s, u] = z(null), f = de(/* @__PURE__ */ new Map()), m = de(null), b = e && !t, p = Y((x) => {
592
+ x.sourceId && f.current.set(x.sourceId, x);
593
+ }, []), y = Y((x) => {
594
+ x && f.current.delete(x);
595
+ }, []), d = Y((x) => {
596
596
  if (!b) return null;
597
597
  const C = {
598
- ..._,
599
- id: _.id || `ref_${Jt(10)}`,
600
- label: Me(_.label || a("reference"), 90),
601
- excerpt: Me(_.excerpt, o)
598
+ ...x,
599
+ id: x.id || `ref_${Zt(10)}`,
600
+ label: Me(x.label || a("reference"), 90),
601
+ excerpt: Me(x.excerpt, o)
602
602
  };
603
603
  return C.excerpt ? (c((L) => {
604
604
  const P = ft(C), q = L.filter((S) => ft(S) !== P);
605
605
  return [C, ...q].slice(0, n);
606
606
  }), C) : null;
607
- }, [b, o, n, a]), v = Y((_) => {
608
- c((C) => C.filter((L) => L.id !== _));
609
- }, []), w = Y(() => {
607
+ }, [b, o, n, a]), v = Y((x) => {
608
+ c((C) => C.filter((L) => L.id !== x));
609
+ }, []), _ = Y(() => {
610
610
  c([]);
611
- }, []), g = Y((_) => {
611
+ }, []), g = Y((x) => {
612
612
  if (typeof document > "u") return !1;
613
- const C = So(_);
613
+ const C = So(x);
614
614
  if (!C) return !1;
615
- const L = typeof _.metadata?.textStart == "number" ? _.metadata.textStart : void 0, P = typeof _.metadata?.textEnd == "number" ? _.metadata.textEnd : void 0, q = _.kind === "text" ? L !== void 0 && P !== void 0 ? on(C, L, P) : Eo(C, _.excerpt) : !1;
616
- return _o(q || C), q || (C.classList.add("gentiq-reference-highlight"), m.current && window.clearTimeout(m.current), m.current = window.setTimeout(() => {
615
+ const L = typeof x.metadata?.textStart == "number" ? x.metadata.textStart : void 0, P = typeof x.metadata?.textEnd == "number" ? x.metadata.textEnd : void 0, q = x.kind === "text" ? L !== void 0 && P !== void 0 ? on(C, L, P) : Eo(C, x.excerpt) : !1;
616
+ return xo(q || C), q || (C.classList.add("gentiq-reference-highlight"), m.current && window.clearTimeout(m.current), m.current = window.setTimeout(() => {
617
617
  C.classList.remove("gentiq-reference-highlight"), m.current = null;
618
618
  }, 1800)), !0;
619
619
  }, []);
620
- Z(() => {
620
+ J(() => {
621
621
  if (!b || typeof document > "u") {
622
622
  u(null);
623
623
  return;
624
624
  }
625
- const _ = () => {
625
+ const x = () => {
626
626
  window.setTimeout(() => {
627
627
  const L = window.getSelection();
628
628
  if (!L || L.isCollapsed || L.rangeCount === 0) {
@@ -664,23 +664,23 @@ function ml({
664
664
  const L = window.getSelection();
665
665
  (!L || L.isCollapsed) && u(null);
666
666
  };
667
- return document.addEventListener("mouseup", _), document.addEventListener("touchend", _), document.addEventListener("selectionchange", C), () => {
668
- document.removeEventListener("mouseup", _), document.removeEventListener("touchend", _), document.removeEventListener("selectionchange", C);
667
+ return document.addEventListener("mouseup", x), document.addEventListener("touchend", x), document.addEventListener("selectionchange", C), () => {
668
+ document.removeEventListener("mouseup", x), document.removeEventListener("touchend", x), document.removeEventListener("selectionchange", C);
669
669
  };
670
- }, [b, o]), Z(() => () => {
670
+ }, [b, o]), J(() => () => {
671
671
  m.current && window.clearTimeout(m.current);
672
672
  }, []);
673
673
  const T = ue(() => ({
674
674
  references: l,
675
675
  addReference: d,
676
676
  removeReference: v,
677
- clearReferences: w,
677
+ clearReferences: _,
678
678
  focusReference: g,
679
679
  registerSource: p,
680
680
  unregisterSource: y,
681
681
  enabled: e
682
- }), [l, d, v, w, g, p, y, e]);
683
- return /* @__PURE__ */ x(tn.Provider, { value: T, children: [
682
+ }), [l, d, v, _, g, p, y, e]);
683
+ return /* @__PURE__ */ w(tn.Provider, { value: T, children: [
684
684
  r,
685
685
  s && typeof document < "u" && ao(
686
686
  /* @__PURE__ */ i(
@@ -689,7 +689,7 @@ function ml({
689
689
  type: "button",
690
690
  className: "fixed z-50 flex size-9 -translate-x-1/2 items-center justify-center rounded-lg bg-foreground text-background shadow-lg ring-1 ring-border/40 transition hover:scale-105",
691
691
  style: { top: s.top, left: s.left },
692
- onMouseDown: (_) => _.preventDefault(),
692
+ onMouseDown: (x) => x.preventDefault(),
693
693
  onClick: () => {
694
694
  d(s.reference), window.getSelection()?.removeAllRanges(), u(null);
695
695
  },
@@ -719,14 +719,14 @@ function at() {
719
719
  enabled: !1
720
720
  };
721
721
  }
722
- function Ze({
722
+ function Je({
723
723
  reference: e,
724
724
  showAction: t = !0,
725
725
  className: n,
726
726
  children: o,
727
727
  ...r
728
728
  }) {
729
- const { t: a } = $(["chat"]), { addReference: l, registerSource: c, unregisterSource: s, enabled: u } = at(), f = de(null), m = de(`source_${Jt(8)}`), b = ue(
729
+ const { t: a } = $(["chat"]), { addReference: l, registerSource: c, unregisterSource: s, enabled: u } = at(), f = de(null), m = de(`source_${Zt(8)}`), b = ue(
730
730
  () => e.sourceId || [e.messageId, e.partIndex, e.kind].filter(Boolean).join("-") || m.current,
731
731
  [e.kind, e.messageId, e.partIndex, e.sourceId]
732
732
  ), p = ue(() => ({
@@ -742,7 +742,7 @@ function Ze({
742
742
  }
743
743
  };
744
744
  }, [p]);
745
- return Z(() => (c(y()), () => s(b)), [c, s, y, b]), /* @__PURE__ */ x(
745
+ return J(() => (c(y()), () => s(b)), [c, s, y, b]), /* @__PURE__ */ w(
746
746
  "div",
747
747
  {
748
748
  ref: f,
@@ -826,11 +826,11 @@ function Co({ part: e, disabled: t, onAnswer: n }) {
826
826
  }, b = (p) => {
827
827
  p.preventDefault(), m(r);
828
828
  };
829
- return /* @__PURE__ */ i("div", { className: "my-3 flex w-full justify-start animate-in-bubble", children: /* @__PURE__ */ x("div", { className: "w-full max-w-xl rounded-xl border border-border/70 bg-card/90 p-3.5 shadow-sm", children: [
829
+ return /* @__PURE__ */ i("div", { className: "my-3 flex w-full justify-start animate-in-bubble", children: /* @__PURE__ */ w("div", { className: "w-full max-w-xl rounded-xl border border-border/70 bg-card/90 p-3.5 shadow-sm", children: [
830
830
  /* @__PURE__ */ i("div", { className: "text-sm font-semibold leading-snug text-foreground", dir: "auto", children: o.question }),
831
831
  /* @__PURE__ */ i("div", { className: "mt-3 grid gap-2", children: o.choices.map((p) => {
832
832
  const y = l === p.label;
833
- return /* @__PURE__ */ x(
833
+ return /* @__PURE__ */ w(
834
834
  "button",
835
835
  {
836
836
  type: "button",
@@ -860,7 +860,7 @@ function Co({ part: e, disabled: t, onAnswer: n }) {
860
860
  p.label
861
861
  );
862
862
  }) }),
863
- o.allowCustom && /* @__PURE__ */ x("form", { onSubmit: b, className: "mt-3 flex items-center gap-2", children: [
863
+ o.allowCustom && /* @__PURE__ */ w("form", { onSubmit: b, className: "mt-3 flex items-center gap-2", children: [
864
864
  /* @__PURE__ */ i(
865
865
  "input",
866
866
  {
@@ -903,10 +903,10 @@ function Ao(e) {
903
903
  ReasoningPart: y,
904
904
  ToolPart: d,
905
905
  FilePart: v,
906
- ReferencePart: w,
906
+ ReferencePart: _,
907
907
  ChoiceQuestionPart: g,
908
908
  toolComponents: T,
909
- referenceAdapters: _,
909
+ referenceAdapters: x,
910
910
  threadActions: C
911
911
  } = re(), { feedback: L, handleFeedback: P, copy: q } = fo(n, c), S = (A) => {
912
912
  if (A.toolName) return A.toolName;
@@ -921,14 +921,14 @@ function Ao(e) {
921
921
  const V = Object.values(G).filter((Pe) => ["string", "number", "boolean"].includes(typeof Pe)).slice(0, 3).map(String);
922
922
  if (V.length > 0) return V.join(" · ");
923
923
  }
924
- const xe = A.input;
925
- if (xe && typeof xe == "object") {
926
- const V = Object.values(xe).filter((Pe) => ["string", "number", "boolean"].includes(typeof Pe)).slice(0, 3).map(String);
924
+ const we = A.input;
925
+ if (we && typeof we == "object") {
926
+ const V = Object.values(we).filter((Pe) => ["string", "number", "boolean"].includes(typeof Pe)).slice(0, 3).map(String);
927
927
  if (V.length > 0) return V.join(" · ");
928
928
  }
929
929
  return S(A) || "Tool result";
930
930
  }, B = (A, G) => {
931
- const V = (G ? _?.[G] : void 0)?.({ part: t, message: n, toolName: G, chat: f }) || {};
931
+ const V = (G ? x?.[G] : void 0)?.({ part: t, message: n, toolName: G, chat: f }) || {};
932
932
  return {
933
933
  ...A,
934
934
  ...V,
@@ -946,7 +946,7 @@ function Ao(e) {
946
946
  }
947
947
  if (["data-progress-update", "data-message-id", "data-chat-finished", "data-title"].includes(t.type)) return null;
948
948
  if (t.type === "data-reference")
949
- return /* @__PURE__ */ i(w, { part: t, message: n });
949
+ return /* @__PURE__ */ i(_, { part: t, message: n });
950
950
  if (t.type === "data-choice-question")
951
951
  return /* @__PURE__ */ i(
952
952
  g,
@@ -1014,7 +1014,7 @@ function Ao(e) {
1014
1014
  if (t.type.startsWith("tool-") || "toolCallId" in t) {
1015
1015
  const A = S(t);
1016
1016
  return /* @__PURE__ */ i(
1017
- Ze,
1017
+ Je,
1018
1018
  {
1019
1019
  reference: B({
1020
1020
  kind: "tool",
@@ -1040,7 +1040,7 @@ function Ao(e) {
1040
1040
  );
1041
1041
  }
1042
1042
  return t.type === "file" ? /* @__PURE__ */ i(
1043
- Ze,
1043
+ Je,
1044
1044
  {
1045
1045
  reference: {
1046
1046
  kind: "file",
@@ -1178,7 +1178,7 @@ function st({ ...e }) {
1178
1178
  }
1179
1179
  const Do = ({ className: e, ...t }) => /* @__PURE__ */ i(it, { className: k("not-prose mb-4 text-primary text-xs", e), ...t }), Po = ({ className: e, count: t, children: n, ...o }) => {
1180
1180
  const { t: r } = $(["chat"]);
1181
- return /* @__PURE__ */ i(lt, { className: k("flex items-center gap-2", e), ...o, children: n ?? /* @__PURE__ */ x(ce, { children: [
1181
+ return /* @__PURE__ */ i(lt, { className: k("flex items-center gap-2", e), ...o, children: n ?? /* @__PURE__ */ w(ce, { children: [
1182
1182
  /* @__PURE__ */ i("p", { className: "font-medium", children: r("used_sources", { count: t }) }),
1183
1183
  /* @__PURE__ */ i(ve, { className: "h-4 w-4" })
1184
1184
  ] }) });
@@ -1192,7 +1192,7 @@ const Do = ({ className: e, ...t }) => /* @__PURE__ */ i(it, { className: k("not
1192
1192
  ),
1193
1193
  ...t
1194
1194
  }
1195
- ), zo = ({ href: e, title: t, children: n, ...o }) => /* @__PURE__ */ i("a", { className: "flex items-center gap-2", href: e, rel: "noreferrer", target: "_blank", ...o, children: n ?? /* @__PURE__ */ x(ce, { children: [
1195
+ ), zo = ({ href: e, title: t, children: n, ...o }) => /* @__PURE__ */ i("a", { className: "flex items-center gap-2", href: e, rel: "noreferrer", target: "_blank", ...o, children: n ?? /* @__PURE__ */ w(ce, { children: [
1196
1196
  /* @__PURE__ */ i($n, { className: "h-4 w-4" }),
1197
1197
  /* @__PURE__ */ i("span", { className: "block font-medium", children: t })
1198
1198
  ] }) }), Uo = ({ latestProgress: e, parts: t }) => {
@@ -1204,7 +1204,7 @@ const Do = ({ className: e, ...t }) => /* @__PURE__ */ i(it, { className: k("not
1204
1204
  return /* @__PURE__ */ i("div", { className: k(
1205
1205
  "flex w-full py-3 mx-auto max-w-4xl px-4 md:px-0 animate-in-bubble",
1206
1206
  f === "rtl" ? "justify-end" : "justify-start"
1207
- ), children: /* @__PURE__ */ x("div", { className: k("flex items-center gap-3 text-sm text-muted-foreground", f === "rtl" && "flex-row-reverse"), dir: f, children: [
1207
+ ), children: /* @__PURE__ */ w("div", { className: k("flex items-center gap-3 text-sm text-muted-foreground", f === "rtl" && "flex-row-reverse"), dir: f, children: [
1208
1208
  s ? /* @__PURE__ */ i("div", { className: "size-4 animate-spin rounded-full border-2 border-primary border-r-transparent shrink-0" }) : u ? /* @__PURE__ */ i(fe, { className: "size-4 text-destructive shrink-0" }) : /* @__PURE__ */ i(Oe, { className: "size-4 text-green-500 shrink-0" }),
1209
1209
  /* @__PURE__ */ i("span", { className: k("font-medium", s && "animate-pulse"), children: o })
1210
1210
  ] }) });
@@ -1222,17 +1222,17 @@ function $o({
1222
1222
  readonly: u
1223
1223
  }) {
1224
1224
  const { i18n: f, t: m } = $(["chat", "translation"]), b = f.language === "fa", { WelcomeScreen: p } = re(), y = e[e.length - 1], d = y?.role === "assistant" && (t === "ready" || y.parts.some((v) => v.type === "data-chat-finished"));
1225
- return /* @__PURE__ */ x(Oo, { className: k("min-h-0 flex-1", s), children: [
1226
- /* @__PURE__ */ x(Lo, { className: "max-w-4xl mx-auto w-full px-4 md:px-0 pb-32", dir: "ltr", children: [
1227
- e.length === 0 && !n ? /* @__PURE__ */ i(p, { onSuggestionClick: l }) : e.map((v) => /* @__PURE__ */ x("div", { "data-gentiq-message-id": v.id, "data-gentiq-message-role": v.role, children: [
1228
- v.role === "assistant" && v.parts.filter((w) => w.type === "source-url").length > 0 && /* @__PURE__ */ x(Do, { children: [
1229
- /* @__PURE__ */ i(Po, { count: v.parts.filter((w) => w.type === "source-url").length }),
1230
- v.parts.filter((w) => w.type === "source-url").map((w, g) => /* @__PURE__ */ i(Mo, { children: /* @__PURE__ */ i(zo, { href: w.url, title: w.url }, `${v.id}-${g}`) }, `${v.id}-${g}`))
1225
+ return /* @__PURE__ */ w(Oo, { className: k("min-h-0 flex-1", s), children: [
1226
+ /* @__PURE__ */ w(Lo, { className: "max-w-4xl mx-auto w-full px-4 md:px-0 pb-32", dir: "ltr", children: [
1227
+ e.length === 0 && !n ? /* @__PURE__ */ i(p, { onSuggestionClick: l }) : e.map((v) => /* @__PURE__ */ w("div", { "data-gentiq-message-id": v.id, "data-gentiq-message-role": v.role, children: [
1228
+ v.role === "assistant" && v.parts.filter((_) => _.type === "source-url").length > 0 && /* @__PURE__ */ w(Do, { children: [
1229
+ /* @__PURE__ */ i(Po, { count: v.parts.filter((_) => _.type === "source-url").length }),
1230
+ v.parts.filter((_) => _.type === "source-url").map((_, g) => /* @__PURE__ */ i(Mo, { children: /* @__PURE__ */ i(zo, { href: _.url, title: _.url }, `${v.id}-${g}`) }, `${v.id}-${g}`))
1231
1231
  ] }),
1232
- v.parts.map((w, g) => /* @__PURE__ */ i(
1232
+ v.parts.map((_, g) => /* @__PURE__ */ i(
1233
1233
  Ao,
1234
1234
  {
1235
- part: w,
1235
+ part: _,
1236
1236
  message: v,
1237
1237
  status: t,
1238
1238
  index: g,
@@ -1250,8 +1250,8 @@ function $o({
1250
1250
  if (!y || y.role !== "assistant") return null;
1251
1251
  const v = y.parts.filter((g) => g.type === "data-progress-update");
1252
1252
  if (v.length === 0) return null;
1253
- const w = v[v.length - 1];
1254
- return w ? /* @__PURE__ */ i(Uo, { latestProgress: w, parts: y.parts }) : null;
1253
+ const _ = v[v.length - 1];
1254
+ return _ ? /* @__PURE__ */ i(Uo, { latestProgress: _, parts: y.parts }) : null;
1255
1255
  })(),
1256
1256
  (n || t === "submitted") && /* @__PURE__ */ i("div", { className: "animate-in-bubble", children: /* @__PURE__ */ i(ze, {}) }),
1257
1257
  t === "streaming" && (() => {
@@ -1260,12 +1260,12 @@ function $o({
1260
1260
  (g) => g.type === "text" && g.text?.trim().length > 0 || g.type === "reasoning" || g.type === "tool-invocation" || g.type === "tool-call" || g.type === "data-choice-question"
1261
1261
  ) ? null : /* @__PURE__ */ i(ze, {});
1262
1262
  })(),
1263
- t === "error" && o && /* @__PURE__ */ i("div", { className: "mx-auto max-w-4xl w-full px-4 my-3 animate-in-bubble", children: /* @__PURE__ */ x("div", { className: k(
1263
+ t === "error" && o && /* @__PURE__ */ i("div", { className: "mx-auto max-w-4xl w-full px-4 my-3 animate-in-bubble", children: /* @__PURE__ */ w("div", { className: k(
1264
1264
  "flex w-full items-start gap-3 px-4 py-3.5 rounded-xl bg-destructive/8 border border-destructive/15",
1265
1265
  b ? "border-r-2 border-r-destructive/60" : "border-l-2 border-l-destructive/60"
1266
1266
  ), dir: b ? "rtl" : "ltr", children: [
1267
1267
  /* @__PURE__ */ i("div", { className: "size-1.5 rounded-full bg-destructive mt-2 shrink-0" }),
1268
- /* @__PURE__ */ x("div", { className: k("text-sm text-destructive/90 leading-relaxed flex-1", b ? "text-right" : "text-left"), children: [
1268
+ /* @__PURE__ */ w("div", { className: k("text-sm text-destructive/90 leading-relaxed flex-1", b ? "text-right" : "text-left"), children: [
1269
1269
  /* @__PURE__ */ i("span", { className: "font-semibold", children: m("error") }),
1270
1270
  " ",
1271
1271
  o.message
@@ -1408,7 +1408,7 @@ function sn({
1408
1408
  children: n,
1409
1409
  ...o
1410
1410
  }) {
1411
- return /* @__PURE__ */ i(le.Portal, { children: /* @__PURE__ */ x(
1411
+ return /* @__PURE__ */ i(le.Portal, { children: /* @__PURE__ */ w(
1412
1412
  le.Content,
1413
1413
  {
1414
1414
  "data-slot": "tooltip-content",
@@ -1446,8 +1446,8 @@ function Xo({
1446
1446
  conversationId: a,
1447
1447
  className: l
1448
1448
  }) {
1449
- const { t: c } = $(["chat", "translation"]), { composer: s } = re(), [u, f] = z(""), [m, b] = z([]), p = Yo(), { references: y, removeReference: d, clearReferences: v, focusReference: w, enabled: g } = at(), T = de(null), _ = de(null);
1450
- Z(() => {
1449
+ const { t: c } = $(["chat", "translation"]), { composer: s } = re(), [u, f] = z(""), [m, b] = z([]), p = Yo(), { references: y, removeReference: d, clearReferences: v, focusReference: _, enabled: g } = at(), T = de(null), x = de(null);
1450
+ J(() => {
1451
1451
  !p && a === "/" && T.current && T.current.focus();
1452
1452
  }, [a, p]);
1453
1453
  const C = Y((S) => {
@@ -1468,30 +1468,30 @@ function Xo({
1468
1468
  m.forEach((B) => M.items.add(B)), e(u, M.files, y), f(""), b([]), v();
1469
1469
  }
1470
1470
  };
1471
- return /* @__PURE__ */ i("div", { className: k("shrink-0 px-4 pb-5 pt-2 md:px-6 md:pb-6 w-full", l), children: /* @__PURE__ */ i("div", { className: "max-w-4xl mx-auto w-full", children: /* @__PURE__ */ x(Bo, { onSubmit: q, children: [
1471
+ return /* @__PURE__ */ i("div", { className: k("shrink-0 px-4 pb-5 pt-2 md:px-6 md:pb-6 w-full", l), children: /* @__PURE__ */ i("div", { className: "max-w-4xl mx-auto w-full", children: /* @__PURE__ */ w(Bo, { onSubmit: q, children: [
1472
1472
  /* @__PURE__ */ i(
1473
1473
  "input",
1474
1474
  {
1475
1475
  type: "file",
1476
- ref: _,
1476
+ ref: x,
1477
1477
  onChange: C,
1478
1478
  multiple: !0,
1479
1479
  accept: s?.attachments?.types?.join(",") || "image/*,text/*,.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx",
1480
1480
  className: "hidden"
1481
1481
  }
1482
1482
  ),
1483
- /* @__PURE__ */ x("div", { className: "flex flex-col flex-1 gap-2", children: [
1484
- g && y.length > 0 && /* @__PURE__ */ i("div", { className: "flex flex-wrap gap-2 px-2 pt-2", children: y.map((S) => /* @__PURE__ */ x(
1483
+ /* @__PURE__ */ w("div", { className: "flex flex-col flex-1 gap-2", children: [
1484
+ g && y.length > 0 && /* @__PURE__ */ i("div", { className: "flex flex-wrap gap-2 px-2 pt-2", children: y.map((S) => /* @__PURE__ */ w(
1485
1485
  "div",
1486
1486
  {
1487
1487
  className: "group/reference-chip flex min-w-0 max-w-[min(100%,260px)] items-center gap-2 rounded-lg border border-primary/15 bg-primary/8 px-2.5 py-1.5 text-left text-xs shadow-sm transition hover:bg-primary/12",
1488
1488
  title: S.excerpt,
1489
1489
  children: [
1490
- /* @__PURE__ */ x(
1490
+ /* @__PURE__ */ w(
1491
1491
  "button",
1492
1492
  {
1493
1493
  type: "button",
1494
- onClick: () => w(S),
1494
+ onClick: () => _(S),
1495
1495
  className: "flex min-w-0 flex-1 items-center gap-2 text-left",
1496
1496
  children: [
1497
1497
  /* @__PURE__ */ i(Re, { className: "size-3.5 shrink-0 text-primary" }),
@@ -1516,7 +1516,7 @@ function Xo({
1516
1516
  },
1517
1517
  S.id
1518
1518
  )) }),
1519
- m.length > 0 && /* @__PURE__ */ i("div", { className: "flex flex-wrap gap-2 px-2 pt-2", children: m.map((S, M) => /* @__PURE__ */ x("div", { className: "group relative flex items-center gap-2 rounded-xl glass-surface px-2.5 py-1.5 text-sm shadow-sm", children: [
1519
+ m.length > 0 && /* @__PURE__ */ i("div", { className: "flex flex-wrap gap-2 px-2 pt-2", children: m.map((S, M) => /* @__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: [
1520
1520
  S.type.startsWith("image/") ? /* @__PURE__ */ i("img", { src: URL.createObjectURL(S), alt: S.name, className: "size-7 rounded-lg object-cover ring-1 ring-border/50" }) : /* @__PURE__ */ i(Xt, { className: "size-3.5 text-muted-foreground shrink-0" }),
1521
1521
  /* @__PURE__ */ i("span", { className: "max-w-[120px] truncate text-xs font-medium text-foreground/80", children: S.name }),
1522
1522
  /* @__PURE__ */ i("button", { type: "button", onClick: () => L(M), className: "ml-0.5 flex items-center justify-center size-4 rounded-full hover:bg-destructive/15 text-muted-foreground/60 hover:text-destructive transition-all duration-150", children: /* @__PURE__ */ i(fe, { className: "size-2.5" }) })
@@ -1532,9 +1532,9 @@ function Xo({
1532
1532
  }
1533
1533
  )
1534
1534
  ] }),
1535
- /* @__PURE__ */ x(jo, { children: [
1536
- /* @__PURE__ */ i(Go, { children: (s?.attachments?.enabled ?? !1) && /* @__PURE__ */ x(an, { children: [
1537
- /* @__PURE__ */ i(ln, { asChild: !0, children: /* @__PURE__ */ i(Wo, { variant: "ghost", onClick: () => _.current?.click(), disabled: P, children: /* @__PURE__ */ i(jn, { className: "size-4" }) }) }),
1535
+ /* @__PURE__ */ w(jo, { children: [
1536
+ /* @__PURE__ */ i(Go, { children: (s?.attachments?.enabled ?? !1) && /* @__PURE__ */ w(an, { children: [
1537
+ /* @__PURE__ */ i(ln, { asChild: !0, children: /* @__PURE__ */ i(Wo, { variant: "ghost", onClick: () => x.current?.click(), disabled: P, children: /* @__PURE__ */ i(jn, { className: "size-4" }) }) }),
1538
1538
  /* @__PURE__ */ i(sn, { children: c("attach_file") })
1539
1539
  ] }) }),
1540
1540
  /* @__PURE__ */ i(
@@ -1572,10 +1572,10 @@ const Ko = ({
1572
1572
  children: a ?? e
1573
1573
  }
1574
1574
  );
1575
- }, Zo = (e) => [e, "currentUser"];
1576
- function Jo(e = {}) {
1575
+ }, Jo = (e) => [e, "currentUser"];
1576
+ function Zo(e = {}) {
1577
1577
  const { app: t } = re(), n = t?.cacheNamespace || "gentiq", o = io({
1578
- queryKey: Zo(n),
1578
+ queryKey: Jo(n),
1579
1579
  queryFn: () => N.getMe(),
1580
1580
  enabled: e.enabled ?? !0
1581
1581
  }), r = o.data ?? null, a = r?.name.trim() || null;
@@ -1586,34 +1586,34 @@ function Jo(e = {}) {
1586
1586
  };
1587
1587
  }
1588
1588
  const Qo = ({ onSuggestionClick: e, icons: t }) => {
1589
- const { t: n, i18n: o } = $(["chat", "translation"]), { welcome: r } = re(), a = typeof r?.greeting == "function", { user: l, firstName: c, isLoading: s } = Jo({
1589
+ const { t: n, i18n: o } = $(["chat", "translation"]), { welcome: r } = re(), a = typeof r?.greeting == "function", { user: l, firstName: c, isLoading: s } = Zo({
1590
1590
  enabled: a
1591
1591
  }), u = r?.prompts ?? [], f = u.map((d) => {
1592
1592
  const v = typeof d == "string" ? d : d.text;
1593
1593
  return n(v);
1594
1594
  }).filter((d) => d !== null && d !== ""), m = o.dir() === "rtl", b = r?.greeting, p = typeof b == "function" ? b({ user: l, firstName: c, isLoading: s, t: n }) : b ? n(b) ?? b : n("welcome.title"), y = r?.subtitle ? n(r.subtitle) : null;
1595
- return /* @__PURE__ */ x(
1595
+ return /* @__PURE__ */ w(
1596
1596
  "div",
1597
1597
  {
1598
1598
  dir: m ? "rtl" : "ltr",
1599
1599
  className: "flex flex-col items-center justify-center min-h-[60vh] text-center px-6 animate-in fade-in duration-700 ease-out",
1600
1600
  children: [
1601
- r?.icon && /* @__PURE__ */ x("div", { className: "mb-8 relative flex items-center justify-center", children: [
1601
+ r?.icon && /* @__PURE__ */ w("div", { className: "mb-8 relative flex items-center justify-center", children: [
1602
1602
  /* @__PURE__ */ i("div", { className: "absolute size-24 rounded-full bg-primary/5 blur-[40px] animate-pulse" }),
1603
1603
  /* @__PURE__ */ i("div", { className: "relative size-12 md:size-16 rounded-xl bg-gradient-to-br from-surface to-secondary flex items-center justify-center border border-border/10 dark:border-border/5 shadow-xl shadow-black/10", children: typeof r.icon == "function" ? /* @__PURE__ */ i(r.icon, { className: "size-6 md:size-8 text-primary opacity-80" }) : r.icon })
1604
1604
  ] }),
1605
- (p || y) && /* @__PURE__ */ x("div", { className: "space-y-3 mb-12 max-w-xl mx-auto", children: [
1605
+ (p || y) && /* @__PURE__ */ w("div", { className: "space-y-3 mb-12 max-w-xl mx-auto", children: [
1606
1606
  p && /* @__PURE__ */ i("h1", { className: "text-2xl md:text-3xl font-black tracking-tight leading-tight text-foreground", children: p }),
1607
1607
  y && /* @__PURE__ */ i("p", { className: "text-muted-foreground text-base md:text-lg font-medium max-w-md mx-auto leading-relaxed opacity-85 dark:opacity-70", children: y })
1608
1608
  ] }),
1609
1609
  f.length > 0 && /* @__PURE__ */ i("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-3 w-full max-w-xl", children: f.map((d, v) => {
1610
- const w = u[v], g = typeof w != "string" ? w.icon : null, T = t && t[v % t.length] ? t[v % t.length] : Gn, _ = g || T;
1610
+ const _ = u[v], g = typeof _ != "string" ? _.icon : null, T = t && t[v % t.length] ? t[v % t.length] : Gn, x = g || T;
1611
1611
  return /* @__PURE__ */ i(
1612
1612
  "div",
1613
1613
  {
1614
1614
  className: "animate-in fade-in slide-in-from-bottom-3 duration-700 fill-mode-both",
1615
1615
  style: { animationDelay: `${v * 80}ms` },
1616
- children: /* @__PURE__ */ x(
1616
+ children: /* @__PURE__ */ w(
1617
1617
  Ko,
1618
1618
  {
1619
1619
  onClick: () => e(d),
@@ -1627,8 +1627,8 @@ const Qo = ({ onSuggestionClick: e, icons: t }) => {
1627
1627
  "hover:-translate-y-0.5 transition-[background-color,border-color,transform] duration-300 ease-out-quint"
1628
1628
  ),
1629
1629
  children: [
1630
- /* @__PURE__ */ x("div", { className: "flex items-center gap-3 w-full text-start", children: [
1631
- /* @__PURE__ */ i("div", { className: "size-8 rounded-lg bg-secondary/35 dark:bg-background/40 flex items-center justify-center shrink-0 border border-border/10 dark:border-border/5 group-hover:bg-primary group-hover:text-primary-foreground transition-colors duration-300", children: /* @__PURE__ */ i(_, { className: "size-4" }) }),
1630
+ /* @__PURE__ */ w("div", { className: "flex items-center gap-3 w-full text-start", children: [
1631
+ /* @__PURE__ */ i("div", { className: "size-8 rounded-lg bg-secondary/35 dark:bg-background/40 flex items-center justify-center shrink-0 border border-border/10 dark:border-border/5 group-hover:bg-primary group-hover:text-primary-foreground transition-colors duration-300", children: /* @__PURE__ */ i(x, { className: "size-4" }) }),
1632
1632
  /* @__PURE__ */ i("div", { className: "flex flex-col gap-0.5 overflow-hidden", children: /* @__PURE__ */ i("span", { className: "text-sm md:text-base font-semibold text-foreground/80 group-hover:text-foreground transition-colors", children: d.length > 60 ? d.substring(0, 60) + "..." : d }) })
1633
1633
  ] }),
1634
1634
  /* @__PURE__ */ i("div", { className: k(
@@ -1700,7 +1700,7 @@ const Qo = ({ onSuggestionClick: e, icons: t }) => {
1700
1700
  size: a = "sm",
1701
1701
  ...l
1702
1702
  }) => {
1703
- const c = /* @__PURE__ */ x(
1703
+ const c = /* @__PURE__ */ w(
1704
1704
  pe,
1705
1705
  {
1706
1706
  className: k(
@@ -1721,12 +1721,12 @@ const Qo = ({ onSuggestionClick: e, icons: t }) => {
1721
1721
  ]
1722
1722
  }
1723
1723
  );
1724
- return e ? /* @__PURE__ */ i(rn, { children: /* @__PURE__ */ x(an, { children: [
1724
+ return e ? /* @__PURE__ */ i(rn, { children: /* @__PURE__ */ w(an, { children: [
1725
1725
  /* @__PURE__ */ i(ln, { asChild: !0, children: c }),
1726
1726
  /* @__PURE__ */ i(sn, { children: /* @__PURE__ */ i("p", { children: e }) })
1727
1727
  ] }) }) : c;
1728
1728
  };
1729
- class we {
1729
+ class _e {
1730
1730
  /**
1731
1731
  * @param {SchemaType['property']} property
1732
1732
  * Property.
@@ -1741,14 +1741,14 @@ class we {
1741
1741
  this.normal = n, this.property = t, o && (this.space = o);
1742
1742
  }
1743
1743
  }
1744
- we.prototype.normal = {};
1745
- we.prototype.property = {};
1746
- we.prototype.space = void 0;
1744
+ _e.prototype.normal = {};
1745
+ _e.prototype.property = {};
1746
+ _e.prototype.space = void 0;
1747
1747
  function dn(e, t) {
1748
1748
  const n = {}, o = {};
1749
1749
  for (const r of e)
1750
1750
  Object.assign(n, r.property), Object.assign(o, r.normal);
1751
- return new we(n, o, t);
1751
+ return new _e(n, o, t);
1752
1752
  }
1753
1753
  function ye(e) {
1754
1754
  return e.toLowerCase();
@@ -1779,7 +1779,7 @@ j.prototype.property = "";
1779
1779
  j.prototype.spaceSeparated = !1;
1780
1780
  j.prototype.space = void 0;
1781
1781
  let tr = 0;
1782
- const E = ne(), F = ne(), Je = ne(), h = ne(), R = ne(), se = ne(), W = ne();
1782
+ const E = ne(), F = ne(), Ze = ne(), h = ne(), R = ne(), se = ne(), W = ne();
1783
1783
  function ne() {
1784
1784
  return 2 ** ++tr;
1785
1785
  }
@@ -1790,7 +1790,7 @@ const Qe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1790
1790
  commaOrSpaceSeparated: W,
1791
1791
  commaSeparated: se,
1792
1792
  number: h,
1793
- overloadedBoolean: Je,
1793
+ overloadedBoolean: Ze,
1794
1794
  spaceSeparated: R
1795
1795
  }, Symbol.toStringTag, { value: "Module" })), $e = (
1796
1796
  /** @type {ReadonlyArray<keyof typeof types>} */
@@ -1834,7 +1834,7 @@ function he(e) {
1834
1834
  );
1835
1835
  e.mustUseProperty && e.mustUseProperty.includes(o) && (a.mustUseProperty = !0), t[o] = a, n[ye(o)] = o, n[ye(a.attribute)] = o;
1836
1836
  }
1837
- return new we(t, n, e.space);
1837
+ return new _e(t, n, e.space);
1838
1838
  }
1839
1839
  const pn = he({
1840
1840
  properties: {
@@ -1946,7 +1946,7 @@ const nr = he({
1946
1946
  dir: null,
1947
1947
  dirName: null,
1948
1948
  disabled: E,
1949
- download: Je,
1949
+ download: Ze,
1950
1950
  draggable: F,
1951
1951
  encType: null,
1952
1952
  enterKeyHint: null,
@@ -1959,7 +1959,7 @@ const nr = he({
1959
1959
  formTarget: null,
1960
1960
  headers: R,
1961
1961
  height: h,
1962
- hidden: Je,
1962
+ hidden: Ze,
1963
1963
  high: h,
1964
1964
  href: null,
1965
1965
  hrefLang: null,
@@ -2843,7 +2843,7 @@ const nr = he({
2843
2843
  transform(e, t) {
2844
2844
  return "xml:" + t.slice(3).toLowerCase();
2845
2845
  }
2846
- }), rr = /[A-Z]/g, wt = /-[a-z]/g, ar = /^data[-\w.:]+$/i;
2846
+ }), rr = /[A-Z]/g, _t = /-[a-z]/g, ar = /^data[-\w.:]+$/i;
2847
2847
  function ir(e, t) {
2848
2848
  const n = ye(t);
2849
2849
  let o = t, r = j;
@@ -2851,11 +2851,11 @@ function ir(e, t) {
2851
2851
  return e.property[e.normal[n]];
2852
2852
  if (n.length > 4 && n.slice(0, 4) === "data" && ar.test(t)) {
2853
2853
  if (t.charAt(4) === "-") {
2854
- const a = t.slice(5).replace(wt, sr);
2854
+ const a = t.slice(5).replace(_t, sr);
2855
2855
  o = "data" + a.charAt(0).toUpperCase() + a.slice(1);
2856
2856
  } else {
2857
2857
  const a = t.slice(4);
2858
- if (!wt.test(a)) {
2858
+ if (!_t.test(a)) {
2859
2859
  let l = a.replace(rr, lr);
2860
2860
  l.charAt(0) !== "-" && (l = "-" + l), t = "data" + l;
2861
2861
  }
@@ -2871,7 +2871,7 @@ function sr(e) {
2871
2871
  return e.charAt(1).toUpperCase();
2872
2872
  }
2873
2873
  const cr = dn([pn, nr, mn, fn, bn], "html"), ur = dn([pn, or, mn, fn, bn], "svg");
2874
- function xt(e) {
2874
+ function wt(e) {
2875
2875
  const t = [], n = String(e || "");
2876
2876
  let o = n.indexOf(","), r = 0, a = !1;
2877
2877
  for (; !a; ) {
@@ -2881,13 +2881,13 @@ function xt(e) {
2881
2881
  }
2882
2882
  return t;
2883
2883
  }
2884
- const _t = /[#.]/g;
2884
+ const xt = /[#.]/g;
2885
2885
  function dr(e, t) {
2886
2886
  const n = e || "", o = {};
2887
2887
  let r = 0, a, l;
2888
2888
  for (; r < n.length; ) {
2889
- _t.lastIndex = r;
2890
- const c = _t.exec(n), s = n.slice(r, c ? c.index : n.length);
2889
+ xt.lastIndex = r;
2890
+ const c = xt.exec(n), s = n.slice(r, c ? c.index : n.length);
2891
2891
  s && (a ? a === "#" ? o.id = s : Array.isArray(o.className) ? o.className.push(s) : o.className = [s] : l = s, r += s.length), c && (a = c[0], r++);
2892
2892
  }
2893
2893
  return {
@@ -2958,7 +2958,7 @@ function hr(e, t, n, o) {
2958
2958
  if (typeof o == "number") {
2959
2959
  if (Number.isNaN(o)) return;
2960
2960
  a = o;
2961
- } else typeof o == "boolean" ? a = o : typeof o == "string" ? r.spaceSeparated ? a = St(o) : r.commaSeparated ? a = xt(o) : r.commaOrSpaceSeparated ? a = St(xt(o).join(" ")) : a = Et(r, r.property, o) : Array.isArray(o) ? a = [...o] : a = r.property === "style" ? gr(o) : String(o);
2961
+ } else typeof o == "boolean" ? a = o : typeof o == "string" ? r.spaceSeparated ? a = St(o) : r.commaSeparated ? a = wt(o) : r.commaOrSpaceSeparated ? a = St(wt(o).join(" ")) : a = Et(r, r.property, o) : Array.isArray(o) ? a = [...o] : a = r.property === "style" ? gr(o) : String(o);
2962
2962
  if (Array.isArray(a)) {
2963
2963
  const l = [];
2964
2964
  for (const c of a)
@@ -3067,7 +3067,7 @@ function vr(e, t) {
3067
3067
  );
3068
3068
  // Ignore: Attr (2).
3069
3069
  case 3:
3070
- return xr(
3070
+ return wr(
3071
3071
  /** @type {Text} */
3072
3072
  e
3073
3073
  );
@@ -3076,7 +3076,7 @@ function vr(e, t) {
3076
3076
  // Removed: Entity (6)
3077
3077
  // Ignore: Processing instruction (7).
3078
3078
  case 8:
3079
- return _r(
3079
+ return xr(
3080
3080
  /** @type {Comment} */
3081
3081
  e
3082
3082
  );
@@ -3087,7 +3087,7 @@ function vr(e, t) {
3087
3087
  t
3088
3088
  );
3089
3089
  case 10:
3090
- return wr();
3090
+ return _r();
3091
3091
  case 11:
3092
3092
  return Nt(
3093
3093
  /** @type {DocumentFragment} */
@@ -3101,13 +3101,13 @@ function vr(e, t) {
3101
3101
  function Nt(e, t) {
3102
3102
  return { type: "root", children: vn(e, t) };
3103
3103
  }
3104
- function wr() {
3104
+ function _r() {
3105
3105
  return { type: "doctype" };
3106
3106
  }
3107
- function xr(e) {
3107
+ function wr(e) {
3108
3108
  return { type: "text", value: e.nodeValue || "" };
3109
3109
  }
3110
- function _r(e) {
3110
+ function xr(e) {
3111
3111
  return { type: "comment", value: e.nodeValue || "" };
3112
3112
  }
3113
3113
  function Sr(e, t) {
@@ -3335,7 +3335,7 @@ const Ct = /\n/g, At = /[\t ]+/g, tt = oe("br"), It = oe(Hr), Pr = oe("p"), Rt =
3335
3335
  Br,
3336
3336
  // From: <https://html.spec.whatwg.org/multipage/rendering.html#flow-content-3>
3337
3337
  jr
3338
- ]), wn = oe([
3338
+ ]), _n = oe([
3339
3339
  "address",
3340
3340
  // Flow content
3341
3341
  "article",
@@ -3418,11 +3418,11 @@ const Ct = /\n/g, At = /[\t ]+/g, tt = oe("br"), It = oe(Hr), Pr = oe("p"), Rt =
3418
3418
  // Flow content (legacy)
3419
3419
  ]);
3420
3420
  function zr(e, t) {
3421
- const n = t || {}, o = "children" in e ? e.children : [], r = wn(e), a = Sn(e, {
3421
+ const n = t || {}, o = "children" in e ? e.children : [], r = _n(e), a = Sn(e, {
3422
3422
  whitespace: n.whitespace || "normal"
3423
3423
  }), l = [];
3424
3424
  (e.type === "text" || e.type === "comment") && l.push(
3425
- ..._n(e, {
3425
+ ...xn(e, {
3426
3426
  breakBefore: !0,
3427
3427
  breakAfter: !0
3428
3428
  })
@@ -3430,7 +3430,7 @@ function zr(e, t) {
3430
3430
  let c = -1;
3431
3431
  for (; ++c < o.length; )
3432
3432
  l.push(
3433
- ...xn(
3433
+ ...wn(
3434
3434
  o[c],
3435
3435
  // @ts-expect-error: `tree` is a parent if we’re here.
3436
3436
  e,
@@ -3450,8 +3450,8 @@ function zr(e, t) {
3450
3450
  }
3451
3451
  return s.join("");
3452
3452
  }
3453
- function xn(e, t, n) {
3454
- return e.type === "element" ? Ur(e, t, n) : e.type === "text" ? n.whitespace === "normal" ? _n(e, n) : $r(e) : [];
3453
+ function wn(e, t, n) {
3454
+ return e.type === "element" ? Ur(e, t, n) : e.type === "text" ? n.whitespace === "normal" ? xn(e, n) : $r(e) : [];
3455
3455
  }
3456
3456
  function Ur(e, t, n) {
3457
3457
  const o = Sn(e, n), r = e.children || [];
@@ -3461,9 +3461,9 @@ function Ur(e, t, n) {
3461
3461
  let c, s;
3462
3462
  for (tt(e) || Rt(e) && // @ts-expect-error: something up with types of parents.
3463
3463
  Tt(t, e, Rt) ? s = `
3464
- ` : Pr(e) ? (c = 2, s = 2) : wn(e) && (c = 1, s = 1); ++a < r.length; )
3464
+ ` : Pr(e) ? (c = 2, s = 2) : _n(e) && (c = 1, s = 1); ++a < r.length; )
3465
3465
  l = l.concat(
3466
- xn(r[a], e, {
3466
+ wn(r[a], e, {
3467
3467
  whitespace: o,
3468
3468
  breakBefore: a ? void 0 : c,
3469
3469
  breakAfter: a < r.length - 1 ? tt(r[a + 1]) : s
@@ -3472,7 +3472,7 @@ function Ur(e, t, n) {
3472
3472
  return It(e) && // @ts-expect-error: something up with types of parents.
3473
3473
  Tt(t, e, It) && l.push(" "), c && l.unshift(c), s && l.push(s), l;
3474
3474
  }
3475
- function _n(e, t) {
3475
+ function xn(e, t) {
3476
3476
  const n = String(e.value), o = [], r = [];
3477
3477
  let a = 0;
3478
3478
  for (; a <= n.length; ) {
@@ -3568,13 +3568,13 @@ function Wr(e, t, n, o) {
3568
3568
  if (a(s, u, f[f.length - 1] || void 0) && (p = Vr(n(s, f)), p[0] === Ot))
3569
3569
  return p;
3570
3570
  if ("children" in s && s.children) {
3571
- const w = (
3571
+ const _ = (
3572
3572
  /** @type {UnistParent} */
3573
3573
  s
3574
3574
  );
3575
- if (w.children && p[0] !== Nn)
3576
- for (d = -1 + l, v = f.concat(w); d > -1 && d < w.children.length; ) {
3577
- const g = w.children[d];
3575
+ if (_.children && p[0] !== Nn)
3576
+ for (d = -1 + l, v = f.concat(_); d > -1 && d < _.children.length; ) {
3577
+ const g = _.children[d];
3578
3578
  if (y = c(g, d, v)(), y[0] === Ot)
3579
3579
  return y;
3580
3580
  d = typeof y[1] == "number" ? y[1] : d + l;
@@ -3607,13 +3607,13 @@ function Kr(e) {
3607
3607
  throwOnError: !0
3608
3608
  });
3609
3609
  } catch (v) {
3610
- const w = (
3610
+ const _ = (
3611
3611
  /** @type {Error} */
3612
3612
  v
3613
- ), g = w.name.toLowerCase();
3613
+ ), g = _.name.toLowerCase();
3614
3614
  o.message("Could not render math with KaTeX", {
3615
3615
  ancestors: [...a, r],
3616
- cause: w,
3616
+ cause: _,
3617
3617
  place: r.position,
3618
3618
  ruleId: g,
3619
3619
  source: "rehype-katex"
@@ -3647,14 +3647,14 @@ function Kr(e) {
3647
3647
  });
3648
3648
  };
3649
3649
  }
3650
- function Zr(e, t) {
3650
+ function Jr(e, t) {
3651
3651
  const n = String(e);
3652
3652
  let o = n.indexOf(t), r = o, a = 0, l = 0;
3653
3653
  for (; o !== -1; )
3654
3654
  o === r ? ++a > l && (l = a) : a = 1, r = o + t.length, o = n.indexOf(t, r);
3655
3655
  return l;
3656
3656
  }
3657
- function Jr() {
3657
+ function Zr() {
3658
3658
  return {
3659
3659
  enter: {
3660
3660
  mathFlow: e,
@@ -3748,7 +3748,7 @@ function Qr(e) {
3748
3748
  handlers: { math: n, inlineMath: o }
3749
3749
  };
3750
3750
  function n(a, l, c, s) {
3751
- const u = a.value || "", f = c.createTracker(s), m = "$".repeat(Math.max(Zr(u, "$") + 1, 2)), b = c.enter("mathFlow");
3751
+ const u = a.value || "", f = c.createTracker(s), m = "$".repeat(Math.max(Jr(u, "$") + 1, 2)), b = c.enter("mathFlow");
3752
3752
  let p = f.move(m);
3753
3753
  if (a.meta) {
3754
3754
  const y = c.enter("mathFlowMeta");
@@ -3840,7 +3840,7 @@ function ta(e, t, n) {
3840
3840
  }
3841
3841
  function b(g) {
3842
3842
  return e.attempt({
3843
- tokenize: w,
3843
+ tokenize: _,
3844
3844
  partial: !0
3845
3845
  }, v, p)(g);
3846
3846
  }
@@ -3856,17 +3856,17 @@ function ta(e, t, n) {
3856
3856
  function v(g) {
3857
3857
  return e.exit("mathFlow"), t(g);
3858
3858
  }
3859
- function w(g, T, _) {
3859
+ function _(g, T, x) {
3860
3860
  let C = 0;
3861
3861
  return Ee(g, L, "linePrefix", o.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4);
3862
3862
  function L(S) {
3863
3863
  return g.enter("mathFlowFence"), g.enter("mathFlowFenceSequence"), P(S);
3864
3864
  }
3865
3865
  function P(S) {
3866
- return S === 36 ? (C++, g.consume(S), P) : C < l ? _(S) : (g.exit("mathFlowFenceSequence"), Ee(g, q, "whitespace")(S));
3866
+ return S === 36 ? (C++, g.consume(S), P) : C < l ? x(S) : (g.exit("mathFlowFenceSequence"), Ee(g, q, "whitespace")(S));
3867
3867
  }
3868
3868
  function q(S) {
3869
- return S === null || te(S) ? (g.exit("mathFlowFence"), T(S)) : _(S);
3869
+ return S === null || te(S) ? (g.exit("mathFlowFence"), T(S)) : x(S);
3870
3870
  }
3871
3871
  }
3872
3872
  }
@@ -3940,7 +3940,7 @@ function sa(e) {
3940
3940
  /** @type {Processor} */
3941
3941
  this
3942
3942
  ), n = e || la, o = t.data(), r = o.micromarkExtensions || (o.micromarkExtensions = []), a = o.fromMarkdownExtensions || (o.fromMarkdownExtensions = []), l = o.toMarkdownExtensions || (o.toMarkdownExtensions = []);
3943
- r.push(ia(n)), a.push(Jr()), l.push(Qr(n));
3943
+ r.push(ia(n)), a.push(Zr()), l.push(Qr(n));
3944
3944
  }
3945
3945
  function ca(e = {}) {
3946
3946
  var t, n;
@@ -3978,10 +3978,10 @@ function ua({
3978
3978
  retryEnabled: m,
3979
3979
  reference: b
3980
3980
  }) {
3981
- const { t: p } = $(["chat"]), { textComponents: y, remarkPlugins: d, rehypePlugins: v } = re(), w = Le(e.text), g = !o && r && (n === "streaming" || n === "submitted"), T = l || (() => {
3981
+ const { t: p } = $(["chat"]), { textComponents: y, remarkPlugins: d, rehypePlugins: v } = re(), _ = Le(e.text), g = !o && r && (n === "streaming" || n === "submitted"), T = l || (() => {
3982
3982
  });
3983
- return /* @__PURE__ */ x("div", { className: "group py-2 first:pt-4 animate-in-bubble", children: [
3984
- /* @__PURE__ */ i(cn, { from: t.role, children: /* @__PURE__ */ i(un, { dir: w, children: b ? /* @__PURE__ */ i(Ze, { showAction: !1, reference: b, children: /* @__PURE__ */ i(
3983
+ return /* @__PURE__ */ w("div", { className: "group py-2 first:pt-4 animate-in-bubble", children: [
3984
+ /* @__PURE__ */ i(cn, { from: t.role, children: /* @__PURE__ */ i(un, { dir: _, children: b ? /* @__PURE__ */ i(Je, { showAction: !1, reference: b, children: /* @__PURE__ */ i(
3985
3985
  Ce,
3986
3986
  {
3987
3987
  className: k(t.role === "user" && "whitespace-pre-wrap break-words"),
@@ -4000,8 +4000,8 @@ function ua({
4000
4000
  children: e.text
4001
4001
  }
4002
4002
  ) }) }),
4003
- a && !g && /* @__PURE__ */ x(er, { className: k("mt-1.5 ml-0.5", t.role === "user" && "justify-end"), children: [
4004
- t.role === "assistant" && /* @__PURE__ */ x(ce, { children: [
4003
+ a && !g && /* @__PURE__ */ w(er, { className: k("mt-1.5 ml-0.5", t.role === "user" && "justify-end"), children: [
4004
+ t.role === "assistant" && /* @__PURE__ */ w(ce, { children: [
4005
4005
  r && m && /* @__PURE__ */ i(
4006
4006
  Se,
4007
4007
  {
@@ -4011,7 +4011,7 @@ function ua({
4011
4011
  children: /* @__PURE__ */ i(Wn, { className: "size-3" })
4012
4012
  }
4013
4013
  ),
4014
- f && /* @__PURE__ */ x(ce, { children: [
4014
+ f && /* @__PURE__ */ w(ce, { children: [
4015
4015
  /* @__PURE__ */ i(
4016
4016
  Se,
4017
4017
  {
@@ -4073,20 +4073,20 @@ const Tn = ke(null), da = () => {
4073
4073
  prop: a,
4074
4074
  defaultProp: 0
4075
4075
  }), [b, p] = z(!1), [y, d] = z(null);
4076
- Z(() => {
4076
+ J(() => {
4077
4077
  t ? y === null && d(Date.now()) : y !== null && (m(Math.ceil((Date.now() - y) / ha)), d(null));
4078
- }, [t, y, m]), Z(() => {
4078
+ }, [t, y, m]), J(() => {
4079
4079
  if (o && !t && s && !b) {
4080
- const w = setTimeout(() => {
4080
+ const _ = setTimeout(() => {
4081
4081
  u(!1), p(!0);
4082
4082
  }, pa);
4083
4083
  return () => {
4084
- clearTimeout(w);
4084
+ clearTimeout(_);
4085
4085
  };
4086
4086
  }
4087
4087
  }, [t, s, o, u, b]);
4088
- const v = (w) => {
4089
- u(w);
4088
+ const v = (_) => {
4089
+ u(_);
4090
4090
  };
4091
4091
  return /* @__PURE__ */ i(Tn.Provider, { value: { isStreaming: t, isOpen: s, setIsOpen: u, duration: f }, children: /* @__PURE__ */ i(
4092
4092
  it,
@@ -4101,9 +4101,9 @@ const Tn = ke(null), da = () => {
4101
4101
  }
4102
4102
  ), An = Ie(({ className: e, children: t, ...n }) => {
4103
4103
  const { isStreaming: o, isOpen: r, duration: a } = da();
4104
- return /* @__PURE__ */ i(lt, { className: k("flex items-center gap-2 text-muted-foreground text-sm", e), ...n, children: t ?? /* @__PURE__ */ x(ce, { children: [
4104
+ return /* @__PURE__ */ i(lt, { className: k("flex items-center gap-2 text-muted-foreground text-sm", e), ...n, children: t ?? /* @__PURE__ */ w(ce, { children: [
4105
4105
  /* @__PURE__ */ i(Xn, { className: "size-4" }),
4106
- o || a === 0 ? /* @__PURE__ */ i("p", { children: "Thinking..." }) : /* @__PURE__ */ x("p", { children: [
4106
+ o || a === 0 ? /* @__PURE__ */ i("p", { children: "Thinking..." }) : /* @__PURE__ */ w("p", { children: [
4107
4107
  "Thought for ",
4108
4108
  a,
4109
4109
  " ",
@@ -4139,7 +4139,7 @@ function ga({
4139
4139
  lastMessage: r
4140
4140
  }) {
4141
4141
  const a = Le(e.text);
4142
- return /* @__PURE__ */ x(
4142
+ return /* @__PURE__ */ w(
4143
4143
  Cn,
4144
4144
  {
4145
4145
  className: "w-full animate-in-bubble",
@@ -4176,20 +4176,20 @@ function fa({
4176
4176
  return /* @__PURE__ */ i(n ? Yt : "span", { "data-slot": "badge", className: k(ma({ variant: t }), e), ...o });
4177
4177
  }
4178
4178
  function ba({ ...e }) {
4179
- return /* @__PURE__ */ i(J.Root, { "data-slot": "dialog", ...e });
4179
+ return /* @__PURE__ */ i(Z.Root, { "data-slot": "dialog", ...e });
4180
4180
  }
4181
4181
  function ya({ ...e }) {
4182
- return /* @__PURE__ */ i(J.Trigger, { "data-slot": "dialog-trigger", ...e });
4182
+ return /* @__PURE__ */ i(Z.Trigger, { "data-slot": "dialog-trigger", ...e });
4183
4183
  }
4184
4184
  function ka({ ...e }) {
4185
- return /* @__PURE__ */ i(J.Portal, { "data-slot": "dialog-portal", ...e });
4185
+ return /* @__PURE__ */ i(Z.Portal, { "data-slot": "dialog-portal", ...e });
4186
4186
  }
4187
4187
  function fl({ ...e }) {
4188
- return /* @__PURE__ */ i(J.Close, { "data-slot": "dialog-close", ...e });
4188
+ return /* @__PURE__ */ i(Z.Close, { "data-slot": "dialog-close", ...e });
4189
4189
  }
4190
4190
  function va({ className: e, ...t }) {
4191
4191
  return /* @__PURE__ */ i(
4192
- J.Overlay,
4192
+ Z.Overlay,
4193
4193
  {
4194
4194
  "data-slot": "dialog-overlay",
4195
4195
  className: k(
@@ -4200,16 +4200,16 @@ function va({ className: e, ...t }) {
4200
4200
  }
4201
4201
  );
4202
4202
  }
4203
- function wa({
4203
+ function _a({
4204
4204
  className: e,
4205
4205
  children: t,
4206
4206
  showCloseButton: n = !0,
4207
4207
  ...o
4208
4208
  }) {
4209
- return /* @__PURE__ */ x(ka, { "data-slot": "dialog-portal", children: [
4209
+ return /* @__PURE__ */ w(ka, { "data-slot": "dialog-portal", children: [
4210
4210
  /* @__PURE__ */ i(va, {}),
4211
- /* @__PURE__ */ x(
4212
- J.Content,
4211
+ /* @__PURE__ */ w(
4212
+ Z.Content,
4213
4213
  {
4214
4214
  "data-slot": "dialog-content",
4215
4215
  className: k(
@@ -4219,8 +4219,8 @@ function wa({
4219
4219
  ...o,
4220
4220
  children: [
4221
4221
  t,
4222
- n && /* @__PURE__ */ x(
4223
- J.Close,
4222
+ n && /* @__PURE__ */ w(
4223
+ Z.Close,
4224
4224
  {
4225
4225
  "data-slot": "dialog-close",
4226
4226
  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",
@@ -4235,7 +4235,7 @@ function wa({
4235
4235
  )
4236
4236
  ] });
4237
4237
  }
4238
- function xa({ className: e, ...t }) {
4238
+ function wa({ className: e, ...t }) {
4239
4239
  return /* @__PURE__ */ i(
4240
4240
  "div",
4241
4241
  {
@@ -4255,9 +4255,9 @@ function bl({ className: e, ...t }) {
4255
4255
  }
4256
4256
  );
4257
4257
  }
4258
- function _a({ className: e, ...t }) {
4258
+ function xa({ className: e, ...t }) {
4259
4259
  return /* @__PURE__ */ i(
4260
- J.Title,
4260
+ Z.Title,
4261
4261
  {
4262
4262
  "data-slot": "dialog-title",
4263
4263
  className: k("text-xl leading-none font-semibold", e),
@@ -4267,7 +4267,7 @@ function _a({ className: e, ...t }) {
4267
4267
  }
4268
4268
  function yl({ className: e, ...t }) {
4269
4269
  return /* @__PURE__ */ i(
4270
- J.Description,
4270
+ Z.Description,
4271
4271
  {
4272
4272
  "data-slot": "dialog-description",
4273
4273
  className: k("text-muted-foreground text-base", e),
@@ -6178,16 +6178,16 @@ function Va() {
6178
6178
  function p(y) {
6179
6179
  if (!(!y || typeof y == "string"))
6180
6180
  for (var d = 0, v = y.length; d < v; d++) {
6181
- var w = y[d];
6182
- if (w.type !== "code") {
6183
- p(w.content);
6181
+ var _ = y[d];
6182
+ if (_.type !== "code") {
6183
+ p(_.content);
6184
6184
  continue;
6185
6185
  }
6186
- var g = w.content[1], T = w.content[3];
6186
+ var g = _.content[1], T = _.content[3];
6187
6187
  if (g && T && g.type === "code-language" && T.type === "code-block" && typeof g.content == "string") {
6188
- var _ = g.content.replace(/\b#/g, "sharp").replace(/\b\+\+/g, "pp");
6189
- _ = (/[a-z][\w-]*/i.exec(_) || [""])[0].toLowerCase();
6190
- var C = "language-" + _;
6188
+ var x = g.content.replace(/\b#/g, "sharp").replace(/\b\+\+/g, "pp");
6189
+ x = (/[a-z][\w-]*/i.exec(x) || [""])[0].toLowerCase();
6190
+ var C = "language-" + x;
6191
6191
  T.alias ? typeof T.alias == "string" ? T.alias = [T.alias, C] : T.alias.push(C) : T.alias = [C];
6192
6192
  }
6193
6193
  }
@@ -6196,9 +6196,9 @@ function Va() {
6196
6196
  }), n.hooks.add("wrap", function(b) {
6197
6197
  if (b.type === "code-block") {
6198
6198
  for (var p = "", y = 0, d = b.classes.length; y < d; y++) {
6199
- var v = b.classes[y], w = /language-(.+)/.exec(v);
6200
- if (w) {
6201
- p = w[1];
6199
+ var v = b.classes[y], _ = /language-(.+)/.exec(v);
6200
+ if (_) {
6201
+ p = _[1];
6202
6202
  break;
6203
6203
  }
6204
6204
  }
@@ -6212,9 +6212,9 @@ function Va() {
6212
6212
  else if (p && p !== "none" && n.plugins.autoloader) {
6213
6213
  var T = "md-" + (/* @__PURE__ */ new Date()).valueOf() + "-" + Math.floor(Math.random() * 1e16);
6214
6214
  b.attributes.id = T, n.plugins.autoloader.loadLanguages(p, function() {
6215
- var _ = document.getElementById(T);
6216
- _ && (_.innerHTML = n.highlight(
6217
- _.textContent,
6215
+ var x = document.getElementById(T);
6216
+ x && (x.innerHTML = n.highlight(
6217
+ x.textContent,
6218
6218
  n.languages[p],
6219
6219
  p
6220
6220
  ));
@@ -6235,8 +6235,8 @@ function Va() {
6235
6235
  var v;
6236
6236
  return d[1] === "x" ? v = parseInt(d.slice(2), 16) : v = Number(d.slice(1)), f(v);
6237
6237
  } else {
6238
- var w = u[d];
6239
- return w || y;
6238
+ var _ = u[d];
6239
+ return _ || y;
6240
6240
  }
6241
6241
  }), p;
6242
6242
  }
@@ -6270,7 +6270,7 @@ const Ka = ke({
6270
6270
  className: k("relative w-full overflow-hidden rounded-md border bg-background text-foreground", o),
6271
6271
  dir: "ltr",
6272
6272
  ...a,
6273
- children: /* @__PURE__ */ x("div", { className: "relative", children: [
6273
+ children: /* @__PURE__ */ w("div", { className: "relative", children: [
6274
6274
  /* @__PURE__ */ i(
6275
6275
  K,
6276
6276
  {
@@ -6325,34 +6325,34 @@ const Ka = ke({
6325
6325
  ] })
6326
6326
  }
6327
6327
  ) });
6328
- function Za(e, t = "size-4") {
6328
+ function Ja(e, t = "size-4") {
6329
6329
  return {
6330
6330
  web_search: /* @__PURE__ */ i(Qn, { className: t }),
6331
6331
  web_fetch: /* @__PURE__ */ i(Ne, { className: t }),
6332
- code_execution: /* @__PURE__ */ i(Jn, { className: t }),
6333
- image_generation: /* @__PURE__ */ i(Zn, { className: t })
6332
+ code_execution: /* @__PURE__ */ i(Zn, { className: t }),
6333
+ image_generation: /* @__PURE__ */ i(Jn, { className: t })
6334
6334
  }[e] ?? /* @__PURE__ */ i(Kn, { className: t });
6335
6335
  }
6336
- const Ja = ({ className: e, ...t }) => /* @__PURE__ */ i(it, { className: k("not-prose mb-4 w-full rounded-md border", e), ...t }), Qa = ({ status: e }) => {
6336
+ const Za = ({ className: e, ...t }) => /* @__PURE__ */ i(it, { className: k("not-prose mb-4 w-full rounded-md border", e), ...t }), Qa = ({ status: e }) => {
6337
6337
  const { t } = $(["tools_ui"]), n = {
6338
6338
  "input-streaming": t("pending"),
6339
6339
  "input-available": t("running"),
6340
6340
  "output-available": t("completed"),
6341
6341
  "output-error": t("error")
6342
6342
  };
6343
- return /* @__PURE__ */ x(fa, { className: "gap-1.5 rounded-full text-xs", variant: "secondary", children: [
6343
+ return /* @__PURE__ */ w(fa, { className: "gap-1.5 rounded-full text-xs", variant: "secondary", children: [
6344
6344
  {
6345
6345
  "input-streaming": /* @__PURE__ */ i(no, { className: "size-4" }),
6346
6346
  "input-available": /* @__PURE__ */ i(to, { className: "size-4 animate-pulse" }),
6347
6347
  "output-available": /* @__PURE__ */ i(eo, { className: "size-4 text-green-600" }),
6348
- "output-error": /* @__PURE__ */ i(Zt, { className: "size-4 text-red-600" })
6348
+ "output-error": /* @__PURE__ */ i(Jt, { className: "size-4 text-red-600" })
6349
6349
  }[e],
6350
6350
  n[e]
6351
6351
  ] });
6352
6352
  }, ei = ({ className: e, type: t, state: n, toolName: o, ...r }) => {
6353
- const a = o || (t.startsWith("tool-") ? t.slice(5) : t), l = Za(a, "size-4 text-muted-foreground");
6354
- return /* @__PURE__ */ x(lt, { className: k("flex w-full items-center justify-between gap-4 p-3", e), ...r, children: [
6355
- /* @__PURE__ */ x("div", { className: "flex items-center gap-2", children: [
6353
+ const a = o || (t.startsWith("tool-") ? t.slice(5) : t), l = Ja(a, "size-4 text-muted-foreground");
6354
+ return /* @__PURE__ */ w(lt, { className: k("flex w-full items-center justify-between gap-4 p-3", e), ...r, children: [
6355
+ /* @__PURE__ */ w("div", { className: "flex items-center gap-2", children: [
6356
6356
  l,
6357
6357
  /* @__PURE__ */ i("span", { className: "font-medium text-sm", children: a }),
6358
6358
  /* @__PURE__ */ i(Qa, { status: n })
@@ -6378,7 +6378,7 @@ const Ja = ({ className: e, ...t }) => /* @__PURE__ */ i(it, { className: k("not
6378
6378
  return JSON.stringify(e, null, 2);
6379
6379
  }, ni = ({ className: e, input: t, ...n }) => {
6380
6380
  const { t: o } = $(["tools_ui"]);
6381
- return /* @__PURE__ */ x("div", { className: k("space-y-2 overflow-hidden p-4", e), ...n, children: [
6381
+ return /* @__PURE__ */ w("div", { className: k("space-y-2 overflow-hidden p-4", e), ...n, children: [
6382
6382
  /* @__PURE__ */ i("h4", { className: "font-medium text-muted-foreground text-xs uppercase tracking-wide", children: o("parameters") }),
6383
6383
  /* @__PURE__ */ i("div", { className: "rounded-md bg-muted/50", children: /* @__PURE__ */ i(nt, { code: Rn(t), language: "json" }) })
6384
6384
  ] });
@@ -6400,18 +6400,18 @@ const Ja = ({ className: e, ...t }) => /* @__PURE__ */ i(it, { className: k("not
6400
6400
  }
6401
6401
  return typeof t == "object" && t !== null && !("$$typeof" in t) ? /* @__PURE__ */ i(nt, { code: JSON.stringify(t, null, 2), language: "json" }) : t;
6402
6402
  };
6403
- return /* @__PURE__ */ x("div", { className: k("space-y-2 p-4", e), ...o, children: [
6403
+ return /* @__PURE__ */ w("div", { className: k("space-y-2 p-4", e), ...o, children: [
6404
6404
  /* @__PURE__ */ i("h4", { className: "font-medium text-muted-foreground text-xs uppercase tracking-wide", children: r(n ? "error" : "result") }),
6405
- n && /* @__PURE__ */ x(ba, { children: [
6406
- /* @__PURE__ */ i(ya, { asChild: !0, children: /* @__PURE__ */ x(pe, { variant: "destructive", size: "sm", children: [
6407
- /* @__PURE__ */ i(Zt, { className: "mr-1.5 size-4" }),
6405
+ n && /* @__PURE__ */ w(ba, { children: [
6406
+ /* @__PURE__ */ i(ya, { asChild: !0, children: /* @__PURE__ */ w(pe, { variant: "destructive", size: "sm", children: [
6407
+ /* @__PURE__ */ i(Jt, { className: "mr-1.5 size-4" }),
6408
6408
  r("view_error")
6409
6409
  ] }) }),
6410
- /* @__PURE__ */ x(wa, { className: "max-w-2xl", children: [
6411
- /* @__PURE__ */ i(xa, { children: /* @__PURE__ */ i(_a, { className: "text-destructive", children: r("tool_error") }) }),
6412
- /* @__PURE__ */ x("div", { className: "space-y-4", children: [
6410
+ /* @__PURE__ */ w(_a, { className: "max-w-2xl", children: [
6411
+ /* @__PURE__ */ i(wa, { children: /* @__PURE__ */ i(xa, { className: "text-destructive", children: r("tool_error") }) }),
6412
+ /* @__PURE__ */ w("div", { className: "space-y-4", children: [
6413
6413
  /* @__PURE__ */ i("div", { className: "max-h-96 overflow-auto rounded-md bg-destructive/10 p-4 text-destructive text-sm", children: /* @__PURE__ */ i("pre", { className: "whitespace-pre-wrap break-words", children: Rn(n) }) }),
6414
- /* @__PURE__ */ x(pe, { variant: "outline", size: "sm", onClick: c, children: [
6414
+ /* @__PURE__ */ w(pe, { variant: "outline", size: "sm", onClick: c, children: [
6415
6415
  /* @__PURE__ */ i(Kt, { className: "mr-1.5 size-4" }),
6416
6416
  r(a ? "copied" : "copy_error")
6417
6417
  ] })
@@ -6447,9 +6447,9 @@ function ri({
6447
6447
  const c = o[l];
6448
6448
  return /* @__PURE__ */ i(c, { part: e, message: t, chat: n });
6449
6449
  }
6450
- return r ? /* @__PURE__ */ x(Ja, { className: "animate-in-bubble", children: [
6450
+ return r ? /* @__PURE__ */ w(Za, { className: "animate-in-bubble", children: [
6451
6451
  /* @__PURE__ */ i(ei, { type: e.type, state: a.state, toolName: l }),
6452
- /* @__PURE__ */ x(ti, { children: [
6452
+ /* @__PURE__ */ w(ti, { children: [
6453
6453
  /* @__PURE__ */ i(ni, { input: a.input }),
6454
6454
  (a.state === "output-available" || a.state === "output-error") && /* @__PURE__ */ i(oi, { errorText: a.errorText, output: a.output })
6455
6455
  ] })
@@ -6464,7 +6464,7 @@ function ai({
6464
6464
  const s = document.createElement("a");
6465
6465
  s.href = o.url, s.download = a, document.body.appendChild(s), s.click(), document.body.removeChild(s);
6466
6466
  };
6467
- return /* @__PURE__ */ i("div", { className: "py-2 animate-in-bubble", children: /* @__PURE__ */ i(cn, { from: t.role, children: /* @__PURE__ */ i(un, { isPlain: !0, children: r ? /* @__PURE__ */ x("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: [
6467
+ return /* @__PURE__ */ i("div", { className: "py-2 animate-in-bubble", children: /* @__PURE__ */ i(cn, { from: t.role, children: /* @__PURE__ */ i(un, { 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: [
6468
6468
  /* @__PURE__ */ i(
6469
6469
  "img",
6470
6470
  {
@@ -6473,7 +6473,7 @@ function ai({
6473
6473
  className: "max-h-[280px] w-full rounded-xl object-cover transition-transform duration-500 group-hover:scale-105"
6474
6474
  }
6475
6475
  ),
6476
- /* @__PURE__ */ x("div", { className: "absolute inset-x-0 bottom-0 p-3 bg-gradient-to-t from-black/80 via-black/40 to-transparent opacity-0 group-hover:opacity-100 transition-opacity flex items-center justify-between", children: [
6476
+ /* @__PURE__ */ w("div", { className: "absolute inset-x-0 bottom-0 p-3 bg-gradient-to-t from-black/80 via-black/40 to-transparent opacity-0 group-hover:opacity-100 transition-opacity flex items-center justify-between", children: [
6477
6477
  /* @__PURE__ */ i("span", { className: "text-[10px] text-white truncate max-w-[150px] font-medium drop-shadow-sm", children: a }),
6478
6478
  /* @__PURE__ */ i(
6479
6479
  "button",
@@ -6493,9 +6493,9 @@ function ai({
6493
6493
  children: /* @__PURE__ */ i(Ne, { className: "size-4" })
6494
6494
  }
6495
6495
  ) })
6496
- ] }) : /* @__PURE__ */ i("div", { className: "flex flex-col gap-1.5", children: /* @__PURE__ */ x("div", { className: "group inline-flex items-center gap-3 rounded-xl p-3 text-sm transition-all duration-300 bg-secondary/10 border border-border/5 hover:border-primary/30 hover:bg-secondary/20 hover:shadow-[0_0_15px_var(--glow)]", children: [
6496
+ ] }) : /* @__PURE__ */ i("div", { className: "flex flex-col gap-1.5", children: /* @__PURE__ */ w("div", { className: "group inline-flex items-center gap-3 rounded-xl p-3 text-sm transition-all duration-300 bg-secondary/10 border border-border/5 hover:border-primary/30 hover:bg-secondary/20 hover:shadow-[0_0_15px_var(--glow)]", children: [
6497
6497
  /* @__PURE__ */ i("div", { className: "p-2.5 rounded-lg bg-background/50 border border-border/10 group-hover:border-primary/20 group-hover:text-primary transition-colors", children: /* @__PURE__ */ i(Xt, { className: "size-4 shrink-0" }) }),
6498
- /* @__PURE__ */ x("div", { className: "flex flex-col min-w-0 mr-4", children: [
6498
+ /* @__PURE__ */ w("div", { className: "flex flex-col min-w-0 mr-4", children: [
6499
6499
  /* @__PURE__ */ i("span", { className: "truncate max-w-[180px] font-semibold text-foreground/90 leading-none mb-1 group-hover:text-foreground transition-colors", children: a }),
6500
6500
  (o.mediaType || o.media_type) && /* @__PURE__ */ i("span", { className: "text-[10px] text-muted-foreground uppercase font-bold tracking-widest opacity-60", children: (o.mediaType || o.media_type).split("/").pop() })
6501
6501
  ] }),
@@ -6514,7 +6514,7 @@ function ii({ part: e, message: t }) {
6514
6514
  const { t: n } = $(["chat"]), { focusReference: o } = at(), [r, a] = z(!1), l = e.data || e.reference;
6515
6515
  if (!l) return null;
6516
6516
  const c = l.excerpt || l.label || n("source_unavailable"), s = l.label && l.label !== c ? l.label : n("referenced_context");
6517
- return /* @__PURE__ */ i("div", { className: k("my-1.5 flex", t.role === "user" && "justify-end"), children: /* @__PURE__ */ x(
6517
+ return /* @__PURE__ */ i("div", { className: k("my-1.5 flex", t.role === "user" && "justify-end"), children: /* @__PURE__ */ w(
6518
6518
  "button",
6519
6519
  {
6520
6520
  type: "button",
@@ -6908,7 +6908,7 @@ try {
6908
6908
  }
6909
6909
  const Fn = ["querystring", "cookie", "localStorage", "sessionStorage", "navigator", "htmlTag"];
6910
6910
  Ln || Fn.splice(1, 1);
6911
- const wi = () => ({
6911
+ const _i = () => ({
6912
6912
  order: Fn,
6913
6913
  lookupQuerystring: "lng",
6914
6914
  lookupCookie: "i18next",
@@ -6930,7 +6930,7 @@ class Dn {
6930
6930
  let t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {
6931
6931
  languageUtils: {}
6932
6932
  }, n = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, o = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
6933
- this.services = t, this.options = ci(n, this.options || {}, wi()), typeof this.options.convertDetectedLanguage == "string" && this.options.convertDetectedLanguage.indexOf("15897") > -1 && (this.options.convertDetectedLanguage = (r) => r.replace("-", "_")), this.options.lookupFromUrlIndex && (this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex), this.i18nOptions = o, this.addDetector(pi), this.addDetector(hi), this.addDetector(mi), this.addDetector(fi), this.addDetector(bi), this.addDetector(yi), this.addDetector(ki), this.addDetector(vi), this.addDetector(gi);
6933
+ this.services = t, this.options = ci(n, this.options || {}, _i()), typeof this.options.convertDetectedLanguage == "string" && this.options.convertDetectedLanguage.indexOf("15897") > -1 && (this.options.convertDetectedLanguage = (r) => r.replace("-", "_")), this.options.lookupFromUrlIndex && (this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex), this.i18nOptions = o, this.addDetector(pi), this.addDetector(hi), this.addDetector(mi), this.addDetector(fi), this.addDetector(bi), this.addDetector(yi), this.addDetector(ki), this.addDetector(vi), this.addDetector(gi);
6934
6934
  }
6935
6935
  addDetector(t) {
6936
6936
  return this.detectors[t.name] = t, this;
@@ -6952,16 +6952,16 @@ class Dn {
6952
6952
  }
6953
6953
  }
6954
6954
  Dn.type = "languageDetector";
6955
- const xi = { 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" }, _i = { 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", reference: "Reference", reference_selection: "Reference selection", remove_reference: "Remove reference", referenced_context: "Referenced context", source_unavailable: "Source unavailable", tool_reference: "Tool reference", card_reference: "Card reference", 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." }, Si = { 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" }, Ei = { login_tab: "Login", signup_tab: "Sign Up", phone: "Phone", phone_placeholder: "Phone number", password: "Password", name: "Name", name_placeholder: "First Name", surname: "Surname", surname_placeholder: "Last Name", loading: "Loading...", logging_in: "Logging in...", signing_up: "Signing up...", auth_page_disabled_title: "The sign-in page is currently disabled.", auth_page_disabled_description: "Please contact the administrator for access.", select_placeholder: "Select an option", login_button: "Login", signup_button: "Sign Up" }, Ni = { toggle: "Change theme", light: "Switch to light theme", dark: "Switch to dark theme", system: "Switch to system theme" }, Ti = { select_placeholder: "Select an option", loading: "Loading...", retry: "Retry", save: "Save", saving: "Saving...", cancel: "Cancel", delete: "Delete", edit: "Edit", search: "Search", search_placeholder: "Search...", no_data: "No data available", loading_more: "Loading more...", confirm_delete: "Are you sure you want to delete?", error_loading: "Error loading data", dashboard: { title: "Admin Panel", logout: "Logout", tabs: { analytics: "Analytics", chat_history: "Chats", users: "Users", admins: "Admins", settings: "Settings" } }, app_settings: { title: "System Settings", subtitle: "Manage global configuration for application appearance and behavior.", sections: { general: "Basic Information", chat: "Chat Experience", user_billing: "User & Billing" }, general: { app_name: "App Name", admin_title: "Admin Panel Title", language: "Default Language", language_help: "The language users see on their first visit (if not auto-detected).", appearance: "Default Appearance", appearance_help: "These values apply when a user has not saved their own appearance preferences.", default_theme: "Default Theme", default_accent: "Default Accent Color", default_accent_help: "Enter any browser-supported CSS color, such as #3b82f6, rgb(59 130 246), or oklch(0.623 0.214 259.815).", default_accent_invalid: "Enter a valid browser-supported CSS color.", default_accent_preview: "Accent color preview" }, chat: { welcome_greeting: "Welcome Greeting", welcome_subtitle: "Welcome Subtitle", disclaimer: "Disclaimer Text", show_tool_details: "Show technical tool details", show_tool_details_help: "Enable this to show professional technical details of AI tools to users.", show_settings: "Show settings icon for users", show_settings_help: "Show a settings gear icon in the chat interface for user customization.", show_version_in_settings: "Show app version in user settings", show_version_in_settings_help: "Show the app version at the bottom of the user settings dialog. This does not affect the admin settings page.", disable_signup: "Disable signup", disable_signup_help: "Hide the signup tab so users can only log in.", disable_auth_page: "Disable login/signup page", disable_auth_page_help: "Hide the entire auth page and prevent users from reaching login or signup forms.", composer_attachments: "Enable File Attachments", composer_attachments_help: "Allow users to upload and attach files to their messages.", thread_actions_feedback: "Enable Feedback Buttons", thread_actions_feedback_help: "Show like/dislike buttons on AI responses.", thread_actions_retry: "Enable Retry Button", thread_actions_retry_help: "Show a retry button to regenerate the last AI response.", history_enabled: "Enable Chat History Sidebar", history_enabled_help: "Show the sidebar containing previous conversations.", history_show_delete: "Allow Deleting Conversations", history_show_rename: "Allow Renaming Conversations", history_show_share: "Allow Sharing Conversations", history_show_pin: "Allow Pinning Conversations", sections_modes: "Settings Tab Modes", sections_modes_help: "Control visibility and interactability of settings tabs for users.", mode_editable: "Enable (Editable)", mode_faded: "Fade (Readonly)", mode_hidden: "Hide (Disable)", general_tab: "General Tab", profile_tab: "Profile Tab", account_tab: "Account Tab", inner_fields_modes: "Inner Fields Visibility", inner_fields_modes_help: "Configure visibility for individual fields within each tab." }, user_billing: { initial_balance_tokens: "Default Initial Tokens", initial_balance_requests: "Default Initial Requests", initial_balance_help: "These values will be assigned to new users by default if not specified during creation." }, save_success: "Settings saved successfully", save_error: "Failed to save settings", save: "Save Changes", translations_management: "Translations Management", editor_tips: "All changes are saved automatically to local state. Don't forget to push 'Save Changes' to persist.", sync_from_code: "Sync from Code", reset_button: "Reset to Defaults", reset_confirm_title: "Reset Settings?", reset_confirm_description: "This will reset all fields to their original default values from the code. Current unsaved changes will be lost.", preview: "Preview", tips_label: "TIPS" }, analytics: { title: "Analytics & Statistics", days: "{{count}} Days", total_users: "Total Users", total_threads: "Total Threads", total_messages: "Total Messages", total_token_usage: "Total Token Usage", usage_cost: "Usage & Cost", input: "Input", output: "Output", cost: "Cost", threads_chart: "Threads", messages_chart: "Messages", token_usage_chart: "Token Usage", cost_chart: "Cost Per Day", 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}}", cost: "Cost: {{value}}", unpriced: "Unpriced", all_feedbacks: "All Conversations", liked_feedbacks: "Liked 👍", disliked_feedbacks: "Disliked 👎", any_feedback: "With Feedback", output_available: "Output Available", running: "Running...", unnamed_file: "Unnamed File", download_file: "Download File" }, users: { title: "User Management", user_count: "User count: {{count}}", add_user: "Add New User", edit_user: "Edit User", phone: "Phone Number", phone_placeholder: "09123456789", name: "Name", surname: "Surname", initial_tokens: "Initial Tokens (optional)", initial_requests: "Initial Requests (optional)", balance: "Balance", requests_label: "Requests", tokens_label: "Tokens", token_limit: "Token Limit", request_limit: "Request Limit", tokens_usage: "Tokens Usage", requests_usage: "Requests Usage", actions: "Actions", copy_token: "Copy Token (auto-refresh)", token_copied: "Token copied successfully", no_token: "No token found for this user", recharge: "Recharge Balance", full_charge: "Full Charge", update_balance: "Update Balance", update_balance_for: "Update Balance for", token_count: "Token Count", request_count: "Request Count", updating: "Updating...", no_users: "No users found.", sort_ascending: "Sort ascending", sort_descending: "Sort descending", confirm_delete_user: "Are you sure you want to delete this user?", tokens_exceed_limit: "Tokens cannot exceed the specified limit", requests_exceed_limit: "Requests cannot exceed the specified limit", metadata: "Metadata (JSON)", initial_balance: "Initial Balance", custom_fields: "Additional Fields", metadata_raw: "Metadata (Raw JSON)", advanced_usage: "Advanced usage", invalid_json: "Invalid JSON format", auto_recharge: "Automatic Balance Renewal", auto_recharge_help: "Restore this user's balance to its limits on a recurring schedule.", enabled: "Enabled", recharge_interval: "Every", recharge_unit: "Interval Unit", recharge_unit_minute: "Minute(s)", recharge_unit_hour: "Hour(s)", recharge_unit_day: "Day(s)", recharge_unit_week: "Week(s)", recharge_unit_month: "Month(s)", recharge_schedule_help: "New schedules begin when saved. Existing schedules keep their current cycle anchor.", next_recharge: "Next renewal", last_recharge: "Last automatic renewal", not_available: "Not available", recharge_interval_invalid: "The renewal interval must be a positive whole number", recharge_policy_not_saved: "The backend did not save the renewal policy. Restart or update the backend to the version that supports automatic renewal.", usage_summary: "Usage Summary", input_tokens: "Input Tokens", output_tokens: "Output Tokens", total_tokens: "Total Tokens", requests_made: "Requests Made", total_cost: "Total Cost", renewals: "Balance Renewals", unpriced_requests: "Unpriced Requests" }, 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" } }, Ci = { 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" } }, Ai = { unauthorized: "Authentication required. Please login again.", invalid_credentials: "Invalid phone number or password.", phone_required: "Phone number is required.", password_required: "Password is required.", name_surname_required: "Name and surname are required.", phone_already_exists: "This phone number is already registered.", invalid_token: "Your session has expired. Please login again.", user_not_found: "User not found.", insufficient_balance: "Insufficient balance. Please recharge your account.", me_update_failed: "Failed to update profile information.", thread_not_found: "Conversation not found.", access_denied: "You do not have permission to perform this action.", feedback_save_failed: "Failed to save feedback.", thread_update_failed: "Failed to update conversation.", thread_delete_failed: "Failed to delete conversation.", attachment_not_found: "Attachment not found.", thread_share_failed: "Failed to share conversation.", model_quota_reached_error: "The system cannot respond at this time. Please try again later.", admin_already_exists: "Admin with this username already exists.", admin_not_found: "Admin not found.", cannot_delete_self: "You cannot delete your own admin account.", admin_update_failed: "Failed to update admin information.", internal_error: "An internal server error occurred. Please try again later.", validation_error: "Invalid data provided. Please check your input.", not_found: "The requested resource was not found." }, Ii = {
6956
- sidebar: xi,
6957
- chat: _i,
6955
+ const wi = { 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" }, xi = { 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", reference: "Reference", reference_selection: "Reference selection", remove_reference: "Remove reference", referenced_context: "Referenced context", source_unavailable: "Source unavailable", tool_reference: "Tool reference", card_reference: "Card reference", 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." }, Si = { 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" }, Ei = { login_tab: "Login", signup_tab: "Sign Up", phone: "Phone", phone_placeholder: "Phone number", password: "Password", name: "Name", name_placeholder: "First Name", surname: "Surname", surname_placeholder: "Last Name", loading: "Loading...", logging_in: "Logging in...", signing_up: "Signing up...", auth_page_disabled_title: "The sign-in page is currently disabled.", auth_page_disabled_description: "Please contact the administrator for access.", select_placeholder: "Select an option", login_button: "Login", signup_button: "Sign Up" }, Ni = { toggle: "Change theme", light: "Switch to light theme", dark: "Switch to dark theme", system: "Switch to system theme" }, Ti = /* @__PURE__ */ JSON.parse(`{"select_placeholder":"Select an option","loading":"Loading...","retry":"Retry","save":"Save","saving":"Saving...","cancel":"Cancel","delete":"Delete","edit":"Edit","search":"Search","search_placeholder":"Search...","no_data":"No data available","loading_more":"Loading more...","confirm_delete":"Are you sure you want to delete?","error_loading":"Error loading data","dashboard":{"title":"Admin Panel","logout":"Logout","tabs":{"analytics":"Analytics","chat_history":"Chats","users":"Users","admins":"Admins","settings":"Settings"}},"app_settings":{"title":"System Settings","subtitle":"Manage global configuration for application appearance and behavior.","sections":{"general":"Basic Information","chat":"Chat Experience","user_billing":"User & Billing"},"general":{"app_name":"App Name","admin_title":"Admin Panel Title","language":"Default Language","language_help":"The language users see on their first visit (if not auto-detected).","appearance":"Default Appearance","appearance_help":"These values apply when a user has not saved their own appearance preferences.","default_theme":"Default Theme","default_accent":"Default Accent Color","default_accent_help":"Enter any browser-supported CSS color, such as #3b82f6, rgb(59 130 246), or oklch(0.623 0.214 259.815).","default_accent_invalid":"Enter a valid browser-supported CSS color.","default_accent_preview":"Accent color preview"},"chat":{"welcome_greeting":"Welcome Greeting","welcome_subtitle":"Welcome Subtitle","disclaimer":"Disclaimer Text","show_tool_details":"Show technical tool details","show_tool_details_help":"Enable this to show professional technical details of AI tools to users.","show_settings":"Show settings icon for users","show_settings_help":"Show a settings gear icon in the chat interface for user customization.","show_version_in_settings":"Show app version in user settings","show_version_in_settings_help":"Show the app version at the bottom of the user settings dialog. This does not affect the admin settings page.","disable_signup":"Disable signup","disable_signup_help":"Hide the signup tab so users can only log in.","disable_auth_page":"Disable login/signup page","disable_auth_page_help":"Hide the entire auth page and prevent users from reaching login or signup forms.","composer_attachments":"Enable File Attachments","composer_attachments_help":"Allow users to upload and attach files to their messages.","thread_actions_feedback":"Enable Feedback Buttons","thread_actions_feedback_help":"Show like/dislike buttons on AI responses.","thread_actions_retry":"Enable Retry Button","thread_actions_retry_help":"Show a retry button to regenerate the last AI response.","history_enabled":"Enable Chat History Sidebar","history_enabled_help":"Show the sidebar containing previous conversations.","history_show_delete":"Allow Deleting Conversations","history_show_rename":"Allow Renaming Conversations","history_show_share":"Allow Sharing Conversations","history_show_pin":"Allow Pinning Conversations","sections_modes":"Settings Tab Modes","sections_modes_help":"Control visibility and interactability of settings tabs for users.","mode_editable":"Enable (Editable)","mode_faded":"Fade (Readonly)","mode_hidden":"Hide (Disable)","general_tab":"General Tab","profile_tab":"Profile Tab","account_tab":"Account Tab","inner_fields_modes":"Inner Fields Visibility","inner_fields_modes_help":"Configure visibility for individual fields within each tab."},"user_billing":{"initial_balance_tokens":"Default Initial Tokens","initial_balance_requests":"Default Initial Requests","initial_balance_help":"These values will be assigned to new users by default if not specified during creation."},"save_success":"Settings saved successfully","save_error":"Failed to save settings","save":"Save Changes","translations_management":"Translations Management","editor_tips":"All changes are saved automatically to local state. Don't forget to push 'Save Changes' to persist.","sync_from_code":"Sync from Code","reset_button":"Reset to Defaults","reset_confirm_title":"Reset Settings?","reset_confirm_description":"This will reset all fields to their original default values from the code. Current unsaved changes will be lost.","preview":"Preview","tips_label":"TIPS"},"analytics":{"title":"Analytics & Statistics","days":"{{count}} Days","total_users":"Total Users","total_threads":"Total Threads","total_messages":"Total Messages","total_token_usage":"Total Token Usage","usage_cost":"Usage & Cost","input":"Input","output":"Output","cost":"Cost","threads_chart":"Threads","messages_chart":"Messages","token_usage_chart":"Token Usage","cost_chart":"Cost Per Day","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}}","cost":"Cost: {{value}}","unpriced":"Unpriced","all_feedbacks":"All Conversations","liked_feedbacks":"Liked 👍","disliked_feedbacks":"Disliked 👎","any_feedback":"With Feedback","output_available":"Output Available","running":"Running...","unnamed_file":"Unnamed File","download_file":"Download File"},"users":{"title":"User Management","user_count":"User count: {{count}}","add_user":"Add New User","edit_user":"Edit User","phone":"Phone Number","phone_placeholder":"09123456789","name":"Name","surname":"Surname","initial_tokens":"Initial Tokens (optional)","initial_requests":"Initial Requests (optional)","balance":"Balance","requests_label":"Requests","tokens_label":"Tokens","token_limit":"Token Limit","request_limit":"Request Limit","tokens_usage":"Tokens Usage","requests_usage":"Requests Usage","actions":"Actions","copy_token":"Copy Token (auto-refresh)","token_copied":"Token copied successfully","no_token":"No token found for this user","recharge":"Recharge Balance","full_charge":"Full Charge","update_balance":"Update Balance","update_balance_for":"Update Balance for","token_count":"Token Count","request_count":"Request Count","updating":"Updating...","no_users":"No users found.","sort_ascending":"Sort ascending","sort_descending":"Sort descending","confirm_delete_user":"Are you sure you want to delete this user?","tokens_exceed_limit":"Tokens cannot exceed the specified limit","requests_exceed_limit":"Requests cannot exceed the specified limit","metadata":"Metadata (JSON)","initial_balance":"Initial Balance","custom_fields":"Additional Fields","metadata_raw":"Metadata (Raw JSON)","advanced_usage":"Advanced usage","invalid_json":"Invalid JSON format","auto_recharge":"Automatic Balance Renewal","auto_recharge_help":"Restore this user's balance to its limits on a recurring schedule.","enabled":"Enabled","recharge_interval":"Every","recharge_unit":"Interval Unit","recharge_unit_minute":"Minute(s)","recharge_unit_hour":"Hour(s)","recharge_unit_day":"Day(s)","recharge_unit_week":"Week(s)","recharge_unit_month":"Month(s)","recharge_schedule_help":"New schedules begin when saved. Existing schedules keep their current cycle anchor.","next_recharge":"Next renewal","last_recharge":"Last automatic renewal","not_available":"Not available","recharge_interval_invalid":"The renewal interval must be a positive whole number","recharge_policy_not_saved":"The backend did not save the renewal policy. Restart or update the backend to the version that supports automatic renewal.","usage_summary":"Usage Summary","input_tokens":"Input Tokens","output_tokens":"Output Tokens","total_tokens":"Total Tokens","requests_made":"Requests Made","total_cost":"Total Cost","renewals":"Balance Renewals","unpriced_requests":"Unpriced Requests","bulk_balance":"Bulk Balance","bulk_balance_help":"Apply a balance change to all matching users using search, explicit IDs, and metadata filters.","bulk_operation":"Operation","bulk_operation_add":"Add to balance","bulk_operation_set":"Set exact balance","bulk_operation_full_charge":"Fill to limits","bulk_use_current_search":"Use current search text","bulk_user_ids":"User IDs (optional)","bulk_metadata_filters":"Metadata Filters (JSON)","bulk_available_metadata":"Available metadata keys","bulk_preview_empty":"Affected users will be checked before applying.","bulk_preview_count":"{{count}} users match","apply_bulk_balance":"Apply Change","bulk_balance_confirm":"Apply this balance change to {{count}} users?","matching_users":"matching","bulk_apply_balance":"Update balances","bulk_apply_renewal":"Update renewal policy","bulk_select_change":"Select at least one bulk change to apply.","bulk_renewal_policy":"Renewal Policy","bulk_renewal_policy_help":"Enable or disable automatic renewal for every matched user.","bulk_renewal_anchor":"First renewal time (optional)"},"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"}}`), Ci = { 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" } }, Ai = { unauthorized: "Authentication required. Please login again.", invalid_credentials: "Invalid phone number or password.", phone_required: "Phone number is required.", password_required: "Password is required.", name_surname_required: "Name and surname are required.", phone_already_exists: "This phone number is already registered.", invalid_token: "Your session has expired. Please login again.", user_not_found: "User not found.", insufficient_balance: "Insufficient balance. Please recharge your account.", me_update_failed: "Failed to update profile information.", thread_not_found: "Conversation not found.", access_denied: "You do not have permission to perform this action.", feedback_save_failed: "Failed to save feedback.", thread_update_failed: "Failed to update conversation.", thread_delete_failed: "Failed to delete conversation.", attachment_not_found: "Attachment not found.", thread_share_failed: "Failed to share conversation.", model_quota_reached_error: "The system cannot respond at this time. Please try again later.", admin_already_exists: "Admin with this username already exists.", admin_not_found: "Admin not found.", cannot_delete_self: "You cannot delete your own admin account.", admin_update_failed: "Failed to update admin information.", internal_error: "An internal server error occurred. Please try again later.", validation_error: "Invalid data provided. Please check your input.", not_found: "The requested resource was not found." }, Ii = {
6956
+ sidebar: wi,
6957
+ chat: xi,
6958
6958
  tools_ui: Si,
6959
6959
  login: Ei,
6960
6960
  theme: Ni,
6961
6961
  admin: Ti,
6962
6962
  settings: Ci,
6963
6963
  errors: Ai
6964
- }, Ri = { 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: "اشتراک‌گذاری" }, Oi = { tools: "ابزارها", error: "خطا:", input_placeholder: "سوالتو اینجا بپرس...", insufficient_balance: "موجودی حساب شما کافی نیست. لطفا برای ادامه، حساب خود را شارژ کنید.", regenerate: "تولید مجدد", retry: "تلاش مجدد", copy: "کپی", like: "پسندیدم", dislike: "نپسندیدم", attach_file: "پیوست فایل", remove_file: "حذف فایل", reference: "ارجاع", reference_selection: "ارجاع به بخش انتخاب‌شده", remove_reference: "حذف ارجاع", referenced_context: "بخش ارجاع‌شده", source_unavailable: "منبع در دسترس نیست", tool_reference: "ارجاع به ابزار", card_reference: "ارجاع به کارت", used_sources: "از {{count}} منبع استفاده شد", welcome: { title: "سلام! چطور می‌تونم کمکت کنم؟", subtitle: "هر سوالی داری بپرس، تمام تلاشمو می‌کنم کمکت کنم.", suggestions: ["چه کارهایی می‌تونی انجام بدی؟", "یه چیز جالب بهم بگو", "کمکم کن یه ایمیل بنویسم", "یه مفهوم رو برام توضیح بده"] }, disclaimer: "هوش مصنوعی ممکن است اشتباه کند. اطلاعات مهم را بررسی کنید." }, Li = { pending: "در انتظار", running: "در حال اجرا", completed: "تکمیل شده", error: "خطا", parameters: "پارامترها", result: "نتیجه", view_error: "نمایش خطا", tool_error: "خطای ابزار", copied: "کپی شد!", copy_error: "کپی خطا" }, Fi = { login_tab: "ورود", signup_tab: "ثبت نام", phone: "شماره تلفن", phone_placeholder: "شماره تلفن", password: "رمز عبور", name: "نام", name_placeholder: "نام", surname: "نام خانوادگی", surname_placeholder: "نام خانوادگی", logging_in: "در حال ورود...", signing_up: "در حال ثبت نام...", auth_page_disabled_title: "صفحه ورود غیرفعال شده است.", auth_page_disabled_description: "برای دسترسی با مدیر سامانه تماس بگیرید.", select_placeholder: "انتخاب کنید", login_button: "ورود", signup_button: "ثبت نام" }, Di = { toggle: "تغییر تم", light: "تغییر به تم روشن", dark: "تغییر به تم تاریک", system: "تغییر به تم سیستم" }, Pi = { select_placeholder: "انتخاب کنید", loading: "در حال بارگذاری...", retry: "تلاش مجدد", save: "ذخیره", saving: "در حال ذخیره...", cancel: "انصراف", delete: "حذف", edit: "ویرایش", search: "جستجو", search_placeholder: "جستجو...", no_data: "داده‌ای موجود نیست", loading_more: "در حال بارگذاری بیشتر...", confirm_delete: "آیا از حذف اطمینان دارید؟", error_loading: "خطا در بارگذاری داده‌ها", dashboard: { title: "پنل ادمین", logout: "خروج", tabs: { analytics: "تحلیل و آمار", chat_history: "گفتگوها", users: "کاربران", admins: "ادمین‌ها", settings: "تنظیمات" } }, app_settings: { title: "تنظیمات سامانه", subtitle: "پیکربندی کلی ظاهر و رفتار سامانه را مدیریت کنید.", sections: { general: "اطلاعات پایه", chat: "تنظیمات گفتگو", user_billing: "کاربری و مالی" }, general: { app_name: "نام سامانه", admin_title: "عنوان پنل ادمین", language: "زبان پیش‌فرض", language_help: "زبانی که کاربر در اولین ورود مشاهده می‌کند (در صورت عدم تشخیص خودکار).", appearance: "ظاهر پیش‌فرض", appearance_help: "این مقادیر زمانی اعمال می‌شوند که کاربر تنظیمات ظاهری خود را ذخیره نکرده باشد.", default_theme: "پوسته پیش‌فرض", default_accent: "رنگ اصلی پیش‌فرض", default_accent_help: "هر رنگ CSS پشتیبانی‌شده توسط مرورگر را وارد کنید؛ مانند #3b82f6 یا rgb(59 130 246).", default_accent_invalid: "یک رنگ CSS معتبر و پشتیبانی‌شده توسط مرورگر وارد کنید.", default_accent_preview: "پیش‌نمایش رنگ اصلی" }, chat: { welcome_greeting: "پیام خوش‌آمدگویی", welcome_subtitle: "زیرعنوان خوش‌آمدگویی", disclaimer: "متن سلب مسئولیت", show_tool_details: "نمایش جزئیات فنی ابزارها (Tools)", show_tool_details_help: "برای نمایش جزئیات فنی و نحوه عملکرد ابزارهای هوش مصنوعی به کاربران، این گزینه را فعال کنید.", show_settings: "نمایش آیکون تنظیمات برای کاربران", show_settings_help: "نمایش چرخ‌دنده تنظیمات در محیط چت برای شخصی‌سازی توسط کاربر.", show_version_in_settings: "نمایش نسخه برنامه در تنظیمات کاربر", show_version_in_settings_help: "نسخه برنامه را در پایین پنجره تنظیمات کاربر نمایش می‌دهد. این گزینه روی صفحه تنظیمات ادمین اثری ندارد.", disable_signup: "غیرفعال‌سازی ثبت‌نام", disable_signup_help: "تب ثبت‌نام را مخفی می‌کند تا کاربران فقط بتوانند وارد شوند.", disable_auth_page: "غیرفعال‌سازی صفحه ورود/ثبت‌نام", disable_auth_page_help: "کل صفحه احراز هویت را مخفی می‌کند و دسترسی به فرم‌های ورود و ثبت‌نام را می‌بندد.", composer_attachments: "فعال‌سازی پیوست فایل", composer_attachments_help: "اجازه به کاربران برای آپلود و پیوست فایل به پیام‌ها.", thread_actions_feedback: "فعال‌سازی دکمه‌های بازخورد", thread_actions_feedback_help: "نمایش دکمه‌های پسندیدن/نپسندیدن در پاسخ‌های هوش مصنوعی.", thread_actions_retry: "فعال‌سازی دکمه تلاش مجدد", thread_actions_retry_help: "نمایش دکمه تلاش مجدد برای تولید دوباره آخرین پاسخ هوش مصنوعی.", history_enabled: "فعال‌سازی سایدبار تاریخچه", history_enabled_help: "نمایش منوی کناری شامل گفتگوهای قبلی.", history_show_delete: "اجازه حذف گفتگوها", history_show_rename: "اجازه تغییر نام گفتگوها", history_show_share: "اجازه اشتراک‌گذاری گفتگوها", history_show_pin: "اجازه پین کردن گفتگوها", sections_modes: "وضعیت نمایش تب‌های تنظیمات", sections_modes_help: "کنترل نمایش یا غیرفعال بودن تب‌های مختلف در بخش تنظیمات کاربر.", mode_editable: "فعال (قابل ویرایش)", mode_faded: "محو (فقط خواندنی)", mode_hidden: "مخفی (غیرفعال)", general_tab: "تب عمومی", profile_tab: "تب پروفایل", account_tab: "تب حساب کاربری", inner_fields_modes: "مشاهده‌پذیری فیلدهای داخلی", inner_fields_modes_help: "وضعیت نمایش فیلدهای هر تب را به‌صورت مجزا پیکربندی کنید." }, user_billing: { initial_balance_tokens: "توکن اولیه پیش‌فرض", initial_balance_requests: "تعداد درخواست اولیه پیش‌فرض", initial_balance_help: "این مقادیر به‌صورت خودکار به کاربران جدید اختصاص داده می‌شوند، مگر اینکه هنگام ایجاد کاربر مقدار دیگری تعیین شود." }, save_success: "تنظیمات با موفقیت ذخیره شد", save_error: "خطا در ذخیره‌سازی تنظیمات", save: "ذخیره تغییرات", translations_management: "مدیریت ترجمه‌ها", editor_tips: "تمام تغییرات به‌صورت خودکار در حالت محلی ذخیره می‌شوند. برای نهایی‌سازی، دکمه «ذخیره تغییرات» را بزنید.", sync_from_code: "همگام‌سازی از کد", reset_button: "بازنشانی به تنظیمات اولیه", reset_confirm_title: "بازنشانی تنظیمات؟", reset_confirm_description: "این عمل تمام فیلدها را به مقادیر پیش‌فرض در کد بازمی‌گرداند. تغییرات ذخیره نشده فعلی از بین خواهند رفت.", preview: "پیش‌نمایش", tips_label: "نکته" }, analytics: { title: "تحلیل و آمار", days: "{{count}} روز", total_users: "تعداد کاربران", total_threads: "تعداد گفتگوها", total_messages: "تعداد پیام‌ها", total_token_usage: "مصرف کل توکن", usage_cost: "مصرف و هزینه", input: "ورودی", output: "خروجی", cost: "هزینه", threads_chart: "گفتگوها", messages_chart: "پیام‌ها", token_usage_chart: "مصرف توکن", cost_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}}", cost: "هزینه: {{value}}", unpriced: "بدون هزینه", all_feedbacks: "همه گفتگوها", liked_feedbacks: "پسندیده شده 👍", disliked_feedbacks: "نپسندیده شده 👎", any_feedback: "دارای بازخورد", output_available: "خروجی موجود است", running: "در حال اجرا...", unnamed_file: "فایل بدون نام", download_file: "دانلود فایل" }, users: { title: "مدیریت کاربران", user_count: "تعداد کاربران: {{count}}", add_user: "افزودن کاربر جدید", edit_user: "ویرایش کاربر", phone: "شماره تلفن", phone_placeholder: "۰۹۱۲۳۴۵۶۷۸۹", name: "نام", surname: "نام خانوادگی", initial_tokens: "تعداد توکن اولیه (اختیاری)", initial_requests: "تعداد درخواست اولیه (اختیاری)", balance: "موجودی", requests_label: "درخواست‌ها", tokens_label: "توکن‌ها", token_limit: "سقف توکن", request_limit: "سقف درخواست", tokens_usage: "میزان مصرف توکن", requests_usage: "میزان مصرف درخواست", actions: "عملیات", copy_token: "کپی توکن (با بروزرسانی خودکار)", token_copied: "توکن با موفقیت کپی شد", no_token: "توکنی برای این کاربر یافت نشد", recharge: "شارژ موجودی", full_charge: "شارژ کامل", update_balance: "بروزرسانی موجودی", update_balance_for: "بروزرسانی موجودی", token_count: "تعداد توکن", request_count: "تعداد درخواست", updating: "در حال بروزرسانی...", no_users: "هیچ کاربری یافت نشد.", sort_ascending: "مرتب‌سازی صعودی", sort_descending: "مرتب‌سازی نزولی", confirm_delete_user: "آیا از حذف این کاربر اطمینان دارید؟", tokens_exceed_limit: "تعداد توکن نمی‌تواند بیشتر از سقف مجاز باشد", requests_exceed_limit: "تعداد درخواست نمی‌تواند بیشتر از سقف مجاز باشد", metadata: "متادیتا (JSON)", initial_balance: "موجودی اولیه", custom_fields: "فیلدهای اضافه", metadata_raw: "متادیتا (JSON خام)", advanced_usage: "استفاده پیشرفته", invalid_json: "فرمت JSON نامعتبر است", auto_recharge: "تمدید خودکار موجودی", auto_recharge_help: "موجودی این کاربر را طبق یک برنامه تکرارشونده تا سقف تعیین‌شده بازنشانی می‌کند.", enabled: "فعال", recharge_interval: "هر", recharge_unit: "واحد بازه", recharge_unit_minute: "دقیقه", recharge_unit_hour: "ساعت", recharge_unit_day: "روز", recharge_unit_week: "هفته", recharge_unit_month: "ماه", recharge_schedule_help: "برنامه جدید از زمان ذخیره آغاز می‌شود. برنامه موجود مبدأ دوره فعلی خود را حفظ می‌کند.", next_recharge: "تمدید بعدی", last_recharge: "آخرین تمدید خودکار", not_available: "در دسترس نیست", recharge_interval_invalid: "بازه تمدید باید یک عدد صحیح مثبت باشد", recharge_policy_not_saved: "سرور تنظیمات تمدید خودکار را ذخیره نکرد. سرور را راه‌اندازی مجدد یا به نسخه پشتیبان‌کننده از تمدید خودکار بروزرسانی کنید.", usage_summary: "خلاصه مصرف", input_tokens: "توکن‌های ورودی", output_tokens: "توکن‌های خروجی", total_tokens: "کل توکن‌ها", requests_made: "تعداد درخواست‌ها", total_cost: "هزینه کل", renewals: "دفعات شارژ موجودی", unpriced_requests: "درخواست‌های بدون هزینه‌ی ثبت شده" }, 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: "© ۲۰۲۶ پلتفرم چت‌بات هوشمند" } }, Mi = { 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: "آخرین بروزرسانی اعتبار در تاریخ" } }, zi = { unauthorized: "دسترسی مجاز نیست. لطفاً دوباره وارد شوید.", invalid_credentials: "شماره تلفن یا رمز عبور اشتباه است.", phone_required: "شماره تلفن الزامی است.", password_required: "رمز عبور الزامی است.", name_surname_required: "نام و نام خانوادگی الزامی است.", phone_already_exists: "این شماره تلفن قبلاً ثبت شده است.", invalid_token: "نشست شما منقضی شده است. لطفاً دوباره وارد شوید.", user_not_found: "کاربر یافت نشد.", insufficient_balance: "موجودی کافی نیست. لطفاً حساب خود را شارژ کنید.", me_update_failed: "خطا در بروزرسانی اطلاعات پروفایل.", thread_not_found: "گفتگو یافت نشد.", access_denied: "شما اجازه انجام این عملیات را ندارید.", feedback_save_failed: "خطا در ثبت بازخورد.", thread_update_failed: "خطا در بروزرسانی گفتگو.", thread_delete_failed: "خطا در حذف گفتگو.", attachment_not_found: "فایل پیوست یافت نشد.", thread_share_failed: "خطا در اشتراک‌گذاری گفتگو.", model_quota_reached_error: "سامانه در حال حاضر قادر به پاسخ‌گویی نیست. لطفاً بعداً دوباره تلاش کنید.", admin_already_exists: "ادمین با این نام کاربری قبلاً ایجاد شده است.", admin_not_found: "ادمین یافت نشد.", cannot_delete_self: "شما نمی‌توانید حساب مدیریت خود را حذف کنید.", admin_update_failed: "خطا در بروزرسانی اطلاعات ادمین.", internal_error: "یک خطای داخلی در سرور رخ داده است. لطفاً بعداً تلاش کنید.", validation_error: "داده‌های ارسالی معتبر نیستند. لطفاً ورودی‌های خود را بررسی کنید.", not_found: "منبع مورد نظر یافت نشد." }, Ui = {
6964
+ }, Ri = { 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: "اشتراک‌گذاری" }, Oi = { tools: "ابزارها", error: "خطا:", input_placeholder: "سوالتو اینجا بپرس...", insufficient_balance: "موجودی حساب شما کافی نیست. لطفا برای ادامه، حساب خود را شارژ کنید.", regenerate: "تولید مجدد", retry: "تلاش مجدد", copy: "کپی", like: "پسندیدم", dislike: "نپسندیدم", attach_file: "پیوست فایل", remove_file: "حذف فایل", reference: "ارجاع", reference_selection: "ارجاع به بخش انتخاب‌شده", remove_reference: "حذف ارجاع", referenced_context: "بخش ارجاع‌شده", source_unavailable: "منبع در دسترس نیست", tool_reference: "ارجاع به ابزار", card_reference: "ارجاع به کارت", used_sources: "از {{count}} منبع استفاده شد", welcome: { title: "سلام! چطور می‌تونم کمکت کنم؟", subtitle: "هر سوالی داری بپرس، تمام تلاشمو می‌کنم کمکت کنم.", suggestions: ["چه کارهایی می‌تونی انجام بدی؟", "یه چیز جالب بهم بگو", "کمکم کن یه ایمیل بنویسم", "یه مفهوم رو برام توضیح بده"] }, disclaimer: "هوش مصنوعی ممکن است اشتباه کند. اطلاعات مهم را بررسی کنید." }, Li = { pending: "در انتظار", running: "در حال اجرا", completed: "تکمیل شده", error: "خطا", parameters: "پارامترها", result: "نتیجه", view_error: "نمایش خطا", tool_error: "خطای ابزار", copied: "کپی شد!", copy_error: "کپی خطا" }, Fi = { login_tab: "ورود", signup_tab: "ثبت نام", phone: "شماره تلفن", phone_placeholder: "شماره تلفن", password: "رمز عبور", name: "نام", name_placeholder: "نام", surname: "نام خانوادگی", surname_placeholder: "نام خانوادگی", logging_in: "در حال ورود...", signing_up: "در حال ثبت نام...", auth_page_disabled_title: "صفحه ورود غیرفعال شده است.", auth_page_disabled_description: "برای دسترسی با مدیر سامانه تماس بگیرید.", select_placeholder: "انتخاب کنید", login_button: "ورود", signup_button: "ثبت نام" }, Di = { toggle: "تغییر تم", light: "تغییر به تم روشن", dark: "تغییر به تم تاریک", system: "تغییر به تم سیستم" }, Pi = /* @__PURE__ */ JSON.parse('{"select_placeholder":"انتخاب کنید","loading":"در حال بارگذاری...","retry":"تلاش مجدد","save":"ذخیره","saving":"در حال ذخیره...","cancel":"انصراف","delete":"حذف","edit":"ویرایش","search":"جستجو","search_placeholder":"جستجو...","no_data":"داده‌ای موجود نیست","loading_more":"در حال بارگذاری بیشتر...","confirm_delete":"آیا از حذف اطمینان دارید؟","error_loading":"خطا در بارگذاری داده‌ها","dashboard":{"title":"پنل ادمین","logout":"خروج","tabs":{"analytics":"تحلیل و آمار","chat_history":"گفتگوها","users":"کاربران","admins":"ادمین‌ها","settings":"تنظیمات"}},"app_settings":{"title":"تنظیمات سامانه","subtitle":"پیکربندی کلی ظاهر و رفتار سامانه را مدیریت کنید.","sections":{"general":"اطلاعات پایه","chat":"تنظیمات گفتگو","user_billing":"کاربری و مالی"},"general":{"app_name":"نام سامانه","admin_title":"عنوان پنل ادمین","language":"زبان پیش‌فرض","language_help":"زبانی که کاربر در اولین ورود مشاهده می‌کند (در صورت عدم تشخیص خودکار).","appearance":"ظاهر پیش‌فرض","appearance_help":"این مقادیر زمانی اعمال می‌شوند که کاربر تنظیمات ظاهری خود را ذخیره نکرده باشد.","default_theme":"پوسته پیش‌فرض","default_accent":"رنگ اصلی پیش‌فرض","default_accent_help":"هر رنگ CSS پشتیبانی‌شده توسط مرورگر را وارد کنید؛ مانند #3b82f6 یا rgb(59 130 246).","default_accent_invalid":"یک رنگ CSS معتبر و پشتیبانی‌شده توسط مرورگر وارد کنید.","default_accent_preview":"پیش‌نمایش رنگ اصلی"},"chat":{"welcome_greeting":"پیام خوش‌آمدگویی","welcome_subtitle":"زیرعنوان خوش‌آمدگویی","disclaimer":"متن سلب مسئولیت","show_tool_details":"نمایش جزئیات فنی ابزارها (Tools)","show_tool_details_help":"برای نمایش جزئیات فنی و نحوه عملکرد ابزارهای هوش مصنوعی به کاربران، این گزینه را فعال کنید.","show_settings":"نمایش آیکون تنظیمات برای کاربران","show_settings_help":"نمایش چرخ‌دنده تنظیمات در محیط چت برای شخصی‌سازی توسط کاربر.","show_version_in_settings":"نمایش نسخه برنامه در تنظیمات کاربر","show_version_in_settings_help":"نسخه برنامه را در پایین پنجره تنظیمات کاربر نمایش می‌دهد. این گزینه روی صفحه تنظیمات ادمین اثری ندارد.","disable_signup":"غیرفعال‌سازی ثبت‌نام","disable_signup_help":"تب ثبت‌نام را مخفی می‌کند تا کاربران فقط بتوانند وارد شوند.","disable_auth_page":"غیرفعال‌سازی صفحه ورود/ثبت‌نام","disable_auth_page_help":"کل صفحه احراز هویت را مخفی می‌کند و دسترسی به فرم‌های ورود و ثبت‌نام را می‌بندد.","composer_attachments":"فعال‌سازی پیوست فایل","composer_attachments_help":"اجازه به کاربران برای آپلود و پیوست فایل به پیام‌ها.","thread_actions_feedback":"فعال‌سازی دکمه‌های بازخورد","thread_actions_feedback_help":"نمایش دکمه‌های پسندیدن/نپسندیدن در پاسخ‌های هوش مصنوعی.","thread_actions_retry":"فعال‌سازی دکمه تلاش مجدد","thread_actions_retry_help":"نمایش دکمه تلاش مجدد برای تولید دوباره آخرین پاسخ هوش مصنوعی.","history_enabled":"فعال‌سازی سایدبار تاریخچه","history_enabled_help":"نمایش منوی کناری شامل گفتگوهای قبلی.","history_show_delete":"اجازه حذف گفتگوها","history_show_rename":"اجازه تغییر نام گفتگوها","history_show_share":"اجازه اشتراک‌گذاری گفتگوها","history_show_pin":"اجازه پین کردن گفتگوها","sections_modes":"وضعیت نمایش تب‌های تنظیمات","sections_modes_help":"کنترل نمایش یا غیرفعال بودن تب‌های مختلف در بخش تنظیمات کاربر.","mode_editable":"فعال (قابل ویرایش)","mode_faded":"محو (فقط خواندنی)","mode_hidden":"مخفی (غیرفعال)","general_tab":"تب عمومی","profile_tab":"تب پروفایل","account_tab":"تب حساب کاربری","inner_fields_modes":"مشاهده‌پذیری فیلدهای داخلی","inner_fields_modes_help":"وضعیت نمایش فیلدهای هر تب را به‌صورت مجزا پیکربندی کنید."},"user_billing":{"initial_balance_tokens":"توکن اولیه پیش‌فرض","initial_balance_requests":"تعداد درخواست اولیه پیش‌فرض","initial_balance_help":"این مقادیر به‌صورت خودکار به کاربران جدید اختصاص داده می‌شوند، مگر اینکه هنگام ایجاد کاربر مقدار دیگری تعیین شود."},"save_success":"تنظیمات با موفقیت ذخیره شد","save_error":"خطا در ذخیره‌سازی تنظیمات","save":"ذخیره تغییرات","translations_management":"مدیریت ترجمه‌ها","editor_tips":"تمام تغییرات به‌صورت خودکار در حالت محلی ذخیره می‌شوند. برای نهایی‌سازی، دکمه «ذخیره تغییرات» را بزنید.","sync_from_code":"همگام‌سازی از کد","reset_button":"بازنشانی به تنظیمات اولیه","reset_confirm_title":"بازنشانی تنظیمات؟","reset_confirm_description":"این عمل تمام فیلدها را به مقادیر پیش‌فرض در کد بازمی‌گرداند. تغییرات ذخیره نشده فعلی از بین خواهند رفت.","preview":"پیش‌نمایش","tips_label":"نکته"},"analytics":{"title":"تحلیل و آمار","days":"{{count}} روز","total_users":"تعداد کاربران","total_threads":"تعداد گفتگوها","total_messages":"تعداد پیام‌ها","total_token_usage":"مصرف کل توکن","usage_cost":"مصرف و هزینه","input":"ورودی","output":"خروجی","cost":"هزینه","threads_chart":"گفتگوها","messages_chart":"پیام‌ها","token_usage_chart":"مصرف توکن","cost_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}}","cost":"هزینه: {{value}}","unpriced":"بدون هزینه","all_feedbacks":"همه گفتگوها","liked_feedbacks":"پسندیده شده 👍","disliked_feedbacks":"نپسندیده شده 👎","any_feedback":"دارای بازخورد","output_available":"خروجی موجود است","running":"در حال اجرا...","unnamed_file":"فایل بدون نام","download_file":"دانلود فایل"},"users":{"title":"مدیریت کاربران","user_count":"تعداد کاربران: {{count}}","add_user":"افزودن کاربر جدید","edit_user":"ویرایش کاربر","phone":"شماره تلفن","phone_placeholder":"۰۹۱۲۳۴۵۶۷۸۹","name":"نام","surname":"نام خانوادگی","initial_tokens":"تعداد توکن اولیه (اختیاری)","initial_requests":"تعداد درخواست اولیه (اختیاری)","balance":"موجودی","requests_label":"درخواست‌ها","tokens_label":"توکن‌ها","token_limit":"سقف توکن","request_limit":"سقف درخواست","tokens_usage":"میزان مصرف توکن","requests_usage":"میزان مصرف درخواست","actions":"عملیات","copy_token":"کپی توکن (با بروزرسانی خودکار)","token_copied":"توکن با موفقیت کپی شد","no_token":"توکنی برای این کاربر یافت نشد","recharge":"شارژ موجودی","full_charge":"شارژ کامل","update_balance":"بروزرسانی موجودی","update_balance_for":"بروزرسانی موجودی","token_count":"تعداد توکن","request_count":"تعداد درخواست","updating":"در حال بروزرسانی...","no_users":"هیچ کاربری یافت نشد.","sort_ascending":"مرتب‌سازی صعودی","sort_descending":"مرتب‌سازی نزولی","confirm_delete_user":"آیا از حذف این کاربر اطمینان دارید؟","tokens_exceed_limit":"تعداد توکن نمی‌تواند بیشتر از سقف مجاز باشد","requests_exceed_limit":"تعداد درخواست نمی‌تواند بیشتر از سقف مجاز باشد","metadata":"متادیتا (JSON)","initial_balance":"موجودی اولیه","custom_fields":"فیلدهای اضافه","metadata_raw":"متادیتا (JSON خام)","advanced_usage":"استفاده پیشرفته","invalid_json":"فرمت JSON نامعتبر است","auto_recharge":"تمدید خودکار موجودی","auto_recharge_help":"موجودی این کاربر را طبق یک برنامه تکرارشونده تا سقف تعیین‌شده بازنشانی می‌کند.","enabled":"فعال","recharge_interval":"هر","recharge_unit":"واحد بازه","recharge_unit_minute":"دقیقه","recharge_unit_hour":"ساعت","recharge_unit_day":"روز","recharge_unit_week":"هفته","recharge_unit_month":"ماه","recharge_schedule_help":"برنامه جدید از زمان ذخیره آغاز می‌شود. برنامه موجود مبدأ دوره فعلی خود را حفظ می‌کند.","next_recharge":"تمدید بعدی","last_recharge":"آخرین تمدید خودکار","not_available":"در دسترس نیست","recharge_interval_invalid":"بازه تمدید باید یک عدد صحیح مثبت باشد","recharge_policy_not_saved":"سرور تنظیمات تمدید خودکار را ذخیره نکرد. سرور را راه‌اندازی مجدد یا به نسخه پشتیبان‌کننده از تمدید خودکار بروزرسانی کنید.","usage_summary":"خلاصه مصرف","input_tokens":"توکن‌های ورودی","output_tokens":"توکن‌های خروجی","total_tokens":"کل توکن‌ها","requests_made":"تعداد درخواست‌ها","total_cost":"هزینه کل","renewals":"دفعات شارژ موجودی","unpriced_requests":"درخواست‌های بدون هزینه‌ی ثبت شده","bulk_balance":"تغییر گروهی موجودی","bulk_balance_help":"تغییر موجودی را روی کاربران مطابق جستجو، شناسه‌های مشخص و فیلترهای متادیتا اعمال کنید.","bulk_operation":"عملیات","bulk_operation_add":"افزودن به موجودی","bulk_operation_set":"تنظیم مقدار دقیق","bulk_operation_full_charge":"شارژ تا سقف","bulk_use_current_search":"استفاده از جستجوی فعلی","bulk_user_ids":"شناسه کاربران (اختیاری)","bulk_metadata_filters":"فیلترهای متادیتا (JSON)","bulk_available_metadata":"کلیدهای متادیتای در دسترس","bulk_preview_empty":"تعداد کاربران مطابق قبل از اعمال بررسی می‌شود.","bulk_preview_count":"{{count}} کاربر مطابق هستند","apply_bulk_balance":"اعمال تغییر","bulk_balance_confirm":"این تغییر موجودی برای {{count}} کاربر اعمال شود؟","matching_users":"کاربران مطابق","bulk_apply_balance":"بروزرسانی موجودی","bulk_apply_renewal":"بروزرسانی سیاست تمدید","bulk_select_change":"حداقل یک تغییر گروهی را برای اعمال انتخاب کنید.","bulk_renewal_policy":"سیاست تمدید","bulk_renewal_policy_help":"تمدید خودکار را برای همه کاربران مطابق فعال یا غیرفعال کنید.","bulk_renewal_anchor":"زمان اولین تمدید (اختیاری)"},"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":"© ۲۰۲۶ پلتفرم چت‌بات هوشمند"}}'), Mi = { 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: "آخرین بروزرسانی اعتبار در تاریخ" } }, zi = { unauthorized: "دسترسی مجاز نیست. لطفاً دوباره وارد شوید.", invalid_credentials: "شماره تلفن یا رمز عبور اشتباه است.", phone_required: "شماره تلفن الزامی است.", password_required: "رمز عبور الزامی است.", name_surname_required: "نام و نام خانوادگی الزامی است.", phone_already_exists: "این شماره تلفن قبلاً ثبت شده است.", invalid_token: "نشست شما منقضی شده است. لطفاً دوباره وارد شوید.", user_not_found: "کاربر یافت نشد.", insufficient_balance: "موجودی کافی نیست. لطفاً حساب خود را شارژ کنید.", me_update_failed: "خطا در بروزرسانی اطلاعات پروفایل.", thread_not_found: "گفتگو یافت نشد.", access_denied: "شما اجازه انجام این عملیات را ندارید.", feedback_save_failed: "خطا در ثبت بازخورد.", thread_update_failed: "خطا در بروزرسانی گفتگو.", thread_delete_failed: "خطا در حذف گفتگو.", attachment_not_found: "فایل پیوست یافت نشد.", thread_share_failed: "خطا در اشتراک‌گذاری گفتگو.", model_quota_reached_error: "سامانه در حال حاضر قادر به پاسخ‌گویی نیست. لطفاً بعداً دوباره تلاش کنید.", admin_already_exists: "ادمین با این نام کاربری قبلاً ایجاد شده است.", admin_not_found: "ادمین یافت نشد.", cannot_delete_self: "شما نمی‌توانید حساب مدیریت خود را حذف کنید.", admin_update_failed: "خطا در بروزرسانی اطلاعات ادمین.", internal_error: "یک خطای داخلی در سرور رخ داده است. لطفاً بعداً تلاش کنید.", validation_error: "داده‌های ارسالی معتبر نیستند. لطفاً ورودی‌های خود را بررسی کنید.", not_found: "منبع مورد نظر یافت نشد." }, Ui = {
6965
6965
  sidebar: Ri,
6966
6966
  chat: Oi,
6967
6967
  tools_ui: Li,
@@ -7005,7 +7005,7 @@ function vl({ className: e, type: t, ...n }) {
7005
7005
  }
7006
7006
  );
7007
7007
  }
7008
- const wl = "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", Bi = ot(
7008
+ const _l = "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", Bi = ot(
7009
7009
  "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
7010
7010
  ), Hi = Ke.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ i(
7011
7011
  "label",
@@ -7016,10 +7016,10 @@ const wl = "data:image/svg+xml,%3csvg%20version='1.2'%20xmlns='http://www.w3.org
7016
7016
  }
7017
7017
  ));
7018
7018
  Hi.displayName = "Label";
7019
- function xl({ ...e }) {
7019
+ function wl({ ...e }) {
7020
7020
  return /* @__PURE__ */ i(U.Root, { "data-slot": "select", ...e });
7021
7021
  }
7022
- function _l({ ...e }) {
7022
+ function xl({ ...e }) {
7023
7023
  return /* @__PURE__ */ i(U.Group, { "data-slot": "select-group", ...e });
7024
7024
  }
7025
7025
  function Sl({ ...e }) {
@@ -7031,7 +7031,7 @@ function El({
7031
7031
  children: n,
7032
7032
  ...o
7033
7033
  }) {
7034
- return /* @__PURE__ */ x(
7034
+ return /* @__PURE__ */ w(
7035
7035
  U.Trigger,
7036
7036
  {
7037
7037
  "data-slot": "select-trigger",
@@ -7054,7 +7054,7 @@ function Nl({
7054
7054
  position: n = "popper",
7055
7055
  ...o
7056
7056
  }) {
7057
- return /* @__PURE__ */ i(U.Portal, { children: /* @__PURE__ */ x(
7057
+ return /* @__PURE__ */ i(U.Portal, { children: /* @__PURE__ */ w(
7058
7058
  U.Content,
7059
7059
  {
7060
7060
  "data-slot": "select-content",
@@ -7093,7 +7093,7 @@ function Tl({ className: e, ...t }) {
7093
7093
  );
7094
7094
  }
7095
7095
  function Cl({ className: e, children: t, ...n }) {
7096
- return /* @__PURE__ */ x(
7096
+ return /* @__PURE__ */ w(
7097
7097
  U.Item,
7098
7098
  {
7099
7099
  "data-slot": "select-item",
@@ -7234,9 +7234,9 @@ export {
7234
7234
  Ll as E,
7235
7235
  Fl as F,
7236
7236
  mt as G,
7237
- xa as H,
7237
+ wa as H,
7238
7238
  vl as I,
7239
- _a as J,
7239
+ xa as J,
7240
7240
  yl as K,
7241
7241
  Hi as L,
7242
7242
  bl as M,
@@ -7245,14 +7245,14 @@ export {
7245
7245
  Co as P,
7246
7246
  ai as Q,
7247
7247
  $o as R,
7248
- xl as S,
7248
+ wl as S,
7249
7249
  dl as T,
7250
7250
  Ao as U,
7251
7251
  Xo as V,
7252
7252
  ga as W,
7253
7253
  ii as X,
7254
- Ze as Y,
7255
- _l as Z,
7254
+ Je as Y,
7255
+ xl as Z,
7256
7256
  Tl as _,
7257
7257
  re as a,
7258
7258
  ji as a0,
@@ -7261,7 +7261,7 @@ export {
7261
7261
  ri as a3,
7262
7262
  Qo as a4,
7263
7263
  at as a5,
7264
- Jo as a6,
7264
+ Zo as a6,
7265
7265
  To as a7,
7266
7266
  fl as a8,
7267
7267
  qo as a9,
@@ -7281,14 +7281,14 @@ export {
7281
7281
  pl as n,
7282
7282
  Il as o,
7283
7283
  ya as p,
7284
- wa as q,
7284
+ _a as q,
7285
7285
  El as r,
7286
7286
  Sl as s,
7287
7287
  Nl as t,
7288
7288
  N as u,
7289
7289
  Cl as v,
7290
- Zo as w,
7291
- wl as x,
7290
+ Jo as w,
7291
+ _l as x,
7292
7292
  Le as y,
7293
7293
  Rl as z
7294
7294
  };