@arbidocs/blocks 0.4.129 → 0.4.130

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 (173) hide show
  1. package/README.md +4 -3
  2. package/dist/agents/index.cjs +216 -216
  3. package/dist/agents/index.js +5 -5
  4. package/dist/calendar/CalendarPrint.d.ts +25 -0
  5. package/dist/calendar/booking-slots.d.ts +21 -0
  6. package/dist/calendar/index.cjs +381 -97
  7. package/dist/calendar/index.cjs.map +1 -1
  8. package/dist/calendar/index.d.ts +4 -0
  9. package/dist/calendar/index.js +277 -3
  10. package/dist/calendar/index.js.map +1 -1
  11. package/dist/calendar/print-layout.d.ts +16 -0
  12. package/dist/calendar/printCalendar.d.ts +6 -0
  13. package/dist/calls/composite-canvas.d.ts +52 -0
  14. package/dist/calls/index.cjs +376 -3
  15. package/dist/calls/index.cjs.map +1 -1
  16. package/dist/calls/index.d.ts +3 -0
  17. package/dist/calls/index.js +360 -5
  18. package/dist/calls/index.js.map +1 -1
  19. package/dist/calls/ringtone.d.ts +16 -0
  20. package/dist/calls/voice-levels.d.ts +32 -0
  21. package/dist/chat/ThreadVisualizer.d.ts +28 -0
  22. package/dist/chat/index.cjs +93 -77
  23. package/dist/chat/index.d.ts +2 -0
  24. package/dist/chat/index.js +2 -2
  25. package/dist/chat/open-document.d.ts +5 -1
  26. package/dist/chat/thread-diagram.d.ts +26 -0
  27. package/dist/{chunk-DQCYCEDR.js → chunk-2Q7FDZAY.js} +3 -3
  28. package/dist/{chunk-DQCYCEDR.js.map → chunk-2Q7FDZAY.js.map} +1 -1
  29. package/dist/{chunk-S7PSMMRG.js → chunk-444XKG46.js} +3 -3
  30. package/dist/{chunk-S7PSMMRG.js.map → chunk-444XKG46.js.map} +1 -1
  31. package/dist/{chunk-7423V6RM.cjs → chunk-4QIIDXLF.cjs} +8 -8
  32. package/dist/{chunk-7423V6RM.cjs.map → chunk-4QIIDXLF.cjs.map} +1 -1
  33. package/dist/{chunk-OYMWV45N.js → chunk-4RLCRFZS.js} +63 -13
  34. package/dist/chunk-4RLCRFZS.js.map +1 -0
  35. package/dist/{chunk-DZYAAL4H.cjs → chunk-4S5IDT5F.cjs} +231 -2
  36. package/dist/chunk-4S5IDT5F.cjs.map +1 -0
  37. package/dist/{chunk-CJBN5HIS.js → chunk-4UMXQPNA.js} +20 -8
  38. package/dist/chunk-4UMXQPNA.js.map +1 -0
  39. package/dist/{chunk-IBZJYCYM.js → chunk-66TA5IBN.js} +17 -25
  40. package/dist/chunk-66TA5IBN.js.map +1 -0
  41. package/dist/{chunk-OR4CO743.cjs → chunk-AAFX64WD.cjs} +3 -3
  42. package/dist/{chunk-OR4CO743.cjs.map → chunk-AAFX64WD.cjs.map} +1 -1
  43. package/dist/{chunk-MUMH3Z6K.cjs → chunk-ARDHLU73.cjs} +61 -11
  44. package/dist/chunk-ARDHLU73.cjs.map +1 -0
  45. package/dist/{chunk-TGWTLNXW.cjs → chunk-BIXHB4LV.cjs} +3 -2
  46. package/dist/{chunk-TGWTLNXW.cjs.map → chunk-BIXHB4LV.cjs.map} +1 -1
  47. package/dist/chunk-C4WSHRR6.cjs +166 -0
  48. package/dist/chunk-C4WSHRR6.cjs.map +1 -0
  49. package/dist/{chunk-ZAVEMQ37.cjs → chunk-DWZXSPMB.cjs} +3 -3
  50. package/dist/{chunk-ZAVEMQ37.cjs.map → chunk-DWZXSPMB.cjs.map} +1 -1
  51. package/dist/{chunk-5HFPRI3W.js → chunk-FUTMU4FR.js} +3 -3
  52. package/dist/{chunk-5HFPRI3W.js.map → chunk-FUTMU4FR.js.map} +1 -1
  53. package/dist/{chunk-5Y7JRY7Y.js → chunk-GDBDHOI4.js} +3 -3
  54. package/dist/{chunk-5Y7JRY7Y.js.map → chunk-GDBDHOI4.js.map} +1 -1
  55. package/dist/{chunk-TGJNPKST.js → chunk-GTCC2VAR.js} +3 -3
  56. package/dist/{chunk-TGJNPKST.js.map → chunk-GTCC2VAR.js.map} +1 -1
  57. package/dist/{chunk-3BJLNKOB.cjs → chunk-GZPTWHP5.cjs} +22 -10
  58. package/dist/chunk-GZPTWHP5.cjs.map +1 -0
  59. package/dist/{chunk-OUW6G4O2.cjs → chunk-HFGXA5CL.cjs} +4 -4
  60. package/dist/{chunk-OUW6G4O2.cjs.map → chunk-HFGXA5CL.cjs.map} +1 -1
  61. package/dist/{chunk-SWQX6CTT.cjs → chunk-JKB7WT7L.cjs} +2 -2
  62. package/dist/chunk-JKB7WT7L.cjs.map +1 -0
  63. package/dist/{chunk-S6BOINC4.cjs → chunk-OGBXV326.cjs} +7 -7
  64. package/dist/{chunk-S6BOINC4.cjs.map → chunk-OGBXV326.cjs.map} +1 -1
  65. package/dist/{chunk-DJM7DLCT.cjs → chunk-OPTBQSCV.cjs} +3 -3
  66. package/dist/{chunk-DJM7DLCT.cjs.map → chunk-OPTBQSCV.cjs.map} +1 -1
  67. package/dist/{chunk-GFYGYME3.js → chunk-OQ7RUNOC.js} +3 -3
  68. package/dist/{chunk-GFYGYME3.js.map → chunk-OQ7RUNOC.js.map} +1 -1
  69. package/dist/{chunk-NYHGG2IA.cjs → chunk-QDEODGXE.cjs} +5 -5
  70. package/dist/{chunk-NYHGG2IA.cjs.map → chunk-QDEODGXE.cjs.map} +1 -1
  71. package/dist/{chunk-6BTCDKCK.js → chunk-QYTYW74G.js} +4 -4
  72. package/dist/{chunk-6BTCDKCK.js.map → chunk-QYTYW74G.js.map} +1 -1
  73. package/dist/{chunk-A7NCSZAP.cjs → chunk-QZTNTP75.cjs} +17 -25
  74. package/dist/chunk-QZTNTP75.cjs.map +1 -0
  75. package/dist/{chunk-OB5F4577.cjs → chunk-R26BK7YL.cjs} +4 -4
  76. package/dist/{chunk-OB5F4577.cjs.map → chunk-R26BK7YL.cjs.map} +1 -1
  77. package/dist/{chunk-A2YAC22G.js → chunk-RI6DZA5X.js} +3 -3
  78. package/dist/{chunk-A2YAC22G.js.map → chunk-RI6DZA5X.js.map} +1 -1
  79. package/dist/{chunk-H2KQ6OSU.js → chunk-SZX44LCT.js} +230 -5
  80. package/dist/chunk-SZX44LCT.js.map +1 -0
  81. package/dist/{chunk-7QDX2CO4.cjs → chunk-TP6PLDNM.cjs} +4 -4
  82. package/dist/{chunk-7QDX2CO4.cjs.map → chunk-TP6PLDNM.cjs.map} +1 -1
  83. package/dist/{chunk-JLTXVW25.cjs → chunk-TT6XV6WM.cjs} +17 -17
  84. package/dist/{chunk-JLTXVW25.cjs.map → chunk-TT6XV6WM.cjs.map} +1 -1
  85. package/dist/{chunk-HSFLEVZY.js → chunk-UMIY4SQS.js} +6 -6
  86. package/dist/{chunk-HSFLEVZY.js.map → chunk-UMIY4SQS.js.map} +1 -1
  87. package/dist/{chunk-ECERC6TI.js → chunk-VHJHY7TT.js} +3 -3
  88. package/dist/{chunk-ECERC6TI.js.map → chunk-VHJHY7TT.js.map} +1 -1
  89. package/dist/{chunk-D3N67Q4D.js → chunk-W3VYZXNS.js} +3 -3
  90. package/dist/{chunk-D3N67Q4D.js.map → chunk-W3VYZXNS.js.map} +1 -1
  91. package/dist/{chunk-JK45LSIH.cjs → chunk-WXYQ66KC.cjs} +5 -5
  92. package/dist/{chunk-JK45LSIH.cjs.map → chunk-WXYQ66KC.cjs.map} +1 -1
  93. package/dist/{chunk-ZCF2JJFA.js → chunk-Y3KA6X7B.js} +3 -3
  94. package/dist/{chunk-ZCF2JJFA.js.map → chunk-Y3KA6X7B.js.map} +1 -1
  95. package/dist/{chunk-GYCQ3FNL.js → chunk-YBLIKTJK.js} +2 -2
  96. package/dist/chunk-YBLIKTJK.js.map +1 -0
  97. package/dist/chunk-YNIBUKV5.js +163 -0
  98. package/dist/chunk-YNIBUKV5.js.map +1 -0
  99. package/dist/citations/index.cjs +12 -11
  100. package/dist/citations/index.js +3 -2
  101. package/dist/collaboration/index.cjs +42 -42
  102. package/dist/collaboration/index.js +2 -2
  103. package/dist/connect/docx.cjs +7 -5
  104. package/dist/connect/docx.cjs.map +1 -1
  105. package/dist/connect/docx.js +6 -4
  106. package/dist/connect/docx.js.map +1 -1
  107. package/dist/connect/index.cjs +237 -194
  108. package/dist/connect/index.cjs.map +1 -1
  109. package/dist/connect/index.d.ts +1 -1
  110. package/dist/connect/index.js +190 -147
  111. package/dist/connect/index.js.map +1 -1
  112. package/dist/connection/ConnectedSettings.d.ts +46 -20
  113. package/dist/connection/ConnectionProvider.d.ts +5 -0
  114. package/dist/connection/mail/ConnectedMailComposer.d.ts +2 -3
  115. package/dist/connection/mail/ConnectedMailbox.d.ts +2 -3
  116. package/dist/connection/mail/MailComposerForm.d.ts +2 -3
  117. package/dist/connection/mail/index.d.ts +2 -2
  118. package/dist/connection/mail/mailbox.d.ts +1 -4
  119. package/dist/connection/mail/types.d.ts +0 -8
  120. package/dist/facts/fact-citations.d.ts +56 -0
  121. package/dist/facts/fact-table-column-resize.d.ts +18 -0
  122. package/dist/facts/index.cjs +197 -10
  123. package/dist/facts/index.cjs.map +1 -1
  124. package/dist/facts/index.d.ts +2 -0
  125. package/dist/facts/index.js +182 -6
  126. package/dist/facts/index.js.map +1 -1
  127. package/dist/files/index.cjs +4 -4
  128. package/dist/files/index.js +3 -3
  129. package/dist/home/index.cjs +20 -19
  130. package/dist/home/index.cjs.map +1 -1
  131. package/dist/home/index.js +5 -4
  132. package/dist/home/index.js.map +1 -1
  133. package/dist/index.cjs +485 -469
  134. package/dist/index.d.ts +2 -1
  135. package/dist/index.js +13 -13
  136. package/dist/provider/BlocksProvider.d.ts +39 -4
  137. package/dist/provider/dialogs.d.ts +31 -0
  138. package/dist/retrieval/index.cjs +5 -4
  139. package/dist/retrieval/index.js +3 -2
  140. package/dist/settings/MoreInfo.d.ts +25 -0
  141. package/dist/settings/PlanCard.d.ts +1 -1
  142. package/dist/settings/index.cjs +106 -252
  143. package/dist/settings/index.cjs.map +1 -1
  144. package/dist/settings/index.d.ts +1 -1
  145. package/dist/settings/index.js +71 -216
  146. package/dist/settings/index.js.map +1 -1
  147. package/dist/shell/index.cjs +48 -47
  148. package/dist/shell/index.js +4 -3
  149. package/dist/studio/index.cjs +15 -14
  150. package/dist/studio/index.cjs.map +1 -1
  151. package/dist/studio/index.js +7 -6
  152. package/dist/studio/index.js.map +1 -1
  153. package/dist/workflow-canvas/index.cjs +14 -14
  154. package/dist/workflow-canvas/index.js +6 -6
  155. package/dist/workspaces/index.cjs +3 -3
  156. package/dist/workspaces/index.js +2 -2
  157. package/node_modules/@arbidocs/coedit/package.json +1 -1
  158. package/package.json +9 -4
  159. package/dist/chunk-3BJLNKOB.cjs.map +0 -1
  160. package/dist/chunk-76JDDMSP.js +0 -31
  161. package/dist/chunk-76JDDMSP.js.map +0 -1
  162. package/dist/chunk-A7NCSZAP.cjs.map +0 -1
  163. package/dist/chunk-C54XEN5T.cjs +0 -34
  164. package/dist/chunk-C54XEN5T.cjs.map +0 -1
  165. package/dist/chunk-CJBN5HIS.js.map +0 -1
  166. package/dist/chunk-DZYAAL4H.cjs.map +0 -1
  167. package/dist/chunk-GYCQ3FNL.js.map +0 -1
  168. package/dist/chunk-H2KQ6OSU.js.map +0 -1
  169. package/dist/chunk-IBZJYCYM.js.map +0 -1
  170. package/dist/chunk-MUMH3Z6K.cjs.map +0 -1
  171. package/dist/chunk-OYMWV45N.js.map +0 -1
  172. package/dist/chunk-SWQX6CTT.cjs.map +0 -1
  173. package/dist/settings/FirmPool.d.ts +0 -82
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Incoming-call ringtone, synthesised with WebAudio (no audio asset): a soft
3
+ * two-tone ring (440 Hz + 480 Hz, like a phone line), 1.2 s on / 2.8 s off,
4
+ * repeating until stopped. The mute preference is per browser.
5
+ *
6
+ * Browsers only let audio start after a user gesture on the page; when the
7
+ * AudioContext stays suspended the ring is silent and the visual ringer still
8
+ * shows. Nothing throws.
9
+ */
10
+ export declare const RINGTONE_MUTED_KEY = "arbi-call-ringtone-muted";
11
+ /** Start ringing; returns a stop function (idempotent). */
12
+ export declare function startRingtone(): () => void;
13
+ /** The per-browser "mute ringtone" preference. */
14
+ export declare function useRingtoneMuted(): [boolean, (muted: boolean) => void];
15
+ /** Ring while `ringing` and not muted; stops on unmount, mute, or when the ring goes away. */
16
+ export declare function useRingtone(ringing: boolean, muted: boolean): void;
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Who is talking, fast: each participant's microphone level, measured in this browser from the
3
+ * audio it already plays (WebAudio analysers, ~60 ms), not from the media server's slower
4
+ * active-speaker events. One store for the whole app, so the call panel (rings, spotlight, live
5
+ * speaker list) and the conversation beside it (the transcript line being spoken) agree.
6
+ *
7
+ * The store is plain data; `startVoiceLevels` (used by the call room) feeds it.
8
+ */
9
+ /** Sampling period. */
10
+ export declare const LEVEL_TICK_MS = 60;
11
+ /** My voice level (0..1, in 0.05 steps) — re-renders only when it changes. */
12
+ export declare function useVoiceLevel(identity: string | null | undefined): number;
13
+ /** Everyone's level (re-renders at the level rate: for small lists). */
14
+ export declare function useVoiceLevels(): Readonly<Record<string, number>>;
15
+ export declare function useIsSpeaking(identity: string | null | undefined): boolean;
16
+ /** Identities talking now, loudest first (a stable string key, split by the caller). */
17
+ export declare function useSpeakingIds(): string[];
18
+ export declare function useSpotlightId(): string | null;
19
+ /** A track to measure: whose it is, and its audio. */
20
+ export interface VoiceSource {
21
+ identity: string;
22
+ track: MediaStreamTrack | null;
23
+ /** Mic muted / off: level 0 without measuring. */
24
+ muted: boolean;
25
+ /** Me: measured (my ring, "Speaking: … (me)") but never put in the spotlight. */
26
+ local?: boolean;
27
+ }
28
+ /**
29
+ * Measure the given sources every {@link LEVEL_TICK_MS} until stopped. `sources()` is read each
30
+ * tick, so the caller can hand over a ref to its current track list.
31
+ */
32
+ export declare function startVoiceLevels(sources: () => VoiceSource[]): () => void;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * ThreadVisualizer: renders a conversation's threads as a Mermaid flowchart (message
3
+ * relationships, branch points, thread paths) inside the ThreadMap parts. The diagram source is
4
+ * built by `thread-diagram.ts`; node clicks open the thread through `switchToThread`.
5
+ *
6
+ * Mermaid is an optional peer, imported on first render, so it stays out of every bundle that
7
+ * never shows the map.
8
+ */
9
+ import { type ThreadDiagramThread } from './thread-diagram';
10
+ /** The hint above the map. */
11
+ export interface ThreadVisualizerLabels {
12
+ hint: string;
13
+ /** Shown instead of `hint` when there are more than five threads. */
14
+ hintMany: string;
15
+ }
16
+ export declare const DEFAULT_THREAD_VISUALIZER_LABELS: ThreadVisualizerLabels;
17
+ export interface ThreadVisualizerProps {
18
+ threads: ThreadDiagramThread[];
19
+ /** Open a thread, by its leaf message id. */
20
+ switchToThread: (threadId: string) => void;
21
+ showHeader?: boolean;
22
+ showDownloadButton?: boolean;
23
+ className?: string;
24
+ labels?: Partial<ThreadVisualizerLabels>;
25
+ }
26
+ declare function ThreadVisualizerView({ threads, switchToThread, showHeader, showDownloadButton, className, labels, }: ThreadVisualizerProps): import("react").JSX.Element;
27
+ export declare const ThreadVisualizer: import("react").MemoExoticComponent<typeof ThreadVisualizerView>;
28
+ export {};
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkDZYAAL4H_cjs = require('../chunk-DZYAAL4H.cjs');
4
+ var chunk4S5IDT5F_cjs = require('../chunk-4S5IDT5F.cjs');
5
5
  require('../chunk-5UHAWSEX.cjs');
6
6
  var chunkPJJY6CYL_cjs = require('../chunk-PJJY6CYL.cjs');
7
7
  require('../chunk-B6MVQCXW.cjs');
8
- var chunkSWQX6CTT_cjs = require('../chunk-SWQX6CTT.cjs');
8
+ var chunkJKB7WT7L_cjs = require('../chunk-JKB7WT7L.cjs');
9
9
  var chunk6AALMYPS_cjs = require('../chunk-6AALMYPS.cjs');
10
10
  require('../chunk-32HW2Q33.cjs');
11
11
  var chunk7UTB4PHM_cjs = require('../chunk-7UTB4PHM.cjs');
@@ -20,287 +20,303 @@ require('../chunk-DES3K4SD.cjs');
20
20
 
21
21
  Object.defineProperty(exports, "AssistantToaster", {
22
22
  enumerable: true,
23
- get: function () { return chunkDZYAAL4H_cjs.AssistantToaster; }
23
+ get: function () { return chunk4S5IDT5F_cjs.AssistantToaster; }
24
24
  });
25
25
  Object.defineProperty(exports, "BranchControls", {
26
26
  enumerable: true,
27
- get: function () { return chunkDZYAAL4H_cjs.BranchControls; }
27
+ get: function () { return chunk4S5IDT5F_cjs.BranchControls; }
28
28
  });
29
29
  Object.defineProperty(exports, "ComposerAccessories", {
30
30
  enumerable: true,
31
- get: function () { return chunkDZYAAL4H_cjs.ComposerAccessories; }
31
+ get: function () { return chunk4S5IDT5F_cjs.ComposerAccessories; }
32
32
  });
33
33
  Object.defineProperty(exports, "ComposerTools", {
34
34
  enumerable: true,
35
- get: function () { return chunkDZYAAL4H_cjs.ComposerTools; }
35
+ get: function () { return chunk4S5IDT5F_cjs.ComposerTools; }
36
36
  });
37
37
  Object.defineProperty(exports, "ContextActionButton", {
38
38
  enumerable: true,
39
- get: function () { return chunkDZYAAL4H_cjs.ContextActionButton; }
39
+ get: function () { return chunk4S5IDT5F_cjs.ContextActionButton; }
40
40
  });
41
41
  Object.defineProperty(exports, "ContextCheckRow", {
42
42
  enumerable: true,
43
- get: function () { return chunkDZYAAL4H_cjs.ContextCheckRow; }
43
+ get: function () { return chunk4S5IDT5F_cjs.ContextCheckRow; }
44
44
  });
45
45
  Object.defineProperty(exports, "ContextPanelContent", {
46
46
  enumerable: true,
47
- get: function () { return chunkDZYAAL4H_cjs.ContextPanelContent; }
47
+ get: function () { return chunk4S5IDT5F_cjs.ContextPanelContent; }
48
48
  });
49
49
  Object.defineProperty(exports, "ContextPanelFooter", {
50
50
  enumerable: true,
51
- get: function () { return chunkDZYAAL4H_cjs.ContextPanelFooter; }
51
+ get: function () { return chunk4S5IDT5F_cjs.ContextPanelFooter; }
52
52
  });
53
53
  Object.defineProperty(exports, "ContextPanelTabs", {
54
54
  enumerable: true,
55
- get: function () { return chunkDZYAAL4H_cjs.ContextPanelTabs; }
55
+ get: function () { return chunk4S5IDT5F_cjs.ContextPanelTabs; }
56
56
  });
57
57
  Object.defineProperty(exports, "ContextPickerList", {
58
58
  enumerable: true,
59
- get: function () { return chunkDZYAAL4H_cjs.ContextPickerList; }
59
+ get: function () { return chunk4S5IDT5F_cjs.ContextPickerList; }
60
60
  });
61
61
  Object.defineProperty(exports, "ContextPickerRow", {
62
62
  enumerable: true,
63
- get: function () { return chunkDZYAAL4H_cjs.ContextPickerRow; }
63
+ get: function () { return chunk4S5IDT5F_cjs.ContextPickerRow; }
64
64
  });
65
65
  Object.defineProperty(exports, "ContextSearchInput", {
66
66
  enumerable: true,
67
- get: function () { return chunkDZYAAL4H_cjs.ContextSearchInput; }
67
+ get: function () { return chunk4S5IDT5F_cjs.ContextSearchInput; }
68
68
  });
69
69
  Object.defineProperty(exports, "ContextSelectList", {
70
70
  enumerable: true,
71
- get: function () { return chunkDZYAAL4H_cjs.ContextSelectList; }
71
+ get: function () { return chunk4S5IDT5F_cjs.ContextSelectList; }
72
72
  });
73
73
  Object.defineProperty(exports, "ContextSelectRow", {
74
74
  enumerable: true,
75
- get: function () { return chunkDZYAAL4H_cjs.ContextSelectRow; }
75
+ get: function () { return chunk4S5IDT5F_cjs.ContextSelectRow; }
76
76
  });
77
77
  Object.defineProperty(exports, "Conversation", {
78
78
  enumerable: true,
79
- get: function () { return chunkDZYAAL4H_cjs.Conversation; }
79
+ get: function () { return chunk4S5IDT5F_cjs.Conversation; }
80
80
  });
81
81
  Object.defineProperty(exports, "ConversationBody", {
82
82
  enumerable: true,
83
- get: function () { return chunkDZYAAL4H_cjs.ConversationBody; }
83
+ get: function () { return chunk4S5IDT5F_cjs.ConversationBody; }
84
84
  });
85
85
  Object.defineProperty(exports, "ConversationFilter", {
86
86
  enumerable: true,
87
- get: function () { return chunkDZYAAL4H_cjs.ConversationFilter; }
87
+ get: function () { return chunk4S5IDT5F_cjs.ConversationFilter; }
88
88
  });
89
89
  Object.defineProperty(exports, "ConversationHeader", {
90
90
  enumerable: true,
91
- get: function () { return chunkDZYAAL4H_cjs.ConversationHeader; }
91
+ get: function () { return chunk4S5IDT5F_cjs.ConversationHeader; }
92
92
  });
93
93
  Object.defineProperty(exports, "ConversationHeaderActions", {
94
94
  enumerable: true,
95
- get: function () { return chunkDZYAAL4H_cjs.ConversationHeaderActions; }
95
+ get: function () { return chunk4S5IDT5F_cjs.ConversationHeaderActions; }
96
96
  });
97
97
  Object.defineProperty(exports, "ConversationHistoryPane", {
98
98
  enumerable: true,
99
- get: function () { return chunkDZYAAL4H_cjs.ConversationHistoryPane; }
99
+ get: function () { return chunk4S5IDT5F_cjs.ConversationHistoryPane; }
100
100
  });
101
101
  Object.defineProperty(exports, "ConversationLoading", {
102
102
  enumerable: true,
103
- get: function () { return chunkDZYAAL4H_cjs.ConversationLoading; }
103
+ get: function () { return chunk4S5IDT5F_cjs.ConversationLoading; }
104
104
  });
105
105
  Object.defineProperty(exports, "ConversationMain", {
106
106
  enumerable: true,
107
- get: function () { return chunkDZYAAL4H_cjs.ConversationMain; }
107
+ get: function () { return chunk4S5IDT5F_cjs.ConversationMain; }
108
108
  });
109
109
  Object.defineProperty(exports, "ConversationRoot", {
110
110
  enumerable: true,
111
- get: function () { return chunkDZYAAL4H_cjs.ConversationRoot; }
111
+ get: function () { return chunk4S5IDT5F_cjs.ConversationRoot; }
112
112
  });
113
113
  Object.defineProperty(exports, "ConversationSearchView", {
114
114
  enumerable: true,
115
- get: function () { return chunkDZYAAL4H_cjs.ConversationSearchView; }
115
+ get: function () { return chunk4S5IDT5F_cjs.ConversationSearchView; }
116
116
  });
117
117
  Object.defineProperty(exports, "ConversationSettingsButton", {
118
118
  enumerable: true,
119
- get: function () { return chunkDZYAAL4H_cjs.ConversationSettingsButton; }
119
+ get: function () { return chunk4S5IDT5F_cjs.ConversationSettingsButton; }
120
120
  });
121
121
  Object.defineProperty(exports, "DEFAULT_BRANCH_CONTROLS_LABELS", {
122
122
  enumerable: true,
123
- get: function () { return chunkDZYAAL4H_cjs.DEFAULT_BRANCH_CONTROLS_LABELS; }
123
+ get: function () { return chunk4S5IDT5F_cjs.DEFAULT_BRANCH_CONTROLS_LABELS; }
124
124
  });
125
125
  Object.defineProperty(exports, "DEFAULT_CONVERSATION_LAYOUT_LABELS", {
126
126
  enumerable: true,
127
- get: function () { return chunkDZYAAL4H_cjs.DEFAULT_CONVERSATION_LAYOUT_LABELS; }
127
+ get: function () { return chunk4S5IDT5F_cjs.DEFAULT_CONVERSATION_LAYOUT_LABELS; }
128
128
  });
129
129
  Object.defineProperty(exports, "DEFAULT_CONVERSATION_PARTS_LABELS", {
130
130
  enumerable: true,
131
- get: function () { return chunkDZYAAL4H_cjs.DEFAULT_CONVERSATION_PARTS_LABELS; }
131
+ get: function () { return chunk4S5IDT5F_cjs.DEFAULT_CONVERSATION_PARTS_LABELS; }
132
132
  });
133
133
  Object.defineProperty(exports, "DEFAULT_CONVERSATION_SEARCH_LABELS", {
134
134
  enumerable: true,
135
- get: function () { return chunkDZYAAL4H_cjs.DEFAULT_CONVERSATION_SEARCH_LABELS; }
135
+ get: function () { return chunk4S5IDT5F_cjs.DEFAULT_CONVERSATION_SEARCH_LABELS; }
136
136
  });
137
137
  Object.defineProperty(exports, "DEFAULT_DRAFTING_DOC_CHIP_LABELS", {
138
138
  enumerable: true,
139
- get: function () { return chunkDZYAAL4H_cjs.DEFAULT_DRAFTING_DOC_CHIP_LABELS; }
139
+ get: function () { return chunk4S5IDT5F_cjs.DEFAULT_DRAFTING_DOC_CHIP_LABELS; }
140
140
  });
141
141
  Object.defineProperty(exports, "DEFAULT_LABEL_PIN_ROW_LABELS", {
142
142
  enumerable: true,
143
- get: function () { return chunkDZYAAL4H_cjs.DEFAULT_LABEL_PIN_ROW_LABELS; }
143
+ get: function () { return chunk4S5IDT5F_cjs.DEFAULT_LABEL_PIN_ROW_LABELS; }
144
144
  });
145
145
  Object.defineProperty(exports, "DEFAULT_MODEL_PRICING_TIP_LABELS", {
146
146
  enumerable: true,
147
- get: function () { return chunkDZYAAL4H_cjs.DEFAULT_MODEL_PRICING_TIP_LABELS; }
147
+ get: function () { return chunk4S5IDT5F_cjs.DEFAULT_MODEL_PRICING_TIP_LABELS; }
148
148
  });
149
149
  Object.defineProperty(exports, "DEFAULT_PENDING_ANSWER_BAR_LABELS", {
150
150
  enumerable: true,
151
- get: function () { return chunkDZYAAL4H_cjs.DEFAULT_PENDING_ANSWER_BAR_LABELS; }
151
+ get: function () { return chunk4S5IDT5F_cjs.DEFAULT_PENDING_ANSWER_BAR_LABELS; }
152
152
  });
153
153
  Object.defineProperty(exports, "DEFAULT_PINNED_DOC_CHIP_LABELS", {
154
154
  enumerable: true,
155
- get: function () { return chunkDZYAAL4H_cjs.DEFAULT_PINNED_DOC_CHIP_LABELS; }
155
+ get: function () { return chunk4S5IDT5F_cjs.DEFAULT_PINNED_DOC_CHIP_LABELS; }
156
156
  });
157
157
  Object.defineProperty(exports, "DEFAULT_SLASH_MENU_LABELS", {
158
158
  enumerable: true,
159
- get: function () { return chunkDZYAAL4H_cjs.DEFAULT_SLASH_MENU_LABELS; }
159
+ get: function () { return chunk4S5IDT5F_cjs.DEFAULT_SLASH_MENU_LABELS; }
160
160
  });
161
161
  Object.defineProperty(exports, "DEFAULT_THREAD_MAP_LABELS", {
162
162
  enumerable: true,
163
- get: function () { return chunkDZYAAL4H_cjs.DEFAULT_THREAD_MAP_LABELS; }
163
+ get: function () { return chunk4S5IDT5F_cjs.DEFAULT_THREAD_MAP_LABELS; }
164
+ });
165
+ Object.defineProperty(exports, "DEFAULT_THREAD_VISUALIZER_LABELS", {
166
+ enumerable: true,
167
+ get: function () { return chunk4S5IDT5F_cjs.DEFAULT_THREAD_VISUALIZER_LABELS; }
164
168
  });
165
169
  Object.defineProperty(exports, "DraftingDocChip", {
166
170
  enumerable: true,
167
- get: function () { return chunkDZYAAL4H_cjs.DraftingDocChip; }
171
+ get: function () { return chunk4S5IDT5F_cjs.DraftingDocChip; }
168
172
  });
169
173
  Object.defineProperty(exports, "LabelPinRow", {
170
174
  enumerable: true,
171
- get: function () { return chunkDZYAAL4H_cjs.LabelPinRow; }
175
+ get: function () { return chunk4S5IDT5F_cjs.LabelPinRow; }
172
176
  });
173
177
  Object.defineProperty(exports, "ModelAutoIcon", {
174
178
  enumerable: true,
175
- get: function () { return chunkDZYAAL4H_cjs.ModelAutoIcon; }
179
+ get: function () { return chunk4S5IDT5F_cjs.ModelAutoIcon; }
176
180
  });
177
181
  Object.defineProperty(exports, "ModelConfigureButton", {
178
182
  enumerable: true,
179
- get: function () { return chunkDZYAAL4H_cjs.ModelConfigureButton; }
183
+ get: function () { return chunk4S5IDT5F_cjs.ModelConfigureButton; }
180
184
  });
181
185
  Object.defineProperty(exports, "ModelDot", {
182
186
  enumerable: true,
183
- get: function () { return chunkDZYAAL4H_cjs.ModelDot; }
187
+ get: function () { return chunk4S5IDT5F_cjs.ModelDot; }
184
188
  });
185
189
  Object.defineProperty(exports, "ModelMenuDivider", {
186
190
  enumerable: true,
187
- get: function () { return chunkDZYAAL4H_cjs.ModelMenuDivider; }
191
+ get: function () { return chunk4S5IDT5F_cjs.ModelMenuDivider; }
188
192
  });
189
193
  Object.defineProperty(exports, "ModelMenuMessage", {
190
194
  enumerable: true,
191
- get: function () { return chunkDZYAAL4H_cjs.ModelMenuMessage; }
195
+ get: function () { return chunk4S5IDT5F_cjs.ModelMenuMessage; }
192
196
  });
193
197
  Object.defineProperty(exports, "ModelOption", {
194
198
  enumerable: true,
195
- get: function () { return chunkDZYAAL4H_cjs.ModelOption; }
199
+ get: function () { return chunk4S5IDT5F_cjs.ModelOption; }
196
200
  });
197
201
  Object.defineProperty(exports, "ModelOptionLabel", {
198
202
  enumerable: true,
199
- get: function () { return chunkDZYAAL4H_cjs.ModelOptionLabel; }
203
+ get: function () { return chunk4S5IDT5F_cjs.ModelOptionLabel; }
200
204
  });
201
205
  Object.defineProperty(exports, "ModelPickerPopover", {
202
206
  enumerable: true,
203
- get: function () { return chunkDZYAAL4H_cjs.ModelPickerPopover; }
207
+ get: function () { return chunk4S5IDT5F_cjs.ModelPickerPopover; }
204
208
  });
205
209
  Object.defineProperty(exports, "ModelPickerTrigger", {
206
210
  enumerable: true,
207
- get: function () { return chunkDZYAAL4H_cjs.ModelPickerTrigger; }
211
+ get: function () { return chunk4S5IDT5F_cjs.ModelPickerTrigger; }
208
212
  });
209
213
  Object.defineProperty(exports, "ModelPricingTip", {
210
214
  enumerable: true,
211
- get: function () { return chunkDZYAAL4H_cjs.ModelPricingTip; }
215
+ get: function () { return chunk4S5IDT5F_cjs.ModelPricingTip; }
212
216
  });
213
217
  Object.defineProperty(exports, "ModelTierIcon", {
214
218
  enumerable: true,
215
- get: function () { return chunkDZYAAL4H_cjs.ModelTierIcon; }
219
+ get: function () { return chunk4S5IDT5F_cjs.ModelTierIcon; }
216
220
  });
217
221
  Object.defineProperty(exports, "ModelTierOption", {
218
222
  enumerable: true,
219
- get: function () { return chunkDZYAAL4H_cjs.ModelTierOption; }
223
+ get: function () { return chunk4S5IDT5F_cjs.ModelTierOption; }
220
224
  });
221
225
  Object.defineProperty(exports, "ModelTriggerContent", {
222
226
  enumerable: true,
223
- get: function () { return chunkDZYAAL4H_cjs.ModelTriggerContent; }
227
+ get: function () { return chunk4S5IDT5F_cjs.ModelTriggerContent; }
224
228
  });
225
229
  Object.defineProperty(exports, "NewChatButton", {
226
230
  enumerable: true,
227
- get: function () { return chunkDZYAAL4H_cjs.NewChatButton; }
231
+ get: function () { return chunk4S5IDT5F_cjs.NewChatButton; }
228
232
  });
229
233
  Object.defineProperty(exports, "NewPaChatButton", {
230
234
  enumerable: true,
231
- get: function () { return chunkDZYAAL4H_cjs.NewPaChatButton; }
235
+ get: function () { return chunk4S5IDT5F_cjs.NewPaChatButton; }
232
236
  });
233
237
  Object.defineProperty(exports, "PaModeBadge", {
234
238
  enumerable: true,
235
- get: function () { return chunkDZYAAL4H_cjs.PaModeBadge; }
239
+ get: function () { return chunk4S5IDT5F_cjs.PaModeBadge; }
236
240
  });
237
241
  Object.defineProperty(exports, "PendingAnswerBar", {
238
242
  enumerable: true,
239
- get: function () { return chunkDZYAAL4H_cjs.PendingAnswerBar; }
243
+ get: function () { return chunk4S5IDT5F_cjs.PendingAnswerBar; }
240
244
  });
241
245
  Object.defineProperty(exports, "PinnedDocChip", {
242
246
  enumerable: true,
243
- get: function () { return chunkDZYAAL4H_cjs.PinnedDocChip; }
247
+ get: function () { return chunk4S5IDT5F_cjs.PinnedDocChip; }
244
248
  });
245
249
  Object.defineProperty(exports, "ProvisionalTranscriptLine", {
246
250
  enumerable: true,
247
- get: function () { return chunkDZYAAL4H_cjs.ProvisionalTranscriptLine; }
251
+ get: function () { return chunk4S5IDT5F_cjs.ProvisionalTranscriptLine; }
248
252
  });
249
253
  Object.defineProperty(exports, "SlashMenu", {
250
254
  enumerable: true,
251
- get: function () { return chunkDZYAAL4H_cjs.SlashMenu; }
255
+ get: function () { return chunk4S5IDT5F_cjs.SlashMenu; }
252
256
  });
253
257
  Object.defineProperty(exports, "ThreadMap", {
254
258
  enumerable: true,
255
- get: function () { return chunkDZYAAL4H_cjs.ThreadMap; }
259
+ get: function () { return chunk4S5IDT5F_cjs.ThreadMap; }
256
260
  });
257
261
  Object.defineProperty(exports, "ThreadMapDiagram", {
258
262
  enumerable: true,
259
- get: function () { return chunkDZYAAL4H_cjs.ThreadMapDiagram; }
263
+ get: function () { return chunk4S5IDT5F_cjs.ThreadMapDiagram; }
260
264
  });
261
265
  Object.defineProperty(exports, "ThreadMapError", {
262
266
  enumerable: true,
263
- get: function () { return chunkDZYAAL4H_cjs.ThreadMapError; }
267
+ get: function () { return chunk4S5IDT5F_cjs.ThreadMapError; }
264
268
  });
265
269
  Object.defineProperty(exports, "ThreadMapLoading", {
266
270
  enumerable: true,
267
- get: function () { return chunkDZYAAL4H_cjs.ThreadMapLoading; }
271
+ get: function () { return chunk4S5IDT5F_cjs.ThreadMapLoading; }
272
+ });
273
+ Object.defineProperty(exports, "ThreadVisualizer", {
274
+ enumerable: true,
275
+ get: function () { return chunk4S5IDT5F_cjs.ThreadVisualizer; }
268
276
  });
269
277
  Object.defineProperty(exports, "TranscriptLine", {
270
278
  enumerable: true,
271
- get: function () { return chunkDZYAAL4H_cjs.TranscriptLine; }
279
+ get: function () { return chunk4S5IDT5F_cjs.TranscriptLine; }
280
+ });
281
+ Object.defineProperty(exports, "buildThreadDiagram", {
282
+ enumerable: true,
283
+ get: function () { return chunk4S5IDT5F_cjs.buildThreadDiagram; }
272
284
  });
273
285
  Object.defineProperty(exports, "flashMessage", {
274
286
  enumerable: true,
275
- get: function () { return chunkDZYAAL4H_cjs.flashMessage; }
287
+ get: function () { return chunk4S5IDT5F_cjs.flashMessage; }
276
288
  });
277
289
  Object.defineProperty(exports, "getParticipantTints", {
278
290
  enumerable: true,
279
- get: function () { return chunkDZYAAL4H_cjs.getParticipantTints; }
291
+ get: function () { return chunk4S5IDT5F_cjs.getParticipantTints; }
280
292
  });
281
293
  Object.defineProperty(exports, "hasMessageBody", {
282
294
  enumerable: true,
283
- get: function () { return chunkDZYAAL4H_cjs.hasMessageBody; }
295
+ get: function () { return chunk4S5IDT5F_cjs.hasMessageBody; }
284
296
  });
285
297
  Object.defineProperty(exports, "isLongPastedText", {
286
298
  enumerable: true,
287
- get: function () { return chunkDZYAAL4H_cjs.isLongPastedText; }
299
+ get: function () { return chunk4S5IDT5F_cjs.isLongPastedText; }
300
+ });
301
+ Object.defineProperty(exports, "threadForNode", {
302
+ enumerable: true,
303
+ get: function () { return chunk4S5IDT5F_cjs.threadForNode; }
288
304
  });
289
305
  Object.defineProperty(exports, "transcriptRuns", {
290
306
  enumerable: true,
291
- get: function () { return chunkDZYAAL4H_cjs.transcriptRuns; }
307
+ get: function () { return chunk4S5IDT5F_cjs.transcriptRuns; }
292
308
  });
293
309
  Object.defineProperty(exports, "useDismissibleCard", {
294
310
  enumerable: true,
295
- get: function () { return chunkDZYAAL4H_cjs.useDismissibleCard; }
311
+ get: function () { return chunk4S5IDT5F_cjs.useDismissibleCard; }
296
312
  });
297
313
  Object.defineProperty(exports, "useLongPaste", {
298
314
  enumerable: true,
299
- get: function () { return chunkDZYAAL4H_cjs.useLongPaste; }
315
+ get: function () { return chunk4S5IDT5F_cjs.useLongPaste; }
300
316
  });
301
317
  Object.defineProperty(exports, "useRecipientDraft", {
302
318
  enumerable: true,
303
- get: function () { return chunkDZYAAL4H_cjs.useRecipientDraft; }
319
+ get: function () { return chunk4S5IDT5F_cjs.useRecipientDraft; }
304
320
  });
305
321
  Object.defineProperty(exports, "AssistantDock", {
306
322
  enumerable: true,
@@ -540,19 +556,19 @@ Object.defineProperty(exports, "useStreamAnnouncement", {
540
556
  });
541
557
  Object.defineProperty(exports, "savedDocumentIdFor", {
542
558
  enumerable: true,
543
- get: function () { return chunkSWQX6CTT_cjs.savedDocumentIdFor; }
559
+ get: function () { return chunkJKB7WT7L_cjs.savedDocumentIdFor; }
544
560
  });
545
561
  Object.defineProperty(exports, "takeOpenDocumentForTurn", {
546
562
  enumerable: true,
547
- get: function () { return chunkSWQX6CTT_cjs.takeOpenDocumentForTurn; }
563
+ get: function () { return chunkJKB7WT7L_cjs.takeOpenDocumentForTurn; }
548
564
  });
549
565
  Object.defineProperty(exports, "useOpenDocumentId", {
550
566
  enumerable: true,
551
- get: function () { return chunkSWQX6CTT_cjs.useOpenDocumentId; }
567
+ get: function () { return chunkJKB7WT7L_cjs.useOpenDocumentId; }
552
568
  });
553
569
  Object.defineProperty(exports, "useRegisterOpenDocument", {
554
570
  enumerable: true,
555
- get: function () { return chunkSWQX6CTT_cjs.useRegisterOpenDocument; }
571
+ get: function () { return chunkJKB7WT7L_cjs.useRegisterOpenDocument; }
556
572
  });
557
573
  Object.defineProperty(exports, "useMentionAutocomplete", {
558
574
  enumerable: true,
@@ -19,6 +19,8 @@ export { BranchControls, DEFAULT_BRANCH_CONTROLS_LABELS, type BranchControlsLabe
19
19
  export { ModelAutoIcon, ModelConfigureButton, ModelDot, ModelMenuDivider, ModelMenuMessage, ModelOption, ModelOptionLabel, ModelPickerPopover, ModelPickerTrigger, ModelPricingTip, ModelTierIcon, ModelTierOption, ModelTriggerContent, DEFAULT_MODEL_PRICING_TIP_LABELS, type ModelPricingTipLabels, type ModelConfigureButtonProps, type ModelOptionProps, type ModelPickerPopoverProps, type ModelPickerTriggerProps, type ModelPricingTipProps, type ModelTierIconProps, type ModelTierKind, type ModelTierOptionProps, type ModelTriggerContentProps, } from './ModelPicker';
20
20
  export { ComposerAccessories, ComposerTools, ConversationHeaderActions, ConversationHistoryPane, ConversationSettingsButton, NewChatButton, NewPaChatButton, PaModeBadge, DEFAULT_CONVERSATION_PARTS_LABELS, type ConversationPartsLabels, type NewChatButtonProps, } from './ConversationParts';
21
21
  export { ThreadMap, ThreadMapDiagram, ThreadMapError, ThreadMapLoading, DEFAULT_THREAD_MAP_LABELS, type ThreadMapLabels, type ThreadMapDiagramProps, type ThreadMapProps, } from './ThreadMap';
22
+ export { ThreadVisualizer, DEFAULT_THREAD_VISUALIZER_LABELS, type ThreadVisualizerLabels, type ThreadVisualizerProps, } from './ThreadVisualizer';
23
+ export { buildThreadDiagram, threadForNode, type ThreadDiagramMessage, type ThreadDiagramThread, } from './thread-diagram';
22
24
  export { useLongPaste, isLongPastedText, type UseLongPaste } from '../lib/useLongPaste';
23
25
  export { useListKeyNav, type UseListKeyNav, type UseListKeyNavOptions } from '../lib/useListKeyNav';
24
26
  export { PendingAnswerBar, DEFAULT_PENDING_ANSWER_BAR_LABELS, type PendingAnswerBarProps, type PendingAnswerBarLabels, } from './PendingAnswerBar';
@@ -1,9 +1,9 @@
1
1
  "use client";
2
- export { AssistantToaster, BranchControls, ComposerAccessories, ComposerTools, ContextActionButton, ContextCheckRow, ContextPanelContent, ContextPanelFooter, ContextPanelTabs, ContextPickerList, ContextPickerRow, ContextSearchInput, ContextSelectList, ContextSelectRow, Conversation, ConversationBody, ConversationFilter, ConversationHeader, ConversationHeaderActions, ConversationHistoryPane, ConversationLoading, ConversationMain, ConversationRoot, ConversationSearchView, ConversationSettingsButton, DEFAULT_BRANCH_CONTROLS_LABELS, DEFAULT_CONVERSATION_LAYOUT_LABELS, DEFAULT_CONVERSATION_PARTS_LABELS, DEFAULT_CONVERSATION_SEARCH_LABELS, DEFAULT_DRAFTING_DOC_CHIP_LABELS, DEFAULT_LABEL_PIN_ROW_LABELS, DEFAULT_MODEL_PRICING_TIP_LABELS, DEFAULT_PENDING_ANSWER_BAR_LABELS, DEFAULT_PINNED_DOC_CHIP_LABELS, DEFAULT_SLASH_MENU_LABELS, DEFAULT_THREAD_MAP_LABELS, DraftingDocChip, LabelPinRow, ModelAutoIcon, ModelConfigureButton, ModelDot, ModelMenuDivider, ModelMenuMessage, ModelOption, ModelOptionLabel, ModelPickerPopover, ModelPickerTrigger, ModelPricingTip, ModelTierIcon, ModelTierOption, ModelTriggerContent, NewChatButton, NewPaChatButton, PaModeBadge, PendingAnswerBar, PinnedDocChip, ProvisionalTranscriptLine, SlashMenu, ThreadMap, ThreadMapDiagram, ThreadMapError, ThreadMapLoading, TranscriptLine, flashMessage, getParticipantTints, hasMessageBody, isLongPastedText, transcriptRuns, useDismissibleCard, useLongPaste, useRecipientDraft } from '../chunk-H2KQ6OSU.js';
2
+ export { AssistantToaster, BranchControls, ComposerAccessories, ComposerTools, ContextActionButton, ContextCheckRow, ContextPanelContent, ContextPanelFooter, ContextPanelTabs, ContextPickerList, ContextPickerRow, ContextSearchInput, ContextSelectList, ContextSelectRow, Conversation, ConversationBody, ConversationFilter, ConversationHeader, ConversationHeaderActions, ConversationHistoryPane, ConversationLoading, ConversationMain, ConversationRoot, ConversationSearchView, ConversationSettingsButton, DEFAULT_BRANCH_CONTROLS_LABELS, DEFAULT_CONVERSATION_LAYOUT_LABELS, DEFAULT_CONVERSATION_PARTS_LABELS, DEFAULT_CONVERSATION_SEARCH_LABELS, DEFAULT_DRAFTING_DOC_CHIP_LABELS, DEFAULT_LABEL_PIN_ROW_LABELS, DEFAULT_MODEL_PRICING_TIP_LABELS, DEFAULT_PENDING_ANSWER_BAR_LABELS, DEFAULT_PINNED_DOC_CHIP_LABELS, DEFAULT_SLASH_MENU_LABELS, DEFAULT_THREAD_MAP_LABELS, DEFAULT_THREAD_VISUALIZER_LABELS, DraftingDocChip, LabelPinRow, ModelAutoIcon, ModelConfigureButton, ModelDot, ModelMenuDivider, ModelMenuMessage, ModelOption, ModelOptionLabel, ModelPickerPopover, ModelPickerTrigger, ModelPricingTip, ModelTierIcon, ModelTierOption, ModelTriggerContent, NewChatButton, NewPaChatButton, PaModeBadge, PendingAnswerBar, PinnedDocChip, ProvisionalTranscriptLine, SlashMenu, ThreadMap, ThreadMapDiagram, ThreadMapError, ThreadMapLoading, ThreadVisualizer, TranscriptLine, buildThreadDiagram, flashMessage, getParticipantTints, hasMessageBody, isLongPastedText, threadForNode, transcriptRuns, useDismissibleCard, useLongPaste, useRecipientDraft } from '../chunk-SZX44LCT.js';
3
3
  import '../chunk-OKERRHLH.js';
4
4
  export { AssistantDock, AssistantDockToggle, AssistantModeToggle, ChatDocuments, ChatMessageContent, ChatPage, ChatThreadList, ChatThreadSelect, CitationMark, Composer, ComposerBranchingNotice, ComposerContainer, ComposerDock, ComposerFrame, ComposerInput, ComposerRoot, ComposerSend, ComposerToolbar, ComposerVoiceButton, ContextChip, ConversationEmpty, DEFAULT_ASSISTANT_MODE_TOGGLE_LABELS, DEFAULT_CHAT_PAGE_LABELS, DEFAULT_COMPOSER_LABELS, DEFAULT_CONVERSATION_EMPTY_LABELS, DEFAULT_MESSAGE_ALERT_LABELS, DEFAULT_MESSAGE_LABELS, DEFAULT_MESSAGE_LIST_LABELS, DEFAULT_WORKFLOW_STEP_CHIP_LABELS, Message, MessageActionButton, MessageActionMenu, MessageAlert, MessageAuthor, MessageBody, MessageBubble, MessageByline, MessageContent, MessageFooter, MessageList, MessageListBanner, MessageListEmpty, MessageListRoot, MessageListRow, MessageListRows, MessageListStatus, MessageListTail, MessageNarration, MessageRoot, MessageSources, MessageSubagentBadge, ScrollToBottom, SourceChip, WorkflowStepChip, toSpeakableText, useAssistantDock, useChatSurface, useRegisterEmbeddedChat, useStreamAnnouncement } from '../chunk-PUCY3UXN.js';
5
5
  import '../chunk-7XF5SFJ2.js';
6
- export { savedDocumentIdFor, takeOpenDocumentForTurn, useOpenDocumentId, useRegisterOpenDocument } from '../chunk-GYCQ3FNL.js';
6
+ export { savedDocumentIdFor, takeOpenDocumentForTurn, useOpenDocumentId, useRegisterOpenDocument } from '../chunk-YBLIKTJK.js';
7
7
  export { useMentionAutocomplete } from '../chunk-2DFDFOM7.js';
8
8
  import '../chunk-AUS3KBHJ.js';
9
9
  export { DEFAULT_MENTION_LABELS, MENTION_HREF_PREFIX, MentionChip, MentionMenu, extractMentions, filterMentionCandidates, findMentionQuery, insertMention, linkMentions, mentionFromHref, toMessageMentions, useListKeyNav } from '../chunk-AA3PT6KR.js';
@@ -14,7 +14,11 @@
14
14
  *
15
15
  * A module-level registry (not React context), like `useChatSurface`, so a viewer and a chat agree
16
16
  * wherever they sit in the tree; the most recently opened document wins and closing it hands back
17
- * to the one before.
17
+ * to the one before. It is not the session state's viewing document (`useArbiSessionState`): it
18
+ * holds what mounted viewers can draft in (saved documents only, with the callback that shows the
19
+ * live one again), and a turn reads it outside React. A viewer on the session's viewing document
20
+ * passes that as `shownId` (it may be a version reference, resolved here the same way as
21
+ * `selectViewingDocumentId` does).
18
22
  */
19
23
  /** What a viewer knows about the document it shows. */
20
24
  export interface SavedDocumentInput {
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Pure helpers for the thread map: build the Mermaid flowchart of a conversation's threads, and
3
+ * resolve which thread a clicked node should open.
4
+ *
5
+ * A Thread is `{ leaf_message_ext_id, history }`; threads may share history up to a branch point.
6
+ */
7
+ /** The message fields the map reads (an ARBI `MessageResponse` fits). */
8
+ export interface ThreadDiagramMessage {
9
+ external_id?: string | null;
10
+ parent_message_ext_id?: string | null;
11
+ is_branch_point?: boolean | null;
12
+ role: string;
13
+ content?: string | null;
14
+ }
15
+ /** One thread: the leaf message and the history leading to it (an ARBI `Thread` fits). */
16
+ export interface ThreadDiagramThread {
17
+ leaf_message_ext_id: string;
18
+ history: ThreadDiagramMessage[];
19
+ }
20
+ /** Mermaid `graph TD` source for the threads, or null while there is nothing to draw. */
21
+ export declare function buildThreadDiagram(threads: ThreadDiagramThread[]): string | null;
22
+ /**
23
+ * The thread to open for a clicked flowchart node: the thread ending at that message if there is
24
+ * one, otherwise the first thread containing it. Node ids look like `flowchart-msg-{uuid}-{n}`.
25
+ */
26
+ export declare function threadForNode(threads: ThreadDiagramThread[], nodeId: string): string | null;
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { useBlocksEnvironment } from './chunk-76JDDMSP.js';
2
+ import { useBlocksEnvironment } from './chunk-YNIBUKV5.js';
3
3
  import { formatPageRefs } from './chunk-OXF2IFXG.js';
4
4
  import { useCallback, useState, useRef, useEffect, useMemo } from 'react';
5
5
  import { X, Check, Copy } from 'lucide-react';
@@ -560,5 +560,5 @@ function CitationEditor({
560
560
  }
561
561
 
562
562
  export { CitationEditor, DEFAULT_PASSAGE_PILL_LABELS, DEFAULT_QUIET_MARK_LABELS, LabelMark, NoteMark, PassageMark, PassagePill, QuietLink, useCopyText };
563
- //# sourceMappingURL=chunk-DQCYCEDR.js.map
564
- //# sourceMappingURL=chunk-DQCYCEDR.js.map
563
+ //# sourceMappingURL=chunk-2Q7FDZAY.js.map
564
+ //# sourceMappingURL=chunk-2Q7FDZAY.js.map