@burdenoff/fe-libs 2026.1013.13 → 2026.1014.1

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 (48) hide show
  1. package/dist/chrome/AppShellLayout.js +17 -8
  2. package/dist/shared/assistant/avatar/live/LiveAvatarStage.d.ts +15 -0
  3. package/dist/shared/assistant/avatar/live/LiveAvatarStage.js +139 -0
  4. package/dist/shared/assistant/avatar/live/avatarAudioDecode.d.ts +40 -0
  5. package/dist/shared/assistant/avatar/live/avatarAudioDecode.js +72 -0
  6. package/dist/shared/assistant/avatar/live/avatarAudioErrors.d.ts +25 -0
  7. package/dist/shared/assistant/avatar/live/avatarAudioErrors.js +27 -0
  8. package/dist/shared/assistant/avatar/live/avatarAudioMeter.d.ts +37 -0
  9. package/dist/shared/assistant/avatar/live/avatarAudioMeter.js +62 -0
  10. package/dist/shared/assistant/avatar/live/avatarMp3Inspect.d.ts +30 -0
  11. package/dist/shared/assistant/avatar/live/avatarMp3Inspect.js +168 -0
  12. package/dist/shared/assistant/avatar/live/avatarPcm16.d.ts +21 -0
  13. package/dist/shared/assistant/avatar/live/avatarPcm16.js +54 -0
  14. package/dist/shared/assistant/avatar/live/avatarPlaybackTracker.d.ts +181 -0
  15. package/dist/shared/assistant/avatar/live/avatarPlaybackTracker.js +221 -0
  16. package/dist/shared/assistant/avatar/live/avatarPorts.d.ts +66 -0
  17. package/dist/shared/assistant/avatar/live/avatarPorts.js +44 -0
  18. package/dist/shared/assistant/avatar/live/avatarProtocol.d.ts +22 -0
  19. package/dist/shared/assistant/avatar/live/avatarProtocol.js +27 -0
  20. package/dist/shared/assistant/avatar/live/avatarReplyOutputs.d.ts +170 -0
  21. package/dist/shared/assistant/avatar/live/avatarReplyOutputs.js +525 -0
  22. package/dist/shared/assistant/avatar/live/avatarSessionClient.d.ts +96 -0
  23. package/dist/shared/assistant/avatar/live/avatarSessionClient.js +261 -0
  24. package/dist/shared/assistant/avatar/live/avatarTransport.d.ts +270 -0
  25. package/dist/shared/assistant/avatar/live/avatarTransport.js +333 -0
  26. package/dist/shared/assistant/avatar/live/avatarTransportPort.d.ts +17 -0
  27. package/dist/shared/assistant/avatar/live/avatarTransportPort.js +27 -0
  28. package/dist/shared/assistant/avatar/live/createLiveAvatarSeam.d.ts +44 -0
  29. package/dist/shared/assistant/avatar/live/createLiveAvatarSeam.js +124 -0
  30. package/dist/shared/assistant/avatar/live/liveAvatarController.d.ts +133 -0
  31. package/dist/shared/assistant/avatar/live/liveAvatarController.js +488 -0
  32. package/dist/shared/assistant/avatar/live/liveAvatarStatus.d.ts +4 -0
  33. package/dist/shared/assistant/avatar/live/liveAvatarStatus.js +14 -0
  34. package/dist/shared/assistant/avatar/live/liveKitAvatarRoom.d.ts +6 -0
  35. package/dist/shared/assistant/avatar/live/liveKitAvatarRoom.js +86 -0
  36. package/dist/shared/assistant/avatar/useAvatarCopy.d.ts +2 -0
  37. package/dist/shared/assistant/avatar/useAvatarCopy.js +1 -0
  38. package/dist/shared/assistant/i18nManifest.d.ts +1 -0
  39. package/dist/shared/assistant/i18nManifest.js +1 -0
  40. package/dist/shared/assistant/index.d.ts +17 -0
  41. package/dist/shared/assistant/speech/hostedTtsSpeechEngine.d.ts +37 -0
  42. package/dist/shared/assistant/speech/hostedTtsSpeechEngine.js +118 -63
  43. package/dist/shared/assistant/speech/types.d.ts +14 -2
  44. package/dist/shared/assistant/ui/AssistantOverlay.js +98 -95
  45. package/dist/shared/assistant/ui/assistantOverlayState.d.ts +12 -0
  46. package/dist/shared/assistant/ui/assistantOverlayState.js +14 -14
  47. package/dist/shared-assistant.js +250 -233
  48. package/package.json +1 -1
@@ -2,92 +2,92 @@ 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
4
  import { AssistantPreviewBridgeHost as r } from "../preview/bridgeHost.js";
5
- import { ASSISTANT_DOCK_WIDTH_VAR as i, ASSISTANT_OVERLAY_DESKTOP_QUERY as a, ASSISTANT_OVERLAY_TOP_VAR as o, ASSISTANT_PANEL_INSET_VAR as s, aboveAssistantBottomChrome as c, assistantOverlayClassName as l, assistantOverlayEscapeAction as u, assistantOverlayKeys as d, assistantQuotaKindOf as f, closestAround as p, createAssistantNavigate as m, isAssistantToggleShortcut as h, nextAssistantOpenState as g, publishedAssistantDockWidth as _, publishedAssistantPanelInset as v, readAssistantOverlayFlag as y, requestedAssistantOpenState as b, writeAssistantOverlayFlag as x } from "./assistantOverlayState.js";
6
- import { useAssistantServerHistory as S } from "../history/useAssistantServerHistory.js";
7
- import { AIAssistantPanel as C } from "./AIAssistantPanel.js";
8
- import { createContext as w, useCallback as T, useContext as E, useEffect as D, useMemo as O, useRef as k, useState as A, useSyncExternalStore as j } from "react";
9
- import { Sparkles as M } from "lucide-react";
10
- import { jsx as N, jsxs as P } from "react/jsx-runtime";
5
+ import { ASSISTANT_DOCK_WIDTH_VAR as i, ASSISTANT_OVERLAY_DESKTOP_QUERY as a, ASSISTANT_OVERLAY_TOP_VAR as o, ASSISTANT_PANEL_INSET_VAR as s, ASSISTANT_SHEET_BOTTOM_VAR as c, aboveAssistantBottomChrome as l, assistantOverlayClassName as u, assistantOverlayEscapeAction as d, assistantOverlayKeys as f, assistantQuotaKindOf as p, closestAround as m, createAssistantNavigate as h, isAssistantToggleShortcut as g, nextAssistantOpenState as _, publishedAssistantDockWidth as v, publishedAssistantPanelInset as y, readAssistantOverlayFlag as b, requestedAssistantOpenState as x, writeAssistantOverlayFlag as S } from "./assistantOverlayState.js";
6
+ import { useAssistantServerHistory as C } from "../history/useAssistantServerHistory.js";
7
+ import { AIAssistantPanel as w } from "./AIAssistantPanel.js";
8
+ import { createContext as T, useCallback as E, useContext as D, useEffect as O, useMemo as k, useRef as A, useState as j, useSyncExternalStore as M } from "react";
9
+ import { Sparkles as N } from "lucide-react";
10
+ import { jsx as P, jsxs as F } from "react/jsx-runtime";
11
11
  //#region src/shared/assistant/ui/AssistantOverlay.tsx
12
- var F = w(null);
13
- function I() {
14
- return E(F);
15
- }
12
+ var I = T(null);
16
13
  function L() {
17
- return E(F)?.dockWidthPx ?? 0;
14
+ return D(I);
18
15
  }
19
16
  function R() {
20
- return E(F)?.panelInsetPx ?? 0;
17
+ return D(I)?.dockWidthPx ?? 0;
18
+ }
19
+ function z() {
20
+ return D(I)?.panelInsetPx ?? 0;
21
21
  }
22
- var z = () => typeof window > "u" ? void 0 : window.sessionStorage, B = () => typeof window > "u" ? void 0 : window.localStorage;
23
- function V(e) {
22
+ var B = () => typeof window > "u" ? void 0 : window.sessionStorage, V = () => typeof window > "u" ? void 0 : window.localStorage;
23
+ function H(e) {
24
24
  if (typeof window > "u" || typeof window.matchMedia != "function") return () => {};
25
25
  let t = window.matchMedia(a);
26
26
  return t.addEventListener("change", e), () => t.removeEventListener("change", e);
27
27
  }
28
- function H() {
28
+ function U() {
29
29
  return typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(min-width: 640px)").matches;
30
30
  }
31
- function U() {
32
- return j(V, H, () => !1);
31
+ function W() {
32
+ return M(H, U, () => !1);
33
33
  }
34
- function W(e, n) {
35
- let r = k(n);
36
- D(() => {
34
+ function G(e, n) {
35
+ let r = A(n);
36
+ O(() => {
37
37
  r.current = n;
38
- }, [n]), D(() => {
38
+ }, [n]), O(() => {
39
39
  if (!e || typeof window > "u") return;
40
- let n = t(e), i = (e) => r.current(f(e), e);
40
+ let n = t(e), i = (e) => r.current(p(e), e);
41
41
  return window.addEventListener(n, i), () => window.removeEventListener(n, i);
42
42
  }, [e]);
43
43
  }
44
- var G = () => {};
45
- function K({ keyPrefix: e, quota: t, children: n }) {
46
- let r = O(() => d(e), [e]), [a, o] = A(() => y(z, r.openStorageKey)), [c, l] = A(() => y(B, r.dockStorageKey)), u = T(() => o(!0), []), f = T(() => o(!1), []), p = T(() => o((e) => !e), []), m = T(() => l((e) => !e), []);
47
- D(() => {
48
- x(z, r.openStorageKey, a);
49
- }, [r.openStorageKey, a]), D(() => {
50
- x(B, r.dockStorageKey, c);
51
- }, [r.dockStorageKey, c]), D(() => {
44
+ var K = () => {};
45
+ function q({ keyPrefix: e, quota: t, children: n }) {
46
+ let r = k(() => f(e), [e]), [a, o] = j(() => b(B, r.openStorageKey)), [c, l] = j(() => b(V, r.dockStorageKey)), u = E(() => o(!0), []), d = E(() => o(!1), []), p = E(() => o((e) => !e), []), m = E(() => l((e) => !e), []);
47
+ O(() => {
48
+ S(B, r.openStorageKey, a);
49
+ }, [r.openStorageKey, a]), O(() => {
50
+ S(V, r.dockStorageKey, c);
51
+ }, [r.dockStorageKey, c]), O(() => {
52
52
  if (typeof window > "u") return;
53
53
  let e = (e) => {
54
- let t = b(e);
55
- o((e) => g(e, t));
54
+ let t = x(e);
55
+ o((e) => _(e, t));
56
56
  };
57
57
  return window.addEventListener(r.toggleEvent, e), () => window.removeEventListener(r.toggleEvent, e);
58
- }, [r.toggleEvent]), D(() => {
58
+ }, [r.toggleEvent]), O(() => {
59
59
  if (typeof document > "u") return;
60
60
  let e = (e) => {
61
- h(e) && (e.preventDefault(), o((e) => !e));
61
+ g(e) && (e.preventDefault(), o((e) => !e));
62
62
  };
63
63
  return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
64
- }, []), W(t?.product ?? null, t?.onExhausted ?? G);
65
- let S = U(), C = _({
64
+ }, []), G(t?.product ?? null, t?.onExhausted ?? K);
65
+ let h = W(), C = v({
66
66
  isOpen: a,
67
67
  docked: c,
68
- isDesktop: S
69
- }), w = v({
68
+ isDesktop: h
69
+ }), w = y({
70
70
  isOpen: a,
71
71
  docked: c,
72
- isDesktop: S
72
+ isDesktop: h
73
73
  });
74
- D(() => {
74
+ O(() => {
75
75
  if (typeof document > "u") return;
76
76
  let e = document.documentElement.style;
77
77
  return e.setProperty(i, `${C}px`), () => {
78
78
  e.removeProperty(i);
79
79
  };
80
- }, [C]), D(() => {
80
+ }, [C]), O(() => {
81
81
  if (typeof document > "u") return;
82
82
  let e = document.documentElement.style;
83
83
  return e.setProperty(s, `${w}px`), () => {
84
84
  e.removeProperty(s);
85
85
  };
86
86
  }, [w]);
87
- let E = O(() => ({
87
+ let T = k(() => ({
88
88
  isOpen: a,
89
89
  open: u,
90
- close: f,
90
+ close: d,
91
91
  toggle: p,
92
92
  docked: c,
93
93
  toggleDock: m,
@@ -97,7 +97,7 @@ function K({ keyPrefix: e, quota: t, children: n }) {
97
97
  }), [
98
98
  a,
99
99
  u,
100
- f,
100
+ d,
101
101
  p,
102
102
  c,
103
103
  m,
@@ -105,87 +105,90 @@ function K({ keyPrefix: e, quota: t, children: n }) {
105
105
  w,
106
106
  r
107
107
  ]);
108
- return /* @__PURE__ */ N(F.Provider, {
109
- value: E,
108
+ return /* @__PURE__ */ P(I.Provider, {
109
+ value: T,
110
110
  children: n
111
111
  });
112
112
  }
113
- var q = (e, t) => /* @__PURE__ */ N(C, {
113
+ var J = (e, t) => /* @__PURE__ */ P(w, {
114
114
  ...e,
115
115
  ...t
116
116
  });
117
- function J(e) {
118
- let t = I();
119
- return t ? /* @__PURE__ */ N(Y, {
117
+ function Y(e) {
118
+ let t = L();
119
+ return t ? /* @__PURE__ */ P(X, {
120
120
  state: t,
121
121
  ...e
122
122
  }) : null;
123
123
  }
124
- function Y({ state: t, panelId: i = "ai-assistant", panelProps: a, renderPanel: s, navigate: d, isShellLessTarget: f, topOffsetPx: h = 56, launcherIcon: g, launcherBottomInset: _ = "1.5rem", showLauncher: v = !0 }) {
125
- let { isOpen: y, close: b, toggle: x, docked: C, toggleDock: w } = t, T = e();
126
- S(a?.serverHistory === !0);
127
- let [E, k] = A(!1), j = O(() => d ? m({
128
- navigate: d,
129
- isShellLessTarget: f,
130
- isDesktop: H,
131
- collapseSheet: () => k(!1),
124
+ function X({ state: t, panelId: i = "ai-assistant", panelProps: a, renderPanel: s, navigate: f, isShellLessTarget: p, topOffsetPx: g = 56, launcherIcon: _, launcherBottomInset: v = "1.5rem", showLauncher: y = !0 }) {
125
+ let { isOpen: b, close: x, toggle: S, docked: w, toggleDock: T } = t, E = e();
126
+ C(a?.serverHistory === !0);
127
+ let [D, A] = j(!1), M = k(() => f ? h({
128
+ navigate: f,
129
+ isShellLessTarget: p,
130
+ isDesktop: U,
131
+ collapseSheet: () => A(!1),
132
132
  openInNewTab: (e) => window.open(e, "_blank", "noopener,noreferrer")
133
- }) : void 0, [d, f]);
134
- D(() => {
135
- if (!y) return;
133
+ }) : void 0, [f, p]);
134
+ O(() => {
135
+ if (!b) return;
136
136
  let e = (e) => {
137
- u({
137
+ d({
138
138
  key: e.key,
139
- isOpen: y,
139
+ isOpen: b,
140
140
  alreadyHandled: e.defaultPrevented,
141
141
  dialogOpen: document.querySelector("[role=\"dialog\"],[role=\"alertdialog\"],dialog[open]") !== null,
142
- pressedInsideDialog: p(e.target, "[role=\"dialog\"],[role=\"alertdialog\"],dialog[open]") !== null,
142
+ pressedInsideDialog: m(e.target, "[role=\"dialog\"],[role=\"alertdialog\"],dialog[open]") !== null,
143
143
  panelOwnsEscape: n()
144
- }) === "close" && (e.preventDefault(), b());
144
+ }) === "close" && (e.preventDefault(), x());
145
145
  };
146
146
  return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
147
- }, [y, b]);
148
- let F = {
147
+ }, [b, x]);
148
+ let I = {
149
149
  panelId: i,
150
150
  visible: !0,
151
- onClose: b,
152
- docked: C,
153
- onToggleDock: w,
154
- onNavigate: j,
155
- isShellLessTarget: f
156
- }, I = T("overlay.launcher", "AI Assistant"), L = { [o]: `${h}px` };
157
- return /* @__PURE__ */ P(r, {
151
+ onClose: x,
152
+ docked: w,
153
+ onToggleDock: T,
154
+ onNavigate: M,
155
+ isShellLessTarget: p
156
+ }, L = E("overlay.launcher", "AI Assistant"), R = {
157
+ [o]: `${g}px`,
158
+ [c]: "var(--mobile-tabbar-height, 0px)"
159
+ };
160
+ return /* @__PURE__ */ F(r, {
158
161
  preview: a?.preview,
159
- children: [y && /* @__PURE__ */ P("div", {
160
- className: l({
161
- expanded: E,
162
- docked: C
162
+ children: [b && /* @__PURE__ */ F("div", {
163
+ className: u({
164
+ expanded: D,
165
+ docked: w
163
166
  }),
164
- style: L,
167
+ style: R,
165
168
  "data-testid": "assistant-overlay",
166
- children: [/* @__PURE__ */ N("button", {
169
+ children: [/* @__PURE__ */ P("button", {
167
170
  type: "button",
168
- onClick: () => k((e) => !e),
171
+ onClick: () => A((e) => !e),
169
172
  className: "flex w-full shrink-0 justify-center pt-2 pb-1 sm:hidden",
170
- "aria-label": E ? T("sheet.collapse", "Shrink the assistant") : T("sheet.expand", "Expand the assistant"),
171
- "aria-expanded": E,
173
+ "aria-label": D ? E("sheet.collapse", "Shrink the assistant") : E("sheet.expand", "Expand the assistant"),
174
+ "aria-expanded": D,
172
175
  "data-testid": "assistant-sheet-handle",
173
- children: /* @__PURE__ */ N("span", { className: "h-1.5 w-10 rounded-full bg-border-strong" })
174
- }), /* @__PURE__ */ N("div", {
176
+ children: /* @__PURE__ */ P("span", { className: "h-1.5 w-10 rounded-full bg-border-strong" })
177
+ }), /* @__PURE__ */ P("div", {
175
178
  className: "flex min-h-0 flex-1 flex-col",
176
- children: s ? s(F) : q(a, F)
179
+ children: s ? s(I) : J(a, I)
177
180
  })]
178
- }), v && /* @__PURE__ */ N("button", {
181
+ }), y && /* @__PURE__ */ P("button", {
179
182
  type: "button",
180
- onClick: x,
181
- title: T("overlay.launcherTitle", "AI Assistant ({{shortcut}})", { shortcut: "Ctrl+Shift+A" }),
182
- "aria-label": I,
183
+ onClick: S,
184
+ title: E("overlay.launcherTitle", "AI Assistant ({{shortcut}})", { shortcut: "Ctrl+Shift+A" }),
185
+ "aria-label": L,
183
186
  "aria-haspopup": "dialog",
184
- "aria-expanded": y,
187
+ "aria-expanded": b,
185
188
  "data-testid": "assistant-fab",
186
- style: { bottom: c(_) },
187
- 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 " + (y ? "hidden sm:inline-flex" : "inline-flex"),
188
- children: g ?? /* @__PURE__ */ N(M, {
189
+ style: { bottom: l(v) },
190
+ 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 " + (b ? "hidden sm:inline-flex" : "inline-flex"),
191
+ children: _ ?? /* @__PURE__ */ P(N, {
189
192
  className: "size-6",
190
193
  "aria-hidden": "true"
191
194
  })
@@ -193,4 +196,4 @@ function Y({ state: t, panelId: i = "ai-assistant", panelProps: a, renderPanel:
193
196
  });
194
197
  }
195
198
  //#endregion
196
- export { J as AssistantOverlay, K as AssistantOverlayProvider, L as useAssistantDockWidth, I as useAssistantOverlayOrNull, R as useAssistantPanelInset, W as useAssistantQuotaExhausted };
199
+ export { Y as AssistantOverlay, q as AssistantOverlayProvider, R as useAssistantDockWidth, L as useAssistantOverlayOrNull, z as useAssistantPanelInset, G as useAssistantQuotaExhausted };
@@ -122,6 +122,18 @@ export declare const ASSISTANT_DOCK_WIDTH_PX = 440;
122
122
  * own right-hand surface (a preview pane) pads by it to stay clear of the dock.
123
123
  */
124
124
  export declare const ASSISTANT_DOCK_WIDTH_VAR = "--assistant-dock-width";
125
+ /**
126
+ * CSS custom property on the sheet carrying the PHONE sheet's bottom offset.
127
+ *
128
+ * ★ The installed app's `MobileTabBar` is `fixed z-[60]`, above the sheet's
129
+ * `z-50`, so a sheet pinned to `bottom-0` has its composer painted over by the
130
+ * tab bar. The sheet rests on top of the bar instead. The tab bar's measured
131
+ * height already includes the safe area (see
132
+ * `ASSISTANT_BOTTOM_CHROME_CLEARANCE`), so it is not added again; with no tab
133
+ * bar the variable is 0px and the sheet keeps the bottom edge. Every `sm:`
134
+ * layout sets its own `bottom-*`, so desktop never reads it.
135
+ */
136
+ export declare const ASSISTANT_SHEET_BOTTOM_VAR = "--assistant-sheet-bottom";
125
137
  /** CSS custom property on the sheet carrying the docked panel's top offset. */
126
138
  export declare const ASSISTANT_OVERLAY_TOP_VAR = "--assistant-overlay-top";
127
139
  /** Default top offset for the docked panel: a 3.5rem (56px) shell header. */
@@ -33,23 +33,23 @@ var u = "max(var(--mobile-tabbar-height, 0px), var(--safe-bottom, 0px), env(safe
33
33
  function d(e) {
34
34
  return `calc(${e} + ${u})`;
35
35
  }
36
- var f = 440, p = "--assistant-dock-width", m = "--assistant-overlay-top", h = 56, g = "(min-width: 640px)";
37
- function _(e) {
36
+ var f = 440, p = "--assistant-dock-width", m = "--assistant-sheet-bottom", h = "--assistant-overlay-top", g = 56, _ = "(min-width: 640px)";
37
+ function v(e) {
38
38
  return e.isOpen && e.docked && e.isDesktop ? 440 : 0;
39
39
  }
40
- var v = 520, y = 24, b = "--assistant-panel-inset";
41
- function x(e) {
40
+ var y = 520, b = 24, x = "--assistant-panel-inset";
41
+ function S(e) {
42
42
  return !e.isOpen || !e.isDesktop ? 0 : e.docked ? 440 : 544;
43
43
  }
44
- var S = "fixed z-50 flex flex-col overflow-hidden border border-border-default bg-bg-surface shadow-2xl inset-x-0 bottom-0 top-auto rounded-t-2xl animate-in slide-in-from-bottom-4 fade-in duration-200", C = "h-[60vh] max-h-[60vh]", w = "h-[88vh] max-h-[88vh]", T = "sm:inset-auto sm:top-auto sm:bottom-24 sm:right-6 sm:rounded-2xl sm:h-[680px] sm:max-h-[calc(100vh-6rem-var(--assistant-overlay-top,56px)-0.5rem)] sm:w-[520px] sm:max-w-[calc(100vw-2rem)]", E = "sm:left-auto sm:right-0 sm:top-[var(--assistant-overlay-top)] sm:bottom-0 sm:rounded-none sm:h-auto sm:max-h-none sm:w-[440px] sm:max-w-[calc(100vw-2rem)]";
45
- function D(e) {
44
+ var C = "fixed z-50 flex flex-col overflow-hidden border border-border-default bg-bg-surface shadow-2xl inset-x-0 bottom-[var(--assistant-sheet-bottom,0px)] top-auto rounded-t-2xl animate-in slide-in-from-bottom-4 fade-in duration-200", w = "h-[60vh] max-h-[60vh]", T = "h-[88vh] max-h-[88vh]", E = "sm:inset-auto sm:top-auto sm:bottom-24 sm:right-6 sm:rounded-2xl sm:h-[680px] sm:max-h-[calc(100vh-6rem-var(--assistant-overlay-top,56px)-0.5rem)] sm:w-[520px] sm:max-w-[calc(100vw-2rem)]", D = "sm:left-auto sm:right-0 sm:top-[var(--assistant-overlay-top)] sm:bottom-0 sm:rounded-none sm:h-auto sm:max-h-none sm:w-[440px] sm:max-w-[calc(100vw-2rem)]";
45
+ function O(e) {
46
46
  return [
47
- S,
48
- e.expanded ? w : C,
49
- e.docked ? E : T
47
+ C,
48
+ e.expanded ? T : w,
49
+ e.docked ? D : E
50
50
  ].join(" ");
51
51
  }
52
- function O(t) {
52
+ function k(t) {
53
53
  return (n, r) => {
54
54
  if (t.isShellLessTarget?.(n)) return t.openInNewTab(n), { kind: "new-tab" };
55
55
  let i = e(r);
@@ -60,22 +60,22 @@ function O(t) {
60
60
  } : (t.navigate(n), t.isDesktop() || t.collapseSheet(), { kind: "routed" });
61
61
  };
62
62
  }
63
- function k(e) {
63
+ function A(e) {
64
64
  if (typeof CustomEvent > "u" || !(e instanceof CustomEvent)) return "generic";
65
65
  let t = e.detail;
66
66
  return typeof t != "object" || !t || !("kind" in t) ? "generic" : t.kind === "sandbox" || t.kind === "ai-credits" ? t.kind : "generic";
67
67
  }
68
- function A(e, t) {
68
+ function j(e, t) {
69
69
  try {
70
70
  return e()?.getItem(t) === "1";
71
71
  } catch {
72
72
  return !1;
73
73
  }
74
74
  }
75
- function j(e, t, n) {
75
+ function M(e, t, n) {
76
76
  try {
77
77
  e()?.setItem(t, n ? "1" : "0");
78
78
  } catch {}
79
79
  }
80
80
  //#endregion
81
- export { u as ASSISTANT_BOTTOM_CHROME_CLEARANCE, o as ASSISTANT_DIALOG_SELECTOR, E as ASSISTANT_DOCKED_DESKTOP_CLASS, f as ASSISTANT_DOCK_WIDTH_PX, p as ASSISTANT_DOCK_WIDTH_VAR, T as ASSISTANT_FLOATING_DESKTOP_CLASS, y as ASSISTANT_FLOATING_RIGHT_PX, v as ASSISTANT_FLOATING_WIDTH_PX, h as ASSISTANT_OVERLAY_DEFAULT_TOP_PX, g as ASSISTANT_OVERLAY_DESKTOP_QUERY, m as ASSISTANT_OVERLAY_TOP_VAR, b as ASSISTANT_PANEL_INSET_VAR, S as ASSISTANT_SHEET_BASE_CLASS, C as ASSISTANT_SHEET_COMPACT_CLASS, w as ASSISTANT_SHEET_EXPANDED_CLASS, i as ASSISTANT_TOGGLE_SHORTCUT_LABEL, d as aboveAssistantBottomChrome, D as assistantOverlayClassName, l as assistantOverlayEscapeAction, t as assistantOverlayKeys, k as assistantQuotaKindOf, s as closestAround, O as createAssistantNavigate, a as isAssistantToggleShortcut, r as nextAssistantOpenState, _ as publishedAssistantDockWidth, x as publishedAssistantPanelInset, A as readAssistantOverlayFlag, n as requestedAssistantOpenState, j as writeAssistantOverlayFlag };
81
+ export { u as ASSISTANT_BOTTOM_CHROME_CLEARANCE, o as ASSISTANT_DIALOG_SELECTOR, D as ASSISTANT_DOCKED_DESKTOP_CLASS, f as ASSISTANT_DOCK_WIDTH_PX, p as ASSISTANT_DOCK_WIDTH_VAR, E as ASSISTANT_FLOATING_DESKTOP_CLASS, b as ASSISTANT_FLOATING_RIGHT_PX, y as ASSISTANT_FLOATING_WIDTH_PX, g as ASSISTANT_OVERLAY_DEFAULT_TOP_PX, _ as ASSISTANT_OVERLAY_DESKTOP_QUERY, h as ASSISTANT_OVERLAY_TOP_VAR, x as ASSISTANT_PANEL_INSET_VAR, C as ASSISTANT_SHEET_BASE_CLASS, m as ASSISTANT_SHEET_BOTTOM_VAR, w as ASSISTANT_SHEET_COMPACT_CLASS, T as ASSISTANT_SHEET_EXPANDED_CLASS, i as ASSISTANT_TOGGLE_SHORTCUT_LABEL, d as aboveAssistantBottomChrome, O as assistantOverlayClassName, l as assistantOverlayEscapeAction, t as assistantOverlayKeys, A as assistantQuotaKindOf, s as closestAround, k as createAssistantNavigate, a as isAssistantToggleShortcut, r as nextAssistantOpenState, v as publishedAssistantDockWidth, S as publishedAssistantPanelInset, j as readAssistantOverlayFlag, n as requestedAssistantOpenState, M as writeAssistantOverlayFlag };