@burdenoff/fe-libs 2026.1007.3 → 2026.1007.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/dist/chrome/AutoBreadcrumbs.d.ts.map +1 -1
  2. package/dist/chrome/AutoBreadcrumbs.js +65 -76
  3. package/dist/chrome/Breadcrumb.d.ts.map +1 -1
  4. package/dist/chrome/Breadcrumbs.d.ts.map +1 -1
  5. package/dist/chrome/Breadcrumbs.js +47 -46
  6. package/dist/chrome/ContextSwitcher.js +86 -86
  7. package/dist/chrome/HeaderBar.d.ts.map +1 -1
  8. package/dist/chrome/HeaderBar.js +111 -107
  9. package/dist/chrome/HeaderThemeSwitcher.d.ts.map +1 -1
  10. package/dist/chrome/HeaderThemeSwitcher.js +46 -45
  11. package/dist/chrome/LanguageSwitcher.js +4 -4
  12. package/dist/chrome/MobileTabBar.js +4 -4
  13. package/dist/chrome/PageHeader.d.ts.map +1 -1
  14. package/dist/chrome/PageHeader.js +32 -30
  15. package/dist/chrome/PersonaSurfaceControls.js +8 -8
  16. package/dist/chrome/ProductSideNav.js +6 -6
  17. package/dist/chrome/ProfileSwitcher.d.ts.map +1 -1
  18. package/dist/chrome/ProfileSwitcher.js +89 -88
  19. package/dist/chrome/SideNavigation.js +4 -4
  20. package/dist/chrome/Tabs.d.ts.map +1 -1
  21. package/dist/chrome/Tabs.js +30 -29
  22. package/dist/chrome/breadcrumbLabel.d.ts +10 -0
  23. package/dist/chrome/breadcrumbLabel.d.ts.map +1 -0
  24. package/dist/chrome/breadcrumbLabel.js +31 -0
  25. package/dist/chrome/contextSwitcher/TriggerButton.d.ts.map +1 -1
  26. package/dist/chrome/contextSwitcher/TriggerButton.js +40 -36
  27. package/dist/chrome/notificationCenter/BellButton.d.ts.map +1 -1
  28. package/dist/chrome/notificationCenter/BellButton.js +29 -25
  29. package/dist/chrome/shellLabelManifest.d.ts +27 -0
  30. package/dist/chrome/shellLabelManifest.d.ts.map +1 -0
  31. package/dist/chrome/sideNavigation/SidebarHeader.d.ts.map +1 -1
  32. package/dist/chrome/sideNavigation/SidebarHeader.js +23 -22
  33. package/dist/shared/assistant/appControls/languageReply.d.ts +6 -1
  34. package/dist/shared/assistant/appControls/languageReply.d.ts.map +1 -1
  35. package/dist/shared/assistant/i18nManifest.d.ts +20 -5
  36. package/dist/shared/assistant/i18nManifest.d.ts.map +1 -1
  37. package/dist/shared/assistant/i18nManifest.js +30 -22
  38. package/dist/shared/assistant/index.d.ts +3 -0
  39. package/dist/shared/assistant/index.d.ts.map +1 -1
  40. package/dist/shared/assistant/productCopy.d.ts +78 -0
  41. package/dist/shared/assistant/productCopy.d.ts.map +1 -0
  42. package/dist/shared/assistant/productCopy.js +45 -0
  43. package/dist/shared/assistant/store.d.ts +10 -0
  44. package/dist/shared/assistant/store.d.ts.map +1 -1
  45. package/dist/shared/assistant/store.js +19 -8
  46. package/dist/shared/assistant/ui/AssistantChatArea.d.ts.map +1 -1
  47. package/dist/shared/assistant/ui/AssistantChatArea.js +1070 -1067
  48. package/dist/shared/assistant/ui/AssistantEmptyState.d.ts.map +1 -1
  49. package/dist/shared/assistant/ui/AssistantEmptyState.js +30 -22
  50. package/dist/shared/assistant/ui/AssistantHeader.d.ts.map +1 -1
  51. package/dist/shared/assistant/ui/AssistantHeader.js +46 -45
  52. package/dist/shared/assistant/ui/useVoiceSession.d.ts +14 -1
  53. package/dist/shared/assistant/ui/useVoiceSession.d.ts.map +1 -1
  54. package/dist/shared/assistant/ui/useVoiceSession.js +241 -233
  55. package/dist/shared/assistant/ui/voice/AssistantVoiceSession.d.ts +7 -0
  56. package/dist/shared/assistant/ui/voice/AssistantVoiceSession.d.ts.map +1 -1
  57. package/dist/shared/assistant/ui/voice/AssistantVoiceSession.js +137 -130
  58. package/dist/shared/assistant/ui/voice/HandsFreePrivacyNotice.d.ts +27 -0
  59. package/dist/shared/assistant/ui/voice/HandsFreePrivacyNotice.d.ts.map +1 -0
  60. package/dist/shared/assistant/ui/voice/HandsFreePrivacyNotice.js +52 -0
  61. package/dist/shared/assistant/voice/handsfree/backendStreamTransport.d.ts +29 -6
  62. package/dist/shared/assistant/voice/handsfree/backendStreamTransport.d.ts.map +1 -1
  63. package/dist/shared/assistant/voice/handsfree/backendStreamTransport.js +138 -63
  64. package/dist/shared/assistant/voice/handsfree/handsFreeController.d.ts +7 -1
  65. package/dist/shared/assistant/voice/handsfree/handsFreeController.d.ts.map +1 -1
  66. package/dist/shared/assistant/voice/handsfree/handsFreeRuntime.d.ts +18 -10
  67. package/dist/shared/assistant/voice/handsfree/handsFreeRuntime.d.ts.map +1 -1
  68. package/dist/shared/assistant/voice/handsfree/handsFreeRuntime.js +46 -57
  69. package/dist/shared/assistant/voice/handsfree/streamingConfig.d.ts +103 -0
  70. package/dist/shared/assistant/voice/handsfree/streamingConfig.d.ts.map +1 -0
  71. package/dist/shared/assistant/voice/handsfree/streamingConfig.js +71 -0
  72. package/dist/shared/assistant/voice/handsfree/sttTransport.d.ts +12 -7
  73. package/dist/shared/assistant/voice/handsfree/sttTransport.d.ts.map +1 -1
  74. package/dist/shared/assistant/voice/handsfree/sttTransport.js +1 -1
  75. package/dist/shared/assistant/voice/handsfree/useHandsFreeInterrupt.d.ts +23 -1
  76. package/dist/shared/assistant/voice/handsfree/useHandsFreeInterrupt.d.ts.map +1 -1
  77. package/dist/shared/assistant/voice/handsfree/useHandsFreeInterrupt.js +63 -50
  78. package/dist/shared/components/ContextConversationWidget.js +1 -1
  79. package/dist/shared/events/sinks/RybbitSink.d.ts.map +1 -1
  80. package/dist/shared/events/sinks/RybbitSink.js +66 -69
  81. package/dist/shared/providers/AppShellProvider.d.ts +17 -0
  82. package/dist/shared/providers/AppShellProvider.d.ts.map +1 -1
  83. package/dist/shared/providers/AppShellProvider.js +188 -180
  84. package/dist/shared/providers/shell/I18nProvider.d.ts +92 -4
  85. package/dist/shared/providers/shell/I18nProvider.d.ts.map +1 -1
  86. package/dist/shared/providers/shell/I18nProvider.js +187 -79
  87. package/dist/shared/providers/shell/ProfileI18nBridge.d.ts +18 -2
  88. package/dist/shared/providers/shell/ProfileI18nBridge.d.ts.map +1 -1
  89. package/dist/shared/providers/shell/ProfileI18nBridge.js +55 -41
  90. package/dist/shared/providers/shell/directionMode.d.ts +25 -0
  91. package/dist/shared/providers/shell/directionMode.d.ts.map +1 -0
  92. package/dist/shared/providers/shell/directionMode.js +34 -0
  93. package/dist/shared/providers/shell/index.d.ts +4 -2
  94. package/dist/shared/providers/shell/index.d.ts.map +1 -1
  95. package/dist/shared/providers/shell/translationLayers.d.ts +30 -0
  96. package/dist/shared/providers/shell/translationLayers.d.ts.map +1 -0
  97. package/dist/shared/providers/shell/translationLayers.js +35 -0
  98. package/dist/shared/providers/shell/translationStore.d.ts +55 -0
  99. package/dist/shared/providers/shell/translationStore.d.ts.map +1 -0
  100. package/dist/shared/providers/shell/translationStore.js +100 -0
  101. package/dist/shared/providers/shell/useShellLabel.d.ts +13 -1
  102. package/dist/shared/providers/shell/useShellLabel.d.ts.map +1 -1
  103. package/dist/shared/providers/shell/useShellLabel.js +10 -9
  104. package/dist/shared-assistant.js +190 -187
  105. package/dist/shared-providers-shell.js +20 -19
  106. package/dist/ui/boff-ui2.d.ts.map +1 -1
  107. package/dist/ui/cta-overflow-menu.d.ts.map +1 -1
  108. package/dist/ui/cta-overflow-menu.js +20 -18
  109. package/dist/ui/guidance.d.ts +1 -1
  110. package/dist/ui/guidance.d.ts.map +1 -1
  111. package/dist/ui/guidance.js +53 -52
  112. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantEmptyState.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantEmptyState.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAMtE,UAAU,KAAK;IACb,IAAI,EAAE,aAAa,CAAC;IACpB;;;OAGG;IACH,iBAAiB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IAC1E;;;OAGG;IACH,WAAW,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IACxC;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,KAAK,CA8FzC,CAAC"}
1
+ {"version":3,"file":"AssistantEmptyState.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantEmptyState.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAC;AAWxB,UAAU,KAAK;IACb,IAAI,EAAE,aAAa,CAAC;IACpB;;;OAGG;IACH,iBAAiB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IAC1E;;;OAGG;IACH,WAAW,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IACxC;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,KAAK,CAqHzC,CAAC"}
@@ -1,48 +1,56 @@
1
1
  import { resolveModeConfig as e, useAssistantPageLabel as t, useAssistantProduct as n } from "../product.js";
2
2
  import { useAssistantTr as r } from "../i18n.js";
3
- import { hasConnectSource as i, useAssistantConnectSource as a } from "./composer/connectSource.js";
4
- import { AssistantConnectSourceItem as o } from "./composer/AssistantConnectSourceItem.js";
5
- import { Sparkles as s } from "lucide-react";
6
- import { jsx as c, jsxs as l } from "react/jsx-runtime";
3
+ import { AUTO_READ_MODE as i, AUTO_WRITE_MODE as a } from "../autoRouting.js";
4
+ import { assistantPageLabelKey as o, assistantSuggestionKey as s, translateProductCopy as c } from "../productCopy.js";
5
+ import { hasConnectSource as l, useAssistantConnectSource as u } from "./composer/connectSource.js";
6
+ import { AssistantConnectSourceItem as d } from "./composer/AssistantConnectSourceItem.js";
7
+ import { Sparkles as f } from "lucide-react";
8
+ import { jsx as p, jsxs as m } from "react/jsx-runtime";
7
9
  //#region src/shared/assistant/ui/AssistantEmptyState.tsx
8
- var u = ({ mode: u, onSuggestionClick: d, suggestions: f, explainsAuto: p = !1 }) => {
9
- let m = r(), { modes: h } = n(), g = e(h, u), _ = t(), v = f ?? (g?.suggestions.slice(0, 4) ?? []).map((e) => ({ text: e })), y = i(a());
10
- return /* @__PURE__ */ l("div", {
10
+ var h = ({ mode: h, onSuggestionClick: g, suggestions: _, explainsAuto: v = !1 }) => {
11
+ let y = r(), { modes: b } = n(), x = e(b, h), S = t(), C = (_ ?? (x?.suggestions.slice(0, 4) ?? []).map((e) => ({ text: e }))).map((e) => {
12
+ let t = e.intent === "act" ? a : e.intent === "read" ? i : x?.id ?? h;
13
+ return {
14
+ ...e,
15
+ display: c(y, s(t, e.text), e.text)
16
+ };
17
+ }), w = S ? c(y, o(S), S) : null, T = l(u());
18
+ return /* @__PURE__ */ m("div", {
11
19
  className: "flex flex-1 flex-col items-center justify-center overflow-y-auto px-6 py-8 text-center",
12
20
  children: [
13
- /* @__PURE__ */ c("div", {
21
+ /* @__PURE__ */ p("div", {
14
22
  className: "flex size-12 items-center justify-center rounded-2xl bg-gradient-to-br from-action-primary-bg/25 to-action-primary-bg/5 text-action-primary-bg shadow-sm",
15
- children: /* @__PURE__ */ c(s, { className: "size-6" })
23
+ children: /* @__PURE__ */ p(f, { className: "size-6" })
16
24
  }),
17
- /* @__PURE__ */ c("h2", {
25
+ /* @__PURE__ */ p("h2", {
18
26
  className: "mt-5 text-2xl font-semibold leading-tight tracking-tight text-text-primary",
19
- children: m("empty.title", "How can I help?")
27
+ children: y("empty.title", "How can I help?")
20
28
  }),
21
- /* @__PURE__ */ c("p", {
29
+ /* @__PURE__ */ p("p", {
22
30
  className: "mt-2 max-w-[16rem] text-[13px] leading-relaxed text-text-muted",
23
- children: _ ? m("empty.subtitle", "You're viewing {{page}}. Ask about it, or pick a suggestion below.", { page: _ }) : m("empty.subtitleNoPage", "Ask me anything, or pick a suggestion below.")
31
+ children: w ? y("empty.subtitle", "You're viewing {{page}}. Ask about it, or pick a suggestion below.", { page: w }) : y("empty.subtitleNoPage", "Ask me anything, or pick a suggestion below.")
24
32
  }),
25
- p ? /* @__PURE__ */ c("p", {
33
+ v ? /* @__PURE__ */ p("p", {
26
34
  className: "mt-2 max-w-[18rem] text-[12px] leading-relaxed text-text-muted",
27
35
  "data-testid": "assistant-auto-explainer",
28
- children: m("modeSelector.autoHint", "Answers your questions, and proposes changes for you to approve")
36
+ children: y("modeSelector.autoHint", "Answers your questions, and proposes changes for you to approve")
29
37
  }) : null,
30
- /* @__PURE__ */ c("div", {
38
+ /* @__PURE__ */ p("div", {
31
39
  className: "mt-6 flex flex-wrap items-center justify-center gap-2",
32
- children: v.map((e) => /* @__PURE__ */ c("button", {
40
+ children: C.map((e) => /* @__PURE__ */ p("button", {
33
41
  type: "button",
34
- onClick: () => d(e.text, e.intent),
42
+ onClick: () => g(e.display, e.intent),
35
43
  className: "rounded-full border border-border-subtle bg-bg-surface px-3.5 py-2 text-[13px] leading-tight text-text-primary shadow-sm transition-[color,background-color,border-color,box-shadow] hover:border-action-primary-bg/40 hover:bg-bg-elevated hover:shadow-md",
36
44
  "data-testid": "assistant-suggestion",
37
- children: e.text
45
+ children: e.display
38
46
  }, e.text))
39
47
  }),
40
- y ? /* @__PURE__ */ c("div", {
48
+ T ? /* @__PURE__ */ p("div", {
41
49
  className: "mt-5",
42
- children: /* @__PURE__ */ c(o, { presentation: "action" })
50
+ children: /* @__PURE__ */ p(d, { presentation: "action" })
43
51
  }) : null
44
52
  ]
45
53
  });
46
54
  };
47
55
  //#endregion
48
- export { u as AssistantEmptyState };
56
+ export { h as AssistantEmptyState };
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantHeader.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAehC,UAAU,KAAK;IACb,qEAAqE;IACrE;;;;;;;OAOG;IACH,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,gFAAgF;IAChF,WAAW,EAAE,OAAO,CAAC;IACrB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,KAAK,CA+IrC,CAAC"}
1
+ {"version":3,"file":"AssistantHeader.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAgBhC,UAAU,KAAK;IACb,qEAAqE;IACrE;;;;;;;OAOG;IACH,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,gFAAgF;IAChF,WAAW,EAAE,OAAO,CAAC;IACrB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,KAAK,CAqJrC,CAAC"}
@@ -1,82 +1,83 @@
1
1
  import { useAssistantTr as e } from "../i18n.js";
2
- import { useAssistantPreview as t } from "../preview/context.js";
3
- import { hasAssistantPreviewSurface as n } from "../preview/types.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";
2
+ import { assistantPageLabelKey as t, translateProductCopy as n } from "../productCopy.js";
3
+ import { useAssistantPreview as r } from "../preview/context.js";
4
+ import { hasAssistantPreviewSurface as i } from "../preview/types.js";
5
+ import { AssistantMoreMenu as a } from "./AssistantMoreMenu.js";
6
+ import { Eye as o, History as s, PanelBottom as c, PanelRight as l, Plus as u, Sparkles as d, X as f } from "lucide-react";
7
+ import { Fragment as p, jsx as m, jsxs as h } from "react/jsx-runtime";
7
8
  //#region src/shared/assistant/ui/AssistantHeader.tsx
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 = t();
10
- return /* @__PURE__ */ p("div", {
9
+ var g = ({ contextLabel: g, onNewConversation: _, onOpenHistory: v, historyOpen: y, onTogglePreview: b, previewOpen: x, onClose: S, docked: C, onToggleDock: w }) => {
10
+ let T = e(), E = r();
11
+ return /* @__PURE__ */ h("div", {
11
12
  className: "flex items-center gap-2 border-b border-border-default bg-bg-elevated px-3 py-2.5",
12
- children: [/* @__PURE__ */ p("div", {
13
+ children: [/* @__PURE__ */ h("div", {
13
14
  className: "flex min-w-0 flex-1 items-center gap-2",
14
- children: [/* @__PURE__ */ f("span", {
15
+ children: [/* @__PURE__ */ m("span", {
15
16
  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",
16
- children: /* @__PURE__ */ f(l, { className: "size-4" })
17
- }), /* @__PURE__ */ p("span", {
17
+ children: /* @__PURE__ */ m(d, { className: "size-4" })
18
+ }), /* @__PURE__ */ h("span", {
18
19
  className: "min-w-0 flex-1",
19
- children: [/* @__PURE__ */ f("span", {
20
+ children: [/* @__PURE__ */ m("span", {
20
21
  className: "block truncate text-[14px] font-semibold leading-tight text-text-primary",
21
- children: C("header.title", "AI Assistant")
22
- }), /* @__PURE__ */ p("span", {
22
+ children: T("header.title", "AI Assistant")
23
+ }), /* @__PURE__ */ h("span", {
23
24
  className: "block truncate text-[11px] leading-tight text-text-muted",
24
- children: [C("header.ready", "Ready"), m && /* @__PURE__ */ p(d, { children: [/* @__PURE__ */ f("span", {
25
+ children: [T("header.ready", "Ready"), g && /* @__PURE__ */ h(p, { children: [/* @__PURE__ */ m("span", {
25
26
  "aria-hidden": "true",
26
27
  children: " · "
27
- }), C("header.context", "Context: {{page}}", { page: m })] })]
28
+ }), T("header.context", "Context: {{page}}", { page: n(T, t(g), g) })] })]
28
29
  })]
29
30
  })]
30
- }), /* @__PURE__ */ p("div", {
31
+ }), /* @__PURE__ */ h("div", {
31
32
  className: "flex flex-shrink-0 items-center gap-0.5",
32
33
  children: [
33
- /* @__PURE__ */ f("button", {
34
+ /* @__PURE__ */ m("button", {
34
35
  type: "button",
35
- onClick: h,
36
+ onClick: _,
36
37
  className: "rounded-lg p-1.5 text-text-secondary transition-colors hover:bg-bg-sunken hover:text-text-primary",
37
- "aria-label": C("header.newConversation", "New conversation"),
38
+ "aria-label": T("header.newConversation", "New conversation"),
38
39
  "data-testid": "assistant-new-conversation",
39
- children: /* @__PURE__ */ f(c, { className: "size-4" })
40
+ children: /* @__PURE__ */ m(u, { className: "size-4" })
40
41
  }),
41
- /* @__PURE__ */ f("button", {
42
+ /* @__PURE__ */ m("button", {
42
43
  type: "button",
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": _,
44
+ onClick: v,
45
+ 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"}`,
46
+ "aria-label": T("header.history", "Conversation history"),
47
+ "aria-pressed": y,
47
48
  "data-testid": "assistant-open-history",
48
- children: /* @__PURE__ */ f(a, { className: "size-4" })
49
+ children: /* @__PURE__ */ m(s, { className: "size-4" })
49
50
  }),
50
- n(w) && v && /* @__PURE__ */ f("button", {
51
+ i(E) && b && /* @__PURE__ */ m("button", {
51
52
  type: "button",
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,
53
+ onClick: b,
54
+ className: `rounded-lg p-1.5 transition-colors ${x ? "bg-action-primary-bg/15 text-action-primary-bg" : "text-text-secondary hover:bg-bg-sunken hover:text-text-primary"}`,
55
+ "aria-label": E.label ?? T("header.preview", "Preview"),
56
+ "aria-pressed": !!x,
56
57
  "data-testid": "assistant-toggle-preview",
57
- children: /* @__PURE__ */ f(i, { className: "size-4" })
58
+ children: /* @__PURE__ */ m(o, { className: "size-4" })
58
59
  }),
59
- /* @__PURE__ */ f(r, {}),
60
- S && /* @__PURE__ */ f("button", {
60
+ /* @__PURE__ */ m(a, {}),
61
+ w && /* @__PURE__ */ m("button", {
61
62
  type: "button",
62
- onClick: S,
63
+ onClick: w,
63
64
  className: "hidden rounded-lg p-1.5 text-text-secondary transition-colors hover:bg-bg-sunken hover:text-text-primary sm:inline-flex",
64
- "aria-label": x ? C("header.float", "Float chat window") : C("header.dock", "Dock to side panel"),
65
- "aria-pressed": x,
65
+ "aria-label": C ? T("header.float", "Float chat window") : T("header.dock", "Dock to side panel"),
66
+ "aria-pressed": C,
66
67
  "data-testid": "assistant-toggle-dock",
67
- children: f(x ? o : s, { className: "size-4" })
68
+ children: m(C ? c : l, { className: "size-4" })
68
69
  }),
69
- /* @__PURE__ */ f("button", {
70
+ /* @__PURE__ */ m("button", {
70
71
  type: "button",
71
- onClick: b,
72
+ onClick: S,
72
73
  className: "rounded-lg p-1.5 text-text-secondary transition-colors hover:bg-bg-sunken hover:text-text-primary",
73
- "aria-label": C("header.close", "Close assistant"),
74
+ "aria-label": T("header.close", "Close assistant"),
74
75
  "data-testid": "assistant-close",
75
- children: /* @__PURE__ */ f(u, { className: "size-4" })
76
+ children: /* @__PURE__ */ m(f, { className: "size-4" })
76
77
  })
77
78
  ]
78
79
  })]
79
80
  });
80
81
  };
81
82
  //#endregion
82
- export { m as AssistantHeader };
83
+ export { g as AssistantHeader };
@@ -80,6 +80,13 @@ interface Options {
80
80
  * OFF; with it off nothing of the hands-free capture exists at runtime.
81
81
  */
82
82
  handsFreeInterrupt?: boolean;
83
+ /**
84
+ * H3 backend stream: the privacy-notice version this profile accepted
85
+ * (`handsFreeStreamNoticeAccepted` in the store), or null.
86
+ */
87
+ handsFreeStreamNoticeAccepted?: string | null;
88
+ /** H3 backend stream: the person pressed Continue on the notice `version`. */
89
+ onAcceptHandsFreeStreamNotice?: (version: string) => void;
83
90
  /**
84
91
  * H3: the user's voice started while the assistant was answering. The audio
85
92
  * is already stopped and the session is back to `listening`; the owner of the
@@ -114,7 +121,7 @@ export interface VoiceSubmitMeta {
114
121
  * microphone's lifetime, and turning "auto-speak is currently on" back off again
115
122
  * when the session ends.
116
123
  */
117
- export declare function useVoiceSession({ onSubmit, latestReply, language, graceMs: graceChoice, onSupersede, handsFreeInterrupt, onBargeIn, }: Options): {
124
+ export declare function useVoiceSession({ onSubmit, latestReply, language, graceMs: graceChoice, onSupersede, handsFreeInterrupt, handsFreeStreamNoticeAccepted, onAcceptHandsFreeStreamNotice, onBargeIn, }: Options): {
118
125
  session: Readonly<VoiceSessionSnapshot>;
119
126
  /** A recoverable problem worth showing, or null when all is well. */
120
127
  notice: VoiceSessionNotice | null;
@@ -156,6 +163,12 @@ export declare function useVoiceSession({ onSubmit, latestReply, language, grace
156
163
  nothingHeard: boolean;
157
164
  transportKind: import('..').SttTransportKind | null;
158
165
  fallbackReason: import('..').FallbackReason | null;
166
+ /**
167
+ * Non-null while the backend stream's privacy notice must be answered
168
+ * before the microphone opens: Continue (`accept`) or Not now
169
+ * (`decline`).
170
+ */
171
+ privacyNotice: import('..').HandsFreePrivacyNoticeActions | null;
159
172
  };
160
173
  /** Can a session be offered at all on this device? */
161
174
  available: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"useVoiceSession.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/useVoiceSession.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAe,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIpE,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAgBL,KAAK,oBAAoB,EAE1B,MAAM,uBAAuB,CAAC;AAsC/B;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,eAAe,GACf,eAAe,GACf,oBAAoB;AACtB,oFAAoF;GAClF,0BAA0B;AAC5B,qFAAqF;GACnF,qBAAqB,CAAC;AAE1B;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;CAC7B;AAMD,UAAU,OAAO;IACf,+EAA+E;IAC/E;;;;;;;OAOG;IACH,QAAQ,EAAE,CACR,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM;IACtB;;;OAGG;IACH,MAAM,EAAE,eAAe;IACvB;;;;;OAKG;IACH,IAAI,EAAE,eAAe,KAClB,IAAI,CAAC;IACV;;;;OAIG;IACH,WAAW,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACjD,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IAChC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,OAAO,EAAE,WAAW,EACpB,WAAW,EACX,kBAAkB,EAClB,SAAS,GACV,EAAE,OAAO;;IA48BJ,qEAAqE;;IAQrE;;;;;;;OAOG;;IAEH,+DAA+D;;IAE/D;;;;;;;OAOG;;IAIH,0EAA0E;;IAE1E,6DAA6D;;IAE7D,kEAAkE;;IAElE,uEAAuE;;IAEvE;;;;OAIG;;;;;;;IAOH,sDAAsD;;;;uCA3HvC,MAAM;;;IAkIrB,qDAAqD;;IAErD,uDAAuD;;IAEvD,0EAA0E;qBAr4B1C,iBAAiB;IAu4BjD;;;OAGG;+BAr5BuC,OAAO;IAu5BjD;;;OAGG;0BAp3BE,iBAAiB;EAu5B3B"}
1
+ {"version":3,"file":"useVoiceSession.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/useVoiceSession.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAe,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIpE,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAgBL,KAAK,oBAAoB,EAE1B,MAAM,uBAAuB,CAAC;AAsC/B;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,eAAe,GACf,eAAe,GACf,oBAAoB;AACtB,oFAAoF;GAClF,0BAA0B;AAC5B,qFAAqF;GACnF,qBAAqB,CAAC;AAE1B;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;CAC7B;AAMD,UAAU,OAAO;IACf,+EAA+E;IAC/E;;;;;;;OAOG;IACH,QAAQ,EAAE,CACR,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM;IACtB;;;OAGG;IACH,MAAM,EAAE,eAAe;IACvB;;;;;OAKG;IACH,IAAI,EAAE,eAAe,KAClB,IAAI,CAAC;IACV;;;;OAIG;IACH,WAAW,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACjD,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IAChC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,6BAA6B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,8EAA8E;IAC9E,6BAA6B,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,OAAO,EAAE,WAAW,EACpB,WAAW,EACX,kBAAkB,EAClB,6BAA6B,EAC7B,6BAA6B,EAC7B,SAAS,GACV,EAAE,OAAO;;IAk9BJ,qEAAqE;;IAWrE;;;;;;;OAOG;;IAEH,+DAA+D;;IAE/D;;;;;;;OAOG;;IAIH,0EAA0E;;IAE1E,6DAA6D;;IAE7D,kEAAkE;;IAElE,uEAAuE;;IAEvE;;;;OAIG;;;;;;QAMD;;;;WAIG;;;IAGL,sDAAsD;;;;uCApIvC,MAAM;;;IA2IrB,qDAAqD;;IAErD,uDAAuD;;IAEvD,0EAA0E;qBAp5B1C,iBAAiB;IAs5BjD;;;OAGG;+BAp6BuC,OAAO;IAs6BjD;;;OAGG;0BAn4BE,iBAAiB;EAu6B3B"}