@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.
Files changed (79) hide show
  1. package/dist/chrome/mobileTabBar/useVisibleNavItems.d.ts +9 -0
  2. package/dist/chrome/mobileTabBar/useVisibleNavItems.d.ts.map +1 -1
  3. package/dist/chrome/mobileTabBar/useVisibleNavItems.js +3 -1
  4. package/dist/shared/assistant/api.d.ts +6 -0
  5. package/dist/shared/assistant/api.d.ts.map +1 -1
  6. package/dist/shared/assistant/api.js +5 -3
  7. package/dist/shared/assistant/i18nManifest.d.ts +13 -0
  8. package/dist/shared/assistant/i18nManifest.d.ts.map +1 -1
  9. package/dist/shared/assistant/i18nManifest.js +25 -12
  10. package/dist/shared/assistant/index.d.ts +11 -0
  11. package/dist/shared/assistant/index.d.ts.map +1 -1
  12. package/dist/shared/assistant/localUiCommandCopy.d.ts +18 -0
  13. package/dist/shared/assistant/localUiCommandCopy.d.ts.map +1 -1
  14. package/dist/shared/assistant/localUiCommandCopy.js +22 -2
  15. package/dist/shared/assistant/localUiCommands.d.ts +63 -26
  16. package/dist/shared/assistant/localUiCommands.d.ts.map +1 -1
  17. package/dist/shared/assistant/localUiCommands.js +128 -59
  18. package/dist/shared/assistant/store.d.ts +10 -0
  19. package/dist/shared/assistant/store.d.ts.map +1 -1
  20. package/dist/shared/assistant/store.js +52 -44
  21. package/dist/shared/assistant/ui/AssistantChatArea.d.ts.map +1 -1
  22. package/dist/shared/assistant/ui/AssistantChatArea.js +1023 -874
  23. package/dist/shared/assistant/ui/AssistantMarkdownRenderer.d.ts +3 -34
  24. package/dist/shared/assistant/ui/AssistantMarkdownRenderer.d.ts.map +1 -1
  25. package/dist/shared/assistant/ui/AssistantMarkdownRenderer.js +83 -119
  26. package/dist/shared/assistant/ui/AssistantMoreMenu.d.ts.map +1 -1
  27. package/dist/shared/assistant/ui/AssistantMoreMenu.js +58 -56
  28. package/dist/shared/assistant/ui/AssistantSpeechProvider.d.ts.map +1 -1
  29. package/dist/shared/assistant/ui/AssistantSpeechProvider.js +106 -105
  30. package/dist/shared/assistant/ui/composer/AssistantConnectSourceItem.js +2 -1
  31. package/dist/shared/assistant/ui/composer/AssistantVoiceGraceSelector.d.ts +20 -0
  32. package/dist/shared/assistant/ui/composer/AssistantVoiceGraceSelector.d.ts.map +1 -0
  33. package/dist/shared/assistant/ui/composer/AssistantVoiceGraceSelector.js +39 -0
  34. package/dist/shared/assistant/ui/composer/connectSource.js +2 -1
  35. package/dist/shared/assistant/ui/useVoiceSession.d.ts +35 -2
  36. package/dist/shared/assistant/ui/useVoiceSession.d.ts.map +1 -1
  37. package/dist/shared/assistant/ui/useVoiceSession.js +232 -171
  38. package/dist/shared/assistant/ui/voice/AssistantVoiceSession.d.ts +15 -1
  39. package/dist/shared/assistant/ui/voice/AssistantVoiceSession.d.ts.map +1 -1
  40. package/dist/shared/assistant/ui/voice/AssistantVoiceSession.js +121 -101
  41. package/dist/shared/assistant/uiActions/assistantHref.d.ts +36 -0
  42. package/dist/shared/assistant/uiActions/assistantHref.d.ts.map +1 -0
  43. package/dist/shared/assistant/uiActions/assistantHref.js +46 -0
  44. package/dist/shared/assistant/uiActions/deixis.d.ts +29 -0
  45. package/dist/shared/assistant/uiActions/deixis.d.ts.map +1 -0
  46. package/dist/shared/assistant/uiActions/deixis.js +54 -0
  47. package/dist/shared/assistant/uiActions/entityRoutes.d.ts +49 -0
  48. package/dist/shared/assistant/uiActions/entityRoutes.d.ts.map +1 -0
  49. package/dist/shared/assistant/uiActions/entityRoutes.js +53 -0
  50. package/dist/shared/assistant/uiActions/inAppLinks.d.ts +28 -0
  51. package/dist/shared/assistant/uiActions/inAppLinks.d.ts.map +1 -0
  52. package/dist/shared/assistant/uiActions/inAppLinks.js +51 -0
  53. package/dist/shared/assistant/uiActions/linkContext.d.ts +52 -0
  54. package/dist/shared/assistant/uiActions/linkContext.d.ts.map +1 -0
  55. package/dist/shared/assistant/uiActions/linkContext.js +60 -0
  56. package/dist/shared/assistant/uiActions/recordNames.d.ts +73 -0
  57. package/dist/shared/assistant/uiActions/recordNames.d.ts.map +1 -0
  58. package/dist/shared/assistant/uiActions/recordNames.js +75 -0
  59. package/dist/shared/assistant/uiActions/resolveTarget.d.ts +43 -0
  60. package/dist/shared/assistant/uiActions/resolveTarget.d.ts.map +1 -0
  61. package/dist/shared/assistant/uiActions/resolveTarget.js +49 -0
  62. package/dist/shared/assistant/uiActions/uiCatalogue.d.ts +30 -0
  63. package/dist/shared/assistant/uiActions/uiCatalogue.d.ts.map +1 -0
  64. package/dist/shared/assistant/uiActions/uiCatalogue.js +22 -0
  65. package/dist/shared/assistant/voice/handsFree.d.ts +160 -0
  66. package/dist/shared/assistant/voice/handsFree.d.ts.map +1 -0
  67. package/dist/shared/assistant/voice/handsFree.js +104 -0
  68. package/dist/shared/assistant/voice/supersededTurns.d.ts +29 -0
  69. package/dist/shared/assistant/voice/supersededTurns.d.ts.map +1 -0
  70. package/dist/shared/assistant/voice/supersededTurns.js +17 -0
  71. package/dist/shared/assistant/voice/useVoiceInput.d.ts +7 -0
  72. package/dist/shared/assistant/voice/useVoiceInput.d.ts.map +1 -1
  73. package/dist/shared/assistant/voice/useVoiceInput.js +13 -10
  74. package/dist/shared/assistant/voice/voiceSession.d.ts +64 -20
  75. package/dist/shared/assistant/voice/voiceSession.d.ts.map +1 -1
  76. package/dist/shared/assistant/voice/voiceSession.js +120 -67
  77. package/dist/shared/components/assistantWidget/MessageContent.js +4 -3
  78. package/dist/shared-assistant.js +206 -195
  79. package/package.json +3 -1
@@ -1,25 +1,10 @@
1
1
  import { FC, MouseEvent, ReactNode } from 'react';
2
- import { Options } from 'react-markdown';
2
+ import { assistantRoutePath, assistantUrlTransform, classifyAssistantHref, AssistantLinkKind } from '../uiActions/assistantHref';
3
3
  interface Props {
4
4
  content: string;
5
5
  }
6
- /** @internal Exported for unit tests; not part of the module's public surface. */
7
- export declare const assistantUrlTransform: Options["urlTransform"];
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;AACf,OAAiB,EAIf,KAAK,OAAO,EACb,MAAM,gBAAgB,CAAC;AASxB,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAqDD,kFAAkF;AAClF,eAAO,MAAM,qBAAqB,EAAE,OAAO,CAAC,cAAc,CAWzD,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AAEjF;;;;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;AAkDjF,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,UAAU,CAAC,EAAE,MAAM,GAClB,iBAAiB,CAWnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,GAAG,IAAI,CA+Bf;AAED;;;;;;;;;;;;;;;;;;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
+ {"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 { isSafeRedirectTarget as e } from "../../graphql/security.js";
2
- import { Markdown as t, defaultUrlTransform as n } from "../../../node_modules/react-markdown/lib/index.js";
3
- import r from "../../../node_modules/remark-gfm/lib/index.js";
4
- import { defaultSchema as i } from "../../../node_modules/hast-util-sanitize/lib/schema.js";
5
- import a from "../../../node_modules/rehype-sanitize/lib/index.js";
6
- import { useAssistantTr as o } from "../i18n.js";
7
- import { copyToClipboard as s } from "../clipboard.js";
8
- import { AssistantMarkdownImage as c } from "./AssistantMarkdownImage.js";
9
- import { createContext as l, useContext as u, useState as d } from "react";
10
- import { Check as f, Copy as p } from "lucide-react";
11
- import { Fragment as m, jsx as h, jsxs as g } from "react/jsx-runtime";
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
- ...i,
13
+ var v = {
14
+ ...n,
15
15
  protocols: {
16
- ...i.protocols,
17
- src: [...i.protocols?.src ?? [], "data"]
16
+ ...n.protocols,
17
+ src: [...n.protocols?.src ?? [], "data"]
18
18
  }
19
- }, v = /^data:image\/(?:png|jpe?g|gif|webp|avif|bmp);base64,[A-Za-z0-9+/=\s]+$/, y = (e, t, r) => t === "src" && r.tagName === "img" && v.test(e) ? e : n(e);
20
- function b() {
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 T = l(null), E = ({ value: e, children: t }) => /* @__PURE__ */ h(T.Provider, {
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 D() {
64
- return u(T);
27
+ function S() {
28
+ return d(b);
65
29
  }
66
- var O = "text-action-primary-bg underline-offset-2 hover:underline", k = ({ href: e, children: t }) => {
67
- let n = D(), r = S(e), i = r === "internal" ? C(e) : null;
68
- return r === "blocked" ? /* @__PURE__ */ h(m, { children: t }) : n && i ? /* @__PURE__ */ h("a", {
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: O,
34
+ className: C,
71
35
  "data-testid": "assistant-markdown-link",
72
36
  onClick: (e) => {
73
- w(e) || (e.preventDefault(), n(i));
37
+ y(e) || (e.preventDefault(), n(i));
74
38
  },
75
39
  children: t
76
- }) : r === "internal" || r === "fragment" ? /* @__PURE__ */ h("a", {
40
+ }) : r === "internal" || r === "fragment" ? /* @__PURE__ */ g("a", {
77
41
  href: i ?? e,
78
- className: O,
42
+ className: C,
79
43
  "data-testid": "assistant-markdown-link",
80
44
  children: t
81
- }) : /* @__PURE__ */ h("a", {
45
+ }) : /* @__PURE__ */ g("a", {
82
46
  href: e,
83
47
  target: "_blank",
84
48
  rel: "noopener noreferrer",
85
- className: O,
49
+ className: C,
86
50
  "data-testid": "assistant-markdown-link",
87
51
  children: t
88
52
  });
89
- }, A = [r], j = [[a, _]];
90
- function M({ language: e, code: t }) {
91
- let n = o(), [r, i] = d(!1);
92
- return /* @__PURE__ */ g("div", {
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__ */ g("div", {
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__ */ h("span", {
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__ */ h("button", {
63
+ }), /* @__PURE__ */ g("button", {
100
64
  type: "button",
101
65
  onClick: () => {
102
- s(t).then((e) => {
103
- e && (i(!0), setTimeout(() => i(!1), 2e3));
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__ */ g(m, { children: [/* @__PURE__ */ h(f, { className: "size-3 text-status-success-text" }), /* @__PURE__ */ h("span", { children: n("markdown.copied", "Copied") })] }) : /* @__PURE__ */ g(m, { children: [/* @__PURE__ */ h(p, { className: "size-3" }), /* @__PURE__ */ h("span", { children: n("markdown.copy", "Copy") })] })
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__ */ h("pre", {
75
+ }), /* @__PURE__ */ g("pre", {
112
76
  className: "overflow-x-auto p-3 text-xs leading-relaxed",
113
- children: /* @__PURE__ */ h("code", {
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 N(e) {
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 P(e, t) {
93
+ function k(e, t) {
130
94
  return typeof e == "string" && e.split(" ").includes(t);
131
95
  }
132
- function F({ level: e, children: t }) {
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__ */ h(n, {
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 I = {
146
- a: ({ href: e, children: t }) => /* @__PURE__ */ h(k, {
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__ */ h("blockquote", {
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__ */ h("code", {
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__ */ h("del", {
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__ */ h("em", {
126
+ em: ({ children: e }) => /* @__PURE__ */ g("em", {
163
127
  className: "italic",
164
128
  children: e
165
129
  }),
166
- h1: ({ children: e }) => /* @__PURE__ */ h(F, {
130
+ h1: ({ children: e }) => /* @__PURE__ */ g(A, {
167
131
  level: 2,
168
132
  children: e
169
133
  }),
170
- h2: ({ children: e }) => /* @__PURE__ */ h(F, {
134
+ h2: ({ children: e }) => /* @__PURE__ */ g(A, {
171
135
  level: 3,
172
136
  children: e
173
137
  }),
174
- h3: ({ children: e }) => /* @__PURE__ */ h(F, {
138
+ h3: ({ children: e }) => /* @__PURE__ */ g(A, {
175
139
  level: 4,
176
140
  children: e
177
141
  }),
178
- h4: ({ children: e }) => /* @__PURE__ */ h(F, {
142
+ h4: ({ children: e }) => /* @__PURE__ */ g(A, {
179
143
  level: 5,
180
144
  children: e
181
145
  }),
182
- h5: ({ children: e }) => /* @__PURE__ */ h(F, {
146
+ h5: ({ children: e }) => /* @__PURE__ */ g(A, {
183
147
  level: 6,
184
148
  children: e
185
149
  }),
186
- h6: ({ children: e }) => /* @__PURE__ */ h(F, {
150
+ h6: ({ children: e }) => /* @__PURE__ */ g(A, {
187
151
  level: 6,
188
152
  children: e
189
153
  }),
190
- hr: () => /* @__PURE__ */ h("hr", { className: "my-3 border-border-default" }),
191
- img: ({ src: e, alt: t, title: n }) => /* @__PURE__ */ h(c, {
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__ */ h("input", {
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__ */ h("li", {
203
- className: P(e, "task-list-item") ? "list-none text-text-primary" : "text-text-primary",
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__ */ h("ol", {
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__ */ h("p", {
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 = N(t);
216
- return n ? /* @__PURE__ */ h(M, {
179
+ let n = O(t);
180
+ return n ? /* @__PURE__ */ g(D, {
217
181
  language: n.language,
218
182
  code: n.code
219
- }) : /* @__PURE__ */ h("pre", {
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__ */ h("strong", {
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__ */ h("div", {
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__ */ h("table", {
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__ */ h("td", {
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__ */ h("th", {
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__ */ h("tr", {
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__ */ h("ul", {
250
- className: P(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",
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
- }, L = ({ content: e }) => /* @__PURE__ */ h("div", {
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__ */ h(t, {
257
- remarkPlugins: A,
258
- rehypePlugins: j,
259
- urlTransform: y,
260
- components: I,
261
- children: e
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 { L as AssistantMarkdownRenderer, E as AssistantNavigateProvider, C as assistantRoutePath, y as assistantUrlTransform, w as browserShouldHandle, S as classifyAssistantHref, D as useAssistantNavigate };
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;AAiB7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,iBAAiB,EAAE,EAqM/B,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 { downloadFile as o, exportConversation as s } from "../exportConversation.js";
8
- import { useEffect as c, useRef as l, useState as u } from "react";
9
- import { Check as d, FileJson as f, FileText as p, MoreHorizontal as m, Play as h, Volume2 as g } from "lucide-react";
10
- import { Fragment as _, jsx as v, jsxs as y } from "react/jsx-runtime";
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 b = () => {
13
- let b = e(), [x, S] = u(!1), C = l(null), w = l(null), { conversations: T, activeConversationId: E, processingByConversationId: D } = t(), O = T.find((e) => e.id === E), k = !!(O && O.messages.length > 0), { isSupported: A, isBlocked: j, disabledReason: M, autoSpeakEnabled: N, setAutoSpeak: P, stop: F, previewVoice: I, activeVoiceName: L } = n(), R = j && !N;
14
- i(x, C, w, () => S(!1)), c(() => {
15
- if (!x) return;
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
- C.current?.contains(t) || w.current?.contains(t) || S(!1);
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
- }, [x]);
24
- let z = (e) => {
25
- if (!O) return;
26
- let { content: t, filename: n, mimeType: r } = s(O, e, {
27
- processing: D[O.id],
28
- tr: b
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
- o(t, n, r), S(!1);
31
- }, B = () => {
32
- N && F(), P(!N);
33
- }, V = b("header.more", "More options");
34
- return /* @__PURE__ */ y("div", {
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__ */ v("button", {
37
- ref: w,
37
+ children: [/* @__PURE__ */ y("button", {
38
+ ref: T,
38
39
  type: "button",
39
- onClick: () => S((e) => !e),
40
+ onClick: () => C((e) => !e),
40
41
  className: "rounded p-1 transition-colors hover:bg-bg-elevated",
41
- "aria-label": V,
42
+ "aria-label": H,
42
43
  "aria-haspopup": "menu",
43
- "aria-expanded": x,
44
+ "aria-expanded": S,
44
45
  "data-testid": "assistant-more",
45
- children: /* @__PURE__ */ v(m, { className: "size-4 text-text-secondary" })
46
- }), x ? /* @__PURE__ */ y("div", {
47
- ref: C,
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": V,
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
- A ? /* @__PURE__ */ y("button", {
54
+ j ? /* @__PURE__ */ b("button", {
54
55
  type: "button",
55
56
  role: "menuitemcheckbox",
56
- "aria-checked": N,
57
- onClick: B,
58
- disabled: R,
59
- title: R ? M ?? void 0 : void 0,
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__ */ v(g, {
64
+ /* @__PURE__ */ y(_, {
64
65
  className: "size-3.5 flex-shrink-0 text-text-secondary",
65
66
  "aria-hidden": "true"
66
67
  }),
67
- /* @__PURE__ */ v("span", {
68
+ /* @__PURE__ */ y("span", {
68
69
  className: "flex-1",
69
- children: b("header.autoRead", "Auto-read replies")
70
+ children: x("header.autoRead", "Auto-read replies")
70
71
  }),
71
- N ? /* @__PURE__ */ v(d, { className: "size-3.5 flex-shrink-0 text-action-primary-bg" }) : null
72
+ P ? /* @__PURE__ */ y(f, { className: "size-3.5 flex-shrink-0 text-action-primary-bg" }) : null
72
73
  ]
73
74
  }) : null,
74
- /* @__PURE__ */ v(r, {}),
75
- /* @__PURE__ */ y("div", {
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__ */ v(a, {}), L ? /* @__PURE__ */ y("button", {
79
+ children: [/* @__PURE__ */ y(a, {}), R ? /* @__PURE__ */ b("button", {
79
80
  type: "button",
80
- onClick: () => I(L),
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": b("voice.preview", "Hear this voice"),
83
+ "aria-label": x("voice.preview", "Hear this voice"),
83
84
  "data-testid": "assistant-voice-preview",
84
- children: [/* @__PURE__ */ v(h, {
85
+ children: [/* @__PURE__ */ y(g, {
85
86
  className: "size-3",
86
87
  "aria-hidden": "true"
87
- }), b("voice.previewShort", "Preview")]
88
+ }), x("voice.previewShort", "Preview")]
88
89
  }) : null]
89
90
  }),
90
- k ? /* @__PURE__ */ y(_, { children: [
91
- /* @__PURE__ */ v("div", {
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__ */ y("button", {
97
+ /* @__PURE__ */ b("button", {
96
98
  type: "button",
97
99
  role: "menuitem",
98
- onClick: () => z("json"),
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__ */ v(f, {
103
+ children: [/* @__PURE__ */ y(p, {
102
104
  className: "size-3.5 flex-shrink-0 text-text-secondary",
103
105
  "aria-hidden": "true"
104
- }), b("export.json", "Export as JSON")]
106
+ }), x("export.json", "Export as JSON")]
105
107
  }),
106
- /* @__PURE__ */ y("button", {
108
+ /* @__PURE__ */ b("button", {
107
109
  type: "button",
108
110
  role: "menuitem",
109
- onClick: () => z("markdown"),
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__ */ v(p, {
114
+ children: [/* @__PURE__ */ y(m, {
113
115
  className: "size-3.5 flex-shrink-0 text-text-secondary",
114
116
  "aria-hidden": "true"
115
- }), b("export.markdown", "Export as Markdown")]
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 { b as AssistantMoreMenu };
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;AAoB/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,CAilC7C,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"}