@agent-native/toolkit 0.8.3 → 0.9.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 (99) hide show
  1. package/README.md +42 -3
  2. package/agent-native.eject.json +33 -0
  3. package/dist/chat-history/ChatHistoryRail.d.ts +19 -0
  4. package/dist/chat-history/ChatHistoryRail.d.ts.map +1 -0
  5. package/dist/chat-history/ChatHistoryRail.js +22 -0
  6. package/dist/chat-history/ChatHistoryRail.js.map +1 -0
  7. package/dist/chat-history/ChatHistoryRail.spec.d.ts +2 -0
  8. package/dist/chat-history/ChatHistoryRail.spec.d.ts.map +1 -0
  9. package/dist/chat-history/ChatHistoryRail.spec.js +81 -0
  10. package/dist/chat-history/ChatHistoryRail.spec.js.map +1 -0
  11. package/dist/chat-history/index.d.ts +1 -0
  12. package/dist/chat-history/index.d.ts.map +1 -1
  13. package/dist/chat-history/index.js +1 -0
  14. package/dist/chat-history/index.js.map +1 -1
  15. package/dist/chat-history.css +59 -0
  16. package/dist/composer/RealtimeVoiceMode.d.ts +5 -1
  17. package/dist/composer/RealtimeVoiceMode.d.ts.map +1 -1
  18. package/dist/composer/RealtimeVoiceMode.js +27 -8
  19. package/dist/composer/RealtimeVoiceMode.js.map +1 -1
  20. package/dist/composer/RealtimeVoiceMode.spec.js +51 -11
  21. package/dist/composer/RealtimeVoiceMode.spec.js.map +1 -1
  22. package/dist/composer/VoiceButton.d.ts +2 -0
  23. package/dist/composer/VoiceButton.d.ts.map +1 -1
  24. package/dist/composer/VoiceButton.js +33 -1
  25. package/dist/composer/VoiceButton.js.map +1 -1
  26. package/dist/composer/VoiceButton.spec.js +9 -1
  27. package/dist/composer/VoiceButton.spec.js.map +1 -1
  28. package/dist/composer/realtime-voice-audio-level.d.ts.map +1 -1
  29. package/dist/composer/realtime-voice-audio-level.js +2 -1
  30. package/dist/composer/realtime-voice-audio-level.js.map +1 -1
  31. package/dist/composer/realtime-voice-audio-level.spec.js +7 -0
  32. package/dist/composer/realtime-voice-audio-level.spec.js.map +1 -1
  33. package/dist/composer/useRealtimeVoiceMode.d.ts.map +1 -1
  34. package/dist/composer/useRealtimeVoiceMode.js +4 -4
  35. package/dist/composer/useRealtimeVoiceMode.js.map +1 -1
  36. package/dist/dashboard/DataTable.d.ts +20 -0
  37. package/dist/dashboard/DataTable.d.ts.map +1 -0
  38. package/dist/dashboard/DataTable.js +87 -0
  39. package/dist/dashboard/DataTable.js.map +1 -0
  40. package/dist/dashboard/DateRangePicker.d.ts +15 -0
  41. package/dist/dashboard/DateRangePicker.d.ts.map +1 -0
  42. package/dist/dashboard/DateRangePicker.js +15 -0
  43. package/dist/dashboard/DateRangePicker.js.map +1 -0
  44. package/dist/dashboard/GenericChartPanel.d.ts +57 -0
  45. package/dist/dashboard/GenericChartPanel.d.ts.map +1 -0
  46. package/dist/dashboard/GenericChartPanel.js +119 -0
  47. package/dist/dashboard/GenericChartPanel.js.map +1 -0
  48. package/dist/dashboard/GenericChartPanel.spec.d.ts +2 -0
  49. package/dist/dashboard/GenericChartPanel.spec.d.ts.map +1 -0
  50. package/dist/dashboard/GenericChartPanel.spec.js +41 -0
  51. package/dist/dashboard/GenericChartPanel.spec.js.map +1 -0
  52. package/dist/dashboard/MetricCard.d.ts +14 -0
  53. package/dist/dashboard/MetricCard.d.ts.map +1 -0
  54. package/dist/dashboard/MetricCard.js +10 -0
  55. package/dist/dashboard/MetricCard.js.map +1 -0
  56. package/dist/dashboard/StatsCard.d.ts +16 -0
  57. package/dist/dashboard/StatsCard.d.ts.map +1 -0
  58. package/dist/dashboard/StatsCard.js +8 -0
  59. package/dist/dashboard/StatsCard.js.map +1 -0
  60. package/dist/dashboard/dashboard-layout.d.ts +49 -0
  61. package/dist/dashboard/dashboard-layout.d.ts.map +1 -0
  62. package/dist/dashboard/dashboard-layout.js +231 -0
  63. package/dist/dashboard/dashboard-layout.js.map +1 -0
  64. package/dist/dashboard/dashboard-layout.spec.d.ts +2 -0
  65. package/dist/dashboard/dashboard-layout.spec.d.ts.map +1 -0
  66. package/dist/dashboard/dashboard-layout.spec.js +52 -0
  67. package/dist/dashboard/dashboard-layout.spec.js.map +1 -0
  68. package/dist/dashboard/index.d.ts +7 -0
  69. package/dist/dashboard/index.d.ts.map +1 -0
  70. package/dist/dashboard/index.js +7 -0
  71. package/dist/dashboard/index.js.map +1 -0
  72. package/dist/index.d.ts +1 -0
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +1 -0
  75. package/dist/index.js.map +1 -1
  76. package/dist/styles.css +35 -0
  77. package/package.json +15 -1
  78. package/src/chat-history/ChatHistoryRail.spec.tsx +138 -0
  79. package/src/chat-history/ChatHistoryRail.tsx +89 -0
  80. package/src/chat-history/index.ts +5 -0
  81. package/src/chat-history.css +59 -0
  82. package/src/composer/RealtimeVoiceMode.spec.tsx +116 -11
  83. package/src/composer/RealtimeVoiceMode.tsx +106 -36
  84. package/src/composer/VoiceButton.spec.ts +17 -1
  85. package/src/composer/VoiceButton.tsx +49 -0
  86. package/src/composer/realtime-voice-audio-level.spec.ts +15 -0
  87. package/src/composer/realtime-voice-audio-level.ts +2 -1
  88. package/src/composer/useRealtimeVoiceMode.tsx +5 -3
  89. package/src/dashboard/DataTable.tsx +273 -0
  90. package/src/dashboard/DateRangePicker.tsx +57 -0
  91. package/src/dashboard/GenericChartPanel.spec.tsx +53 -0
  92. package/src/dashboard/GenericChartPanel.tsx +461 -0
  93. package/src/dashboard/MetricCard.tsx +54 -0
  94. package/src/dashboard/StatsCard.tsx +49 -0
  95. package/src/dashboard/dashboard-layout.spec.ts +79 -0
  96. package/src/dashboard/dashboard-layout.ts +329 -0
  97. package/src/dashboard/index.ts +6 -0
  98. package/src/index.ts +1 -0
  99. package/src/styles.css +35 -0
package/README.md CHANGED
@@ -25,9 +25,20 @@ and docs. Dispatch is a separate product rather than a Toolkit module.
25
25
 
26
26
  ```tsx
27
27
  import { ToolkitProvider } from "@agent-native/toolkit/provider";
28
- import { ChatHistoryList } from "@agent-native/toolkit/chat-history";
28
+ import {
29
+ ChatHistoryList,
30
+ ChatHistoryRail,
31
+ } from "@agent-native/toolkit/chat-history";
29
32
  import { PresenceBar } from "@agent-native/toolkit/collab-ui";
30
33
  import { ContextMeterView } from "@agent-native/toolkit/context-ui";
34
+ import {
35
+ DataTable,
36
+ DateRangePicker,
37
+ GenericChartPanel,
38
+ MetricCard,
39
+ StatsCard,
40
+ buildDashboardPanelGroups,
41
+ } from "@agent-native/toolkit/dashboard";
31
42
  import { VisualTweakControl } from "@agent-native/toolkit/design-tweaks";
32
43
  import { SharedRichEditor } from "@agent-native/toolkit/editor";
33
44
  import { VisibilityBadge } from "@agent-native/toolkit/sharing";
@@ -39,12 +50,40 @@ import { useSetHeaderActions } from "@agent-native/toolkit/app-shell";
39
50
 
40
51
  Import `@agent-native/toolkit/styles.css` after Tailwind to include Toolkit's
41
52
  source scanning. If an app renders `SharedRichEditor`, also import
42
- `@agent-native/toolkit/editor.css`. If an app renders `ChatHistoryList`, also
43
- import `@agent-native/toolkit/chat-history.css`.
53
+ `@agent-native/toolkit/editor.css`. If an app renders `ChatHistoryList` or
54
+ `ChatHistoryRail`, also import `@agent-native/toolkit/chat-history.css`.
55
+
56
+ Use `ChatHistoryRail` for app sidebars. It shows five recent chats by default,
57
+ progressively discloses up to fifteen, and keeps the app-provided New chat
58
+ action in a footer row with the ellipsis disclosure on its right. The app
59
+ continues to own thread persistence, sorting, routing, and mutations through
60
+ Core.
44
61
 
45
62
  Inside template apps, prefer local adapters such as `@/components/ui/button` so
46
63
  apps can replace their primitives without changing every callsite.
47
64
 
65
+ ## Dashboard kit
66
+
67
+ `@agent-native/toolkit/dashboard` is an ejectable, presentation-only dashboard
68
+ kit. It includes metric and stats cards, tables, a date-range picker, panel
69
+ ordering and layout helpers, and `GenericChartPanel`. Supply rows, schema, and
70
+ callbacks through app-owned action-backed adapters; the kit never fetches data,
71
+ stores dashboard state, resolves credentials, or imports Core runtime APIs.
72
+
73
+ Inspect or take ownership of the complete unit with:
74
+
75
+ ```bash
76
+ agent-native eject inspect toolkit/dashboard
77
+ agent-native eject toolkit/dashboard --app <app> --apply
78
+ ```
79
+
80
+ For durable dashboards, use `@agent-native/core/dashboard-storage` in the app's
81
+ server layer. Instantiate its schema and access-scoped store per app, rather
82
+ than sharing dashboard rows between apps. Resolve panel data with a
83
+ `PanelSourceResolver`; the built-in `program` resolver runs an app-owned data
84
+ program and is the zero-wiring default. Provider-specific resolvers stay in the
85
+ app that owns their credentials and query policy.
86
+
48
87
  ## Customize Or Take Ownership
49
88
 
50
89
  Use public props, slots, callbacks, stable classes, and local adapters first.
@@ -133,6 +133,7 @@
133
133
  "@tabler/icons-react",
134
134
  "clsx",
135
135
  "react",
136
+ "recharts",
136
137
  "tailwind-merge"
137
138
  ],
138
139
  "verification": ["pnpm typecheck"]
@@ -206,6 +207,38 @@
206
207
  ],
207
208
  "verification": ["pnpm typecheck"]
208
209
  },
210
+ {
211
+ "id": "toolkit/dashboard",
212
+ "label": "Dashboard kit",
213
+ "catalog": "toolkit-ui",
214
+ "catalogItems": ["dashboard"],
215
+ "entrypoints": ["./dashboard", "./dashboard/*"],
216
+ "strategy": "source-copy",
217
+ "sourceEntries": ["src/dashboard"],
218
+ "targetRoot": "app/components/agent-native/toolkit",
219
+ "dependencies": [
220
+ "@radix-ui/react-select",
221
+ "@radix-ui/react-slot",
222
+ "@tabler/icons-react",
223
+ "class-variance-authority",
224
+ "clsx",
225
+ "react",
226
+ "recharts",
227
+ "tailwind-merge"
228
+ ],
229
+ "protectedImports": [
230
+ "@agent-native/toolkit/ui/button",
231
+ "@agent-native/toolkit/ui/card",
232
+ "@agent-native/toolkit/ui/select",
233
+ "@agent-native/toolkit/ui/skeleton",
234
+ "@agent-native/toolkit/ui/table",
235
+ "@agent-native/toolkit/utils"
236
+ ],
237
+ "verification": [
238
+ "pnpm --filter @agent-native/toolkit typecheck",
239
+ "pnpm --filter @agent-native/toolkit test"
240
+ ]
241
+ },
209
242
  {
210
243
  "id": "toolkit/editor",
211
244
  "label": "Rich editor",
@@ -0,0 +1,19 @@
1
+ import { type ChatHistoryItem, type ChatHistoryListProps } from "./ChatHistoryList.js";
2
+ export interface ChatHistoryRailLabels {
3
+ newChat: string;
4
+ showMore: string;
5
+ showLess: string;
6
+ }
7
+ export interface ChatHistoryRailProps extends Omit<ChatHistoryListProps, "footer" | "items" | "sections" | "variant"> {
8
+ items: ChatHistoryItem[];
9
+ onNewChat: () => void;
10
+ railLabels: ChatHistoryRailLabels;
11
+ previewCount?: number;
12
+ expandedCount?: number;
13
+ }
14
+ /**
15
+ * Compact recent-chat rail for app sidebars. Hosts own thread persistence,
16
+ * sorting, routing, and mutations; the rail only owns progressive disclosure.
17
+ */
18
+ export declare function ChatHistoryRail({ items, onNewChat, railLabels, previewCount, expandedCount, className, emptyLabel, ...listProps }: ChatHistoryRailProps): import("react").JSX.Element;
19
+ //# sourceMappingURL=ChatHistoryRail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatHistoryRail.d.ts","sourceRoot":"","sources":["../../src/chat-history/ChatHistoryRail.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAChD,oBAAoB,EACpB,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAC5C;IACC,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,qBAAqB,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,SAAS,EACT,UAAU,EACV,YAAgB,EAChB,aAAkB,EAClB,SAAS,EACT,UAAU,EACV,GAAG,SAAS,EACb,EAAE,oBAAoB,+BAiDtB"}
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { IconDots, IconPlus } from "@tabler/icons-react";
3
+ import { useEffect, useMemo, useState } from "react";
4
+ import { ChatHistoryList, } from "./ChatHistoryList.js";
5
+ /**
6
+ * Compact recent-chat rail for app sidebars. Hosts own thread persistence,
7
+ * sorting, routing, and mutations; the rail only owns progressive disclosure.
8
+ */
9
+ export function ChatHistoryRail({ items, onNewChat, railLabels, previewCount = 5, expandedCount = 15, className, emptyLabel, ...listProps }) {
10
+ const [expanded, setExpanded] = useState(false);
11
+ const collapsedLimit = Math.max(1, previewCount);
12
+ const expandedLimit = Math.max(collapsedLimit, expandedCount);
13
+ const canExpand = items.length > collapsedLimit;
14
+ const visibleItems = useMemo(() => items.slice(0, expanded ? expandedLimit : collapsedLimit), [collapsedLimit, expanded, expandedLimit, items]);
15
+ useEffect(() => {
16
+ if (!canExpand)
17
+ setExpanded(false);
18
+ }, [canExpand]);
19
+ const footer = (_jsxs("div", { className: "an-chat-history-rail__footer", children: [_jsxs("button", { type: "button", className: "an-chat-history-rail__new-chat", onClick: onNewChat, children: [_jsx(IconPlus, { size: 13, strokeWidth: 1.8, "aria-hidden": "true" }), _jsx("span", { children: railLabels.newChat })] }), canExpand && (_jsx("button", { type: "button", className: "an-chat-history-rail__disclosure", onClick: () => setExpanded((current) => !current), "aria-expanded": expanded, "aria-label": expanded ? railLabels.showLess : railLabels.showMore, title: expanded ? railLabels.showLess : railLabels.showMore, children: _jsx(IconDots, { size: 14, strokeWidth: 1.8, "aria-hidden": "true" }) }))] }));
20
+ return (_jsx(ChatHistoryList, { ...listProps, items: visibleItems, footer: footer, emptyLabel: emptyLabel ?? null, variant: "rail", className: ["an-chat-history-rail", className].filter(Boolean).join(" ") }));
21
+ }
22
+ //# sourceMappingURL=ChatHistoryRail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatHistoryRail.js","sourceRoot":"","sources":["../../src/chat-history/ChatHistoryRail.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAErD,OAAO,EACL,eAAe,GAGhB,MAAM,sBAAsB,CAAC;AAmB9B;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,EACL,SAAS,EACT,UAAU,EACV,YAAY,GAAG,CAAC,EAChB,aAAa,GAAG,EAAE,EAClB,SAAS,EACT,UAAU,EACV,GAAG,SAAS,EACS;IACrB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC;IAChD,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,EAC/D,CAAC,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC,CACjD,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,SAAS;YAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,MAAM,MAAM,GAAG,CACb,eAAK,SAAS,EAAC,8BAA8B,aAC3C,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,gCAAgC,EAC1C,OAAO,EAAE,SAAS,aAElB,KAAC,QAAQ,IAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,iBAAc,MAAM,GAAG,EAC3D,yBAAO,UAAU,CAAC,OAAO,GAAQ,IAC1B,EACR,SAAS,IAAI,CACZ,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,kCAAkC,EAC5C,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,mBAClC,QAAQ,gBACX,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAChE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,YAE3D,KAAC,QAAQ,IAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,iBAAc,MAAM,GAAG,GACpD,CACV,IACG,CACP,CAAC;IAEF,OAAO,CACL,KAAC,eAAe,OACV,SAAS,EACb,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,IAAI,IAAI,EAC9B,OAAO,EAAC,MAAM,EACd,SAAS,EAAE,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GACxE,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ChatHistoryRail.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatHistoryRail.spec.d.ts","sourceRoot":"","sources":["../../src/chat-history/ChatHistoryRail.spec.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,81 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // @vitest-environment happy-dom
3
+ import { act } from "react";
4
+ import { createRoot } from "react-dom/client";
5
+ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
6
+ import { ChatHistoryRail } from "./ChatHistoryRail.js";
7
+ const railLabels = {
8
+ newChat: "New chat",
9
+ showMore: "Show more chats",
10
+ showLess: "Show fewer chats",
11
+ };
12
+ function makeItems(count) {
13
+ return Array.from({ length: count }, (_, index) => ({
14
+ id: `thread-${index + 1}`,
15
+ title: `Chat ${index + 1}`,
16
+ }));
17
+ }
18
+ describe("ChatHistoryRail", () => {
19
+ let container;
20
+ let root;
21
+ beforeEach(() => {
22
+ vi.stubGlobal("IS_REACT_ACT_ENVIRONMENT", true);
23
+ container = document.createElement("div");
24
+ document.body.appendChild(container);
25
+ root = createRoot(container);
26
+ });
27
+ afterEach(() => {
28
+ act(() => root.unmount());
29
+ container.remove();
30
+ vi.restoreAllMocks();
31
+ vi.unstubAllGlobals();
32
+ });
33
+ it("shows five recent chats before progressively disclosing up to fifteen", () => {
34
+ act(() => {
35
+ root.render(_jsx(ChatHistoryRail, { items: makeItems(20), onSelect: () => { }, onNewChat: () => { }, railLabels: railLabels }));
36
+ });
37
+ expect(container.querySelectorAll(".an-chat-history-row")).toHaveLength(5);
38
+ const disclosure = container.querySelector(".an-chat-history-rail__disclosure");
39
+ expect(disclosure?.getAttribute("aria-label")).toBe("Show more chats");
40
+ act(() => disclosure?.click());
41
+ expect(container.querySelectorAll(".an-chat-history-row")).toHaveLength(15);
42
+ expect(disclosure?.getAttribute("aria-label")).toBe("Show fewer chats");
43
+ act(() => disclosure?.click());
44
+ expect(container.querySelectorAll(".an-chat-history-row")).toHaveLength(5);
45
+ });
46
+ it("keeps the disclosure to the right of new chat and calls its handler", () => {
47
+ const onNewChat = vi.fn();
48
+ act(() => {
49
+ root.render(_jsx(ChatHistoryRail, { items: makeItems(6), onSelect: () => { }, onNewChat: onNewChat, railLabels: railLabels }));
50
+ });
51
+ const disclosure = container.querySelector(".an-chat-history-rail__disclosure");
52
+ const newChat = container.querySelector(".an-chat-history-rail__new-chat");
53
+ expect(newChat?.textContent).toBe("New chat");
54
+ expect(newChat?.nextElementSibling).toBe(disclosure);
55
+ expect(newChat?.parentElement?.lastElementChild).toBe(disclosure);
56
+ act(() => newChat?.click());
57
+ expect(onNewChat).toHaveBeenCalledOnce();
58
+ });
59
+ it("lets new chat fill the footer when there are no more chats", () => {
60
+ act(() => {
61
+ root.render(_jsx(ChatHistoryRail, { items: makeItems(3), onSelect: () => { }, onNewChat: () => { }, railLabels: railLabels }));
62
+ });
63
+ expect(container.querySelector(".an-chat-history-rail__disclosure")).toBeNull();
64
+ expect(container.querySelector(".an-chat-history-rail__new-chat")).not.toBeNull();
65
+ });
66
+ it("preserves list actions for progressively disclosed rows", () => {
67
+ const onSelect = vi.fn();
68
+ act(() => {
69
+ root.render(_jsx(ChatHistoryRail, { items: makeItems(6), onSelect: onSelect, onNewChat: () => { }, railLabels: railLabels }));
70
+ });
71
+ act(() => {
72
+ container
73
+ .querySelector(".an-chat-history-rail__disclosure")
74
+ ?.click();
75
+ });
76
+ const rows = container.querySelectorAll(".an-chat-history-row__button");
77
+ act(() => rows[5]?.click());
78
+ expect(onSelect).toHaveBeenCalledWith("thread-6");
79
+ });
80
+ });
81
+ //# sourceMappingURL=ChatHistoryRail.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatHistoryRail.spec.js","sourceRoot":"","sources":["../../src/chat-history/ChatHistoryRail.spec.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export { ChatHistoryList, type ChatHistoryItem, type ChatHistoryListLabels, type ChatHistoryListProps, type ChatHistorySection, } from "./ChatHistoryList.js";
2
+ export { ChatHistoryRail, type ChatHistoryRailLabels, type ChatHistoryRailProps, } from "./ChatHistoryRail.js";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/chat-history/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/chat-history/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { ChatHistoryList, } from "./ChatHistoryList.js";
2
+ export { ChatHistoryRail, } from "./ChatHistoryRail.js";
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chat-history/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,GAKhB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chat-history/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,GAKhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,GAGhB,MAAM,sBAAsB,CAAC"}
@@ -16,6 +16,7 @@
16
16
  .an-chat-history {
17
17
  display: flex;
18
18
  flex-direction: column;
19
+ min-width: 0;
19
20
  min-height: 0;
20
21
  }
21
22
 
@@ -49,6 +50,7 @@
49
50
 
50
51
  .an-chat-history__list {
51
52
  overflow-y: auto;
53
+ min-width: 0;
52
54
  padding: 4px 0;
53
55
  max-height: 16rem;
54
56
  }
@@ -59,6 +61,10 @@
59
61
  min-height: 0;
60
62
  }
61
63
 
64
+ .an-chat-history-rail .an-chat-history__state:empty {
65
+ display: none;
66
+ }
67
+
62
68
  .an-chat-history__state {
63
69
  padding: 16px 12px;
64
70
  text-align: center;
@@ -72,6 +78,55 @@
72
78
  color: hsl(38 92% 50%);
73
79
  }
74
80
 
81
+ .an-chat-history-rail__footer {
82
+ display: flex;
83
+ align-items: center;
84
+ gap: 2px;
85
+ min-width: 0;
86
+ padding: 1px 4px 0;
87
+ }
88
+
89
+ .an-chat-history-rail__disclosure,
90
+ .an-chat-history-rail__new-chat {
91
+ display: flex;
92
+ align-items: center;
93
+ border: 0;
94
+ border-radius: calc(var(--radius) - 2px);
95
+ background: transparent;
96
+ color: hsl(var(--muted-foreground) / 0.72);
97
+ cursor: pointer;
98
+ }
99
+
100
+ .an-chat-history-rail__disclosure:hover,
101
+ .an-chat-history-rail__new-chat:hover {
102
+ background: hsl(var(--accent) / 0.5);
103
+ color: hsl(var(--accent-foreground));
104
+ }
105
+
106
+ .an-chat-history-rail__disclosure:focus-visible,
107
+ .an-chat-history-rail__new-chat:focus-visible {
108
+ outline: 2px solid hsl(var(--ring));
109
+ outline-offset: -2px;
110
+ }
111
+
112
+ .an-chat-history-rail__disclosure {
113
+ justify-content: center;
114
+ flex: 0 0 auto;
115
+ width: 30px;
116
+ min-height: 30px;
117
+ }
118
+
119
+ .an-chat-history-rail__new-chat {
120
+ flex: 1 1 auto;
121
+ gap: 8px;
122
+ min-width: 0;
123
+ min-height: 30px;
124
+ padding: 6px 10px;
125
+ font-size: 12px;
126
+ font-weight: 500;
127
+ text-align: start;
128
+ }
129
+
75
130
  .an-chat-history__section-label {
76
131
  padding: 6px 12px 4px;
77
132
  font-size: 10px;
@@ -83,12 +138,14 @@
83
138
  .an-chat-history--rail .an-chat-history__section {
84
139
  display: grid;
85
140
  gap: 1px;
141
+ min-width: 0;
86
142
  }
87
143
 
88
144
  /* ── Row ──────────────────────────────────────────────────────────────── */
89
145
 
90
146
  .an-chat-history-row {
91
147
  position: relative;
148
+ min-width: 0;
92
149
  }
93
150
 
94
151
  .an-chat-history--rail .an-chat-history-row {
@@ -99,6 +156,7 @@
99
156
  .an-chat-history-row__button {
100
157
  display: block;
101
158
  width: 100%;
159
+ min-width: 0;
102
160
  padding: 8px 12px;
103
161
  border: 0;
104
162
  background: transparent;
@@ -141,6 +199,7 @@
141
199
  justify-content: space-between;
142
200
  gap: 8px;
143
201
  min-width: 0;
202
+ overflow: hidden;
144
203
  }
145
204
 
146
205
  .an-chat-history-row__title {
@@ -15,6 +15,7 @@ export interface RealtimeVoiceModeCopy {
15
15
  startWithOpenAiKey: string;
16
16
  startVoiceMode: string;
17
17
  keepDictating: string;
18
+ rememberPreference: string;
18
19
  showChat: string;
19
20
  hideChat: string;
20
21
  endVoiceMode: string;
@@ -51,6 +52,8 @@ export interface RealtimeVoiceModeEntryProps {
51
52
  onOpenChange?: (open: boolean) => void;
52
53
  onStartVoiceMode: () => void;
53
54
  onKeepDictating: () => void;
55
+ preferredMode?: RealtimeVoiceInputMode | null;
56
+ onRememberPreference?: (mode: RealtimeVoiceInputMode) => void;
54
57
  setupRequired?: boolean;
55
58
  openAiConfigured?: boolean;
56
59
  connectingBuilder?: boolean;
@@ -58,12 +61,13 @@ export interface RealtimeVoiceModeEntryProps {
58
61
  onUseOpenAiKey?: () => void;
59
62
  className?: string;
60
63
  }
64
+ export type RealtimeVoiceInputMode = "realtime" | "dictation";
61
65
  /**
62
66
  * Composer mic entry point for apps that support a full-duplex voice session.
63
67
  * The first click offers voice mode without silently changing the existing
64
68
  * editable-dictation behavior.
65
69
  */
66
- export declare function RealtimeVoiceModeEntry({ copy, disabled, providerStatusPending, open: controlledOpen, onOpenChange, onStartVoiceMode, onKeepDictating, setupRequired, openAiConfigured, connectingBuilder, onConnectBuilder, onUseOpenAiKey, className, }: RealtimeVoiceModeEntryProps): import("react").JSX.Element;
70
+ export declare function RealtimeVoiceModeEntry({ copy, disabled, providerStatusPending, open: controlledOpen, onOpenChange, onStartVoiceMode, onKeepDictating, preferredMode, onRememberPreference, setupRequired, openAiConfigured, connectingBuilder, onConnectBuilder, onUseOpenAiKey, className, }: RealtimeVoiceModeEntryProps): import("react").JSX.Element;
67
71
  export interface RealtimeVoiceModeDockProps {
68
72
  state: RealtimeVoiceModeState;
69
73
  copy: RealtimeVoiceModeCopy;
@@ -1 +1 @@
1
- {"version":3,"file":"RealtimeVoiceMode.d.ts","sourceRoot":"","sources":["../../src/composer/RealtimeVoiceMode.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RealtimeVoiceMode.d.ts","sourceRoot":"","sources":["../../src/composer/RealtimeVoiceMode.tsx"],"names":[],"mappings":"AAqCA,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,iCAAiC,CAAC;AAEzC,MAAM,MAAM,sBAAsB,GAC9B,YAAY,GACZ,WAAW,GACX,UAAU,GACV,SAAS,GACT,OAAO,GACP,QAAQ,CAAC;AAEb;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE;QACR,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,sBAAsB,EAAE,MAAM,CAAC;QAC/B,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CACf,OAAO,CACL,OAAO,2BAA2B,EAAE,qBAAqB,EACzD,MAAM,CACP,EACD,MAAM,CACP,CAAC;QACF,YAAY,EAAE,MAAM,CAAC;QACrB,kBAAkB,EAAE,MAAM,CACxB,OAAO,2BAA2B,EAAE,yBAAyB,EAC7D,MAAM,CACP,CAAC;QACF,UAAU,EAAE,MAAM,CAAC;QACnB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,iBAAiB,EAAE,MAAM,CACvB,OAAO,2BAA2B,EAAE,aAAa,EACjD,MAAM,CACP,CAAC;KACH,CAAC;IACF,MAAM,EAAE,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC9C,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAC9D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG,WAAW,CAAC;AAE9D;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,QAAQ,EACR,qBAA6B,EAC7B,IAAI,EAAE,cAAc,EACpB,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,aAAoB,EACpB,oBAAoB,EACpB,aAAqB,EACrB,gBAAwB,EACxB,iBAAyB,EACzB,gBAAgB,EAChB,cAAc,EACd,SAAS,GACV,EAAE,2BAA2B,+BAmM7B;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,sBAAsB,CAAC;IAC9B,IAAI,EAAE,qBAAqB,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,4BAA4B,CAAC;IAC3C,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,+BAA+B,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,8BAA8B;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,8BAA8B;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,8BAA8B,EAAE,CAAC;IACnD,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,+BAA+B;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,8BAA8B,CAAC;IAC3C,QAAQ,EAAE,8BAA8B,CAAC;IACzC,YAAY,EAAE,8BAA8B,CAAC;IAC7C,UAAU,EAAE,8BAA8B,CAAC;CAC5C;AA6SD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,IAAI,EACJ,WAAW,EACX,WAAiC,EACjC,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,SAAS,GACV,EAAE,0BAA0B,+BAuO5B"}
@@ -1,5 +1,6 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Button } from "@agent-native/toolkit/ui/button";
3
+ import { Checkbox } from "@agent-native/toolkit/ui/checkbox";
3
4
  import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, } from "@agent-native/toolkit/ui/select";
4
5
  import { IconAlertTriangle, IconBrain, IconLanguage, IconLoader2, IconMicrophone, IconPhoneOff, IconSettings, IconVolume, } from "@tabler/icons-react";
5
6
  import { useCallback, useEffect, useId, useRef, useState, useSyncExternalStore, } from "react";
@@ -12,11 +13,13 @@ import { createRealtimeVoiceAudioLevelStore, } from "./realtime-voice-audio-leve
12
13
  * The first click offers voice mode without silently changing the existing
13
14
  * editable-dictation behavior.
14
15
  */
15
- export function RealtimeVoiceModeEntry({ copy, disabled, providerStatusPending = false, open: controlledOpen, onOpenChange, onStartVoiceMode, onKeepDictating, setupRequired = false, openAiConfigured = false, connectingBuilder = false, onConnectBuilder, onUseOpenAiKey, className, }) {
16
+ export function RealtimeVoiceModeEntry({ copy, disabled, providerStatusPending = false, open: controlledOpen, onOpenChange, onStartVoiceMode, onKeepDictating, preferredMode = null, onRememberPreference, setupRequired = false, openAiConfigured = false, connectingBuilder = false, onConnectBuilder, onUseOpenAiKey, className, }) {
16
17
  const [uncontrolledOpen, setUncontrolledOpen] = useState(false);
17
18
  const open = controlledOpen ?? uncontrolledOpen;
18
19
  const titleId = useId();
19
20
  const descriptionId = useId();
21
+ const rememberPreferenceId = useId();
22
+ const [rememberPreference, setRememberPreference] = useState(false);
20
23
  const [collisionBoundary, setCollisionBoundary] = useState(null);
21
24
  const setTriggerNode = useCallback((node) => {
22
25
  const nextBoundary = node?.closest(".agent-panel-root") ?? null;
@@ -27,19 +30,35 @@ export function RealtimeVoiceModeEntry({ copy, disabled, providerStatusPending =
27
30
  setUncontrolledOpen(nextOpen);
28
31
  onOpenChange?.(nextOpen);
29
32
  };
30
- const choose = (callback) => {
33
+ const choose = (mode, callback) => {
31
34
  setOpen(false);
35
+ if (rememberPreference)
36
+ onRememberPreference?.(mode);
32
37
  callback();
33
38
  };
34
- return (_jsxs(Popover, { open: open, onOpenChange: setOpen, children: [_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(PopoverTrigger, { asChild: true, children: _jsx(Button, { ref: setTriggerNode, type: "button", variant: "ghost", size: "icon", disabled: disabled, "aria-label": copy.entryButtonLabel, "aria-expanded": open, className: cn("size-7 shrink-0 text-muted-foreground hover:text-foreground", className), children: _jsx(IconMicrophone, {}) }) }) }), _jsx(TooltipContent, { children: copy.entryButtonLabel })] }), _jsx(PopoverContent, { side: "top", align: "end", sideOffset: 10, collisionBoundary: collisionBoundary ?? undefined, collisionPadding: 16, "data-collision-boundary": collisionBoundary ? "agent-panel" : "viewport", className: cn("p-4", setupRequired
39
+ return (_jsxs(Popover, { open: open, onOpenChange: setOpen, children: [_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(PopoverTrigger, { asChild: true, children: _jsx(Button, { ref: setTriggerNode, type: "button", variant: "ghost", size: "icon", disabled: disabled, "aria-label": copy.entryButtonLabel, "aria-expanded": open, onClick: (event) => {
40
+ if (!preferredMode)
41
+ return;
42
+ if (preferredMode === "realtime" &&
43
+ (providerStatusPending || setupRequired)) {
44
+ return;
45
+ }
46
+ event.preventDefault();
47
+ event.stopPropagation();
48
+ choose(preferredMode, preferredMode === "realtime"
49
+ ? onStartVoiceMode
50
+ : onKeepDictating);
51
+ }, className: cn("size-7 shrink-0 text-muted-foreground hover:text-foreground", className), children: _jsx(IconMicrophone, {}) }) }) }), _jsx(TooltipContent, { children: copy.entryButtonLabel })] }), _jsx(PopoverContent, { side: "top", align: "end", sideOffset: 10, collisionBoundary: collisionBoundary ?? undefined, collisionPadding: 16, "data-collision-boundary": collisionBoundary ? "agent-panel" : "viewport", className: cn(setupRequired ? "p-4" : "p-3", setupRequired
35
52
  ? "w-[min(calc(100vw-2rem),var(--radix-popover-content-available-width,30rem),30rem)]"
36
- : "w-[min(calc(100vw-2rem),var(--radix-popover-content-available-width,22rem),22rem)]"), "aria-labelledby": titleId, "aria-describedby": descriptionId, children: _jsxs("div", { className: "grid gap-3", children: [_jsxs("div", { className: "grid gap-1", children: [_jsx("h2", { id: titleId, className: "text-sm font-semibold text-foreground", children: setupRequired ? copy.setupTitle : copy.promptTitle }), _jsx("p", { id: descriptionId, className: "text-sm leading-relaxed text-muted-foreground", children: setupRequired ? copy.setupDescription : copy.promptDescription })] }), _jsxs("div", { className: "flex flex-col-reverse gap-2 sm:flex-row sm:flex-wrap sm:justify-end", children: [_jsx(Button, { type: "button", variant: "ghost", size: "sm", onClick: () => choose(onKeepDictating), children: copy.keepDictating }), setupRequired ? (_jsxs(_Fragment, { children: [_jsx(Button, { type: "button", variant: "outline", size: "sm", onClick: () => choose(onUseOpenAiKey ?? onStartVoiceMode), children: openAiConfigured
37
- ? copy.startWithOpenAiKey
38
- : copy.useOpenAiKey }), _jsxs(Button, { type: "button", size: "sm", className: "whitespace-nowrap", disabled: connectingBuilder, onClick: () => choose(onConnectBuilder ?? onStartVoiceMode), children: [connectingBuilder ? (_jsx(IconLoader2, { className: "animate-spin" })) : null, copy.connectBuilder] })] })) : (_jsxs(Button, { type: "button", size: "sm", disabled: providerStatusPending, onClick: () => choose(onStartVoiceMode), children: [providerStatusPending ? (_jsx(IconLoader2, { className: "animate-spin" })) : (_jsx(IconMicrophone, {})), copy.startVoiceMode] }))] })] }) })] }));
53
+ : "w-[min(calc(100vw-2rem),var(--radix-popover-content-available-width,18rem),18rem)]"), "aria-labelledby": titleId, "aria-describedby": setupRequired ? descriptionId : undefined, children: _jsxs("div", { className: cn("grid", setupRequired ? "gap-3" : "gap-2.5"), children: [_jsxs("div", { className: "grid gap-1", children: [_jsx("h2", { id: titleId, className: "text-sm font-semibold text-foreground", children: setupRequired ? copy.setupTitle : copy.promptTitle }), setupRequired ? (_jsx("p", { id: descriptionId, className: "text-sm leading-relaxed text-muted-foreground", children: copy.setupDescription })) : null] }), _jsx("div", { className: cn("gap-2", setupRequired
54
+ ? "flex flex-col-reverse sm:flex-row sm:flex-wrap sm:justify-end"
55
+ : "grid"), children: setupRequired ? (_jsxs(_Fragment, { children: [_jsx(Button, { type: "button", variant: "ghost", size: "sm", onClick: () => choose("dictation", onKeepDictating), children: copy.keepDictating }), _jsx(Button, { type: "button", variant: "outline", size: "sm", onClick: () => choose("realtime", onUseOpenAiKey ?? onStartVoiceMode), children: openAiConfigured
56
+ ? copy.startWithOpenAiKey
57
+ : copy.useOpenAiKey }), _jsxs(Button, { type: "button", size: "sm", className: "whitespace-nowrap", disabled: connectingBuilder, onClick: () => choose("realtime", onConnectBuilder ?? onStartVoiceMode), children: [connectingBuilder ? (_jsx(IconLoader2, { className: "animate-spin" })) : null, copy.connectBuilder] })] })) : (_jsxs(_Fragment, { children: [_jsxs(Button, { type: "button", size: "sm", className: "w-full", disabled: providerStatusPending, onClick: () => choose("realtime", onStartVoiceMode), children: [providerStatusPending ? (_jsx(IconLoader2, { className: "animate-spin" })) : (_jsx(IconMicrophone, {})), copy.startVoiceMode] }), _jsx(Button, { type: "button", variant: "outline", size: "sm", className: "w-full", onClick: () => choose("dictation", onKeepDictating), children: copy.keepDictating })] })) }), !setupRequired ? (_jsxs("label", { htmlFor: rememberPreferenceId, className: "flex cursor-pointer items-center gap-2 text-xs text-muted-foreground", children: [_jsx(Checkbox, { id: rememberPreferenceId, checked: rememberPreference, onCheckedChange: (checked) => setRememberPreference(checked === true) }), copy.rememberPreference] })) : null] }) })] }));
39
58
  }
40
59
  const SILENT_AUDIO_LEVELS = createRealtimeVoiceAudioLevelStore();
41
60
  const WAVEFORM_WEIGHTS = [0.55, 0.82, 1, 0.82, 0.55];
42
- const AUDIO_ACTIVITY_THRESHOLD = 0.035;
61
+ const AUDIO_ACTIVITY_THRESHOLD = 0.1;
43
62
  function usePrefersReducedMotion() {
44
63
  const [reduced, setReduced] = useState(false);
45
64
  useEffect(() => {
@@ -240,6 +259,6 @@ export function RealtimeVoiceModeDock({ state, copy, chatVisible, audioLevels =
240
259
  }, children: _jsx(VoiceInlineSettings, { settings: settings, disabled: ending, onSelectOpenChange: handleSelectOpenChange }) })] })) : null, _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(Button, { type: "button", variant: "ghost", size: "icon", disabled: ending, onClick: onEndVoiceMode, "aria-label": copy.endVoiceMode, className: "size-8 rounded-full text-destructive transition-transform duration-150 ease-out hover:bg-destructive/10 hover:text-destructive active:scale-[0.97]", children: _jsx(IconPhoneOff, {}) }) }), _jsx(TooltipContent, { children: copy.endVoiceMode })] })] }), _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(Button, { type: "button", size: "icon", disabled: ending, onClick: () => {
241
260
  setControlsOpen(true);
242
261
  onToggleChat();
243
- }, "aria-label": toggleLabel, "aria-pressed": chatVisible, "data-realtime-voice-chat-toggle": "orb", "aria-describedby": statusId, "aria-controls": controlsId, "aria-expanded": controlsVisible, className: cn("relative isolate size-16 overflow-visible rounded-full ring-1 backdrop-blur-xl transition-transform duration-150 ease-out focus-visible:ring-offset-2 active:scale-[0.97] motion-reduce:transition-none", ORB_STATE_CLASSES[state]), children: _jsx("span", { className: "relative z-10 flex items-center justify-center", children: state === "connecting" ? (_jsx(VoiceConnectingIndicator, {})) : state !== "error" ? (_jsx(VoiceWaveform, { level: activityLevel, reducedMotion: reducedMotion, activity: activity })) : (_jsx(IconAlertTriangle, {})) }) }) }), _jsx(TooltipContent, { children: toggleLabel })] })] })] }));
262
+ }, "aria-label": toggleLabel, "aria-pressed": chatVisible, "data-realtime-voice-chat-toggle": "orb", "aria-describedby": statusId, "aria-controls": controlsId, "aria-expanded": controlsVisible, className: cn("relative isolate size-16 overflow-visible rounded-full ring-1 backdrop-blur-xl transition-transform duration-150 ease-out focus-visible:ring-offset-2 active:scale-[0.97] motion-reduce:transition-none", ORB_STATE_CLASSES[state], state === "working" && "agent-realtime-voice-working"), children: _jsx("span", { className: "relative z-10 flex items-center justify-center", children: state === "connecting" ? (_jsx(VoiceConnectingIndicator, {})) : state !== "error" ? (_jsx(VoiceWaveform, { level: activityLevel, reducedMotion: reducedMotion, activity: activity })) : (_jsx(IconAlertTriangle, {})) }) }) }), _jsx(TooltipContent, { children: toggleLabel })] })] })] }));
244
263
  }
245
264
  //# sourceMappingURL=RealtimeVoiceMode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RealtimeVoiceMode.js","sourceRoot":"","sources":["../../src/composer/RealtimeVoiceMode.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RealtimeVoiceMode.js","sourceRoot":"","sources":["../../src/composer/RealtimeVoiceMode.tsx"],"names":[],"mappings":"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"}