@burdenoff/fe-libs 2026.930.2 → 2026.930.4

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 (41) hide show
  1. package/dist/chrome/globalSearch/AdvancedFiltersPanel.js +2 -2
  2. package/dist/chrome/notificationCenter/NotificationFilters.js +1 -1
  3. package/dist/credentials/AuthMethodSelector.js +1 -1
  4. package/dist/credentials/SchemaForm.js +1 -1
  5. package/dist/shared/assistant/preview/AssistantPreviewOverlay.d.ts.map +1 -1
  6. package/dist/shared/assistant/preview/AssistantPreviewOverlay.js +26 -25
  7. package/dist/shared/assistant/preview/types.d.ts +34 -4
  8. package/dist/shared/assistant/preview/types.d.ts.map +1 -1
  9. package/dist/shared/assistant/preview/types.js +6 -0
  10. package/dist/shared/assistant/ui/AIAssistantPanel.d.ts +5 -0
  11. package/dist/shared/assistant/ui/AIAssistantPanel.d.ts.map +1 -1
  12. package/dist/shared/assistant/ui/AIAssistantPanel.js +67 -66
  13. package/dist/shared/assistant/ui/AssistantEmptyState.d.ts.map +1 -1
  14. package/dist/shared/assistant/ui/AssistantEmptyState.js +24 -18
  15. package/dist/shared/assistant/ui/AssistantHeader.d.ts.map +1 -1
  16. package/dist/shared/assistant/ui/AssistantHeader.js +45 -44
  17. package/dist/shared/assistant/ui/AssistantLanguageMenu.js +2 -2
  18. package/dist/shared/assistant/ui/AssistantOverlay.d.ts +14 -1
  19. package/dist/shared/assistant/ui/AssistantOverlay.d.ts.map +1 -1
  20. package/dist/shared/assistant/ui/AssistantOverlay.js +105 -90
  21. package/dist/shared/assistant/ui/AssistantReplyLanguageSelector.js +1 -1
  22. package/dist/shared/assistant/ui/assistantOverlayState.d.ts +38 -0
  23. package/dist/shared/assistant/ui/assistantOverlayState.d.ts.map +1 -1
  24. package/dist/shared/assistant/ui/assistantOverlayState.js +14 -10
  25. package/dist/shared/assistant/ui/composer/AssistantAttachmentButton.d.ts +9 -0
  26. package/dist/shared/assistant/ui/composer/AssistantAttachmentButton.d.ts.map +1 -1
  27. package/dist/shared/assistant/ui/composer/AssistantAttachmentButton.js +37 -33
  28. package/dist/shared/assistant/ui/composer/AssistantComposer.d.ts.map +1 -1
  29. package/dist/shared/assistant/ui/composer/AssistantComposer.js +2 -1
  30. package/dist/shared/assistant/ui/composer/AssistantConnectSourceItem.d.ts +16 -0
  31. package/dist/shared/assistant/ui/composer/AssistantConnectSourceItem.d.ts.map +1 -1
  32. package/dist/shared/assistant/ui/composer/AssistantConnectSourceItem.js +27 -24
  33. package/dist/shared/assistant/ui/composer/AssistantLanguageSelector.js +1 -1
  34. package/dist/shared/assistant/ui/composer/AssistantVoiceSelector.js +1 -1
  35. package/dist/shared/pages/searchPage/FiltersPanel.js +1 -1
  36. package/dist/shared/pages/searchPage/SearchToolbar.js +1 -1
  37. package/dist/shared-assistant.js +73 -72
  38. package/dist/sharing/ShareDialog.js +2 -2
  39. package/dist/storage/StorageFolderPicker.js +1 -1
  40. package/package.json +1 -1
  41. package/src/shared/tokens/build/semantic.css +131 -0
@@ -1,81 +1,82 @@
1
1
  import { useAssistantTr as e } from "../i18n.js";
2
- import { useAssistantPreview as t } from "../preview/context.js";
3
- import { AssistantMoreMenu as n } from "./AssistantMoreMenu.js";
4
- import { Eye as r, History as i, PanelBottom as a, PanelRight as o, Plus as s, Sparkles as c, X as l } from "lucide-react";
5
- import { Fragment as u, jsx as d, jsxs as f } from "react/jsx-runtime";
2
+ import { hasAssistantPreviewSurface as t } from "../preview/types.js";
3
+ import { useAssistantPreview as n } from "../preview/context.js";
4
+ import { AssistantMoreMenu as r } from "./AssistantMoreMenu.js";
5
+ import { Eye as i, History as a, PanelBottom as o, PanelRight as s, Plus as c, Sparkles as l, X as u } from "lucide-react";
6
+ import { Fragment as d, jsx as f, jsxs as p } from "react/jsx-runtime";
6
7
  //#region src/shared/assistant/ui/AssistantHeader.tsx
7
- var p = ({ contextLabel: p, onNewConversation: m, onOpenHistory: h, historyOpen: g, onTogglePreview: _, previewOpen: v, onClose: y, docked: b, onToggleDock: x }) => {
8
- let S = e(), C = t();
9
- return /* @__PURE__ */ f("div", {
8
+ var m = ({ contextLabel: m, onNewConversation: h, onOpenHistory: g, historyOpen: _, onTogglePreview: v, previewOpen: y, onClose: b, docked: x, onToggleDock: S }) => {
9
+ let C = e(), w = n();
10
+ return /* @__PURE__ */ p("div", {
10
11
  className: "flex items-center gap-2 border-b border-border-default bg-bg-elevated px-3 py-2.5",
11
- children: [/* @__PURE__ */ f("div", {
12
+ children: [/* @__PURE__ */ p("div", {
12
13
  className: "flex min-w-0 flex-1 items-center gap-2",
13
- children: [/* @__PURE__ */ d("span", {
14
+ children: [/* @__PURE__ */ f("span", {
14
15
  className: "flex size-7 flex-shrink-0 items-center justify-center rounded-lg bg-gradient-to-br from-action-primary-bg/25 to-action-primary-bg/5 text-action-primary-bg",
15
- children: /* @__PURE__ */ d(c, { className: "size-4" })
16
- }), /* @__PURE__ */ f("span", {
16
+ children: /* @__PURE__ */ f(l, { className: "size-4" })
17
+ }), /* @__PURE__ */ p("span", {
17
18
  className: "min-w-0 flex-1",
18
- children: [/* @__PURE__ */ d("span", {
19
+ children: [/* @__PURE__ */ f("span", {
19
20
  className: "block truncate text-[14px] font-semibold leading-tight text-text-primary",
20
- children: S("header.title", "AI Assistant")
21
- }), /* @__PURE__ */ f("span", {
21
+ children: C("header.title", "AI Assistant")
22
+ }), /* @__PURE__ */ p("span", {
22
23
  className: "block truncate text-[11px] leading-tight text-text-muted",
23
- children: [S("header.ready", "Ready"), p && /* @__PURE__ */ f(u, { children: [/* @__PURE__ */ d("span", {
24
+ children: [C("header.ready", "Ready"), m && /* @__PURE__ */ p(d, { children: [/* @__PURE__ */ f("span", {
24
25
  "aria-hidden": "true",
25
26
  children: " · "
26
- }), S("header.context", "Context: {{page}}", { page: p })] })]
27
+ }), C("header.context", "Context: {{page}}", { page: m })] })]
27
28
  })]
28
29
  })]
29
- }), /* @__PURE__ */ f("div", {
30
+ }), /* @__PURE__ */ p("div", {
30
31
  className: "flex flex-shrink-0 items-center gap-0.5",
31
32
  children: [
32
- /* @__PURE__ */ d("button", {
33
+ /* @__PURE__ */ f("button", {
33
34
  type: "button",
34
- onClick: m,
35
+ onClick: h,
35
36
  className: "rounded-lg p-1.5 text-text-secondary transition-colors hover:bg-bg-sunken hover:text-text-primary",
36
- "aria-label": S("header.newConversation", "New conversation"),
37
+ "aria-label": C("header.newConversation", "New conversation"),
37
38
  "data-testid": "assistant-new-conversation",
38
- children: /* @__PURE__ */ d(s, { className: "size-4" })
39
+ children: /* @__PURE__ */ f(c, { className: "size-4" })
39
40
  }),
40
- /* @__PURE__ */ d("button", {
41
+ /* @__PURE__ */ f("button", {
41
42
  type: "button",
42
- onClick: h,
43
- className: `rounded-lg p-1.5 transition-colors ${g ? "bg-action-primary-bg/15 text-action-primary-bg" : "text-text-secondary hover:bg-bg-sunken hover:text-text-primary"}`,
44
- "aria-label": S("header.history", "Conversation history"),
45
- "aria-pressed": g,
43
+ onClick: g,
44
+ className: `rounded-lg p-1.5 transition-colors ${_ ? "bg-action-primary-bg/15 text-action-primary-bg" : "text-text-secondary hover:bg-bg-sunken hover:text-text-primary"}`,
45
+ "aria-label": C("header.history", "Conversation history"),
46
+ "aria-pressed": _,
46
47
  "data-testid": "assistant-open-history",
47
- children: /* @__PURE__ */ d(i, { className: "size-4" })
48
+ children: /* @__PURE__ */ f(a, { className: "size-4" })
48
49
  }),
49
- C && _ && /* @__PURE__ */ d("button", {
50
+ t(w) && v && /* @__PURE__ */ f("button", {
50
51
  type: "button",
51
- onClick: _,
52
- className: `rounded-lg p-1.5 transition-colors ${v ? "bg-action-primary-bg/15 text-action-primary-bg" : "text-text-secondary hover:bg-bg-sunken hover:text-text-primary"}`,
53
- "aria-label": C.label ?? S("header.preview", "Preview"),
54
- "aria-pressed": !!v,
52
+ onClick: v,
53
+ className: `rounded-lg p-1.5 transition-colors ${y ? "bg-action-primary-bg/15 text-action-primary-bg" : "text-text-secondary hover:bg-bg-sunken hover:text-text-primary"}`,
54
+ "aria-label": w.label ?? C("header.preview", "Preview"),
55
+ "aria-pressed": !!y,
55
56
  "data-testid": "assistant-toggle-preview",
56
- children: /* @__PURE__ */ d(r, { className: "size-4" })
57
+ children: /* @__PURE__ */ f(i, { className: "size-4" })
57
58
  }),
58
- /* @__PURE__ */ d(n, {}),
59
- x && /* @__PURE__ */ d("button", {
59
+ /* @__PURE__ */ f(r, {}),
60
+ S && /* @__PURE__ */ f("button", {
60
61
  type: "button",
61
- onClick: x,
62
+ onClick: S,
62
63
  className: "hidden rounded-lg p-1.5 text-text-secondary transition-colors hover:bg-bg-sunken hover:text-text-primary sm:inline-flex",
63
- "aria-label": b ? S("header.float", "Float chat window") : S("header.dock", "Dock to side panel"),
64
- "aria-pressed": b,
64
+ "aria-label": x ? C("header.float", "Float chat window") : C("header.dock", "Dock to side panel"),
65
+ "aria-pressed": x,
65
66
  "data-testid": "assistant-toggle-dock",
66
- children: d(b ? a : o, { className: "size-4" })
67
+ children: f(x ? o : s, { className: "size-4" })
67
68
  }),
68
- /* @__PURE__ */ d("button", {
69
+ /* @__PURE__ */ f("button", {
69
70
  type: "button",
70
- onClick: y,
71
+ onClick: b,
71
72
  className: "rounded-lg p-1.5 text-text-secondary transition-colors hover:bg-bg-sunken hover:text-text-primary",
72
- "aria-label": S("header.close", "Close assistant"),
73
+ "aria-label": C("header.close", "Close assistant"),
73
74
  "data-testid": "assistant-close",
74
- children: /* @__PURE__ */ d(l, { className: "size-4" })
75
+ children: /* @__PURE__ */ f(u, { className: "size-4" })
75
76
  })
76
77
  ]
77
78
  })]
78
79
  });
79
80
  };
80
81
  //#endregion
81
- export { p as AssistantHeader };
82
+ export { m as AssistantHeader };
@@ -39,7 +39,7 @@ var l = "__match__", u = () => {
39
39
  let t = e.target.value;
40
40
  p(t === "" ? null : t);
41
41
  },
42
- className: "absolute inset-0 cursor-pointer opacity-0",
42
+ className: "absolute inset-0 cursor-pointer opacity-0 scheme-normal dark:scheme-dark [&_option]:bg-bg-surface [&_option]:text-text-primary",
43
43
  children: [/* @__PURE__ */ s("option", {
44
44
  value: "",
45
45
  children: u("voice.languageFollowApp", "Same as interface")
@@ -69,7 +69,7 @@ var l = "__match__", u = () => {
69
69
  let t = e.target.value;
70
70
  h(t === l ? null : t);
71
71
  },
72
- className: "absolute inset-0 cursor-pointer opacity-0",
72
+ className: "absolute inset-0 cursor-pointer opacity-0 scheme-normal dark:scheme-dark [&_option]:bg-bg-surface [&_option]:text-text-primary",
73
73
  children: [/* @__PURE__ */ c("option", {
74
74
  value: l,
75
75
  children: [
@@ -12,6 +12,11 @@ export interface AssistantOverlayContextValue {
12
12
  toggleDock: () => void;
13
13
  /** Width the docked panel takes from the page right now, in px (0 if none). */
14
14
  dockWidthPx: number;
15
+ /**
16
+ * How far the open assistant reaches in from the page's right edge, in px:
17
+ * docked or floating, 0 when closed or on a phone (BOFF-7799).
18
+ */
19
+ panelInsetPx: number;
15
20
  keys: AssistantOverlayKeys;
16
21
  }
17
22
  /** The overlay state in force, or null when no provider is mounted. */
@@ -22,6 +27,13 @@ export declare function useAssistantOverlayOrNull(): AssistantOverlayContextValu
22
27
  * published as `var(--assistant-dock-width)` on `<html>` for CSS consumers.
23
28
  */
24
29
  export declare function useAssistantDockWidth(): number;
30
+ /**
31
+ * How far, in px, the open assistant reaches in from the right of the page,
32
+ * docked OR floating: 0 when it is closed, on a phone, or not mounted at all.
33
+ * The same value is published as `var(--assistant-panel-inset)` on `<html>`.
34
+ * See `ASSISTANT_PANEL_INSET_VAR` for why it differs from the dock width.
35
+ */
36
+ export declare function useAssistantPanelInset(): number;
25
37
  /**
26
38
  * Listen for `<product>:quota-exhausted` and hand each wall to the product.
27
39
  *
@@ -62,7 +74,8 @@ export interface AssistantOverlayProviderProps {
62
74
  * the panel's own close and dock buttons) without each path remembering to
63
75
  * persist.
64
76
  *
65
- * Mount ONE per page: the published dock width is a single `<html>` variable.
77
+ * Mount ONE per page: the published dock width and panel inset are single
78
+ * `<html>` variables.
66
79
  */
67
80
  export declare function AssistantOverlayProvider({ keyPrefix, quota, children, }: AssistantOverlayProviderProps): import("react/jsx-runtime").JSX.Element;
68
81
  /** What the overlay hands the panel it renders. */
@@ -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;AAK1C,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,EAoBL,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;;;;;;;;;;;;;;OAcG;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;AAK1C,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,EAsBL,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;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAID,uEAAuE;AACvE,wBAAgB,yBAAyB,IAAI,4BAA4B,GAAG,IAAI,CAE/E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;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;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,SAAS,EACT,KAAK,EACL,QAAQ,GACT,EAAE,6BAA6B,2CA8E/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;;;;;;;;;;;;;;OAcG;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"}
@@ -2,174 +2,189 @@ 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, aboveAssistantBottomChrome as s, assistantOverlayClassName as c, assistantOverlayEscapeAction as l, assistantOverlayKeys as u, assistantQuotaKindOf as d, closestAround 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";
6
- import { useAssistantServerHistory as b } from "../history/useAssistantServerHistory.js";
7
- import { AIAssistantPanel as x } from "./AIAssistantPanel.js";
8
- import { createContext as S, useCallback as C, useContext as w, useEffect as T, useMemo as E, useRef as D, useState as O, useSyncExternalStore as k } from "react";
9
- import { Sparkles as A } from "lucide-react";
10
- import { jsx as j, jsxs as M } 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, 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";
11
11
  //#region src/shared/assistant/ui/AssistantOverlay.tsx
12
- var N = S(null);
13
- function P() {
14
- return w(N);
12
+ var F = w(null);
13
+ function I() {
14
+ return E(F);
15
15
  }
16
- function F() {
17
- return w(N)?.dockWidthPx ?? 0;
16
+ function L() {
17
+ return E(F)?.dockWidthPx ?? 0;
18
18
  }
19
- var I = () => typeof window > "u" ? void 0 : window.sessionStorage, L = () => typeof window > "u" ? void 0 : window.localStorage;
20
- function R(e) {
19
+ function R() {
20
+ return E(F)?.panelInsetPx ?? 0;
21
+ }
22
+ var z = () => typeof window > "u" ? void 0 : window.sessionStorage, B = () => typeof window > "u" ? void 0 : window.localStorage;
23
+ function V(e) {
21
24
  if (typeof window > "u" || typeof window.matchMedia != "function") return () => {};
22
25
  let t = window.matchMedia(a);
23
26
  return t.addEventListener("change", e), () => t.removeEventListener("change", e);
24
27
  }
25
- function z() {
28
+ function H() {
26
29
  return typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(min-width: 640px)").matches;
27
30
  }
28
- function B() {
29
- return k(R, z, () => !1);
31
+ function U() {
32
+ return j(V, H, () => !1);
30
33
  }
31
- function V(e, n) {
32
- let r = D(n);
33
- T(() => {
34
+ function W(e, n) {
35
+ let r = k(n);
36
+ D(() => {
34
37
  r.current = n;
35
- }, [n]), T(() => {
38
+ }, [n]), D(() => {
36
39
  if (!e || typeof window > "u") return;
37
- let n = t(e), i = (e) => r.current(d(e), e);
40
+ let n = t(e), i = (e) => r.current(f(e), e);
38
41
  return window.addEventListener(n, i), () => window.removeEventListener(n, i);
39
42
  }, [e]);
40
43
  }
41
- var H = () => {};
42
- function U({ keyPrefix: e, quota: t, children: n }) {
43
- let r = E(() => u(e), [e]), [a, o] = O(() => _(I, r.openStorageKey)), [s, c] = O(() => _(L, r.dockStorageKey)), l = C(() => o(!0), []), d = C(() => o(!1), []), f = C(() => o((e) => !e), []), p = C(() => c((e) => !e), []);
44
- T(() => {
45
- y(I, r.openStorageKey, a);
46
- }, [r.openStorageKey, a]), T(() => {
47
- y(L, r.dockStorageKey, s);
48
- }, [r.dockStorageKey, s]), T(() => {
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(() => {
49
52
  if (typeof window > "u") return;
50
53
  let e = (e) => {
51
- let t = v(e);
52
- o((e) => h(e, t));
54
+ let t = b(e);
55
+ o((e) => g(e, t));
53
56
  };
54
57
  return window.addEventListener(r.toggleEvent, e), () => window.removeEventListener(r.toggleEvent, e);
55
- }, [r.toggleEvent]), T(() => {
58
+ }, [r.toggleEvent]), D(() => {
56
59
  if (typeof document > "u") return;
57
60
  let e = (e) => {
58
- m(e) && (e.preventDefault(), o((e) => !e));
61
+ h(e) && (e.preventDefault(), o((e) => !e));
59
62
  };
60
63
  return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
61
- }, []), V(t?.product ?? null, t?.onExhausted ?? H);
62
- let b = g({
64
+ }, []), W(t?.product ?? null, t?.onExhausted ?? G);
65
+ let S = U(), C = _({
66
+ isOpen: a,
67
+ docked: c,
68
+ isDesktop: S
69
+ }), w = v({
63
70
  isOpen: a,
64
- docked: s,
65
- isDesktop: B()
71
+ docked: c,
72
+ isDesktop: S
66
73
  });
67
- T(() => {
74
+ D(() => {
68
75
  if (typeof document > "u") return;
69
76
  let e = document.documentElement.style;
70
- return e.setProperty(i, `${b}px`), () => {
77
+ return e.setProperty(i, `${C}px`), () => {
71
78
  e.removeProperty(i);
72
79
  };
73
- }, [b]);
74
- let x = E(() => ({
80
+ }, [C]), D(() => {
81
+ if (typeof document > "u") return;
82
+ let e = document.documentElement.style;
83
+ return e.setProperty(s, `${w}px`), () => {
84
+ e.removeProperty(s);
85
+ };
86
+ }, [w]);
87
+ let E = O(() => ({
75
88
  isOpen: a,
76
- open: l,
77
- close: d,
78
- toggle: f,
79
- docked: s,
80
- toggleDock: p,
81
- dockWidthPx: b,
89
+ open: u,
90
+ close: f,
91
+ toggle: p,
92
+ docked: c,
93
+ toggleDock: m,
94
+ dockWidthPx: C,
95
+ panelInsetPx: w,
82
96
  keys: r
83
97
  }), [
84
98
  a,
85
- l,
86
- d,
99
+ u,
87
100
  f,
88
- s,
89
101
  p,
90
- b,
102
+ c,
103
+ m,
104
+ C,
105
+ w,
91
106
  r
92
107
  ]);
93
- return /* @__PURE__ */ j(N.Provider, {
94
- value: x,
108
+ return /* @__PURE__ */ N(F.Provider, {
109
+ value: E,
95
110
  children: n
96
111
  });
97
112
  }
98
- var W = (e, t) => /* @__PURE__ */ j(x, {
113
+ var q = (e, t) => /* @__PURE__ */ N(C, {
99
114
  ...e,
100
115
  ...t
101
116
  });
102
- function G(e) {
103
- let t = P();
104
- return t ? /* @__PURE__ */ j(K, {
117
+ function J(e) {
118
+ let t = I();
119
+ return t ? /* @__PURE__ */ N(Y, {
105
120
  state: t,
106
121
  ...e
107
122
  }) : null;
108
123
  }
109
- function K({ state: t, panelId: i = "ai-assistant", panelProps: a, renderPanel: u, navigate: d, isShellLessTarget: m, topOffsetPx: h = 56, launcherIcon: g, launcherBottomInset: _ = "1.5rem", showLauncher: v = !0 }) {
110
- let { isOpen: y, close: x, toggle: S, docked: C, toggleDock: w } = t, D = e();
111
- b(a?.serverHistory === !0);
112
- let [k, N] = O(!1), P = E(() => d ? p({
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({
113
128
  navigate: d,
114
- isShellLessTarget: m,
115
- isDesktop: z,
116
- collapseSheet: () => N(!1),
129
+ isShellLessTarget: f,
130
+ isDesktop: H,
131
+ collapseSheet: () => k(!1),
117
132
  openInNewTab: (e) => window.open(e, "_blank", "noopener,noreferrer")
118
- }) : void 0, [d, m]);
119
- T(() => {
133
+ }) : void 0, [d, f]);
134
+ D(() => {
120
135
  if (!y) return;
121
136
  let e = (e) => {
122
- l({
137
+ u({
123
138
  key: e.key,
124
139
  isOpen: y,
125
140
  alreadyHandled: e.defaultPrevented,
126
141
  dialogOpen: document.querySelector("[role=\"dialog\"],[role=\"alertdialog\"],dialog[open]") !== null,
127
- pressedInsideDialog: f(e.target, "[role=\"dialog\"],[role=\"alertdialog\"],dialog[open]") !== null,
142
+ pressedInsideDialog: p(e.target, "[role=\"dialog\"],[role=\"alertdialog\"],dialog[open]") !== null,
128
143
  panelOwnsEscape: n()
129
- }) === "close" && (e.preventDefault(), x());
144
+ }) === "close" && (e.preventDefault(), b());
130
145
  };
131
146
  return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
132
- }, [y, x]);
147
+ }, [y, b]);
133
148
  let F = {
134
149
  panelId: i,
135
150
  visible: !0,
136
- onClose: x,
151
+ onClose: b,
137
152
  docked: C,
138
153
  onToggleDock: w,
139
- onNavigate: P
140
- }, I = D("overlay.launcher", "AI Assistant"), L = { [o]: `${h}px` };
141
- return /* @__PURE__ */ M(r, {
154
+ onNavigate: j
155
+ }, I = T("overlay.launcher", "AI Assistant"), L = { [o]: `${h}px` };
156
+ return /* @__PURE__ */ P(r, {
142
157
  preview: a?.preview,
143
- children: [y && /* @__PURE__ */ M("div", {
144
- className: c({
145
- expanded: k,
158
+ children: [y && /* @__PURE__ */ P("div", {
159
+ className: l({
160
+ expanded: E,
146
161
  docked: C
147
162
  }),
148
163
  style: L,
149
164
  "data-testid": "assistant-overlay",
150
- children: [/* @__PURE__ */ j("button", {
165
+ children: [/* @__PURE__ */ N("button", {
151
166
  type: "button",
152
- onClick: () => N((e) => !e),
167
+ onClick: () => k((e) => !e),
153
168
  className: "flex w-full shrink-0 justify-center pt-2 pb-1 sm:hidden",
154
- "aria-label": k ? D("sheet.collapse", "Shrink the assistant") : D("sheet.expand", "Expand the assistant"),
155
- "aria-expanded": k,
169
+ "aria-label": E ? T("sheet.collapse", "Shrink the assistant") : T("sheet.expand", "Expand the assistant"),
170
+ "aria-expanded": E,
156
171
  "data-testid": "assistant-sheet-handle",
157
- children: /* @__PURE__ */ j("span", { className: "h-1.5 w-10 rounded-full bg-border-strong" })
158
- }), /* @__PURE__ */ j("div", {
172
+ children: /* @__PURE__ */ N("span", { className: "h-1.5 w-10 rounded-full bg-border-strong" })
173
+ }), /* @__PURE__ */ N("div", {
159
174
  className: "flex min-h-0 flex-1 flex-col",
160
- children: u ? u(F) : W(a, F)
175
+ children: s ? s(F) : q(a, F)
161
176
  })]
162
- }), v && /* @__PURE__ */ j("button", {
177
+ }), v && /* @__PURE__ */ N("button", {
163
178
  type: "button",
164
- onClick: S,
165
- title: D("overlay.launcherTitle", "AI Assistant ({{shortcut}})", { shortcut: "Ctrl+Shift+A" }),
179
+ onClick: x,
180
+ title: T("overlay.launcherTitle", "AI Assistant ({{shortcut}})", { shortcut: "Ctrl+Shift+A" }),
166
181
  "aria-label": I,
167
182
  "aria-haspopup": "dialog",
168
183
  "aria-expanded": y,
169
184
  "data-testid": "assistant-fab",
170
- style: { bottom: s(_) },
185
+ style: { bottom: c(_) },
171
186
  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"),
172
- children: g ?? /* @__PURE__ */ j(A, {
187
+ children: g ?? /* @__PURE__ */ N(M, {
173
188
  className: "size-6",
174
189
  "aria-hidden": "true"
175
190
  })
@@ -177,4 +192,4 @@ function K({ state: t, panelId: i = "ai-assistant", panelProps: a, renderPanel:
177
192
  });
178
193
  }
179
194
  //#endregion
180
- export { G as AssistantOverlay, U as AssistantOverlayProvider, F as useAssistantDockWidth, P as useAssistantOverlayOrNull, V as useAssistantQuotaExhausted };
195
+ export { J as AssistantOverlay, K as AssistantOverlayProvider, L as useAssistantDockWidth, I as useAssistantOverlayOrNull, R as useAssistantPanelInset, W as useAssistantQuotaExhausted };
@@ -37,7 +37,7 @@ var l = "__match__", u = () => {
37
37
  let t = e.target.value;
38
38
  m(t === l ? null : t);
39
39
  },
40
- className: "absolute inset-0 cursor-pointer opacity-0",
40
+ className: "absolute inset-0 cursor-pointer opacity-0 scheme-normal dark:scheme-dark [&_option]:bg-bg-surface [&_option]:text-text-primary",
41
41
  children: [/* @__PURE__ */ c("option", {
42
42
  value: l,
43
43
  children: [
@@ -136,6 +136,44 @@ export declare function publishedAssistantDockWidth(input: {
136
136
  docked: boolean;
137
137
  isDesktop: boolean;
138
138
  }): number;
139
+ /** Width of the floating desktop window. Must match `sm:w-[520px]` below. */
140
+ export declare const ASSISTANT_FLOATING_WIDTH_PX = 520;
141
+ /**
142
+ * Gap between the floating window and the right edge of the viewport. Must
143
+ * match `sm:right-6` below: Tailwind's spacing unit is 0.25rem, so 6 is 1.5rem,
144
+ * which is 24px at the 16px root size every product ships with.
145
+ */
146
+ export declare const ASSISTANT_FLOATING_RIGHT_PX = 24;
147
+ /**
148
+ * CSS custom property on `<html>` carrying how much of the page's RIGHT edge
149
+ * the open assistant covers: the docked width while docked, the floating
150
+ * window's width plus its right gap while floating, and `0px` while it is
151
+ * closed or on a phone (where it is a bottom sheet).
152
+ *
153
+ * ★★ WHY A SECOND VARIABLE (BOFF-7799). `--assistant-dock-width` is `0px`
154
+ * while the panel FLOATS, which is the default, because a floating window does
155
+ * not take width from the layout. But it still sits OVER the page: a product
156
+ * surface padded by the dock width kept its right 45 % (its close button,
157
+ * its status, its tab actions) under the open chat. A surface that must stay
158
+ * usable beside the chat pads by this instead, with the dock width as the
159
+ * fallback for an fe-libs that does not publish it:
160
+ * `var(--assistant-panel-inset, var(--assistant-dock-width, 0px))`.
161
+ *
162
+ * `--assistant-dock-width` is unchanged, so nothing that reads it moves.
163
+ */
164
+ export declare const ASSISTANT_PANEL_INSET_VAR = "--assistant-panel-inset";
165
+ /**
166
+ * How far the open assistant reaches in from the right edge of the page, in px.
167
+ *
168
+ * ★ 544 while floating is exact at every desktop width. The window's
169
+ * `sm:max-w-[calc(100vw-2rem)]` clamp only bites below 552px, and the desktop
170
+ * layout starts at 640px.
171
+ */
172
+ export declare function publishedAssistantPanelInset(input: {
173
+ isOpen: boolean;
174
+ docked: boolean;
175
+ isDesktop: boolean;
176
+ }): number;
139
177
  /**
140
178
  * Shared by every layout. On a phone: a full-width bottom sheet with a rounded
141
179
  * top edge. ★ No height here — see the two below.
@@ -1 +1 @@
1
- {"version":3,"file":"assistantOverlayState.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/assistantOverlayState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assistantOverlayState.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/assistantOverlayState.ts"],"names":[],"mappings":"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"}
@@ -36,15 +36,19 @@ var d = 440, f = "--assistant-dock-width", p = "--assistant-overlay-top", m = 56
36
36
  function g(e) {
37
37
  return e.isOpen && e.docked && e.isDesktop ? 440 : 0;
38
38
  }
39
- var _ = "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", v = "h-[60vh] max-h-[60vh]", y = "h-[88vh] max-h-[88vh]", b = "sm:inset-auto sm:top-auto sm:bottom-24 sm:right-6 sm:rounded-2xl sm:h-[680px] sm:max-h-[calc(100vh-8rem)] sm:w-[520px] sm:max-w-[calc(100vw-2rem)]", x = "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)]";
40
- function S(e) {
39
+ var _ = 520, v = 24, y = "--assistant-panel-inset";
40
+ function b(e) {
41
+ return !e.isOpen || !e.isDesktop ? 0 : e.docked ? 440 : 544;
42
+ }
43
+ var x = "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", S = "h-[60vh] max-h-[60vh]", C = "h-[88vh] max-h-[88vh]", w = "sm:inset-auto sm:top-auto sm:bottom-24 sm:right-6 sm:rounded-2xl sm:h-[680px] sm:max-h-[calc(100vh-8rem)] sm:w-[520px] sm:max-w-[calc(100vw-2rem)]", T = "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)]";
44
+ function E(e) {
41
45
  return [
42
- _,
43
- e.expanded ? y : v,
44
- e.docked ? x : b
46
+ x,
47
+ e.expanded ? C : S,
48
+ e.docked ? T : w
45
49
  ].join(" ");
46
50
  }
47
- function C(e) {
51
+ function D(e) {
48
52
  return (t) => {
49
53
  if (e.isShellLessTarget?.(t)) {
50
54
  e.openInNewTab(t);
@@ -53,22 +57,22 @@ function C(e) {
53
57
  e.navigate(t), e.isDesktop() || e.collapseSheet();
54
58
  };
55
59
  }
56
- function w(e) {
60
+ function O(e) {
57
61
  if (typeof CustomEvent > "u" || !(e instanceof CustomEvent)) return "generic";
58
62
  let t = e.detail;
59
63
  return typeof t != "object" || !t || !("kind" in t) ? "generic" : t.kind === "sandbox" || t.kind === "ai-credits" ? t.kind : "generic";
60
64
  }
61
- function T(e, t) {
65
+ function k(e, t) {
62
66
  try {
63
67
  return e()?.getItem(t) === "1";
64
68
  } catch {
65
69
  return !1;
66
70
  }
67
71
  }
68
- function E(e, t, n) {
72
+ function A(e, t, n) {
69
73
  try {
70
74
  e()?.setItem(t, n ? "1" : "0");
71
75
  } catch {}
72
76
  }
73
77
  //#endregion
74
- export { l as ASSISTANT_BOTTOM_CHROME_CLEARANCE, a as ASSISTANT_DIALOG_SELECTOR, x as ASSISTANT_DOCKED_DESKTOP_CLASS, d as ASSISTANT_DOCK_WIDTH_PX, f as ASSISTANT_DOCK_WIDTH_VAR, b as ASSISTANT_FLOATING_DESKTOP_CLASS, m as ASSISTANT_OVERLAY_DEFAULT_TOP_PX, h as ASSISTANT_OVERLAY_DESKTOP_QUERY, p as ASSISTANT_OVERLAY_TOP_VAR, _ as ASSISTANT_SHEET_BASE_CLASS, v as ASSISTANT_SHEET_COMPACT_CLASS, y as ASSISTANT_SHEET_EXPANDED_CLASS, r as ASSISTANT_TOGGLE_SHORTCUT_LABEL, u as aboveAssistantBottomChrome, S as assistantOverlayClassName, c as assistantOverlayEscapeAction, e as assistantOverlayKeys, w as assistantQuotaKindOf, o as closestAround, C as createAssistantNavigate, i as isAssistantToggleShortcut, n as nextAssistantOpenState, g as publishedAssistantDockWidth, T as readAssistantOverlayFlag, t as requestedAssistantOpenState, E as writeAssistantOverlayFlag };
78
+ export { l as ASSISTANT_BOTTOM_CHROME_CLEARANCE, a as ASSISTANT_DIALOG_SELECTOR, T as ASSISTANT_DOCKED_DESKTOP_CLASS, d as ASSISTANT_DOCK_WIDTH_PX, f as ASSISTANT_DOCK_WIDTH_VAR, w as ASSISTANT_FLOATING_DESKTOP_CLASS, v as ASSISTANT_FLOATING_RIGHT_PX, _ as ASSISTANT_FLOATING_WIDTH_PX, m as ASSISTANT_OVERLAY_DEFAULT_TOP_PX, h as ASSISTANT_OVERLAY_DESKTOP_QUERY, p as ASSISTANT_OVERLAY_TOP_VAR, y as ASSISTANT_PANEL_INSET_VAR, x as ASSISTANT_SHEET_BASE_CLASS, S as ASSISTANT_SHEET_COMPACT_CLASS, C as ASSISTANT_SHEET_EXPANDED_CLASS, r as ASSISTANT_TOGGLE_SHORTCUT_LABEL, u as aboveAssistantBottomChrome, E as assistantOverlayClassName, c as assistantOverlayEscapeAction, e as assistantOverlayKeys, O as assistantQuotaKindOf, o as closestAround, D as createAssistantNavigate, i as isAssistantToggleShortcut, n as nextAssistantOpenState, g as publishedAssistantDockWidth, b as publishedAssistantPanelInset, k as readAssistantOverlayFlag, t as requestedAssistantOpenState, A as writeAssistantOverlayFlag };
@@ -23,6 +23,15 @@ interface Props {
23
23
  /** False once MAX_ATTACHMENTS is reached — the control explains why. */
24
24
  canAddMore: boolean;
25
25
  disabled?: boolean;
26
+ /**
27
+ * Show "Connect a source" as visible text beside the "+" from `sm` up, when
28
+ * the menu holds that item (BOFF-8158).
29
+ *
30
+ * ★ Opt-in, and only the COMPOSER opts in. The voice session's copy sits in
31
+ * a corner between other absolutely placed controls, where text would run
32
+ * into them; and a product composing its own chrome keeps the icon it has.
33
+ */
34
+ showLabel?: boolean;
26
35
  }
27
36
  /**
28
37
  * Leading circular "+" attach control in the composer.