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.
- package/dist/{checkbox-BZPTGt7D.js → checkbox-hWwU3a5K.js} +242 -242
- package/dist/gentiq-admin.es.js +1466 -1080
- package/dist/gentiq-index.es.js +2 -2
- package/dist/gentiq.css +1 -1
- package/dist/src/admin/lib/api.d.ts +30 -0
- package/dist/src/components/ui/skeleton.d.ts +2 -2
- package/dist/src/locales/en.json.d.ts +21 -0
- package/dist/src/locales/fa.json.d.ts +21 -0
- package/package.json +1 -1
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { jsx as i, jsxs as
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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]),
|
|
58
|
+
}, [b]), J(() => {
|
|
59
59
|
const d = window.document.documentElement, v = m.language?.split("-")[0] || m.language;
|
|
60
|
-
let
|
|
61
|
-
if (typeof
|
|
62
|
-
const T =
|
|
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
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
482
|
-
const t =
|
|
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
|
-
},
|
|
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="${
|
|
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="${
|
|
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="${
|
|
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="${
|
|
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 =
|
|
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
|
-
|
|
593
|
-
}, []), y = Y((
|
|
594
|
-
|
|
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:
|
|
600
|
-
label: Me(
|
|
601
|
-
excerpt: Me(
|
|
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
|
-
}, []),
|
|
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
|
|
616
|
-
return
|
|
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
|
-
|
|
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",
|
|
668
|
-
document.removeEventListener("mouseup",
|
|
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]),
|
|
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:
|
|
677
|
+
clearReferences: _,
|
|
678
678
|
focusReference: g,
|
|
679
679
|
registerSource: p,
|
|
680
680
|
unregisterSource: y,
|
|
681
681
|
enabled: e
|
|
682
|
-
}), [l, d, v,
|
|
683
|
-
return /* @__PURE__ */
|
|
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: (
|
|
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
|
|
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_${
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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:
|
|
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
|
|
925
|
-
if (
|
|
926
|
-
const V = Object.values(
|
|
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 ?
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1226
|
-
/* @__PURE__ */
|
|
1227
|
-
e.length === 0 && !n ? /* @__PURE__ */ i(p, { onSuggestionClick: l }) : e.map((v) => /* @__PURE__ */
|
|
1228
|
-
v.role === "assistant" && v.parts.filter((
|
|
1229
|
-
/* @__PURE__ */ i(Po, { count: v.parts.filter((
|
|
1230
|
-
v.parts.filter((
|
|
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((
|
|
1232
|
+
v.parts.map((_, g) => /* @__PURE__ */ i(
|
|
1233
1233
|
Ao,
|
|
1234
1234
|
{
|
|
1235
|
-
part:
|
|
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
|
|
1254
|
-
return
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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:
|
|
1450
|
-
|
|
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__ */
|
|
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__ */
|
|
1484
|
-
g && y.length > 0 && /* @__PURE__ */ i("div", { className: "flex flex-wrap gap-2 px-2 pt-2", children: y.map((S) => /* @__PURE__ */
|
|
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__ */
|
|
1490
|
+
/* @__PURE__ */ w(
|
|
1491
1491
|
"button",
|
|
1492
1492
|
{
|
|
1493
1493
|
type: "button",
|
|
1494
|
-
onClick: () =>
|
|
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__ */
|
|
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__ */
|
|
1536
|
-
/* @__PURE__ */ i(Go, { children: (s?.attachments?.enabled ?? !1) && /* @__PURE__ */
|
|
1537
|
-
/* @__PURE__ */ i(ln, { asChild: !0, children: /* @__PURE__ */ i(Wo, { variant: "ghost", onClick: () =>
|
|
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
|
-
},
|
|
1576
|
-
function
|
|
1575
|
+
}, Jo = (e) => [e, "currentUser"];
|
|
1576
|
+
function Zo(e = {}) {
|
|
1577
1577
|
const { app: t } = re(), n = t?.cacheNamespace || "gentiq", o = io({
|
|
1578
|
-
queryKey:
|
|
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 } =
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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(
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
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
|
|
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(),
|
|
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:
|
|
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
|
|
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:
|
|
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:
|
|
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,
|
|
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(
|
|
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 (!
|
|
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
|
|
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
|
|
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
|
-
|
|
2890
|
-
const c =
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
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
|
|
3104
|
+
function _r() {
|
|
3105
3105
|
return { type: "doctype" };
|
|
3106
3106
|
}
|
|
3107
|
-
function
|
|
3107
|
+
function wr(e) {
|
|
3108
3108
|
return { type: "text", value: e.nodeValue || "" };
|
|
3109
3109
|
}
|
|
3110
|
-
function
|
|
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
|
-
]),
|
|
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 =
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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
|
|
3454
|
-
return e.type === "element" ? Ur(e, t, n) : e.type === "text" ? n.whitespace === "normal" ?
|
|
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) :
|
|
3464
|
+
` : Pr(e) ? (c = 2, s = 2) : _n(e) && (c = 1, s = 1); ++a < r.length; )
|
|
3465
3465
|
l = l.concat(
|
|
3466
|
-
|
|
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
|
|
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
|
|
3571
|
+
const _ = (
|
|
3572
3572
|
/** @type {UnistParent} */
|
|
3573
3573
|
s
|
|
3574
3574
|
);
|
|
3575
|
-
if (
|
|
3576
|
-
for (d = -1 + l, v = f.concat(
|
|
3577
|
-
const g =
|
|
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
|
|
3610
|
+
const _ = (
|
|
3611
3611
|
/** @type {Error} */
|
|
3612
3612
|
v
|
|
3613
|
-
), g =
|
|
3613
|
+
), g = _.name.toLowerCase();
|
|
3614
3614
|
o.message("Could not render math with KaTeX", {
|
|
3615
3615
|
ancestors: [...a, r],
|
|
3616
|
-
cause:
|
|
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
|
|
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
|
|
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(
|
|
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:
|
|
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
|
|
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 ?
|
|
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)) :
|
|
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(
|
|
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(),
|
|
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__ */
|
|
3984
|
-
/* @__PURE__ */ i(cn, { from: t.role, children: /* @__PURE__ */ i(un, { dir:
|
|
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__ */
|
|
4004
|
-
t.role === "assistant" && /* @__PURE__ */
|
|
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__ */
|
|
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
|
-
|
|
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]),
|
|
4078
|
+
}, [t, y, m]), J(() => {
|
|
4079
4079
|
if (o && !t && s && !b) {
|
|
4080
|
-
const
|
|
4080
|
+
const _ = setTimeout(() => {
|
|
4081
4081
|
u(!1), p(!0);
|
|
4082
4082
|
}, pa);
|
|
4083
4083
|
return () => {
|
|
4084
|
-
clearTimeout(
|
|
4084
|
+
clearTimeout(_);
|
|
4085
4085
|
};
|
|
4086
4086
|
}
|
|
4087
4087
|
}, [t, s, o, u, b]);
|
|
4088
|
-
const v = (
|
|
4089
|
-
u(
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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(
|
|
4179
|
+
return /* @__PURE__ */ i(Z.Root, { "data-slot": "dialog", ...e });
|
|
4180
4180
|
}
|
|
4181
4181
|
function ya({ ...e }) {
|
|
4182
|
-
return /* @__PURE__ */ i(
|
|
4182
|
+
return /* @__PURE__ */ i(Z.Trigger, { "data-slot": "dialog-trigger", ...e });
|
|
4183
4183
|
}
|
|
4184
4184
|
function ka({ ...e }) {
|
|
4185
|
-
return /* @__PURE__ */ i(
|
|
4185
|
+
return /* @__PURE__ */ i(Z.Portal, { "data-slot": "dialog-portal", ...e });
|
|
4186
4186
|
}
|
|
4187
4187
|
function fl({ ...e }) {
|
|
4188
|
-
return /* @__PURE__ */ i(
|
|
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
|
-
|
|
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
|
|
4203
|
+
function _a({
|
|
4204
4204
|
className: e,
|
|
4205
4205
|
children: t,
|
|
4206
4206
|
showCloseButton: n = !0,
|
|
4207
4207
|
...o
|
|
4208
4208
|
}) {
|
|
4209
|
-
return /* @__PURE__ */
|
|
4209
|
+
return /* @__PURE__ */ w(ka, { "data-slot": "dialog-portal", children: [
|
|
4210
4210
|
/* @__PURE__ */ i(va, {}),
|
|
4211
|
-
/* @__PURE__ */
|
|
4212
|
-
|
|
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__ */
|
|
4223
|
-
|
|
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
|
|
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
|
|
4258
|
+
function xa({ className: e, ...t }) {
|
|
4259
4259
|
return /* @__PURE__ */ i(
|
|
4260
|
-
|
|
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
|
-
|
|
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
|
|
6182
|
-
if (
|
|
6183
|
-
p(
|
|
6181
|
+
var _ = y[d];
|
|
6182
|
+
if (_.type !== "code") {
|
|
6183
|
+
p(_.content);
|
|
6184
6184
|
continue;
|
|
6185
6185
|
}
|
|
6186
|
-
var g =
|
|
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
|
|
6189
|
-
|
|
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],
|
|
6200
|
-
if (
|
|
6201
|
-
p =
|
|
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
|
|
6216
|
-
|
|
6217
|
-
|
|
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
|
|
6239
|
-
return
|
|
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__ */
|
|
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
|
|
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(
|
|
6333
|
-
image_generation: /* @__PURE__ */ i(
|
|
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
|
|
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__ */
|
|
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(
|
|
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 =
|
|
6354
|
-
return /* @__PURE__ */
|
|
6355
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
6406
|
-
/* @__PURE__ */ i(ya, { asChild: !0, children: /* @__PURE__ */
|
|
6407
|
-
/* @__PURE__ */ i(
|
|
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__ */
|
|
6411
|
-
/* @__PURE__ */ i(
|
|
6412
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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 || {},
|
|
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:
|
|
6957
|
-
chat:
|
|
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
|
|
7019
|
+
function wl({ ...e }) {
|
|
7020
7020
|
return /* @__PURE__ */ i(U.Root, { "data-slot": "select", ...e });
|
|
7021
7021
|
}
|
|
7022
|
-
function
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
-
|
|
7237
|
+
wa as H,
|
|
7238
7238
|
vl as I,
|
|
7239
|
-
|
|
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
|
-
|
|
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
|
-
|
|
7255
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
7291
|
-
|
|
7290
|
+
Jo as w,
|
|
7291
|
+
_l as x,
|
|
7292
7292
|
Le as y,
|
|
7293
7293
|
Rl as z
|
|
7294
7294
|
};
|