@burdenoff/fe-libs 2026.920.2 → 2026.920.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -120,6 +120,8 @@ export * from './ui/useDropdownEscape';
120
120
  export * from './ui/useOverlayFocus';
121
121
  export * from './ui/usePrefersReducedMotion';
122
122
  export * from './preview/useAssistantPreviewBridge';
123
+ export * from './preview/bridgeHost';
124
+ export * from './preview/bridgeHostContext';
123
125
  export * from './preview/AssistantPreviewOverlay';
124
126
  export * from './ui/composer/AssistantLanguageSelector';
125
127
  export * from './ui/composer/AssistantModeSelector';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { FC, ReactNode } from 'react';
2
+ import { AssistantPreviewController } from './types';
3
+ export interface AssistantPreviewBridgeHostProps {
4
+ /**
5
+ * The product's preview controller — the SAME object passed to the panel as
6
+ * `preview`, or the panel runs a second bridge. Keep it stable across renders
7
+ * (see `AssistantPreviewController`). Absent: nothing is bridged here.
8
+ */
9
+ preview?: AssistantPreviewController | null;
10
+ children?: ReactNode;
11
+ }
12
+ /**
13
+ * Run the preview bridge for `preview` for as long as THIS is mounted, and tell
14
+ * any panel below that it need not run one.
15
+ *
16
+ * `AssistantOverlay` mounts one for `panelProps.preview`, so a product that
17
+ * passes its controller that way gets a preview that keeps following a run
18
+ * after the assistant is closed. A host that mounts the panel itself can do the
19
+ * same by wrapping the place the panel comes and goes in this.
20
+ *
21
+ * ★ Unmounting THIS is still an ending: a run in flight gets `end(abandoned)`,
22
+ * as it did when the panel unmounted — the host has gone, and with it the only
23
+ * thing following the run.
24
+ */
25
+ export declare const AssistantPreviewBridgeHost: FC<AssistantPreviewBridgeHostProps>;
26
+ //# sourceMappingURL=bridgeHost.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridgeHost.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/preview/bridgeHost.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG3C,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAiB1D,MAAM,WAAW,+BAA+B;IAC9C;;;;OAIG;IACH,OAAO,CAAC,EAAE,0BAA0B,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,0BAA0B,EAAE,EAAE,CAAC,+BAA+B,CAW1E,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { useAssistantPreviewBridge as e } from "./useAssistantPreviewBridge.js";
2
+ import { HostedPreviewBridgeContext as t } from "./bridgeHostContext.js";
3
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
+ //#region src/shared/assistant/preview/bridgeHost.tsx
5
+ function i({ controller: t }) {
6
+ return e(t), null;
7
+ }
8
+ var a = ({ preview: e, children: a }) => {
9
+ let o = e ?? null;
10
+ return /* @__PURE__ */ r(t.Provider, {
11
+ value: o,
12
+ children: [/* @__PURE__ */ n(i, { controller: o }), a]
13
+ });
14
+ };
15
+ //#endregion
16
+ export { a as AssistantPreviewBridgeHost };
@@ -0,0 +1,17 @@
1
+ import { AssistantPreviewController } from './types';
2
+ /** The controller an `AssistantPreviewBridgeHost` above bridges, or null. */
3
+ export declare const HostedPreviewBridgeContext: import('react').Context<AssistantPreviewController | null>;
4
+ /**
5
+ * The controller an ancestor already runs the bridge for, or null when none
6
+ * does.
7
+ */
8
+ export declare function useHostedAssistantPreviewBridge(): AssistantPreviewController | null;
9
+ /**
10
+ * The controller the PANEL should run its own bridge for: its `preview`, unless
11
+ * a host above it already runs the bridge for that very controller.
12
+ *
13
+ * ★ Identity, not presence. A host bridging controller A says nothing about a
14
+ * panel handed controller B; B still needs a bridge, and only the panel has it.
15
+ */
16
+ export declare function panelOwnedPreviewBridge(preview: AssistantPreviewController | null | undefined, hosted: AssistantPreviewController | null): AssistantPreviewController | null;
17
+ //# sourceMappingURL=bridgeHostContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridgeHostContext.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/preview/bridgeHostContext.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAE1D,6EAA6E;AAC7E,eAAO,MAAM,0BAA0B,4DACiB,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,+BAA+B,IAAI,0BAA0B,GAAG,IAAI,CAEnF;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,0BAA0B,GAAG,IAAI,GAAG,SAAS,EACtD,MAAM,EAAE,0BAA0B,GAAG,IAAI,GACxC,0BAA0B,GAAG,IAAI,CAGnC"}
@@ -0,0 +1,11 @@
1
+ import { createContext as e, useContext as t } from "react";
2
+ //#region src/shared/assistant/preview/bridgeHostContext.ts
3
+ var n = e(null);
4
+ function r() {
5
+ return t(n);
6
+ }
7
+ function i(e, t) {
8
+ return e ? e === t ? null : e : null;
9
+ }
10
+ //#endregion
11
+ export { n as HostedPreviewBridgeContext, i as panelOwnedPreviewBridge, r as useHostedAssistantPreviewBridge };
@@ -1 +1 @@
1
- {"version":3,"file":"useAssistantPreviewBridge.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/preview/useAssistantPreviewBridge.ts"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EAAE,0BAA0B,EAAyB,MAAM,SAAS,CAAC;AA2CjF,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,0BAA0B,GAAG,IAAI,GAC5C,IAAI,CAyMN"}
1
+ {"version":3,"file":"useAssistantPreviewBridge.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/preview/useAssistantPreviewBridge.ts"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EAAE,0BAA0B,EAAyB,MAAM,SAAS,CAAC;AA2CjF,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,0BAA0B,GAAG,IAAI,GAC5C,IAAI,CA+MN"}
@@ -41,6 +41,10 @@ export type AIAssistantPanelProps = PanelProps & {
41
41
  *
42
42
  * ★ Absence is the off-switch — no controller, no toggle, no overlay and no
43
43
  * events. There is deliberately no second flag that could disagree with it.
44
+ *
45
+ * ★★ Passed through `AssistantOverlay`'s `panelProps`, its events keep flowing
46
+ * after the panel closes: the overlay runs the bridge, and this panel then
47
+ * runs none for the same controller (BOFF-7367, see `bridgeHost.tsx`).
44
48
  */
45
49
  preview?: AssistantPreviewController;
46
50
  };
@@ -1 +1 @@
1
- {"version":3,"file":"AIAssistantPanel.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AIAssistantPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAU,KAAK,EAAE,EAAY,MAAM,OAAO,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAIvE,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,6BAA6B,CAAC;AAcrC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAGnE,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG;IAC/C,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,0BAA0B,CAAC;CACtC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CA0NtD,CAAC"}
1
+ {"version":3,"file":"AIAssistantPanel.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AIAssistantPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAU,KAAK,EAAE,EAAY,MAAM,OAAO,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAIvE,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,6BAA6B,CAAC;AAkBrC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAGnE,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG;IAC/C,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,0BAA0B,CAAC;CACtC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAiOtD,CAAC"}
@@ -7,86 +7,87 @@ import { AssistantConnectSourceProvider as a } from "./composer/connectSource.js
7
7
  import { ASSISTANT_OVERLAY_ATTR as o, ASSISTANT_PANEL_ATTR as s, activePanelOverlay as c, escapeDismisses as l, nextPanelOverlays as u } from "./panelOverlays.js";
8
8
  import { AssistantPreviewProvider as d } from "../preview/context.js";
9
9
  import { useAssistantPreviewBridge as f } from "../preview/useAssistantPreviewBridge.js";
10
- import { AssistantPreviewOverlay as p } from "../preview/AssistantPreviewOverlay.js";
11
- import { AssistantHeader as m } from "./AssistantHeader.js";
12
- import { AssistantConversationList as h } from "./AssistantConversationList.js";
13
- import { useFilesServiceWarmup as g } from "../../../storage/warmFilesService.js";
14
- import { useAssistantHeartbeat as _ } from "../useAssistantHeartbeat.js";
15
- import { useAssistantKeyboardShortcuts as v } from "../useAssistantKeyboardShortcuts.js";
16
- import { AssistantChatArea as y } from "./AssistantChatArea.js";
17
- import { useRef as b, useState as x } from "react";
18
- import { jsx as S, jsxs as C } from "react/jsx-runtime";
10
+ import { panelOwnedPreviewBridge as p, useHostedAssistantPreviewBridge as m } from "../preview/bridgeHostContext.js";
11
+ import { AssistantPreviewOverlay as h } from "../preview/AssistantPreviewOverlay.js";
12
+ import { AssistantHeader as g } from "./AssistantHeader.js";
13
+ import { AssistantConversationList as _ } from "./AssistantConversationList.js";
14
+ import { useFilesServiceWarmup as v } from "../../../storage/warmFilesService.js";
15
+ import { useAssistantHeartbeat as y } from "../useAssistantHeartbeat.js";
16
+ import { useAssistantKeyboardShortcuts as b } from "../useAssistantKeyboardShortcuts.js";
17
+ import { AssistantChatArea as x } from "./AssistantChatArea.js";
18
+ import { useRef as S, useState as C } from "react";
19
+ import { jsx as w, jsxs as T } from "react/jsx-runtime";
19
20
  //#region src/shared/assistant/ui/AIAssistantPanel.tsx
20
- var w = ({ onClose: w, visible: T, docked: E, onToggleDock: D, writeAccess: O, onNavigate: k, connectSourceHref: A, preview: j }) => {
21
- let M = t(), [N, P] = x(!1);
22
- N && !j && P(!1);
23
- let F = N && !!j;
24
- f(j ?? null);
25
- let I = b(null), { conversations: L, activeConversationId: R, conversationListOpen: z, setConversationListOpen: B, createConversation: V } = r(), H = z || F, U = c({
26
- historyOpen: z,
27
- previewOpen: F
28
- }), W = (e) => {
21
+ var E = ({ onClose: E, visible: D, docked: O, onToggleDock: k, writeAccess: A, onNavigate: j, connectSourceHref: M, preview: N }) => {
22
+ let P = t(), [F, I] = C(!1);
23
+ F && !N && I(!1);
24
+ let L = F && !!N;
25
+ f(p(N, m()));
26
+ let R = S(null), { conversations: z, activeConversationId: B, conversationListOpen: V, setConversationListOpen: H, createConversation: U } = r(), W = V || L, G = c({
27
+ historyOpen: V,
28
+ previewOpen: L
29
+ }), K = (e) => {
29
30
  let t = u({
30
- historyOpen: z,
31
- previewOpen: F
31
+ historyOpen: V,
32
+ previewOpen: L
32
33
  }, e);
33
- B(t.historyOpen), P(t.previewOpen);
34
- }, G = L.find((e) => e.id === R);
35
- _(G?.backendSessionId ?? null, G?.mode ?? null, T ?? !0), g(T ?? !0);
36
- let K = e(T !== !1);
37
- return v({
38
- panelRef: I,
34
+ H(t.historyOpen), I(t.previewOpen);
35
+ }, q = z.find((e) => e.id === B);
36
+ y(q?.backendSessionId ?? null, q?.mode ?? null, D ?? !0), v(D ?? !0);
37
+ let J = e(D !== !1);
38
+ return b({
39
+ panelRef: R,
39
40
  onClose: () => {
40
41
  if (l({
41
- historyOpen: z,
42
- previewOpen: F
42
+ historyOpen: V,
43
+ previewOpen: L
43
44
  }) === "overlay") {
44
- B(!1), P(!1);
45
+ H(!1), I(!1);
45
46
  return;
46
47
  }
47
- w();
48
+ E();
48
49
  }
49
- }), /* @__PURE__ */ S(i, {
50
- visible: T ?? !0,
51
- children: /* @__PURE__ */ S(d, {
52
- value: j,
53
- children: /* @__PURE__ */ S(n, {
54
- value: k,
55
- children: /* @__PURE__ */ S(a, {
56
- value: A,
57
- children: /* @__PURE__ */ C("div", {
58
- ref: I,
50
+ }), /* @__PURE__ */ w(i, {
51
+ visible: D ?? !0,
52
+ children: /* @__PURE__ */ w(d, {
53
+ value: N,
54
+ children: /* @__PURE__ */ w(n, {
55
+ value: j,
56
+ children: /* @__PURE__ */ w(a, {
57
+ value: M,
58
+ children: /* @__PURE__ */ T("div", {
59
+ ref: R,
59
60
  className: "relative flex h-full w-full flex-col bg-bg-surface",
60
61
  role: "complementary",
61
- "aria-label": M("panel.ariaLabel", "AI Assistant"),
62
+ "aria-label": P("panel.ariaLabel", "AI Assistant"),
62
63
  "data-testid": "ai-assistant-panel",
63
64
  [s]: "",
64
- ...U ? { [o]: U } : {},
65
+ ...G ? { [o]: G } : {},
65
66
  tabIndex: -1,
66
67
  children: [
67
- /* @__PURE__ */ S("div", {
68
+ /* @__PURE__ */ w("div", {
68
69
  className: "contents",
69
- inert: H || void 0,
70
- children: /* @__PURE__ */ S(m, {
71
- contextLabel: K,
72
- onNewConversation: () => V(),
73
- onOpenHistory: () => W("history"),
74
- historyOpen: z,
75
- onTogglePreview: () => W("preview"),
76
- previewOpen: F,
77
- onClose: w,
78
- docked: E,
79
- onToggleDock: D
70
+ inert: W || void 0,
71
+ children: /* @__PURE__ */ w(g, {
72
+ contextLabel: J,
73
+ onNewConversation: () => U(),
74
+ onOpenHistory: () => K("history"),
75
+ historyOpen: V,
76
+ onTogglePreview: () => K("preview"),
77
+ previewOpen: L,
78
+ onClose: E,
79
+ docked: O,
80
+ onToggleDock: k
80
81
  })
81
82
  }),
82
- z && /* @__PURE__ */ S(h, {}),
83
- F && /* @__PURE__ */ S(p, { onClose: () => P(!1) }),
84
- /* @__PURE__ */ S("div", {
83
+ V && /* @__PURE__ */ w(_, {}),
84
+ L && /* @__PURE__ */ w(h, { onClose: () => I(!1) }),
85
+ /* @__PURE__ */ w("div", {
85
86
  className: "contents",
86
- inert: H || void 0,
87
- children: /* @__PURE__ */ S(y, {
88
- visible: T ?? !0,
89
- writeAccess: O
87
+ inert: W || void 0,
88
+ children: /* @__PURE__ */ w(x, {
89
+ visible: D ?? !0,
90
+ writeAccess: A
90
91
  })
91
92
  })
92
93
  ]
@@ -97,4 +98,4 @@ var w = ({ onClose: w, visible: T, docked: E, onToggleDock: D, writeAccess: O, o
97
98
  });
98
99
  };
99
100
  //#endregion
100
- export { w as AIAssistantPanel };
101
+ export { E as AIAssistantPanel };
@@ -80,6 +80,12 @@ export interface AssistantOverlayProps {
80
80
  /**
81
81
  * Extra props for the default `AIAssistantPanel` — `writeAccess`,
82
82
  * `connectSourceHref`, `preview`. The overlay's own props always win.
83
+ *
84
+ * ★★ `preview` is bridged HERE, by the overlay, not by the panel — so a
85
+ * product surface outside the panel keeps following a run after the assistant
86
+ * is closed (BOFF-7367). A `renderPanel` wrapper that hands its panel the
87
+ * same controller should pass it here too; one it passes only to its panel is
88
+ * bridged by that panel, for that panel's lifetime.
83
89
  */
84
90
  panelProps?: Omit<AIAssistantPanelProps, keyof AssistantOverlayPanelProps>;
85
91
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantOverlay.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantOverlay.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAUL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,EAmBL,KAAK,oBAAoB,EAC1B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,+EAA+E;IAC/E,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAID,uEAAuE;AACvE,wBAAgB,yBAAyB,IAAI,4BAA4B,GAAG,IAAI,CAE/E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AA6BD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,WAAW,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,GACnD,IAAI,CAaN;AAID,MAAM,WAAW,6BAA6B;IAC5C;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;KACtD,CAAC;IACF,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,SAAS,EACT,KAAK,EACL,QAAQ,GACT,EAAE,6BAA6B,2CAkE/B;AAED,mDAAmD;AACnD,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC;AAED,MAAM,WAAW,qBAAqB;IACpC,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,UAAU,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,MAAM,0BAA0B,CAAC,CAAC;IAC3E;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,SAAS,CAAC;IAC/D;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,kFAAkF;IAClF,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,kEAAkE;IAClE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kFAAkF;IAClF,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAOD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,kDAI5D"}
1
+ {"version":3,"file":"AssistantOverlay.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantOverlay.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAUL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAI1C,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,EAmBL,KAAK,oBAAoB,EAC1B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,+EAA+E;IAC/E,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAID,uEAAuE;AACvE,wBAAgB,yBAAyB,IAAI,4BAA4B,GAAG,IAAI,CAE/E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AA6BD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,WAAW,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,GACnD,IAAI,CAaN;AAID,MAAM,WAAW,6BAA6B;IAC5C;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;KACtD,CAAC;IACF,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,SAAS,EACT,KAAK,EACL,QAAQ,GACT,EAAE,6BAA6B,2CAkE/B;AAED,mDAAmD;AACnD,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC;AAED,MAAM,WAAW,qBAAqB;IACpC,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,MAAM,0BAA0B,CAAC,CAAC;IAC3E;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,SAAS,CAAC;IAC/D;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,kFAAkF;IAClF,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,kEAAkE;IAClE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kFAAkF;IAClF,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAOD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,kDAI5D"}
@@ -1,99 +1,100 @@
1
1
  import { useAssistantTr as e } from "../i18n.js";
2
2
  import { quotaExhaustedEventName as t } from "../quota.js";
3
3
  import { assistantPanelOwnsEscape as n } from "./panelOverlays.js";
4
- import { AIAssistantPanel as r } from "./AIAssistantPanel.js";
5
- import { ASSISTANT_DOCK_WIDTH_VAR as i, ASSISTANT_OVERLAY_DESKTOP_QUERY as a, ASSISTANT_OVERLAY_TOP_VAR as o, aboveAssistantBottomChrome as s, assistantOverlayClassName as c, assistantOverlayEscapeAction as l, assistantOverlayKeys as u, assistantQuotaKindOf as d, createAssistantNavigate as f, isAssistantToggleShortcut as p, nextAssistantOpenState as m, publishedAssistantDockWidth as h, readAssistantOverlayFlag as g, requestedAssistantOpenState as _, writeAssistantOverlayFlag as v } from "./assistantOverlayState.js";
6
- import { createContext as y, useCallback as b, useContext as x, useEffect as S, useMemo as C, useRef as w, useState as T, useSyncExternalStore as E } from "react";
7
- import { Sparkles as D } from "lucide-react";
8
- import { Fragment as O, jsx as k, jsxs as A } from "react/jsx-runtime";
4
+ import { AssistantPreviewBridgeHost as r } from "../preview/bridgeHost.js";
5
+ import { AIAssistantPanel as i } from "./AIAssistantPanel.js";
6
+ import { ASSISTANT_DOCK_WIDTH_VAR as a, ASSISTANT_OVERLAY_DESKTOP_QUERY as o, ASSISTANT_OVERLAY_TOP_VAR as s, aboveAssistantBottomChrome as c, assistantOverlayClassName as l, assistantOverlayEscapeAction as u, assistantOverlayKeys as d, assistantQuotaKindOf as f, createAssistantNavigate as p, isAssistantToggleShortcut as m, nextAssistantOpenState as h, publishedAssistantDockWidth as g, readAssistantOverlayFlag as _, requestedAssistantOpenState as v, writeAssistantOverlayFlag as y } from "./assistantOverlayState.js";
7
+ import { createContext as b, useCallback as x, useContext as S, useEffect as C, useMemo as w, useRef as T, useState as E, useSyncExternalStore as D } from "react";
8
+ import { Sparkles as O } from "lucide-react";
9
+ import { jsx as k, jsxs as A } from "react/jsx-runtime";
9
10
  //#region src/shared/assistant/ui/AssistantOverlay.tsx
10
- var j = y(null);
11
+ var j = b(null);
11
12
  function M() {
12
- return x(j);
13
+ return S(j);
13
14
  }
14
15
  function N() {
15
- return x(j)?.dockWidthPx ?? 0;
16
+ return S(j)?.dockWidthPx ?? 0;
16
17
  }
17
18
  var P = () => typeof window > "u" ? void 0 : window.sessionStorage, F = () => typeof window > "u" ? void 0 : window.localStorage;
18
19
  function I(e) {
19
20
  if (typeof window > "u" || typeof window.matchMedia != "function") return () => {};
20
- let t = window.matchMedia(a);
21
+ let t = window.matchMedia(o);
21
22
  return t.addEventListener("change", e), () => t.removeEventListener("change", e);
22
23
  }
23
24
  function L() {
24
25
  return typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(min-width: 640px)").matches;
25
26
  }
26
27
  function R() {
27
- return E(I, L, () => !1);
28
+ return D(I, L, () => !1);
28
29
  }
29
30
  function z(e, n) {
30
- let r = w(n);
31
- S(() => {
31
+ let r = T(n);
32
+ C(() => {
32
33
  r.current = n;
33
- }, [n]), S(() => {
34
+ }, [n]), C(() => {
34
35
  if (!e || typeof window > "u") return;
35
- let n = t(e), i = (e) => r.current(d(e), e);
36
+ let n = t(e), i = (e) => r.current(f(e), e);
36
37
  return window.addEventListener(n, i), () => window.removeEventListener(n, i);
37
38
  }, [e]);
38
39
  }
39
40
  var B = () => {};
40
41
  function V({ keyPrefix: e, quota: t, children: n }) {
41
- let r = C(() => u(e), [e]), [a, o] = T(() => g(P, r.openStorageKey)), [s, c] = T(() => g(F, r.dockStorageKey)), l = b(() => o(!0), []), d = b(() => o(!1), []), f = b(() => o((e) => !e), []), y = b(() => c((e) => !e), []);
42
- S(() => {
43
- v(P, r.openStorageKey, a);
44
- }, [r.openStorageKey, a]), S(() => {
45
- v(F, r.dockStorageKey, s);
46
- }, [r.dockStorageKey, s]), S(() => {
42
+ let r = w(() => d(e), [e]), [i, o] = E(() => _(P, r.openStorageKey)), [s, c] = E(() => _(F, r.dockStorageKey)), l = x(() => o(!0), []), u = x(() => o(!1), []), f = x(() => o((e) => !e), []), p = x(() => c((e) => !e), []);
43
+ C(() => {
44
+ y(P, r.openStorageKey, i);
45
+ }, [r.openStorageKey, i]), C(() => {
46
+ y(F, r.dockStorageKey, s);
47
+ }, [r.dockStorageKey, s]), C(() => {
47
48
  if (typeof window > "u") return;
48
49
  let e = (e) => {
49
- let t = _(e);
50
- o((e) => m(e, t));
50
+ let t = v(e);
51
+ o((e) => h(e, t));
51
52
  };
52
53
  return window.addEventListener(r.toggleEvent, e), () => window.removeEventListener(r.toggleEvent, e);
53
- }, [r.toggleEvent]), S(() => {
54
+ }, [r.toggleEvent]), C(() => {
54
55
  if (typeof document > "u") return;
55
56
  let e = (e) => {
56
- p(e) && (e.preventDefault(), o((e) => !e));
57
+ m(e) && (e.preventDefault(), o((e) => !e));
57
58
  };
58
59
  return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
59
60
  }, []), z(t?.product ?? null, t?.onExhausted ?? B);
60
- let x = h({
61
- isOpen: a,
61
+ let b = g({
62
+ isOpen: i,
62
63
  docked: s,
63
64
  isDesktop: R()
64
65
  });
65
- S(() => {
66
+ C(() => {
66
67
  if (typeof document > "u") return;
67
68
  let e = document.documentElement.style;
68
- return e.setProperty(i, `${x}px`), () => {
69
- e.removeProperty(i);
69
+ return e.setProperty(a, `${b}px`), () => {
70
+ e.removeProperty(a);
70
71
  };
71
- }, [x]);
72
- let w = C(() => ({
73
- isOpen: a,
72
+ }, [b]);
73
+ let S = w(() => ({
74
+ isOpen: i,
74
75
  open: l,
75
- close: d,
76
+ close: u,
76
77
  toggle: f,
77
78
  docked: s,
78
- toggleDock: y,
79
- dockWidthPx: x,
79
+ toggleDock: p,
80
+ dockWidthPx: b,
80
81
  keys: r
81
82
  }), [
82
- a,
83
+ i,
83
84
  l,
84
- d,
85
+ u,
85
86
  f,
86
87
  s,
87
- y,
88
- x,
88
+ p,
89
+ b,
89
90
  r
90
91
  ]);
91
92
  return /* @__PURE__ */ k(j.Provider, {
92
- value: w,
93
+ value: S,
93
94
  children: n
94
95
  });
95
96
  }
96
- var H = (e, t) => /* @__PURE__ */ k(r, {
97
+ var H = (e, t) => /* @__PURE__ */ k(i, {
97
98
  ...e,
98
99
  ...t
99
100
  });
@@ -104,68 +105,71 @@ function U(e) {
104
105
  ...e
105
106
  }) : null;
106
107
  }
107
- function W({ state: t, panelId: r = "ai-assistant", panelProps: i, renderPanel: a, navigate: u, isShellLessTarget: d, topOffsetPx: p = 56, launcherIcon: m, launcherBottomInset: h = "1.5rem", showLauncher: g = !0 }) {
108
- let { isOpen: _, close: v, toggle: y, docked: b, toggleDock: x } = t, w = e(), [E, j] = T(!1), M = C(() => u ? f({
109
- navigate: u,
110
- isShellLessTarget: d,
108
+ function W({ state: t, panelId: i = "ai-assistant", panelProps: a, renderPanel: o, navigate: d, isShellLessTarget: f, topOffsetPx: m = 56, launcherIcon: h, launcherBottomInset: g = "1.5rem", showLauncher: _ = !0 }) {
109
+ let { isOpen: v, close: y, toggle: b, docked: x, toggleDock: S } = t, T = e(), [D, j] = E(!1), M = w(() => d ? p({
110
+ navigate: d,
111
+ isShellLessTarget: f,
111
112
  isDesktop: L,
112
113
  collapseSheet: () => j(!1),
113
114
  openInNewTab: (e) => window.open(e, "_blank", "noopener,noreferrer")
114
- }) : void 0, [u, d]);
115
- S(() => {
116
- if (!_) return;
115
+ }) : void 0, [d, f]);
116
+ C(() => {
117
+ if (!v) return;
117
118
  let e = (e) => {
118
- l({
119
+ u({
119
120
  key: e.key,
120
- isOpen: _,
121
+ isOpen: v,
121
122
  dialogOpen: document.querySelector("[role=\"dialog\"],[role=\"alertdialog\"],dialog[open]") !== null,
122
123
  panelOwnsEscape: n()
123
- }) === "close" && (e.preventDefault(), v());
124
+ }) === "close" && (e.preventDefault(), y());
124
125
  };
125
126
  return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
126
- }, [_, v]);
127
+ }, [v, y]);
127
128
  let N = {
128
- panelId: r,
129
+ panelId: i,
129
130
  visible: !0,
130
- onClose: v,
131
- docked: b,
132
- onToggleDock: x,
131
+ onClose: y,
132
+ docked: x,
133
+ onToggleDock: S,
133
134
  onNavigate: M
134
- }, P = w("overlay.launcher", "AI Assistant"), F = { [o]: `${p}px` };
135
- return /* @__PURE__ */ A(O, { children: [_ && /* @__PURE__ */ A("div", {
136
- className: c({
137
- expanded: E,
138
- docked: b
139
- }),
140
- style: F,
141
- "data-testid": "assistant-overlay",
142
- children: [/* @__PURE__ */ k("button", {
135
+ }, P = T("overlay.launcher", "AI Assistant"), F = { [s]: `${m}px` };
136
+ return /* @__PURE__ */ A(r, {
137
+ preview: a?.preview,
138
+ children: [v && /* @__PURE__ */ A("div", {
139
+ className: l({
140
+ expanded: D,
141
+ docked: x
142
+ }),
143
+ style: F,
144
+ "data-testid": "assistant-overlay",
145
+ children: [/* @__PURE__ */ k("button", {
146
+ type: "button",
147
+ onClick: () => j((e) => !e),
148
+ className: "flex w-full shrink-0 justify-center pt-2 pb-1 sm:hidden",
149
+ "aria-label": D ? T("sheet.collapse", "Shrink the assistant") : T("sheet.expand", "Expand the assistant"),
150
+ "aria-expanded": D,
151
+ "data-testid": "assistant-sheet-handle",
152
+ children: /* @__PURE__ */ k("span", { className: "h-1.5 w-10 rounded-full bg-border-strong" })
153
+ }), /* @__PURE__ */ k("div", {
154
+ className: "flex min-h-0 flex-1 flex-col",
155
+ children: o ? o(N) : H(a, N)
156
+ })]
157
+ }), _ && /* @__PURE__ */ k("button", {
143
158
  type: "button",
144
- onClick: () => j((e) => !e),
145
- className: "flex w-full shrink-0 justify-center pt-2 pb-1 sm:hidden",
146
- "aria-label": E ? w("sheet.collapse", "Shrink the assistant") : w("sheet.expand", "Expand the assistant"),
147
- "aria-expanded": E,
148
- "data-testid": "assistant-sheet-handle",
149
- children: /* @__PURE__ */ k("span", { className: "h-1.5 w-10 rounded-full bg-border-strong" })
150
- }), /* @__PURE__ */ k("div", {
151
- className: "flex min-h-0 flex-1 flex-col",
152
- children: a ? a(N) : H(i, N)
159
+ onClick: b,
160
+ title: T("overlay.launcherTitle", "AI Assistant ({{shortcut}})", { shortcut: "Ctrl+Shift+A" }),
161
+ "aria-label": P,
162
+ "aria-haspopup": "dialog",
163
+ "aria-expanded": v,
164
+ "data-testid": "assistant-fab",
165
+ style: { bottom: c(g) },
166
+ className: "fixed right-6 z-30 size-14 items-center justify-center rounded-full border border-border-strong bg-[var(--color-accent-soft)] text-action-primary-bg shadow-float transition-colors duration-200 hover:border-action-primary-bg focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] cursor-pointer " + (v ? "hidden sm:inline-flex" : "inline-flex"),
167
+ children: h ?? /* @__PURE__ */ k(O, {
168
+ className: "size-6",
169
+ "aria-hidden": "true"
170
+ })
153
171
  })]
154
- }), g && /* @__PURE__ */ k("button", {
155
- type: "button",
156
- onClick: y,
157
- title: w("overlay.launcherTitle", "AI Assistant ({{shortcut}})", { shortcut: "Ctrl+Shift+A" }),
158
- "aria-label": P,
159
- "aria-haspopup": "dialog",
160
- "aria-expanded": _,
161
- "data-testid": "assistant-fab",
162
- style: { bottom: s(h) },
163
- className: "fixed right-6 z-30 size-14 items-center justify-center rounded-full border border-border-strong bg-[var(--color-accent-soft)] text-action-primary-bg shadow-float transition-colors duration-200 hover:border-action-primary-bg focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] cursor-pointer " + (_ ? "hidden sm:inline-flex" : "inline-flex"),
164
- children: m ?? /* @__PURE__ */ k(D, {
165
- className: "size-6",
166
- "aria-hidden": "true"
167
- })
168
- })] });
172
+ });
169
173
  }
170
174
  //#endregion
171
175
  export { U as AssistantOverlay, V as AssistantOverlayProvider, N as useAssistantDockWidth, M as useAssistantOverlayOrNull, z as useAssistantQuotaExhausted };
@@ -87,43 +87,45 @@ import { AssistantEntityPreview as go } from "./shared/assistant/preview/entity/
87
87
  import { useOverlayFocus as _o } from "./shared/assistant/ui/useOverlayFocus.js";
88
88
  import { REDUCED_MOTION_ATTRIBUTE as vo, REDUCED_MOTION_QUERY as yo, readReducedMotion as bo, subscribeReducedMotion as xo, usePrefersReducedMotion as So } from "./shared/assistant/ui/usePrefersReducedMotion.js";
89
89
  import { useAssistantPreviewBridge as Co } from "./shared/assistant/preview/useAssistantPreviewBridge.js";
90
- import { AssistantPreviewOverlay as wo } from "./shared/assistant/preview/AssistantPreviewOverlay.js";
91
- import { AssistantLanguageSelector as To, FOLLOW_APP_LOCALE as Eo } from "./shared/assistant/ui/composer/AssistantLanguageSelector.js";
92
- import { ASSISTANT_MODE_META as Do, AssistantModeSelector as Oo, assistantModeMeta as ko, nextModeIndex as Ao } from "./shared/assistant/ui/composer/AssistantModeSelector.js";
93
- import { AssistantVoiceButton as jo } from "./shared/assistant/ui/composer/AssistantVoiceButton.js";
94
- import { AUTO_VOICE as Mo, AssistantVoiceSelector as No } from "./shared/assistant/ui/composer/AssistantVoiceSelector.js";
95
- import { AssistantVoiceOrb as Po } from "./shared/assistant/ui/voice/AssistantVoiceOrb.js";
96
- import { AssistantVoiceSessionButton as Fo } from "./shared/assistant/ui/voice/AssistantVoiceSessionButton.js";
97
- import { CAPTION_SCROLL_ATTR as Io, VoiceCaption as Lo } from "./shared/assistant/ui/voice/VoiceCaption.js";
98
- import { VoiceConversationView as Ro } from "./shared/assistant/ui/voice/VoiceConversationView.js";
99
- import { VoiceWaveform as zo } from "./shared/assistant/ui/voice/VoiceWaveform.js";
100
- import { VoiceStatusLine as Bo, VoiceStatusText as Vo } from "./shared/assistant/ui/voice/VoiceStatusText.js";
101
- import { VoiceMiniController as Ho } from "./shared/assistant/ui/voice/VoiceMiniController.js";
102
- import { VoiceStage as Uo } from "./shared/assistant/ui/voice/VoiceStage.js";
103
- import { VoiceTranscriptDrawer as Wo } from "./shared/assistant/ui/voice/VoiceTranscriptDrawer.js";
104
- import { downloadFile as Go, exportConversation as Ko } from "./shared/assistant/exportConversation.js";
105
- import { AssistantMoreMenu as qo } from "./shared/assistant/ui/AssistantMoreMenu.js";
106
- import { AssistantHeader as Jo } from "./shared/assistant/ui/AssistantHeader.js";
107
- import { AssistantConversationList as Yo } from "./shared/assistant/ui/AssistantConversationList.js";
108
- import { AssistantEmptyState as Xo } from "./shared/assistant/ui/AssistantEmptyState.js";
109
- import { AssistantTurnActivity as Zo, TurnActivityLine as Qo } from "./shared/assistant/ui/AssistantTurnActivity.js";
110
- import { AssistantMessageItem as $o } from "./shared/assistant/ui/AssistantMessageItem.js";
111
- import { AssistantMessageList as es } from "./shared/assistant/ui/AssistantMessageList.js";
112
- import { AssistantVoiceSession as ts } from "./shared/assistant/ui/voice/AssistantVoiceSession.js";
113
- import { useAssistantApiAccess as ns } from "./shared/assistant/useAssistantApiAccess.js";
114
- import { useConversationTurns as rs } from "./shared/assistant/useConversationTurns.js";
115
- import { isMultimodalBodyRejection as is, isRecoverableAssistantError as as } from "./shared/assistant/transportErrors.js";
116
- import { aiCreditsUpdatedEventName as os, dispatchAssistantQuotaExhausted as ss, notifyAiCreditsUpdated as cs } from "./shared/assistant/aiCredits.js";
117
- import { useWorkspaceWriteAccess as ls } from "./shared/assistant/useWorkspaceWriteAccess.js";
118
- import { extractDocumentText as us } from "./shared/assistant/documentExtract.js";
119
- import { useAssistantAttachments as ds } from "./shared/assistant/useAssistantAttachments.js";
120
- import { AssistantComposer as fs } from "./shared/assistant/ui/composer/AssistantComposer.js";
121
- import { isProdRuntime as ps } from "./shared/assistant/env.js";
122
- import { useAssistantHeartbeat as ms } from "./shared/assistant/useAssistantHeartbeat.js";
123
- import { useAssistantKeyboardShortcuts as hs } from "./shared/assistant/useAssistantKeyboardShortcuts.js";
124
- import { AssistantApiCallsConsentDialog as gs } from "./shared/assistant/ui/AssistantApiCallsConsentDialog.js";
125
- import { AssistantChatArea as _s } from "./shared/assistant/ui/AssistantChatArea.js";
126
- import { AIAssistantPanel as vs } from "./shared/assistant/ui/AIAssistantPanel.js";
127
- import { ASSISTANT_BOTTOM_CHROME_CLEARANCE as ys, ASSISTANT_DIALOG_SELECTOR as bs, ASSISTANT_DOCKED_DESKTOP_CLASS as xs, ASSISTANT_DOCK_WIDTH_PX as Ss, ASSISTANT_DOCK_WIDTH_VAR as Cs, ASSISTANT_FLOATING_DESKTOP_CLASS as ws, ASSISTANT_OVERLAY_DEFAULT_TOP_PX as Ts, ASSISTANT_OVERLAY_DESKTOP_QUERY as Es, ASSISTANT_OVERLAY_TOP_VAR as Ds, ASSISTANT_SHEET_BASE_CLASS as Os, ASSISTANT_SHEET_COMPACT_CLASS as ks, ASSISTANT_SHEET_EXPANDED_CLASS as As, ASSISTANT_TOGGLE_SHORTCUT_LABEL as js, aboveAssistantBottomChrome as Ms, assistantOverlayClassName as Ns, assistantOverlayEscapeAction as Ps, assistantOverlayKeys as Fs, assistantQuotaKindOf as Is, createAssistantNavigate as Ls, isAssistantToggleShortcut as Rs, nextAssistantOpenState as zs, publishedAssistantDockWidth as Bs, readAssistantOverlayFlag as Vs, requestedAssistantOpenState as Hs, writeAssistantOverlayFlag as Us } from "./shared/assistant/ui/assistantOverlayState.js";
128
- import { AssistantOverlay as Ws, AssistantOverlayProvider as Gs, useAssistantDockWidth as Ks, useAssistantOverlayOrNull as qs, useAssistantQuotaExhausted as Js } from "./shared/assistant/ui/AssistantOverlay.js";
129
- export { Ti as ADMIN_MODE_ACCESS_WAIT_MS, vs as AIAssistantPanel, q as ASSISTANT_API_AUTH_STRATEGY, ys as ASSISTANT_BOTTOM_CHROME_CLEARANCE, bs as ASSISTANT_DIALOG_SELECTOR, xs as ASSISTANT_DOCKED_DESKTOP_CLASS, Ss as ASSISTANT_DOCK_WIDTH_PX, Cs as ASSISTANT_DOCK_WIDTH_VAR, ws as ASSISTANT_FLOATING_DESKTOP_CLASS, bi as ASSISTANT_I18N_COMPUTED_COPY, xi as ASSISTANT_I18N_LITERAL_COPY, Si as ASSISTANT_I18N_MANIFEST, or as ASSISTANT_LANGUAGES, L as ASSISTANT_MODE_FALLBACK_LABELS, R as ASSISTANT_MODE_IDS, Do as ASSISTANT_MODE_META, Pa as ASSISTANT_OVERLAY_ATTR, Ts as ASSISTANT_OVERLAY_DEFAULT_TOP_PX, Es as ASSISTANT_OVERLAY_DESKTOP_QUERY, Ds as ASSISTANT_OVERLAY_TOP_VAR, Fa as ASSISTANT_PANEL_ATTR, Os as ASSISTANT_SHEET_BASE_CLASS, ks as ASSISTANT_SHEET_COMPACT_CLASS, As as ASSISTANT_SHEET_EXPANDED_CLASS, js as ASSISTANT_TOGGLE_SHORTCUT_LABEL, Pr as ATTACHMENT_ACCEPT, _i as ATTACHMENT_SOURCES, Mo as AUTO_VOICE, gs as AssistantApiCallsConsentDialog, Wa as AssistantAttachmentButton, Ga as AssistantAttachmentChips, wa as AssistantAutoSpeakToggle, ma as AssistantAvatar, _s as AssistantChatArea, fs as AssistantComposer, Na as AssistantConnectSourceItem, ja as AssistantConnectSourceProvider, Yo as AssistantConversationList, Xo as AssistantEmptyState, go as AssistantEntityPreview, Jo as AssistantHeader, s as AssistantI18nProvider, Da as AssistantLanguageMenu, To as AssistantLanguageSelector, f as AssistantMarkdownImage, h as AssistantMarkdownRenderer, Ta as AssistantMessageAttachments, $o as AssistantMessageItem, es as AssistantMessageList, Oo as AssistantModeSelector, qo as AssistantMoreMenu, g as AssistantNavigateProvider, Ws as AssistantOverlay, Gs as AssistantOverlayProvider, Ea as AssistantPendingWriteCard, wo as AssistantPreviewOverlay, Ka as AssistantPreviewProvider, t as AssistantProductProvider, Oa as AssistantReplyLanguageSelector, Pe as AssistantRuntimeManager, ka as AssistantSpeakButton, ha as AssistantSpeechProvider, Aa as AssistantSpokenTurnsNotice, ho as AssistantStepRail, ua as AssistantToolActivity, Zo as AssistantTurnActivity, jo as AssistantVoiceButton, Po as AssistantVoiceOrb, No as AssistantVoiceSelector, ts as AssistantVoiceSession, Fo as AssistantVoiceSessionButton, Fr as AttachmentRejectedError, mr as BOILERPLATE_PAGE_SHARE, qe as BUILT_IN_MODE_CAPABILITIES, Io as CAPTION_SCROLL_ATTR, O as CHECK_AI_CREDITS, k as CREATE_SANDBOX, Ir as DEFAULT_INLINE_LIMITS, zn as DEFAULT_SPEAKABLE_LABELS, sr as DEFAULT_SPEECH_RATE, tt as DEFAULT_STREAM_BUDGET_MS, wn as ENDPOINT_GRACE_MS, A as EXTEND_SANDBOX_TTL, Eo as FOLLOW_APP_LOCALE, j as GET_ACTIVE_SANDBOXES, M as GET_SANDBOX, yt as HOSTED_DISABLE_MS, bt as HOSTED_TTS_MAX_CHARS, ht as HOSTED_TTS_TIER, gt as HOSTED_VOICES, Nt as HOSTED_VOICE_RANK, so as IDLE_ACTIVE_TAB, Hi as IDLE_PLAYBACK, Qa as IDLE_PREVIEW, Ja as IDLE_PREVIEW_STATE, yn as IDLE_ROTATION_CLOCK, nt as INCOMPLETE_TURN_NOTICES, Tn as INITIAL_SESSION, Lr as INLINE_IMAGE_MAX_DIM, Rr as INLINE_IMAGE_QUALITY, En as INTERRUPT_MAX_MS, Dn as INTERRUPT_MIN_MS, ji as LEGACY_WRITE_CONSENT_KEY, Je as MAX_ASSISTANT_STREAM_BUDGET_MS, zr as MAX_ATTACHMENTS, hr as MAX_BOILERPLATE_LINE_CHARS, Br as MAX_CONFIGURABLE_INLINE_CHARS, gr as MAX_EXTRACTED_CHARS, Vr as MAX_FILE_BYTES, Hr as MAX_INLINE_CHARS_PER_FILE, Ur as MAX_INLINE_CHARS_TOTAL, ie as MAX_INLINE_IMAGE_BASE64_BYTES, Wr as MAX_INLINE_IMAGE_BASE64_CHARS, Gr as MAX_INLINE_IMAGE_PARTS, Kr as MAX_INLINE_TURN_BODY_BYTES, _r as MAX_PDF_PAGES_SCANNED, ae as MAX_REQUEST_BODY_BYTES, Bn as MAX_SPEAKABLE_CHARS, Vn as MAX_SPOKEN_TABLE_ROWS, qr as MAX_TURN_BODY_BYTES, Zn as MINI_CAPTION_BUDGET, vr as MIN_PAGE_TEXT_CHARS, yr as MIN_TEXT_PAGE_SHARE, $a as NO_OWNER, Ia as NO_PANEL_OVERLAY, sn as PHRASE_ROTATE_MS, $n as POLL_FAST_MS, er as POLL_FAST_UNTIL_MS, tr as POLL_SLOW_MS, nr as POLL_STEADY_MS, rr as POLL_STEADY_UNTIL_MS, Yn as PREVIEW_LANGUAGES, V as PRODUCT_ASSISTANT_MODE_ID_MAX_LENGTH, H as PRODUCT_ASSISTANT_MODE_ID_PATTERN, Jr as PROMPT_ENVELOPE_RESERVE_BYTES, Yr as PROVIDER_READABLE_FILE_MEDIA_TYPES, N as PROXY_SANDBOX_REQUEST, vo as REDUCED_MOTION_ATTRIBUTE, yo as REDUCED_MOTION_QUERY, P as REPORT_AI_TOKEN_USAGE, oe as REQUEST_TOO_LARGE_REFUSAL, xa as SANDBOX_READY_TTL_MS, On as SILENCE_SUBMIT_MS, xt as SPEAKING_RATE_MAX, St as SPEAKING_RATE_MAX_STREAMING, Ct as SPEAKING_RATE_MAX_SYNC, wt as SPEAKING_RATE_MIN, Hn as SPEECH_CHUNK_CHARS, Un as SPEECH_CHUNK_CJK_CHARS, Pt as SPEECH_LANG, Ri as SPOKEN_LABEL_LANGUAGES, cn as STAGE_COPY, F as STOP_ASSISTANT_SANDBOX, rt as STREAM_BUDGET_MS, Mi as TAKE_ACTION_ENGLISH, ln as THINKING_PHRASES, Xr as TURN_BODY_HEADROOM_BYTES, Qo as TurnActivityLine, Ye as UNAVAILABLE_MODE_REFUSAL, Xe as UNDECLARED_MODE_CAPABILITIES, Ft as VOICE_LIST_TIMEOUT_MS, mn as VOICE_MUTED_LABEL, hn as VOICE_THINKING_LABEL, Lo as VoiceCaption, Ro as VoiceConversationView, Ho as VoiceMiniController, Uo as VoiceStage, Bo as VoiceStatusLine, Vo as VoiceStatusText, Wo as VoiceTranscriptDrawer, zo as VoiceWaveform, I as WAIT_FOR_SANDBOX_RUNNING, se as abortAssistantTurn, Ms as aboveAssistantBottomChrome, La as activePanelOverlay, Ze as adminOnlyModeSendRefusal, Ei as adminOnlyModeSendRefusalAfterAccess, bn as advanceRotationClock, os as aiCreditsUpdatedEventName, eo as applyPreviewEvent, ce as approvePendingWrite, Ci as assistantI18nSeedCopy, z as assistantModeFallbackLabel, wi as assistantModeI18nCopy, ko as assistantModeMeta, Ns as assistantOverlayClassName, Ps as assistantOverlayEscapeAction, Fs as assistantOverlayKeys, Ra as assistantPanelOwnsEscape, Is as assistantQuotaKindOf, _ as assistantRoutePath, c as assistantTranslationKey, v as assistantUrlTransform, vi as availableAttachmentSources, Tt as base64ToBytes, y as browserShouldHandle, mt as browserSpeechEngine, la as buildAssistantProgress, le as buildAssistantSandboxEnv, Zr as buildAttachmentPromptBlock, Ai as buildBoundedAttachmentTurn, In as buildContinuedFromVoiceNote, Fe as buildProgress, ue as buildPromptGatewayRequest, Qr as buildPromptParts, de as buildPromptRequestBody, $r as buildPromptWithAttachments, Et as buildRequest, E as buildSandboxContextInput, Ln as buildVoiceTranscriptMarkdown, U as builtInModeExtendedBy, st as chatTurns, fe as checkAssistantAiCredits, Wn as chunkForSpeech, b as classifyAssistantHref, ei as classifyAttachment, Dt as classifyHttpFailure, S as classifyQuotaError, br as columnLetterToIndex, gn as composeVoiceStatus, Jt as configureSpeechEngine, Gn as containsCjk, d as copyToClipboard, ti as countInlineImageCandidates, ni as countInlinedImageParts, fa as countSpokenTurns, Di as createAdminModeAccessGate, Ls as createAssistantNavigate, to as createAssistantPreviewSurface, pe as createAssistantSandbox, me as createAssistantSession, Mt as createHostedTtsEngine, Sa as createReadinessTracker, qt as createRoutingSpeechEngine, ao as createRunIdentityCache, Ge as createSandboxAssistantTransport, Yt as createSpeechEngines, no as currentPreviewOwner, W as declareAssistantMode, Ot as decodeAudioResponse, xr as decodeXmlEntities, C as describeQuotaError, ri as detectDocumentFormat, Bi as detectScriptLocale, yi as deviceHasCamera, kt as disableDurationMs, ss as dispatchAssistantQuotaExhausted, Sr as docxXmlToText, he as downloadAssistantArtifact, Go as downloadFile, ia as elapsedSince, za as escapeDismisses, ii as estimateTurnBodyBytes, D as executeSandboxGraphQL, Ko as exportConversation, ge as extendAssistantSandboxTTL, us as extractDocumentText, cr as findAssistantLanguage, Qe as findAssistantModeConfig, _e as findExistingSandbox, fr as findPendingWrite, Cr as fitPdfPages, Ba as focusIsInsidePanel, ai as formatBytes, wr as formatPageRanges, ve as forwardsUserTokensToSandbox, va as getActorId, ye as getAssistantArtifacts, ra as getAssistantDisplayContent, Ie as getAssistantMedia, be as getAssistantMessages, xe as getAssistantSession, Se as getAssistantStreamAccess, Le as getAssistantText, oi as getAttachmentSendBlocker, ee as getCapability, si as getExtension, J as getImageForMode, Y as getImageTagForMode, ya as getOrganizationId, Re as getRawMessageCreatedAt, X as getResourcesForMode, Z as getSandboxImageRegistry, ci as getSendableAttachments, Xt as getSpeechEngine, ze as getToolProgress, ba as getWorkspaceId, ct as groupBySession, lt as groupConsecutiveBySession, li as hasAttachmentWorkInFlight, _t as hostedLocaleFor, vt as hostedSupportsLanguage, p as imageHostLabel, it as incompleteTurnNotice, G as isAssistantModeId, Rs as isAssistantToggleShortcut, Ya as isBlankProse, B as isBuiltInAssistantMode, kn as isCapturing, An as isEcho, It as isHostedVoice, $i as isLegacyFiller, ea as isLegacyStopped, Tr as isMostlyImagePages, is as isMultimodalBodyRejection, ps as isProdRuntime, K as isProductAssistantModeId, ui as isProviderReadableFilePart, w as isQuotaExhaustedError, Be as isReapedSandboxConnectionError, Ca as isRecentlyVerified, Ve as isRecoverable, as as isRecoverableAssistantError, m as isRemoteImageSrc, Xa as isRunningStatus, Ui as isSpeakingMessage, Lt as isSpeechBlocked, ta as isStageCopy, jn as isSubmittable, Xi as isTurnInFlight, te as isUnknownFieldError, ut as isVoiceTurn, Ni as isWriteModeAcknowledged, Er as joinSheets, Rt as languageDisplayName, di as largestInlineCharsPerFile, He as mapSessionToHistory, ne as markSupported, re as markUnsupported, Ue as mergeMessagesById, qi as mergePersistedAssistantState, en as micIsInterrupt, Ce as modeRequiresConfirmWrites, aa as msUntilNextPhrase, co as nextActiveTab, zs as nextAssistantOpenState, Ao as nextModeIndex, Va as nextPanelOverlays, Za as nextPreviewEvents, zt as normalizeLangTag, cs as notifyAiCreditsUpdated, Mn as orbMode, Dr as pageMarker, Ha as panelOwnsEscape, pr as parseConfirmationRefusal, fi as parseDataUrl, Or as parseSharedStrings, da as parseToolActivity, kr as parseWorkbookSheets, Ar as pdfTextItemsToPage, lo as pinActiveTab, Zi as planAbandonedTurn, Nn as planReplyConsumption, Qi as planTurnAbort, ir as pollDelayMs, Bt as primaryLanguageSubtag, we as promptGatewayRequestBytes, Bs as publishedAssistantDockWidth, Wi as publishedChunks, T as quotaExhaustedEventName, Vs as readAssistantOverlayFlag, bo as readReducedMotion, Zt as readSpeechEngineConfig, Te as releaseSupersededAssistantSandboxes, ur as replyFollowsInput, Ee as reportAssistantAiTokenUsage, Hs as requestedAssistantOpenState, Gi as requiresCancel, Qt as resetSpeechEngine, Ji as resolveActiveModeSandbox, pi as resolveAssistantInlineLimits, lr as resolveAssistantLanguage, $e as resolveAssistantModeCapabilities, Oi as resolveAssistantSendModeAfterAccess, dr as resolveLanguagePair, n as resolveModeConfig, Q as resolveSandboxAssistantMode, Vi as resolveSpeechLocale, Pi as restoreAcknowledgedWriteModes, xn as rotationElapsedMs, ro as runBelongsTo, oo as runIdentities, io as sameOwner, $ as sandboxBaseModeFor, We as sanitize, De as selectExistingAssistantSandbox, Oe as selectSupersededAssistantSandboxes, Vt as selectVoiceForLocale, ke as sendAssistantPromptAsync, Ae as sendHeartbeat, jr as sheetXmlToRows, At as shouldDisableEngine, uo as shouldPinOnMove, fo as shouldPinOnSelect, Qn as showPreviousChunk, tn as showsAssistantCaption, nn as showsUserCaption, Kn as speakableEmail, Ht as speechGate, zi as speechLabelsFor, Ut as speechLangForLocale, Ki as speechPlaybackReducer, jt as splitForVendor, qn as splitTableRow, Pn as spokenSoFar, pa as spokenTurnText, un as stageText, oa as startPhraseTicker, Sn as startRotationTicker, dn as statusStageCopy, po as stepsFromToolActivity, je as stopReapedAssistantSandbox, at as streamBudgetMs, na as stripLegacyFillerPrefix, xo as subscribeReducedMotion, $t as subscribeSpeechEngine, Mr as summarisePageText, Cn as syncRotationClock, mo as tabForArrowKey, fn as thinkingPhrase, pn as thinkingPhraseEntry, ar as toCaptionText, mi as toMessageAttachment, Jn as toSpeakableText, hi as truncateForInline, Nr as truncatePagesForInline, sa as turnActivityCopy, ca as turnActivityStage, et as unofferedModeSendRefusal, ki as unofferedModeSendRefusalAfterAccess, ns as useAssistantApiAccess, ds as useAssistantAttachments, Ma as useAssistantConnectSource, Ks as useAssistantDockWidth, ms as useAssistantHeartbeat, l as useAssistantI18nNamespace, hs as useAssistantKeyboardShortcuts, x as useAssistantNavigate, qs as useAssistantOverlayOrNull, r as useAssistantPageLabel, qa as useAssistantPreview, Co as useAssistantPreviewBridge, i as useAssistantProduct, a as useAssistantProductOrNull, Js as useAssistantQuotaExhausted, ga as useAssistantSpeech, o as useAssistantStorageFolders, Yi as useAssistantStore, u as useAssistantTr, rs as useConversationTurns, Ua as useDropdownEscape, _o as useOverlayFocus, So as usePrefersReducedMotion, Ke as useSandboxAssistantTransport, e as useVoiceInput, _a as useVoiceSession, ls as useWorkspaceWriteAccess, gi as validateFile, Wt as voiceAvailability, dt as voiceMarker, Xn as voicePreviewText, Gt as voiceQualityRank, ft as voiceSessionIdOf, Fn as voiceSessionReducer, rn as voiceStageState, _n as voiceStatusParts, vn as voiceStatusSuffix, Rn as voiceTranscriptFilename, pt as voiceTurnsOnly, Kt as voicesForLocale, Me as waitForAssistantServiceReady, Ne as waitForSandboxRunning, an as waveformIsActive, on as waveformIsSettled, ot as withIncompleteTurnNotice, Fi as withWriteModeAcknowledged, Us as writeAssistantOverlayFlag, Ii as writeModeConsentCopy, Li as writeModeSendRefusal };
90
+ import { HostedPreviewBridgeContext as wo, panelOwnedPreviewBridge as To, useHostedAssistantPreviewBridge as Eo } from "./shared/assistant/preview/bridgeHostContext.js";
91
+ import { AssistantPreviewBridgeHost as Do } from "./shared/assistant/preview/bridgeHost.js";
92
+ import { AssistantPreviewOverlay as Oo } from "./shared/assistant/preview/AssistantPreviewOverlay.js";
93
+ import { AssistantLanguageSelector as ko, FOLLOW_APP_LOCALE as Ao } from "./shared/assistant/ui/composer/AssistantLanguageSelector.js";
94
+ import { ASSISTANT_MODE_META as jo, AssistantModeSelector as Mo, assistantModeMeta as No, nextModeIndex as Po } from "./shared/assistant/ui/composer/AssistantModeSelector.js";
95
+ import { AssistantVoiceButton as Fo } from "./shared/assistant/ui/composer/AssistantVoiceButton.js";
96
+ import { AUTO_VOICE as Io, AssistantVoiceSelector as Lo } from "./shared/assistant/ui/composer/AssistantVoiceSelector.js";
97
+ import { AssistantVoiceOrb as Ro } from "./shared/assistant/ui/voice/AssistantVoiceOrb.js";
98
+ import { AssistantVoiceSessionButton as zo } from "./shared/assistant/ui/voice/AssistantVoiceSessionButton.js";
99
+ import { CAPTION_SCROLL_ATTR as Bo, VoiceCaption as Vo } from "./shared/assistant/ui/voice/VoiceCaption.js";
100
+ import { VoiceConversationView as Ho } from "./shared/assistant/ui/voice/VoiceConversationView.js";
101
+ import { VoiceWaveform as Uo } from "./shared/assistant/ui/voice/VoiceWaveform.js";
102
+ import { VoiceStatusLine as Wo, VoiceStatusText as Go } from "./shared/assistant/ui/voice/VoiceStatusText.js";
103
+ import { VoiceMiniController as Ko } from "./shared/assistant/ui/voice/VoiceMiniController.js";
104
+ import { VoiceStage as qo } from "./shared/assistant/ui/voice/VoiceStage.js";
105
+ import { VoiceTranscriptDrawer as Jo } from "./shared/assistant/ui/voice/VoiceTranscriptDrawer.js";
106
+ import { downloadFile as Yo, exportConversation as Xo } from "./shared/assistant/exportConversation.js";
107
+ import { AssistantMoreMenu as Zo } from "./shared/assistant/ui/AssistantMoreMenu.js";
108
+ import { AssistantHeader as Qo } from "./shared/assistant/ui/AssistantHeader.js";
109
+ import { AssistantConversationList as $o } from "./shared/assistant/ui/AssistantConversationList.js";
110
+ import { AssistantEmptyState as es } from "./shared/assistant/ui/AssistantEmptyState.js";
111
+ import { AssistantTurnActivity as ts, TurnActivityLine as ns } from "./shared/assistant/ui/AssistantTurnActivity.js";
112
+ import { AssistantMessageItem as rs } from "./shared/assistant/ui/AssistantMessageItem.js";
113
+ import { AssistantMessageList as is } from "./shared/assistant/ui/AssistantMessageList.js";
114
+ import { AssistantVoiceSession as as } from "./shared/assistant/ui/voice/AssistantVoiceSession.js";
115
+ import { useAssistantApiAccess as os } from "./shared/assistant/useAssistantApiAccess.js";
116
+ import { useConversationTurns as ss } from "./shared/assistant/useConversationTurns.js";
117
+ import { isMultimodalBodyRejection as cs, isRecoverableAssistantError as ls } from "./shared/assistant/transportErrors.js";
118
+ import { aiCreditsUpdatedEventName as us, dispatchAssistantQuotaExhausted as ds, notifyAiCreditsUpdated as fs } from "./shared/assistant/aiCredits.js";
119
+ import { useWorkspaceWriteAccess as ps } from "./shared/assistant/useWorkspaceWriteAccess.js";
120
+ import { extractDocumentText as ms } from "./shared/assistant/documentExtract.js";
121
+ import { useAssistantAttachments as hs } from "./shared/assistant/useAssistantAttachments.js";
122
+ import { AssistantComposer as gs } from "./shared/assistant/ui/composer/AssistantComposer.js";
123
+ import { isProdRuntime as _s } from "./shared/assistant/env.js";
124
+ import { useAssistantHeartbeat as vs } from "./shared/assistant/useAssistantHeartbeat.js";
125
+ import { useAssistantKeyboardShortcuts as ys } from "./shared/assistant/useAssistantKeyboardShortcuts.js";
126
+ import { AssistantApiCallsConsentDialog as bs } from "./shared/assistant/ui/AssistantApiCallsConsentDialog.js";
127
+ import { AssistantChatArea as xs } from "./shared/assistant/ui/AssistantChatArea.js";
128
+ import { AIAssistantPanel as Ss } from "./shared/assistant/ui/AIAssistantPanel.js";
129
+ import { ASSISTANT_BOTTOM_CHROME_CLEARANCE as Cs, ASSISTANT_DIALOG_SELECTOR as ws, ASSISTANT_DOCKED_DESKTOP_CLASS as Ts, ASSISTANT_DOCK_WIDTH_PX as Es, ASSISTANT_DOCK_WIDTH_VAR as Ds, ASSISTANT_FLOATING_DESKTOP_CLASS as Os, ASSISTANT_OVERLAY_DEFAULT_TOP_PX as ks, ASSISTANT_OVERLAY_DESKTOP_QUERY as As, ASSISTANT_OVERLAY_TOP_VAR as js, ASSISTANT_SHEET_BASE_CLASS as Ms, ASSISTANT_SHEET_COMPACT_CLASS as Ns, ASSISTANT_SHEET_EXPANDED_CLASS as Ps, ASSISTANT_TOGGLE_SHORTCUT_LABEL as Fs, aboveAssistantBottomChrome as Is, assistantOverlayClassName as Ls, assistantOverlayEscapeAction as Rs, assistantOverlayKeys as zs, assistantQuotaKindOf as Bs, createAssistantNavigate as Vs, isAssistantToggleShortcut as Hs, nextAssistantOpenState as Us, publishedAssistantDockWidth as Ws, readAssistantOverlayFlag as Gs, requestedAssistantOpenState as Ks, writeAssistantOverlayFlag as qs } from "./shared/assistant/ui/assistantOverlayState.js";
130
+ import { AssistantOverlay as Js, AssistantOverlayProvider as Ys, useAssistantDockWidth as Xs, useAssistantOverlayOrNull as Zs, useAssistantQuotaExhausted as Qs } from "./shared/assistant/ui/AssistantOverlay.js";
131
+ export { Ti as ADMIN_MODE_ACCESS_WAIT_MS, Ss as AIAssistantPanel, q as ASSISTANT_API_AUTH_STRATEGY, Cs as ASSISTANT_BOTTOM_CHROME_CLEARANCE, ws as ASSISTANT_DIALOG_SELECTOR, Ts as ASSISTANT_DOCKED_DESKTOP_CLASS, Es as ASSISTANT_DOCK_WIDTH_PX, Ds as ASSISTANT_DOCK_WIDTH_VAR, Os as ASSISTANT_FLOATING_DESKTOP_CLASS, bi as ASSISTANT_I18N_COMPUTED_COPY, xi as ASSISTANT_I18N_LITERAL_COPY, Si as ASSISTANT_I18N_MANIFEST, or as ASSISTANT_LANGUAGES, L as ASSISTANT_MODE_FALLBACK_LABELS, R as ASSISTANT_MODE_IDS, jo as ASSISTANT_MODE_META, Pa as ASSISTANT_OVERLAY_ATTR, ks as ASSISTANT_OVERLAY_DEFAULT_TOP_PX, As as ASSISTANT_OVERLAY_DESKTOP_QUERY, js as ASSISTANT_OVERLAY_TOP_VAR, Fa as ASSISTANT_PANEL_ATTR, Ms as ASSISTANT_SHEET_BASE_CLASS, Ns as ASSISTANT_SHEET_COMPACT_CLASS, Ps as ASSISTANT_SHEET_EXPANDED_CLASS, Fs as ASSISTANT_TOGGLE_SHORTCUT_LABEL, Pr as ATTACHMENT_ACCEPT, _i as ATTACHMENT_SOURCES, Io as AUTO_VOICE, bs as AssistantApiCallsConsentDialog, Wa as AssistantAttachmentButton, Ga as AssistantAttachmentChips, wa as AssistantAutoSpeakToggle, ma as AssistantAvatar, xs as AssistantChatArea, gs as AssistantComposer, Na as AssistantConnectSourceItem, ja as AssistantConnectSourceProvider, $o as AssistantConversationList, es as AssistantEmptyState, go as AssistantEntityPreview, Qo as AssistantHeader, s as AssistantI18nProvider, Da as AssistantLanguageMenu, ko as AssistantLanguageSelector, f as AssistantMarkdownImage, h as AssistantMarkdownRenderer, Ta as AssistantMessageAttachments, rs as AssistantMessageItem, is as AssistantMessageList, Mo as AssistantModeSelector, Zo as AssistantMoreMenu, g as AssistantNavigateProvider, Js as AssistantOverlay, Ys as AssistantOverlayProvider, Ea as AssistantPendingWriteCard, Do as AssistantPreviewBridgeHost, Oo as AssistantPreviewOverlay, Ka as AssistantPreviewProvider, t as AssistantProductProvider, Oa as AssistantReplyLanguageSelector, Pe as AssistantRuntimeManager, ka as AssistantSpeakButton, ha as AssistantSpeechProvider, Aa as AssistantSpokenTurnsNotice, ho as AssistantStepRail, ua as AssistantToolActivity, ts as AssistantTurnActivity, Fo as AssistantVoiceButton, Ro as AssistantVoiceOrb, Lo as AssistantVoiceSelector, as as AssistantVoiceSession, zo as AssistantVoiceSessionButton, Fr as AttachmentRejectedError, mr as BOILERPLATE_PAGE_SHARE, qe as BUILT_IN_MODE_CAPABILITIES, Bo as CAPTION_SCROLL_ATTR, O as CHECK_AI_CREDITS, k as CREATE_SANDBOX, Ir as DEFAULT_INLINE_LIMITS, zn as DEFAULT_SPEAKABLE_LABELS, sr as DEFAULT_SPEECH_RATE, tt as DEFAULT_STREAM_BUDGET_MS, wn as ENDPOINT_GRACE_MS, A as EXTEND_SANDBOX_TTL, Ao as FOLLOW_APP_LOCALE, j as GET_ACTIVE_SANDBOXES, M as GET_SANDBOX, yt as HOSTED_DISABLE_MS, bt as HOSTED_TTS_MAX_CHARS, ht as HOSTED_TTS_TIER, gt as HOSTED_VOICES, Nt as HOSTED_VOICE_RANK, wo as HostedPreviewBridgeContext, so as IDLE_ACTIVE_TAB, Hi as IDLE_PLAYBACK, Qa as IDLE_PREVIEW, Ja as IDLE_PREVIEW_STATE, yn as IDLE_ROTATION_CLOCK, nt as INCOMPLETE_TURN_NOTICES, Tn as INITIAL_SESSION, Lr as INLINE_IMAGE_MAX_DIM, Rr as INLINE_IMAGE_QUALITY, En as INTERRUPT_MAX_MS, Dn as INTERRUPT_MIN_MS, ji as LEGACY_WRITE_CONSENT_KEY, Je as MAX_ASSISTANT_STREAM_BUDGET_MS, zr as MAX_ATTACHMENTS, hr as MAX_BOILERPLATE_LINE_CHARS, Br as MAX_CONFIGURABLE_INLINE_CHARS, gr as MAX_EXTRACTED_CHARS, Vr as MAX_FILE_BYTES, Hr as MAX_INLINE_CHARS_PER_FILE, Ur as MAX_INLINE_CHARS_TOTAL, ie as MAX_INLINE_IMAGE_BASE64_BYTES, Wr as MAX_INLINE_IMAGE_BASE64_CHARS, Gr as MAX_INLINE_IMAGE_PARTS, Kr as MAX_INLINE_TURN_BODY_BYTES, _r as MAX_PDF_PAGES_SCANNED, ae as MAX_REQUEST_BODY_BYTES, Bn as MAX_SPEAKABLE_CHARS, Vn as MAX_SPOKEN_TABLE_ROWS, qr as MAX_TURN_BODY_BYTES, Zn as MINI_CAPTION_BUDGET, vr as MIN_PAGE_TEXT_CHARS, yr as MIN_TEXT_PAGE_SHARE, $a as NO_OWNER, Ia as NO_PANEL_OVERLAY, sn as PHRASE_ROTATE_MS, $n as POLL_FAST_MS, er as POLL_FAST_UNTIL_MS, tr as POLL_SLOW_MS, nr as POLL_STEADY_MS, rr as POLL_STEADY_UNTIL_MS, Yn as PREVIEW_LANGUAGES, V as PRODUCT_ASSISTANT_MODE_ID_MAX_LENGTH, H as PRODUCT_ASSISTANT_MODE_ID_PATTERN, Jr as PROMPT_ENVELOPE_RESERVE_BYTES, Yr as PROVIDER_READABLE_FILE_MEDIA_TYPES, N as PROXY_SANDBOX_REQUEST, vo as REDUCED_MOTION_ATTRIBUTE, yo as REDUCED_MOTION_QUERY, P as REPORT_AI_TOKEN_USAGE, oe as REQUEST_TOO_LARGE_REFUSAL, xa as SANDBOX_READY_TTL_MS, On as SILENCE_SUBMIT_MS, xt as SPEAKING_RATE_MAX, St as SPEAKING_RATE_MAX_STREAMING, Ct as SPEAKING_RATE_MAX_SYNC, wt as SPEAKING_RATE_MIN, Hn as SPEECH_CHUNK_CHARS, Un as SPEECH_CHUNK_CJK_CHARS, Pt as SPEECH_LANG, Ri as SPOKEN_LABEL_LANGUAGES, cn as STAGE_COPY, F as STOP_ASSISTANT_SANDBOX, rt as STREAM_BUDGET_MS, Mi as TAKE_ACTION_ENGLISH, ln as THINKING_PHRASES, Xr as TURN_BODY_HEADROOM_BYTES, ns as TurnActivityLine, Ye as UNAVAILABLE_MODE_REFUSAL, Xe as UNDECLARED_MODE_CAPABILITIES, Ft as VOICE_LIST_TIMEOUT_MS, mn as VOICE_MUTED_LABEL, hn as VOICE_THINKING_LABEL, Vo as VoiceCaption, Ho as VoiceConversationView, Ko as VoiceMiniController, qo as VoiceStage, Wo as VoiceStatusLine, Go as VoiceStatusText, Jo as VoiceTranscriptDrawer, Uo as VoiceWaveform, I as WAIT_FOR_SANDBOX_RUNNING, se as abortAssistantTurn, Is as aboveAssistantBottomChrome, La as activePanelOverlay, Ze as adminOnlyModeSendRefusal, Ei as adminOnlyModeSendRefusalAfterAccess, bn as advanceRotationClock, us as aiCreditsUpdatedEventName, eo as applyPreviewEvent, ce as approvePendingWrite, Ci as assistantI18nSeedCopy, z as assistantModeFallbackLabel, wi as assistantModeI18nCopy, No as assistantModeMeta, Ls as assistantOverlayClassName, Rs as assistantOverlayEscapeAction, zs as assistantOverlayKeys, Ra as assistantPanelOwnsEscape, Bs as assistantQuotaKindOf, _ as assistantRoutePath, c as assistantTranslationKey, v as assistantUrlTransform, vi as availableAttachmentSources, Tt as base64ToBytes, y as browserShouldHandle, mt as browserSpeechEngine, la as buildAssistantProgress, le as buildAssistantSandboxEnv, Zr as buildAttachmentPromptBlock, Ai as buildBoundedAttachmentTurn, In as buildContinuedFromVoiceNote, Fe as buildProgress, ue as buildPromptGatewayRequest, Qr as buildPromptParts, de as buildPromptRequestBody, $r as buildPromptWithAttachments, Et as buildRequest, E as buildSandboxContextInput, Ln as buildVoiceTranscriptMarkdown, U as builtInModeExtendedBy, st as chatTurns, fe as checkAssistantAiCredits, Wn as chunkForSpeech, b as classifyAssistantHref, ei as classifyAttachment, Dt as classifyHttpFailure, S as classifyQuotaError, br as columnLetterToIndex, gn as composeVoiceStatus, Jt as configureSpeechEngine, Gn as containsCjk, d as copyToClipboard, ti as countInlineImageCandidates, ni as countInlinedImageParts, fa as countSpokenTurns, Di as createAdminModeAccessGate, Vs as createAssistantNavigate, to as createAssistantPreviewSurface, pe as createAssistantSandbox, me as createAssistantSession, Mt as createHostedTtsEngine, Sa as createReadinessTracker, qt as createRoutingSpeechEngine, ao as createRunIdentityCache, Ge as createSandboxAssistantTransport, Yt as createSpeechEngines, no as currentPreviewOwner, W as declareAssistantMode, Ot as decodeAudioResponse, xr as decodeXmlEntities, C as describeQuotaError, ri as detectDocumentFormat, Bi as detectScriptLocale, yi as deviceHasCamera, kt as disableDurationMs, ds as dispatchAssistantQuotaExhausted, Sr as docxXmlToText, he as downloadAssistantArtifact, Yo as downloadFile, ia as elapsedSince, za as escapeDismisses, ii as estimateTurnBodyBytes, D as executeSandboxGraphQL, Xo as exportConversation, ge as extendAssistantSandboxTTL, ms as extractDocumentText, cr as findAssistantLanguage, Qe as findAssistantModeConfig, _e as findExistingSandbox, fr as findPendingWrite, Cr as fitPdfPages, Ba as focusIsInsidePanel, ai as formatBytes, wr as formatPageRanges, ve as forwardsUserTokensToSandbox, va as getActorId, ye as getAssistantArtifacts, ra as getAssistantDisplayContent, Ie as getAssistantMedia, be as getAssistantMessages, xe as getAssistantSession, Se as getAssistantStreamAccess, Le as getAssistantText, oi as getAttachmentSendBlocker, ee as getCapability, si as getExtension, J as getImageForMode, Y as getImageTagForMode, ya as getOrganizationId, Re as getRawMessageCreatedAt, X as getResourcesForMode, Z as getSandboxImageRegistry, ci as getSendableAttachments, Xt as getSpeechEngine, ze as getToolProgress, ba as getWorkspaceId, ct as groupBySession, lt as groupConsecutiveBySession, li as hasAttachmentWorkInFlight, _t as hostedLocaleFor, vt as hostedSupportsLanguage, p as imageHostLabel, it as incompleteTurnNotice, G as isAssistantModeId, Hs as isAssistantToggleShortcut, Ya as isBlankProse, B as isBuiltInAssistantMode, kn as isCapturing, An as isEcho, It as isHostedVoice, $i as isLegacyFiller, ea as isLegacyStopped, Tr as isMostlyImagePages, cs as isMultimodalBodyRejection, _s as isProdRuntime, K as isProductAssistantModeId, ui as isProviderReadableFilePart, w as isQuotaExhaustedError, Be as isReapedSandboxConnectionError, Ca as isRecentlyVerified, Ve as isRecoverable, ls as isRecoverableAssistantError, m as isRemoteImageSrc, Xa as isRunningStatus, Ui as isSpeakingMessage, Lt as isSpeechBlocked, ta as isStageCopy, jn as isSubmittable, Xi as isTurnInFlight, te as isUnknownFieldError, ut as isVoiceTurn, Ni as isWriteModeAcknowledged, Er as joinSheets, Rt as languageDisplayName, di as largestInlineCharsPerFile, He as mapSessionToHistory, ne as markSupported, re as markUnsupported, Ue as mergeMessagesById, qi as mergePersistedAssistantState, en as micIsInterrupt, Ce as modeRequiresConfirmWrites, aa as msUntilNextPhrase, co as nextActiveTab, Us as nextAssistantOpenState, Po as nextModeIndex, Va as nextPanelOverlays, Za as nextPreviewEvents, zt as normalizeLangTag, fs as notifyAiCreditsUpdated, Mn as orbMode, Dr as pageMarker, To as panelOwnedPreviewBridge, Ha as panelOwnsEscape, pr as parseConfirmationRefusal, fi as parseDataUrl, Or as parseSharedStrings, da as parseToolActivity, kr as parseWorkbookSheets, Ar as pdfTextItemsToPage, lo as pinActiveTab, Zi as planAbandonedTurn, Nn as planReplyConsumption, Qi as planTurnAbort, ir as pollDelayMs, Bt as primaryLanguageSubtag, we as promptGatewayRequestBytes, Ws as publishedAssistantDockWidth, Wi as publishedChunks, T as quotaExhaustedEventName, Gs as readAssistantOverlayFlag, bo as readReducedMotion, Zt as readSpeechEngineConfig, Te as releaseSupersededAssistantSandboxes, ur as replyFollowsInput, Ee as reportAssistantAiTokenUsage, Ks as requestedAssistantOpenState, Gi as requiresCancel, Qt as resetSpeechEngine, Ji as resolveActiveModeSandbox, pi as resolveAssistantInlineLimits, lr as resolveAssistantLanguage, $e as resolveAssistantModeCapabilities, Oi as resolveAssistantSendModeAfterAccess, dr as resolveLanguagePair, n as resolveModeConfig, Q as resolveSandboxAssistantMode, Vi as resolveSpeechLocale, Pi as restoreAcknowledgedWriteModes, xn as rotationElapsedMs, ro as runBelongsTo, oo as runIdentities, io as sameOwner, $ as sandboxBaseModeFor, We as sanitize, De as selectExistingAssistantSandbox, Oe as selectSupersededAssistantSandboxes, Vt as selectVoiceForLocale, ke as sendAssistantPromptAsync, Ae as sendHeartbeat, jr as sheetXmlToRows, At as shouldDisableEngine, uo as shouldPinOnMove, fo as shouldPinOnSelect, Qn as showPreviousChunk, tn as showsAssistantCaption, nn as showsUserCaption, Kn as speakableEmail, Ht as speechGate, zi as speechLabelsFor, Ut as speechLangForLocale, Ki as speechPlaybackReducer, jt as splitForVendor, qn as splitTableRow, Pn as spokenSoFar, pa as spokenTurnText, un as stageText, oa as startPhraseTicker, Sn as startRotationTicker, dn as statusStageCopy, po as stepsFromToolActivity, je as stopReapedAssistantSandbox, at as streamBudgetMs, na as stripLegacyFillerPrefix, xo as subscribeReducedMotion, $t as subscribeSpeechEngine, Mr as summarisePageText, Cn as syncRotationClock, mo as tabForArrowKey, fn as thinkingPhrase, pn as thinkingPhraseEntry, ar as toCaptionText, mi as toMessageAttachment, Jn as toSpeakableText, hi as truncateForInline, Nr as truncatePagesForInline, sa as turnActivityCopy, ca as turnActivityStage, et as unofferedModeSendRefusal, ki as unofferedModeSendRefusalAfterAccess, os as useAssistantApiAccess, hs as useAssistantAttachments, Ma as useAssistantConnectSource, Xs as useAssistantDockWidth, vs as useAssistantHeartbeat, l as useAssistantI18nNamespace, ys as useAssistantKeyboardShortcuts, x as useAssistantNavigate, Zs as useAssistantOverlayOrNull, r as useAssistantPageLabel, qa as useAssistantPreview, Co as useAssistantPreviewBridge, i as useAssistantProduct, a as useAssistantProductOrNull, Qs as useAssistantQuotaExhausted, ga as useAssistantSpeech, o as useAssistantStorageFolders, Yi as useAssistantStore, u as useAssistantTr, ss as useConversationTurns, Ua as useDropdownEscape, Eo as useHostedAssistantPreviewBridge, _o as useOverlayFocus, So as usePrefersReducedMotion, Ke as useSandboxAssistantTransport, e as useVoiceInput, _a as useVoiceSession, ps as useWorkspaceWriteAccess, gi as validateFile, Wt as voiceAvailability, dt as voiceMarker, Xn as voicePreviewText, Gt as voiceQualityRank, ft as voiceSessionIdOf, Fn as voiceSessionReducer, rn as voiceStageState, _n as voiceStatusParts, vn as voiceStatusSuffix, Rn as voiceTranscriptFilename, pt as voiceTurnsOnly, Kt as voicesForLocale, Me as waitForAssistantServiceReady, Ne as waitForSandboxRunning, an as waveformIsActive, on as waveformIsSettled, ot as withIncompleteTurnNotice, Fi as withWriteModeAcknowledged, qs as writeAssistantOverlayFlag, Ii as writeModeConsentCopy, Li as writeModeSendRefusal };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/fe-libs",
3
- "version": "2026.920.2",
3
+ "version": "2026.920.3",
4
4
  "description": "Burdenoff frontend primitives and domain libraries",
5
5
  "type": "module",
6
6
  "bin": {