@arbidocs/blocks 0.4.109 → 0.4.111

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 (167) hide show
  1. package/dist/{NativeDocxEditor-WODZAURG.cjs → NativeDocxEditor-AQKRZBIU.cjs} +7 -7
  2. package/dist/{NativeDocxEditor-WODZAURG.cjs.map → NativeDocxEditor-AQKRZBIU.cjs.map} +1 -1
  3. package/dist/{NativeDocxEditor-4PY4YZYC.js → NativeDocxEditor-IN2HEO5I.js} +3 -3
  4. package/dist/{NativeDocxEditor-4PY4YZYC.js.map → NativeDocxEditor-IN2HEO5I.js.map} +1 -1
  5. package/dist/agents/index.cjs +286 -286
  6. package/dist/agents/index.js +10 -10
  7. package/dist/agents/tasks/ConversationListView.d.ts +5 -1
  8. package/dist/agents/tasks/TaskActivityTimeline.d.ts +5 -1
  9. package/dist/calendar/EventDetails.d.ts +1 -1
  10. package/dist/calendar/EventEditor.d.ts +1 -1
  11. package/dist/calendar/draft.d.ts +7 -1
  12. package/dist/calendar/index.cjs +71 -10
  13. package/dist/calendar/index.cjs.map +1 -1
  14. package/dist/calendar/index.d.ts +1 -1
  15. package/dist/calendar/index.js +69 -11
  16. package/dist/calendar/index.js.map +1 -1
  17. package/dist/calendar/types.d.ts +23 -0
  18. package/dist/calls/CallSidePanel.d.ts +32 -0
  19. package/dist/calls/CallStage.d.ts +57 -0
  20. package/dist/calls/ControlBar.d.ts +113 -0
  21. package/dist/calls/ControlButton.d.ts +44 -0
  22. package/dist/calls/PreJoin.d.ts +35 -0
  23. package/dist/calls/cards.d.ts +58 -0
  24. package/dist/calls/hooks.d.ts +20 -0
  25. package/dist/calls/index.cjs +2884 -0
  26. package/dist/calls/index.cjs.map +1 -0
  27. package/dist/calls/index.d.ts +21 -0
  28. package/dist/calls/index.js +2753 -0
  29. package/dist/calls/index.js.map +1 -0
  30. package/dist/calls/join-choices.d.ts +11 -0
  31. package/dist/calls/layout.d.ts +106 -0
  32. package/dist/calls/panels.d.ts +66 -0
  33. package/dist/calls/status.d.ts +69 -0
  34. package/dist/calls/tiles.d.ts +59 -0
  35. package/dist/calls/webinar/ChatPermissionSetting.d.ts +18 -0
  36. package/dist/calls/webinar/OnStageCheck.d.ts +23 -0
  37. package/dist/calls/webinar/QAPanel.d.ts +56 -0
  38. package/dist/calls/webinar/RaiseHandButton.d.ts +14 -0
  39. package/dist/calls/webinar/WebinarAudiencePanel.d.ts +23 -0
  40. package/dist/calls/webinar/WebinarViewer.d.ts +39 -0
  41. package/dist/calls/webinar/WebinarWaiting.d.ts +19 -0
  42. package/dist/calls/webinar/hooks.d.ts +13 -0
  43. package/dist/calls/webinar/index.d.ts +14 -0
  44. package/dist/calls/webinar/live.d.ts +43 -0
  45. package/dist/calls/webinar/types.d.ts +49 -0
  46. package/dist/chat/Message.d.ts +17 -2
  47. package/dist/chat/TranscriptLine.d.ts +50 -0
  48. package/dist/chat/index.cjs +147 -126
  49. package/dist/chat/index.d.ts +3 -1
  50. package/dist/chat/index.js +5 -4
  51. package/dist/chat/transcript-runs.d.ts +6 -0
  52. package/dist/{chunk-GKDWQLVU.js → chunk-2C7TCVQZ.js} +172 -121
  53. package/dist/chunk-2C7TCVQZ.js.map +1 -0
  54. package/dist/{chunk-QKWQMOHN.cjs → chunk-2UAJVK3C.cjs} +4 -4
  55. package/dist/{chunk-QKWQMOHN.cjs.map → chunk-2UAJVK3C.cjs.map} +1 -1
  56. package/dist/{chunk-54WBIVHV.cjs → chunk-2WO5L7YT.cjs} +5 -5
  57. package/dist/{chunk-54WBIVHV.cjs.map → chunk-2WO5L7YT.cjs.map} +1 -1
  58. package/dist/{chunk-7C35WXYB.js → chunk-5HFPRI3W.js} +5 -5
  59. package/dist/chunk-5HFPRI3W.js.map +1 -0
  60. package/dist/{chunk-ZSV2NQQP.js → chunk-6RHHMBZ5.js} +158 -5
  61. package/dist/chunk-6RHHMBZ5.js.map +1 -0
  62. package/dist/{chunk-FQX6N5G6.js → chunk-6Z7DLJU2.js} +35 -18
  63. package/dist/chunk-6Z7DLJU2.js.map +1 -0
  64. package/dist/{chunk-PGDL26TQ.js → chunk-AY32GGKU.js} +10 -4
  65. package/dist/{chunk-PGDL26TQ.js.map → chunk-AY32GGKU.js.map} +1 -1
  66. package/dist/{chunk-S55VDTX3.js → chunk-CECWAIHL.js} +3 -3
  67. package/dist/{chunk-S55VDTX3.js.map → chunk-CECWAIHL.js.map} +1 -1
  68. package/dist/{chunk-UABPHZWZ.js → chunk-CXZ7FPTQ.js} +3 -3
  69. package/dist/{chunk-UABPHZWZ.js.map → chunk-CXZ7FPTQ.js.map} +1 -1
  70. package/dist/{chunk-C2HRZSAT.cjs → chunk-DJM7DLCT.cjs} +5 -5
  71. package/dist/chunk-DJM7DLCT.cjs.map +1 -0
  72. package/dist/{chunk-GBYY3PIC.cjs → chunk-FXUQZFAN.cjs} +79 -62
  73. package/dist/chunk-FXUQZFAN.cjs.map +1 -0
  74. package/dist/{chunk-W7NZRZ54.js → chunk-GFYGYME3.js} +3 -3
  75. package/dist/{chunk-W7NZRZ54.js.map → chunk-GFYGYME3.js.map} +1 -1
  76. package/dist/chunk-GICUGQNN.cjs +76 -0
  77. package/dist/chunk-GICUGQNN.cjs.map +1 -0
  78. package/dist/{chunk-I4XQCE6U.cjs → chunk-HBBJYRGI.cjs} +162 -5
  79. package/dist/{chunk-ZSV2NQQP.js.map → chunk-HBBJYRGI.cjs.map} +1 -1
  80. package/dist/chunk-JJLMCV3T.js +73 -0
  81. package/dist/chunk-JJLMCV3T.js.map +1 -0
  82. package/dist/chunk-MWDW5UBW.cjs +199 -0
  83. package/dist/chunk-MWDW5UBW.cjs.map +1 -0
  84. package/dist/{chunk-NUTLXVPX.js → chunk-NRUPUDWB.js} +16 -7
  85. package/dist/chunk-NRUPUDWB.js.map +1 -0
  86. package/dist/{chunk-5YXG342J.cjs → chunk-OR4CO743.cjs} +3 -3
  87. package/dist/{chunk-5YXG342J.cjs.map → chunk-OR4CO743.cjs.map} +1 -1
  88. package/dist/{chunk-DDF5GPIJ.js → chunk-P5ST47VY.js} +3 -3
  89. package/dist/{chunk-DDF5GPIJ.js.map → chunk-P5ST47VY.js.map} +1 -1
  90. package/dist/{chunk-PEHLUB52.js → chunk-Q6B77ZWZ.js} +3 -3
  91. package/dist/{chunk-PEHLUB52.js.map → chunk-Q6B77ZWZ.js.map} +1 -1
  92. package/dist/{chunk-ELDUWTRR.cjs → chunk-TF47ATYS.cjs} +4 -4
  93. package/dist/{chunk-ELDUWTRR.cjs.map → chunk-TF47ATYS.cjs.map} +1 -1
  94. package/dist/{chunk-PDRYGPZB.cjs → chunk-VP4KJ4LK.cjs} +16 -6
  95. package/dist/chunk-VP4KJ4LK.cjs.map +1 -0
  96. package/dist/{chunk-SKSE4OT6.cjs → chunk-WPVIOGDG.cjs} +5 -5
  97. package/dist/{chunk-SKSE4OT6.cjs.map → chunk-WPVIOGDG.cjs.map} +1 -1
  98. package/dist/{chunk-JB32KYAH.js → chunk-WTM65ZNG.js} +3 -3
  99. package/dist/{chunk-JB32KYAH.js.map → chunk-WTM65ZNG.js.map} +1 -1
  100. package/dist/{chunk-2NIL2ASF.cjs → chunk-XIGWUDOD.cjs} +170 -119
  101. package/dist/chunk-XIGWUDOD.cjs.map +1 -0
  102. package/dist/{chunk-3US5OIDQ.cjs → chunk-XSUOEJB3.cjs} +9 -3
  103. package/dist/chunk-XSUOEJB3.cjs.map +1 -0
  104. package/dist/chunk-Z3AZ7Q5X.js +177 -0
  105. package/dist/chunk-Z3AZ7Q5X.js.map +1 -0
  106. package/dist/{chunk-Z5VUZ6YD.cjs → chunk-ZV3BKLFY.cjs} +3 -3
  107. package/dist/{chunk-Z5VUZ6YD.cjs.map → chunk-ZV3BKLFY.cjs.map} +1 -1
  108. package/dist/collaboration/index.cjs +42 -42
  109. package/dist/collaboration/index.js +2 -2
  110. package/dist/connect/docx.cjs +6 -6
  111. package/dist/connect/docx.js +4 -4
  112. package/dist/connect/index.cjs +72 -72
  113. package/dist/connect/index.js +18 -18
  114. package/dist/docx/AgentUndo.d.ts +4 -0
  115. package/dist/docx/index.cjs +46 -46
  116. package/dist/docx/index.js +3 -3
  117. package/dist/facts/index.cjs +4 -4
  118. package/dist/facts/index.js +4 -4
  119. package/dist/files/index.cjs +6 -6
  120. package/dist/files/index.js +6 -6
  121. package/dist/home/index.cjs +17 -17
  122. package/dist/home/index.js +3 -3
  123. package/dist/index.cjs +958 -937
  124. package/dist/index.cjs.map +1 -1
  125. package/dist/index.js +24 -23
  126. package/dist/index.js.map +1 -1
  127. package/dist/retrieval/index.cjs +1 -1
  128. package/dist/retrieval/index.js +1 -1
  129. package/dist/settings/index.cjs +50 -104
  130. package/dist/settings/index.cjs.map +1 -1
  131. package/dist/settings/index.js +12 -72
  132. package/dist/settings/index.js.map +1 -1
  133. package/dist/shell/index.cjs +12 -12
  134. package/dist/shell/index.js +4 -4
  135. package/dist/site/index.cjs +5 -5
  136. package/dist/site/index.js +1 -1
  137. package/dist/studio/index.cjs +5 -5
  138. package/dist/studio/index.js +4 -4
  139. package/dist/workflow-canvas/index.cjs +53 -53
  140. package/dist/workflow-canvas/index.js +10 -10
  141. package/dist/workspaces/index.cjs +2 -2
  142. package/dist/workspaces/index.js +2 -2
  143. package/node_modules/@arbidocs/coedit/dist/commands.cjs +179 -9
  144. package/node_modules/@arbidocs/coedit/dist/commands.cjs.map +1 -1
  145. package/node_modules/@arbidocs/coedit/dist/commands.d.cts +81 -1
  146. package/node_modules/@arbidocs/coedit/dist/commands.d.ts +81 -1
  147. package/node_modules/@arbidocs/coedit/dist/commands.js +173 -11
  148. package/node_modules/@arbidocs/coedit/dist/commands.js.map +1 -1
  149. package/node_modules/@arbidocs/coedit/dist/server.cjs +58 -2
  150. package/node_modules/@arbidocs/coedit/dist/server.cjs.map +1 -1
  151. package/node_modules/@arbidocs/coedit/dist/server.d.cts +29 -1
  152. package/node_modules/@arbidocs/coedit/dist/server.d.ts +29 -1
  153. package/node_modules/@arbidocs/coedit/dist/server.js +58 -3
  154. package/node_modules/@arbidocs/coedit/dist/server.js.map +1 -1
  155. package/node_modules/@arbidocs/coedit/package.json +1 -1
  156. package/package.json +15 -5
  157. package/src/calls/calls.css +157 -0
  158. package/dist/chunk-2NIL2ASF.cjs.map +0 -1
  159. package/dist/chunk-3US5OIDQ.cjs.map +0 -1
  160. package/dist/chunk-7C35WXYB.js.map +0 -1
  161. package/dist/chunk-C2HRZSAT.cjs.map +0 -1
  162. package/dist/chunk-FQX6N5G6.js.map +0 -1
  163. package/dist/chunk-GBYY3PIC.cjs.map +0 -1
  164. package/dist/chunk-GKDWQLVU.js.map +0 -1
  165. package/dist/chunk-I4XQCE6U.cjs.map +0 -1
  166. package/dist/chunk-NUTLXVPX.js.map +0 -1
  167. package/dist/chunk-PDRYGPZB.cjs.map +0 -1
@@ -0,0 +1,76 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var chunkULWRNGGE_cjs = require('./chunk-ULWRNGGE.cjs');
5
+ var chunkMHVNT4J3_cjs = require('./chunk-MHVNT4J3.cjs');
6
+ var react = require('react');
7
+ var lucideReact = require('lucide-react');
8
+ var ui = require('@arbidocs/react/ui');
9
+ var jsxRuntime = require('react/jsx-runtime');
10
+
11
+ var DEFAULT_CONFIRM_DIALOG_LABELS = {
12
+ confirm: "Confirm",
13
+ cancel: "Cancel",
14
+ pleaseWait: "Please wait..."
15
+ };
16
+ function ConfirmDialog({
17
+ isOpen,
18
+ onClose,
19
+ onConfirm,
20
+ title,
21
+ description,
22
+ confirmText,
23
+ cancelText,
24
+ variant = "destructive",
25
+ isLoading = false,
26
+ labels,
27
+ testId,
28
+ testIds
29
+ }) {
30
+ const l = react.useMemo(() => ({ ...DEFAULT_CONFIRM_DIALOG_LABELS, ...labels }), [labels]);
31
+ const cancelRef = react.useRef(null);
32
+ return /* @__PURE__ */ jsxRuntime.jsx(
33
+ chunkULWRNGGE_cjs.ModalScaffold,
34
+ {
35
+ open: isOpen,
36
+ onOpenChange: (next) => {
37
+ if (!next) onClose();
38
+ },
39
+ role: "alertdialog",
40
+ initialFocusRef: cancelRef,
41
+ title,
42
+ description,
43
+ showDescription: true,
44
+ icon: variant === "destructive" ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, { className: "h-5 w-5 text-red-text", "aria-hidden": "true" }) : null,
45
+ testId: chunkMHVNT4J3_cjs.testIdOr(testId, { testId: "confirmation-modal" }),
46
+ children: /* @__PURE__ */ jsxRuntime.jsxs(chunkULWRNGGE_cjs.ModalScaffold.Footer, { children: [
47
+ /* @__PURE__ */ jsxRuntime.jsx(
48
+ ui.Button,
49
+ {
50
+ ref: cancelRef,
51
+ variant: "outline",
52
+ onClick: () => onClose(),
53
+ disabled: isLoading,
54
+ "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.cancel, { testId: "confirmation-modal-cancel-button" }),
55
+ children: cancelText ?? l.cancel
56
+ }
57
+ ),
58
+ /* @__PURE__ */ jsxRuntime.jsx(
59
+ ui.Button,
60
+ {
61
+ variant,
62
+ onClick: onConfirm,
63
+ disabled: isLoading,
64
+ "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.confirm, { testId: "confirmation-modal-confirm-button" }),
65
+ children: isLoading ? l.pleaseWait : confirmText ?? l.confirm
66
+ }
67
+ )
68
+ ] })
69
+ }
70
+ );
71
+ }
72
+
73
+ exports.ConfirmDialog = ConfirmDialog;
74
+ exports.DEFAULT_CONFIRM_DIALOG_LABELS = DEFAULT_CONFIRM_DIALOG_LABELS;
75
+ //# sourceMappingURL=chunk-GICUGQNN.cjs.map
76
+ //# sourceMappingURL=chunk-GICUGQNN.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/settings/ConfirmDialog.tsx"],"names":["useMemo","useRef","jsx","ModalScaffold","AlertTriangle","testIdOr","jsxs","Button"],"mappings":";;;;;;;;;AAaO,IAAM,6BAAA,GAAqD;AAAA,EAChE,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,QAAA;AAAA,EACR,UAAA,EAAY;AACd;AAuBO,SAAS,aAAA,CAAc;AAAA,EAC5B,MAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA,GAAU,aAAA;AAAA,EACV,SAAA,GAAY,KAAA;AAAA,EACZ,MAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,EAAuB;AACrB,EAAA,MAAM,CAAA,GAAIA,aAAA,CAAQ,OAAO,EAAE,GAAG,6BAAA,EAA+B,GAAG,MAAA,EAAO,CAAA,EAAI,CAAC,MAAM,CAAC,CAAA;AACnF,EAAA,MAAM,SAAA,GAAYC,aAA0B,IAAI,CAAA;AAChD,EAAA,uBACEC,cAAA;AAAA,IAACC,+BAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAM,MAAA;AAAA,MACN,YAAA,EAAc,CAAC,IAAA,KAAS;AACtB,QAAA,IAAI,CAAC,MAAM,OAAA,EAAQ;AAAA,MACrB,CAAA;AAAA,MACA,IAAA,EAAK,aAAA;AAAA,MACL,eAAA,EAAiB,SAAA;AAAA,MACjB,KAAA;AAAA,MACA,WAAA;AAAA,MACA,eAAA,EAAe,IAAA;AAAA,MACf,IAAA,EACE,YAAY,aAAA,mBACVD,cAAA,CAACE,6BAAc,SAAA,EAAU,uBAAA,EAAwB,aAAA,EAAY,MAAA,EAAO,CAAA,GAClE,IAAA;AAAA,MAEN,QAAQC,0BAAA,CAAS,MAAA,EAAQ,EAAE,MAAA,EAAQ,sBAAsB,CAAA;AAAA,MAEzD,QAAA,kBAAAC,eAAA,CAACH,+BAAA,CAAc,MAAA,EAAd,EACC,QAAA,EAAA;AAAA,wBAAAD,cAAA;AAAA,UAACK,SAAA;AAAA,UAAA;AAAA,YACC,GAAA,EAAK,SAAA;AAAA,YACL,OAAA,EAAQ,SAAA;AAAA,YACR,OAAA,EAAS,MAAM,OAAA,EAAQ;AAAA,YACvB,QAAA,EAAU,SAAA;AAAA,YACV,eAAaF,0BAAA,CAAS,OAAA,EAAS,QAAQ,EAAE,MAAA,EAAQ,oCAAoC,CAAA;AAAA,YAEpF,wBAAc,CAAA,CAAE;AAAA;AAAA,SACnB;AAAA,wBACAH,cAAA;AAAA,UAACK,SAAA;AAAA,UAAA;AAAA,YACC,OAAA;AAAA,YACA,OAAA,EAAS,SAAA;AAAA,YACT,QAAA,EAAU,SAAA;AAAA,YACV,eAAaF,0BAAA,CAAS,OAAA,EAAS,SAAS,EAAE,MAAA,EAAQ,qCAAqC,CAAA;AAAA,YAEtF,QAAA,EAAA,SAAA,GAAY,CAAA,CAAE,UAAA,GAAc,WAAA,IAAe,CAAA,CAAE;AAAA;AAAA;AAChD,OAAA,EACF;AAAA;AAAA,GACF;AAEJ","file":"chunk-GICUGQNN.cjs","sourcesContent":["import { useMemo, useRef } from 'react'\nimport { AlertTriangle } from 'lucide-react'\nimport { Button } from '@arbidocs/react/ui'\nimport { testIdOr } from '../chat/test-id'\nimport { ModalScaffold } from './ModalScaffold'\n\n/** Every fixed string of the confirm dialog. `confirmText` / `cancelText` props win. */\nexport interface ConfirmDialogLabels {\n confirm: string\n cancel: string\n pleaseWait: string\n}\n\nexport const DEFAULT_CONFIRM_DIALOG_LABELS: ConfirmDialogLabels = {\n confirm: 'Confirm',\n cancel: 'Cancel',\n pleaseWait: 'Please wait...',\n}\n\nexport interface ConfirmDialogProps {\n labels?: Partial<ConfirmDialogLabels>\n isOpen: boolean\n onClose: () => void\n onConfirm: () => void\n title: string\n description: string\n confirmText?: string\n cancelText?: string\n variant?: 'destructive' | 'default'\n isLoading?: boolean\n /** Dialog test id (default `confirmation-modal`). */\n testId?: string\n /** Button ids; defaults are the current ids. */\n testIds?: Partial<Record<'cancel' | 'confirm', string>>\n}\n\n/**\n * Declarative yes/no confirmation with a loading state. An `alertdialog`: initial focus is on\n * Cancel (the safe action) and clicking outside does not dismiss it; Escape and Cancel do.\n */\nexport function ConfirmDialog({\n isOpen,\n onClose,\n onConfirm,\n title,\n description,\n confirmText,\n cancelText,\n variant = 'destructive',\n isLoading = false,\n labels,\n testId,\n testIds,\n}: ConfirmDialogProps) {\n const l = useMemo(() => ({ ...DEFAULT_CONFIRM_DIALOG_LABELS, ...labels }), [labels])\n const cancelRef = useRef<HTMLButtonElement>(null)\n return (\n <ModalScaffold\n open={isOpen}\n onOpenChange={(next) => {\n if (!next) onClose()\n }}\n role=\"alertdialog\"\n initialFocusRef={cancelRef}\n title={title}\n description={description}\n showDescription\n icon={\n variant === 'destructive' ? (\n <AlertTriangle className=\"h-5 w-5 text-red-text\" aria-hidden=\"true\" />\n ) : null\n }\n testId={testIdOr(testId, { testId: 'confirmation-modal' })}\n >\n <ModalScaffold.Footer>\n <Button\n ref={cancelRef}\n variant=\"outline\"\n onClick={() => onClose()}\n disabled={isLoading}\n data-testid={testIdOr(testIds?.cancel, { testId: 'confirmation-modal-cancel-button' })}\n >\n {cancelText ?? l.cancel}\n </Button>\n <Button\n variant={variant}\n onClick={onConfirm}\n disabled={isLoading}\n data-testid={testIdOr(testIds?.confirm, { testId: 'confirmation-modal-confirm-button' })}\n >\n {isLoading ? l.pleaseWait : (confirmText ?? l.confirm)}\n </Button>\n </ModalScaffold.Footer>\n </ModalScaffold>\n )\n}\n"]}
@@ -2,9 +2,10 @@
2
2
  'use strict';
3
3
 
4
4
  var chunkXKSFJYOD_cjs = require('./chunk-XKSFJYOD.cjs');
5
- var chunkPDRYGPZB_cjs = require('./chunk-PDRYGPZB.cjs');
5
+ var chunkVP4KJ4LK_cjs = require('./chunk-VP4KJ4LK.cjs');
6
6
  var chunkVGOFFCMT_cjs = require('./chunk-VGOFFCMT.cjs');
7
7
  var chunk7UTB4PHM_cjs = require('./chunk-7UTB4PHM.cjs');
8
+ var chunkMWDW5UBW_cjs = require('./chunk-MWDW5UBW.cjs');
8
9
  var chunkMHVNT4J3_cjs = require('./chunk-MHVNT4J3.cjs');
9
10
  var react = require('react');
10
11
  var lucideReact = require('lucide-react');
@@ -1598,8 +1599,8 @@ function LabelPinRow({
1598
1599
  );
1599
1600
  }
1600
1601
  function AssistantToaster(props) {
1601
- const dock = chunkPDRYGPZB_cjs.useAssistantDock();
1602
- const { isDockAvailable } = chunkPDRYGPZB_cjs.useChatSurface();
1602
+ const dock = chunkVP4KJ4LK_cjs.useAssistantDock();
1603
+ const { isDockAvailable } = chunkVP4KJ4LK_cjs.useChatSurface();
1603
1604
  return /* @__PURE__ */ jsxRuntime.jsx(chunkXKSFJYOD_cjs.Toaster, { ...props, dockOpen: dock.isOpen && isDockAvailable });
1604
1605
  }
1605
1606
  function hasMessageBody(value, recipientLabel = "ARBI") {
@@ -1644,6 +1645,158 @@ function useRecipientDraft({
1644
1645
  }
1645
1646
  };
1646
1647
  }
1648
+ function TranscriptLine({
1649
+ speakerId,
1650
+ speakerName,
1651
+ speaker,
1652
+ time,
1653
+ text,
1654
+ continued = false,
1655
+ live = false,
1656
+ liveLabel = "speaking",
1657
+ className
1658
+ }) {
1659
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1660
+ "div",
1661
+ {
1662
+ className: ui.cn(
1663
+ "mx-auto flex w-full max-w-[36rem] flex-col items-center px-3 pb-1 text-center text-sm",
1664
+ continued ? "pt-0.5" : "pt-3",
1665
+ className
1666
+ ),
1667
+ "data-testid": "transcript-entry",
1668
+ "data-speaker": speakerId,
1669
+ "data-continued": continued || void 0,
1670
+ "data-live": live || void 0,
1671
+ children: [
1672
+ !continued && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-0.5 flex items-center justify-center gap-1.5", children: [
1673
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AudioLines, { className: "size-3.5 text-muted-foreground", "aria-label": "Transcript" }),
1674
+ speaker ?? /* @__PURE__ */ jsxRuntime.jsx("span", { className: ui.cn("font-medium", chunkMWDW5UBW_cjs.speakerAccent(speakerId)), children: speakerName }),
1675
+ time && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-muted-foreground", children: time })
1676
+ ] }),
1677
+ /* @__PURE__ */ jsxRuntime.jsxs(
1678
+ "p",
1679
+ {
1680
+ className: ui.cn(
1681
+ "w-full whitespace-pre-wrap break-words rounded-md px-3 py-1 text-muted-foreground transition-colors motion-reduce:transition-none",
1682
+ live && "bg-muted text-foreground"
1683
+ ),
1684
+ children: [
1685
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: continued ? `${speakerName}: ` : "" }),
1686
+ text,
1687
+ live && /* @__PURE__ */ jsxRuntime.jsxs(
1688
+ "span",
1689
+ {
1690
+ className: ui.cn(
1691
+ "ml-1.5 inline-flex items-center gap-1 align-middle text-xs font-medium",
1692
+ chunkMWDW5UBW_cjs.speakerAccent(speakerId)
1693
+ ),
1694
+ children: [
1695
+ /* @__PURE__ */ jsxRuntime.jsx(
1696
+ "span",
1697
+ {
1698
+ className: "size-1.5 rounded-full bg-current motion-safe:animate-pulse",
1699
+ "aria-hidden": true
1700
+ }
1701
+ ),
1702
+ liveLabel
1703
+ ]
1704
+ }
1705
+ )
1706
+ ]
1707
+ }
1708
+ )
1709
+ ]
1710
+ }
1711
+ );
1712
+ }
1713
+ function ConversationFilter({
1714
+ value,
1715
+ options,
1716
+ onChange,
1717
+ label = "Show",
1718
+ className
1719
+ }) {
1720
+ return /* @__PURE__ */ jsxRuntime.jsx(
1721
+ "div",
1722
+ {
1723
+ className: ui.cn(
1724
+ "inline-flex items-center gap-0.5 rounded-md border border-border bg-background p-0.5 text-xs shadow-xs",
1725
+ className
1726
+ ),
1727
+ role: "group",
1728
+ "aria-label": label,
1729
+ "data-testid": "conversation-filter",
1730
+ children: options.map((o) => /* @__PURE__ */ jsxRuntime.jsxs(
1731
+ "button",
1732
+ {
1733
+ type: "button",
1734
+ className: ui.cn(
1735
+ "rounded-sm px-2.5 py-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:min-h-11",
1736
+ value === o.value ? "bg-muted font-medium text-foreground" : "text-muted-foreground hover:bg-muted hover:text-foreground"
1737
+ ),
1738
+ "aria-pressed": value === o.value,
1739
+ onClick: () => onChange(o.value),
1740
+ "data-testid": o.testId,
1741
+ children: [
1742
+ o.label,
1743
+ o.count != null && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-1 tabular-nums opacity-70", children: o.count })
1744
+ ]
1745
+ },
1746
+ o.value
1747
+ ))
1748
+ }
1749
+ );
1750
+ }
1751
+ function ProvisionalTranscriptLine({
1752
+ speakerId,
1753
+ speakerName,
1754
+ speaker,
1755
+ label = "is speaking",
1756
+ className
1757
+ }) {
1758
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1759
+ "div",
1760
+ {
1761
+ className: ui.cn(
1762
+ "mx-auto flex w-full max-w-[36rem] items-center justify-center gap-1.5 px-3 pt-3 text-sm text-muted-foreground",
1763
+ className
1764
+ ),
1765
+ "data-testid": "transcript-provisional",
1766
+ "data-speaker": speakerId,
1767
+ role: "status",
1768
+ "aria-live": "polite",
1769
+ children: [
1770
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AudioLines, { className: "size-3.5", "aria-hidden": true }),
1771
+ speaker ?? /* @__PURE__ */ jsxRuntime.jsx("span", { className: ui.cn("font-medium", chunkMWDW5UBW_cjs.speakerAccent(speakerId)), children: speakerName }),
1772
+ speaker && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: speakerName }),
1773
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "italic", children: label }),
1774
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex gap-0.5", "aria-hidden": true, children: [0, 1, 2].map((i) => /* @__PURE__ */ jsxRuntime.jsx(
1775
+ "span",
1776
+ {
1777
+ className: ui.cn("size-1 rounded-full motion-safe:animate-pulse", chunkMWDW5UBW_cjs.speakerDot(speakerId)),
1778
+ style: { animationDelay: `${i * 200}ms` }
1779
+ },
1780
+ i
1781
+ )) })
1782
+ ]
1783
+ }
1784
+ );
1785
+ }
1786
+
1787
+ // src/chat/transcript-runs.ts
1788
+ function transcriptRuns(items, speakerOf, timeOf, gapMs = 2 * 6e4) {
1789
+ const continued = /* @__PURE__ */ new Set();
1790
+ let prev = null;
1791
+ for (const item of items) {
1792
+ const speaker = speakerOf(item);
1793
+ if (speaker && prev && speakerOf(prev) === speaker && Math.abs(timeOf(item) - timeOf(prev)) <= gapMs) {
1794
+ continued.add(item);
1795
+ }
1796
+ prev = speaker ? item : null;
1797
+ }
1798
+ return continued;
1799
+ }
1647
1800
 
1648
1801
  exports.AssistantToaster = AssistantToaster;
1649
1802
  exports.BranchControls = BranchControls;
@@ -1661,6 +1814,7 @@ exports.ContextSelectList = ContextSelectList;
1661
1814
  exports.ContextSelectRow = ContextSelectRow;
1662
1815
  exports.Conversation = Conversation;
1663
1816
  exports.ConversationBody = ConversationBody;
1817
+ exports.ConversationFilter = ConversationFilter;
1664
1818
  exports.ConversationHeader = ConversationHeader;
1665
1819
  exports.ConversationHeaderActions = ConversationHeaderActions;
1666
1820
  exports.ConversationHistoryPane = ConversationHistoryPane;
@@ -1698,16 +1852,19 @@ exports.NewPaChatButton = NewPaChatButton;
1698
1852
  exports.PaModeBadge = PaModeBadge;
1699
1853
  exports.PendingAnswerBar = PendingAnswerBar;
1700
1854
  exports.PinnedDocChip = PinnedDocChip;
1855
+ exports.ProvisionalTranscriptLine = ProvisionalTranscriptLine;
1701
1856
  exports.SlashMenu = SlashMenu;
1702
1857
  exports.ThreadMap = ThreadMap;
1703
1858
  exports.ThreadMapDiagram = ThreadMapDiagram;
1704
1859
  exports.ThreadMapError = ThreadMapError;
1705
1860
  exports.ThreadMapLoading = ThreadMapLoading;
1861
+ exports.TranscriptLine = TranscriptLine;
1706
1862
  exports.getParticipantTints = getParticipantTints;
1707
1863
  exports.hasMessageBody = hasMessageBody;
1708
1864
  exports.isLongPastedText = isLongPastedText;
1865
+ exports.transcriptRuns = transcriptRuns;
1709
1866
  exports.useDismissibleCard = useDismissibleCard;
1710
1867
  exports.useLongPaste = useLongPaste;
1711
1868
  exports.useRecipientDraft = useRecipientDraft;
1712
- //# sourceMappingURL=chunk-I4XQCE6U.cjs.map
1713
- //# sourceMappingURL=chunk-I4XQCE6U.cjs.map
1869
+ //# sourceMappingURL=chunk-HBBJYRGI.cjs.map
1870
+ //# sourceMappingURL=chunk-HBBJYRGI.cjs.map