@arbidocs/blocks 0.5.125 → 0.5.126

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 (174) hide show
  1. package/dist/{ClippingMediaViewer-ZFEX5A3U.cjs → ClippingMediaViewer-47BAXNLO.cjs} +10 -11
  2. package/dist/ClippingMediaViewer-47BAXNLO.cjs.map +1 -0
  3. package/dist/{ClippingPdfViewer-3LRTEPHV.cjs → ClippingPdfViewer-D5BYHEAH.cjs} +16 -14
  4. package/dist/ClippingPdfViewer-D5BYHEAH.cjs.map +1 -0
  5. package/dist/{ConnectedCallDock-XJOYVVAH.cjs → ConnectedCallDock-733O5M36.cjs} +11 -11
  6. package/dist/{ConnectedCallDock-XJOYVVAH.cjs.map → ConnectedCallDock-733O5M36.cjs.map} +1 -1
  7. package/dist/{ConnectedCallRoom-CUDYAPQK.cjs → ConnectedCallRoom-TAUGSRGV.cjs} +11 -11
  8. package/dist/{ConnectedCallRoom-CUDYAPQK.cjs.map → ConnectedCallRoom-TAUGSRGV.cjs.map} +1 -1
  9. package/dist/{ConnectedNativeDocxComparison-7QQ55JIO.cjs → ConnectedNativeDocxComparison-HDE522YC.cjs} +12 -12
  10. package/dist/{ConnectedNativeDocxComparison-7QQ55JIO.cjs.map → ConnectedNativeDocxComparison-HDE522YC.cjs.map} +1 -1
  11. package/dist/{ConnectedPresentation-L32JPRFI.cjs → ConnectedPresentation-SI3L77J4.cjs} +36 -37
  12. package/dist/ConnectedPresentation-SI3L77J4.cjs.map +1 -0
  13. package/dist/{ConnectedProductionSetDialog-4EAY6KAZ.cjs → ConnectedProductionSetDialog-LHB4VQWC.cjs} +3 -3
  14. package/dist/{ConnectedProductionSetDialog-4EAY6KAZ.cjs.map → ConnectedProductionSetDialog-LHB4VQWC.cjs.map} +1 -1
  15. package/dist/{ConnectedSlidesTab-P7GGNUTO.cjs → ConnectedSlidesTab-JSPU6EY5.cjs} +39 -45
  16. package/dist/ConnectedSlidesTab-JSPU6EY5.cjs.map +1 -0
  17. package/dist/{ConnectedStreamedWordArtifact-7NJ3N52V.cjs → ConnectedStreamedWordArtifact-4FHPOAFZ.cjs} +12 -12
  18. package/dist/{ConnectedStreamedWordArtifact-7NJ3N52V.cjs.map → ConnectedStreamedWordArtifact-4FHPOAFZ.cjs.map} +1 -1
  19. package/dist/{DocumentReviewCard-BFPOFQXI.cjs → DocumentReviewCard-BDNXP3D4.cjs} +16 -16
  20. package/dist/{DocumentReviewCard-BFPOFQXI.cjs.map → DocumentReviewCard-BDNXP3D4.cjs.map} +1 -1
  21. package/dist/{FilesViewerDialog-MHUVEZ7M.cjs → FilesViewerDialog-WQRNSKWM.cjs} +32 -33
  22. package/dist/FilesViewerDialog-WQRNSKWM.cjs.map +1 -0
  23. package/dist/{NativeDocxEditor-SIRYPMBN.cjs → NativeDocxEditor-SUDULUN3.cjs} +6 -6
  24. package/dist/{NativeDocxEditor-SIRYPMBN.cjs.map → NativeDocxEditor-SUDULUN3.cjs.map} +1 -1
  25. package/dist/{SpotlightStrip-ED22UYTM.cjs → SpotlightStrip-QQ2WUI32.cjs} +28 -29
  26. package/dist/SpotlightStrip-QQ2WUI32.cjs.map +1 -0
  27. package/dist/{WorkspaceTableView-MIFYXV3G.cjs → WorkspaceTableView-3XYAV4BV.cjs} +8 -8
  28. package/dist/{WorkspaceTableView-MIFYXV3G.cjs.map → WorkspaceTableView-3XYAV4BV.cjs.map} +1 -1
  29. package/dist/agents/index.cjs +215 -215
  30. package/dist/ai-IEIR7SC2.cjs +4 -4
  31. package/dist/auth/index.cjs +1 -1
  32. package/dist/calls/index.cjs +4 -4
  33. package/dist/chat/index.cjs +6 -6
  34. package/dist/{chunk-ZZZITHGK.cjs → chunk-26SFI2BH.cjs} +16 -3
  35. package/dist/chunk-26SFI2BH.cjs.map +1 -0
  36. package/dist/{chunk-CQ2RJYE2.cjs → chunk-3IH55CDE.cjs} +3 -3
  37. package/dist/{chunk-CQ2RJYE2.cjs.map → chunk-3IH55CDE.cjs.map} +1 -1
  38. package/dist/{chunk-NG2EE7HR.cjs → chunk-463QM764.cjs} +3 -3
  39. package/dist/{chunk-NG2EE7HR.cjs.map → chunk-463QM764.cjs.map} +1 -1
  40. package/dist/{chunk-7RJZIPLE.cjs → chunk-4KEQ62SL.cjs} +33 -33
  41. package/dist/{chunk-7RJZIPLE.cjs.map → chunk-4KEQ62SL.cjs.map} +1 -1
  42. package/dist/{chunk-AS6QZETU.cjs → chunk-5QERK4PK.cjs} +35 -35
  43. package/dist/{chunk-AS6QZETU.cjs.map → chunk-5QERK4PK.cjs.map} +1 -1
  44. package/dist/{chunk-UA7HOLAZ.cjs → chunk-6B4CCDDB.cjs} +5 -5
  45. package/dist/{chunk-UA7HOLAZ.cjs.map → chunk-6B4CCDDB.cjs.map} +1 -1
  46. package/dist/{chunk-AISYXX4M.cjs → chunk-7NLO7ASW.cjs} +4 -4
  47. package/dist/{chunk-AISYXX4M.cjs.map → chunk-7NLO7ASW.cjs.map} +1 -1
  48. package/dist/{chunk-QIK7E6VF.cjs → chunk-7PN3YENO.cjs} +4 -4
  49. package/dist/{chunk-QIK7E6VF.cjs.map → chunk-7PN3YENO.cjs.map} +1 -1
  50. package/dist/{chunk-JY7UUZQG.cjs → chunk-7Q46YAX4.cjs} +74 -71
  51. package/dist/chunk-7Q46YAX4.cjs.map +1 -0
  52. package/dist/{chunk-J3FFSEKO.cjs → chunk-ADDQKZ5I.cjs} +4 -4
  53. package/dist/{chunk-J3FFSEKO.cjs.map → chunk-ADDQKZ5I.cjs.map} +1 -1
  54. package/dist/{chunk-L6HTZIBD.cjs → chunk-ALK3PUUB.cjs} +3 -3
  55. package/dist/{chunk-L6HTZIBD.cjs.map → chunk-ALK3PUUB.cjs.map} +1 -1
  56. package/dist/{chunk-3ZZZO4F7.cjs → chunk-BY3QA3S5.cjs} +9 -9
  57. package/dist/{chunk-3ZZZO4F7.cjs.map → chunk-BY3QA3S5.cjs.map} +1 -1
  58. package/dist/{chunk-BLIO3B7Z.cjs → chunk-CMPHJRVV.cjs} +3 -3
  59. package/dist/{chunk-BLIO3B7Z.cjs.map → chunk-CMPHJRVV.cjs.map} +1 -1
  60. package/dist/{chunk-3UP32FM3.cjs → chunk-CQQQIZU4.cjs} +5 -5
  61. package/dist/{chunk-3UP32FM3.cjs.map → chunk-CQQQIZU4.cjs.map} +1 -1
  62. package/dist/{chunk-YOEP3I4V.cjs → chunk-E3L5DB5F.cjs} +5 -5
  63. package/dist/{chunk-YOEP3I4V.cjs.map → chunk-E3L5DB5F.cjs.map} +1 -1
  64. package/dist/{chunk-6JMW3IJ2.cjs → chunk-FB3JXSQT.cjs} +103 -100
  65. package/dist/chunk-FB3JXSQT.cjs.map +1 -0
  66. package/dist/{chunk-YVO6Z5BS.cjs → chunk-FGOJBOZX.cjs} +10 -10
  67. package/dist/{chunk-YVO6Z5BS.cjs.map → chunk-FGOJBOZX.cjs.map} +1 -1
  68. package/dist/{chunk-2K6IMIVL.cjs → chunk-GNZAH6UI.cjs} +3 -3
  69. package/dist/{chunk-2K6IMIVL.cjs.map → chunk-GNZAH6UI.cjs.map} +1 -1
  70. package/dist/{chunk-B3R62764.cjs → chunk-I4X72WUT.cjs} +6 -6
  71. package/dist/{chunk-B3R62764.cjs.map → chunk-I4X72WUT.cjs.map} +1 -1
  72. package/dist/{chunk-ORNLCBNE.cjs → chunk-JVEDKKNO.cjs} +43 -4
  73. package/dist/chunk-JVEDKKNO.cjs.map +1 -0
  74. package/dist/{chunk-UUENH4BJ.cjs → chunk-KXIRVKCJ.cjs} +3 -3
  75. package/dist/{chunk-UUENH4BJ.cjs.map → chunk-KXIRVKCJ.cjs.map} +1 -1
  76. package/dist/{chunk-PWBRE7JA.cjs → chunk-LOB2ATS5.cjs} +24 -11
  77. package/dist/chunk-LOB2ATS5.cjs.map +1 -0
  78. package/dist/{chunk-ENOPKX7E.cjs → chunk-LXM5QXII.cjs} +3 -3
  79. package/dist/{chunk-ENOPKX7E.cjs.map → chunk-LXM5QXII.cjs.map} +1 -1
  80. package/dist/{chunk-PSB64T43.cjs → chunk-MLA2BJ2Y.cjs} +28 -28
  81. package/dist/{chunk-PSB64T43.cjs.map → chunk-MLA2BJ2Y.cjs.map} +1 -1
  82. package/dist/chunk-OALQGO5C.cjs +18 -0
  83. package/dist/{chunk-IRGRMJPP.cjs.map → chunk-OALQGO5C.cjs.map} +1 -1
  84. package/dist/{chunk-OGK377NL.cjs → chunk-OHHKBURG.cjs} +33 -33
  85. package/dist/{chunk-OGK377NL.cjs.map → chunk-OHHKBURG.cjs.map} +1 -1
  86. package/dist/{chunk-GAMRVB3I.cjs → chunk-Q6N5D3R5.cjs} +32 -7
  87. package/dist/chunk-Q6N5D3R5.cjs.map +1 -0
  88. package/dist/{chunk-4LP5MJGQ.cjs → chunk-QG2U2JGX.cjs} +4 -4
  89. package/dist/{chunk-4LP5MJGQ.cjs.map → chunk-QG2U2JGX.cjs.map} +1 -1
  90. package/dist/{chunk-MVXHTAJ4.cjs → chunk-QWVUBTW3.cjs} +9 -9
  91. package/dist/{chunk-MVXHTAJ4.cjs.map → chunk-QWVUBTW3.cjs.map} +1 -1
  92. package/dist/{chunk-OHWHYVKG.cjs → chunk-T73BHNQX.cjs} +3 -3
  93. package/dist/{chunk-OHWHYVKG.cjs.map → chunk-T73BHNQX.cjs.map} +1 -1
  94. package/dist/{chunk-ADPRIBSH.cjs → chunk-X7ALF4MP.cjs} +7 -7
  95. package/dist/{chunk-ADPRIBSH.cjs.map → chunk-X7ALF4MP.cjs.map} +1 -1
  96. package/dist/{chunk-PVJ5ODDB.cjs → chunk-XNB27POJ.cjs} +4 -4
  97. package/dist/{chunk-PVJ5ODDB.cjs.map → chunk-XNB27POJ.cjs.map} +1 -1
  98. package/dist/{chunk-TSFNLY3K.cjs → chunk-ZCU72Q76.cjs} +192 -166
  99. package/dist/chunk-ZCU72Q76.cjs.map +1 -0
  100. package/dist/connect/docx.cjs +16 -16
  101. package/dist/connect/index.cjs +1062 -1027
  102. package/dist/connect/index.cjs.map +1 -1
  103. package/dist/connect/viewer.cjs +25 -26
  104. package/dist/connection/ai.d.ts +1 -0
  105. package/dist/connection/docx/ConnectedNativeDocxEditor.js +4 -5
  106. package/dist/connection/docx/ConnectedNativeDocxEditor.js.map +2 -2
  107. package/dist/connection/docx/save-native-version.d.ts +3 -0
  108. package/dist/connection/docx/save-native-version.js +19 -0
  109. package/dist/connection/docx/save-native-version.js.map +7 -0
  110. package/dist/connection/presentation/ClippingPdfViewer.js +8 -5
  111. package/dist/connection/presentation/ClippingPdfViewer.js.map +2 -2
  112. package/dist/connection/presentation/ConnectedSlidesTab.js +8 -13
  113. package/dist/connection/presentation/ConnectedSlidesTab.js.map +2 -2
  114. package/dist/connection/presentation/usePresentationController.js +24 -15
  115. package/dist/connection/presentation/usePresentationController.js.map +2 -2
  116. package/dist/connection/presentation/usePresentationFiles.d.ts +2 -1
  117. package/dist/connection/presentation/usePresentationFiles.js +15 -6
  118. package/dist/connection/presentation/usePresentationFiles.js.map +2 -2
  119. package/dist/connection/search/ConnectedSearchPage.d.ts +0 -11
  120. package/dist/connection/search/ConnectedSearchPage.js +3 -0
  121. package/dist/connection/search/ConnectedSearchPage.js.map +2 -2
  122. package/dist/connection/search/SearchResultRows.js +75 -43
  123. package/dist/connection/search/SearchResultRows.js.map +2 -2
  124. package/dist/connection/viewer/CleanViewControl.d.ts +3 -1
  125. package/dist/connection/viewer/CleanViewControl.js +5 -1
  126. package/dist/connection/viewer/CleanViewControl.js.map +2 -2
  127. package/dist/connection/viewer/ConnectedDocumentViewer.js +1 -1
  128. package/dist/connection/viewer/ConnectedDocumentViewer.js.map +2 -2
  129. package/dist/connection/viewer/useCleanView.d.ts +1 -1
  130. package/dist/connection/viewer/useCleanView.js +2 -2
  131. package/dist/connection/viewer/useCleanView.js.map +2 -2
  132. package/dist/connection/viewer/useViewedDocument.d.ts +1 -0
  133. package/dist/document-tools/index.cjs +20 -20
  134. package/dist/docx/NativeDocxEditor.d.ts +2 -1
  135. package/dist/docx/NativeDocxEditor.js +30 -5
  136. package/dist/docx/NativeDocxEditor.js.map +2 -2
  137. package/dist/docx/index.cjs +38 -38
  138. package/dist/embed/index.cjs +19 -19
  139. package/dist/facts/index.cjs +64 -64
  140. package/dist/files/index.cjs +223 -223
  141. package/dist/index.cjs +523 -523
  142. package/dist/presentation/ClipCaptureOverlay.js +14 -1
  143. package/dist/presentation/ClipCaptureOverlay.js.map +2 -2
  144. package/dist/presentation/ClipImage.js +7 -4
  145. package/dist/presentation/ClipImage.js.map +2 -2
  146. package/dist/presentation/ClipTray.js +11 -7
  147. package/dist/presentation/ClipTray.js.map +2 -2
  148. package/dist/presentation/SlidesEditor.js +6 -2
  149. package/dist/presentation/SlidesEditor.js.map +2 -2
  150. package/dist/presentation/store.d.ts +2 -0
  151. package/dist/presentation/store.js +15 -0
  152. package/dist/presentation/store.js.map +3 -3
  153. package/dist/settings/index.cjs +146 -146
  154. package/dist/site/index.cjs +6 -6
  155. package/dist/studio/index.cjs +10 -10
  156. package/dist/workflow-canvas/index.cjs +33 -33
  157. package/node_modules/@arbidocs/coedit/package.json +1 -1
  158. package/package.json +5 -5
  159. package/dist/ClippingMediaViewer-ZFEX5A3U.cjs.map +0 -1
  160. package/dist/ClippingPdfViewer-3LRTEPHV.cjs.map +0 -1
  161. package/dist/ConnectedPresentation-L32JPRFI.cjs.map +0 -1
  162. package/dist/ConnectedSlidesTab-P7GGNUTO.cjs.map +0 -1
  163. package/dist/FilesViewerDialog-MHUVEZ7M.cjs.map +0 -1
  164. package/dist/SpotlightStrip-ED22UYTM.cjs.map +0 -1
  165. package/dist/chunk-6JMW3IJ2.cjs.map +0 -1
  166. package/dist/chunk-GAMRVB3I.cjs.map +0 -1
  167. package/dist/chunk-GFUOCGY6.cjs +0 -32
  168. package/dist/chunk-GFUOCGY6.cjs.map +0 -1
  169. package/dist/chunk-IRGRMJPP.cjs +0 -18
  170. package/dist/chunk-JY7UUZQG.cjs.map +0 -1
  171. package/dist/chunk-ORNLCBNE.cjs.map +0 -1
  172. package/dist/chunk-PWBRE7JA.cjs.map +0 -1
  173. package/dist/chunk-TSFNLY3K.cjs.map +0 -1
  174. package/dist/chunk-ZZZITHGK.cjs.map +0 -1
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunk3UP32FM3_cjs = require('./chunk-3UP32FM3.cjs');
4
+ var chunkCQQQIZU4_cjs = require('./chunk-CQQQIZU4.cjs');
5
5
  var chunkQGVOT7E4_cjs = require('./chunk-QGVOT7E4.cjs');
6
6
  var react = require('react');
7
7
 
@@ -45,7 +45,7 @@ function useWorkflowPreview(workflow, { answer = "{prompt}", delayMs = 400, reso
45
45
  }, delayMs)
46
46
  );
47
47
  }, [states, steps, workflow]);
48
- return chunk3UP32FM3_cjs.useWorkflowView({
48
+ return chunkCQQQIZU4_cjs.useWorkflowView({
49
49
  steps,
50
50
  states,
51
51
  inputs,
@@ -58,5 +58,5 @@ function useWorkflowPreview(workflow, { answer = "{prompt}", delayMs = 400, reso
58
58
  }
59
59
 
60
60
  exports.useWorkflowPreview = useWorkflowPreview;
61
- //# sourceMappingURL=chunk-4LP5MJGQ.cjs.map
62
- //# sourceMappingURL=chunk-4LP5MJGQ.cjs.map
61
+ //# sourceMappingURL=chunk-QG2U2JGX.cjs.map
62
+ //# sourceMappingURL=chunk-QG2U2JGX.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/agents/workflows/useWorkflowPreview.ts"],"names":["workflowSteps","useState","initialRunInputs","useRef","useEffect","stepPhase","composeStepPrompt","useWorkflowView"],"mappings":"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","file":"chunk-4LP5MJGQ.cjs","sourcesContent":["/**\n * A stepped workflow run on screen only (the builder's preview): agent steps run one at a time,\n * the way the server does, and answer with the prompt they would send; action steps just finish.\n * No thread, no agent.\n */\n\nimport { useEffect, useRef, useState } from 'react'\nimport {\n composeStepPrompt,\n initialRunInputs,\n stepPhase,\n workflowSteps,\n type StepComposeOptions,\n} from './run'\nimport type { WorkflowDefinition, WorkflowInputs, WorkflowStepState } from './types'\nimport { useWorkflowView, type WorkflowRunView } from './useWorkflowView'\n\nexport interface UseWorkflowPreviewOptions extends StepComposeOptions {\n /** What a stand-in agent step answers; `{prompt}` is replaced with the prompt it would send. */\n answer?: string\n /** How long a stand-in step takes. */\n delayMs?: number\n}\n\nexport function useWorkflowPreview(\n workflow: WorkflowDefinition,\n { answer = '{prompt}', delayMs = 400, resolveWorkflow, compose }: UseWorkflowPreviewOptions = {}\n): WorkflowRunView {\n const steps = workflowSteps(workflow)\n const [inputs, setInputs] = useState<WorkflowInputs>(() => initialRunInputs(workflow))\n const [states, setStates] = useState<Record<string, WorkflowStepState>>({})\n const set = (id: string, state: WorkflowStepState) => setStates((s) => ({ ...s, [id]: state }))\n\n // A stand-in step's timer outlives the re-render its start causes; it is cleared on unmount, and\n // a step it cut short starts again (StrictMode mounts twice).\n const timers = useRef(new Map<string, ReturnType<typeof setTimeout>>())\n useEffect(() => {\n const pending = timers.current\n return () => {\n for (const t of pending.values()) clearTimeout(t)\n pending.clear()\n setStates((s) =>\n Object.fromEntries(\n Object.entries(s).map(([id, v]) => [\n id,\n v.status === 'running' ? { status: 'pending' } : v,\n ])\n )\n )\n }\n }, [])\n\n // One turn at a time: start the first ready agent step when nothing is running.\n useEffect(() => {\n if (Object.values(states).some((s) => s.status === 'running')) return\n // An action step (a signature, an email, a review) stands in the same way, with no answer.\n const next = steps.find(\n (s) =>\n (s.kind === 'agent' || s.kind === 'action') && stepPhase(steps, states, s.id) === 'ready'\n )\n if (!next || (next.kind !== 'agent' && next.kind !== 'action')) return\n const prompt =\n next.kind === 'agent'\n ? composeStepPrompt(workflow, next, inputs, { resolveWorkflow, compose })\n : ''\n set(next.id, { status: 'running', startedAt: new Date().toISOString() })\n timers.current.set(\n next.id,\n setTimeout(() => {\n timers.current.delete(next.id)\n set(\n next.id,\n next.kind === 'agent'\n ? { status: 'done', text: answer.replace('{prompt}', prompt) }\n : { status: 'done' }\n )\n }, delayMs)\n )\n // `inputs` are read when a step starts, not watched.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [states, steps, workflow])\n\n return useWorkflowView({\n steps,\n states,\n inputs,\n setInput: (name, value) => setInputs((i) => ({ ...i, [name]: value })),\n complete: async (step) => set(step.id, { status: 'done' }),\n skip: async (id) => set(id, { status: 'skipped' }),\n retry: async (id) => set(id, { status: 'pending' }),\n isLocked: (id) => states[id]?.status === 'done',\n })\n}\n"]}
1
+ {"version":3,"sources":["../src/agents/workflows/useWorkflowPreview.ts"],"names":["workflowSteps","useState","initialRunInputs","useRef","useEffect","stepPhase","composeStepPrompt","useWorkflowView"],"mappings":"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","file":"chunk-QG2U2JGX.cjs","sourcesContent":["/**\n * A stepped workflow run on screen only (the builder's preview): agent steps run one at a time,\n * the way the server does, and answer with the prompt they would send; action steps just finish.\n * No thread, no agent.\n */\n\nimport { useEffect, useRef, useState } from 'react'\nimport {\n composeStepPrompt,\n initialRunInputs,\n stepPhase,\n workflowSteps,\n type StepComposeOptions,\n} from './run'\nimport type { WorkflowDefinition, WorkflowInputs, WorkflowStepState } from './types'\nimport { useWorkflowView, type WorkflowRunView } from './useWorkflowView'\n\nexport interface UseWorkflowPreviewOptions extends StepComposeOptions {\n /** What a stand-in agent step answers; `{prompt}` is replaced with the prompt it would send. */\n answer?: string\n /** How long a stand-in step takes. */\n delayMs?: number\n}\n\nexport function useWorkflowPreview(\n workflow: WorkflowDefinition,\n { answer = '{prompt}', delayMs = 400, resolveWorkflow, compose }: UseWorkflowPreviewOptions = {}\n): WorkflowRunView {\n const steps = workflowSteps(workflow)\n const [inputs, setInputs] = useState<WorkflowInputs>(() => initialRunInputs(workflow))\n const [states, setStates] = useState<Record<string, WorkflowStepState>>({})\n const set = (id: string, state: WorkflowStepState) => setStates((s) => ({ ...s, [id]: state }))\n\n // A stand-in step's timer outlives the re-render its start causes; it is cleared on unmount, and\n // a step it cut short starts again (StrictMode mounts twice).\n const timers = useRef(new Map<string, ReturnType<typeof setTimeout>>())\n useEffect(() => {\n const pending = timers.current\n return () => {\n for (const t of pending.values()) clearTimeout(t)\n pending.clear()\n setStates((s) =>\n Object.fromEntries(\n Object.entries(s).map(([id, v]) => [\n id,\n v.status === 'running' ? { status: 'pending' } : v,\n ])\n )\n )\n }\n }, [])\n\n // One turn at a time: start the first ready agent step when nothing is running.\n useEffect(() => {\n if (Object.values(states).some((s) => s.status === 'running')) return\n // An action step (a signature, an email, a review) stands in the same way, with no answer.\n const next = steps.find(\n (s) =>\n (s.kind === 'agent' || s.kind === 'action') && stepPhase(steps, states, s.id) === 'ready'\n )\n if (!next || (next.kind !== 'agent' && next.kind !== 'action')) return\n const prompt =\n next.kind === 'agent'\n ? composeStepPrompt(workflow, next, inputs, { resolveWorkflow, compose })\n : ''\n set(next.id, { status: 'running', startedAt: new Date().toISOString() })\n timers.current.set(\n next.id,\n setTimeout(() => {\n timers.current.delete(next.id)\n set(\n next.id,\n next.kind === 'agent'\n ? { status: 'done', text: answer.replace('{prompt}', prompt) }\n : { status: 'done' }\n )\n }, delayMs)\n )\n // `inputs` are read when a step starts, not watched.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [states, steps, workflow])\n\n return useWorkflowView({\n steps,\n states,\n inputs,\n setInput: (name, value) => setInputs((i) => ({ ...i, [name]: value })),\n complete: async (step) => set(step.id, { status: 'done' }),\n skip: async (id) => set(id, { status: 'skipped' }),\n retry: async (id) => set(id, { status: 'pending' }),\n isLocked: (id) => states[id]?.status === 'done',\n })\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkORNLCBNE_cjs = require('./chunk-ORNLCBNE.cjs');
4
+ var chunkJVEDKKNO_cjs = require('./chunk-JVEDKKNO.cjs');
5
5
  var zustand = require('zustand');
6
6
  var viewers = require('@arbidocs/react/viewers');
7
7
 
@@ -18,9 +18,9 @@ function spotlightSteps(clips) {
18
18
  function spotlightSlide(clips, ids, note, look) {
19
19
  const shown = ids.map((id) => clips.find((clip) => clip.id === id)).filter((clip) => !!clip);
20
20
  const base = { caption: note.trim(), layout: "clips" };
21
- const frames = chunkORNLCBNE_cjs.autoLayout(
21
+ const frames = chunkJVEDKKNO_cjs.autoLayout(
22
22
  shown.map((clip) => clip.aspect),
23
- chunkORNLCBNE_cjs.reserveOf(base, look)
23
+ chunkJVEDKKNO_cjs.reserveOf(base, look)
24
24
  );
25
25
  return {
26
26
  ...base,
@@ -33,7 +33,7 @@ function spotlightSlide(clips, ids, note, look) {
33
33
  }
34
34
  var sequence = 0;
35
35
  function release(gone, kept) {
36
- const inUse = new Set([...kept, ...chunkORNLCBNE_cjs.usePresentation.getState().clips].map((clip) => clip.source));
36
+ const inUse = new Set([...kept, ...chunkJVEDKKNO_cjs.usePresentation.getState().clips].map((clip) => clip.source));
37
37
  for (const source of new Set(gone.map((clip) => clip.source))) {
38
38
  if (!inUse.has(source)) viewers.releasePdfRegionSource(source);
39
39
  }
@@ -53,7 +53,7 @@ var useSpotlight = zustand.create()((set, get) => ({
53
53
  const full = {
54
54
  ...clip,
55
55
  id,
56
- caption: clip.caption ?? chunkORNLCBNE_cjs.defaultCaption(clip.fileName, clip.page),
56
+ caption: clip.caption ?? chunkJVEDKKNO_cjs.defaultCaption(clip.fileName, clip.page),
57
57
  zoomBase: clip.zoomBase ?? clip.rect.w
58
58
  };
59
59
  set((state) => ({ clips: [...state.clips, full] }));
@@ -82,13 +82,13 @@ var useSpotlight = zustand.create()((set, get) => ({
82
82
  const { clips, step, note } = get();
83
83
  const ids = spotlightSteps(clips)[step];
84
84
  if (!ids) return;
85
- chunkORNLCBNE_cjs.usePresentation.getState().addSlideOf(
85
+ chunkJVEDKKNO_cjs.usePresentation.getState().addSlideOf(
86
86
  ids.map((id) => clips.find((clip) => clip.id === id)),
87
87
  note.trim()
88
88
  );
89
89
  },
90
90
  addToTray() {
91
- chunkORNLCBNE_cjs.usePresentation.getState().adoptClips(get().clips);
91
+ chunkJVEDKKNO_cjs.usePresentation.getState().adoptClips(get().clips);
92
92
  set({ ...EMPTY });
93
93
  },
94
94
  clear() {
@@ -107,5 +107,5 @@ var useSpotlight = zustand.create()((set, get) => ({
107
107
  exports.spotlightSlide = spotlightSlide;
108
108
  exports.spotlightSteps = spotlightSteps;
109
109
  exports.useSpotlight = useSpotlight;
110
- //# sourceMappingURL=chunk-MVXHTAJ4.cjs.map
111
- //# sourceMappingURL=chunk-MVXHTAJ4.cjs.map
110
+ //# sourceMappingURL=chunk-QWVUBTW3.cjs.map
111
+ //# sourceMappingURL=chunk-QWVUBTW3.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/presentation/spotlight.ts"],"names":["autoLayout","reserveOf","usePresentation","create","defaultCaption"],"mappings":"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","file":"chunk-MVXHTAJ4.cjs","sourcesContent":["/**\n * The spotlight: clips gathered in the document viewer (from one document or several) and shown,\n * on request, as a slide over the viewer itself — the same window, so a call sharing it keeps\n * sharing it. It is transient: nothing reaches the presentation unless \"Keep as slide\" (or \"Add to\n * the presentation\") puts it there.\n *\n * Kept in memory only, like the presentation (a clip holds its decrypted file), and cleared when\n * another user signs in (`owner`).\n */\n\nimport { create } from 'zustand'\nimport { releasePdfRegionSource } from '@arbidocs/react/viewers'\nimport { autoLayout, defaultCaption, type Clip, type Slide } from './model'\nimport { reserveOf, usePresentation, type NewClip } from './store'\n\n/** A spotlight slide holds this many clips at most; more are shown on further slides. */\nexport const SPOTLIGHT_PER_SLIDE = 4\n\ninterface SpotlightState {\n clips: Clip[]\n /** A line of text shown as the spotlight's title (empty: none). */\n note: string\n /** The spotlight is on screen. */\n showing: boolean\n /** Which of its steps (`spotlightSteps`) is shown. */\n step: number\n /** The user the clips were gathered by. */\n owner: string | null\n /**\n * The viewer's Clip mode is on: kept here, not in the viewer, so it stays on as the viewer opens\n * one document after another.\n */\n clipping: boolean\n}\n\ninterface SpotlightActions {\n gather(clip: NewClip): string\n remove(clipId: string): void\n setNote(note: string): void\n show(): void\n hide(): void\n goTo(step: number): void\n /** The step on screen, as a slide of the open presentation (after its current slide). */\n keep(): void\n /** The gathered clips, into the presentation's tray (not placed); the spotlight is emptied. */\n addToTray(): void\n clear(): void\n /** Gathering for this user: another's clips are dropped. */\n own(userId: string | null): void\n setClipping(on: boolean): void\n}\n\nexport type SpotlightStore = SpotlightState & SpotlightActions\n\n/**\n * What ← → step through: the clips together (up to four a slide), and, where a slide shows more\n * than one, each of them alone after it. Each step lists clip ids.\n */\nexport function spotlightSteps(clips: readonly Pick<Clip, 'id'>[]): string[][] {\n const steps: string[][] = []\n for (let i = 0; i < clips.length; i += SPOTLIGHT_PER_SLIDE) {\n const group = clips.slice(i, i + SPOTLIGHT_PER_SLIDE).map((clip) => clip.id)\n steps.push(group)\n if (group.length > 1) steps.push(...group.map((id) => [id]))\n }\n return steps\n}\n\n/**\n * A step as a slide, arranged as the presentation arranges one (`autoLayout`: two tall clips go\n * side by side, two wide ones stack), with the note as its title and the presentation's look.\n */\nexport function spotlightSlide(\n clips: readonly Clip[],\n ids: readonly string[],\n note: string,\n look: Parameters<typeof reserveOf>[1]\n): Slide {\n const shown = ids\n .map((id) => clips.find((clip) => clip.id === id))\n .filter((clip): clip is Clip => !!clip)\n const base = { caption: note.trim(), layout: 'clips' as const }\n const frames = autoLayout(\n shown.map((clip) => clip.aspect),\n reserveOf(base, look)\n )\n return {\n ...base,\n id: 'spotlight',\n auto: true,\n points: '',\n boxes: [],\n items: shown.map((clip, i) => ({ clipId: clip.id, frame: frames[i] })),\n }\n}\n\nlet sequence = 0\n\n/** Its file goes from the PDF engine once neither the spotlight nor the presentation shows it. */\nfunction release(gone: readonly Clip[], kept: readonly Clip[]) {\n const inUse = new Set([...kept, ...usePresentation.getState().clips].map((clip) => clip.source))\n for (const source of new Set(gone.map((clip) => clip.source))) {\n if (!inUse.has(source)) releasePdfRegionSource(source)\n }\n}\n\nconst EMPTY: Omit<SpotlightState, 'owner' | 'clipping'> = {\n clips: [],\n note: '',\n showing: false,\n step: 0,\n}\n\nexport const useSpotlight = create<SpotlightStore>()((set, get) => ({\n ...EMPTY,\n owner: null,\n clipping: false,\n\n gather(clip) {\n const id = `spot-${Date.now().toString(36)}-${++sequence}`\n const full: Clip = {\n ...clip,\n id,\n caption: clip.caption ?? defaultCaption(clip.fileName, clip.page),\n zoomBase: clip.zoomBase ?? clip.rect.w,\n }\n set((state) => ({ clips: [...state.clips, full] }))\n return id\n },\n\n remove(clipId) {\n const { clips, step } = get()\n const gone = clips.filter((clip) => clip.id === clipId)\n if (!gone.length) return\n const rest = clips.filter((clip) => clip.id !== clipId)\n const steps = spotlightSteps(rest).length\n set({\n clips: rest,\n step: Math.min(step, Math.max(0, steps - 1)),\n ...(rest.length ? {} : { showing: false, note: '' }),\n })\n release(gone, rest)\n },\n\n setNote: (note) => set({ note }),\n show: () => set((state) => (state.clips.length ? { showing: true, step: 0 } : state)),\n hide: () => set({ showing: false }),\n goTo: (step) =>\n set((state) =>\n step < 0 || step >= spotlightSteps(state.clips).length || step === state.step\n ? state\n : { step }\n ),\n\n keep() {\n const { clips, step, note } = get()\n const ids = spotlightSteps(clips)[step]\n if (!ids) return\n usePresentation.getState().addSlideOf(\n ids.map((id) => clips.find((clip) => clip.id === id)!),\n note.trim()\n )\n },\n\n addToTray() {\n usePresentation.getState().adoptClips(get().clips)\n set({ ...EMPTY })\n },\n\n clear() {\n const gone = get().clips\n set({ ...EMPTY })\n release(gone, [])\n },\n\n own(userId) {\n if (get().owner === userId) return\n get().clear()\n set({ owner: userId, clipping: false })\n },\n\n setClipping: (clipping) => set({ clipping }),\n}))\n"]}
1
+ {"version":3,"sources":["../src/presentation/spotlight.ts"],"names":["autoLayout","reserveOf","usePresentation","create","defaultCaption"],"mappings":"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","file":"chunk-QWVUBTW3.cjs","sourcesContent":["/**\n * The spotlight: clips gathered in the document viewer (from one document or several) and shown,\n * on request, as a slide over the viewer itself — the same window, so a call sharing it keeps\n * sharing it. It is transient: nothing reaches the presentation unless \"Keep as slide\" (or \"Add to\n * the presentation\") puts it there.\n *\n * Kept in memory only, like the presentation (a clip holds its decrypted file), and cleared when\n * another user signs in (`owner`).\n */\n\nimport { create } from 'zustand'\nimport { releasePdfRegionSource } from '@arbidocs/react/viewers'\nimport { autoLayout, defaultCaption, type Clip, type Slide } from './model'\nimport { reserveOf, usePresentation, type NewClip } from './store'\n\n/** A spotlight slide holds this many clips at most; more are shown on further slides. */\nexport const SPOTLIGHT_PER_SLIDE = 4\n\ninterface SpotlightState {\n clips: Clip[]\n /** A line of text shown as the spotlight's title (empty: none). */\n note: string\n /** The spotlight is on screen. */\n showing: boolean\n /** Which of its steps (`spotlightSteps`) is shown. */\n step: number\n /** The user the clips were gathered by. */\n owner: string | null\n /**\n * The viewer's Clip mode is on: kept here, not in the viewer, so it stays on as the viewer opens\n * one document after another.\n */\n clipping: boolean\n}\n\ninterface SpotlightActions {\n gather(clip: NewClip): string\n remove(clipId: string): void\n setNote(note: string): void\n show(): void\n hide(): void\n goTo(step: number): void\n /** The step on screen, as a slide of the open presentation (after its current slide). */\n keep(): void\n /** The gathered clips, into the presentation's tray (not placed); the spotlight is emptied. */\n addToTray(): void\n clear(): void\n /** Gathering for this user: another's clips are dropped. */\n own(userId: string | null): void\n setClipping(on: boolean): void\n}\n\nexport type SpotlightStore = SpotlightState & SpotlightActions\n\n/**\n * What ← → step through: the clips together (up to four a slide), and, where a slide shows more\n * than one, each of them alone after it. Each step lists clip ids.\n */\nexport function spotlightSteps(clips: readonly Pick<Clip, 'id'>[]): string[][] {\n const steps: string[][] = []\n for (let i = 0; i < clips.length; i += SPOTLIGHT_PER_SLIDE) {\n const group = clips.slice(i, i + SPOTLIGHT_PER_SLIDE).map((clip) => clip.id)\n steps.push(group)\n if (group.length > 1) steps.push(...group.map((id) => [id]))\n }\n return steps\n}\n\n/**\n * A step as a slide, arranged as the presentation arranges one (`autoLayout`: two tall clips go\n * side by side, two wide ones stack), with the note as its title and the presentation's look.\n */\nexport function spotlightSlide(\n clips: readonly Clip[],\n ids: readonly string[],\n note: string,\n look: Parameters<typeof reserveOf>[1]\n): Slide {\n const shown = ids\n .map((id) => clips.find((clip) => clip.id === id))\n .filter((clip): clip is Clip => !!clip)\n const base = { caption: note.trim(), layout: 'clips' as const }\n const frames = autoLayout(\n shown.map((clip) => clip.aspect),\n reserveOf(base, look)\n )\n return {\n ...base,\n id: 'spotlight',\n auto: true,\n points: '',\n boxes: [],\n items: shown.map((clip, i) => ({ clipId: clip.id, frame: frames[i] })),\n }\n}\n\nlet sequence = 0\n\n/** Its file goes from the PDF engine once neither the spotlight nor the presentation shows it. */\nfunction release(gone: readonly Clip[], kept: readonly Clip[]) {\n const inUse = new Set([...kept, ...usePresentation.getState().clips].map((clip) => clip.source))\n for (const source of new Set(gone.map((clip) => clip.source))) {\n if (!inUse.has(source)) releasePdfRegionSource(source)\n }\n}\n\nconst EMPTY: Omit<SpotlightState, 'owner' | 'clipping'> = {\n clips: [],\n note: '',\n showing: false,\n step: 0,\n}\n\nexport const useSpotlight = create<SpotlightStore>()((set, get) => ({\n ...EMPTY,\n owner: null,\n clipping: false,\n\n gather(clip) {\n const id = `spot-${Date.now().toString(36)}-${++sequence}`\n const full: Clip = {\n ...clip,\n id,\n caption: clip.caption ?? defaultCaption(clip.fileName, clip.page),\n zoomBase: clip.zoomBase ?? clip.rect.w,\n }\n set((state) => ({ clips: [...state.clips, full] }))\n return id\n },\n\n remove(clipId) {\n const { clips, step } = get()\n const gone = clips.filter((clip) => clip.id === clipId)\n if (!gone.length) return\n const rest = clips.filter((clip) => clip.id !== clipId)\n const steps = spotlightSteps(rest).length\n set({\n clips: rest,\n step: Math.min(step, Math.max(0, steps - 1)),\n ...(rest.length ? {} : { showing: false, note: '' }),\n })\n release(gone, rest)\n },\n\n setNote: (note) => set({ note }),\n show: () => set((state) => (state.clips.length ? { showing: true, step: 0 } : state)),\n hide: () => set({ showing: false }),\n goTo: (step) =>\n set((state) =>\n step < 0 || step >= spotlightSteps(state.clips).length || step === state.step\n ? state\n : { step }\n ),\n\n keep() {\n const { clips, step, note } = get()\n const ids = spotlightSteps(clips)[step]\n if (!ids) return\n usePresentation.getState().addSlideOf(\n ids.map((id) => clips.find((clip) => clip.id === id)!),\n note.trim()\n )\n },\n\n addToTray() {\n usePresentation.getState().adoptClips(get().clips)\n set({ ...EMPTY })\n },\n\n clear() {\n const gone = get().clips\n set({ ...EMPTY })\n release(gone, [])\n },\n\n own(userId) {\n if (get().owner === userId) return\n get().clear()\n set({ owner: userId, clipping: false })\n },\n\n setClipping: (clipping) => set({ clipping }),\n}))\n"]}
@@ -8,8 +8,8 @@ var chunkOEJQFPWO_cjs = require('./chunk-OEJQFPWO.cjs');
8
8
  var chunkII2OEXHW_cjs = require('./chunk-II2OEXHW.cjs');
9
9
  var chunkM74FWYNL_cjs = require('./chunk-M74FWYNL.cjs');
10
10
  var chunkSJSGSHIT_cjs = require('./chunk-SJSGSHIT.cjs');
11
- var chunkIPSHAMO2_cjs = require('./chunk-IPSHAMO2.cjs');
12
11
  var chunkUDSHVNU3_cjs = require('./chunk-UDSHVNU3.cjs');
12
+ var chunkIPSHAMO2_cjs = require('./chunk-IPSHAMO2.cjs');
13
13
  var chunkULWRNGGE_cjs = require('./chunk-ULWRNGGE.cjs');
14
14
  var chunkPLIF5CUV_cjs = require('./chunk-PLIF5CUV.cjs');
15
15
  var react = require('react');
@@ -4960,5 +4960,5 @@ exports.toActiveSessionViews = toActiveSessionViews;
4960
4960
  exports.toDeleteBlockerViews = toDeleteBlockerViews;
4961
4961
  exports.toLogoutSessionViews = toLogoutSessionViews;
4962
4962
  exports.toNotificationCategories = toNotificationCategories;
4963
- //# sourceMappingURL=chunk-OHWHYVKG.cjs.map
4964
- //# sourceMappingURL=chunk-OHWHYVKG.cjs.map
4963
+ //# sourceMappingURL=chunk-T73BHNQX.cjs.map
4964
+ //# sourceMappingURL=chunk-T73BHNQX.cjs.map