@burdenoff/fe-libs 2026.1029.11 → 2026.1030.2

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 (62) hide show
  1. package/dist/connections/ConnectionDetailsTab.d.ts +4 -1
  2. package/dist/connections/ConnectionDetailsTab.js +18 -15
  3. package/dist/connections/ConnectionDialog.d.ts +8 -2
  4. package/dist/connections/ConnectionDialog.js +18 -17
  5. package/dist/connections/ConnectionDialogPanel.d.ts +3 -1
  6. package/dist/connections/ConnectionDialogPanel.js +141 -135
  7. package/dist/connections/ShareConnectionDialog.d.ts +23 -0
  8. package/dist/connections/ShareConnectionDialog.js +146 -0
  9. package/dist/connections/SharePanels.d.ts +32 -0
  10. package/dist/connections/SharePanels.js +158 -0
  11. package/dist/connections/VisibilityChoice.d.ts +12 -0
  12. package/dist/connections/VisibilityChoice.js +60 -0
  13. package/dist/connections/api.d.ts +12 -1
  14. package/dist/connections/api.js +1 -1
  15. package/dist/connections/connectionFlow.d.ts +6 -1
  16. package/dist/connections/connectionFlow.js +1 -1
  17. package/dist/connections/index.d.ts +4 -1
  18. package/dist/connections/sharingApi.d.ts +28 -0
  19. package/dist/connections/sharingApi.js +215 -0
  20. package/dist/connections/types.d.ts +31 -0
  21. package/dist/connections/useConnectionSharingDraft.d.ts +40 -0
  22. package/dist/connections/useConnectionSharingDraft.js +93 -0
  23. package/dist/connections.js +12 -9
  24. package/dist/shared/assistant/i18nManifest.d.ts +18 -0
  25. package/dist/shared/assistant/i18nManifest.js +18 -0
  26. package/dist/shared/assistant/index.d.ts +4 -0
  27. package/dist/shared/assistant/ui/AIAssistantPanel.d.ts +9 -1
  28. package/dist/shared/assistant/ui/AIAssistantPanel.js +194 -174
  29. package/dist/shared/assistant/ui/AssistantChatArea.d.ts +33 -0
  30. package/dist/shared/assistant/ui/AssistantChatArea.js +1463 -1397
  31. package/dist/shared/assistant/ui/AssistantLanguageMenu.d.ts +9 -1
  32. package/dist/shared/assistant/ui/AssistantLanguageMenu.js +22 -22
  33. package/dist/shared/assistant/ui/AssistantOverlay.d.ts +16 -2
  34. package/dist/shared/assistant/ui/AssistantOverlay.js +219 -200
  35. package/dist/shared/assistant/ui/assistantOverlayState.d.ts +16 -2
  36. package/dist/shared/assistant/ui/assistantOverlayState.js +57 -40
  37. package/dist/shared/assistant/ui/compact/AssistantConversationMenu.js +53 -52
  38. package/dist/shared/assistant/ui/compact/AssistantDiscardDraftDialog.js +3 -4
  39. package/dist/shared/assistant/ui/compact/AssistantLanguagePill.d.ts +29 -0
  40. package/dist/shared/assistant/ui/compact/AssistantLanguagePill.js +98 -0
  41. package/dist/shared/assistant/ui/compact/AssistantVoiceReady.d.ts +31 -0
  42. package/dist/shared/assistant/ui/compact/AssistantVoiceReady.js +41 -0
  43. package/dist/shared/assistant/ui/compact/AssistantWaitingChangeRow.d.ts +6 -0
  44. package/dist/shared/assistant/ui/compact/AssistantWaitingChangeRow.js +5 -5
  45. package/dist/shared/assistant/ui/compact/AssistantWindowHeader.d.ts +22 -5
  46. package/dist/shared/assistant/ui/compact/AssistantWindowHeader.js +45 -31
  47. package/dist/shared/assistant/ui/compact/windowView.d.ts +50 -0
  48. package/dist/shared/assistant/ui/compact/windowView.js +31 -0
  49. package/dist/shared/assistant/ui/composer/AssistantComposer.d.ts +6 -0
  50. package/dist/shared/assistant/ui/composer/AssistantComposer.js +90 -89
  51. package/dist/shared/assistant/ui/composer/AssistantModeMenu.d.ts +6 -0
  52. package/dist/shared/assistant/ui/composer/AssistantModeMenu.js +83 -83
  53. package/dist/shared/assistant/ui/voice/AssistantVoiceSession.d.ts +31 -0
  54. package/dist/shared/assistant/ui/voice/AssistantVoiceSession.js +270 -166
  55. package/dist/shared/assistant/ui/voice/VoiceStage.d.ts +8 -0
  56. package/dist/shared/assistant/ui/voice/VoiceStage.js +10 -10
  57. package/dist/shared/assistant/voice/voiceStartedCue.d.ts +11 -0
  58. package/dist/shared/assistant/voice/voiceStartedCue.js +7 -0
  59. package/dist/shared-assistant.js +266 -262
  60. package/dist/ui/modal-shell.d.ts +6 -1
  61. package/dist/ui/modal-shell.js +7 -6
  62. package/package.json +1 -1
@@ -23,4 +23,12 @@ import { FC } from 'react';
23
23
  * already scrolls, searches and localises itself — worth far more across nine
24
24
  * Indic languages than a custom dropdown that reimplements all three badly.
25
25
  */
26
- export declare const AssistantLanguageMenu: FC;
26
+ export interface AssistantLanguageMenuProps {
27
+ /**
28
+ * BOFF-10180 (the Quick assistant window's language pill, CW-L): the input
29
+ * language ONLY. A pinned reply language stays in the full assistant, so its
30
+ * row is not drawn. Absent: both rows, exactly as before.
31
+ */
32
+ inputOnly?: boolean;
33
+ }
34
+ export declare const AssistantLanguageMenu: FC<AssistantLanguageMenuProps>;
@@ -7,17 +7,17 @@ import { useMemo as a } from "react";
7
7
  import { Languages as o } from "lucide-react";
8
8
  import { jsx as s, jsxs as c } from "react/jsx-runtime";
9
9
  //#region src/shared/assistant/ui/AssistantLanguageMenu.tsx
10
- var l = "__match__", u = () => {
11
- let u = t(), { locale: d } = e(), f = n((e) => e.assistantLanguage), p = n((e) => e.setAssistantLanguage), m = n((e) => e.replyLanguage), h = n((e) => e.setReplyLanguage), g = a(() => i(f, m, d), [
12
- f,
13
- m,
14
- d
15
- ]), _ = u("language.inputLabel", "Language"), v = u("language.replyLabel", "Assistant replies in"), y = f ?? "";
10
+ var l = "__match__", u = ({ inputOnly: u = !1 }) => {
11
+ let d = t(), { locale: f } = e(), p = n((e) => e.assistantLanguage), m = n((e) => e.setAssistantLanguage), h = n((e) => e.replyLanguage), g = n((e) => e.setReplyLanguage), _ = a(() => i(p, h, f), [
12
+ p,
13
+ h,
14
+ f
15
+ ]), v = d("language.inputLabel", "Language"), y = d("language.replyLabel", "Assistant replies in"), b = p ?? "";
16
16
  return /* @__PURE__ */ c("div", {
17
17
  "data-testid": "assistant-language-menu",
18
18
  children: [/* @__PURE__ */ c("label", {
19
19
  className: "relative flex cursor-pointer items-center gap-2.5 px-3 py-2 text-xs text-text-primary transition-colors hover:bg-bg-elevated focus-within:ring-2 focus-within:ring-border-strong",
20
- title: `${_}: ${g.input.label}`,
20
+ title: `${v}: ${_.input.label}`,
21
21
  "data-testid": "assistant-input-language",
22
22
  children: [
23
23
  /* @__PURE__ */ s(o, {
@@ -26,56 +26,56 @@ var l = "__match__", u = () => {
26
26
  }),
27
27
  /* @__PURE__ */ s("span", {
28
28
  className: "flex-1",
29
- children: _
29
+ children: v
30
30
  }),
31
31
  /* @__PURE__ */ s("span", {
32
32
  className: "text-text-muted",
33
- children: g.input.label
33
+ children: _.input.label
34
34
  }),
35
35
  /* @__PURE__ */ c("select", {
36
- "aria-label": _,
37
- value: y,
36
+ "aria-label": v,
37
+ value: b,
38
38
  onChange: (e) => {
39
39
  let t = e.target.value;
40
- p(t === "" ? null : t);
40
+ m(t === "" ? null : t);
41
41
  },
42
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
- children: u("voice.languageFollowApp", "Same as interface")
45
+ children: d("voice.languageFollowApp", "Same as interface")
46
46
  }), r.map((e) => /* @__PURE__ */ s("option", {
47
47
  value: e.code,
48
48
  children: e.label
49
49
  }, e.code))]
50
50
  })
51
51
  ]
52
- }), /* @__PURE__ */ c("label", {
52
+ }), u ? null : /* @__PURE__ */ c("label", {
53
53
  className: "relative flex cursor-pointer items-center gap-2.5 py-2 pl-9 pr-3 text-xs text-text-secondary transition-colors hover:bg-bg-elevated focus-within:ring-2 focus-within:ring-border-strong",
54
- title: `${v}: ${g.reply.english}`,
54
+ title: `${y}: ${_.reply.english}`,
55
55
  "data-testid": "assistant-reply-language",
56
56
  children: [
57
57
  /* @__PURE__ */ s("span", {
58
58
  className: "flex-1",
59
- children: v
59
+ children: y
60
60
  }),
61
61
  /* @__PURE__ */ s("span", {
62
62
  className: "text-text-muted",
63
- children: m === null ? `${u("language.replyMatch", "Match my language")} (${g.reply.label})` : g.reply.label
63
+ children: h === null ? `${d("language.replyMatch", "Match my language")} (${_.reply.label})` : _.reply.label
64
64
  }),
65
65
  /* @__PURE__ */ c("select", {
66
- "aria-label": v,
67
- value: m ?? l,
66
+ "aria-label": y,
67
+ value: h ?? l,
68
68
  onChange: (e) => {
69
69
  let t = e.target.value;
70
- h(t === l ? null : t);
70
+ g(t === l ? null : t);
71
71
  },
72
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: [
76
- u("language.replyMatch", "Match my language"),
76
+ d("language.replyMatch", "Match my language"),
77
77
  " (",
78
- g.input.label,
78
+ _.input.label,
79
79
  ")"
80
80
  ]
81
81
  }), r.map((e) => /* @__PURE__ */ s("option", {
@@ -3,7 +3,7 @@ import { QuotaKind } from '../quota';
3
3
  import { AIAssistantPanelProps } from './AIAssistantPanel';
4
4
  import { AssistantNavigate } from './AssistantMarkdownRenderer';
5
5
  import { AssistantPresentation } from './composer/AssistantComposer';
6
- import { AssistantOverlayKeys, AssistantSurface } from './assistantOverlayState';
6
+ import { AssistantOverlayKeys, AssistantSurface, AssistantWindowView } from './assistantOverlayState';
7
7
  export interface AssistantOverlayContextValue {
8
8
  isOpen: boolean;
9
9
  open: () => void;
@@ -67,6 +67,16 @@ export interface AssistantOverlayContextValue {
67
67
  */
68
68
  expanded: boolean;
69
69
  setExpanded: (expanded: boolean) => void;
70
+ /**
71
+ * BOFF-10180 (CW-V): the Quick assistant window's LAST USED view, or null
72
+ * when none was ever chosen (the window then opens on Voice where voice is
73
+ * available, else on Chat). Remembered in localStorage, per profile, like the
74
+ * Dock/Float pick. Always null in classic. Optional, like `registerCloseGuard`, so a
75
+ * host that builds this value itself keeps compiling.
76
+ */
77
+ windowView?: AssistantWindowView | null;
78
+ /** Remember the window's view. A no-op in classic. */
79
+ setWindowView?: (view: AssistantWindowView) => void;
70
80
  }
71
81
  /** The overlay state in force, or null when no provider is mounted. */
72
82
  export declare function useAssistantOverlayOrNull(): AssistantOverlayContextValue | null;
@@ -165,6 +175,10 @@ export interface AssistantOverlayPanelProps {
165
175
  onMinimize?: () => void;
166
176
  /** Told when Expand/Restore is pressed, so the container takes the N2 width. */
167
177
  onExpandedChange?: (expanded: boolean) => void;
178
+ /** The window's last used view (CW-V), or null when none was ever chosen. */
179
+ windowView?: AssistantWindowView | null;
180
+ /** The window's view was chosen: remember it. */
181
+ onWindowViewChange?: (view: AssistantWindowView) => void;
168
182
  }
169
183
  /**
170
184
  * The props the overlay itself decides, which a product's `panelProps` may not
@@ -172,7 +186,7 @@ export interface AssistantOverlayPanelProps {
172
186
  * accepted in `panelProps` (Slice 2), and the overlay's value is merged over
173
187
  * them only in the compact presentation.
174
188
  */
175
- type AssistantOverlayOwnedPanelProp = 'panelId' | 'visible' | 'onClose' | 'docked' | 'onToggleDock' | 'onNavigate' | 'isShellLessTarget' | 'surface' | 'onOpenFull' | 'onMinimize';
189
+ type AssistantOverlayOwnedPanelProp = 'panelId' | 'visible' | 'onClose' | 'docked' | 'onToggleDock' | 'onNavigate' | 'isShellLessTarget' | 'surface' | 'onOpenFull' | 'onMinimize' | 'windowView' | 'onWindowViewChange';
176
190
  export interface AssistantOverlayProps {
177
191
  /** Panel id handed to the panel. */
178
192
  panelId?: string;