gentiq 0.7.27 → 0.7.28
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-plYm_Rxp.js → checkbox-DIJ7BlxY.js} +356 -347
- package/dist/gentiq-admin.es.js +470 -461
- package/dist/gentiq-index.es.js +279 -273
- package/package.json +1 -1
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
import { jsx as i, Fragment as J, jsxs as w } from "react/jsx-runtime";
|
|
2
2
|
import * as Ce from "react";
|
|
3
|
-
import { useState as B, useCallback as oe, useMemo as
|
|
4
|
-
import { useTranslation as M, initReactI18next as
|
|
5
|
-
import { ArrowDownIcon as
|
|
6
|
-
import { Slot as
|
|
3
|
+
import { useState as B, useCallback as oe, useMemo as St, useEffect as Q, Children as cn, useRef as Ge, memo as de, createContext as pe, useContext as Le } from "react";
|
|
4
|
+
import { useTranslation as M, initReactI18next as un } from "react-i18next";
|
|
5
|
+
import { ArrowDownIcon as dn, ChevronDownIcon as ie, BookIcon as pn, XIcon as he, CheckIcon as De, ArrowUpIcon as hn, Loader2Icon as gn, SquareIcon as mn, FileIcon as Et, PaperclipIcon as fn, MessageCircle as bn, RefreshCcwIcon as yn, ThumbsUpIcon as kn, ThumbsDownIcon as vn, CopyIcon as Nt, BrainIcon as wn, WrenchIcon as xn, ImagePlusIcon as _n, CodeIcon as Sn, DownloadIcon as ue, GlobeIcon as En, XCircleIcon as Tt, CheckCircleIcon as Nn, ClockIcon as Tn, CircleIcon as Cn, ChevronUpIcon as An } from "lucide-react";
|
|
6
|
+
import { Slot as Ct } from "@radix-ui/react-slot";
|
|
7
7
|
import { cva as Pe } from "class-variance-authority";
|
|
8
|
-
import { StickToBottom as
|
|
8
|
+
import { StickToBottom as At, useStickToBottomContext as In } from "use-stick-to-bottom";
|
|
9
9
|
import * as Me from "@radix-ui/react-collapsible";
|
|
10
10
|
import * as K from "@radix-ui/react-tooltip";
|
|
11
|
-
import { toast as
|
|
11
|
+
import { toast as Rn } from "sonner";
|
|
12
12
|
import "@radix-ui/react-scroll-area";
|
|
13
|
-
import { Streamdown as
|
|
14
|
-
import
|
|
15
|
-
import { useControllableState as
|
|
13
|
+
import { Streamdown as On } from "streamdown";
|
|
14
|
+
import Ve from "katex";
|
|
15
|
+
import { useControllableState as We } from "@radix-ui/react-use-controllable-state";
|
|
16
16
|
import * as H from "@radix-ui/react-dialog";
|
|
17
17
|
import { PrismLight as $ } from "react-syntax-highlighter";
|
|
18
|
-
import
|
|
18
|
+
import Fn from "i18next";
|
|
19
19
|
import * as L from "@radix-ui/react-select";
|
|
20
20
|
import * as re from "@radix-ui/react-dropdown-menu";
|
|
21
21
|
import * as Ye from "@radix-ui/react-checkbox";
|
|
22
|
-
import { clsx as
|
|
23
|
-
import { twMerge as
|
|
24
|
-
class
|
|
22
|
+
import { clsx as Ln } from "clsx";
|
|
23
|
+
import { twMerge as Dn } from "tailwind-merge";
|
|
24
|
+
class Xe extends Error {
|
|
25
25
|
code;
|
|
26
26
|
status;
|
|
27
27
|
details;
|
|
@@ -29,8 +29,11 @@ class Dn extends Error {
|
|
|
29
29
|
super(t.error.message), this.name = "GentiqError", this.code = t.error.code, this.status = n, this.details = t.error.details;
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
function
|
|
33
|
-
const n = typeof e == "string" ? e : e.code
|
|
32
|
+
function yi(e, t) {
|
|
33
|
+
const n = typeof e == "string" ? e : e.code;
|
|
34
|
+
if (typeof n != "string")
|
|
35
|
+
return e?.message || String(e);
|
|
36
|
+
const o = `errors:${n}`, r = t(o);
|
|
34
37
|
return r === o ? typeof e != "string" && e.message ? e.message : n.replace(/_/g, " ").replace(/\b\w/g, (a) => a.toUpperCase()) : r;
|
|
35
38
|
}
|
|
36
39
|
let N = {
|
|
@@ -88,10 +91,16 @@ const S = {
|
|
|
88
91
|
handleResponse: async (e, t = "Request failed") => {
|
|
89
92
|
if (!e.ok) {
|
|
90
93
|
const n = await e.json().catch(() => ({}));
|
|
91
|
-
if (n.error && (n.error.code || n.error.message))
|
|
92
|
-
throw new
|
|
93
|
-
|
|
94
|
-
throw r.
|
|
94
|
+
if (n.error && (typeof n.error.code == "string" || typeof n.error.message == "string"))
|
|
95
|
+
throw new Xe(n, e.status);
|
|
96
|
+
let o = t, r = "error", a = null;
|
|
97
|
+
throw typeof n.detail == "string" ? o = n.detail : typeof n.message == "string" ? o = n.message : typeof n.error == "string" ? o = n.error : Array.isArray(n.detail) ? (o = "Validation failed", a = n.detail, r = "validation_error") : n.error && typeof n.error.message == "string" && (o = n.error.message), new Xe({
|
|
98
|
+
error: {
|
|
99
|
+
code: r,
|
|
100
|
+
message: o,
|
|
101
|
+
details: a
|
|
102
|
+
}
|
|
103
|
+
}, e.status);
|
|
95
104
|
}
|
|
96
105
|
return e.json();
|
|
97
106
|
},
|
|
@@ -281,7 +290,7 @@ function Mn(e, t) {
|
|
|
281
290
|
}
|
|
282
291
|
const zn = /* @__PURE__ */ new Set(["ar", "fa", "he", "ur", "yi", "ku", "ckb", "ps", "sd", "ug", "arc", "syc"]);
|
|
283
292
|
function $n() {
|
|
284
|
-
const { i18n: e } = M(["translation"]), { app: t } =
|
|
293
|
+
const { i18n: e } = M(["translation"]), { app: t } = W(), n = St(() => {
|
|
285
294
|
const l = S.getConfig(), c = t || l.app;
|
|
286
295
|
return {
|
|
287
296
|
name: c?.name || "Gentiq App",
|
|
@@ -318,7 +327,7 @@ function Un(e) {
|
|
|
318
327
|
renderMessagePart: p,
|
|
319
328
|
chat: h,
|
|
320
329
|
readonly: f
|
|
321
|
-
} = e, { showToolDetails: b } = $n(), { TextPart: m, ReasoningPart:
|
|
330
|
+
} = e, { showToolDetails: b } = $n(), { TextPart: m, ReasoningPart: y, ToolPart: d, FilePart: v, toolComponents: x, threadActions: g } = W(), { feedback: R, handleFeedback: E, copy: I } = Mn(n, c);
|
|
322
331
|
if (p) {
|
|
323
332
|
const O = p(t, n);
|
|
324
333
|
if (O !== void 0)
|
|
@@ -345,7 +354,7 @@ function Un(e) {
|
|
|
345
354
|
retryEnabled: f ? !1 : g?.retry ?? !1
|
|
346
355
|
}
|
|
347
356
|
) : t.type === "reasoning" ? /* @__PURE__ */ i(
|
|
348
|
-
|
|
357
|
+
y,
|
|
349
358
|
{
|
|
350
359
|
part: t,
|
|
351
360
|
status: o,
|
|
@@ -370,10 +379,10 @@ function Un(e) {
|
|
|
370
379
|
}
|
|
371
380
|
) : null;
|
|
372
381
|
}
|
|
373
|
-
function
|
|
374
|
-
return Ln(
|
|
382
|
+
function k(...e) {
|
|
383
|
+
return Dn(Ln(e));
|
|
375
384
|
}
|
|
376
|
-
function
|
|
385
|
+
function ki(e, t) {
|
|
377
386
|
if (t === "/") return e;
|
|
378
387
|
const n = e.endsWith("/") ? e.slice(0, -1) : e, o = t.startsWith("/") ? t : "/" + t;
|
|
379
388
|
return n + o;
|
|
@@ -381,7 +390,7 @@ function yi(e, t) {
|
|
|
381
390
|
const fe = ({ className: e, ...t }) => /* @__PURE__ */ i(
|
|
382
391
|
"div",
|
|
383
392
|
{
|
|
384
|
-
className:
|
|
393
|
+
className: k(
|
|
385
394
|
"flex items-center gap-1.5 px-1 py-3",
|
|
386
395
|
e
|
|
387
396
|
),
|
|
@@ -441,32 +450,32 @@ function ee({
|
|
|
441
450
|
asChild: o = !1,
|
|
442
451
|
...r
|
|
443
452
|
}) {
|
|
444
|
-
return /* @__PURE__ */ i(o ?
|
|
453
|
+
return /* @__PURE__ */ i(o ? Ct : "button", { "data-slot": "button", className: k(Hn({ variant: t, size: n, className: e })), ...r });
|
|
445
454
|
}
|
|
446
455
|
const qn = ({ className: e, ...t }) => /* @__PURE__ */ i(
|
|
447
|
-
|
|
456
|
+
At,
|
|
448
457
|
{
|
|
449
|
-
className:
|
|
458
|
+
className: k("relative flex-1 overflow-hidden", e),
|
|
450
459
|
initial: "smooth",
|
|
451
460
|
resize: "smooth",
|
|
452
461
|
role: "log",
|
|
453
462
|
...t
|
|
454
463
|
}
|
|
455
464
|
), jn = ({ className: e, ...t }) => /* @__PURE__ */ i(
|
|
456
|
-
|
|
465
|
+
At.Content,
|
|
457
466
|
{
|
|
458
|
-
className:
|
|
467
|
+
className: k("p-4 pb-6 stick-to-bottom", e),
|
|
459
468
|
scrollClassName: "custom-scrollbar",
|
|
460
469
|
...t
|
|
461
470
|
}
|
|
462
471
|
), Gn = ({ className: e, ...t }) => {
|
|
463
|
-
const { isAtBottom: n, scrollToBottom: o } =
|
|
472
|
+
const { isAtBottom: n, scrollToBottom: o } = In(), r = oe(() => {
|
|
464
473
|
o();
|
|
465
474
|
}, [o]);
|
|
466
475
|
return n ? null : /* @__PURE__ */ i(
|
|
467
476
|
"button",
|
|
468
477
|
{
|
|
469
|
-
className:
|
|
478
|
+
className: k(
|
|
470
479
|
"absolute bottom-32 left-1/2 -translate-x-1/2 z-10",
|
|
471
480
|
"flex items-center gap-1.5 px-4 py-2 rounded-full text-sm font-medium",
|
|
472
481
|
"glass border border-border/50 shadow-lg shadow-black/10",
|
|
@@ -479,7 +488,7 @@ const qn = ({ className: e, ...t }) => /* @__PURE__ */ i(
|
|
|
479
488
|
onClick: r,
|
|
480
489
|
type: "button",
|
|
481
490
|
...t,
|
|
482
|
-
children: /* @__PURE__ */ i(
|
|
491
|
+
children: /* @__PURE__ */ i(dn, { className: "size-3.5" })
|
|
483
492
|
}
|
|
484
493
|
);
|
|
485
494
|
};
|
|
@@ -492,16 +501,16 @@ function $e({ ...e }) {
|
|
|
492
501
|
function Ue({ ...e }) {
|
|
493
502
|
return /* @__PURE__ */ i(Me.CollapsibleContent, { "data-slot": "collapsible-content", ...e });
|
|
494
503
|
}
|
|
495
|
-
const
|
|
504
|
+
const Vn = ({ className: e, ...t }) => /* @__PURE__ */ i(ze, { className: k("not-prose mb-4 text-primary text-xs", e), ...t }), Wn = ({ className: e, count: t, children: n, ...o }) => {
|
|
496
505
|
const { t: r } = M(["chat"]);
|
|
497
|
-
return /* @__PURE__ */ i($e, { className:
|
|
506
|
+
return /* @__PURE__ */ i($e, { className: k("flex items-center gap-2", e), ...o, children: n ?? /* @__PURE__ */ w(J, { children: [
|
|
498
507
|
/* @__PURE__ */ i("p", { className: "font-medium", children: r("used_sources", { count: t }) }),
|
|
499
508
|
/* @__PURE__ */ i(ie, { className: "h-4 w-4" })
|
|
500
509
|
] }) });
|
|
501
510
|
}, Yn = ({ className: e, ...t }) => /* @__PURE__ */ i(
|
|
502
511
|
Ue,
|
|
503
512
|
{
|
|
504
|
-
className:
|
|
513
|
+
className: k(
|
|
505
514
|
"mt-3 flex w-fit flex-col gap-2",
|
|
506
515
|
"data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 outline-none data-[state=closed]:animate-out data-[state=open]:animate-in",
|
|
507
516
|
e
|
|
@@ -509,7 +518,7 @@ const Wn = ({ className: e, ...t }) => /* @__PURE__ */ i(ze, { className: y("not
|
|
|
509
518
|
...t
|
|
510
519
|
}
|
|
511
520
|
), Xn = ({ href: e, title: t, children: n, ...o }) => /* @__PURE__ */ i("a", { className: "flex items-center gap-2", href: e, rel: "noreferrer", target: "_blank", ...o, children: n ?? /* @__PURE__ */ w(J, { children: [
|
|
512
|
-
/* @__PURE__ */ i(
|
|
521
|
+
/* @__PURE__ */ i(pn, { className: "h-4 w-4" }),
|
|
513
522
|
/* @__PURE__ */ i("span", { className: "block font-medium", children: t })
|
|
514
523
|
] }) }), Kn = ({ latestProgress: e, parts: t }) => {
|
|
515
524
|
const n = e.data[0].status, o = e.data[0].message, r = t.lastIndexOf(e);
|
|
@@ -517,12 +526,12 @@ const Wn = ({ className: e, ...t }) => /* @__PURE__ */ i(ze, { className: y("not
|
|
|
517
526
|
(f) => f.type === "text" && (f.text || "").trim().length > 0 || f.type === "tool-invocation" || f.type === "tool-call"
|
|
518
527
|
) && n !== "running")) return null;
|
|
519
528
|
const s = n === "running", p = n === "error", h = ge(o);
|
|
520
|
-
return /* @__PURE__ */ i("div", { className:
|
|
529
|
+
return /* @__PURE__ */ i("div", { className: k(
|
|
521
530
|
"flex w-full py-3 mx-auto max-w-4xl px-4 md:px-0 animate-in-bubble",
|
|
522
531
|
h === "rtl" ? "justify-end" : "justify-start"
|
|
523
|
-
), children: /* @__PURE__ */ w("div", { className:
|
|
532
|
+
), children: /* @__PURE__ */ w("div", { className: k("flex items-center gap-3 text-sm text-muted-foreground", h === "rtl" && "flex-row-reverse"), dir: h, children: [
|
|
524
533
|
s ? /* @__PURE__ */ i("div", { className: "size-4 animate-spin rounded-full border-2 border-primary border-r-transparent shrink-0" }) : p ? /* @__PURE__ */ i(he, { className: "size-4 text-destructive shrink-0" }) : /* @__PURE__ */ i(De, { className: "size-4 text-green-500 shrink-0" }),
|
|
525
|
-
/* @__PURE__ */ i("span", { className:
|
|
534
|
+
/* @__PURE__ */ i("span", { className: k("font-medium", s && "animate-pulse"), children: o })
|
|
526
535
|
] }) });
|
|
527
536
|
};
|
|
528
537
|
function Zn({
|
|
@@ -537,12 +546,12 @@ function Zn({
|
|
|
537
546
|
className: s,
|
|
538
547
|
readonly: p
|
|
539
548
|
}) {
|
|
540
|
-
const { i18n: h, t: f } = M(["chat", "translation"]), b = h.language === "fa", { WelcomeScreen: m } =
|
|
541
|
-
return /* @__PURE__ */ w(qn, { className:
|
|
549
|
+
const { i18n: h, t: f } = M(["chat", "translation"]), b = h.language === "fa", { WelcomeScreen: m } = W(), y = e[e.length - 1], d = y?.role === "assistant" && (t === "ready" || y.parts.some((v) => v.type === "data-chat-finished"));
|
|
550
|
+
return /* @__PURE__ */ w(qn, { className: k("min-h-0 flex-1", s), children: [
|
|
542
551
|
/* @__PURE__ */ w(jn, { className: "max-w-4xl mx-auto w-full px-4 md:px-0 pb-32", dir: "ltr", children: [
|
|
543
552
|
e.length === 0 && !n ? /* @__PURE__ */ i(m, { onSuggestionClick: l }) : e.map((v) => /* @__PURE__ */ w("div", { children: [
|
|
544
|
-
v.role === "assistant" && v.parts.filter((x) => x.type === "source-url").length > 0 && /* @__PURE__ */ w(
|
|
545
|
-
/* @__PURE__ */ i(
|
|
553
|
+
v.role === "assistant" && v.parts.filter((x) => x.type === "source-url").length > 0 && /* @__PURE__ */ w(Vn, { children: [
|
|
554
|
+
/* @__PURE__ */ i(Wn, { count: v.parts.filter((x) => x.type === "source-url").length }),
|
|
546
555
|
v.parts.filter((x) => x.type === "source-url").map((x, g) => /* @__PURE__ */ i(Yn, { children: /* @__PURE__ */ i(Xn, { href: x.url, title: x.url }, `${v.id}-${g}`) }, `${v.id}-${g}`))
|
|
547
556
|
] }),
|
|
548
557
|
v.parts.map((x, g) => /* @__PURE__ */ i(
|
|
@@ -563,11 +572,11 @@ function Zn({
|
|
|
563
572
|
))
|
|
564
573
|
] }, v.id)),
|
|
565
574
|
(() => {
|
|
566
|
-
if (!
|
|
567
|
-
const v =
|
|
575
|
+
if (!y || y.role !== "assistant") return null;
|
|
576
|
+
const v = y.parts.filter((g) => g.type === "data-progress-update");
|
|
568
577
|
if (v.length === 0) return null;
|
|
569
578
|
const x = v[v.length - 1];
|
|
570
|
-
return x ? /* @__PURE__ */ i(Kn, { latestProgress: x, parts:
|
|
579
|
+
return x ? /* @__PURE__ */ i(Kn, { latestProgress: x, parts: y.parts }) : null;
|
|
571
580
|
})(),
|
|
572
581
|
(n || t === "submitted") && /* @__PURE__ */ i("div", { className: "animate-in-bubble", children: /* @__PURE__ */ i(fe, {}) }),
|
|
573
582
|
t === "streaming" && (() => {
|
|
@@ -576,12 +585,12 @@ function Zn({
|
|
|
576
585
|
(g) => g.type === "text" && g.text?.trim().length > 0 || g.type === "reasoning" || g.type === "tool-invocation" || g.type === "tool-call"
|
|
577
586
|
) ? null : /* @__PURE__ */ i(fe, {});
|
|
578
587
|
})(),
|
|
579
|
-
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:
|
|
588
|
+
t === "error" && o && /* @__PURE__ */ i("div", { className: "mx-auto max-w-4xl w-full px-4 my-3 animate-in-bubble", children: /* @__PURE__ */ w("div", { className: k(
|
|
580
589
|
"flex w-full items-start gap-3 px-4 py-3.5 rounded-xl bg-destructive/8 border border-destructive/15",
|
|
581
590
|
b ? "border-r-2 border-r-destructive/60" : "border-l-2 border-l-destructive/60"
|
|
582
591
|
), dir: b ? "rtl" : "ltr", children: [
|
|
583
592
|
/* @__PURE__ */ i("div", { className: "size-1.5 rounded-full bg-destructive mt-2 shrink-0" }),
|
|
584
|
-
/* @__PURE__ */ w("div", { className:
|
|
593
|
+
/* @__PURE__ */ w("div", { className: k("text-sm text-destructive/90 leading-relaxed flex-1", b ? "text-right" : "text-left"), children: [
|
|
585
594
|
/* @__PURE__ */ i("span", { className: "font-semibold", children: f("error") }),
|
|
586
595
|
" ",
|
|
587
596
|
o.message
|
|
@@ -596,7 +605,7 @@ function Jn({ className: e, ...t }) {
|
|
|
596
605
|
"textarea",
|
|
597
606
|
{
|
|
598
607
|
"data-slot": "textarea",
|
|
599
|
-
className:
|
|
608
|
+
className: k(
|
|
600
609
|
"border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
|
|
601
610
|
e
|
|
602
611
|
),
|
|
@@ -607,7 +616,7 @@ function Jn({ className: e, ...t }) {
|
|
|
607
616
|
const Qn = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: "bg-transparent w-full", children: /* @__PURE__ */ i(
|
|
608
617
|
"form",
|
|
609
618
|
{
|
|
610
|
-
className:
|
|
619
|
+
className: k(
|
|
611
620
|
"w-full flex items-end gap-2 overflow-hidden",
|
|
612
621
|
"rounded-lg bg-surface glow-primary",
|
|
613
622
|
"px-3 py-2",
|
|
@@ -638,7 +647,7 @@ const Qn = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: "bg
|
|
|
638
647
|
Jn,
|
|
639
648
|
{
|
|
640
649
|
dir: l,
|
|
641
|
-
className:
|
|
650
|
+
className: k(
|
|
642
651
|
"flex-1 resize-none rounded-none border-none shadow-none outline-none ring-0",
|
|
643
652
|
"px-2 py-2.5",
|
|
644
653
|
"field-sizing-content max-h-[6lh] bg-transparent dark:bg-transparent",
|
|
@@ -656,12 +665,12 @@ const Qn = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: "bg
|
|
|
656
665
|
...o
|
|
657
666
|
}
|
|
658
667
|
);
|
|
659
|
-
}, to = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className:
|
|
660
|
-
const r = n ??
|
|
668
|
+
}, to = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: k("flex shrink-0 items-center gap-1.5 pb-1", e), ...t }), no = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: k("flex items-center gap-0.5", e), ...t }), oo = ({ variant: e = "ghost", className: t, size: n, ...o }) => {
|
|
669
|
+
const r = n ?? cn.count(o.children) > 1 ? "default" : "icon";
|
|
661
670
|
return /* @__PURE__ */ i(
|
|
662
671
|
ee,
|
|
663
672
|
{
|
|
664
|
-
className:
|
|
673
|
+
className: k(
|
|
665
674
|
"shrink-0 gap-1.5 rounded-xl",
|
|
666
675
|
"text-muted-foreground hover:text-foreground",
|
|
667
676
|
"hover:bg-accent/60 transition-all duration-200",
|
|
@@ -683,11 +692,11 @@ const Qn = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: "bg
|
|
|
683
692
|
children: r,
|
|
684
693
|
...a
|
|
685
694
|
}) => {
|
|
686
|
-
let l = /* @__PURE__ */ i(
|
|
687
|
-
return o === "submitted" ? l = /* @__PURE__ */ i(
|
|
695
|
+
let l = /* @__PURE__ */ i(hn, { className: "size-4" });
|
|
696
|
+
return o === "submitted" ? l = /* @__PURE__ */ i(gn, { className: "size-4 animate-spin" }) : o === "streaming" ? l = /* @__PURE__ */ i(mn, { className: "size-3.5 fill-current" }) : o === "error" && (l = /* @__PURE__ */ i(he, { className: "size-4" })), /* @__PURE__ */ i(
|
|
688
697
|
ee,
|
|
689
698
|
{
|
|
690
|
-
className:
|
|
699
|
+
className: k(
|
|
691
700
|
"shrink-0 rounded-lg size-9",
|
|
692
701
|
"bg-gradient-to-br from-primary to-primary/80",
|
|
693
702
|
"text-primary-foreground",
|
|
@@ -709,16 +718,16 @@ const Qn = ({ className: e, ...t }) => /* @__PURE__ */ i("div", { className: "bg
|
|
|
709
718
|
}
|
|
710
719
|
);
|
|
711
720
|
};
|
|
712
|
-
function
|
|
721
|
+
function It({ delayDuration: e = 400, ...t }) {
|
|
713
722
|
return /* @__PURE__ */ i(K.Provider, { "data-slot": "tooltip-provider", delayDuration: e, ...t });
|
|
714
723
|
}
|
|
715
|
-
function It({ ...e }) {
|
|
716
|
-
return /* @__PURE__ */ i(At, { children: /* @__PURE__ */ i(K.Root, { "data-slot": "tooltip", ...e }) });
|
|
717
|
-
}
|
|
718
724
|
function Rt({ ...e }) {
|
|
725
|
+
return /* @__PURE__ */ i(It, { children: /* @__PURE__ */ i(K.Root, { "data-slot": "tooltip", ...e }) });
|
|
726
|
+
}
|
|
727
|
+
function Ot({ ...e }) {
|
|
719
728
|
return /* @__PURE__ */ i(K.Trigger, { "data-slot": "tooltip-trigger", ...e });
|
|
720
729
|
}
|
|
721
|
-
function
|
|
730
|
+
function Ft({
|
|
722
731
|
className: e,
|
|
723
732
|
sideOffset: t = 0,
|
|
724
733
|
children: n,
|
|
@@ -729,7 +738,7 @@ function Ot({
|
|
|
729
738
|
{
|
|
730
739
|
"data-slot": "tooltip-content",
|
|
731
740
|
sideOffset: t,
|
|
732
|
-
className:
|
|
741
|
+
className: k(
|
|
733
742
|
"bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-sm text-balance",
|
|
734
743
|
e
|
|
735
744
|
),
|
|
@@ -762,15 +771,15 @@ function io({
|
|
|
762
771
|
conversationId: a,
|
|
763
772
|
className: l
|
|
764
773
|
}) {
|
|
765
|
-
const { t: c } = M(["chat", "translation"]), { composer: s } =
|
|
774
|
+
const { t: c } = M(["chat", "translation"]), { composer: s } = W(), [p, h] = B(""), [f, b] = B([]), m = ao(), y = Ge(null), d = Ge(null);
|
|
766
775
|
Q(() => {
|
|
767
|
-
!m && a === "/" &&
|
|
776
|
+
!m && a === "/" && y.current && y.current.focus();
|
|
768
777
|
}, [a, m]);
|
|
769
778
|
const v = oe((E) => {
|
|
770
779
|
if (E.target.files) {
|
|
771
780
|
const I = Array.from(E.target.files), U = s?.attachments?.maxSize;
|
|
772
781
|
if (U && I.filter((ne) => ne.size > U).length > 0) {
|
|
773
|
-
|
|
782
|
+
Rn.error(c("file_too_large", { size: U }));
|
|
774
783
|
return;
|
|
775
784
|
}
|
|
776
785
|
b((z) => [...z, ...I]);
|
|
@@ -784,7 +793,7 @@ function io({
|
|
|
784
793
|
f.forEach((U) => I.items.add(U)), e(p, I.files), h(""), b([]);
|
|
785
794
|
}
|
|
786
795
|
};
|
|
787
|
-
return /* @__PURE__ */ i("div", { className:
|
|
796
|
+
return /* @__PURE__ */ i("div", { className: k("shrink-0 px-4 pb-5 pt-2 md:px-6 md:pb-6 w-full", l), children: /* @__PURE__ */ i("div", { className: "max-w-4xl mx-auto w-full", children: /* @__PURE__ */ w(Qn, { onSubmit: R, children: [
|
|
788
797
|
/* @__PURE__ */ i(
|
|
789
798
|
"input",
|
|
790
799
|
{
|
|
@@ -798,14 +807,14 @@ function io({
|
|
|
798
807
|
),
|
|
799
808
|
/* @__PURE__ */ w("div", { className: "flex flex-col flex-1 gap-2", children: [
|
|
800
809
|
f.length > 0 && /* @__PURE__ */ i("div", { className: "flex flex-wrap gap-2 px-2 pt-2", children: f.map((E, I) => /* @__PURE__ */ w("div", { className: "group relative flex items-center gap-2 rounded-xl glass-surface px-2.5 py-1.5 text-sm shadow-sm", children: [
|
|
801
|
-
E.type.startsWith("image/") ? /* @__PURE__ */ i("img", { src: URL.createObjectURL(E), alt: E.name, className: "size-7 rounded-lg object-cover ring-1 ring-border/50" }) : /* @__PURE__ */ i(
|
|
810
|
+
E.type.startsWith("image/") ? /* @__PURE__ */ i("img", { src: URL.createObjectURL(E), alt: E.name, className: "size-7 rounded-lg object-cover ring-1 ring-border/50" }) : /* @__PURE__ */ i(Et, { className: "size-3.5 text-muted-foreground shrink-0" }),
|
|
802
811
|
/* @__PURE__ */ i("span", { className: "max-w-[120px] truncate text-xs font-medium text-foreground/80", children: E.name }),
|
|
803
812
|
/* @__PURE__ */ i("button", { type: "button", onClick: () => x(I), className: "ml-0.5 flex items-center justify-center size-4 rounded-full hover:bg-destructive/15 text-muted-foreground/60 hover:text-destructive transition-all duration-150", children: /* @__PURE__ */ i(he, { className: "size-2.5" }) })
|
|
804
813
|
] }, `${E.name}-${I}`)) }),
|
|
805
814
|
/* @__PURE__ */ i(
|
|
806
815
|
eo,
|
|
807
816
|
{
|
|
808
|
-
ref:
|
|
817
|
+
ref: y,
|
|
809
818
|
onChange: (E) => h(E.target.value),
|
|
810
819
|
value: p,
|
|
811
820
|
autoFocus: !m,
|
|
@@ -814,9 +823,9 @@ function io({
|
|
|
814
823
|
)
|
|
815
824
|
] }),
|
|
816
825
|
/* @__PURE__ */ w(to, { children: [
|
|
817
|
-
/* @__PURE__ */ i(no, { children: (s?.attachments?.enabled ?? !1) && /* @__PURE__ */ w(
|
|
818
|
-
/* @__PURE__ */ i(
|
|
819
|
-
/* @__PURE__ */ i(
|
|
826
|
+
/* @__PURE__ */ i(no, { children: (s?.attachments?.enabled ?? !1) && /* @__PURE__ */ w(Rt, { children: [
|
|
827
|
+
/* @__PURE__ */ i(Ot, { asChild: !0, children: /* @__PURE__ */ i(oo, { variant: "ghost", onClick: () => d.current?.click(), disabled: g, children: /* @__PURE__ */ i(fn, { className: "size-4" }) }) }),
|
|
828
|
+
/* @__PURE__ */ i(Ft, { children: c("attach_file") })
|
|
820
829
|
] }) }),
|
|
821
830
|
/* @__PURE__ */ i(
|
|
822
831
|
ro,
|
|
@@ -844,7 +853,7 @@ const lo = ({
|
|
|
844
853
|
return /* @__PURE__ */ i(
|
|
845
854
|
ee,
|
|
846
855
|
{
|
|
847
|
-
className:
|
|
856
|
+
className: k("cursor-pointer rounded-full px-4", n),
|
|
848
857
|
onClick: c,
|
|
849
858
|
size: r,
|
|
850
859
|
type: "button",
|
|
@@ -854,7 +863,7 @@ const lo = ({
|
|
|
854
863
|
}
|
|
855
864
|
);
|
|
856
865
|
}, so = ({ onSuggestionClick: e, icons: t }) => {
|
|
857
|
-
const { t: n, i18n: o } = M(["chat", "translation"]), { welcome: r } =
|
|
866
|
+
const { t: n, i18n: o } = M(["chat", "translation"]), { welcome: r } = W(), a = r?.prompts ?? [], l = a.map((h) => {
|
|
858
867
|
const f = typeof h == "string" ? h : h.text;
|
|
859
868
|
return n(f);
|
|
860
869
|
}).filter((h) => h !== null && h !== ""), c = o.dir() === "rtl", s = r?.greeting ? n(r.greeting) ?? r.greeting : n("welcome.title"), p = r?.subtitle ? n(r.subtitle) : null;
|
|
@@ -873,7 +882,7 @@ const lo = ({
|
|
|
873
882
|
p && /* @__PURE__ */ i("p", { className: "text-muted-foreground text-base md:text-lg font-medium max-w-md mx-auto leading-relaxed opacity-85 dark:opacity-70", children: p })
|
|
874
883
|
] }),
|
|
875
884
|
l.length > 0 && /* @__PURE__ */ i("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-3 w-full max-w-xl", children: l.map((h, f) => {
|
|
876
|
-
const b = a[f], m = typeof b != "string" ? b.icon : null,
|
|
885
|
+
const b = a[f], m = typeof b != "string" ? b.icon : null, y = t && t[f % t.length] ? t[f % t.length] : bn, d = m || y;
|
|
877
886
|
return /* @__PURE__ */ i(
|
|
878
887
|
"div",
|
|
879
888
|
{
|
|
@@ -885,7 +894,7 @@ const lo = ({
|
|
|
885
894
|
onClick: () => e(h),
|
|
886
895
|
suggestion: h,
|
|
887
896
|
variant: "ghost",
|
|
888
|
-
className:
|
|
897
|
+
className: k(
|
|
889
898
|
"h-full py-4 px-5 justify-start text-start items-center whitespace-normal w-full",
|
|
890
899
|
"group rounded-xl relative overflow-hidden",
|
|
891
900
|
"bg-secondary/45 border border-border/12 dark:bg-secondary/20 dark:border-border/5",
|
|
@@ -897,7 +906,7 @@ const lo = ({
|
|
|
897
906
|
/* @__PURE__ */ i("div", { className: "size-8 rounded-lg bg-secondary/35 dark:bg-background/40 flex items-center justify-center shrink-0 border border-border/10 dark:border-border/5 group-hover:bg-primary group-hover:text-primary-foreground transition-colors duration-300", children: /* @__PURE__ */ i(d, { className: "size-4" }) }),
|
|
898
907
|
/* @__PURE__ */ i("div", { className: "flex flex-col gap-0.5 overflow-hidden", children: /* @__PURE__ */ i("span", { className: "text-sm md:text-base font-semibold text-foreground/80 group-hover:text-foreground transition-colors", children: h.length > 60 ? h.substring(0, 60) + "..." : h }) })
|
|
899
908
|
] }),
|
|
900
|
-
/* @__PURE__ */ i("div", { className:
|
|
909
|
+
/* @__PURE__ */ i("div", { className: k(
|
|
901
910
|
"absolute bottom-0 left-0 w-full h-[1.5px] bg-primary scale-x-0 group-hover:scale-x-100 transition-transform duration-500",
|
|
902
911
|
c ? "origin-right" : "origin-left"
|
|
903
912
|
) })
|
|
@@ -911,20 +920,20 @@ const lo = ({
|
|
|
911
920
|
]
|
|
912
921
|
}
|
|
913
922
|
);
|
|
914
|
-
},
|
|
923
|
+
}, Lt = ({ className: e, from: t, ...n }) => /* @__PURE__ */ i(
|
|
915
924
|
"div",
|
|
916
925
|
{
|
|
917
|
-
className:
|
|
926
|
+
className: k(
|
|
918
927
|
"group flex w-full items-end gap-3",
|
|
919
928
|
t === "user" ? "is-user justify-end" : "is-assistant",
|
|
920
929
|
e
|
|
921
930
|
),
|
|
922
931
|
...n
|
|
923
932
|
}
|
|
924
|
-
),
|
|
933
|
+
), Dt = ({ children: e, className: t, isPlain: n, ...o }) => /* @__PURE__ */ i(
|
|
925
934
|
"div",
|
|
926
935
|
{
|
|
927
|
-
className:
|
|
936
|
+
className: k(
|
|
928
937
|
"flex flex-col gap-2 overflow-hidden text-[1.0625rem]",
|
|
929
938
|
// User bubble: gradient pill with glow shadow
|
|
930
939
|
!n && [
|
|
@@ -948,7 +957,7 @@ const lo = ({
|
|
|
948
957
|
), co = ({ className: e, children: t, ...n }) => /* @__PURE__ */ i(
|
|
949
958
|
"div",
|
|
950
959
|
{
|
|
951
|
-
className:
|
|
960
|
+
className: k(
|
|
952
961
|
"flex items-center gap-0.5",
|
|
953
962
|
"opacity-100",
|
|
954
963
|
"transition-opacity duration-200",
|
|
@@ -969,7 +978,7 @@ const lo = ({
|
|
|
969
978
|
const c = /* @__PURE__ */ w(
|
|
970
979
|
ee,
|
|
971
980
|
{
|
|
972
|
-
className:
|
|
981
|
+
className: k(
|
|
973
982
|
"size-7 p-1 rounded-lg",
|
|
974
983
|
"text-muted-foreground/60 hover:text-foreground",
|
|
975
984
|
"hover:bg-accent/70",
|
|
@@ -987,9 +996,9 @@ const lo = ({
|
|
|
987
996
|
]
|
|
988
997
|
}
|
|
989
998
|
);
|
|
990
|
-
return e ? /* @__PURE__ */ i(
|
|
991
|
-
/* @__PURE__ */ i(
|
|
992
|
-
/* @__PURE__ */ i(
|
|
999
|
+
return e ? /* @__PURE__ */ i(It, { children: /* @__PURE__ */ w(Rt, { children: [
|
|
1000
|
+
/* @__PURE__ */ i(Ot, { asChild: !0, children: c }),
|
|
1001
|
+
/* @__PURE__ */ i(Ft, { children: /* @__PURE__ */ i("p", { children: e }) })
|
|
993
1002
|
] }) }) : c;
|
|
994
1003
|
};
|
|
995
1004
|
class le {
|
|
@@ -1010,7 +1019,7 @@ class le {
|
|
|
1010
1019
|
le.prototype.normal = {};
|
|
1011
1020
|
le.prototype.property = {};
|
|
1012
1021
|
le.prototype.space = void 0;
|
|
1013
|
-
function
|
|
1022
|
+
function Pt(e, t) {
|
|
1014
1023
|
const n = {}, o = {};
|
|
1015
1024
|
for (const r of e)
|
|
1016
1025
|
Object.assign(n, r.property), Object.assign(o, r.normal);
|
|
@@ -1058,7 +1067,7 @@ const Ie = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
1058
1067
|
number: u,
|
|
1059
1068
|
overloadedBoolean: Ae,
|
|
1060
1069
|
spaceSeparated: T
|
|
1061
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
1070
|
+
}, Symbol.toStringTag, { value: "Module" })), ye = (
|
|
1062
1071
|
/** @type {ReadonlyArray<keyof typeof types>} */
|
|
1063
1072
|
Object.keys(Ie)
|
|
1064
1073
|
);
|
|
@@ -1078,15 +1087,15 @@ class Be extends D {
|
|
|
1078
1087
|
*/
|
|
1079
1088
|
constructor(t, n, o, r) {
|
|
1080
1089
|
let a = -1;
|
|
1081
|
-
if (super(t, n),
|
|
1082
|
-
for (; ++a <
|
|
1083
|
-
const l =
|
|
1084
|
-
|
|
1090
|
+
if (super(t, n), Ke(this, "space", r), typeof o == "number")
|
|
1091
|
+
for (; ++a < ye.length; ) {
|
|
1092
|
+
const l = ye[a];
|
|
1093
|
+
Ke(this, ye[a], (o & Ie[l]) === Ie[l]);
|
|
1085
1094
|
}
|
|
1086
1095
|
}
|
|
1087
1096
|
}
|
|
1088
1097
|
Be.prototype.defined = !0;
|
|
1089
|
-
function
|
|
1098
|
+
function Ke(e, t, n) {
|
|
1090
1099
|
n && (e[t] = n);
|
|
1091
1100
|
}
|
|
1092
1101
|
function te(e) {
|
|
@@ -1102,7 +1111,7 @@ function te(e) {
|
|
|
1102
1111
|
}
|
|
1103
1112
|
return new le(t, n, e.space);
|
|
1104
1113
|
}
|
|
1105
|
-
const
|
|
1114
|
+
const Mt = te({
|
|
1106
1115
|
properties: {
|
|
1107
1116
|
ariaActiveDescendant: null,
|
|
1108
1117
|
ariaAtomic: A,
|
|
@@ -1158,11 +1167,11 @@ const Pt = te({
|
|
|
1158
1167
|
return t === "role" ? t : "aria-" + t.slice(4).toLowerCase();
|
|
1159
1168
|
}
|
|
1160
1169
|
});
|
|
1161
|
-
function
|
|
1170
|
+
function zt(e, t) {
|
|
1162
1171
|
return t in e ? e[t] : t;
|
|
1163
1172
|
}
|
|
1164
|
-
function
|
|
1165
|
-
return
|
|
1173
|
+
function $t(e, t) {
|
|
1174
|
+
return zt(e, t.toLowerCase());
|
|
1166
1175
|
}
|
|
1167
1176
|
const po = te({
|
|
1168
1177
|
attributes: {
|
|
@@ -1524,7 +1533,7 @@ const po = te({
|
|
|
1524
1533
|
unselectable: null
|
|
1525
1534
|
},
|
|
1526
1535
|
space: "html",
|
|
1527
|
-
transform:
|
|
1536
|
+
transform: $t
|
|
1528
1537
|
}), ho = te({
|
|
1529
1538
|
attributes: {
|
|
1530
1539
|
accentHeight: "accent-height",
|
|
@@ -2083,8 +2092,8 @@ const po = te({
|
|
|
2083
2092
|
zoomAndPan: null
|
|
2084
2093
|
},
|
|
2085
2094
|
space: "svg",
|
|
2086
|
-
transform:
|
|
2087
|
-
}),
|
|
2095
|
+
transform: zt
|
|
2096
|
+
}), Ut = te({
|
|
2088
2097
|
properties: {
|
|
2089
2098
|
xLinkActuate: null,
|
|
2090
2099
|
xLinkArcRole: null,
|
|
@@ -2098,18 +2107,18 @@ const po = te({
|
|
|
2098
2107
|
transform(e, t) {
|
|
2099
2108
|
return "xlink:" + t.slice(5).toLowerCase();
|
|
2100
2109
|
}
|
|
2101
|
-
}),
|
|
2110
|
+
}), Bt = te({
|
|
2102
2111
|
attributes: { xmlnsxlink: "xmlns:xlink" },
|
|
2103
2112
|
properties: { xmlnsXLink: null, xmlns: null },
|
|
2104
2113
|
space: "xmlns",
|
|
2105
|
-
transform:
|
|
2106
|
-
}),
|
|
2114
|
+
transform: $t
|
|
2115
|
+
}), Ht = te({
|
|
2107
2116
|
properties: { xmlBase: null, xmlLang: null, xmlSpace: null },
|
|
2108
2117
|
space: "xml",
|
|
2109
2118
|
transform(e, t) {
|
|
2110
2119
|
return "xml:" + t.slice(3).toLowerCase();
|
|
2111
2120
|
}
|
|
2112
|
-
}), go = /[A-Z]/g,
|
|
2121
|
+
}), go = /[A-Z]/g, Ze = /-[a-z]/g, mo = /^data[-\w.:]+$/i;
|
|
2113
2122
|
function fo(e, t) {
|
|
2114
2123
|
const n = ae(t);
|
|
2115
2124
|
let o = t, r = D;
|
|
@@ -2117,11 +2126,11 @@ function fo(e, t) {
|
|
|
2117
2126
|
return e.property[e.normal[n]];
|
|
2118
2127
|
if (n.length > 4 && n.slice(0, 4) === "data" && mo.test(t)) {
|
|
2119
2128
|
if (t.charAt(4) === "-") {
|
|
2120
|
-
const a = t.slice(5).replace(
|
|
2129
|
+
const a = t.slice(5).replace(Ze, yo);
|
|
2121
2130
|
o = "data" + a.charAt(0).toUpperCase() + a.slice(1);
|
|
2122
2131
|
} else {
|
|
2123
2132
|
const a = t.slice(4);
|
|
2124
|
-
if (!
|
|
2133
|
+
if (!Ze.test(a)) {
|
|
2125
2134
|
let l = a.replace(go, bo);
|
|
2126
2135
|
l.charAt(0) !== "-" && (l = "-" + l), t = "data" + l;
|
|
2127
2136
|
}
|
|
@@ -2133,11 +2142,11 @@ function fo(e, t) {
|
|
|
2133
2142
|
function bo(e) {
|
|
2134
2143
|
return "-" + e.toLowerCase();
|
|
2135
2144
|
}
|
|
2136
|
-
function
|
|
2145
|
+
function yo(e) {
|
|
2137
2146
|
return e.charAt(1).toUpperCase();
|
|
2138
2147
|
}
|
|
2139
|
-
const
|
|
2140
|
-
function
|
|
2148
|
+
const ko = Pt([Mt, po, Ut, Bt, Ht], "html"), vo = Pt([Mt, ho, Ut, Bt, Ht], "svg");
|
|
2149
|
+
function Je(e) {
|
|
2141
2150
|
const t = [], n = String(e || "");
|
|
2142
2151
|
let o = n.indexOf(","), r = 0, a = !1;
|
|
2143
2152
|
for (; !a; ) {
|
|
@@ -2147,13 +2156,13 @@ function Ze(e) {
|
|
|
2147
2156
|
}
|
|
2148
2157
|
return t;
|
|
2149
2158
|
}
|
|
2150
|
-
const
|
|
2159
|
+
const Qe = /[#.]/g;
|
|
2151
2160
|
function wo(e, t) {
|
|
2152
2161
|
const n = e || "", o = {};
|
|
2153
2162
|
let r = 0, a, l;
|
|
2154
2163
|
for (; r < n.length; ) {
|
|
2155
|
-
|
|
2156
|
-
const c =
|
|
2164
|
+
Qe.lastIndex = r;
|
|
2165
|
+
const c = Qe.exec(n), s = n.slice(r, c ? c.index : n.length);
|
|
2157
2166
|
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++);
|
|
2158
2167
|
}
|
|
2159
2168
|
return {
|
|
@@ -2164,11 +2173,11 @@ function wo(e, t) {
|
|
|
2164
2173
|
children: []
|
|
2165
2174
|
};
|
|
2166
2175
|
}
|
|
2167
|
-
function
|
|
2176
|
+
function et(e) {
|
|
2168
2177
|
const t = String(e || "").trim();
|
|
2169
2178
|
return t ? t.split(/[ \t\n\r\f]+/g) : [];
|
|
2170
2179
|
}
|
|
2171
|
-
function
|
|
2180
|
+
function qt(e, t, n) {
|
|
2172
2181
|
const o = n ? Eo(n) : void 0;
|
|
2173
2182
|
function r(a, l, ...c) {
|
|
2174
2183
|
let s;
|
|
@@ -2224,13 +2233,13 @@ function _o(e, t, n, o) {
|
|
|
2224
2233
|
if (typeof o == "number") {
|
|
2225
2234
|
if (Number.isNaN(o)) return;
|
|
2226
2235
|
a = o;
|
|
2227
|
-
} else typeof o == "boolean" ? a = o : typeof o == "string" ? r.spaceSeparated ? a =
|
|
2236
|
+
} else typeof o == "boolean" ? a = o : typeof o == "string" ? r.spaceSeparated ? a = et(o) : r.commaSeparated ? a = Je(o) : r.commaOrSpaceSeparated ? a = et(Je(o).join(" ")) : a = tt(r, r.property, o) : Array.isArray(o) ? a = [...o] : a = r.property === "style" ? So(o) : String(o);
|
|
2228
2237
|
if (Array.isArray(a)) {
|
|
2229
2238
|
const l = [];
|
|
2230
2239
|
for (const c of a)
|
|
2231
2240
|
l.push(
|
|
2232
2241
|
/** @type {number | string} */
|
|
2233
|
-
|
|
2242
|
+
tt(r, r.property, c)
|
|
2234
2243
|
);
|
|
2235
2244
|
a = l;
|
|
2236
2245
|
}
|
|
@@ -2251,7 +2260,7 @@ function Re(e, t) {
|
|
|
2251
2260
|
else
|
|
2252
2261
|
throw new Error("Expected node, nodes, or string, got `" + t + "`");
|
|
2253
2262
|
}
|
|
2254
|
-
function
|
|
2263
|
+
function tt(e, t, n) {
|
|
2255
2264
|
if (typeof n == "string") {
|
|
2256
2265
|
if (e.number && n && !Number.isNaN(Number(n)))
|
|
2257
2266
|
return Number(n);
|
|
@@ -2312,14 +2321,14 @@ const No = [
|
|
|
2312
2321
|
"solidColor",
|
|
2313
2322
|
"textArea",
|
|
2314
2323
|
"textPath"
|
|
2315
|
-
], To =
|
|
2324
|
+
], To = qt(ko, "div"), Co = qt(vo, "g", No), ke = {
|
|
2316
2325
|
html: "http://www.w3.org/1999/xhtml",
|
|
2317
2326
|
svg: "http://www.w3.org/2000/svg"
|
|
2318
2327
|
};
|
|
2319
2328
|
function Ao(e, t) {
|
|
2320
|
-
return
|
|
2329
|
+
return jt(e, {}) || { type: "root", children: [] };
|
|
2321
2330
|
}
|
|
2322
|
-
function
|
|
2331
|
+
function jt(e, t) {
|
|
2323
2332
|
const n = Io(e, t);
|
|
2324
2333
|
return n && t.afterTransform && t.afterTransform(e, n), n;
|
|
2325
2334
|
}
|
|
@@ -2347,7 +2356,7 @@ function Io(e, t) {
|
|
|
2347
2356
|
e
|
|
2348
2357
|
);
|
|
2349
2358
|
case 9:
|
|
2350
|
-
return
|
|
2359
|
+
return nt(
|
|
2351
2360
|
/** @type {Document} */
|
|
2352
2361
|
e,
|
|
2353
2362
|
t
|
|
@@ -2355,7 +2364,7 @@ function Io(e, t) {
|
|
|
2355
2364
|
case 10:
|
|
2356
2365
|
return Ro();
|
|
2357
2366
|
case 11:
|
|
2358
|
-
return
|
|
2367
|
+
return nt(
|
|
2359
2368
|
/** @type {DocumentFragment} */
|
|
2360
2369
|
e,
|
|
2361
2370
|
t
|
|
@@ -2364,8 +2373,8 @@ function Io(e, t) {
|
|
|
2364
2373
|
return;
|
|
2365
2374
|
}
|
|
2366
2375
|
}
|
|
2367
|
-
function
|
|
2368
|
-
return { type: "root", children:
|
|
2376
|
+
function nt(e, t) {
|
|
2377
|
+
return { type: "root", children: Gt(e, t) };
|
|
2369
2378
|
}
|
|
2370
2379
|
function Ro() {
|
|
2371
2380
|
return { type: "doctype" };
|
|
@@ -2377,20 +2386,20 @@ function Fo(e) {
|
|
|
2377
2386
|
return { type: "comment", value: e.nodeValue || "" };
|
|
2378
2387
|
}
|
|
2379
2388
|
function Lo(e, t) {
|
|
2380
|
-
const n = e.namespaceURI, o = n ===
|
|
2389
|
+
const n = e.namespaceURI, o = n === ke.svg ? Co : To, r = n === ke.html ? e.tagName.toLowerCase() : e.tagName, a = (
|
|
2381
2390
|
// @ts-expect-error: DOM types are wrong, content can exist.
|
|
2382
|
-
n ===
|
|
2391
|
+
n === ke.html && r === "template" ? e.content : e
|
|
2383
2392
|
), l = e.getAttributeNames(), c = {};
|
|
2384
2393
|
let s = -1;
|
|
2385
2394
|
for (; ++s < l.length; )
|
|
2386
2395
|
c[l[s]] = e.getAttribute(l[s]) || "";
|
|
2387
|
-
return o(r, c,
|
|
2396
|
+
return o(r, c, Gt(a, t));
|
|
2388
2397
|
}
|
|
2389
|
-
function
|
|
2398
|
+
function Gt(e, t) {
|
|
2390
2399
|
const n = e.childNodes, o = [];
|
|
2391
2400
|
let r = -1;
|
|
2392
2401
|
for (; ++r < n.length; ) {
|
|
2393
|
-
const a =
|
|
2402
|
+
const a = jt(n[r], t);
|
|
2394
2403
|
a !== void 0 && o.push(a);
|
|
2395
2404
|
}
|
|
2396
2405
|
return o;
|
|
@@ -2495,7 +2504,7 @@ function Uo() {
|
|
|
2495
2504
|
function Bo(e) {
|
|
2496
2505
|
return e !== null && typeof e == "object" && "type" in e;
|
|
2497
2506
|
}
|
|
2498
|
-
const
|
|
2507
|
+
const ot = (
|
|
2499
2508
|
// Note: overloads like this are needed to support optional generics.
|
|
2500
2509
|
/**
|
|
2501
2510
|
* @type {(
|
|
@@ -2522,7 +2531,7 @@ const nt = (
|
|
|
2522
2531
|
if (o(e.children[t], t, e))
|
|
2523
2532
|
return e.children[t];
|
|
2524
2533
|
})
|
|
2525
|
-
),
|
|
2534
|
+
), V = (
|
|
2526
2535
|
// Note: overloads in JSDoc can’t yet use different `@template`s.
|
|
2527
2536
|
/**
|
|
2528
2537
|
* @type {(
|
|
@@ -2552,7 +2561,7 @@ function Ho(e) {
|
|
|
2552
2561
|
const t = [];
|
|
2553
2562
|
let n = -1;
|
|
2554
2563
|
for (; ++n < e.length; )
|
|
2555
|
-
t[n] =
|
|
2564
|
+
t[n] = V(e[n]);
|
|
2556
2565
|
return qe(o);
|
|
2557
2566
|
function o(...r) {
|
|
2558
2567
|
let a = -1;
|
|
@@ -2584,7 +2593,7 @@ function jo(e) {
|
|
|
2584
2593
|
function Go(e) {
|
|
2585
2594
|
return e !== null && typeof e == "object" && "type" in e && "tagName" in e;
|
|
2586
2595
|
}
|
|
2587
|
-
const
|
|
2596
|
+
const rt = /\n/g, at = /[\t ]+/g, Oe = V("br"), it = V(Qo), Vo = V("p"), lt = V("tr"), Wo = V([
|
|
2588
2597
|
// List from: <https://html.spec.whatwg.org/multipage/rendering.html#hidden-elements>
|
|
2589
2598
|
"datalist",
|
|
2590
2599
|
"head",
|
|
@@ -2601,7 +2610,7 @@ const ot = /\n/g, rt = /[\t ]+/g, Oe = W("br"), at = W(Qo), Wo = W("p"), it = W(
|
|
|
2601
2610
|
Jo,
|
|
2602
2611
|
// From: <https://html.spec.whatwg.org/multipage/rendering.html#flow-content-3>
|
|
2603
2612
|
er
|
|
2604
|
-
]),
|
|
2613
|
+
]), Vt = V([
|
|
2605
2614
|
"address",
|
|
2606
2615
|
// Flow content
|
|
2607
2616
|
"article",
|
|
@@ -2684,11 +2693,11 @@ const ot = /\n/g, rt = /[\t ]+/g, Oe = W("br"), at = W(Qo), Wo = W("p"), it = W(
|
|
|
2684
2693
|
// Flow content (legacy)
|
|
2685
2694
|
]);
|
|
2686
2695
|
function Yo(e, t) {
|
|
2687
|
-
const n = t || {}, o = "children" in e ? e.children : [], r =
|
|
2696
|
+
const n = t || {}, o = "children" in e ? e.children : [], r = Vt(e), a = Xt(e, {
|
|
2688
2697
|
whitespace: n.whitespace || "normal"
|
|
2689
2698
|
}), l = [];
|
|
2690
2699
|
(e.type === "text" || e.type === "comment") && l.push(
|
|
2691
|
-
...
|
|
2700
|
+
...Yt(e, {
|
|
2692
2701
|
breakBefore: !0,
|
|
2693
2702
|
breakAfter: !0
|
|
2694
2703
|
})
|
|
@@ -2717,17 +2726,17 @@ function Yo(e, t) {
|
|
|
2717
2726
|
return s.join("");
|
|
2718
2727
|
}
|
|
2719
2728
|
function Wt(e, t, n) {
|
|
2720
|
-
return e.type === "element" ? Xo(e, t, n) : e.type === "text" ? n.whitespace === "normal" ?
|
|
2729
|
+
return e.type === "element" ? Xo(e, t, n) : e.type === "text" ? n.whitespace === "normal" ? Yt(e, n) : Ko(e) : [];
|
|
2721
2730
|
}
|
|
2722
2731
|
function Xo(e, t, n) {
|
|
2723
|
-
const o =
|
|
2732
|
+
const o = Xt(e, n), r = e.children || [];
|
|
2724
2733
|
let a = -1, l = [];
|
|
2725
|
-
if (
|
|
2734
|
+
if (Wo(e))
|
|
2726
2735
|
return l;
|
|
2727
2736
|
let c, s;
|
|
2728
|
-
for (Oe(e) ||
|
|
2729
|
-
|
|
2730
|
-
` :
|
|
2737
|
+
for (Oe(e) || lt(e) && // @ts-expect-error: something up with types of parents.
|
|
2738
|
+
ot(t, e, lt) ? s = `
|
|
2739
|
+
` : Vo(e) ? (c = 2, s = 2) : Vt(e) && (c = 1, s = 1); ++a < r.length; )
|
|
2731
2740
|
l = l.concat(
|
|
2732
2741
|
Wt(r[a], e, {
|
|
2733
2742
|
whitespace: o,
|
|
@@ -2735,15 +2744,15 @@ function Xo(e, t, n) {
|
|
|
2735
2744
|
breakAfter: a < r.length - 1 ? Oe(r[a + 1]) : s
|
|
2736
2745
|
})
|
|
2737
2746
|
);
|
|
2738
|
-
return
|
|
2739
|
-
|
|
2747
|
+
return it(e) && // @ts-expect-error: something up with types of parents.
|
|
2748
|
+
ot(t, e, it) && l.push(" "), c && l.unshift(c), s && l.push(s), l;
|
|
2740
2749
|
}
|
|
2741
|
-
function
|
|
2750
|
+
function Yt(e, t) {
|
|
2742
2751
|
const n = String(e.value), o = [], r = [];
|
|
2743
2752
|
let a = 0;
|
|
2744
2753
|
for (; a <= n.length; ) {
|
|
2745
|
-
|
|
2746
|
-
const s =
|
|
2754
|
+
rt.lastIndex = a;
|
|
2755
|
+
const s = rt.exec(n), p = s && "index" in s ? s.index : n.length;
|
|
2747
2756
|
o.push(
|
|
2748
2757
|
// Any sequence of collapsible spaces and tabs immediately preceding or
|
|
2749
2758
|
// following a segment break is removed.
|
|
@@ -2769,13 +2778,13 @@ function Zo(e, t, n) {
|
|
|
2769
2778
|
const o = [];
|
|
2770
2779
|
let r = 0, a;
|
|
2771
2780
|
for (; r < e.length; ) {
|
|
2772
|
-
|
|
2773
|
-
const l =
|
|
2781
|
+
at.lastIndex = r;
|
|
2782
|
+
const l = at.exec(e);
|
|
2774
2783
|
a = l ? l.index : e.length, !r && !a && l && !t && o.push(""), r !== a && o.push(e.slice(r, a)), r = l ? a + l[0].length : a;
|
|
2775
2784
|
}
|
|
2776
2785
|
return r !== a && !n && o.push(""), o.join(" ");
|
|
2777
2786
|
}
|
|
2778
|
-
function
|
|
2787
|
+
function Xt(e, t) {
|
|
2779
2788
|
if (e.type === "element") {
|
|
2780
2789
|
const n = e.properties || {};
|
|
2781
2790
|
switch (e.tagName) {
|
|
@@ -2805,7 +2814,7 @@ function Qo(e) {
|
|
|
2805
2814
|
function er(e) {
|
|
2806
2815
|
return e.tagName === "dialog" && !(e.properties || {}).open;
|
|
2807
2816
|
}
|
|
2808
|
-
const
|
|
2817
|
+
const Kt = [], tr = !0, st = !1, Zt = "skip";
|
|
2809
2818
|
function nr(e, t, n, o) {
|
|
2810
2819
|
let r;
|
|
2811
2820
|
r = t;
|
|
@@ -2830,20 +2839,20 @@ function nr(e, t, n, o) {
|
|
|
2830
2839
|
}
|
|
2831
2840
|
return b;
|
|
2832
2841
|
function b() {
|
|
2833
|
-
let m =
|
|
2834
|
-
if (a(s, p, h[h.length - 1] || void 0) && (m = or(n(s, h)), m[0] ===
|
|
2842
|
+
let m = Kt, y, d, v;
|
|
2843
|
+
if (a(s, p, h[h.length - 1] || void 0) && (m = or(n(s, h)), m[0] === st))
|
|
2835
2844
|
return m;
|
|
2836
2845
|
if ("children" in s && s.children) {
|
|
2837
2846
|
const x = (
|
|
2838
2847
|
/** @type {UnistParent} */
|
|
2839
2848
|
s
|
|
2840
2849
|
);
|
|
2841
|
-
if (x.children && m[0] !==
|
|
2850
|
+
if (x.children && m[0] !== Zt)
|
|
2842
2851
|
for (d = -1 + l, v = h.concat(x); d > -1 && d < x.children.length; ) {
|
|
2843
2852
|
const g = x.children[d];
|
|
2844
|
-
if (
|
|
2845
|
-
return
|
|
2846
|
-
d = typeof
|
|
2853
|
+
if (y = c(g, d, v)(), y[0] === st)
|
|
2854
|
+
return y;
|
|
2855
|
+
d = typeof y[1] == "number" ? y[1] : d + l;
|
|
2847
2856
|
}
|
|
2848
2857
|
}
|
|
2849
2858
|
return m;
|
|
@@ -2851,7 +2860,7 @@ function nr(e, t, n, o) {
|
|
|
2851
2860
|
}
|
|
2852
2861
|
}
|
|
2853
2862
|
function or(e) {
|
|
2854
|
-
return Array.isArray(e) ? e : typeof e == "number" ? [tr, e] : e == null ?
|
|
2863
|
+
return Array.isArray(e) ? e : typeof e == "number" ? [tr, e] : e == null ? Kt : [e];
|
|
2855
2864
|
}
|
|
2856
2865
|
const rr = {}, ar = [];
|
|
2857
2866
|
function ir(e) {
|
|
@@ -2865,9 +2874,9 @@ function ir(e) {
|
|
|
2865
2874
|
let f = a[a.length - 1], b = r;
|
|
2866
2875
|
if (r.tagName === "code" && c && f && f.type === "element" && f.tagName === "pre" && (b = f, f = a[a.length - 2], h = !0), !f) return;
|
|
2867
2876
|
const m = Yo(b, { whitespace: "pre" });
|
|
2868
|
-
let
|
|
2877
|
+
let y;
|
|
2869
2878
|
try {
|
|
2870
|
-
|
|
2879
|
+
y = Ve.renderToString(m, {
|
|
2871
2880
|
...t,
|
|
2872
2881
|
displayMode: h,
|
|
2873
2882
|
throwOnError: !0
|
|
@@ -2885,14 +2894,14 @@ function ir(e) {
|
|
|
2885
2894
|
source: "rehype-katex"
|
|
2886
2895
|
});
|
|
2887
2896
|
try {
|
|
2888
|
-
|
|
2897
|
+
y = Ve.renderToString(m, {
|
|
2889
2898
|
...t,
|
|
2890
2899
|
displayMode: h,
|
|
2891
2900
|
strict: "ignore",
|
|
2892
2901
|
throwOnError: !1
|
|
2893
2902
|
});
|
|
2894
2903
|
} catch {
|
|
2895
|
-
|
|
2904
|
+
y = [
|
|
2896
2905
|
{
|
|
2897
2906
|
type: "element",
|
|
2898
2907
|
tagName: "span",
|
|
@@ -2906,10 +2915,10 @@ function ir(e) {
|
|
|
2906
2915
|
];
|
|
2907
2916
|
}
|
|
2908
2917
|
}
|
|
2909
|
-
typeof
|
|
2910
|
-
Do(
|
|
2918
|
+
typeof y == "string" && (y = /** @type {Array<ElementContent>} */
|
|
2919
|
+
Do(y).children);
|
|
2911
2920
|
const d = f.children.indexOf(b);
|
|
2912
|
-
return f.children.splice(d, 1, ...
|
|
2921
|
+
return f.children.splice(d, 1, ...y), Zt;
|
|
2913
2922
|
});
|
|
2914
2923
|
};
|
|
2915
2924
|
}
|
|
@@ -3017,7 +3026,7 @@ function cr(e) {
|
|
|
3017
3026
|
const p = a.value || "", h = c.createTracker(s), f = "$".repeat(Math.max(lr(p, "$") + 1, 2)), b = c.enter("mathFlow");
|
|
3018
3027
|
let m = h.move(f);
|
|
3019
3028
|
if (a.meta) {
|
|
3020
|
-
const
|
|
3029
|
+
const y = c.enter("mathFlowMeta");
|
|
3021
3030
|
m += h.move(
|
|
3022
3031
|
c.safe(a.meta, {
|
|
3023
3032
|
after: `
|
|
@@ -3026,7 +3035,7 @@ function cr(e) {
|
|
|
3026
3035
|
encode: ["$"],
|
|
3027
3036
|
...h.current()
|
|
3028
3037
|
})
|
|
3029
|
-
),
|
|
3038
|
+
), y();
|
|
3030
3039
|
}
|
|
3031
3040
|
return m += h.move(`
|
|
3032
3041
|
`), p && (m += h.move(p + `
|
|
@@ -3046,10 +3055,10 @@ function cr(e) {
|
|
|
3046
3055
|
const b = c.unsafe[f];
|
|
3047
3056
|
if (!b.atBreak) continue;
|
|
3048
3057
|
const m = c.compilePattern(b);
|
|
3049
|
-
let
|
|
3050
|
-
for (;
|
|
3051
|
-
let d =
|
|
3052
|
-
s.codePointAt(d) === 10 && s.codePointAt(d - 1) === 13 && d--, s = s.slice(0, d) + " " + s.slice(
|
|
3058
|
+
let y;
|
|
3059
|
+
for (; y = m.exec(s); ) {
|
|
3060
|
+
let d = y.index;
|
|
3061
|
+
s.codePointAt(d) === 10 && s.codePointAt(d - 1) === 13 && d--, s = s.slice(0, d) + " " + s.slice(y.index + 1);
|
|
3053
3062
|
}
|
|
3054
3063
|
}
|
|
3055
3064
|
return h + s + h;
|
|
@@ -3061,7 +3070,7 @@ function cr(e) {
|
|
|
3061
3070
|
function j(e) {
|
|
3062
3071
|
return e !== null && e < -2;
|
|
3063
3072
|
}
|
|
3064
|
-
function
|
|
3073
|
+
function ct(e) {
|
|
3065
3074
|
return e === -2 || e === -1 || e === 32;
|
|
3066
3075
|
}
|
|
3067
3076
|
function ce(e, t, n, o) {
|
|
@@ -3069,17 +3078,17 @@ function ce(e, t, n, o) {
|
|
|
3069
3078
|
let a = 0;
|
|
3070
3079
|
return l;
|
|
3071
3080
|
function l(s) {
|
|
3072
|
-
return
|
|
3081
|
+
return ct(s) ? (e.enter(n), c(s)) : t(s);
|
|
3073
3082
|
}
|
|
3074
3083
|
function c(s) {
|
|
3075
|
-
return
|
|
3084
|
+
return ct(s) && a++ < r ? (e.consume(s), c) : (e.exit(n), t(s));
|
|
3076
3085
|
}
|
|
3077
3086
|
}
|
|
3078
3087
|
const ur = {
|
|
3079
3088
|
tokenize: dr,
|
|
3080
3089
|
concrete: !0,
|
|
3081
3090
|
name: "mathFlow"
|
|
3082
|
-
},
|
|
3091
|
+
}, ut = {
|
|
3083
3092
|
tokenize: pr,
|
|
3084
3093
|
partial: !0
|
|
3085
3094
|
};
|
|
@@ -3102,7 +3111,7 @@ function dr(e, t, n) {
|
|
|
3102
3111
|
return g === null || j(g) ? (e.exit("chunkString"), e.exit("mathFlowFenceMeta"), f(g)) : g === 36 ? n(g) : (e.consume(g), h);
|
|
3103
3112
|
}
|
|
3104
3113
|
function f(g) {
|
|
3105
|
-
return e.exit("mathFlowFence"), o.interrupt ? t(g) : e.attempt(
|
|
3114
|
+
return e.exit("mathFlowFence"), o.interrupt ? t(g) : e.attempt(ut, b, v)(g);
|
|
3106
3115
|
}
|
|
3107
3116
|
function b(g) {
|
|
3108
3117
|
return e.attempt({
|
|
@@ -3111,13 +3120,13 @@ function dr(e, t, n) {
|
|
|
3111
3120
|
}, v, m)(g);
|
|
3112
3121
|
}
|
|
3113
3122
|
function m(g) {
|
|
3114
|
-
return (a ? ce(e,
|
|
3123
|
+
return (a ? ce(e, y, "linePrefix", a + 1) : y)(g);
|
|
3115
3124
|
}
|
|
3116
|
-
function
|
|
3117
|
-
return g === null ? v(g) : j(g) ? e.attempt(
|
|
3125
|
+
function y(g) {
|
|
3126
|
+
return g === null ? v(g) : j(g) ? e.attempt(ut, b, v)(g) : (e.enter("mathFlowValue"), d(g));
|
|
3118
3127
|
}
|
|
3119
3128
|
function d(g) {
|
|
3120
|
-
return g === null || j(g) ? (e.exit("mathFlowValue"),
|
|
3129
|
+
return g === null || j(g) ? (e.exit("mathFlowValue"), y(g)) : (e.consume(g), d);
|
|
3121
3130
|
}
|
|
3122
3131
|
function v(g) {
|
|
3123
3132
|
return e.exit("mathFlow"), t(g);
|
|
@@ -3164,13 +3173,13 @@ function hr(e) {
|
|
|
3164
3173
|
return d === 36 ? (r.consume(d), c++, f) : c < 2 && !n ? l(d) : (r.exit("mathTextSequence"), b(d));
|
|
3165
3174
|
}
|
|
3166
3175
|
function b(d) {
|
|
3167
|
-
return d === null ? l(d) : d === 36 ? (p = r.enter("mathTextSequence"), s = 0,
|
|
3176
|
+
return d === null ? l(d) : d === 36 ? (p = r.enter("mathTextSequence"), s = 0, y(d)) : d === 32 ? (r.enter("space"), r.consume(d), r.exit("space"), b) : j(d) ? (r.enter("lineEnding"), r.consume(d), r.exit("lineEnding"), b) : (r.enter("mathTextData"), m(d));
|
|
3168
3177
|
}
|
|
3169
3178
|
function m(d) {
|
|
3170
3179
|
return d === null || d === 32 || d === 36 || j(d) ? (r.exit("mathTextData"), b(d)) : (r.consume(d), m);
|
|
3171
3180
|
}
|
|
3172
|
-
function
|
|
3173
|
-
return d === 36 ? (r.consume(d), s++,
|
|
3181
|
+
function y(d) {
|
|
3182
|
+
return d === 36 ? (r.consume(d), s++, y) : s === c ? (r.exit("mathTextSequence"), r.exit("mathText"), a(d)) : (p.type = "mathTextData", m(d));
|
|
3174
3183
|
}
|
|
3175
3184
|
}
|
|
3176
3185
|
}
|
|
@@ -3201,29 +3210,29 @@ function fr(e) {
|
|
|
3201
3210
|
};
|
|
3202
3211
|
}
|
|
3203
3212
|
const br = {};
|
|
3204
|
-
function
|
|
3213
|
+
function yr(e) {
|
|
3205
3214
|
const t = (
|
|
3206
3215
|
/** @type {Processor} */
|
|
3207
3216
|
this
|
|
3208
3217
|
), n = e || br, o = t.data(), r = o.micromarkExtensions || (o.micromarkExtensions = []), a = o.fromMarkdownExtensions || (o.fromMarkdownExtensions = []), l = o.toMarkdownExtensions || (o.toMarkdownExtensions = []);
|
|
3209
3218
|
r.push(fr(n)), a.push(sr()), l.push(cr(n));
|
|
3210
3219
|
}
|
|
3211
|
-
function
|
|
3220
|
+
function kr(e = {}) {
|
|
3212
3221
|
var t, n;
|
|
3213
|
-
let o = [
|
|
3222
|
+
let o = [yr, { singleDollarTextMath: (t = e.singleDollarTextMath) != null ? t : !1 }], r = [ir, { errorColor: (n = e.errorColor) != null ? n : "var(--color-muted-foreground)" }];
|
|
3214
3223
|
return { name: "katex", type: "math", remarkPlugin: o, rehypePlugin: r, getStyles() {
|
|
3215
3224
|
return "katex/dist/katex.min.css";
|
|
3216
3225
|
} };
|
|
3217
3226
|
}
|
|
3218
|
-
var
|
|
3227
|
+
var dt = kr();
|
|
3219
3228
|
const je = de(
|
|
3220
3229
|
({ className: e, ...t }) => /* @__PURE__ */ i(
|
|
3221
|
-
|
|
3230
|
+
On,
|
|
3222
3231
|
{
|
|
3223
|
-
className:
|
|
3232
|
+
className: k("size-full [&>*:first-child]:mt-0 [&>*:last-child]:mb-0 code-bg ", e),
|
|
3224
3233
|
...t,
|
|
3225
|
-
remarkPlugins: [
|
|
3226
|
-
rehypePlugins: [
|
|
3234
|
+
remarkPlugins: [dt.remarkPlugin, ...t.remarkPlugins || []],
|
|
3235
|
+
rehypePlugins: [dt.rehypePlugin, ...t.rehypePlugins || []]
|
|
3227
3236
|
}
|
|
3228
3237
|
),
|
|
3229
3238
|
(e, t) => e.children === t.children
|
|
@@ -3243,19 +3252,19 @@ function vr({
|
|
|
3243
3252
|
feedbackEnabled: h,
|
|
3244
3253
|
retryEnabled: f
|
|
3245
3254
|
}) {
|
|
3246
|
-
const { t: b } = M(["chat"]), { textComponents: m, remarkPlugins:
|
|
3255
|
+
const { t: b } = M(["chat"]), { textComponents: m, remarkPlugins: y, rehypePlugins: d } = W(), v = ge(e.text), x = !o && r && (n === "streaming" || n === "submitted"), g = l || (() => {
|
|
3247
3256
|
});
|
|
3248
3257
|
return /* @__PURE__ */ w("div", { className: "group py-2 first:pt-4 animate-in-bubble", children: [
|
|
3249
|
-
/* @__PURE__ */ i(
|
|
3258
|
+
/* @__PURE__ */ i(Lt, { from: t.role, children: /* @__PURE__ */ i(Dt, { dir: v, children: /* @__PURE__ */ i(
|
|
3250
3259
|
je,
|
|
3251
3260
|
{
|
|
3252
3261
|
components: m,
|
|
3253
|
-
remarkPlugins:
|
|
3262
|
+
remarkPlugins: y,
|
|
3254
3263
|
rehypePlugins: d,
|
|
3255
3264
|
children: e.text
|
|
3256
3265
|
}
|
|
3257
3266
|
) }) }),
|
|
3258
|
-
a && !x && /* @__PURE__ */ w(co, { className:
|
|
3267
|
+
a && !x && /* @__PURE__ */ w(co, { className: k("mt-1.5 ml-0.5", t.role === "user" && "justify-end"), children: [
|
|
3259
3268
|
t.role === "assistant" && /* @__PURE__ */ w(J, { children: [
|
|
3260
3269
|
r && f && /* @__PURE__ */ i(
|
|
3261
3270
|
se,
|
|
@@ -3263,7 +3272,7 @@ function vr({
|
|
|
3263
3272
|
onClick: () => g(t.id),
|
|
3264
3273
|
label: b("retry"),
|
|
3265
3274
|
tooltip: b("retry"),
|
|
3266
|
-
children: /* @__PURE__ */ i(
|
|
3275
|
+
children: /* @__PURE__ */ i(yn, { className: "size-3" })
|
|
3267
3276
|
}
|
|
3268
3277
|
),
|
|
3269
3278
|
h && /* @__PURE__ */ w(J, { children: [
|
|
@@ -3284,7 +3293,7 @@ function vr({
|
|
|
3284
3293
|
label: b("dislike"),
|
|
3285
3294
|
tooltip: b("dislike"),
|
|
3286
3295
|
className: c === "dislike" ? "text-destructive" : "",
|
|
3287
|
-
children: /* @__PURE__ */ i(
|
|
3296
|
+
children: /* @__PURE__ */ i(vn, { className: "size-3" })
|
|
3288
3297
|
}
|
|
3289
3298
|
)
|
|
3290
3299
|
] })
|
|
@@ -3297,18 +3306,18 @@ function vr({
|
|
|
3297
3306
|
},
|
|
3298
3307
|
label: b("copy"),
|
|
3299
3308
|
tooltip: b("copy"),
|
|
3300
|
-
children: /* @__PURE__ */ i(
|
|
3309
|
+
children: /* @__PURE__ */ i(Nt, { className: "size-3" })
|
|
3301
3310
|
}
|
|
3302
3311
|
)
|
|
3303
3312
|
] })
|
|
3304
3313
|
] });
|
|
3305
3314
|
}
|
|
3306
|
-
const
|
|
3307
|
-
const e = Le(
|
|
3315
|
+
const Jt = pe(null), wr = () => {
|
|
3316
|
+
const e = Le(Jt);
|
|
3308
3317
|
if (!e)
|
|
3309
3318
|
throw new Error("Reasoning components must be used within Reasoning");
|
|
3310
3319
|
return e;
|
|
3311
|
-
}, xr = 1e3, _r = 1e3,
|
|
3320
|
+
}, xr = 1e3, _r = 1e3, Qt = de(
|
|
3312
3321
|
({
|
|
3313
3322
|
className: e,
|
|
3314
3323
|
isStreaming: t = !1,
|
|
@@ -3320,17 +3329,17 @@ const Zt = pe(null), wr = () => {
|
|
|
3320
3329
|
children: l,
|
|
3321
3330
|
...c
|
|
3322
3331
|
}) => {
|
|
3323
|
-
const [s, p] =
|
|
3332
|
+
const [s, p] = We({
|
|
3324
3333
|
prop: n,
|
|
3325
3334
|
defaultProp: o,
|
|
3326
3335
|
onChange: r
|
|
3327
|
-
}), [h, f] =
|
|
3336
|
+
}), [h, f] = We({
|
|
3328
3337
|
prop: a,
|
|
3329
3338
|
defaultProp: 0
|
|
3330
|
-
}), [b, m] = B(!1), [
|
|
3339
|
+
}), [b, m] = B(!1), [y, d] = B(null);
|
|
3331
3340
|
Q(() => {
|
|
3332
|
-
t ?
|
|
3333
|
-
}, [t,
|
|
3341
|
+
t ? y === null && d(Date.now()) : y !== null && (f(Math.ceil((Date.now() - y) / _r)), d(null));
|
|
3342
|
+
}, [t, y, f]), Q(() => {
|
|
3334
3343
|
if (o && !t && s && !b) {
|
|
3335
3344
|
const x = setTimeout(() => {
|
|
3336
3345
|
p(!1), m(!0);
|
|
@@ -3343,10 +3352,10 @@ const Zt = pe(null), wr = () => {
|
|
|
3343
3352
|
const v = (x) => {
|
|
3344
3353
|
p(x);
|
|
3345
3354
|
};
|
|
3346
|
-
return /* @__PURE__ */ i(
|
|
3355
|
+
return /* @__PURE__ */ i(Jt.Provider, { value: { isStreaming: t, isOpen: s, setIsOpen: p, duration: h }, children: /* @__PURE__ */ i(
|
|
3347
3356
|
ze,
|
|
3348
3357
|
{
|
|
3349
|
-
className:
|
|
3358
|
+
className: k("not-prose mb-4", e),
|
|
3350
3359
|
onOpenChange: v,
|
|
3351
3360
|
open: s,
|
|
3352
3361
|
...c,
|
|
@@ -3354,10 +3363,10 @@ const Zt = pe(null), wr = () => {
|
|
|
3354
3363
|
}
|
|
3355
3364
|
) });
|
|
3356
3365
|
}
|
|
3357
|
-
),
|
|
3366
|
+
), en = de(({ className: e, children: t, ...n }) => {
|
|
3358
3367
|
const { isStreaming: o, isOpen: r, duration: a } = wr();
|
|
3359
|
-
return /* @__PURE__ */ i($e, { className:
|
|
3360
|
-
/* @__PURE__ */ i(
|
|
3368
|
+
return /* @__PURE__ */ i($e, { className: k("flex items-center gap-2 text-muted-foreground text-sm", e), ...n, children: t ?? /* @__PURE__ */ w(J, { children: [
|
|
3369
|
+
/* @__PURE__ */ i(wn, { className: "size-4" }),
|
|
3361
3370
|
o || a === 0 ? /* @__PURE__ */ i("p", { children: "Thinking..." }) : /* @__PURE__ */ w("p", { children: [
|
|
3362
3371
|
"Thought for ",
|
|
3363
3372
|
a,
|
|
@@ -3367,14 +3376,14 @@ const Zt = pe(null), wr = () => {
|
|
|
3367
3376
|
/* @__PURE__ */ i(
|
|
3368
3377
|
ie,
|
|
3369
3378
|
{
|
|
3370
|
-
className:
|
|
3379
|
+
className: k("size-4 text-muted-foreground transition-transform", r ? "rotate-180" : "rotate-0")
|
|
3371
3380
|
}
|
|
3372
3381
|
)
|
|
3373
3382
|
] }) });
|
|
3374
|
-
}),
|
|
3383
|
+
}), tn = de(({ className: e, children: t, ...n }) => /* @__PURE__ */ i(
|
|
3375
3384
|
Ue,
|
|
3376
3385
|
{
|
|
3377
|
-
className:
|
|
3386
|
+
className: k(
|
|
3378
3387
|
"mt-4 text-base",
|
|
3379
3388
|
"data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-popover-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in",
|
|
3380
3389
|
e
|
|
@@ -3383,9 +3392,9 @@ const Zt = pe(null), wr = () => {
|
|
|
3383
3392
|
children: /* @__PURE__ */ i(je, { className: "grid gap-2", children: t })
|
|
3384
3393
|
}
|
|
3385
3394
|
));
|
|
3386
|
-
|
|
3387
|
-
|
|
3388
|
-
|
|
3395
|
+
Qt.displayName = "Reasoning";
|
|
3396
|
+
en.displayName = "ReasoningTrigger";
|
|
3397
|
+
tn.displayName = "ReasoningContent";
|
|
3389
3398
|
function Sr({
|
|
3390
3399
|
part: e,
|
|
3391
3400
|
status: t,
|
|
@@ -3395,13 +3404,13 @@ function Sr({
|
|
|
3395
3404
|
}) {
|
|
3396
3405
|
const a = ge(e.text);
|
|
3397
3406
|
return /* @__PURE__ */ w(
|
|
3398
|
-
|
|
3407
|
+
Qt,
|
|
3399
3408
|
{
|
|
3400
3409
|
className: "w-full animate-in-bubble",
|
|
3401
3410
|
isStreaming: t === "streaming" && n === o - 1 && r,
|
|
3402
3411
|
children: [
|
|
3403
|
-
/* @__PURE__ */ i(
|
|
3404
|
-
/* @__PURE__ */ i(
|
|
3412
|
+
/* @__PURE__ */ i(en, {}),
|
|
3413
|
+
/* @__PURE__ */ i(tn, { dir: a, children: e.text })
|
|
3405
3414
|
]
|
|
3406
3415
|
}
|
|
3407
3416
|
);
|
|
@@ -3428,7 +3437,7 @@ function Nr({
|
|
|
3428
3437
|
asChild: n = !1,
|
|
3429
3438
|
...o
|
|
3430
3439
|
}) {
|
|
3431
|
-
return /* @__PURE__ */ i(n ?
|
|
3440
|
+
return /* @__PURE__ */ i(n ? Ct : "span", { "data-slot": "badge", className: k(Er({ variant: t }), e), ...o });
|
|
3432
3441
|
}
|
|
3433
3442
|
function Tr({ ...e }) {
|
|
3434
3443
|
return /* @__PURE__ */ i(H.Root, { "data-slot": "dialog", ...e });
|
|
@@ -3447,7 +3456,7 @@ function Ir({ className: e, ...t }) {
|
|
|
3447
3456
|
H.Overlay,
|
|
3448
3457
|
{
|
|
3449
3458
|
"data-slot": "dialog-overlay",
|
|
3450
|
-
className:
|
|
3459
|
+
className: k(
|
|
3451
3460
|
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
|
|
3452
3461
|
e
|
|
3453
3462
|
),
|
|
@@ -3467,7 +3476,7 @@ function Rr({
|
|
|
3467
3476
|
H.Content,
|
|
3468
3477
|
{
|
|
3469
3478
|
"data-slot": "dialog-content",
|
|
3470
|
-
className:
|
|
3479
|
+
className: k(
|
|
3471
3480
|
"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",
|
|
3472
3481
|
e
|
|
3473
3482
|
),
|
|
@@ -3495,7 +3504,7 @@ function Or({ className: e, ...t }) {
|
|
|
3495
3504
|
"div",
|
|
3496
3505
|
{
|
|
3497
3506
|
"data-slot": "dialog-header",
|
|
3498
|
-
className:
|
|
3507
|
+
className: k("flex flex-col gap-2 text-center sm:text-start", e),
|
|
3499
3508
|
...t
|
|
3500
3509
|
}
|
|
3501
3510
|
);
|
|
@@ -3505,7 +3514,7 @@ function wi({ className: e, ...t }) {
|
|
|
3505
3514
|
"div",
|
|
3506
3515
|
{
|
|
3507
3516
|
"data-slot": "dialog-footer",
|
|
3508
|
-
className:
|
|
3517
|
+
className: k("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", e),
|
|
3509
3518
|
...t
|
|
3510
3519
|
}
|
|
3511
3520
|
);
|
|
@@ -3515,7 +3524,7 @@ function Fr({ className: e, ...t }) {
|
|
|
3515
3524
|
H.Title,
|
|
3516
3525
|
{
|
|
3517
3526
|
"data-slot": "dialog-title",
|
|
3518
|
-
className:
|
|
3527
|
+
className: k("text-xl leading-none font-semibold", e),
|
|
3519
3528
|
...t
|
|
3520
3529
|
}
|
|
3521
3530
|
);
|
|
@@ -3525,7 +3534,7 @@ function xi({ className: e, ...t }) {
|
|
|
3525
3534
|
H.Description,
|
|
3526
3535
|
{
|
|
3527
3536
|
"data-slot": "dialog-description",
|
|
3528
|
-
className:
|
|
3537
|
+
className: k("text-muted-foreground text-base", e),
|
|
3529
3538
|
...t
|
|
3530
3539
|
}
|
|
3531
3540
|
);
|
|
@@ -4522,10 +4531,10 @@ const Lr = {
|
|
|
4522
4531
|
function q(e) {
|
|
4523
4532
|
return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
|
|
4524
4533
|
}
|
|
4525
|
-
var ve,
|
|
4534
|
+
var ve, pt;
|
|
4526
4535
|
function Pr() {
|
|
4527
|
-
if (
|
|
4528
|
-
|
|
4536
|
+
if (pt) return ve;
|
|
4537
|
+
pt = 1, ve = e, e.displayName = "python", e.aliases = ["py"];
|
|
4529
4538
|
function e(t) {
|
|
4530
4539
|
t.languages.python = {
|
|
4531
4540
|
comment: {
|
|
@@ -4593,10 +4602,10 @@ function Pr() {
|
|
|
4593
4602
|
}
|
|
4594
4603
|
var Mr = Pr();
|
|
4595
4604
|
const zr = /* @__PURE__ */ q(Mr);
|
|
4596
|
-
var we,
|
|
4605
|
+
var we, ht;
|
|
4597
4606
|
function $r() {
|
|
4598
|
-
if (
|
|
4599
|
-
|
|
4607
|
+
if (ht) return we;
|
|
4608
|
+
ht = 1, we = e, e.displayName = "javascript", e.aliases = ["js"];
|
|
4600
4609
|
function e(t) {
|
|
4601
4610
|
t.languages.javascript = t.languages.extend("clike", {
|
|
4602
4611
|
"class-name": [
|
|
@@ -4725,10 +4734,10 @@ function $r() {
|
|
|
4725
4734
|
}
|
|
4726
4735
|
var Ur = $r();
|
|
4727
4736
|
const Br = /* @__PURE__ */ q(Ur);
|
|
4728
|
-
var xe,
|
|
4737
|
+
var xe, gt;
|
|
4729
4738
|
function Hr() {
|
|
4730
|
-
if (
|
|
4731
|
-
|
|
4739
|
+
if (gt) return xe;
|
|
4740
|
+
gt = 1, xe = e, e.displayName = "typescript", e.aliases = ["ts"];
|
|
4732
4741
|
function e(t) {
|
|
4733
4742
|
(function(n) {
|
|
4734
4743
|
n.languages.typescript = n.languages.extend("javascript", {
|
|
@@ -4780,10 +4789,10 @@ function Hr() {
|
|
|
4780
4789
|
}
|
|
4781
4790
|
var qr = Hr();
|
|
4782
4791
|
const jr = /* @__PURE__ */ q(qr);
|
|
4783
|
-
var _e,
|
|
4792
|
+
var _e, mt;
|
|
4784
4793
|
function Gr() {
|
|
4785
|
-
if (
|
|
4786
|
-
|
|
4794
|
+
if (mt) return _e;
|
|
4795
|
+
mt = 1, _e = e, e.displayName = "json", e.aliases = ["webmanifest"];
|
|
4787
4796
|
function e(t) {
|
|
4788
4797
|
t.languages.json = {
|
|
4789
4798
|
property: {
|
|
@@ -4812,12 +4821,12 @@ function Gr() {
|
|
|
4812
4821
|
}
|
|
4813
4822
|
return _e;
|
|
4814
4823
|
}
|
|
4815
|
-
var
|
|
4816
|
-
const
|
|
4817
|
-
var Se,
|
|
4824
|
+
var Vr = Gr();
|
|
4825
|
+
const Wr = /* @__PURE__ */ q(Vr);
|
|
4826
|
+
var Se, ft;
|
|
4818
4827
|
function Yr() {
|
|
4819
|
-
if (
|
|
4820
|
-
|
|
4828
|
+
if (ft) return Se;
|
|
4829
|
+
ft = 1, Se = e, e.displayName = "bash", e.aliases = ["shell"];
|
|
4821
4830
|
function e(t) {
|
|
4822
4831
|
(function(n) {
|
|
4823
4832
|
var o = "\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b", r = {
|
|
@@ -5036,10 +5045,10 @@ function Yr() {
|
|
|
5036
5045
|
}
|
|
5037
5046
|
var Xr = Yr();
|
|
5038
5047
|
const Kr = /* @__PURE__ */ q(Xr);
|
|
5039
|
-
var Ee,
|
|
5048
|
+
var Ee, bt;
|
|
5040
5049
|
function Zr() {
|
|
5041
|
-
if (
|
|
5042
|
-
|
|
5050
|
+
if (bt) return Ee;
|
|
5051
|
+
bt = 1, Ee = e, e.displayName = "sql", e.aliases = [];
|
|
5043
5052
|
function e(t) {
|
|
5044
5053
|
t.languages.sql = {
|
|
5045
5054
|
comment: {
|
|
@@ -5079,10 +5088,10 @@ function Zr() {
|
|
|
5079
5088
|
}
|
|
5080
5089
|
var Jr = Zr();
|
|
5081
5090
|
const Qr = /* @__PURE__ */ q(Jr);
|
|
5082
|
-
var Ne,
|
|
5091
|
+
var Ne, yt;
|
|
5083
5092
|
function ea() {
|
|
5084
|
-
if (
|
|
5085
|
-
|
|
5093
|
+
if (yt) return Ne;
|
|
5094
|
+
yt = 1, Ne = e, e.displayName = "yaml", e.aliases = ["yml"];
|
|
5086
5095
|
function e(t) {
|
|
5087
5096
|
(function(n) {
|
|
5088
5097
|
var o = /[*&][^\s[\]{},]+/, r = /!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/, a = "(?:" + r.source + "(?:[ ]+" + o.source + ")?|" + o.source + "(?:[ ]+" + r.source + ")?)", l = /(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(
|
|
@@ -5430,10 +5439,10 @@ function oa() {
|
|
|
5430
5439
|
}), n.hooks.add("after-tokenize", function(b) {
|
|
5431
5440
|
if (b.language !== "markdown" && b.language !== "md")
|
|
5432
5441
|
return;
|
|
5433
|
-
function m(
|
|
5434
|
-
if (!(!
|
|
5435
|
-
for (var d = 0, v =
|
|
5436
|
-
var x =
|
|
5442
|
+
function m(y) {
|
|
5443
|
+
if (!(!y || typeof y == "string"))
|
|
5444
|
+
for (var d = 0, v = y.length; d < v; d++) {
|
|
5445
|
+
var x = y[d];
|
|
5437
5446
|
if (x.type !== "code") {
|
|
5438
5447
|
m(x.content);
|
|
5439
5448
|
continue;
|
|
@@ -5450,8 +5459,8 @@ function oa() {
|
|
|
5450
5459
|
m(b.tokens);
|
|
5451
5460
|
}), n.hooks.add("wrap", function(b) {
|
|
5452
5461
|
if (b.type === "code-block") {
|
|
5453
|
-
for (var m = "",
|
|
5454
|
-
var v = b.classes[
|
|
5462
|
+
for (var m = "", y = 0, d = b.classes.length; y < d; y++) {
|
|
5463
|
+
var v = b.classes[y], x = /language-(.+)/.exec(v);
|
|
5455
5464
|
if (x) {
|
|
5456
5465
|
m = x[1];
|
|
5457
5466
|
break;
|
|
@@ -5485,13 +5494,13 @@ function oa() {
|
|
|
5485
5494
|
}, h = String.fromCodePoint || String.fromCharCode;
|
|
5486
5495
|
function f(b) {
|
|
5487
5496
|
var m = b.replace(s, "");
|
|
5488
|
-
return m = m.replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi, function(
|
|
5497
|
+
return m = m.replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi, function(y, d) {
|
|
5489
5498
|
if (d = d.toLowerCase(), d[0] === "#") {
|
|
5490
5499
|
var v;
|
|
5491
5500
|
return d[1] === "x" ? v = parseInt(d.slice(2), 16) : v = Number(d.slice(1)), h(v);
|
|
5492
5501
|
} else {
|
|
5493
5502
|
var x = p[d];
|
|
5494
|
-
return x ||
|
|
5503
|
+
return x || y;
|
|
5495
5504
|
}
|
|
5496
5505
|
}), m;
|
|
5497
5506
|
}
|
|
@@ -5505,7 +5514,7 @@ const aa = /* @__PURE__ */ q(ra);
|
|
|
5505
5514
|
$.registerLanguage("python", zr);
|
|
5506
5515
|
$.registerLanguage("javascript", Br);
|
|
5507
5516
|
$.registerLanguage("typescript", jr);
|
|
5508
|
-
$.registerLanguage("json",
|
|
5517
|
+
$.registerLanguage("json", Wr);
|
|
5509
5518
|
$.registerLanguage("bash", Kr);
|
|
5510
5519
|
$.registerLanguage("sql", Qr);
|
|
5511
5520
|
$.registerLanguage("yaml", na);
|
|
@@ -5522,7 +5531,7 @@ const ia = pe({
|
|
|
5522
5531
|
}) => /* @__PURE__ */ i(ia.Provider, { value: { code: e }, children: /* @__PURE__ */ i(
|
|
5523
5532
|
"div",
|
|
5524
5533
|
{
|
|
5525
|
-
className:
|
|
5534
|
+
className: k("relative w-full overflow-hidden rounded-md border bg-background text-foreground", o),
|
|
5526
5535
|
dir: "ltr",
|
|
5527
5536
|
...a,
|
|
5528
5537
|
children: /* @__PURE__ */ w("div", { className: "relative", children: [
|
|
@@ -5582,13 +5591,13 @@ const ia = pe({
|
|
|
5582
5591
|
) });
|
|
5583
5592
|
function la(e, t = "size-4") {
|
|
5584
5593
|
return {
|
|
5585
|
-
web_search: /* @__PURE__ */ i(
|
|
5594
|
+
web_search: /* @__PURE__ */ i(En, { className: t }),
|
|
5586
5595
|
web_fetch: /* @__PURE__ */ i(ue, { className: t }),
|
|
5587
|
-
code_execution: /* @__PURE__ */ i(
|
|
5588
|
-
image_generation: /* @__PURE__ */ i(
|
|
5589
|
-
}[e] ?? /* @__PURE__ */ i(
|
|
5596
|
+
code_execution: /* @__PURE__ */ i(Sn, { className: t }),
|
|
5597
|
+
image_generation: /* @__PURE__ */ i(_n, { className: t })
|
|
5598
|
+
}[e] ?? /* @__PURE__ */ i(xn, { className: t });
|
|
5590
5599
|
}
|
|
5591
|
-
const sa = ({ className: e, ...t }) => /* @__PURE__ */ i(ze, { className:
|
|
5600
|
+
const sa = ({ className: e, ...t }) => /* @__PURE__ */ i(ze, { className: k("not-prose mb-4 w-full rounded-md border", e), ...t }), ca = ({ status: e }) => {
|
|
5592
5601
|
const { t } = M(["tools_ui"]), n = {
|
|
5593
5602
|
"input-streaming": t("pending"),
|
|
5594
5603
|
"input-available": t("running"),
|
|
@@ -5597,16 +5606,16 @@ const sa = ({ className: e, ...t }) => /* @__PURE__ */ i(ze, { className: y("not
|
|
|
5597
5606
|
};
|
|
5598
5607
|
return /* @__PURE__ */ w(Nr, { className: "gap-1.5 rounded-full text-xs", variant: "secondary", children: [
|
|
5599
5608
|
{
|
|
5600
|
-
"input-streaming": /* @__PURE__ */ i(
|
|
5601
|
-
"input-available": /* @__PURE__ */ i(
|
|
5602
|
-
"output-available": /* @__PURE__ */ i(
|
|
5603
|
-
"output-error": /* @__PURE__ */ i(
|
|
5609
|
+
"input-streaming": /* @__PURE__ */ i(Cn, { className: "size-4" }),
|
|
5610
|
+
"input-available": /* @__PURE__ */ i(Tn, { className: "size-4 animate-pulse" }),
|
|
5611
|
+
"output-available": /* @__PURE__ */ i(Nn, { className: "size-4 text-green-600" }),
|
|
5612
|
+
"output-error": /* @__PURE__ */ i(Tt, { className: "size-4 text-red-600" })
|
|
5604
5613
|
}[e],
|
|
5605
5614
|
n[e]
|
|
5606
5615
|
] });
|
|
5607
5616
|
}, ua = ({ className: e, type: t, state: n, toolName: o, ...r }) => {
|
|
5608
5617
|
const a = o || (t.startsWith("tool-") ? t.slice(5) : t), l = la(a, "size-4 text-muted-foreground");
|
|
5609
|
-
return /* @__PURE__ */ w($e, { className:
|
|
5618
|
+
return /* @__PURE__ */ w($e, { className: k("flex w-full items-center justify-between gap-4 p-3", e), ...r, children: [
|
|
5610
5619
|
/* @__PURE__ */ w("div", { className: "flex items-center gap-2", children: [
|
|
5611
5620
|
l,
|
|
5612
5621
|
/* @__PURE__ */ i("span", { className: "font-medium text-sm", children: a }),
|
|
@@ -5617,13 +5626,13 @@ const sa = ({ className: e, ...t }) => /* @__PURE__ */ i(ze, { className: y("not
|
|
|
5617
5626
|
}, da = ({ className: e, ...t }) => /* @__PURE__ */ i(
|
|
5618
5627
|
Ue,
|
|
5619
5628
|
{
|
|
5620
|
-
className:
|
|
5629
|
+
className: k(
|
|
5621
5630
|
"data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-popover-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in",
|
|
5622
5631
|
e
|
|
5623
5632
|
),
|
|
5624
5633
|
...t
|
|
5625
5634
|
}
|
|
5626
|
-
),
|
|
5635
|
+
), nn = (e) => {
|
|
5627
5636
|
if (typeof e == "string")
|
|
5628
5637
|
try {
|
|
5629
5638
|
return JSON.stringify(JSON.parse(e), null, 2);
|
|
@@ -5633,9 +5642,9 @@ const sa = ({ className: e, ...t }) => /* @__PURE__ */ i(ze, { className: y("not
|
|
|
5633
5642
|
return JSON.stringify(e, null, 2);
|
|
5634
5643
|
}, pa = ({ className: e, input: t, ...n }) => {
|
|
5635
5644
|
const { t: o } = M(["tools_ui"]);
|
|
5636
|
-
return /* @__PURE__ */ w("div", { className:
|
|
5645
|
+
return /* @__PURE__ */ w("div", { className: k("space-y-2 overflow-hidden p-4", e), ...n, children: [
|
|
5637
5646
|
/* @__PURE__ */ i("h4", { className: "font-medium text-muted-foreground text-xs uppercase tracking-wide", children: o("parameters") }),
|
|
5638
|
-
/* @__PURE__ */ i("div", { className: "rounded-md bg-muted/50", children: /* @__PURE__ */ i(Fe, { code:
|
|
5647
|
+
/* @__PURE__ */ i("div", { className: "rounded-md bg-muted/50", children: /* @__PURE__ */ i(Fe, { code: nn(t), language: "json" }) })
|
|
5639
5648
|
] });
|
|
5640
5649
|
}, ha = ({ className: e, output: t, errorText: n, ...o }) => {
|
|
5641
5650
|
const { t: r } = M(["tools_ui"]), [a, l] = B(!1);
|
|
@@ -5655,19 +5664,19 @@ const sa = ({ className: e, ...t }) => /* @__PURE__ */ i(ze, { className: y("not
|
|
|
5655
5664
|
}
|
|
5656
5665
|
return typeof t == "object" && t !== null && !("$$typeof" in t) ? /* @__PURE__ */ i(Fe, { code: JSON.stringify(t, null, 2), language: "json" }) : t;
|
|
5657
5666
|
};
|
|
5658
|
-
return /* @__PURE__ */ w("div", { className:
|
|
5667
|
+
return /* @__PURE__ */ w("div", { className: k("space-y-2 p-4", e), ...o, children: [
|
|
5659
5668
|
/* @__PURE__ */ i("h4", { className: "font-medium text-muted-foreground text-xs uppercase tracking-wide", children: r(n ? "error" : "result") }),
|
|
5660
5669
|
n && /* @__PURE__ */ w(Tr, { children: [
|
|
5661
5670
|
/* @__PURE__ */ i(Cr, { asChild: !0, children: /* @__PURE__ */ w(ee, { variant: "destructive", size: "sm", children: [
|
|
5662
|
-
/* @__PURE__ */ i(
|
|
5671
|
+
/* @__PURE__ */ i(Tt, { className: "mr-1.5 size-4" }),
|
|
5663
5672
|
r("view_error")
|
|
5664
5673
|
] }) }),
|
|
5665
5674
|
/* @__PURE__ */ w(Rr, { className: "max-w-2xl", children: [
|
|
5666
5675
|
/* @__PURE__ */ i(Or, { children: /* @__PURE__ */ i(Fr, { className: "text-destructive", children: r("tool_error") }) }),
|
|
5667
5676
|
/* @__PURE__ */ w("div", { className: "space-y-4", children: [
|
|
5668
|
-
/* @__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:
|
|
5677
|
+
/* @__PURE__ */ i("div", { className: "max-h-96 overflow-auto rounded-md bg-destructive/10 p-4 text-destructive text-sm", children: /* @__PURE__ */ i("pre", { className: "whitespace-pre-wrap break-words", children: nn(n) }) }),
|
|
5669
5678
|
/* @__PURE__ */ w(ee, { variant: "outline", size: "sm", onClick: c, children: [
|
|
5670
|
-
/* @__PURE__ */ i(
|
|
5679
|
+
/* @__PURE__ */ i(Nt, { className: "mr-1.5 size-4" }),
|
|
5671
5680
|
r(a ? "copied" : "copy_error")
|
|
5672
5681
|
] })
|
|
5673
5682
|
] })
|
|
@@ -5719,7 +5728,7 @@ function ma({
|
|
|
5719
5728
|
const s = document.createElement("a");
|
|
5720
5729
|
s.href = o.url, s.download = a, document.body.appendChild(s), s.click(), document.body.removeChild(s);
|
|
5721
5730
|
};
|
|
5722
|
-
return /* @__PURE__ */ i("div", { className: "py-2 animate-in-bubble", children: /* @__PURE__ */ i(
|
|
5731
|
+
return /* @__PURE__ */ i("div", { className: "py-2 animate-in-bubble", children: /* @__PURE__ */ i(Lt, { from: t.role, children: /* @__PURE__ */ i(Dt, { isPlain: !0, children: r ? /* @__PURE__ */ w("div", { className: "group relative max-w-[280px] rounded-xl overflow-hidden border border-border/5 transition-all duration-300 hover:border-primary/30 hover:shadow-[0_0_20px_var(--glow)]", children: [
|
|
5723
5732
|
/* @__PURE__ */ i(
|
|
5724
5733
|
"img",
|
|
5725
5734
|
{
|
|
@@ -5749,7 +5758,7 @@ function ma({
|
|
|
5749
5758
|
}
|
|
5750
5759
|
) })
|
|
5751
5760
|
] }) : /* @__PURE__ */ i("div", { className: "flex flex-col gap-1.5", children: /* @__PURE__ */ w("div", { className: "group inline-flex items-center gap-3 rounded-xl p-3 text-sm transition-all duration-300 bg-secondary/10 border border-border/5 hover:border-primary/30 hover:bg-secondary/20 hover:shadow-[0_0_15px_var(--glow)]", children: [
|
|
5752
|
-
/* @__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(
|
|
5761
|
+
/* @__PURE__ */ i("div", { className: "p-2.5 rounded-lg bg-background/50 border border-border/10 group-hover:border-primary/20 group-hover:text-primary transition-colors", children: /* @__PURE__ */ i(Et, { className: "size-4 shrink-0" }) }),
|
|
5753
5762
|
/* @__PURE__ */ w("div", { className: "flex flex-col min-w-0 mr-4", children: [
|
|
5754
5763
|
/* @__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 }),
|
|
5755
5764
|
(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() })
|
|
@@ -5815,9 +5824,9 @@ const C = {
|
|
|
5815
5824
|
account: { enabled: !0, fields: {} }
|
|
5816
5825
|
}
|
|
5817
5826
|
}
|
|
5818
|
-
},
|
|
5819
|
-
function
|
|
5820
|
-
return Le(
|
|
5827
|
+
}, on = pe(C);
|
|
5828
|
+
function W() {
|
|
5829
|
+
return Le(on);
|
|
5821
5830
|
}
|
|
5822
5831
|
function _i({
|
|
5823
5832
|
components: e,
|
|
@@ -5832,7 +5841,7 @@ function _i({
|
|
|
5832
5841
|
settings: p,
|
|
5833
5842
|
children: h
|
|
5834
5843
|
}) {
|
|
5835
|
-
const f =
|
|
5844
|
+
const f = St(
|
|
5836
5845
|
() => ({
|
|
5837
5846
|
...C,
|
|
5838
5847
|
...e,
|
|
@@ -5861,7 +5870,7 @@ function _i({
|
|
|
5861
5870
|
}),
|
|
5862
5871
|
[e, t, n, o, r, a, l, c, s, p]
|
|
5863
5872
|
);
|
|
5864
|
-
return /* @__PURE__ */ i(
|
|
5873
|
+
return /* @__PURE__ */ i(on.Provider, { value: f, children: h });
|
|
5865
5874
|
}
|
|
5866
5875
|
const fa = {
|
|
5867
5876
|
theme: "system",
|
|
@@ -5870,7 +5879,7 @@ const fa = {
|
|
|
5870
5879
|
setAccent: () => null,
|
|
5871
5880
|
radius: void 0,
|
|
5872
5881
|
setRadius: () => null
|
|
5873
|
-
},
|
|
5882
|
+
}, rn = pe(fa);
|
|
5874
5883
|
function Si({
|
|
5875
5884
|
children: e,
|
|
5876
5885
|
defaultTheme: t = "system",
|
|
@@ -5883,19 +5892,19 @@ function Si({
|
|
|
5883
5892
|
() => window.localStorage.getItem(n + "-accent") || void 0
|
|
5884
5893
|
), [s, p] = B(
|
|
5885
5894
|
() => window.localStorage.getItem(n + "-radius") || "1.25rem"
|
|
5886
|
-
), { theme: h } =
|
|
5895
|
+
), { theme: h } = W(), { i18n: f } = M(["theme"]);
|
|
5887
5896
|
Q(() => {
|
|
5888
5897
|
const m = window.document.documentElement;
|
|
5889
5898
|
if (m.classList.remove("light", "dark"), r === "system") {
|
|
5890
|
-
const
|
|
5891
|
-
m.classList.add(
|
|
5899
|
+
const y = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
5900
|
+
m.classList.add(y);
|
|
5892
5901
|
return;
|
|
5893
5902
|
}
|
|
5894
5903
|
m.classList.add(r);
|
|
5895
5904
|
}, [r]), Q(() => {
|
|
5896
|
-
const m = window.document.documentElement,
|
|
5905
|
+
const m = window.document.documentElement, y = f.language?.split("-")[0] || f.language;
|
|
5897
5906
|
let d = h?.typography?.fontFamily;
|
|
5898
|
-
if (typeof d == "object" && d !== null && (d = d[f.language] || d[
|
|
5907
|
+
if (typeof d == "object" && d !== null && (d = d[f.language] || d[y] || d.en || Object.values(d)[0]), d) {
|
|
5899
5908
|
const g = d.includes(" ") && !d.startsWith("'") && !d.startsWith('"') ? `"${d}"` : d;
|
|
5900
5909
|
m.style.setProperty("--gentiq-font-family", g), m.style.fontFamily = g, window.document.body && (window.document.body.style.fontFamily = g);
|
|
5901
5910
|
}
|
|
@@ -5918,14 +5927,14 @@ function Si({
|
|
|
5918
5927
|
m ? window.localStorage.setItem(n + "-radius", m) : window.localStorage.removeItem(n + "-radius"), p(m);
|
|
5919
5928
|
}
|
|
5920
5929
|
};
|
|
5921
|
-
return /* @__PURE__ */ i(
|
|
5930
|
+
return /* @__PURE__ */ i(rn.Provider, { ...o, value: b, children: e });
|
|
5922
5931
|
}
|
|
5923
|
-
const Ei = () => Le(
|
|
5932
|
+
const Ei = () => Le(rn), {
|
|
5924
5933
|
slice: ba,
|
|
5925
|
-
forEach:
|
|
5934
|
+
forEach: ya
|
|
5926
5935
|
} = [];
|
|
5927
|
-
function
|
|
5928
|
-
return
|
|
5936
|
+
function ka(e) {
|
|
5937
|
+
return ya.call(ba.call(arguments, 1), (t) => {
|
|
5929
5938
|
if (t)
|
|
5930
5939
|
for (const n in t)
|
|
5931
5940
|
e[n] === void 0 && (e[n] = t[n]);
|
|
@@ -5934,7 +5943,7 @@ function ya(e) {
|
|
|
5934
5943
|
function va(e) {
|
|
5935
5944
|
return typeof e != "string" ? !1 : [/<\s*script.*?>/i, /<\s*\/\s*script\s*>/i, /<\s*img.*?on\w+\s*=/i, /<\s*\w+\s*on\w+\s*=.*?>/i, /javascript\s*:/i, /vbscript\s*:/i, /expression\s*\(/i, /eval\s*\(/i, /alert\s*\(/i, /document\.cookie/i, /document\.write\s*\(/i, /window\.location/i, /innerHTML/i].some((n) => n.test(e));
|
|
5936
5945
|
}
|
|
5937
|
-
const
|
|
5946
|
+
const vt = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/, wa = function(e, t) {
|
|
5938
5947
|
const o = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {
|
|
5939
5948
|
path: "/"
|
|
5940
5949
|
}, r = encodeURIComponent(t);
|
|
@@ -5945,12 +5954,12 @@ const yt = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/, wa = function(e, t) {
|
|
|
5945
5954
|
a += `; Max-Age=${Math.floor(l)}`;
|
|
5946
5955
|
}
|
|
5947
5956
|
if (o.domain) {
|
|
5948
|
-
if (!
|
|
5957
|
+
if (!vt.test(o.domain))
|
|
5949
5958
|
throw new TypeError("option domain is invalid");
|
|
5950
5959
|
a += `; Domain=${o.domain}`;
|
|
5951
5960
|
}
|
|
5952
5961
|
if (o.path) {
|
|
5953
|
-
if (!
|
|
5962
|
+
if (!vt.test(o.path))
|
|
5954
5963
|
throw new TypeError("option path is invalid");
|
|
5955
5964
|
a += `; Path=${o.path}`;
|
|
5956
5965
|
}
|
|
@@ -5977,7 +5986,7 @@ const yt = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/, wa = function(e, t) {
|
|
|
5977
5986
|
throw new TypeError("option sameSite is invalid");
|
|
5978
5987
|
}
|
|
5979
5988
|
return o.partitioned && (a += "; Partitioned"), a;
|
|
5980
|
-
},
|
|
5989
|
+
}, wt = {
|
|
5981
5990
|
create(e, t, n, o) {
|
|
5982
5991
|
let r = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : {
|
|
5983
5992
|
path: "/",
|
|
@@ -6006,7 +6015,7 @@ var xa = {
|
|
|
6006
6015
|
lookupCookie: t
|
|
6007
6016
|
} = e;
|
|
6008
6017
|
if (t && typeof document < "u")
|
|
6009
|
-
return
|
|
6018
|
+
return wt.read(t) || void 0;
|
|
6010
6019
|
},
|
|
6011
6020
|
// Deconstruct the options object and extract the lookupCookie, cookieMinutes, cookieDomain, and cookieOptions properties
|
|
6012
6021
|
cacheUserLanguage(e, t) {
|
|
@@ -6016,7 +6025,7 @@ var xa = {
|
|
|
6016
6025
|
cookieDomain: r,
|
|
6017
6026
|
cookieOptions: a
|
|
6018
6027
|
} = t;
|
|
6019
|
-
n && typeof document < "u" &&
|
|
6028
|
+
n && typeof document < "u" && wt.create(n, e, o, r, a);
|
|
6020
6029
|
}
|
|
6021
6030
|
}, _a = {
|
|
6022
6031
|
name: "querystring",
|
|
@@ -6070,7 +6079,7 @@ var xa = {
|
|
|
6070
6079
|
}
|
|
6071
6080
|
};
|
|
6072
6081
|
let Y = null;
|
|
6073
|
-
const
|
|
6082
|
+
const xt = () => {
|
|
6074
6083
|
if (Y !== null) return Y;
|
|
6075
6084
|
try {
|
|
6076
6085
|
if (Y = typeof window < "u" && window.localStorage !== null, !Y)
|
|
@@ -6089,7 +6098,7 @@ var Ea = {
|
|
|
6089
6098
|
let {
|
|
6090
6099
|
lookupLocalStorage: t
|
|
6091
6100
|
} = e;
|
|
6092
|
-
if (t &&
|
|
6101
|
+
if (t && xt())
|
|
6093
6102
|
return window.localStorage.getItem(t) || void 0;
|
|
6094
6103
|
},
|
|
6095
6104
|
// Deconstruct the options object and extract the lookupLocalStorage property
|
|
@@ -6097,11 +6106,11 @@ var Ea = {
|
|
|
6097
6106
|
let {
|
|
6098
6107
|
lookupLocalStorage: n
|
|
6099
6108
|
} = t;
|
|
6100
|
-
n &&
|
|
6109
|
+
n && xt() && window.localStorage.setItem(n, e);
|
|
6101
6110
|
}
|
|
6102
6111
|
};
|
|
6103
6112
|
let X = null;
|
|
6104
|
-
const
|
|
6113
|
+
const _t = () => {
|
|
6105
6114
|
if (X !== null) return X;
|
|
6106
6115
|
try {
|
|
6107
6116
|
if (X = typeof window < "u" && window.sessionStorage !== null, !X)
|
|
@@ -6119,14 +6128,14 @@ var Na = {
|
|
|
6119
6128
|
let {
|
|
6120
6129
|
lookupSessionStorage: t
|
|
6121
6130
|
} = e;
|
|
6122
|
-
if (t &&
|
|
6131
|
+
if (t && _t())
|
|
6123
6132
|
return window.sessionStorage.getItem(t) || void 0;
|
|
6124
6133
|
},
|
|
6125
6134
|
cacheUserLanguage(e, t) {
|
|
6126
6135
|
let {
|
|
6127
6136
|
lookupSessionStorage: n
|
|
6128
6137
|
} = t;
|
|
6129
|
-
n &&
|
|
6138
|
+
n && _t() && window.sessionStorage.setItem(n, e);
|
|
6130
6139
|
}
|
|
6131
6140
|
}, Ta = {
|
|
6132
6141
|
name: "navigator",
|
|
@@ -6177,15 +6186,15 @@ var Na = {
|
|
|
6177
6186
|
return o[n];
|
|
6178
6187
|
}
|
|
6179
6188
|
};
|
|
6180
|
-
let
|
|
6189
|
+
let an = !1;
|
|
6181
6190
|
try {
|
|
6182
|
-
document.cookie,
|
|
6191
|
+
document.cookie, an = !0;
|
|
6183
6192
|
} catch {
|
|
6184
6193
|
}
|
|
6185
|
-
const
|
|
6186
|
-
|
|
6194
|
+
const ln = ["querystring", "cookie", "localStorage", "sessionStorage", "navigator", "htmlTag"];
|
|
6195
|
+
an || ln.splice(1, 1);
|
|
6187
6196
|
const Ra = () => ({
|
|
6188
|
-
order:
|
|
6197
|
+
order: ln,
|
|
6189
6198
|
lookupQuerystring: "lng",
|
|
6190
6199
|
lookupCookie: "i18next",
|
|
6191
6200
|
lookupLocalStorage: "i18nextLng",
|
|
@@ -6197,7 +6206,7 @@ const Ra = () => ({
|
|
|
6197
6206
|
// cookieDomain: 'myDomain'
|
|
6198
6207
|
convertDetectedLanguage: (e) => e
|
|
6199
6208
|
});
|
|
6200
|
-
class
|
|
6209
|
+
class sn {
|
|
6201
6210
|
constructor(t) {
|
|
6202
6211
|
let n = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
6203
6212
|
this.type = "languageDetector", this.detectors = {}, this.init(t, n);
|
|
@@ -6206,7 +6215,7 @@ class ln {
|
|
|
6206
6215
|
let t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {
|
|
6207
6216
|
languageUtils: {}
|
|
6208
6217
|
}, n = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, o = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
|
|
6209
|
-
this.services = t, this.options =
|
|
6218
|
+
this.services = t, this.options = ka(n, this.options || {}, Ra()), typeof this.options.convertDetectedLanguage == "string" && this.options.convertDetectedLanguage.indexOf("15897") > -1 && (this.options.convertDetectedLanguage = (r) => r.replace("-", "_")), this.options.lookupFromUrlIndex && (this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex), this.i18nOptions = o, this.addDetector(xa), this.addDetector(_a), this.addDetector(Ea), this.addDetector(Na), this.addDetector(Ta), this.addDetector(Ca), this.addDetector(Aa), this.addDetector(Ia), this.addDetector(Sa);
|
|
6210
6219
|
}
|
|
6211
6220
|
addDetector(t) {
|
|
6212
6221
|
return this.detectors[t.name] = t, this;
|
|
@@ -6227,7 +6236,7 @@ class ln {
|
|
|
6227
6236
|
}));
|
|
6228
6237
|
}
|
|
6229
6238
|
}
|
|
6230
|
-
|
|
6239
|
+
sn.type = "languageDetector";
|
|
6231
6240
|
const Oa = { new_conversation: "New conversation", tooltip_new_conversation: "Start a new conversation", delete_conversation: "Delete", delete_confirm_title: "Delete conversation?", delete_confirm_description: "Are you sure you want to delete this chat? This action cannot be undone.", cancel: "Cancel", delete: "Delete", chat_deleted_success: "Chat deleted successfully", logout: "Logout", new_chat: "New Chat", rename_conversation: "Rename", rename_success: "Conversation renamed successfully", rename_failed: "Failed to rename conversation", search_conversations: "Search conversations...", save: "Save", no_conversations: "No conversations yet", loading_more: "Loading more...", pinned_success: "Conversation pinned", unpinned_success: "Conversation unpinned", pin_failed: "Failed to pin conversation", share_success: "Link copied", share_description: "The shareable link has been copied to your clipboard.", share_failed: "Failed to generate share link", pin_conversation: "Pin", unpin_conversation: "Unpin", share_conversation: "Share" }, Fa = { tools: "Tools", error: "Error:", input_placeholder: "Ask something...", insufficient_balance: "Insufficient balance. Please recharge your account to continue.", regenerate: "Regenerate", retry: "Retry", copy: "Copy", like: "Like", dislike: "Dislike", attach_file: "Attach file", remove_file: "Remove file", used_sources: "Used {{count}} sources", welcome: { title: "Hello! How can I help you today?", subtitle: "Ask me anything and I'll do my best to help.", suggestions: ["What can you help me with?", "Tell me something interesting", "Help me write an email", "Explain a concept to me"] }, disclaimer: "AI can make mistakes. Check important info." }, La = { pending: "Pending", running: "Running", completed: "Completed", error: "Error", parameters: "Parameters", result: "Result", view_error: "View Error", tool_error: "Tool Error", copied: "Copied!", copy_error: "Copy Error" }, Da = { login_tab: "Login", signup_tab: "Sign Up", phone: "Phone", phone_placeholder: "Phone number", password: "Password", name: "Name", name_placeholder: "First Name", surname: "Surname", surname_placeholder: "Last Name", loading: "Loading...", logging_in: "Logging in...", signing_up: "Signing up...", select_placeholder: "Select an option", login_button: "Login", signup_button: "Sign Up" }, Pa = { toggle: "Change theme", light: "Switch to light theme", dark: "Switch to dark theme", system: "Switch to system theme" }, Ma = { select_placeholder: "Select an option", loading: "Loading...", retry: "Retry", save: "Save", saving: "Saving...", cancel: "Cancel", delete: "Delete", edit: "Edit", search: "Search", search_placeholder: "Search...", no_data: "No data available", loading_more: "Loading more...", confirm_delete: "Are you sure you want to delete?", error_loading: "Error loading data", dashboard: { title: "Admin Panel", logout: "Logout", tabs: { analytics: "Analytics", chat_history: "Chats", users: "Users", admins: "Admins", settings: "Settings" } }, app_settings: { title: "System Settings", subtitle: "Manage global configuration for application appearance and behavior.", sections: { general: "Basic Information", chat: "Chat Experience", user_billing: "User & Billing" }, general: { app_name: "App Name", admin_title: "Admin Panel Title", language: "Default Language", language_help: "The language users see on their first visit (if not auto-detected)." }, chat: { welcome_greeting: "Welcome Greeting", welcome_subtitle: "Welcome Subtitle", disclaimer: "Disclaimer Text", show_tool_details: "Show technical tool details", show_tool_details_help: "Enable this to show professional technical details of AI tools to users.", show_settings: "Show settings icon for users", show_settings_help: "Show a settings gear icon in the chat interface for user customization.", composer_attachments: "Enable File Attachments", composer_attachments_help: "Allow users to upload and attach files to their messages.", thread_actions_feedback: "Enable Feedback Buttons", thread_actions_feedback_help: "Show like/dislike buttons on AI responses.", thread_actions_retry: "Enable Retry Button", thread_actions_retry_help: "Show a retry button to regenerate the last AI response.", history_enabled: "Enable Chat History Sidebar", history_enabled_help: "Show the sidebar containing previous conversations.", history_show_delete: "Allow Deleting Conversations", history_show_rename: "Allow Renaming Conversations", history_show_share: "Allow Sharing Conversations", history_show_pin: "Allow Pinning Conversations", sections_modes: "Settings Tab Modes", sections_modes_help: "Control visibility and interactability of settings tabs for users.", mode_editable: "Enable (Editable)", mode_faded: "Fade (Readonly)", mode_hidden: "Hide (Disable)", general_tab: "General Tab", profile_tab: "Profile Tab", account_tab: "Account Tab", inner_fields_modes: "Inner Fields Visibility", inner_fields_modes_help: "Configure visibility for individual fields within each tab." }, user_billing: { initial_balance_tokens: "Default Initial Tokens", initial_balance_requests: "Default Initial Requests", initial_balance_help: "These values will be assigned to new users by default if not specified during creation." }, save_success: "Settings saved successfully", save_error: "Failed to save settings", save: "Save Changes", translations_management: "Translations Management", editor_tips: "All changes are saved automatically to local state. Don't forget to push 'Save Changes' to persist.", sync_from_code: "Sync from Code", reset_button: "Reset to Defaults", reset_confirm_title: "Reset Settings?", reset_confirm_description: "This will reset all fields to their original default values from the code. Current unsaved changes will be lost.", preview: "Preview", tips_label: "TIPS" }, analytics: { title: "Analytics & Statistics", days: "{{count}} Days", total_users: "Total Users", total_threads: "Total Threads", total_messages: "Total Messages", total_token_usage: "Total Token Usage", threads_chart: "Threads", messages_chart: "Messages", token_usage_chart: "Token Usage", active_users: "Active Users", conversations: "conversations", threads: "threads", feedback: "User Feedback", total_feedback: "Total Feedback", positive: "Positive", negative: "Negative", loading_analytics: "Loading analytics...", error_loading: "Error loading data" }, chat_history: { title: "Chat History Management", search_placeholder: "Search by name, phone, thread title, or ID...", search_button: "Search", threads_list: "Threads List", thread_count: "{{count}}", no_thread_title: "Untitled conversation", messages: "Messages", messages_for: "Messages for: {{title}}", select_thread: "Select a conversation to view", no_threads: "No conversations found", empty_thread: "This conversation is empty", loading_threads: "Loading...", loading_messages: "Loading messages...", user_label: "User", assistant_label: "AI Assistant", input_tokens: "Input: {{value}}", output_tokens: "Output: {{value}}", total_tokens: "Total: {{value}}", all_feedbacks: "All Conversations", liked_feedbacks: "Liked 👍", disliked_feedbacks: "Disliked 👎", any_feedback: "With Feedback", output_available: "Output Available", running: "Running...", unnamed_file: "Unnamed File", download_file: "Download File" }, users: { title: "User Management", user_count: "User count: {{count}}", add_user: "Add New User", edit_user: "Edit User", phone: "Phone Number", phone_placeholder: "09123456789", name: "Name", surname: "Surname", initial_tokens: "Initial Tokens (optional)", initial_requests: "Initial Requests (optional)", balance: "Balance", requests_label: "Requests", tokens_label: "Tokens", token_limit: "Token Limit", request_limit: "Request Limit", tokens_usage: "Tokens Usage", requests_usage: "Requests Usage", actions: "Actions", copy_token: "Copy Token (auto-refresh)", token_copied: "Token copied successfully", no_token: "No token found for this user", recharge: "Recharge Balance", full_charge: "Full Charge", update_balance: "Update Balance", update_balance_for: "Update Balance for", token_count: "Token Count", request_count: "Request Count", updating: "Updating...", no_users: "No users found.", confirm_delete_user: "Are you sure you want to delete this user?", tokens_exceed_limit: "Tokens cannot exceed the specified limit", requests_exceed_limit: "Requests cannot exceed the specified limit", metadata: "Metadata (JSON)", initial_balance: "Initial Balance", custom_fields: "Additional Fields", metadata_raw: "Metadata (Raw JSON)", advanced_usage: "Advanced usage", invalid_json: "Invalid JSON format" }, admins: { title: "Admin Management", admin_count: "Admin count: {{count}}", add_admin: "Add New Admin", edit_admin: "Edit Admin", username: "Username", name: "Name", password: "Password", password_edit: "New Password (leave empty to keep current)", permissions: "Permissions", perm_chat_history: "Chat History", perm_admin_management: "Admin Management", perm_user_management: "User Management", perm_analytics: "Analytics", perm_settings: "Settings", no_admins: "No admins found.", confirm_delete_admin: "Are you sure you want to delete this admin?" }, errors: { access_denied_title: "Access Denied", access_denied_message: "You don't have the necessary permissions to access this page. You can contact the administrator!", back_to_dashboard: "Back to Dashboard" }, login: { title: "Admin Panel", setup_title: "Initial Setup", setup_description: "No admin account exists yet. Set a password for the default admin user to get started.", set_password: "Set Password", set_password_placeholder: "Choose a strong password", confirm_password: "Confirm Password", confirm_password_placeholder: "Re-enter the password", passwords_mismatch: "Passwords do not match", password_too_short: "Password must be at least 4 characters", create_admin: "Create Admin & Login", setting_up: "Setting up...", username: "Username", username_placeholder: "Username", password: "Password", password_placeholder: "••••••••", submit: "Login", logging_in: "Logging in...", error: "Login failed", copyright: "© 2026 AI Chatbot Platform" } }, za = { title: "Settings", sections: { profile: "Profile", general: "General", account: "Account" }, profile: { title: "Profile Information", subtitle: "Update your personal details below.", name: "First Name", surname: "Last Name", phone: "Phone Number", password: "New Password", password_placeholder: "Leave empty to keep current", save: "Save Changes", saving: "Saving...", success: "Profile updated successfully", error: "Failed to update profile", select_placeholder: "Select an option" }, general: { title: "General Settings", subtitle: "Configure look and feel and language.", theme: "Theme", language: "Language", themes: { light: "Light", dark: "Dark", system: "System" }, accent: "Accent Color", radius: "Rounded Corners", radius_levels: { sharp: "Sharp", round: "Round" }, languages: { en: "English", fa: "Persian" } }, account: { title: "Account & Usage", subtitle: "Monitor your quotas and manage your session.", balance: "Current Balance", tokens: "Tokens", requests: "Requests", logout: "Logout", logout_confirm: "Are you sure you want to logout?", last_recharge: "Last balance update on" } }, $a = { unauthorized: "Authentication required. Please login again.", invalid_credentials: "Invalid phone number or password.", phone_required: "Phone number is required.", password_required: "Password is required.", name_surname_required: "Name and surname are required.", phone_already_exists: "This phone number is already registered.", invalid_token: "Your session has expired. Please login again.", user_not_found: "User not found.", insufficient_balance: "Insufficient balance. Please recharge your account.", me_update_failed: "Failed to update profile information.", thread_not_found: "Conversation not found.", access_denied: "You do not have permission to perform this action.", feedback_save_failed: "Failed to save feedback.", thread_update_failed: "Failed to update conversation.", thread_delete_failed: "Failed to delete conversation.", attachment_not_found: "Attachment not found.", thread_share_failed: "Failed to share conversation.", admin_already_exists: "Admin with this username already exists.", admin_not_found: "Admin not found.", cannot_delete_self: "You cannot delete your own admin account.", admin_update_failed: "Failed to update admin information.", internal_error: "An internal server error occurred. Please try again later.", validation_error: "Invalid data provided. Please check your input.", not_found: "The requested resource was not found." }, Ua = {
|
|
6232
6241
|
sidebar: Oa,
|
|
6233
6242
|
chat: Fa,
|
|
@@ -6237,20 +6246,20 @@ const Oa = { new_conversation: "New conversation", tooltip_new_conversation: "St
|
|
|
6237
6246
|
admin: Ma,
|
|
6238
6247
|
settings: za,
|
|
6239
6248
|
errors: $a
|
|
6240
|
-
}, Ba = { new_conversation: "گفتگوی جدید", tooltip_new_conversation: "شروع یک گفتگوی جدید", delete_conversation: "حذف", delete_confirm_title: "حذف گفتگو؟", delete_confirm_description: "آیا از حذف این گفتگو اطمینان دارید؟ این عمل قابل بازگشت نیست.", cancel: "انصراف", delete: "حذف", chat_deleted_success: "گفتگو با موفقیت حذف شد", logout: "خروج", new_chat: "گفتگوی جدید", rename_conversation: "تغییر نام", rename_success: "نام گفتگو با موفقیت تغییر کرد", rename_failed: "خطا در تغییر نام گفتگو", search_conversations: "جستجوی گفتگوها...", save: "ذخیره", no_conversations: "هنوز گفتگویی ندارید", loading_more: "در حال بارگذاری...", pinned_success: "گفتگو پین شد", unpinned_success: "گفتگو از حالت پین خارج شد", pin_failed: "خطا در پین کردن گفتگو", share_success: "لینک کپی شد", share_description: "لینک اشتراکگذاری در حافظه موقت کپی شد.", share_failed: "خطا در ایجاد لینک اشتراکگذاری", pin_conversation: "پین", unpin_conversation: "برداشتن پین", share_conversation: "اشتراکگذاری" }, Ha = { tools: "ابزارها", error: "خطا:", input_placeholder: "سوالتو اینجا بپرس...", insufficient_balance: "موجودی حساب شما کافی نیست. لطفا برای ادامه، حساب خود را شارژ کنید.", regenerate: "تولید مجدد", retry: "تلاش مجدد", copy: "کپی", like: "پسندیدم", dislike: "نپسندیدم", attach_file: "پیوست فایل", remove_file: "حذف فایل", used_sources: "از {{count}} منبع استفاده شد", welcome: { title: "سلام! چطور میتونم کمکت کنم؟", subtitle: "هر سوالی داری بپرس، تمام تلاشمو میکنم کمکت کنم.", suggestions: ["چه کارهایی میتونی انجام بدی؟", "یه چیز جالب بهم بگو", "کمکم کن یه ایمیل بنویسم", "یه مفهوم رو برام توضیح بده"] }, disclaimer: "هوش مصنوعی ممکن است اشتباه کند. اطلاعات مهم را بررسی کنید." }, qa = { pending: "در انتظار", running: "در حال اجرا", completed: "تکمیل شده", error: "خطا", parameters: "پارامترها", result: "نتیجه", view_error: "نمایش خطا", tool_error: "خطای ابزار", copied: "کپی شد!", copy_error: "کپی خطا" }, ja = { login_tab: "ورود", signup_tab: "ثبت نام", phone: "شماره تلفن", phone_placeholder: "شماره تلفن", password: "رمز عبور", name: "نام", name_placeholder: "نام", surname: "نام خانوادگی", surname_placeholder: "نام خانوادگی", logging_in: "در حال ورود...", signing_up: "در حال ثبت نام...", select_placeholder: "انتخاب کنید", login_button: "ورود", signup_button: "ثبت نام" }, Ga = { toggle: "تغییر تم", light: "تغییر به تم روشن", dark: "تغییر به تم تاریک", system: "تغییر به تم سیستم" }, Wa = { select_placeholder: "انتخاب کنید", loading: "در حال بارگذاری...", retry: "تلاش مجدد", save: "ذخیره", saving: "در حال ذخیره...", cancel: "انصراف", delete: "حذف", edit: "ویرایش", search: "جستجو", search_placeholder: "جستجو...", no_data: "دادهای موجود نیست", loading_more: "در حال بارگذاری بیشتر...", confirm_delete: "آیا از حذف اطمینان دارید؟", error_loading: "خطا در بارگذاری دادهها", dashboard: { title: "پنل ادمین", logout: "خروج", tabs: { analytics: "تحلیل و آمار", chat_history: "گفتگوها", users: "کاربران", admins: "ادمینها", settings: "تنظیمات" } }, app_settings: { title: "تنظیمات سامانه", subtitle: "پیکربندی کلی ظاهر و رفتار سامانه را مدیریت کنید.", sections: { general: "اطلاعات پایه", chat: "تنظیمات گفتگو", user_billing: "کاربری و مالی" }, general: { app_name: "نام سامانه", admin_title: "عنوان پنل ادمین", language: "زبان پیشفرض", language_help: "زبانی که کاربر در اولین ورود مشاهده میکند (در صورت عدم تشخیص خودکار)." }, chat: { welcome_greeting: "پیام خوشآمدگویی", welcome_subtitle: "زیرعنوان خوشآمدگویی", disclaimer: "متن سلب مسئولیت", show_tool_details: "نمایش جزئیات فنی ابزارها (Tools)", show_tool_details_help: "برای نمایش جزئیات فنی و نحوه عملکرد ابزارهای هوش مصنوعی به کاربران، این گزینه را فعال کنید.", show_settings: "نمایش آیکون تنظیمات برای کاربران", show_settings_help: "نمایش چرخدنده تنظیمات در محیط چت برای شخصیسازی توسط کاربر.", composer_attachments: "فعالسازی پیوست فایل", composer_attachments_help: "اجازه به کاربران برای آپلود و پیوست فایل به پیامها.", thread_actions_feedback: "فعالسازی دکمههای بازخورد", thread_actions_feedback_help: "نمایش دکمههای پسندیدن/نپسندیدن در پاسخهای هوش مصنوعی.", thread_actions_retry: "فعالسازی دکمه تلاش مجدد", thread_actions_retry_help: "نمایش دکمه تلاش مجدد برای تولید دوباره آخرین پاسخ هوش مصنوعی.", history_enabled: "فعالسازی سایدبار تاریخچه", history_enabled_help: "نمایش منوی کناری شامل گفتگوهای قبلی.", history_show_delete: "اجازه حذف گفتگوها", history_show_rename: "اجازه تغییر نام گفتگوها", history_show_share: "اجازه اشتراکگذاری گفتگوها", history_show_pin: "اجازه پین کردن گفتگوها", sections_modes: "وضعیت نمایش تبهای تنظیمات", sections_modes_help: "کنترل نمایش یا غیرفعال بودن تبهای مختلف در بخش تنظیمات کاربر.", mode_editable: "فعال (قابل ویرایش)", mode_faded: "محو (فقط خواندنی)", mode_hidden: "مخفی (غیرفعال)", general_tab: "تب عمومی", profile_tab: "تب پروفایل", account_tab: "تب حساب کاربری", inner_fields_modes: "مشاهدهپذیری فیلدهای داخلی", inner_fields_modes_help: "وضعیت نمایش فیلدهای هر تب را بهصورت مجزا پیکربندی کنید." }, user_billing: { initial_balance_tokens: "توکن اولیه پیشفرض", initial_balance_requests: "تعداد درخواست اولیه پیشفرض", initial_balance_help: "این مقادیر بهصورت خودکار به کاربران جدید اختصاص داده میشوند، مگر اینکه هنگام ایجاد کاربر مقدار دیگری تعیین شود." }, save_success: "تنظیمات با موفقیت ذخیره شد", save_error: "خطا در ذخیرهسازی تنظیمات", save: "ذخیره تغییرات", translations_management: "مدیریت ترجمهها", editor_tips: "تمام تغییرات بهصورت خودکار در حالت محلی ذخیره میشوند. برای نهاییسازی، دکمه «ذخیره تغییرات» را بزنید.", sync_from_code: "همگامسازی از کد", reset_button: "بازنشانی به تنظیمات اولیه", reset_confirm_title: "بازنشانی تنظیمات؟", reset_confirm_description: "این عمل تمام فیلدها را به مقادیر پیشفرض در کد بازمیگرداند. تغییرات ذخیره نشده فعلی از بین خواهند رفت.", preview: "پیشنمایش", tips_label: "نکته" }, analytics: { title: "تحلیل و آمار", days: "{{count}} روز", total_users: "تعداد کاربران", total_threads: "تعداد گفتگوها", total_messages: "تعداد پیامها", total_token_usage: "مصرف کل توکن", threads_chart: "گفتگوها", messages_chart: "پیامها", token_usage_chart: "مصرف توکن", active_users: "کاربران فعال", conversations: "گفتگو", threads: "گفتگو", feedback: "نظرات کاربران", total_feedback: "کل نظرات", positive: "مثبت", negative: "منفی", loading_analytics: "در حال بارگذاری تحلیلها...", error_loading: "خطا در بارگذاری دادهها" }, chat_history: { title: "مدیریت تاریخچه گفتگوها", search_placeholder: "جستجو بر اساس نام، شماره تماس، عنوان گفتگو یا شناسه...", search_button: "جستجو", threads_list: "لیست گفتگوها", thread_count: "{{count}}", no_thread_title: "گفتگو بدون عنوان", messages: "پیامها", messages_for: "پیامهای گفتگو: {{title}}", select_thread: "یک گفتگو را برای مشاهده انتخاب کنید", no_threads: "هیچ گفتگویی یافت نشد", empty_thread: "این گفتگو خالی است", loading_threads: "در حال بارگذاری...", loading_messages: "در حال بارگذاری پیامها...", user_label: "کاربر", assistant_label: "دستیار هوشمند", input_tokens: "ورودی: {{value}}", output_tokens: "خروجی: {{value}}", total_tokens: "کل: {{value}}", all_feedbacks: "همه گفتگوها", liked_feedbacks: "پسندیده شده 👍", disliked_feedbacks: "نپسندیده شده 👎", any_feedback: "دارای بازخورد", output_available: "خروجی موجود است", running: "در حال اجرا...", unnamed_file: "فایل بدون نام", download_file: "دانلود فایل" }, users: { title: "مدیریت کاربران", user_count: "تعداد کاربران: {{count}}", add_user: "افزودن کاربر جدید", edit_user: "ویرایش کاربر", phone: "شماره تلفن", phone_placeholder: "۰۹۱۲۳۴۵۶۷۸۹", name: "نام", surname: "نام خانوادگی", initial_tokens: "تعداد توکن اولیه (اختیاری)", initial_requests: "تعداد درخواست اولیه (اختیاری)", balance: "موجودی", requests_label: "درخواستها", tokens_label: "توکنها", token_limit: "سقف توکن", request_limit: "سقف درخواست", tokens_usage: "میزان مصرف توکن", requests_usage: "میزان مصرف درخواست", actions: "عملیات", copy_token: "کپی توکن (با بروزرسانی خودکار)", token_copied: "توکن با موفقیت کپی شد", no_token: "توکنی برای این کاربر یافت نشد", recharge: "شارژ موجودی", full_charge: "شارژ کامل", update_balance: "بروزرسانی موجودی", update_balance_for: "بروزرسانی موجودی", token_count: "تعداد توکن", request_count: "تعداد درخواست", updating: "در حال بروزرسانی...", no_users: "هیچ کاربری یافت نشد.", confirm_delete_user: "آیا از حذف این کاربر اطمینان دارید؟", tokens_exceed_limit: "تعداد توکن نمیتواند بیشتر از سقف مجاز باشد", requests_exceed_limit: "تعداد درخواست نمیتواند بیشتر از سقف مجاز باشد", metadata: "متادیتا (JSON)", initial_balance: "موجودی اولیه", custom_fields: "فیلدهای اضافه", metadata_raw: "متادیتا (JSON خام)", advanced_usage: "استفاده پیشرفته", invalid_json: "فرمت JSON نامعتبر است" }, admins: { title: "مدیریت ادمینها", admin_count: "تعداد ادمینها: {{count}}", add_admin: "افزودن ادمین جدید", edit_admin: "ویرایش ادمین", username: "نام کاربری", name: "نام", password: "رمز عبور", password_edit: "رمز عبور جدید (خالی بگذارید تا تغییر نکند)", permissions: "دسترسیها", perm_chat_history: "تاریخچه گفتگوها", perm_admin_management: "مدیریت ادمینها", perm_user_management: "مدیریت کاربران", perm_analytics: "تحلیل و آمار", perm_settings: "تنظیمات", no_admins: "هیچ ادمینی یافت نشد.", confirm_delete_admin: "آیا از حذف این ادمین اطمینان دارید؟" }, errors: { access_denied_title: "عدم دسترسی", access_denied_message: "شما مجوزهای لازم برای دسترسی به این صفحه را ندارید. میتوانید با مدیر سیستم تماس بگیرید.", back_to_dashboard: "بازگشت به پیشخوان" }, login: { title: "پنل ادمین", setup_title: "راهاندازی اولیه", setup_description: "هنوز حساب ادمینی وجود ندارد. برای شروع، یک رمز عبور برای کاربر ادمین پیشفرض تنظیم کنید.", set_password: "تعیین رمز عبور", set_password_placeholder: "یک رمز عبور قوی انتخاب کنید", confirm_password: "تأیید رمز عبور", confirm_password_placeholder: "رمز عبور را دوباره وارد کنید", passwords_mismatch: "رمزهای عبور مطابقت ندارند", password_too_short: "رمز عبور باید حداقل ۴ کاراکتر باشد", create_admin: "ایجاد ادمین و ورود", setting_up: "در حال راهاندازی...", username: "نام کاربری", username_placeholder: "نام کاربری", password: "رمز عبور", password_placeholder: "••••••••", submit: "ورود به پنل", logging_in: "در حال ورود...", error: "خطا در ورود", copyright: "© ۲۰۲۶ پلتفرم چتبات هوشمند" } }, Va = { title: "تنظیمات", sections: { profile: "پروفایل", general: "عمومی", account: "حساب کاربری" }, profile: { title: "اطلاعات پروفایل", subtitle: "اطلاعات شخصی خود را در زیر بروز کنید.", name: "نام", surname: "نام خانوادگی", phone: "شماره تلفن", password: "رمز عبور جدید", password_placeholder: "برای عدم تغییر خالی بگذارید", save: "ذخیره تغییرات", saving: "در حال ذخیره...", success: "پروفایل با موفقیت بروزرسانی شد", error: "خطا در بروزرسانی پروفایل", select_placeholder: "انتخاب کنید" }, general: { title: "تنظیمات عمومی", subtitle: "ظاهر و زبان برنامه را تنظیم کنید.", theme: "تم", language: "زبان", themes: { light: "روشن", dark: "تاریک", system: "سیستم" }, accent: "رنگ اصلی", radius: "میزان گردی لبهها", radius_levels: { sharp: "تیز", round: "گرد" }, languages: { en: "English", fa: "فارسی" } }, account: { title: "حساب و میزان مصرف", subtitle: "سهمیه مصرف و نشست خود را مدیریت کنید.", balance: "موجود فعلی", tokens: "توکنها", requests: "درخواستها", logout: "خروج از حساب", logout_confirm: "آیا از خروج اطمینان دارید؟", last_recharge: "آخرین بروزرسانی اعتبار در تاریخ" } }, Ya = { unauthorized: "دسترسی مجاز نیست. لطفاً دوباره وارد شوید.", invalid_credentials: "شماره تلفن یا رمز عبور اشتباه است.", phone_required: "شماره تلفن الزامی است.", password_required: "رمز عبور الزامی است.", name_surname_required: "نام و نام خانوادگی الزامی است.", phone_already_exists: "این شماره تلفن قبلاً ثبت شده است.", invalid_token: "نشست شما منقضی شده است. لطفاً دوباره وارد شوید.", user_not_found: "کاربر یافت نشد.", insufficient_balance: "موجودی کافی نیست. لطفاً حساب خود را شارژ کنید.", me_update_failed: "خطا در بروزرسانی اطلاعات پروفایل.", thread_not_found: "گفتگو یافت نشد.", access_denied: "شما اجازه انجام این عملیات را ندارید.", feedback_save_failed: "خطا در ثبت بازخورد.", thread_update_failed: "خطا در بروزرسانی گفتگو.", thread_delete_failed: "خطا در حذف گفتگو.", attachment_not_found: "فایل پیوست یافت نشد.", thread_share_failed: "خطا در اشتراکگذاری گفتگو.", admin_already_exists: "ادمین با این نام کاربری قبلاً ایجاد شده است.", admin_not_found: "ادمین یافت نشد.", cannot_delete_self: "شما نمیتوانید حساب مدیریت خود را حذف کنید.", admin_update_failed: "خطا در بروزرسانی اطلاعات ادمین.", internal_error: "یک خطای داخلی در سرور رخ داده است. لطفاً بعداً تلاش کنید.", validation_error: "دادههای ارسالی معتبر نیستند. لطفاً ورودیهای خود را بررسی کنید.", not_found: "منبع مورد نظر یافت نشد." }, Xa = {
|
|
6249
|
+
}, Ba = { new_conversation: "گفتگوی جدید", tooltip_new_conversation: "شروع یک گفتگوی جدید", delete_conversation: "حذف", delete_confirm_title: "حذف گفتگو؟", delete_confirm_description: "آیا از حذف این گفتگو اطمینان دارید؟ این عمل قابل بازگشت نیست.", cancel: "انصراف", delete: "حذف", chat_deleted_success: "گفتگو با موفقیت حذف شد", logout: "خروج", new_chat: "گفتگوی جدید", rename_conversation: "تغییر نام", rename_success: "نام گفتگو با موفقیت تغییر کرد", rename_failed: "خطا در تغییر نام گفتگو", search_conversations: "جستجوی گفتگوها...", save: "ذخیره", no_conversations: "هنوز گفتگویی ندارید", loading_more: "در حال بارگذاری...", pinned_success: "گفتگو پین شد", unpinned_success: "گفتگو از حالت پین خارج شد", pin_failed: "خطا در پین کردن گفتگو", share_success: "لینک کپی شد", share_description: "لینک اشتراکگذاری در حافظه موقت کپی شد.", share_failed: "خطا در ایجاد لینک اشتراکگذاری", pin_conversation: "پین", unpin_conversation: "برداشتن پین", share_conversation: "اشتراکگذاری" }, Ha = { tools: "ابزارها", error: "خطا:", input_placeholder: "سوالتو اینجا بپرس...", insufficient_balance: "موجودی حساب شما کافی نیست. لطفا برای ادامه، حساب خود را شارژ کنید.", regenerate: "تولید مجدد", retry: "تلاش مجدد", copy: "کپی", like: "پسندیدم", dislike: "نپسندیدم", attach_file: "پیوست فایل", remove_file: "حذف فایل", used_sources: "از {{count}} منبع استفاده شد", welcome: { title: "سلام! چطور میتونم کمکت کنم؟", subtitle: "هر سوالی داری بپرس، تمام تلاشمو میکنم کمکت کنم.", suggestions: ["چه کارهایی میتونی انجام بدی؟", "یه چیز جالب بهم بگو", "کمکم کن یه ایمیل بنویسم", "یه مفهوم رو برام توضیح بده"] }, disclaimer: "هوش مصنوعی ممکن است اشتباه کند. اطلاعات مهم را بررسی کنید." }, qa = { pending: "در انتظار", running: "در حال اجرا", completed: "تکمیل شده", error: "خطا", parameters: "پارامترها", result: "نتیجه", view_error: "نمایش خطا", tool_error: "خطای ابزار", copied: "کپی شد!", copy_error: "کپی خطا" }, ja = { login_tab: "ورود", signup_tab: "ثبت نام", phone: "شماره تلفن", phone_placeholder: "شماره تلفن", password: "رمز عبور", name: "نام", name_placeholder: "نام", surname: "نام خانوادگی", surname_placeholder: "نام خانوادگی", logging_in: "در حال ورود...", signing_up: "در حال ثبت نام...", select_placeholder: "انتخاب کنید", login_button: "ورود", signup_button: "ثبت نام" }, Ga = { toggle: "تغییر تم", light: "تغییر به تم روشن", dark: "تغییر به تم تاریک", system: "تغییر به تم سیستم" }, Va = { select_placeholder: "انتخاب کنید", loading: "در حال بارگذاری...", retry: "تلاش مجدد", save: "ذخیره", saving: "در حال ذخیره...", cancel: "انصراف", delete: "حذف", edit: "ویرایش", search: "جستجو", search_placeholder: "جستجو...", no_data: "دادهای موجود نیست", loading_more: "در حال بارگذاری بیشتر...", confirm_delete: "آیا از حذف اطمینان دارید؟", error_loading: "خطا در بارگذاری دادهها", dashboard: { title: "پنل ادمین", logout: "خروج", tabs: { analytics: "تحلیل و آمار", chat_history: "گفتگوها", users: "کاربران", admins: "ادمینها", settings: "تنظیمات" } }, app_settings: { title: "تنظیمات سامانه", subtitle: "پیکربندی کلی ظاهر و رفتار سامانه را مدیریت کنید.", sections: { general: "اطلاعات پایه", chat: "تنظیمات گفتگو", user_billing: "کاربری و مالی" }, general: { app_name: "نام سامانه", admin_title: "عنوان پنل ادمین", language: "زبان پیشفرض", language_help: "زبانی که کاربر در اولین ورود مشاهده میکند (در صورت عدم تشخیص خودکار)." }, chat: { welcome_greeting: "پیام خوشآمدگویی", welcome_subtitle: "زیرعنوان خوشآمدگویی", disclaimer: "متن سلب مسئولیت", show_tool_details: "نمایش جزئیات فنی ابزارها (Tools)", show_tool_details_help: "برای نمایش جزئیات فنی و نحوه عملکرد ابزارهای هوش مصنوعی به کاربران، این گزینه را فعال کنید.", show_settings: "نمایش آیکون تنظیمات برای کاربران", show_settings_help: "نمایش چرخدنده تنظیمات در محیط چت برای شخصیسازی توسط کاربر.", composer_attachments: "فعالسازی پیوست فایل", composer_attachments_help: "اجازه به کاربران برای آپلود و پیوست فایل به پیامها.", thread_actions_feedback: "فعالسازی دکمههای بازخورد", thread_actions_feedback_help: "نمایش دکمههای پسندیدن/نپسندیدن در پاسخهای هوش مصنوعی.", thread_actions_retry: "فعالسازی دکمه تلاش مجدد", thread_actions_retry_help: "نمایش دکمه تلاش مجدد برای تولید دوباره آخرین پاسخ هوش مصنوعی.", history_enabled: "فعالسازی سایدبار تاریخچه", history_enabled_help: "نمایش منوی کناری شامل گفتگوهای قبلی.", history_show_delete: "اجازه حذف گفتگوها", history_show_rename: "اجازه تغییر نام گفتگوها", history_show_share: "اجازه اشتراکگذاری گفتگوها", history_show_pin: "اجازه پین کردن گفتگوها", sections_modes: "وضعیت نمایش تبهای تنظیمات", sections_modes_help: "کنترل نمایش یا غیرفعال بودن تبهای مختلف در بخش تنظیمات کاربر.", mode_editable: "فعال (قابل ویرایش)", mode_faded: "محو (فقط خواندنی)", mode_hidden: "مخفی (غیرفعال)", general_tab: "تب عمومی", profile_tab: "تب پروفایل", account_tab: "تب حساب کاربری", inner_fields_modes: "مشاهدهپذیری فیلدهای داخلی", inner_fields_modes_help: "وضعیت نمایش فیلدهای هر تب را بهصورت مجزا پیکربندی کنید." }, user_billing: { initial_balance_tokens: "توکن اولیه پیشفرض", initial_balance_requests: "تعداد درخواست اولیه پیشفرض", initial_balance_help: "این مقادیر بهصورت خودکار به کاربران جدید اختصاص داده میشوند، مگر اینکه هنگام ایجاد کاربر مقدار دیگری تعیین شود." }, save_success: "تنظیمات با موفقیت ذخیره شد", save_error: "خطا در ذخیرهسازی تنظیمات", save: "ذخیره تغییرات", translations_management: "مدیریت ترجمهها", editor_tips: "تمام تغییرات بهصورت خودکار در حالت محلی ذخیره میشوند. برای نهاییسازی، دکمه «ذخیره تغییرات» را بزنید.", sync_from_code: "همگامسازی از کد", reset_button: "بازنشانی به تنظیمات اولیه", reset_confirm_title: "بازنشانی تنظیمات؟", reset_confirm_description: "این عمل تمام فیلدها را به مقادیر پیشفرض در کد بازمیگرداند. تغییرات ذخیره نشده فعلی از بین خواهند رفت.", preview: "پیشنمایش", tips_label: "نکته" }, analytics: { title: "تحلیل و آمار", days: "{{count}} روز", total_users: "تعداد کاربران", total_threads: "تعداد گفتگوها", total_messages: "تعداد پیامها", total_token_usage: "مصرف کل توکن", threads_chart: "گفتگوها", messages_chart: "پیامها", token_usage_chart: "مصرف توکن", active_users: "کاربران فعال", conversations: "گفتگو", threads: "گفتگو", feedback: "نظرات کاربران", total_feedback: "کل نظرات", positive: "مثبت", negative: "منفی", loading_analytics: "در حال بارگذاری تحلیلها...", error_loading: "خطا در بارگذاری دادهها" }, chat_history: { title: "مدیریت تاریخچه گفتگوها", search_placeholder: "جستجو بر اساس نام، شماره تماس، عنوان گفتگو یا شناسه...", search_button: "جستجو", threads_list: "لیست گفتگوها", thread_count: "{{count}}", no_thread_title: "گفتگو بدون عنوان", messages: "پیامها", messages_for: "پیامهای گفتگو: {{title}}", select_thread: "یک گفتگو را برای مشاهده انتخاب کنید", no_threads: "هیچ گفتگویی یافت نشد", empty_thread: "این گفتگو خالی است", loading_threads: "در حال بارگذاری...", loading_messages: "در حال بارگذاری پیامها...", user_label: "کاربر", assistant_label: "دستیار هوشمند", input_tokens: "ورودی: {{value}}", output_tokens: "خروجی: {{value}}", total_tokens: "کل: {{value}}", all_feedbacks: "همه گفتگوها", liked_feedbacks: "پسندیده شده 👍", disliked_feedbacks: "نپسندیده شده 👎", any_feedback: "دارای بازخورد", output_available: "خروجی موجود است", running: "در حال اجرا...", unnamed_file: "فایل بدون نام", download_file: "دانلود فایل" }, users: { title: "مدیریت کاربران", user_count: "تعداد کاربران: {{count}}", add_user: "افزودن کاربر جدید", edit_user: "ویرایش کاربر", phone: "شماره تلفن", phone_placeholder: "۰۹۱۲۳۴۵۶۷۸۹", name: "نام", surname: "نام خانوادگی", initial_tokens: "تعداد توکن اولیه (اختیاری)", initial_requests: "تعداد درخواست اولیه (اختیاری)", balance: "موجودی", requests_label: "درخواستها", tokens_label: "توکنها", token_limit: "سقف توکن", request_limit: "سقف درخواست", tokens_usage: "میزان مصرف توکن", requests_usage: "میزان مصرف درخواست", actions: "عملیات", copy_token: "کپی توکن (با بروزرسانی خودکار)", token_copied: "توکن با موفقیت کپی شد", no_token: "توکنی برای این کاربر یافت نشد", recharge: "شارژ موجودی", full_charge: "شارژ کامل", update_balance: "بروزرسانی موجودی", update_balance_for: "بروزرسانی موجودی", token_count: "تعداد توکن", request_count: "تعداد درخواست", updating: "در حال بروزرسانی...", no_users: "هیچ کاربری یافت نشد.", confirm_delete_user: "آیا از حذف این کاربر اطمینان دارید؟", tokens_exceed_limit: "تعداد توکن نمیتواند بیشتر از سقف مجاز باشد", requests_exceed_limit: "تعداد درخواست نمیتواند بیشتر از سقف مجاز باشد", metadata: "متادیتا (JSON)", initial_balance: "موجودی اولیه", custom_fields: "فیلدهای اضافه", metadata_raw: "متادیتا (JSON خام)", advanced_usage: "استفاده پیشرفته", invalid_json: "فرمت JSON نامعتبر است" }, admins: { title: "مدیریت ادمینها", admin_count: "تعداد ادمینها: {{count}}", add_admin: "افزودن ادمین جدید", edit_admin: "ویرایش ادمین", username: "نام کاربری", name: "نام", password: "رمز عبور", password_edit: "رمز عبور جدید (خالی بگذارید تا تغییر نکند)", permissions: "دسترسیها", perm_chat_history: "تاریخچه گفتگوها", perm_admin_management: "مدیریت ادمینها", perm_user_management: "مدیریت کاربران", perm_analytics: "تحلیل و آمار", perm_settings: "تنظیمات", no_admins: "هیچ ادمینی یافت نشد.", confirm_delete_admin: "آیا از حذف این ادمین اطمینان دارید؟" }, errors: { access_denied_title: "عدم دسترسی", access_denied_message: "شما مجوزهای لازم برای دسترسی به این صفحه را ندارید. میتوانید با مدیر سیستم تماس بگیرید.", back_to_dashboard: "بازگشت به پیشخوان" }, login: { title: "پنل ادمین", setup_title: "راهاندازی اولیه", setup_description: "هنوز حساب ادمینی وجود ندارد. برای شروع، یک رمز عبور برای کاربر ادمین پیشفرض تنظیم کنید.", set_password: "تعیین رمز عبور", set_password_placeholder: "یک رمز عبور قوی انتخاب کنید", confirm_password: "تأیید رمز عبور", confirm_password_placeholder: "رمز عبور را دوباره وارد کنید", passwords_mismatch: "رمزهای عبور مطابقت ندارند", password_too_short: "رمز عبور باید حداقل ۴ کاراکتر باشد", create_admin: "ایجاد ادمین و ورود", setting_up: "در حال راهاندازی...", username: "نام کاربری", username_placeholder: "نام کاربری", password: "رمز عبور", password_placeholder: "••••••••", submit: "ورود به پنل", logging_in: "در حال ورود...", error: "خطا در ورود", copyright: "© ۲۰۲۶ پلتفرم چتبات هوشمند" } }, Wa = { title: "تنظیمات", sections: { profile: "پروفایل", general: "عمومی", account: "حساب کاربری" }, profile: { title: "اطلاعات پروفایل", subtitle: "اطلاعات شخصی خود را در زیر بروز کنید.", name: "نام", surname: "نام خانوادگی", phone: "شماره تلفن", password: "رمز عبور جدید", password_placeholder: "برای عدم تغییر خالی بگذارید", save: "ذخیره تغییرات", saving: "در حال ذخیره...", success: "پروفایل با موفقیت بروزرسانی شد", error: "خطا در بروزرسانی پروفایل", select_placeholder: "انتخاب کنید" }, general: { title: "تنظیمات عمومی", subtitle: "ظاهر و زبان برنامه را تنظیم کنید.", theme: "تم", language: "زبان", themes: { light: "روشن", dark: "تاریک", system: "سیستم" }, accent: "رنگ اصلی", radius: "میزان گردی لبهها", radius_levels: { sharp: "تیز", round: "گرد" }, languages: { en: "English", fa: "فارسی" } }, account: { title: "حساب و میزان مصرف", subtitle: "سهمیه مصرف و نشست خود را مدیریت کنید.", balance: "موجود فعلی", tokens: "توکنها", requests: "درخواستها", logout: "خروج از حساب", logout_confirm: "آیا از خروج اطمینان دارید؟", last_recharge: "آخرین بروزرسانی اعتبار در تاریخ" } }, Ya = { unauthorized: "دسترسی مجاز نیست. لطفاً دوباره وارد شوید.", invalid_credentials: "شماره تلفن یا رمز عبور اشتباه است.", phone_required: "شماره تلفن الزامی است.", password_required: "رمز عبور الزامی است.", name_surname_required: "نام و نام خانوادگی الزامی است.", phone_already_exists: "این شماره تلفن قبلاً ثبت شده است.", invalid_token: "نشست شما منقضی شده است. لطفاً دوباره وارد شوید.", user_not_found: "کاربر یافت نشد.", insufficient_balance: "موجودی کافی نیست. لطفاً حساب خود را شارژ کنید.", me_update_failed: "خطا در بروزرسانی اطلاعات پروفایل.", thread_not_found: "گفتگو یافت نشد.", access_denied: "شما اجازه انجام این عملیات را ندارید.", feedback_save_failed: "خطا در ثبت بازخورد.", thread_update_failed: "خطا در بروزرسانی گفتگو.", thread_delete_failed: "خطا در حذف گفتگو.", attachment_not_found: "فایل پیوست یافت نشد.", thread_share_failed: "خطا در اشتراکگذاری گفتگو.", admin_already_exists: "ادمین با این نام کاربری قبلاً ایجاد شده است.", admin_not_found: "ادمین یافت نشد.", cannot_delete_self: "شما نمیتوانید حساب مدیریت خود را حذف کنید.", admin_update_failed: "خطا در بروزرسانی اطلاعات ادمین.", internal_error: "یک خطای داخلی در سرور رخ داده است. لطفاً بعداً تلاش کنید.", validation_error: "دادههای ارسالی معتبر نیستند. لطفاً ورودیهای خود را بررسی کنید.", not_found: "منبع مورد نظر یافت نشد." }, Xa = {
|
|
6241
6250
|
sidebar: Ba,
|
|
6242
6251
|
chat: Ha,
|
|
6243
6252
|
tools_ui: qa,
|
|
6244
6253
|
login: ja,
|
|
6245
6254
|
theme: Ga,
|
|
6246
|
-
admin:
|
|
6247
|
-
settings:
|
|
6255
|
+
admin: Va,
|
|
6256
|
+
settings: Wa,
|
|
6248
6257
|
errors: Ya
|
|
6249
6258
|
}, Ka = {
|
|
6250
6259
|
en: Ua,
|
|
6251
6260
|
fa: Xa
|
|
6252
|
-
}, Za =
|
|
6253
|
-
Za.use(
|
|
6261
|
+
}, Za = Fn.createInstance();
|
|
6262
|
+
Za.use(sn).use(un).init({
|
|
6254
6263
|
resources: Ka,
|
|
6255
6264
|
fallbackLng: "en",
|
|
6256
6265
|
returnNull: !1,
|
|
@@ -6271,7 +6280,7 @@ function Ni({ className: e, type: t, ...n }) {
|
|
|
6271
6280
|
{
|
|
6272
6281
|
type: t,
|
|
6273
6282
|
"data-slot": "input",
|
|
6274
|
-
className:
|
|
6283
|
+
className: k(
|
|
6275
6284
|
"file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
6276
6285
|
"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
|
|
6277
6286
|
"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
|
|
@@ -6287,7 +6296,7 @@ const Ti = "data:image/svg+xml,%3csvg%20version='1.2'%20xmlns='http://www.w3.org
|
|
|
6287
6296
|
"label",
|
|
6288
6297
|
{
|
|
6289
6298
|
ref: n,
|
|
6290
|
-
className:
|
|
6299
|
+
className: k(Ja(), e),
|
|
6291
6300
|
...t
|
|
6292
6301
|
}
|
|
6293
6302
|
));
|
|
@@ -6312,7 +6321,7 @@ function Ri({
|
|
|
6312
6321
|
{
|
|
6313
6322
|
"data-slot": "select-trigger",
|
|
6314
6323
|
"data-size": t,
|
|
6315
|
-
className:
|
|
6324
|
+
className: k(
|
|
6316
6325
|
"border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
6317
6326
|
e
|
|
6318
6327
|
),
|
|
@@ -6334,7 +6343,7 @@ function Oi({
|
|
|
6334
6343
|
L.Content,
|
|
6335
6344
|
{
|
|
6336
6345
|
"data-slot": "select-content",
|
|
6337
|
-
className:
|
|
6346
|
+
className: k(
|
|
6338
6347
|
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",
|
|
6339
6348
|
n === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
|
|
6340
6349
|
e
|
|
@@ -6346,7 +6355,7 @@ function Oi({
|
|
|
6346
6355
|
/* @__PURE__ */ i(
|
|
6347
6356
|
L.Viewport,
|
|
6348
6357
|
{
|
|
6349
|
-
className:
|
|
6358
|
+
className: k(
|
|
6350
6359
|
"p-1",
|
|
6351
6360
|
n === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"
|
|
6352
6361
|
),
|
|
@@ -6363,7 +6372,7 @@ function Fi({ className: e, ...t }) {
|
|
|
6363
6372
|
L.Label,
|
|
6364
6373
|
{
|
|
6365
6374
|
"data-slot": "select-label",
|
|
6366
|
-
className:
|
|
6375
|
+
className: k("text-muted-foreground px-2 py-1.5 text-xs", e),
|
|
6367
6376
|
...t
|
|
6368
6377
|
}
|
|
6369
6378
|
);
|
|
@@ -6373,7 +6382,7 @@ function Li({ className: e, children: t, ...n }) {
|
|
|
6373
6382
|
L.Item,
|
|
6374
6383
|
{
|
|
6375
6384
|
"data-slot": "select-item",
|
|
6376
|
-
className:
|
|
6385
|
+
className: k(
|
|
6377
6386
|
"focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pe-8 ps-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 text-start",
|
|
6378
6387
|
e
|
|
6379
6388
|
),
|
|
@@ -6390,7 +6399,7 @@ function Di({ className: e, ...t }) {
|
|
|
6390
6399
|
L.Separator,
|
|
6391
6400
|
{
|
|
6392
6401
|
"data-slot": "select-separator",
|
|
6393
|
-
className:
|
|
6402
|
+
className: k("bg-border pointer-events-none -mx-1 my-1 h-px", e),
|
|
6394
6403
|
...t
|
|
6395
6404
|
}
|
|
6396
6405
|
);
|
|
@@ -6400,9 +6409,9 @@ function ei({ className: e, ...t }) {
|
|
|
6400
6409
|
L.ScrollUpButton,
|
|
6401
6410
|
{
|
|
6402
6411
|
"data-slot": "select-scroll-up-button",
|
|
6403
|
-
className:
|
|
6412
|
+
className: k("flex cursor-default items-center justify-center py-1", e),
|
|
6404
6413
|
...t,
|
|
6405
|
-
children: /* @__PURE__ */ i(
|
|
6414
|
+
children: /* @__PURE__ */ i(An, { className: "size-4" })
|
|
6406
6415
|
}
|
|
6407
6416
|
);
|
|
6408
6417
|
}
|
|
@@ -6414,7 +6423,7 @@ function ti({
|
|
|
6414
6423
|
L.ScrollDownButton,
|
|
6415
6424
|
{
|
|
6416
6425
|
"data-slot": "select-scroll-down-button",
|
|
6417
|
-
className:
|
|
6426
|
+
className: k("flex cursor-default items-center justify-center py-1", e),
|
|
6418
6427
|
...t,
|
|
6419
6428
|
children: /* @__PURE__ */ i(ie, { className: "size-4" })
|
|
6420
6429
|
}
|
|
@@ -6452,7 +6461,7 @@ function $i({
|
|
|
6452
6461
|
{
|
|
6453
6462
|
"data-slot": "dropdown-menu-content",
|
|
6454
6463
|
sideOffset: t,
|
|
6455
|
-
className:
|
|
6464
|
+
className: k(
|
|
6456
6465
|
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
|
|
6457
6466
|
e
|
|
6458
6467
|
),
|
|
@@ -6472,7 +6481,7 @@ function Ui({
|
|
|
6472
6481
|
"data-slot": "dropdown-menu-item",
|
|
6473
6482
|
"data-inset": t,
|
|
6474
6483
|
"data-variant": n,
|
|
6475
|
-
className:
|
|
6484
|
+
className: k(
|
|
6476
6485
|
"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
6477
6486
|
e
|
|
6478
6487
|
),
|
|
@@ -6485,7 +6494,7 @@ function Bi({ className: e, ...t }) {
|
|
|
6485
6494
|
Ye.Root,
|
|
6486
6495
|
{
|
|
6487
6496
|
"data-slot": "checkbox",
|
|
6488
|
-
className:
|
|
6497
|
+
className: k(
|
|
6489
6498
|
"peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
|
|
6490
6499
|
e
|
|
6491
6500
|
),
|
|
@@ -6509,7 +6518,7 @@ export {
|
|
|
6509
6518
|
Tr as D,
|
|
6510
6519
|
Or as E,
|
|
6511
6520
|
Fr as F,
|
|
6512
|
-
|
|
6521
|
+
Xe as G,
|
|
6513
6522
|
xi as H,
|
|
6514
6523
|
Ni as I,
|
|
6515
6524
|
wi as J,
|
|
@@ -6530,21 +6539,21 @@ export {
|
|
|
6530
6539
|
Di as Y,
|
|
6531
6540
|
vr as Z,
|
|
6532
6541
|
ga as _,
|
|
6533
|
-
|
|
6542
|
+
W as a,
|
|
6534
6543
|
vi as a0,
|
|
6535
6544
|
Jn as a1,
|
|
6536
|
-
|
|
6545
|
+
sn as a2,
|
|
6537
6546
|
$n as b,
|
|
6538
|
-
|
|
6547
|
+
yi as c,
|
|
6539
6548
|
Ka as d,
|
|
6540
|
-
|
|
6549
|
+
k as e,
|
|
6541
6550
|
ao as f,
|
|
6542
6551
|
Za as g,
|
|
6543
|
-
|
|
6544
|
-
|
|
6545
|
-
|
|
6546
|
-
|
|
6547
|
-
|
|
6552
|
+
It as h,
|
|
6553
|
+
Rt as i,
|
|
6554
|
+
ki as j,
|
|
6555
|
+
Ot as k,
|
|
6556
|
+
Ft as l,
|
|
6548
6557
|
Ei as m,
|
|
6549
6558
|
Pi as n,
|
|
6550
6559
|
Cr as o,
|