@burdenoff/fe-libs 2026.1004.3 → 2026.1004.5
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/chrome/mobileTabBar/useVisibleNavItems.d.ts +9 -0
- package/dist/chrome/mobileTabBar/useVisibleNavItems.d.ts.map +1 -1
- package/dist/chrome/mobileTabBar/useVisibleNavItems.js +3 -1
- package/dist/shared/assistant/api.d.ts +6 -0
- package/dist/shared/assistant/api.d.ts.map +1 -1
- package/dist/shared/assistant/api.js +5 -3
- package/dist/shared/assistant/i18nManifest.d.ts +13 -0
- package/dist/shared/assistant/i18nManifest.d.ts.map +1 -1
- package/dist/shared/assistant/i18nManifest.js +25 -12
- package/dist/shared/assistant/index.d.ts +11 -0
- package/dist/shared/assistant/index.d.ts.map +1 -1
- package/dist/shared/assistant/localUiCommandCopy.d.ts +18 -0
- package/dist/shared/assistant/localUiCommandCopy.d.ts.map +1 -1
- package/dist/shared/assistant/localUiCommandCopy.js +22 -2
- package/dist/shared/assistant/localUiCommands.d.ts +63 -26
- package/dist/shared/assistant/localUiCommands.d.ts.map +1 -1
- package/dist/shared/assistant/localUiCommands.js +128 -59
- package/dist/shared/assistant/store.d.ts +10 -0
- package/dist/shared/assistant/store.d.ts.map +1 -1
- package/dist/shared/assistant/store.js +52 -44
- package/dist/shared/assistant/ui/AssistantChatArea.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AssistantChatArea.js +1023 -874
- package/dist/shared/assistant/ui/AssistantMarkdownRenderer.d.ts +3 -34
- package/dist/shared/assistant/ui/AssistantMarkdownRenderer.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AssistantMarkdownRenderer.js +83 -119
- package/dist/shared/assistant/ui/AssistantMoreMenu.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AssistantMoreMenu.js +58 -56
- package/dist/shared/assistant/ui/AssistantSpeechProvider.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AssistantSpeechProvider.js +106 -105
- package/dist/shared/assistant/ui/composer/AssistantConnectSourceItem.js +2 -1
- package/dist/shared/assistant/ui/composer/AssistantVoiceGraceSelector.d.ts +20 -0
- package/dist/shared/assistant/ui/composer/AssistantVoiceGraceSelector.d.ts.map +1 -0
- package/dist/shared/assistant/ui/composer/AssistantVoiceGraceSelector.js +39 -0
- package/dist/shared/assistant/ui/composer/connectSource.js +2 -1
- package/dist/shared/assistant/ui/useVoiceSession.d.ts +35 -2
- package/dist/shared/assistant/ui/useVoiceSession.d.ts.map +1 -1
- package/dist/shared/assistant/ui/useVoiceSession.js +232 -171
- package/dist/shared/assistant/ui/voice/AssistantVoiceSession.d.ts +15 -1
- package/dist/shared/assistant/ui/voice/AssistantVoiceSession.d.ts.map +1 -1
- package/dist/shared/assistant/ui/voice/AssistantVoiceSession.js +121 -101
- package/dist/shared/assistant/uiActions/assistantHref.d.ts +36 -0
- package/dist/shared/assistant/uiActions/assistantHref.d.ts.map +1 -0
- package/dist/shared/assistant/uiActions/assistantHref.js +46 -0
- package/dist/shared/assistant/uiActions/deixis.d.ts +29 -0
- package/dist/shared/assistant/uiActions/deixis.d.ts.map +1 -0
- package/dist/shared/assistant/uiActions/deixis.js +54 -0
- package/dist/shared/assistant/uiActions/entityRoutes.d.ts +49 -0
- package/dist/shared/assistant/uiActions/entityRoutes.d.ts.map +1 -0
- package/dist/shared/assistant/uiActions/entityRoutes.js +53 -0
- package/dist/shared/assistant/uiActions/inAppLinks.d.ts +28 -0
- package/dist/shared/assistant/uiActions/inAppLinks.d.ts.map +1 -0
- package/dist/shared/assistant/uiActions/inAppLinks.js +51 -0
- package/dist/shared/assistant/uiActions/linkContext.d.ts +52 -0
- package/dist/shared/assistant/uiActions/linkContext.d.ts.map +1 -0
- package/dist/shared/assistant/uiActions/linkContext.js +60 -0
- package/dist/shared/assistant/uiActions/recordNames.d.ts +73 -0
- package/dist/shared/assistant/uiActions/recordNames.d.ts.map +1 -0
- package/dist/shared/assistant/uiActions/recordNames.js +75 -0
- package/dist/shared/assistant/uiActions/resolveTarget.d.ts +43 -0
- package/dist/shared/assistant/uiActions/resolveTarget.d.ts.map +1 -0
- package/dist/shared/assistant/uiActions/resolveTarget.js +49 -0
- package/dist/shared/assistant/uiActions/uiCatalogue.d.ts +30 -0
- package/dist/shared/assistant/uiActions/uiCatalogue.d.ts.map +1 -0
- package/dist/shared/assistant/uiActions/uiCatalogue.js +22 -0
- package/dist/shared/assistant/voice/handsFree.d.ts +160 -0
- package/dist/shared/assistant/voice/handsFree.d.ts.map +1 -0
- package/dist/shared/assistant/voice/handsFree.js +104 -0
- package/dist/shared/assistant/voice/supersededTurns.d.ts +29 -0
- package/dist/shared/assistant/voice/supersededTurns.d.ts.map +1 -0
- package/dist/shared/assistant/voice/supersededTurns.js +17 -0
- package/dist/shared/assistant/voice/useVoiceInput.d.ts +7 -0
- package/dist/shared/assistant/voice/useVoiceInput.d.ts.map +1 -1
- package/dist/shared/assistant/voice/useVoiceInput.js +13 -10
- package/dist/shared/assistant/voice/voiceSession.d.ts +64 -20
- package/dist/shared/assistant/voice/voiceSession.d.ts.map +1 -1
- package/dist/shared/assistant/voice/voiceSession.js +120 -67
- package/dist/shared/components/assistantWidget/MessageContent.js +4 -3
- package/dist/shared-assistant.js +206 -195
- package/package.json +3 -1
|
@@ -1,25 +1,10 @@
|
|
|
1
1
|
import { FC, MouseEvent, ReactNode } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { assistantRoutePath, assistantUrlTransform, classifyAssistantHref, AssistantLinkKind } from '../uiActions/assistantHref';
|
|
3
3
|
interface Props {
|
|
4
4
|
content: string;
|
|
5
5
|
}
|
|
6
|
-
|
|
7
|
-
export
|
|
8
|
-
/**
|
|
9
|
-
* How a link in an assistant reply should be treated.
|
|
10
|
-
*
|
|
11
|
-
* ★★ `href.startsWith("/")` IS NOT AN INTERNAL TEST. A protocol-relative URL —
|
|
12
|
-
* `//evil.example/path` — has no colon, so react-markdown's `defaultUrlTransform`
|
|
13
|
-
* returns it verbatim and the sanitizer passes it through; the browser then
|
|
14
|
-
* resolves it against the page's SCHEME and lands on another origin. Treating
|
|
15
|
-
* that as internal would hand an attacker-authored destination to the router.
|
|
16
|
-
* So the decision is made by RESOLVING the href and comparing origins.
|
|
17
|
-
*
|
|
18
|
-
* ★ This runs AFTER the sanitizer, so anything with an unsafe scheme has already
|
|
19
|
-
* been reduced to an empty string upstream — `blocked` here is the empty case,
|
|
20
|
-
* not a second scheme allow-list. The scheme policy stays in one place.
|
|
21
|
-
*/
|
|
22
|
-
export type AssistantLinkKind = "internal" | "external" | "fragment" | "blocked";
|
|
6
|
+
export { assistantRoutePath, assistantUrlTransform, classifyAssistantHref };
|
|
7
|
+
export type { AssistantLinkKind };
|
|
23
8
|
/**
|
|
24
9
|
* ★ BOFF-8060 (N1a, C7): what a navigator reports about the hand-over, so the
|
|
25
10
|
* panel can check the landing before it says "Opened X". Backward compatible:
|
|
@@ -42,21 +27,6 @@ export type AssistantNavigateResult =
|
|
|
42
27
|
* the product; absent means "no SPA routing".
|
|
43
28
|
*/
|
|
44
29
|
export type AssistantNavigate = (path: string) => AssistantNavigateResult | void;
|
|
45
|
-
export declare function classifyAssistantHref(href: string | null | undefined, baseOrigin?: string): AssistantLinkKind;
|
|
46
|
-
/**
|
|
47
|
-
* The router-ready path for an href already classified as `internal`, or null if
|
|
48
|
-
* it cannot be resolved.
|
|
49
|
-
*
|
|
50
|
-
* ★★ WHY THIS IS NOT THE HREF. An internal link may be written absolutely —
|
|
51
|
-
* `https://app.example.com/fields?q=1#top` is same-origin, so it classifies as
|
|
52
|
-
* internal — and every SPA router reads a `to`/`navigate()` string as a PATH.
|
|
53
|
-
* Handing it the absolute form routes to a literal `/https://app.example.com/...`
|
|
54
|
-
* segment. Resolving here means each product wires one line and cannot get this
|
|
55
|
-
* wrong; the alternative is the same five lines re-derived in every product,
|
|
56
|
-
* with only the ones whose assistant happened to emit an absolute URL finding
|
|
57
|
-
* out they got it wrong.
|
|
58
|
-
*/
|
|
59
|
-
export declare function assistantRoutePath(href: string | null | undefined, baseOrigin?: string): string | null;
|
|
60
30
|
/**
|
|
61
31
|
* ★★ The cases where the BROWSER must win, not the router. Losing these is how
|
|
62
32
|
* "open in new tab", "copy link" and middle-click quietly stop working — the
|
|
@@ -88,5 +58,4 @@ export declare const AssistantNavigateProvider: FC<{
|
|
|
88
58
|
}>;
|
|
89
59
|
export declare function useAssistantNavigate(): AssistantNavigate | null;
|
|
90
60
|
export declare const AssistantMarkdownRenderer: FC<Props>;
|
|
91
|
-
export {};
|
|
92
61
|
//# sourceMappingURL=AssistantMarkdownRenderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantMarkdownRenderer.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantMarkdownRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAIL,KAAK,EAAE,EACP,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AssistantMarkdownRenderer.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantMarkdownRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAIL,KAAK,EAAE,EACP,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAYf,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,KAAK,iBAAiB,EACvB,MAAM,4BAA4B,CAAC;AAEpC,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAsCD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,CAAC;AAC5E,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAElC;;;;GAIG;AACH,MAAM,MAAM,uBAAuB;AACjC,6DAA6D;AAC3D;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE;AACpB,0EAA0E;GACxE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,iBAAiB,GAAG,cAAc,CAAA;CAAE,CAAC;AAEpE;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,uBAAuB,GAAG,IAAI,CAAC;AAEjF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,GAAG,OAAO,CASjF;AAID;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,EAAE,CAAC;IACzC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,SAAS,CAAC;CACrB,CAIA,CAAC;AAEF,wBAAgB,oBAAoB,IAAI,iBAAiB,GAAG,IAAI,CAE/D;AAuTD,eAAO,MAAM,yBAAyB,EAAE,EAAE,CAAC,KAAK,CAiB/C,CAAC"}
|
|
@@ -1,123 +1,87 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { createContext as
|
|
10
|
-
import { Check as
|
|
11
|
-
import { Fragment as
|
|
1
|
+
import { Markdown as e } from "../../../node_modules/react-markdown/lib/index.js";
|
|
2
|
+
import t from "../../../node_modules/remark-gfm/lib/index.js";
|
|
3
|
+
import { defaultSchema as n } from "../../../node_modules/hast-util-sanitize/lib/schema.js";
|
|
4
|
+
import r from "../../../node_modules/rehype-sanitize/lib/index.js";
|
|
5
|
+
import { useAssistantTr as i } from "../i18n.js";
|
|
6
|
+
import { copyToClipboard as a } from "../clipboard.js";
|
|
7
|
+
import { AssistantMarkdownImage as o } from "./AssistantMarkdownImage.js";
|
|
8
|
+
import { assistantRoutePath as s, assistantUrlTransform as c, classifyAssistantHref as l } from "../uiActions/assistantHref.js";
|
|
9
|
+
import { createContext as u, useContext as d, useState as f } from "react";
|
|
10
|
+
import { Check as p, Copy as m } from "lucide-react";
|
|
11
|
+
import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
|
|
12
12
|
//#region src/shared/assistant/ui/AssistantMarkdownRenderer.tsx
|
|
13
|
-
var
|
|
14
|
-
...
|
|
13
|
+
var v = {
|
|
14
|
+
...n,
|
|
15
15
|
protocols: {
|
|
16
|
-
...
|
|
17
|
-
src: [...
|
|
16
|
+
...n.protocols,
|
|
17
|
+
src: [...n.protocols?.src ?? [], "data"]
|
|
18
18
|
}
|
|
19
|
-
}
|
|
20
|
-
function
|
|
21
|
-
try {
|
|
22
|
-
return typeof window > "u" ? null : window.location.origin;
|
|
23
|
-
} catch {
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
function x(e, t) {
|
|
28
|
-
try {
|
|
29
|
-
let n = new URL(t);
|
|
30
|
-
if (n.protocol === "https:" || n.protocol === "http:" || !n.host) return !1;
|
|
31
|
-
let r = new URL(e, t);
|
|
32
|
-
return r.protocol === n.protocol && r.host === n.host;
|
|
33
|
-
} catch {
|
|
34
|
-
return !1;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
function S(t, n) {
|
|
38
|
-
let r = (t ?? "").trim();
|
|
39
|
-
if (!r) return "blocked";
|
|
40
|
-
if (r.startsWith("#")) return "fragment";
|
|
41
|
-
let i = n ?? b();
|
|
42
|
-
return i && (e(r, i) || x(r, i)) ? "internal" : "external";
|
|
43
|
-
}
|
|
44
|
-
function C(e, t) {
|
|
45
|
-
let n = (e ?? "").trim();
|
|
46
|
-
if (!n) return null;
|
|
47
|
-
let r = t ?? b();
|
|
48
|
-
if (!r) return null;
|
|
49
|
-
try {
|
|
50
|
-
let e = new URL(n, r), t = `${e.pathname}${e.search}${e.hash}`;
|
|
51
|
-
return t.startsWith("//") || t.startsWith("/\\") ? null : t;
|
|
52
|
-
} catch {
|
|
53
|
-
return null;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
function w(e) {
|
|
19
|
+
};
|
|
20
|
+
function y(e) {
|
|
57
21
|
return e.defaultPrevented || e.button !== 0 || e.metaKey || e.ctrlKey || e.shiftKey || e.altKey;
|
|
58
22
|
}
|
|
59
|
-
var
|
|
23
|
+
var b = u(null), x = ({ value: e, children: t }) => /* @__PURE__ */ g(b.Provider, {
|
|
60
24
|
value: e ?? null,
|
|
61
25
|
children: t
|
|
62
26
|
});
|
|
63
|
-
function
|
|
64
|
-
return
|
|
27
|
+
function S() {
|
|
28
|
+
return d(b);
|
|
65
29
|
}
|
|
66
|
-
var
|
|
67
|
-
let n =
|
|
68
|
-
return r === "blocked" ? /* @__PURE__ */ h
|
|
30
|
+
var C = "text-action-primary-bg underline-offset-2 hover:underline", w = ({ href: e, children: t }) => {
|
|
31
|
+
let n = S(), r = l(e), i = r === "internal" ? s(e) : null;
|
|
32
|
+
return r === "blocked" ? /* @__PURE__ */ g(h, { children: t }) : n && i ? /* @__PURE__ */ g("a", {
|
|
69
33
|
href: i,
|
|
70
|
-
className:
|
|
34
|
+
className: C,
|
|
71
35
|
"data-testid": "assistant-markdown-link",
|
|
72
36
|
onClick: (e) => {
|
|
73
|
-
|
|
37
|
+
y(e) || (e.preventDefault(), n(i));
|
|
74
38
|
},
|
|
75
39
|
children: t
|
|
76
|
-
}) : r === "internal" || r === "fragment" ? /* @__PURE__ */
|
|
40
|
+
}) : r === "internal" || r === "fragment" ? /* @__PURE__ */ g("a", {
|
|
77
41
|
href: i ?? e,
|
|
78
|
-
className:
|
|
42
|
+
className: C,
|
|
79
43
|
"data-testid": "assistant-markdown-link",
|
|
80
44
|
children: t
|
|
81
|
-
}) : /* @__PURE__ */
|
|
45
|
+
}) : /* @__PURE__ */ g("a", {
|
|
82
46
|
href: e,
|
|
83
47
|
target: "_blank",
|
|
84
48
|
rel: "noopener noreferrer",
|
|
85
|
-
className:
|
|
49
|
+
className: C,
|
|
86
50
|
"data-testid": "assistant-markdown-link",
|
|
87
51
|
children: t
|
|
88
52
|
});
|
|
89
|
-
},
|
|
90
|
-
function
|
|
91
|
-
let n =
|
|
92
|
-
return /* @__PURE__ */
|
|
53
|
+
}, T = [t], E = [[r, v]];
|
|
54
|
+
function D({ language: e, code: t }) {
|
|
55
|
+
let n = i(), [r, o] = f(!1);
|
|
56
|
+
return /* @__PURE__ */ _("div", {
|
|
93
57
|
className: "group relative my-2 overflow-hidden rounded-md border border-border-default bg-bg-sunken",
|
|
94
|
-
children: [/* @__PURE__ */
|
|
58
|
+
children: [/* @__PURE__ */ _("div", {
|
|
95
59
|
className: "flex items-center justify-between border-b border-border-default bg-bg-elevated px-3 py-1.5",
|
|
96
|
-
children: [/* @__PURE__ */
|
|
60
|
+
children: [/* @__PURE__ */ g("span", {
|
|
97
61
|
className: "font-mono text-[10px] uppercase tracking-wider text-text-muted",
|
|
98
62
|
children: e || "code"
|
|
99
|
-
}), /* @__PURE__ */
|
|
63
|
+
}), /* @__PURE__ */ g("button", {
|
|
100
64
|
type: "button",
|
|
101
65
|
onClick: () => {
|
|
102
|
-
|
|
103
|
-
e && (
|
|
66
|
+
a(t).then((e) => {
|
|
67
|
+
e && (o(!0), setTimeout(() => o(!1), 2e3));
|
|
104
68
|
});
|
|
105
69
|
},
|
|
106
70
|
className: "flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] text-text-secondary transition-colors hover:bg-bg-sunken hover:text-text-primary",
|
|
107
71
|
"aria-label": n("markdown.copyCode", "Copy code"),
|
|
108
72
|
"data-testid": "assistant-markdown-copy-code",
|
|
109
|
-
children: r ? /* @__PURE__ */
|
|
73
|
+
children: r ? /* @__PURE__ */ _(h, { children: [/* @__PURE__ */ g(p, { className: "size-3 text-status-success-text" }), /* @__PURE__ */ g("span", { children: n("markdown.copied", "Copied") })] }) : /* @__PURE__ */ _(h, { children: [/* @__PURE__ */ g(m, { className: "size-3" }), /* @__PURE__ */ g("span", { children: n("markdown.copy", "Copy") })] })
|
|
110
74
|
})]
|
|
111
|
-
}), /* @__PURE__ */
|
|
75
|
+
}), /* @__PURE__ */ g("pre", {
|
|
112
76
|
className: "overflow-x-auto p-3 text-xs leading-relaxed",
|
|
113
|
-
children: /* @__PURE__ */
|
|
77
|
+
children: /* @__PURE__ */ g("code", {
|
|
114
78
|
className: "font-mono text-text-primary",
|
|
115
79
|
children: t
|
|
116
80
|
})
|
|
117
81
|
})]
|
|
118
82
|
});
|
|
119
83
|
}
|
|
120
|
-
function
|
|
84
|
+
function O(e) {
|
|
121
85
|
let t = e?.children?.[0];
|
|
122
86
|
if (!t || t.type !== "element" || t.tagName !== "code") return null;
|
|
123
87
|
let n = t.children.map((e) => e.type === "text" ? e.value : "").join(""), r = t.properties?.className, i = (Array.isArray(r) ? r.map(String) : String(r ?? "").split(" ")).find((e) => e.startsWith("language-"));
|
|
@@ -126,10 +90,10 @@ function N(e) {
|
|
|
126
90
|
language: i ? i.slice(9) : ""
|
|
127
91
|
};
|
|
128
92
|
}
|
|
129
|
-
function
|
|
93
|
+
function k(e, t) {
|
|
130
94
|
return typeof e == "string" && e.split(" ").includes(t);
|
|
131
95
|
}
|
|
132
|
-
function
|
|
96
|
+
function A({ level: e, children: t }) {
|
|
133
97
|
let n = `h${e}`, r = {
|
|
134
98
|
2: "text-[1.15em]",
|
|
135
99
|
3: "text-[1.08em]",
|
|
@@ -137,129 +101,129 @@ function F({ level: e, children: t }) {
|
|
|
137
101
|
5: "text-[0.95em]",
|
|
138
102
|
6: "text-[0.9em]"
|
|
139
103
|
}[e];
|
|
140
|
-
return /* @__PURE__ */
|
|
104
|
+
return /* @__PURE__ */ g(n, {
|
|
141
105
|
className: `mb-1 mt-3 font-semibold text-text-primary ${r}`,
|
|
142
106
|
children: t
|
|
143
107
|
});
|
|
144
108
|
}
|
|
145
|
-
var
|
|
146
|
-
a: ({ href: e, children: t }) => /* @__PURE__ */
|
|
109
|
+
var j = {
|
|
110
|
+
a: ({ href: e, children: t }) => /* @__PURE__ */ g(w, {
|
|
147
111
|
href: e,
|
|
148
112
|
children: t
|
|
149
113
|
}),
|
|
150
|
-
blockquote: ({ children: e }) => /* @__PURE__ */
|
|
114
|
+
blockquote: ({ children: e }) => /* @__PURE__ */ g("blockquote", {
|
|
151
115
|
className: "my-2 border-l-2 border-action-primary-bg pl-3 italic text-text-secondary",
|
|
152
116
|
children: e
|
|
153
117
|
}),
|
|
154
|
-
code: ({ children: e }) => /* @__PURE__ */
|
|
118
|
+
code: ({ children: e }) => /* @__PURE__ */ g("code", {
|
|
155
119
|
className: "rounded bg-bg-sunken px-1 py-0.5 font-mono text-[0.85em] text-text-primary",
|
|
156
120
|
children: e
|
|
157
121
|
}),
|
|
158
|
-
del: ({ children: e }) => /* @__PURE__ */
|
|
122
|
+
del: ({ children: e }) => /* @__PURE__ */ g("del", {
|
|
159
123
|
className: "text-text-muted line-through",
|
|
160
124
|
children: e
|
|
161
125
|
}),
|
|
162
|
-
em: ({ children: e }) => /* @__PURE__ */
|
|
126
|
+
em: ({ children: e }) => /* @__PURE__ */ g("em", {
|
|
163
127
|
className: "italic",
|
|
164
128
|
children: e
|
|
165
129
|
}),
|
|
166
|
-
h1: ({ children: e }) => /* @__PURE__ */
|
|
130
|
+
h1: ({ children: e }) => /* @__PURE__ */ g(A, {
|
|
167
131
|
level: 2,
|
|
168
132
|
children: e
|
|
169
133
|
}),
|
|
170
|
-
h2: ({ children: e }) => /* @__PURE__ */
|
|
134
|
+
h2: ({ children: e }) => /* @__PURE__ */ g(A, {
|
|
171
135
|
level: 3,
|
|
172
136
|
children: e
|
|
173
137
|
}),
|
|
174
|
-
h3: ({ children: e }) => /* @__PURE__ */
|
|
138
|
+
h3: ({ children: e }) => /* @__PURE__ */ g(A, {
|
|
175
139
|
level: 4,
|
|
176
140
|
children: e
|
|
177
141
|
}),
|
|
178
|
-
h4: ({ children: e }) => /* @__PURE__ */
|
|
142
|
+
h4: ({ children: e }) => /* @__PURE__ */ g(A, {
|
|
179
143
|
level: 5,
|
|
180
144
|
children: e
|
|
181
145
|
}),
|
|
182
|
-
h5: ({ children: e }) => /* @__PURE__ */
|
|
146
|
+
h5: ({ children: e }) => /* @__PURE__ */ g(A, {
|
|
183
147
|
level: 6,
|
|
184
148
|
children: e
|
|
185
149
|
}),
|
|
186
|
-
h6: ({ children: e }) => /* @__PURE__ */
|
|
150
|
+
h6: ({ children: e }) => /* @__PURE__ */ g(A, {
|
|
187
151
|
level: 6,
|
|
188
152
|
children: e
|
|
189
153
|
}),
|
|
190
|
-
hr: () => /* @__PURE__ */
|
|
191
|
-
img: ({ src: e, alt: t, title: n }) => /* @__PURE__ */
|
|
154
|
+
hr: () => /* @__PURE__ */ g("hr", { className: "my-3 border-border-default" }),
|
|
155
|
+
img: ({ src: e, alt: t, title: n }) => /* @__PURE__ */ g(o, {
|
|
192
156
|
src: typeof e == "string" ? e : void 0,
|
|
193
157
|
alt: t,
|
|
194
158
|
title: n
|
|
195
159
|
}),
|
|
196
|
-
input: ({ checked: e, type: t }) => t === "checkbox" ? /* @__PURE__ */
|
|
160
|
+
input: ({ checked: e, type: t }) => t === "checkbox" ? /* @__PURE__ */ g("input", {
|
|
197
161
|
type: "checkbox",
|
|
198
162
|
checked: !!e,
|
|
199
163
|
disabled: !0,
|
|
200
164
|
className: "mr-1.5 size-3 flex-shrink-0 align-[-0.1em] accent-[var(--color-action-primary-bg)]"
|
|
201
165
|
}) : null,
|
|
202
|
-
li: ({ className: e, children: t }) => /* @__PURE__ */
|
|
203
|
-
className:
|
|
166
|
+
li: ({ className: e, children: t }) => /* @__PURE__ */ g("li", {
|
|
167
|
+
className: k(e, "task-list-item") ? "list-none text-text-primary" : "text-text-primary",
|
|
204
168
|
children: t
|
|
205
169
|
}),
|
|
206
|
-
ol: ({ children: e }) => /* @__PURE__ */
|
|
170
|
+
ol: ({ children: e }) => /* @__PURE__ */ g("ol", {
|
|
207
171
|
className: "my-1.5 ml-5 list-decimal space-y-0.5",
|
|
208
172
|
children: e
|
|
209
173
|
}),
|
|
210
|
-
p: ({ children: e }) => /* @__PURE__ */
|
|
174
|
+
p: ({ children: e }) => /* @__PURE__ */ g("p", {
|
|
211
175
|
className: "my-1.5 leading-relaxed text-text-primary",
|
|
212
176
|
children: e
|
|
213
177
|
}),
|
|
214
178
|
pre: ({ children: e, node: t }) => {
|
|
215
|
-
let n =
|
|
216
|
-
return n ? /* @__PURE__ */
|
|
179
|
+
let n = O(t);
|
|
180
|
+
return n ? /* @__PURE__ */ g(D, {
|
|
217
181
|
language: n.language,
|
|
218
182
|
code: n.code
|
|
219
|
-
}) : /* @__PURE__ */
|
|
183
|
+
}) : /* @__PURE__ */ g("pre", {
|
|
220
184
|
className: "my-2 overflow-x-auto rounded-md border border-border-default bg-bg-sunken p-3 text-xs leading-relaxed",
|
|
221
185
|
children: e
|
|
222
186
|
});
|
|
223
187
|
},
|
|
224
|
-
strong: ({ children: e }) => /* @__PURE__ */
|
|
188
|
+
strong: ({ children: e }) => /* @__PURE__ */ g("strong", {
|
|
225
189
|
className: "font-semibold text-text-primary",
|
|
226
190
|
children: e
|
|
227
191
|
}),
|
|
228
|
-
table: ({ children: e }) => /* @__PURE__ */
|
|
192
|
+
table: ({ children: e }) => /* @__PURE__ */ g("div", {
|
|
229
193
|
className: "my-2 overflow-x-auto",
|
|
230
194
|
"data-testid": "assistant-markdown-table",
|
|
231
|
-
children: /* @__PURE__ */
|
|
195
|
+
children: /* @__PURE__ */ g("table", {
|
|
232
196
|
className: "w-full border-collapse text-[0.9em]",
|
|
233
197
|
children: e
|
|
234
198
|
})
|
|
235
199
|
}),
|
|
236
|
-
td: ({ children: e }) => /* @__PURE__ */
|
|
200
|
+
td: ({ children: e }) => /* @__PURE__ */ g("td", {
|
|
237
201
|
className: "px-2 py-1.5 align-top text-text-primary",
|
|
238
202
|
children: e
|
|
239
203
|
}),
|
|
240
|
-
th: ({ children: e }) => /* @__PURE__ */
|
|
204
|
+
th: ({ children: e }) => /* @__PURE__ */ g("th", {
|
|
241
205
|
scope: "col",
|
|
242
206
|
className: "px-2 py-1.5 text-left font-semibold text-text-primary",
|
|
243
207
|
children: e
|
|
244
208
|
}),
|
|
245
|
-
tr: ({ children: e }) => /* @__PURE__ */
|
|
209
|
+
tr: ({ children: e }) => /* @__PURE__ */ g("tr", {
|
|
246
210
|
className: "border-b border-border-subtle",
|
|
247
211
|
children: e
|
|
248
212
|
}),
|
|
249
|
-
ul: ({ className: e, children: t }) => /* @__PURE__ */
|
|
250
|
-
className:
|
|
213
|
+
ul: ({ className: e, children: t }) => /* @__PURE__ */ g("ul", {
|
|
214
|
+
className: k(e, "contains-task-list") ? "my-1.5 ml-0.5 list-none space-y-0.5" : "my-1.5 ml-5 list-disc space-y-0.5",
|
|
251
215
|
children: t
|
|
252
216
|
})
|
|
253
|
-
},
|
|
217
|
+
}, M = ({ content: t }) => /* @__PURE__ */ g("div", {
|
|
254
218
|
className: "break-words [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",
|
|
255
219
|
"data-testid": "assistant-markdown",
|
|
256
|
-
children: /* @__PURE__ */
|
|
257
|
-
remarkPlugins:
|
|
258
|
-
rehypePlugins:
|
|
259
|
-
urlTransform:
|
|
260
|
-
components:
|
|
261
|
-
children:
|
|
220
|
+
children: /* @__PURE__ */ g(e, {
|
|
221
|
+
remarkPlugins: T,
|
|
222
|
+
rehypePlugins: E,
|
|
223
|
+
urlTransform: c,
|
|
224
|
+
components: j,
|
|
225
|
+
children: t
|
|
262
226
|
})
|
|
263
227
|
});
|
|
264
228
|
//#endregion
|
|
265
|
-
export {
|
|
229
|
+
export { M as AssistantMarkdownRenderer, x as AssistantNavigateProvider, y as browserShouldHandle, S as useAssistantNavigate };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantMoreMenu.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantMoreMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AssistantMoreMenu.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantMoreMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAkB7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,iBAAiB,EAAE,EAyM/B,CAAC"}
|
|
@@ -4,115 +4,117 @@ import { useAssistantSpeech as n } from "./AssistantSpeechProvider.js";
|
|
|
4
4
|
import { AssistantLanguageMenu as r } from "./AssistantLanguageMenu.js";
|
|
5
5
|
import { useDropdownEscape as i } from "./useDropdownEscape.js";
|
|
6
6
|
import { AssistantVoiceSelector as a } from "./composer/AssistantVoiceSelector.js";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
7
|
+
import { AssistantVoiceGraceSelector as o } from "./composer/AssistantVoiceGraceSelector.js";
|
|
8
|
+
import { downloadFile as s, exportConversation as c } from "../exportConversation.js";
|
|
9
|
+
import { useEffect as l, useRef as u, useState as d } from "react";
|
|
10
|
+
import { Check as f, FileJson as p, FileText as m, MoreHorizontal as h, Play as g, Volume2 as _ } from "lucide-react";
|
|
11
|
+
import { Fragment as v, jsx as y, jsxs as b } from "react/jsx-runtime";
|
|
11
12
|
//#region src/shared/assistant/ui/AssistantMoreMenu.tsx
|
|
12
|
-
var
|
|
13
|
-
let
|
|
14
|
-
i(
|
|
15
|
-
if (!
|
|
13
|
+
var x = () => {
|
|
14
|
+
let x = e(), [S, C] = d(!1), w = u(null), T = u(null), { conversations: E, activeConversationId: D, processingByConversationId: O } = t(), k = E.find((e) => e.id === D), A = !!(k && k.messages.length > 0), { isSupported: j, isBlocked: M, disabledReason: N, autoSpeakEnabled: P, setAutoSpeak: F, stop: I, previewVoice: L, activeVoiceName: R } = n(), z = M && !P;
|
|
15
|
+
i(S, w, T, () => C(!1)), l(() => {
|
|
16
|
+
if (!S) return;
|
|
16
17
|
let e = (e) => {
|
|
17
18
|
let t = e.target;
|
|
18
|
-
|
|
19
|
+
w.current?.contains(t) || T.current?.contains(t) || C(!1);
|
|
19
20
|
};
|
|
20
21
|
return document.addEventListener("mousedown", e), () => {
|
|
21
22
|
document.removeEventListener("mousedown", e);
|
|
22
23
|
};
|
|
23
|
-
}, [
|
|
24
|
-
let
|
|
25
|
-
if (!
|
|
26
|
-
let { content: t, filename: n, mimeType: r } =
|
|
27
|
-
processing:
|
|
28
|
-
tr:
|
|
24
|
+
}, [S]);
|
|
25
|
+
let B = (e) => {
|
|
26
|
+
if (!k) return;
|
|
27
|
+
let { content: t, filename: n, mimeType: r } = c(k, e, {
|
|
28
|
+
processing: O[k.id],
|
|
29
|
+
tr: x
|
|
29
30
|
});
|
|
30
|
-
|
|
31
|
-
},
|
|
32
|
-
|
|
33
|
-
},
|
|
34
|
-
return /* @__PURE__ */
|
|
31
|
+
s(t, n, r), C(!1);
|
|
32
|
+
}, V = () => {
|
|
33
|
+
P && I(), F(!P);
|
|
34
|
+
}, H = x("header.more", "More options");
|
|
35
|
+
return /* @__PURE__ */ b("div", {
|
|
35
36
|
className: "relative",
|
|
36
|
-
children: [/* @__PURE__ */
|
|
37
|
-
ref:
|
|
37
|
+
children: [/* @__PURE__ */ y("button", {
|
|
38
|
+
ref: T,
|
|
38
39
|
type: "button",
|
|
39
|
-
onClick: () =>
|
|
40
|
+
onClick: () => C((e) => !e),
|
|
40
41
|
className: "rounded p-1 transition-colors hover:bg-bg-elevated",
|
|
41
|
-
"aria-label":
|
|
42
|
+
"aria-label": H,
|
|
42
43
|
"aria-haspopup": "menu",
|
|
43
|
-
"aria-expanded":
|
|
44
|
+
"aria-expanded": S,
|
|
44
45
|
"data-testid": "assistant-more",
|
|
45
|
-
children: /* @__PURE__ */
|
|
46
|
-
}),
|
|
47
|
-
ref:
|
|
46
|
+
children: /* @__PURE__ */ y(h, { className: "size-4 text-text-secondary" })
|
|
47
|
+
}), S ? /* @__PURE__ */ b("div", {
|
|
48
|
+
ref: w,
|
|
48
49
|
role: "menu",
|
|
49
|
-
"aria-label":
|
|
50
|
+
"aria-label": H,
|
|
50
51
|
className: "absolute right-0 top-full z-50 mt-1 min-w-56 overflow-hidden rounded-xl border border-border-default bg-bg-surface py-1 shadow-lg",
|
|
51
52
|
"data-testid": "assistant-more-menu",
|
|
52
53
|
children: [
|
|
53
|
-
|
|
54
|
+
j ? /* @__PURE__ */ b("button", {
|
|
54
55
|
type: "button",
|
|
55
56
|
role: "menuitemcheckbox",
|
|
56
|
-
"aria-checked":
|
|
57
|
-
onClick:
|
|
58
|
-
disabled:
|
|
59
|
-
title:
|
|
57
|
+
"aria-checked": P,
|
|
58
|
+
onClick: V,
|
|
59
|
+
disabled: z,
|
|
60
|
+
title: z ? N ?? void 0 : void 0,
|
|
60
61
|
className: "flex w-full items-center gap-2.5 px-3 py-2 text-left text-xs text-text-primary transition-colors hover:bg-bg-elevated disabled:cursor-not-allowed disabled:text-text-muted disabled:hover:bg-transparent",
|
|
61
62
|
"data-testid": "assistant-auto-speak",
|
|
62
63
|
children: [
|
|
63
|
-
/* @__PURE__ */
|
|
64
|
+
/* @__PURE__ */ y(_, {
|
|
64
65
|
className: "size-3.5 flex-shrink-0 text-text-secondary",
|
|
65
66
|
"aria-hidden": "true"
|
|
66
67
|
}),
|
|
67
|
-
/* @__PURE__ */
|
|
68
|
+
/* @__PURE__ */ y("span", {
|
|
68
69
|
className: "flex-1",
|
|
69
|
-
children:
|
|
70
|
+
children: x("header.autoRead", "Auto-read replies")
|
|
70
71
|
}),
|
|
71
|
-
|
|
72
|
+
P ? /* @__PURE__ */ y(f, { className: "size-3.5 flex-shrink-0 text-action-primary-bg" }) : null
|
|
72
73
|
]
|
|
73
74
|
}) : null,
|
|
74
|
-
/* @__PURE__ */
|
|
75
|
-
/* @__PURE__ */
|
|
75
|
+
/* @__PURE__ */ y(r, {}),
|
|
76
|
+
/* @__PURE__ */ b("div", {
|
|
76
77
|
className: "flex items-center gap-1 px-3 py-1.5",
|
|
77
78
|
"data-testid": "assistant-more-voice",
|
|
78
|
-
children: [/* @__PURE__ */
|
|
79
|
+
children: [/* @__PURE__ */ y(a, {}), R ? /* @__PURE__ */ b("button", {
|
|
79
80
|
type: "button",
|
|
80
|
-
onClick: () =>
|
|
81
|
+
onClick: () => L(R),
|
|
81
82
|
className: "flex items-center gap-1 rounded-md px-1.5 py-1 text-[11px] text-text-muted transition-colors hover:bg-bg-elevated hover:text-text-secondary focus:outline-none focus-visible:ring-2 focus-visible:ring-border-strong",
|
|
82
|
-
"aria-label":
|
|
83
|
+
"aria-label": x("voice.preview", "Hear this voice"),
|
|
83
84
|
"data-testid": "assistant-voice-preview",
|
|
84
|
-
children: [/* @__PURE__ */
|
|
85
|
+
children: [/* @__PURE__ */ y(g, {
|
|
85
86
|
className: "size-3",
|
|
86
87
|
"aria-hidden": "true"
|
|
87
|
-
}),
|
|
88
|
+
}), x("voice.previewShort", "Preview")]
|
|
88
89
|
}) : null]
|
|
89
90
|
}),
|
|
90
|
-
|
|
91
|
-
|
|
91
|
+
/* @__PURE__ */ y(o, {}),
|
|
92
|
+
A ? /* @__PURE__ */ b(v, { children: [
|
|
93
|
+
/* @__PURE__ */ y("div", {
|
|
92
94
|
className: "my-1 border-t border-border-subtle",
|
|
93
95
|
role: "separator"
|
|
94
96
|
}),
|
|
95
|
-
/* @__PURE__ */
|
|
97
|
+
/* @__PURE__ */ b("button", {
|
|
96
98
|
type: "button",
|
|
97
99
|
role: "menuitem",
|
|
98
|
-
onClick: () =>
|
|
100
|
+
onClick: () => B("json"),
|
|
99
101
|
className: "flex w-full items-center gap-2.5 px-3 py-2 text-left text-xs text-text-primary transition-colors hover:bg-bg-elevated",
|
|
100
102
|
"data-testid": "export-json",
|
|
101
|
-
children: [/* @__PURE__ */
|
|
103
|
+
children: [/* @__PURE__ */ y(p, {
|
|
102
104
|
className: "size-3.5 flex-shrink-0 text-text-secondary",
|
|
103
105
|
"aria-hidden": "true"
|
|
104
|
-
}),
|
|
106
|
+
}), x("export.json", "Export as JSON")]
|
|
105
107
|
}),
|
|
106
|
-
/* @__PURE__ */
|
|
108
|
+
/* @__PURE__ */ b("button", {
|
|
107
109
|
type: "button",
|
|
108
110
|
role: "menuitem",
|
|
109
|
-
onClick: () =>
|
|
111
|
+
onClick: () => B("markdown"),
|
|
110
112
|
className: "flex w-full items-center gap-2.5 px-3 py-2 text-left text-xs text-text-primary transition-colors hover:bg-bg-elevated",
|
|
111
113
|
"data-testid": "export-markdown",
|
|
112
|
-
children: [/* @__PURE__ */
|
|
114
|
+
children: [/* @__PURE__ */ y(m, {
|
|
113
115
|
className: "size-3.5 flex-shrink-0 text-text-secondary",
|
|
114
116
|
"aria-hidden": "true"
|
|
115
|
-
}),
|
|
117
|
+
}), x("export.markdown", "Export as Markdown")]
|
|
116
118
|
})
|
|
117
119
|
] }) : null
|
|
118
120
|
]
|
|
@@ -120,4 +122,4 @@ var b = () => {
|
|
|
120
122
|
});
|
|
121
123
|
};
|
|
122
124
|
//#endregion
|
|
123
|
-
export {
|
|
125
|
+
export { x as AssistantMoreMenu };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantSpeechProvider.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantSpeechProvider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAUL,KAAK,EAAE,EACP,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AA6B/D,OAAO,EAQL,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"AssistantSpeechProvider.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantSpeechProvider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAUL,KAAK,EAAE,EACP,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AA6B/D,OAAO,EAQL,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAqB/B,MAAM,WAAW,2BAA2B;IAC1C,gFAAgF;IAChF,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,iBAAiB,CAAC;IAChC;;;;OAIG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;;;;;;OAMG;IACH,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACjD;;;;OAIG;IACH,YAAY,EAAE,SAAS,eAAe,EAAE,CAAC;IACzC,8EAA8E;IAC9E;;;;;;OAMG;IACH,YAAY,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACzD,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B;;;;;;;;OAQG;IACH,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,mEAAmE;IACnE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7C,kDAAkD;IAClD,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C;;;;;;;OAOG;IACH,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3E,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC;;;;;;;;;;;;;OAaG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C;;;;;;;;;;;;;OAaG;IACH,iBAAiB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C;;;;;;;OAOG;IACH,kBAAkB,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACxE,kFAAkF;IAClF,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AA6BD,wBAAgB,kBAAkB,IAAI,2BAA2B,CAEhE;AAED,UAAU,KAAK;IACb,QAAQ,EAAE,SAAS,CAAC;IACpB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,KAAK,CAylC7C,CAAC"}
|