@arbidocs/blocks 0.4.168 → 0.4.169

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 (185) hide show
  1. package/dist/{ConnectedCallDock-J5JU3KKO.js → ConnectedCallDock-7IUGEVSF.js} +13 -12
  2. package/dist/ConnectedCallDock-7IUGEVSF.js.map +1 -0
  3. package/dist/{ConnectedCallDock-ESH665DH.cjs → ConnectedCallDock-W7OWNQEB.cjs} +22 -21
  4. package/dist/{ConnectedCallDock-J5JU3KKO.js.map → ConnectedCallDock-W7OWNQEB.cjs.map} +1 -1
  5. package/dist/{ConnectedCallRoom-XBEO7VXT.js → ConnectedCallRoom-7CUZBW6C.js} +13 -12
  6. package/dist/{ConnectedCallRoom-XBEO7VXT.js.map → ConnectedCallRoom-7CUZBW6C.js.map} +1 -1
  7. package/dist/{ConnectedCallRoom-AFMVICHG.cjs → ConnectedCallRoom-N6JBHP6P.cjs} +14 -13
  8. package/dist/{ConnectedCallRoom-AFMVICHG.cjs.map → ConnectedCallRoom-N6JBHP6P.cjs.map} +1 -1
  9. package/dist/{ConnectedNativeDocxComparison-TFAA5Z6J.cjs → ConnectedNativeDocxComparison-OJWVE6L4.cjs} +15 -15
  10. package/dist/{ConnectedNativeDocxComparison-TFAA5Z6J.cjs.map → ConnectedNativeDocxComparison-OJWVE6L4.cjs.map} +1 -1
  11. package/dist/{ConnectedNativeDocxComparison-DJBFRFCK.js → ConnectedNativeDocxComparison-VC5SPVCR.js} +14 -14
  12. package/dist/{ConnectedNativeDocxComparison-DJBFRFCK.js.map → ConnectedNativeDocxComparison-VC5SPVCR.js.map} +1 -1
  13. package/dist/{ConnectedNativeDocxEditor-AFECVTCH.cjs → ConnectedNativeDocxEditor-BTF426RO.cjs} +15 -15
  14. package/dist/{ConnectedNativeDocxEditor-AFECVTCH.cjs.map → ConnectedNativeDocxEditor-BTF426RO.cjs.map} +1 -1
  15. package/dist/{ConnectedNativeDocxEditor-2MSUQTE2.js → ConnectedNativeDocxEditor-EMSFPHRB.js} +13 -13
  16. package/dist/{ConnectedNativeDocxEditor-2MSUQTE2.js.map → ConnectedNativeDocxEditor-EMSFPHRB.js.map} +1 -1
  17. package/dist/{ConnectedStreamedWordArtifact-3OUYXRP2.js → ConnectedStreamedWordArtifact-2OYI4U4W.js} +14 -14
  18. package/dist/ConnectedStreamedWordArtifact-2OYI4U4W.js.map +1 -0
  19. package/dist/{ConnectedStreamedWordArtifact-IEGLOEEZ.cjs → ConnectedStreamedWordArtifact-XY6QMCXF.cjs} +15 -15
  20. package/dist/ConnectedStreamedWordArtifact-XY6QMCXF.cjs.map +1 -0
  21. package/dist/NativeDocxEditor-ATPL3Q3O.js +1 -1
  22. package/dist/NativeDocxEditor-R4EIHWNL.cjs +1 -1
  23. package/dist/{WorkspaceTableView-733WL4DA.cjs → WorkspaceTableView-4O3O47ES.cjs} +12 -12
  24. package/dist/{WorkspaceTableView-733WL4DA.cjs.map → WorkspaceTableView-4O3O47ES.cjs.map} +1 -1
  25. package/dist/{WorkspaceTableView-GYIHAEIB.js → WorkspaceTableView-IF5UQRZP.js} +10 -10
  26. package/dist/{WorkspaceTableView-GYIHAEIB.js.map → WorkspaceTableView-IF5UQRZP.js.map} +1 -1
  27. package/dist/agents/index.cjs +403 -403
  28. package/dist/agents/index.js +12 -12
  29. package/dist/calls/index.cjs +136 -136
  30. package/dist/calls/index.js +13 -13
  31. package/dist/chat/index.cjs +156 -155
  32. package/dist/chat/index.js +5 -4
  33. package/dist/chat/thread-diagram.d.ts +3 -1
  34. package/dist/chunk-22ENWLSI.js +356 -0
  35. package/dist/chunk-22ENWLSI.js.map +1 -0
  36. package/dist/{chunk-IFE4MZXD.js → chunk-3H4UW7A2.js} +3 -3
  37. package/dist/{chunk-IFE4MZXD.js.map → chunk-3H4UW7A2.js.map} +1 -1
  38. package/dist/{chunk-LPUQHIVP.cjs → chunk-3VW7ZXQ6.cjs} +4 -4
  39. package/dist/{chunk-LPUQHIVP.cjs.map → chunk-3VW7ZXQ6.cjs.map} +1 -1
  40. package/dist/{chunk-NNPFFPBF.js → chunk-45R356CO.js} +4 -4
  41. package/dist/{chunk-NNPFFPBF.js.map → chunk-45R356CO.js.map} +1 -1
  42. package/dist/{chunk-HJQLVCIK.cjs → chunk-6BBZP4ES.cjs} +3 -3
  43. package/dist/{chunk-HJQLVCIK.cjs.map → chunk-6BBZP4ES.cjs.map} +1 -1
  44. package/dist/{chunk-ZBTJWS3M.cjs → chunk-6L4SOUDT.cjs} +4 -4
  45. package/dist/{chunk-ZBTJWS3M.cjs.map → chunk-6L4SOUDT.cjs.map} +1 -1
  46. package/dist/{chunk-QE7MS7NA.js → chunk-B35WPZOB.js} +5 -5
  47. package/dist/{chunk-QE7MS7NA.js.map → chunk-B35WPZOB.js.map} +1 -1
  48. package/dist/{chunk-SJVIBMVQ.js → chunk-CZ3T3TLT.js} +4 -4
  49. package/dist/{chunk-SJVIBMVQ.js.map → chunk-CZ3T3TLT.js.map} +1 -1
  50. package/dist/{chunk-DRIMPELS.cjs → chunk-DPIWB4DF.cjs} +9 -9
  51. package/dist/{chunk-DRIMPELS.cjs.map → chunk-DPIWB4DF.cjs.map} +1 -1
  52. package/dist/{chunk-CEAUPIRB.cjs → chunk-DVGKBEZH.cjs} +5 -5
  53. package/dist/{chunk-CEAUPIRB.cjs.map → chunk-DVGKBEZH.cjs.map} +1 -1
  54. package/dist/{chunk-ZAVEMQ37.cjs → chunk-DWZXSPMB.cjs} +3 -3
  55. package/dist/{chunk-ZAVEMQ37.cjs.map → chunk-DWZXSPMB.cjs.map} +1 -1
  56. package/dist/{chunk-CSUKLEQH.js → chunk-EZRXRCQT.js} +3 -3
  57. package/dist/{chunk-CSUKLEQH.js.map → chunk-EZRXRCQT.js.map} +1 -1
  58. package/dist/{chunk-U6B6LPIG.cjs → chunk-EZS4RBYU.cjs} +5 -5
  59. package/dist/{chunk-U6B6LPIG.cjs.map → chunk-EZS4RBYU.cjs.map} +1 -1
  60. package/dist/{chunk-FTLNYE2X.cjs → chunk-F66OH26L.cjs} +4 -96
  61. package/dist/chunk-F66OH26L.cjs.map +1 -0
  62. package/dist/{chunk-D7MDBDN7.js → chunk-F6GZCQ5I.js} +3 -3
  63. package/dist/{chunk-D7MDBDN7.js.map → chunk-F6GZCQ5I.js.map} +1 -1
  64. package/dist/{chunk-TBRX5RNH.js → chunk-FHCXWMR7.js} +3 -3
  65. package/dist/{chunk-TBRX5RNH.js.map → chunk-FHCXWMR7.js.map} +1 -1
  66. package/dist/{chunk-HTOYFP3D.js → chunk-FOGNAIDQ.js} +7 -7
  67. package/dist/{chunk-HTOYFP3D.js.map → chunk-FOGNAIDQ.js.map} +1 -1
  68. package/dist/{chunk-QK2HR3LC.js → chunk-GTAUDUAZ.js} +6 -6
  69. package/dist/{chunk-QK2HR3LC.js.map → chunk-GTAUDUAZ.js.map} +1 -1
  70. package/dist/{chunk-ADL5A6FR.js → chunk-H226UFOX.js} +3 -3
  71. package/dist/{chunk-ADL5A6FR.js.map → chunk-H226UFOX.js.map} +1 -1
  72. package/dist/chunk-HIEGVZB3.cjs +376 -0
  73. package/dist/chunk-HIEGVZB3.cjs.map +1 -0
  74. package/dist/{chunk-QEE4DOEU.cjs → chunk-HTHEAOEW.cjs} +17 -17
  75. package/dist/{chunk-QEE4DOEU.cjs.map → chunk-HTHEAOEW.cjs.map} +1 -1
  76. package/dist/{chunk-YMBDPI7X.js → chunk-ICP2IQW5.js} +3 -3
  77. package/dist/{chunk-YMBDPI7X.js.map → chunk-ICP2IQW5.js.map} +1 -1
  78. package/dist/{chunk-WT2AGQYY.cjs → chunk-JQPYE3TT.cjs} +5 -5
  79. package/dist/{chunk-WT2AGQYY.cjs.map → chunk-JQPYE3TT.cjs.map} +1 -1
  80. package/dist/{chunk-XHJAYCPQ.js → chunk-JTJCCL2E.js} +3 -3
  81. package/dist/{chunk-XHJAYCPQ.js.map → chunk-JTJCCL2E.js.map} +1 -1
  82. package/dist/{chunk-CVJ2ZMA4.cjs → chunk-KEV5G3S4.cjs} +4 -4
  83. package/dist/{chunk-CVJ2ZMA4.cjs.map → chunk-KEV5G3S4.cjs.map} +1 -1
  84. package/dist/chunk-KJXJRX33.js +94 -0
  85. package/dist/chunk-KJXJRX33.js.map +1 -0
  86. package/dist/{chunk-6TEYZRY5.cjs → chunk-LUKMLQYG.cjs} +3 -3
  87. package/dist/{chunk-6TEYZRY5.cjs.map → chunk-LUKMLQYG.cjs.map} +1 -1
  88. package/dist/{chunk-U6QJB3G4.js → chunk-NXSQRRFY.js} +3 -3
  89. package/dist/{chunk-U6QJB3G4.js.map → chunk-NXSQRRFY.js.map} +1 -1
  90. package/dist/{chunk-JBG5MFVX.cjs → chunk-OAFJGXJC.cjs} +5 -5
  91. package/dist/{chunk-JBG5MFVX.cjs.map → chunk-OAFJGXJC.cjs.map} +1 -1
  92. package/dist/{chunk-ZWNUK3A2.cjs → chunk-OJDQ3TBF.cjs} +20 -20
  93. package/dist/{chunk-ZWNUK3A2.cjs.map → chunk-OJDQ3TBF.cjs.map} +1 -1
  94. package/dist/chunk-OK3UJMO4.cjs +98 -0
  95. package/dist/chunk-OK3UJMO4.cjs.map +1 -0
  96. package/dist/{chunk-2RSUVU5V.js → chunk-OK4HKHV4.js} +3 -3
  97. package/dist/{chunk-2RSUVU5V.js.map → chunk-OK4HKHV4.js.map} +1 -1
  98. package/dist/{chunk-O7FVBTBT.js → chunk-RD6M6J3N.js} +3 -3
  99. package/dist/{chunk-O7FVBTBT.js.map → chunk-RD6M6J3N.js.map} +1 -1
  100. package/dist/{chunk-J6JED6TA.cjs → chunk-RI52SNGX.cjs} +51 -51
  101. package/dist/{chunk-J6JED6TA.cjs.map → chunk-RI52SNGX.cjs.map} +1 -1
  102. package/dist/{chunk-BMFXDDJG.cjs → chunk-RSIYQNV6.cjs} +7 -7
  103. package/dist/{chunk-BMFXDDJG.cjs.map → chunk-RSIYQNV6.cjs.map} +1 -1
  104. package/dist/{chunk-ZSW6FZG5.cjs → chunk-S5KBZHX6.cjs} +11 -11
  105. package/dist/{chunk-ZSW6FZG5.cjs.map → chunk-S5KBZHX6.cjs.map} +1 -1
  106. package/dist/{chunk-AU6ZSYW6.js → chunk-SM774TX7.js} +3 -3
  107. package/dist/{chunk-AU6ZSYW6.js.map → chunk-SM774TX7.js.map} +1 -1
  108. package/dist/{chunk-QSC6Y55X.cjs → chunk-TKBFWHOH.cjs} +75 -75
  109. package/dist/{chunk-QSC6Y55X.cjs.map → chunk-TKBFWHOH.cjs.map} +1 -1
  110. package/dist/{chunk-DRLRR44Q.js → chunk-TTH6LLQQ.js} +8 -8
  111. package/dist/{chunk-DRLRR44Q.js.map → chunk-TTH6LLQQ.js.map} +1 -1
  112. package/dist/{chunk-XUUKUIKH.js → chunk-ULQV2NJT.js} +5 -94
  113. package/dist/chunk-ULQV2NJT.js.map +1 -0
  114. package/dist/{chunk-E4AOCI46.cjs → chunk-V7XKIJHO.cjs} +4 -4
  115. package/dist/{chunk-E4AOCI46.cjs.map → chunk-V7XKIJHO.cjs.map} +1 -1
  116. package/dist/{chunk-ECERC6TI.js → chunk-VHJHY7TT.js} +3 -3
  117. package/dist/{chunk-ECERC6TI.js.map → chunk-VHJHY7TT.js.map} +1 -1
  118. package/dist/{chunk-ZHQBNOZQ.js → chunk-VRTR6OQA.js} +4 -4
  119. package/dist/{chunk-ZHQBNOZQ.js.map → chunk-VRTR6OQA.js.map} +1 -1
  120. package/dist/{chunk-7JIMJEB5.cjs → chunk-W3UDZRRL.cjs} +6 -6
  121. package/dist/{chunk-7JIMJEB5.cjs.map → chunk-W3UDZRRL.cjs.map} +1 -1
  122. package/dist/{chunk-KRNX2PVC.js → chunk-WSI5W5GN.js} +3 -3
  123. package/dist/{chunk-KRNX2PVC.js.map → chunk-WSI5W5GN.js.map} +1 -1
  124. package/dist/{chunk-UIZZFZ5Z.cjs → chunk-XAS4VRBY.cjs} +3 -3
  125. package/dist/{chunk-UIZZFZ5Z.cjs.map → chunk-XAS4VRBY.cjs.map} +1 -1
  126. package/dist/{chunk-UF2GRQQF.js → chunk-XHPCH3QQ.js} +6 -6
  127. package/dist/{chunk-UF2GRQQF.js.map → chunk-XHPCH3QQ.js.map} +1 -1
  128. package/dist/{chunk-G4O5AKUO.js → chunk-YDJQFVEW.js} +5 -5
  129. package/dist/{chunk-G4O5AKUO.js.map → chunk-YDJQFVEW.js.map} +1 -1
  130. package/dist/{chunk-IFAIUKQQ.cjs → chunk-Z3U6ZBUK.cjs} +5 -5
  131. package/dist/{chunk-IFAIUKQQ.cjs.map → chunk-Z3U6ZBUK.cjs.map} +1 -1
  132. package/dist/{chunk-YBB3KRTU.cjs → chunk-ZW7RH5ET.cjs} +3 -3
  133. package/dist/{chunk-YBB3KRTU.cjs.map → chunk-ZW7RH5ET.cjs.map} +1 -1
  134. package/dist/citations/index.cjs +1 -1
  135. package/dist/citations/index.js +1 -1
  136. package/dist/collaboration/index.cjs +69 -69
  137. package/dist/collaboration/index.js +3 -3
  138. package/dist/connect/docx.cjs +17 -17
  139. package/dist/connect/docx.js +13 -13
  140. package/dist/connect/index.cjs +2373 -2590
  141. package/dist/connect/index.cjs.map +1 -1
  142. package/dist/connect/index.js +62 -305
  143. package/dist/connect/index.js.map +1 -1
  144. package/dist/connect/viewer.cjs +84 -82
  145. package/dist/connect/viewer.cjs.map +1 -1
  146. package/dist/connect/viewer.js +25 -23
  147. package/dist/connect/viewer.js.map +1 -1
  148. package/dist/connection/viewer/parsed/ParsedPassage.d.ts +2 -1
  149. package/dist/document-tools/index.cjs +20 -20
  150. package/dist/document-tools/index.js +3 -3
  151. package/dist/docx/index.cjs +1 -1
  152. package/dist/docx/index.js +1 -1
  153. package/dist/facts/index.cjs +4 -4
  154. package/dist/facts/index.js +4 -4
  155. package/dist/files/index.cjs +225 -225
  156. package/dist/files/index.js +5 -5
  157. package/dist/home/index.cjs +31 -31
  158. package/dist/home/index.js +6 -6
  159. package/dist/index.cjs +1643 -1642
  160. package/dist/index.cjs.map +1 -1
  161. package/dist/index.js +28 -27
  162. package/dist/index.js.map +1 -1
  163. package/dist/retrieval/index.cjs +1 -1
  164. package/dist/retrieval/index.js +1 -1
  165. package/dist/settings/index.cjs +161 -161
  166. package/dist/settings/index.js +6 -6
  167. package/dist/shell/index.cjs +77 -77
  168. package/dist/shell/index.js +6 -6
  169. package/dist/studio/index.cjs +10 -10
  170. package/dist/studio/index.js +9 -9
  171. package/dist/workflow-canvas/index.cjs +25 -25
  172. package/dist/workflow-canvas/index.js +12 -12
  173. package/dist/workspaces/index.cjs +1 -1
  174. package/dist/workspaces/index.js +1 -1
  175. package/node_modules/@arbidocs/coedit/package.json +1 -1
  176. package/package.json +5 -5
  177. package/dist/ConnectedCallDock-ESH665DH.cjs.map +0 -1
  178. package/dist/ConnectedStreamedWordArtifact-3OUYXRP2.js.map +0 -1
  179. package/dist/ConnectedStreamedWordArtifact-IEGLOEEZ.cjs.map +0 -1
  180. package/dist/chunk-3PEUP4CH.cjs +0 -109
  181. package/dist/chunk-3PEUP4CH.cjs.map +0 -1
  182. package/dist/chunk-FTLNYE2X.cjs.map +0 -1
  183. package/dist/chunk-LLEI5I5C.js +0 -102
  184. package/dist/chunk-LLEI5I5C.js.map +0 -1
  185. package/dist/chunk-XUUKUIKH.js.map +0 -1
@@ -1,32 +1,32 @@
1
1
  "use client";
2
- import { useWorkflowPreview } from '../chunk-HTOYFP3D.js';
3
- import { isIncompleteSignal, fromPlanSteps, workflowWhen, isoToLocalInput, layoutFromPlanSteps, describeRRule, RecurrenceBuilder, WorkflowRunner, toPlanSteps, localInputToIso } from '../chunk-DRLRR44Q.js';
2
+ import { useWorkflowPreview } from '../chunk-FOGNAIDQ.js';
3
+ import { isIncompleteSignal, fromPlanSteps, workflowWhen, isoToLocalInput, layoutFromPlanSteps, describeRRule, RecurrenceBuilder, WorkflowRunner, toPlanSteps, localInputToIso } from '../chunk-TTH6LLQQ.js';
4
4
  import '../chunk-CQCC7LE7.js';
5
- import { AgentSelect } from '../chunk-QK2HR3LC.js';
6
- import '../chunk-AU6ZSYW6.js';
5
+ import { DEFAULT_STEP_KIND_LABELS, workflowSteps, dependsOn, stepLevels, runFields, upstreamSteps, stepDependencies, canAssign, WORKFLOW_STEP_KINDS, STEP_KIND_ICONS, validateWorkflowGraph, stepConfigProblems, assigneeName, orderSteps, stepKindOf } from '../chunk-3KZWRDPY.js';
6
+ import { AgentSelect } from '../chunk-GTAUDUAZ.js';
7
+ import '../chunk-SM774TX7.js';
7
8
  import '../chunk-NUSBINUM.js';
9
+ import { mergeSkillWorkflows } from '../chunk-TZGBRLPK.js';
8
10
  import '../chunk-M4S75AEJ.js';
9
11
  import '../chunk-5LXQPP2K.js';
10
12
  import '../chunk-NUNKSZKU.js';
11
13
  import '../chunk-RLWIUUQ5.js';
12
14
  import '../chunk-YU2KUMGE.js';
13
15
  import '../chunk-P2ZB2WTE.js';
16
+ import { TONE_DOT, TONES, isTone } from '../chunk-AUS3KBHJ.js';
14
17
  import '../chunk-N5YEF3LC.js';
18
+ import '../chunk-SLSBJRWW.js';
19
+ import '../chunk-7CPOQPWR.js';
15
20
  import { useConnectedTags, useListedDocuments, useConnectedConversations } from '../chunk-CDP7S6RA.js';
16
21
  import { useConnectedWorkspace } from '../chunk-GA77ONJJ.js';
17
22
  import '../chunk-T4P237N6.js';
18
23
  import '../chunk-ABEKUV6L.js';
19
24
  import '../chunk-P6GHJSLR.js';
20
- import { useBlocksEnvironment } from '../chunk-GKM4EOH7.js';
21
- import '../chunk-TX2ZICS7.js';
22
- import { DEFAULT_STEP_KIND_LABELS, workflowSteps, dependsOn, stepLevels, runFields, upstreamSteps, stepDependencies, canAssign, WORKFLOW_STEP_KINDS, STEP_KIND_ICONS, validateWorkflowGraph, stepConfigProblems, assigneeName, orderSteps, stepKindOf } from '../chunk-3KZWRDPY.js';
23
- import { mergeSkillWorkflows } from '../chunk-TZGBRLPK.js';
24
- import { TONE_DOT, TONES, isTone } from '../chunk-AUS3KBHJ.js';
25
- import '../chunk-SLSBJRWW.js';
26
- import '../chunk-7CPOQPWR.js';
27
25
  import '../chunk-NPLYHR2E.js';
28
- import '../chunk-OXF2IFXG.js';
29
26
  import '../chunk-7F6CBP3Z.js';
27
+ import { useBlocksEnvironment } from '../chunk-GKM4EOH7.js';
28
+ import '../chunk-OXF2IFXG.js';
29
+ import '../chunk-TX2ZICS7.js';
30
30
  import '../chunk-VUNV25KB.js';
31
31
  import { useState, useMemo, useEffect, useCallback, useRef } from 'react';
32
32
  import { useWorkspaceUsers, useWorkflows, useSkills, useAgents, useCreateWorkflow, useUpdateWorkflow, useRunWorkflow, useGrantAgentAccess } from '@arbidocs/react';
@@ -9,8 +9,8 @@ require('../chunk-XAJIKT6Y.cjs');
9
9
  var chunk7G2LJMUG_cjs = require('../chunk-7G2LJMUG.cjs');
10
10
  require('../chunk-CNHLPFFK.cjs');
11
11
  require('../chunk-25YFJLFP.cjs');
12
- var chunkULWRNGGE_cjs = require('../chunk-ULWRNGGE.cjs');
13
12
  require('../chunk-KDG6FER6.cjs');
13
+ var chunkULWRNGGE_cjs = require('../chunk-ULWRNGGE.cjs');
14
14
  require('../chunk-DES3K4SD.cjs');
15
15
  var react = require('react');
16
16
  var lucideReact = require('lucide-react');
@@ -8,8 +8,8 @@ import '../chunk-XNOASBGW.js';
8
8
  export { RoleBadge, WorkspaceTypeBadgeView } from '../chunk-NBV56SGU.js';
9
9
  import '../chunk-P2ZB2WTE.js';
10
10
  import '../chunk-GKM4EOH7.js';
11
- import { ModalHeader } from '../chunk-TX2ZICS7.js';
12
11
  import '../chunk-OXF2IFXG.js';
12
+ import { ModalHeader } from '../chunk-TX2ZICS7.js';
13
13
  import '../chunk-VUNV25KB.js';
14
14
  import { useState, useCallback, useId } from 'react';
15
15
  import { AlertCircle, Plus, ArrowUpRight, FileText, AlignLeft, Globe, CreditCard, Loader2, FolderLock } from 'lucide-react';
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arbidocs/coedit",
3
- "version": "0.4.168",
3
+ "version": "0.4.169",
4
4
  "description": "Real-time collaboration for the ARBI native DOCX editor: a Yjs mirror of the canonical OOXML package, session, and server runtime",
5
5
  "type": "module",
6
6
  "sideEffects": false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arbidocs/blocks",
3
- "version": "0.4.168",
3
+ "version": "0.4.169",
4
4
  "description": "Composable, domain-neutral UI blocks for ARBI apps, organised by capability (retrieval, facts, agents, workspaces, citations, collaboration) plus shell, theme and site primitives, on top of @arbidocs/react.",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -296,9 +296,9 @@
296
296
  "example:test:e2e": "playwright test -c examples/custom-ui/playwright.config.ts"
297
297
  },
298
298
  "dependencies": {
299
- "@arbidocs/client": "0.4.168",
300
- "@arbidocs/coedit": "0.4.168",
301
- "@arbidocs/sdk": "0.4.168",
299
+ "@arbidocs/client": "0.4.169",
300
+ "@arbidocs/coedit": "0.4.169",
301
+ "@arbidocs/sdk": "0.4.169",
302
302
  "@auth0/auth0-react": "^2.19.0",
303
303
  "@dnd-kit/core": "^6.3.1",
304
304
  "@dnd-kit/sortable": "^10.0.0",
@@ -345,7 +345,7 @@
345
345
  "y-protocols": "^1.0.6"
346
346
  },
347
347
  "peerDependencies": {
348
- "@arbidocs/react": "0.4.168",
348
+ "@arbidocs/react": "0.4.169",
349
349
  "@lexical/html": "0.35.0",
350
350
  "@lexical/link": "0.35.0",
351
351
  "@lexical/list": "0.35.0",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/calls/connected/WebinarHolding.tsx","../src/calls/connected/ConnectedCallDock.tsx"],"names":["useArbi","useRef","useEffect","callSession","joinFromPreJoin","AUDIENCE_CHOICES","onCallEvent","jsx","WebinarWaiting","CallUserPill","useState","useLayoutEffect","nearestCorner","useArbiHost","useCallSession","useCallback","useMirrorSelfView","useCall","rejoinAsAudience","calls","callLink","Fragment","jsxs","cn","MinimisedCall","CallHeader","CallStateMessage","PreJoin","DEFAULT_JOIN_CHOICES","classifyMediaError","Button","ConnectedCallRoom"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBO,IAAM,oBAAA,GAAuB,GAAA;AAGpC,SAAS,eAAA,CAAgB,SAAA,EAAmB,WAAA,EAAqB,OAAA,EAAwB;AACvF,EAAA,MAAM,OAAOA,aAAA,EAAQ;AACrB,EAAA,MAAM,MAAA,GAASC,eAAO,KAAK,CAAA;AAC3B,EAAAC,iBAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,OAAA,EAAS;AACd,IAAA,MAAA,CAAO,OAAA,GAAU,KAAA;AACjB,IAAA,IAAI,OAAA,GAAU,KAAA;AACd,IAAA,MAAM,OAAO,MAAM;AACjB,MAAA,IAAI,OAAA,IAAW,OAAO,OAAA,EAAS;AAC/B,MAAA,MAAA,CAAO,OAAA,GAAU,IAAA;AACjB,MAAA,MAAM,MAAA,GAASC,iBAAA,CAAY,QAAA,EAAS,CAAE,MAAA;AACtC,MAAA,IAAI,MAAA,EAAQ,cAAc,SAAA,EAAW;AACrC,MAAA,KAAKC,qBAAA,CAAgB,IAAA,EAAM,MAAA,CAAO,OAAA,IAAWC,sBAAgB,CAAA;AAAA,IAC/D,CAAA;AACA,IAAA,MAAM,IAAA,GAAO,MACX,IAAA,CAAK,KAAA,CAAM,OAAA,CACR,IAAI,SAAA,EAAW,WAAW,CAAA,CAC1B,IAAA,CAAK,CAAC,CAAA,KAAM,EAAE,IAAA,IAAQ,IAAA,EAAM,CAAA,CAC5B,KAAA,CAAM,CAAC,QAAiB,OAAA,CAAQ,IAAA,CAAK,0CAAA,EAA4C,GAAG,CAAC,CAAA;AAC1F,IAAA,MAAM,KAAK,WAAA,CAAY,MAAM,KAAK,IAAA,IAAQ,oBAAoB,CAAA;AAC9D,IAAA,MAAM,GAAA,GAAMC,iBAAA,CAAY,cAAA,EAAgB,CAAC,CAAA,KAAM;AAC7C,MAAA,IAAI,CAAA,CAAE,WAAA,KAAgB,SAAA,IAAa,CAAA,CAAE,MAAM,IAAA,EAAK;AAAA,IAClD,CAAC,CAAA;AACD,IAAA,OAAO,MAAM;AACX,MAAA,OAAA,GAAU,IAAA;AACV,MAAA,aAAA,CAAc,EAAE,CAAA;AAChB,MAAA,GAAA,EAAI;AAAA,IACN,CAAA;AAAA,EACF,GAAG,CAAC,IAAA,EAAM,SAAA,EAAW,WAAA,EAAa,OAAO,CAAC,CAAA;AAC5C;AAEO,SAAS,cAAA,CAAe;AAAA,EAC7B,OAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAAA,EAQiB;AACf,EAAA,eAAA,CAAgB,SAAA,EAAW,WAAA,EAAa,OAAA,KAAY,SAAS,CAAA;AAC7D,EAAA,uBACEC,cAAA;AAAA,IAACC,gCAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,KAAA;AAAA,MACA,IAAA,EAAM,IAAA,EAAM,QAAA,mBAAWD,cAAA,CAACE,8BAAA,EAAA,EAAa,QAAA,EAAU,IAAA,CAAK,QAAA,EAAU,IAAA,EAAM,IAAA,CAAK,IAAA,EAAM,CAAA,GAAK,MAAA;AAAA,MACpF,OAAA;AAAA,MACA,UAAA,EAAY,OAAA,KAAY,SAAA,GAAY,OAAA,GAAU;AAAA;AAAA,GAChD;AAEJ;AC9BA,IAAM,UAAA,GAAa,sBAAA;AAUnB,SAAS,UAAU,EAAA,EAAiC;AAClD,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIC,iBAAsB,IAAI,CAAA;AAClD,EAAAC,uBAAA,CAAgB,MAAM;AACpB,IAAA,IAAI,CAAC,EAAA,EAAI;AACP,MAAA,OAAA,CAAQ,IAAI,CAAA;AACZ,MAAA;AAAA,IACF;AACA,IAAA,MAAM,UAAU,MAAM;AACpB,MAAA,MAAM,CAAA,GAAI,GAAG,qBAAA,EAAsB;AACnC,MAAA,MAAM,IAAA,GACJ,EAAE,KAAA,GAAQ,CAAA,IAAK,EAAE,MAAA,GAAS,CAAA,GACtB,EAAE,GAAA,EAAK,CAAA,CAAE,KAAK,IAAA,EAAM,CAAA,CAAE,MAAM,KAAA,EAAO,CAAA,CAAE,OAAO,MAAA,EAAQ,CAAA,CAAE,QAAO,GAC7D,IAAA;AACN,MAAA,OAAA;AAAA,QAAQ,CAAC,SACP,IAAA,IACA,IAAA,IACA,KAAK,GAAA,KAAQ,IAAA,CAAK,OAClB,IAAA,CAAK,IAAA,KAAS,KAAK,IAAA,IACnB,IAAA,CAAK,UAAU,IAAA,CAAK,KAAA,IACpB,KAAK,MAAA,KAAW,IAAA,CAAK,SACjB,IAAA,GACA;AAAA,OACN;AAAA,IACF,CAAA;AACA,IAAA,OAAA,EAAQ;AACR,IAAA,MAAM,KAAK,OAAO,cAAA,KAAmB,cAAc,IAAI,cAAA,CAAe,OAAO,CAAA,GAAI,IAAA;AACjF,IAAA,EAAA,EAAI,QAAQ,EAAE,CAAA;AACd,IAAA,MAAA,CAAO,gBAAA,CAAiB,UAAU,OAAO,CAAA;AAEzC,IAAA,MAAM,EAAA,GAAK,WAAA,CAAY,OAAA,EAAS,GAAG,CAAA;AACnC,IAAA,OAAO,MAAM;AACX,MAAA,EAAA,EAAI,UAAA,EAAW;AACf,MAAA,MAAA,CAAO,mBAAA,CAAoB,UAAU,OAAO,CAAA;AAC5C,MAAA,aAAA,CAAc,EAAE,CAAA;AAAA,IAClB,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,EAAE,CAAC,CAAA;AACP,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,UAAA,GAAwB;AAC/B,EAAA,IAAI;AACF,IAAA,MAAM,CAAA,GAAI,YAAA,CAAa,OAAA,CAAQ,UAAU,CAAA;AACzC,IAAA,IAAI,MAAM,UAAA,IAAc,CAAA,KAAM,WAAA,IAAe,CAAA,KAAM,iBAAiB,CAAA,KAAM,cAAA;AACxE,MAAA,OAAO,CAAA;AAAA,EACX,CAAA,CAAA,MAAQ;AAAA,EAER;AACA,EAAA,OAAO,cAAA;AACT;AAEA,IAAM,YAAA,GAA0C;AAAA,EAC9C,UAAA,EAAY,cAAA;AAAA,EACZ,WAAA,EAAa,eAAA;AAAA,EACb,aAAA,EAAe,iBAAA;AAAA,EACf,cAAA,EAAgB;AAClB,CAAA;AAGA,SAAS,WAAW,QAAA,EAAkC;AACpD,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAID,iBAA0C,IAAI,CAAA;AAC1E,EAAA,MAAM,KAAA,GAAQT,eAAwD,IAAI,CAAA;AAC1E,EAAA,MAAM,aAAA,GAAgB,CAAC,CAAA,KAAuC;AAE5D,IAAA,IACE,EAAE,MAAA,KAAW,CAAA,IACZ,CAAA,CAAE,MAAA,CAAuB,QAAQ,oDAAoD,CAAA;AAEtF,MAAA;AACF,IAAA,KAAA,CAAM,OAAA,GAAU,EAAE,CAAA,EAAG,CAAA,CAAE,SAAS,CAAA,EAAG,CAAA,CAAE,OAAA,EAAS,KAAA,EAAO,KAAA,EAAM;AAC3D,IAAA,CAAA,CAAE,aAAA,CAAc,iBAAA,GAAoB,CAAA,CAAE,SAAS,CAAA;AAAA,EACjD,CAAA;AACA,EAAA,MAAM,aAAA,GAAgB,CAAC,CAAA,KAAuC;AAC5D,IAAA,MAAM,IAAI,KAAA,CAAM,OAAA;AAChB,IAAA,IAAI,CAAC,CAAA,EAAG;AACR,IAAA,MAAM,EAAA,GAAK,CAAA,CAAE,OAAA,GAAU,CAAA,CAAE,CAAA;AACzB,IAAA,MAAM,EAAA,GAAK,CAAA,CAAE,OAAA,GAAU,CAAA,CAAE,CAAA;AACzB,IAAA,IAAI,CAAC,EAAE,KAAA,IAAS,IAAA,CAAK,MAAM,EAAA,EAAI,EAAE,IAAI,CAAA,EAAG;AACxC,IAAA,CAAA,CAAE,KAAA,GAAQ,IAAA;AACV,IAAA,SAAA,CAAU,EAAE,CAAA,EAAG,EAAA,EAAI,CAAA,EAAG,IAAI,CAAA;AAAA,EAC5B,CAAA;AACA,EAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAAuC;AAC1D,IAAA,MAAM,IAAI,KAAA,CAAM,OAAA;AAChB,IAAA,KAAA,CAAM,OAAA,GAAU,IAAA;AAChB,IAAA,IAAI,CAAC,GAAG,KAAA,EAAO;AACf,IAAA,MAAM,CAAA,GAAI,CAAA,CAAE,aAAA,CAAc,qBAAA,EAAsB;AAChD,IAAA,QAAA;AAAA,MACEW,+BAAA;AAAA,QACE,CAAA,CAAE,IAAA,GAAO,CAAA,CAAE,KAAA,GAAQ,CAAA;AAAA,QACnB,CAAA,CAAE,GAAA,GAAM,CAAA,CAAE,MAAA,GAAS,CAAA;AAAA,QACnB,MAAA,CAAO,UAAA;AAAA,QACP,MAAA,CAAO;AAAA;AACT,KACF;AACA,IAAA,SAAA,CAAU,IAAI,CAAA;AAEd,IAAA,MAAM,OAAA,GAAU,CAAC,EAAA,KAAc;AAC7B,MAAA,EAAA,CAAG,eAAA,EAAgB;AACnB,MAAA,EAAA,CAAG,cAAA,EAAe;AAAA,IACpB,CAAA;AACA,IAAA,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAA,EAAS,EAAE,SAAS,IAAA,EAAM,IAAA,EAAM,MAAM,CAAA;AACvE,IAAA,UAAA,CAAW,MAAM,MAAA,CAAO,mBAAA,CAAoB,OAAA,EAAS,OAAA,EAAS,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA,EAAG,CAAC,CAAA;AAAA,EACrF,CAAA;AACA,EAAA,OAAO,EAAE,MAAA,EAAQ,QAAA,EAAU,EAAE,aAAA,EAAe,aAAA,EAAe,aAAY,EAAE;AAC3E;AAGA,IAAM,SAAS,MAA0B,IAAA;AAElC,SAAS,iBAAA,GAAyC;AACvD,EAAA,MAAM,OAAOZ,aAAAA,EAAQ;AACrB,EAAA,MAAM,IAAA,GAAOa,mBAAY,CAAE,KAAA;AAC3B,EAAA,MAAM,OAAA,GAAU,MAAM,OAAA,IAAW,MAAA;AACjC,EAAA,MAAM,mBAAmB,IAAA,EAAM,gBAAA;AAC/B,EAAA,MAAM,MAAA,GAASC,oBAAA,CAAe,CAAC,CAAA,KAAM,EAAE,MAAM,CAAA;AAC7C,EAAA,MAAM,EAAE,aAAA,EAAe,gBAAA,EAAkB,gBAAA,EAAiB,GAAIX,iBAAAA;AAC9D,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIO,iBAAS,KAAK,CAAA;AAC5C,EAAA,MAAM,CAAC,MAAA,EAAQ,cAAc,CAAA,GAAIA,iBAAoB,UAAU,CAAA;AAC/D,EAAA,MAAM,SAAA,GAAYK,mBAAA,CAAY,CAAC,CAAA,KAAiB;AAC9C,IAAA,cAAA,CAAe,CAAC,CAAA;AAChB,IAAA,IAAI;AACF,MAAA,YAAA,CAAa,OAAA,CAAQ,YAAY,CAAC,CAAA;AAAA,IACpC,CAAA,CAAA,MAAQ;AAAA,IAER;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,MAAM,SAAA,GAAY,CAAC,CAAC,MAAA,EAAQ,SAAA;AAC5B,EAAA,MAAM,MAAA,GAAS,CAAC,CAAC,MAAA,IAAU,CAAC,SAAA;AAC5B,EAAA,MAAM,CAAC,UAAU,CAAA,GAAIC,mCAAA,EAAkB;AACvC,EAAA,MAAM,IAAA,GAAO,WAAW,SAAS,CAAA;AAGjC,EAAA,MAAM,EAAE,MAAM,IAAA,EAAM,OAAA,EAAS,gBAAe,GAAIC,aAAA,CAAQ,QAAQ,SAAS,CAAA;AACzE,EAAA,MAAM,SAAA,GAAY,CAAC,CAAC,IAAA,IAAQ,cAAA;AAC5B,EAAA,MAAM,cAAc,IAAA,EAAM,IAAA,KAAS,YAAa,IAAA,CAAK,OAAA,EAAS,WAAW,UAAA,GAAc,IAAA;AACvF,EAAA,MAAM,WAAW,WAAA,KAAgB,UAAA;AACjC,EAAA,MAAM,QAAQ,MAAA,EAAQ,KAAA;AACtB,EAAA,MAAM,YAAY,MAAA,EAAQ,SAAA;AAC1B,EAAA,MAAM,UAAA,GAAahB,eAAsB,IAAI,CAAA;AAC7C,EAAAC,kBAAU,MAAM;AACd,IAAA,IAAI,KAAA,KAAU,aAAa,CAAC,QAAA,IAAY,CAAC,SAAA,IAAa,UAAA,CAAW,YAAY,SAAA,EAAW;AACxF,IAAA,UAAA,CAAW,OAAA,GAAU,SAAA;AACrB,IAAA,UAAA,CAAW,IAAI,CAAA;AACf,IAAA,KAAKE,qBAAAA,CAAgB,MAAMC,sBAAgB,CAAA,CAAE,QAAQ,MAAM,UAAA,CAAW,KAAK,CAAC,CAAA;AAAA,EAC9E,GAAG,CAAC,IAAA,EAAM,KAAA,EAAO,QAAA,EAAU,SAAS,CAAC,CAAA;AAGrC,EAAA,MAAM,UAAA,GAAaU,mBAAA;AAAA,IACjB,CAAC,KAAA,KAAmC;AAClC,MAAA,MAAM,OAAA,GAAUZ,iBAAAA,CAAY,QAAA,EAAS,CAAE,MAAA;AACvC,MAAA,IAAI,CAAC,OAAA,IAAW,OAAA,CAAQ,aAAA,KAAkB,KAAA,EAAO;AACjD,MAAA,IAAI,QAAQ,SAAA,EAAW,KAAKe,sBAAA,CAAiB,IAAA,EAAM,QAAQ,SAAS,CAAA;AAAA,WAC/D,aAAA,EAAc;AAAA,IACrB,CAAA;AAAA,IACA,CAAC,MAAM,aAAa;AAAA,GACtB;AAEA,EAAA,MAAM,eACJ,WAAA,IAAe,CAACC,cAAM,kBAAA,CAAmB,GAAA,CAAI,WAAW,CAAA,IAAK,SAAA,GACzD,MAAM,gBAAA,CAAiB,WAAW,EAAE,KAAA,EAAO,iBAAiB,aAAA,EAAe,IAAA,EAAM,CAAA,GACjF,MAAA;AAKN,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIT,iBAAS,KAAK,CAAA;AAClD,EAAA,MAAM,QAAA,GAAA,CAA0B,KAAA,KAAU,WAAA,GAAc,UAAA,GAAa,YAAY,MAAA,GAAS,QAAA;AAC1F,EAAA,MAAM,QAAA,GAAWK,oBAAY,MAAM,gBAAA,CAAiB,IAAI,CAAA,EAAG,CAAC,gBAAgB,CAAC,CAAA;AAC7E,EAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,QAAA,EAAU,MAAA,EAAQ,QAAQ,CAAA;AAC/C,EAAA,MAAM,IAAA,GAAO,SAAA,CAAU,MAAA,GAAS,IAAA,GAAO,IAAI,CAAA;AAG3C,EAAA,MAAM,QAAA,GAAWd,eAAsB,IAAI,CAAA;AAE3C,EAAAC,kBAAU,MAAM;AAEd,IAAA,IAAI,UAAA,WAAqB,OAAA,GAAU,IAAA;AACnC,IAAA,IAAI,QAAQ,KAAA,KAAU,WAAA,IAAe,QAAA,CAAS,OAAA,KAAY,OAAO,SAAA,EAAW;AAC5E,IAAA,IAAI,CAAC,SAAA,IAAa,QAAA,IAAY,UAAA,IAAc,CAAC,gBAAA,EAAkB;AAC/D,IAAA,QAAA,CAAS,UAAU,MAAA,CAAO,SAAA;AAC1B,IAAA,KAAK,iBAAiB,MAAM,CAAA;AAAA,EAC9B,GAAG,CAAC,MAAA,EAAQ,WAAW,QAAA,EAAU,UAAA,EAAY,gBAAgB,CAAC,CAAA;AAE9D,EAAA,IAAI,CAAC,QAAQ,OAAO,IAAA;AACpB,EAAA,MAAM,KAAA,GAAQ,OAAO,KAAA,IAAS,MAAA;AAC9B,EAAA,MAAM,SAAA,GAAY,MAAA,CAAO,KAAA,KAAU,WAAA,GAAc,OAAO,aAAA,GAAgB,IAAA;AACxE,EAAA,MAAM,OAAOkB,cAAA,CAAS,MAAA,CAAO,WAAW,MAAA,CAAO,GAAA,EAAK,OAAO,WAAW,CAAA;AAEtE,EAAA,uBACEb,eAAAc,mBAAA,EAAA,EACE,QAAA,kBAAAC,eAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAW,aAAA;AAAA,MACX,aAAA,EAAY,WAAA;AAAA,MACZ,gBAAA,EAAgB,YAAY,WAAA,GAAc,QAAA;AAAA,MAC1C,SAAA,EAAWC,KAAA;AAAA,QACT,mEAAA;AAAA,QACA,SAAA,GACIA,KAAA;AAAA,UACE,4HAAA;AAAA,UACA,aAAa,MAAM;AAAA,SACrB,GACAA,KAAA;AAAA,UACE,MAAA;AAAA,UACA,CAAC,IAAA,KACE,QAAA,KAAa,MAAA,GACV,SAAA,GACA,+DAAA;AAAA;AACR,OACN;AAAA,MACA,KAAA,EACE,SAAA,GACI,IAAA,CAAK,MAAA,GACH,EAAE,SAAA,EAAW,CAAA,UAAA,EAAa,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,IAAA,EAAO,IAAA,CAAK,OAAO,CAAC,CAAA,GAAA,CAAA,EAAM,GACjE,MAAA,GACF,IAAA,GACE,EAAE,GAAA,EAAK,IAAA,CAAK,KAAK,IAAA,EAAM,IAAA,CAAK,IAAA,EAAM,KAAA,EAAO,IAAA,CAAK,KAAA,EAAO,MAAA,EAAQ,IAAA,CAAK,QAAO,GACzE,MAAA;AAAA,MAEP,GAAI,SAAA,GAAY,IAAA,CAAK,QAAA,GAAW,EAAC;AAAA,MAEjC,QAAA,EAAA;AAAA,QAAA,MAAA,CAAO,KAAA,KAAU,WAAA,KACf,SAAA,mBACChB,cAAAA;AAAA,UAACiB,+BAAA;AAAA,UAAA;AAAA,YACC,KAAA;AAAA,YACA,SAAA,EAAW,MAAM,gBAAA,CAAiB,KAAK,CAAA;AAAA,YACvC,OAAA,EAAS;AAAA;AAAA,SACX,mBAEAF,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iCAAA,EACb,QAAA,EAAA;AAAA,0BAAAf,eAACkB,4BAAA,EAAA,EAAW,KAAA,EAAc,YAAY,MAAM,gBAAA,CAAiB,IAAI,CAAA,EAAG,CAAA;AAAA,0BACpElB,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2CACZ,QAAA,EAAA,MAAA,CAAO,KAAA,KAAU,SAAA,KAAc,QAAA,IAAY,CAAC,SAAA,CAAA,mBAC3CA,cAAAA,CAACmB,kCAAA,EAAA,EAAiB,OAAM,eAAA,EAAW,MAAA,EAAO,gBAAe,CAAA,GACvD,MAAA,CAAO,KAAA,KAAU,SAAA,mBACnBnB,cAAAA;AAAA,YAACoB,yBAAA;AAAA,YAAA;AAAA,cACC,cAAA,EAAgBC,0BAAA;AAAA,cAChB,SAAA,EAAU,SAAA;AAAA,cACV,IAAA,EAAM,OAAA;AAAA,cACN,SAAA,EAAW,MAAA,CAAO,UAAA,GAAa,YAAA,GAAe,MAAA;AAAA,cAC9C,eAAe,CAAC,GAAA,EAAK,IAAA,KAASC,wBAAA,CAAmB,KAAK,IAAI,CAAA;AAAA,cAC1D,MAAA,EAAQ,UAAA;AAAA,cACR,MAAA,EAAQ,CAAC,OAAA,KAAY;AACnB,gBAAA,UAAA,CAAW,IAAI,CAAA;AACf,gBAAA,KAAKzB,qBAAAA,CAAgB,MAAM,OAAO,CAAA,CAAE,QAAQ,MAAM,UAAA,CAAW,KAAK,CAAC,CAAA;AAAA,cACrE,CAAA;AAAA,cACA,QAAA,EAAU;AAAA;AAAA,cAEV,MAAA,CAAO,KAAA,KAAU,qBAAqB,MAAA,CAAO,KAAA,KAAU,kCACzDG,cAAAA;AAAA,YAAC,cAAA;AAAA,YAAA;AAAA,cACC,OAAA,EAAS,MAAA,CAAO,KAAA,KAAU,iBAAA,GAAoB,SAAA,GAAY,OAAA;AAAA,cAC1D,WAAW,MAAA,CAAO,SAAA;AAAA,cAClB,aAAa,MAAA,CAAO,WAAA;AAAA,cACpB,OAAO,MAAA,CAAO,KAAA;AAAA,cACd,IAAA,EACE,IAAA,EAAM,cAAA,GACF,EAAE,QAAA,EAAU,KAAK,cAAA,EAAgB,IAAA,EAAM,IAAA,CAAK,YAAA,EAAa,GACzD,IAAA;AAAA,cAEN,OAAA,EAAS;AAAA;AAAA,8BAGXA,cAAAA;AAAA,YAACmB,kCAAA;AAAA,YAAA;AAAA,cACC,KAAA,EAAM,0CAAA;AAAA,cACN,WAAA,EAAY,0DAAA;AAAA,cACZ,MAAA,EAAO,eAAA;AAAA,cACP,MAAA,kBACEnB,cAAAA,CAACuB,SAAA,EAAA,EAAO,IAAA,EAAK,UAAS,OAAA,EAAQ,SAAA,EAAU,OAAA,EAAS,aAAA,EAAe,QAAA,EAAA,QAAA,EAEhE;AAAA;AAAA,WAEJ,EAEJ;AAAA,SAAA,EACF,CAAA,CAAA;AAAA,QAEH,6BACCvB,cAAAA;AAAA,UAACwB,mCAAA;AAAA,UAAA;AAAA,YAGC,aAAA,EAAe,SAAA;AAAA,YACf,SAAS,MAAA,CAAO,GAAA;AAAA,YAChB,OAAA,EAAS,OAAO,OAAA,IAAW,MAAA;AAAA,YAC3B,WAAW,MAAA,CAAO,SAAA;AAAA,YAClB,sBAAsB,MAAA,CAAO,oBAAA;AAAA,YAC7B,KAAA;AAAA,YACA,WAAW,MAAA,CAAO,SAAA;AAAA,YAClB,IAAA;AAAA,YACA,SAAA;AAAA,YACA,iBAAA,EAAmB,gBAAA;AAAA,YACnB,OAAA,EAAS,MAAM,UAAA,CAAW,SAAS,CAAA;AAAA,YACnC,WAAA;AAAA,YACA,YAAA;AAAA,YACA,cAAA,EAAgB;AAAA,WAAA;AAAA,UAdX,CAAA,EAAG,MAAA,CAAO,SAAS,CAAA,CAAA,EAAI,UAAU,KAAK,CAAA;AAAA;AAe7C;AAAA;AAAA,GAEJ,EACF,CAAA;AAEJ","file":"ConnectedCallDock-ESH665DH.cjs","sourcesContent":["/**\n * The audience's holding screens in the call dock: \"Starting soon\" before the host goes live —\n * reading the webinar every few seconds and listening to WS `call.webinar`, then joining by itself\n * — and \"This webinar has ended\" once the host ended it.\n */\n\nimport {\n useArbi,\n onCallEvent,\n callSession,\n joinFromPreJoin,\n AUDIENCE_CHOICES,\n} from '@arbidocs/react'\nimport { useEffect, useRef, type ReactElement } from 'react'\nimport { WebinarWaiting } from '../ui'\nimport { CallUserPill } from './CallUserPill'\n\n/** How often \"Starting soon\" reads the webinar (a link holder gets no WS event). */\nexport const WEBINAR_WAIT_POLL_MS = 5_000\n\n/** Wait for go-live, then join once. */\nfunction useJoinWhenLive(callExtId: string, linkVersion: number, enabled: boolean): void {\n const arbi = useArbi()\n const joined = useRef(false)\n useEffect(() => {\n if (!enabled) return\n joined.current = false\n let stopped = false\n const join = () => {\n if (stopped || joined.current) return\n joined.current = true\n const active = callSession.getState().active\n if (active?.callExtId !== callExtId) return\n void joinFromPreJoin(arbi, active.choices ?? AUDIENCE_CHOICES)\n }\n const poll = () =>\n arbi.calls.webinar\n .get(callExtId, linkVersion)\n .then((s) => s.live && join())\n .catch((err: unknown) => console.warn('[calls] could not read the webinar state', err))\n const id = setInterval(() => void poll(), WEBINAR_WAIT_POLL_MS)\n const off = onCallEvent('call.webinar', (m) => {\n if (m.call_ext_id === callExtId && m.live) join()\n })\n return () => {\n stopped = true\n clearInterval(id)\n off()\n }\n }, [arbi, callExtId, linkVersion, enabled])\n}\n\nexport function WebinarHolding({\n variant,\n callExtId,\n linkVersion,\n title,\n host,\n onLeave,\n}: {\n variant: 'waiting' | 'ended'\n callExtId: string\n linkVersion: number\n title?: string | null\n /** The host (the call's creator), named as a pill. */\n host?: { identity: string; name?: string | null } | null\n onLeave(): void\n}): ReactElement {\n useJoinWhenLive(callExtId, linkVersion, variant === 'waiting')\n return (\n <WebinarWaiting\n variant={variant}\n title={title}\n host={host?.identity ? <CallUserPill identity={host.identity} name={host.name} /> : undefined}\n onLeave={onLeave}\n leaveLabel={variant === 'waiting' ? 'Leave' : 'Close'}\n />\n )\n}\n","/**\n * ConnectedCallDock — where the active call lives. Mount it once (lazily: it pulls LiveKit) while\n * the call session has an active call. Placements of ONE element (so the room never remounts and\n * hangs up):\n * docked → the call panel in the host's right-hand dock, like the document viewer: the host's\n * slot (`calls.useSlot`) reserves the space and this element follows that box. The\n * main pane shows the call's conversation (`calls.showConversation`) — its chat and\n * live transcript.\n * main → a webinar's audience has no conversation beside the call: its viewer takes the\n * host's main slot the same way, the stage large with the Q&A / chat column beside\n * it. Without a host slot the call floats at the right edge (or fills the page).\n * minimised → a small card in a corner (drag it to another), so the user keeps working; another\n * panel taking the dock also minimises the call.\n * Phases: prejoin (device check), knocking (waiting for a host), connected (<CallRoom>). A\n * webinar's audience skips the device check (it cannot publish), waits on \"Starting soon\" before\n * go-live and sees \"This webinar has ended\" after; when the stage changes under someone (moved to\n * the audience, stepped down) the room drops them and they join again at once, with no screen.\n */\n\nimport {\n useArbi,\n callSession,\n classifyMediaError,\n useCall,\n useCallSession,\n callLink,\n joinFromPreJoin,\n rejoinAsAudience,\n AUDIENCE_CHOICES,\n useArbiHost,\n type CallSlotMode,\n DEFAULT_JOIN_CHOICES,\n} from '@arbidocs/react'\nimport { useCallback, useEffect, useLayoutEffect, useRef, useState, type ReactElement } from 'react'\nimport { Button, cn } from '@arbidocs/react/ui'\nimport {\n CallHeader,\n CallStateMessage,\n MinimisedCall,\n PreJoin,\n nearestCorner,\n type PipCorner,\n} from '../ui'\nimport { calls } from '@arbidocs/sdk/browser'\nimport { ConnectedCallRoom } from './ConnectedCallRoom'\nimport { WebinarHolding } from './WebinarHolding'\nimport { useMirrorSelfView } from '../self-view'\n\nconst CORNER_KEY = 'arbi-call-pip-corner'\n\ninterface Rect {\n top: number\n left: number\n width: number\n height: number\n}\n\n/** An element's viewport rectangle, kept current; null while there is none. */\nfunction useRectOf(el: Element | null): Rect | null {\n const [rect, setRect] = useState<Rect | null>(null)\n useLayoutEffect(() => {\n if (!el) {\n setRect(null)\n return\n }\n const measure = () => {\n const r = el.getBoundingClientRect()\n const next =\n r.width > 0 && r.height > 0\n ? { top: r.top, left: r.left, width: r.width, height: r.height }\n : null\n setRect((prev) =>\n prev &&\n next &&\n prev.top === next.top &&\n prev.left === next.left &&\n prev.width === next.width &&\n prev.height === next.height\n ? prev\n : next\n )\n }\n measure()\n const ro = typeof ResizeObserver !== 'undefined' ? new ResizeObserver(measure) : null\n ro?.observe(el)\n window.addEventListener('resize', measure)\n // Banners, the sidebar and the dock's open animation move the box without resizing it.\n const id = setInterval(measure, 250)\n return () => {\n ro?.disconnect()\n window.removeEventListener('resize', measure)\n clearInterval(id)\n }\n }, [el])\n return rect\n}\n\nfunction readCorner(): PipCorner {\n try {\n const v = localStorage.getItem(CORNER_KEY)\n if (v === 'top-left' || v === 'top-right' || v === 'bottom-left' || v === 'bottom-right')\n return v\n } catch {\n // Storage blocked: the default corner.\n }\n return 'bottom-right'\n}\n\nconst CORNER_CLASS: Record<PipCorner, string> = {\n 'top-left': 'left-4 top-4',\n 'top-right': 'right-4 top-4',\n 'bottom-left': 'bottom-4 left-4',\n 'bottom-right': 'bottom-4 right-4',\n}\n\n/** Drag the minimised card; it settles in the nearest corner. */\nfunction usePipDrag(onCorner: (c: PipCorner) => void) {\n const [offset, setOffset] = useState<{ x: number; y: number } | null>(null)\n const start = useRef<{ x: number; y: number; moved: boolean } | null>(null)\n const onPointerDown = (e: React.PointerEvent<HTMLElement>) => {\n // Buttons keep their clicks; drag by the card's body.\n if (\n e.button !== 0 ||\n (e.target as HTMLElement).closest('button:not([data-testid=\"call-minimised-restore\"])')\n )\n return\n start.current = { x: e.clientX, y: e.clientY, moved: false }\n e.currentTarget.setPointerCapture?.(e.pointerId)\n }\n const onPointerMove = (e: React.PointerEvent<HTMLElement>) => {\n const s = start.current\n if (!s) return\n const dx = e.clientX - s.x\n const dy = e.clientY - s.y\n if (!s.moved && Math.hypot(dx, dy) < 6) return\n s.moved = true\n setOffset({ x: dx, y: dy })\n }\n const onPointerUp = (e: React.PointerEvent<HTMLElement>) => {\n const s = start.current\n start.current = null\n if (!s?.moved) return\n const r = e.currentTarget.getBoundingClientRect()\n onCorner(\n nearestCorner(\n r.left + r.width / 2,\n r.top + r.height / 2,\n window.innerWidth,\n window.innerHeight\n )\n )\n setOffset(null)\n // The drag ended on the card: do not let it count as \"back to the call\".\n const swallow = (ev: Event) => {\n ev.stopPropagation()\n ev.preventDefault()\n }\n window.addEventListener('click', swallow, { capture: true, once: true })\n setTimeout(() => window.removeEventListener('click', swallow, { capture: true }), 0)\n }\n return { offset, handlers: { onPointerDown, onPointerMove, onPointerUp } }\n}\n\n/** A host slot that renders nothing: the call floats. */\nconst noSlot = (): HTMLElement | null => null\n\nexport function ConnectedCallDock(): ReactElement | null {\n const arbi = useArbi()\n const host = useArbiHost().calls\n const useSlot = host?.useSlot ?? noSlot\n const showConversation = host?.showConversation\n const active = useCallSession((s) => s.active)\n const { endActiveCall, updateActiveCall, setCallMinimized } = callSession\n const [joining, setJoining] = useState(false)\n const [corner, setCornerState] = useState<PipCorner>(readCorner)\n const setCorner = useCallback((c: PipCorner) => {\n setCornerState(c)\n try {\n localStorage.setItem(CORNER_KEY, c)\n } catch {\n // Not remembered: fine.\n }\n }, [])\n const minimized = !!active?.minimized\n const docked = !!active && !minimized\n const [mirrorSelf] = useMirrorSelfView()\n const drag = usePipDrag(setCorner)\n\n // A webinar: my role decides the join (the audience skips the device check) and the UI.\n const { data: call, isError: callUnreadable } = useCall(active?.callExtId)\n const callKnown = !!call || callUnreadable\n const webinarRole = call?.mode === 'webinar' ? (call.webinar?.my_role ?? 'attendee') : null\n const audience = webinarRole === 'attendee'\n const phase = active?.phase\n const callExtId = active?.callExtId\n const autoJoined = useRef<string | null>(null)\n useEffect(() => {\n if (phase !== 'prejoin' || !audience || !callExtId || autoJoined.current === callExtId) return\n autoJoined.current = callExtId\n setJoining(true)\n void joinFromPreJoin(arbi, AUDIENCE_CHOICES).finally(() => setJoining(false))\n }, [arbi, phase, audience, callExtId])\n\n /** A room I was in has gone: leave the call, unless it dropped me to join again (webinar stage). */\n const onRoomLeft = useCallback(\n (token: calls.CallTokenResponse) => {\n const current = callSession.getState().active\n if (!current || current.tokenResponse !== token) return // a room already replaced\n if (current.rejoining) void rejoinAsAudience(arbi, current.callExtId)\n else endActiveCall()\n },\n [arbi, endActiveCall]\n )\n /** The host ended the webinar: the audience and panelists see it ended; moderators just close. */\n const onRoomClosed =\n webinarRole && !calls.WEBINAR_MODERATORS.has(webinarRole) && callExtId\n ? () => updateActiveCall(callExtId, { phase: 'webinar-ended', tokenResponse: null })\n : undefined\n\n // The slot: the dock, or the main area for a webinar's audience (the viewer, or its waiting /\n // ended screens). The host's slot is claimed while the call shows; another panel taking it\n // minimises the call; closing the call frees it.\n const [roomViewer, setRoomViewer] = useState(false)\n const slotMode: CallSlotMode = (phase === 'connected' ? roomViewer : audience) ? 'main' : 'docked'\n const minimise = useCallback(() => setCallMinimized(true), [setCallMinimized])\n const slot = useSlot(slotMode, docked, minimise)\n const rect = useRectOf(docked ? slot : null)\n\n // Once connected, the main pane shows the call's conversation (its chat and transcript).\n const shownFor = useRef<string | null>(null)\n // A webinar's audience is not in its meeting chat: nothing to show.\n useEffect(() => {\n // The viewer took the main area (a team member off stage): show it again once back on stage.\n if (roomViewer) shownFor.current = null\n if (active?.phase !== 'connected' || shownFor.current === active.callExtId) return\n if (!callKnown || audience || roomViewer || !showConversation) return\n shownFor.current = active.callExtId\n void showConversation(active)\n }, [active, callKnown, audience, roomViewer, showConversation])\n\n if (!active) return null\n const title = active.title ?? 'Call'\n const connected = active.phase === 'connected' ? active.tokenResponse : null\n const link = callLink(active.callExtId, active.key, active.linkVersion)\n\n return (\n <>\n <section\n aria-label=\"Active call\"\n data-testid=\"call-dock\"\n data-placement={minimized ? 'minimised' : slotMode}\n className={cn(\n 'fixed flex flex-col overflow-hidden bg-background text-foreground',\n minimized\n ? cn(\n 'z-50 w-80 max-w-[calc(100vw-2rem)] cursor-grab touch-none rounded-md border border-border shadow-xl active:cursor-grabbing',\n CORNER_CLASS[corner]\n )\n : cn(\n 'z-40',\n !rect &&\n (slotMode === 'main'\n ? 'inset-0'\n : 'inset-y-0 right-0 w-[min(480px,100vw)] border-l border-border')\n )\n )}\n style={\n minimized\n ? drag.offset\n ? { transform: `translate(${drag.offset.x}px, ${drag.offset.y}px)` }\n : undefined\n : rect\n ? { top: rect.top, left: rect.left, width: rect.width, height: rect.height }\n : undefined\n }\n {...(minimized ? drag.handlers : {})}\n >\n {active.phase !== 'connected' &&\n (minimized ? (\n <MinimisedCall\n title={title}\n onRestore={() => setCallMinimized(false)}\n onLeave={endActiveCall}\n />\n ) : (\n <div className=\"flex size-full min-h-0 flex-col\">\n <CallHeader title={title} onMinimise={() => setCallMinimized(true)} />\n <div className=\"flex min-h-0 flex-1 overflow-y-auto p-4\">\n {active.phase === 'prejoin' && (audience || !callKnown) ? (\n <CallStateMessage title=\"Joining…\" testId=\"call-joining\" />\n ) : active.phase === 'prejoin' ? (\n <PreJoin\n initialChoices={DEFAULT_JOIN_CHOICES}\n className=\"my-auto\"\n busy={joining}\n joinLabel={active.ringOnJoin ? 'Start call' : 'Join'}\n describeError={(err, kind) => classifyMediaError(err, kind)}\n mirror={mirrorSelf}\n onJoin={(choices) => {\n setJoining(true)\n void joinFromPreJoin(arbi, choices).finally(() => setJoining(false))\n }}\n onCancel={endActiveCall}\n />\n ) : active.phase === 'webinar-waiting' || active.phase === 'webinar-ended' ? (\n <WebinarHolding\n variant={active.phase === 'webinar-waiting' ? 'waiting' : 'ended'}\n callExtId={active.callExtId}\n linkVersion={active.linkVersion}\n title={active.title}\n host={\n call?.creator_ext_id\n ? { identity: call.creator_ext_id, name: call.creator_name }\n : null\n }\n onLeave={endActiveCall}\n />\n ) : (\n <CallStateMessage\n title=\"Waiting for the host to let you in…\"\n description=\"You will join as soon as someone in the call admits you.\"\n testId=\"call-knocking\"\n action={\n <Button type=\"button\" variant=\"outline\" onClick={endActiveCall}>\n Cancel\n </Button>\n }\n />\n )}\n </div>\n </div>\n ))}\n {connected && (\n <ConnectedCallRoom\n // A new token is a new room (a webinar rejoin): build it afresh.\n key={`${active.callExtId}:${connected.token}`}\n tokenResponse={connected}\n e2eeKey={active.key}\n choices={active.choices ?? undefined}\n isCreator={active.isCreator}\n lockedWorkspaceExtId={active.lockedWorkspaceExtId}\n title={title}\n startedAt={active.startedAt}\n link={link}\n minimized={minimized}\n onMinimizedChange={setCallMinimized}\n onLeave={() => onRoomLeft(connected)}\n webinarRole={webinarRole}\n onRoomClosed={onRoomClosed}\n onViewerChange={setRoomViewer}\n />\n )}\n </section>\n </>\n )\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"ConnectedStreamedWordArtifact-3OUYXRP2.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"ConnectedStreamedWordArtifact-IEGLOEEZ.cjs"}
@@ -1,109 +0,0 @@
1
- "use client";
2
- 'use strict';
3
-
4
- var chunk2TEST7FZ_cjs = require('./chunk-2TEST7FZ.cjs');
5
- var chunkMB3S2ETI_cjs = require('./chunk-MB3S2ETI.cjs');
6
- var chunk25YFJLFP_cjs = require('./chunk-25YFJLFP.cjs');
7
- var react$1 = require('react');
8
- var reactQuery = require('@tanstack/react-query');
9
- var react = require('@arbidocs/react');
10
- var documentTools = require('@arbidocs/react/document-tools');
11
- var jsxRuntime = require('react/jsx-runtime');
12
-
13
- var NO_EMAIL = () => void 0;
14
- function ConnectedDocumentToolsProvider({ children }) {
15
- const enclosing = documentTools.useOptionalDocumentTools();
16
- return enclosing ? /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children }) : /* @__PURE__ */ jsxRuntime.jsx(OwnDocumentTools, { children });
17
- }
18
- function OwnDocumentTools({ children }) {
19
- const arbi = react.useArbi();
20
- const queryClient = reactQuery.useQueryClient();
21
- const host = chunkMB3S2ETI_cjs.useHost().documentTools;
22
- const { user, ensureWorkspaceOpen } = chunk2TEST7FZ_cjs.useConnectedWorkspace();
23
- const { notify: environmentNotify, openDocument: openInHost } = chunk25YFJLFP_cjs.useBlocksEnvironment();
24
- const useEmailDocument = host?.useEmailDocument ?? NO_EMAIL;
25
- const emailDocument = useEmailDocument();
26
- const client = host?.client ?? (arbi.isLoggedIn ? arbi.getClient().fetch : null);
27
- const signer = react$1.useMemo(
28
- () => user ? { name: user.name, email: user.email, externalId: user.externalId } : null,
29
- [user]
30
- );
31
- const notify = react$1.useCallback(
32
- (message, kind, options) => environmentNotify(message, kind, {
33
- description: options?.description,
34
- action: options?.action
35
- }),
36
- [environmentNotify]
37
- );
38
- const ownDocumentsChanged = react$1.useCallback(
39
- async (ids, change) => {
40
- const refresh = [react.refreshDocuments(queryClient, arbi, ids)];
41
- if (change === "signed" || change === "version")
42
- for (const id of ids)
43
- refresh.push(
44
- queryClient.invalidateQueries({ queryKey: react.arbiQueryKeys.documentVersions(id) }),
45
- queryClient.invalidateQueries({ queryKey: documentTools.documentBytesKey(id) })
46
- );
47
- await Promise.all(refresh);
48
- },
49
- [queryClient, arbi]
50
- );
51
- const ownUpload = react$1.useCallback(
52
- async (request) => {
53
- if (!client) throw new Error("Sign in to save a copy.");
54
- await ensureWorkspaceOpen();
55
- return documentTools.clientUpload(client)(request);
56
- },
57
- [client, ensureWorkspaceOpen]
58
- );
59
- const ownOpenDocument = react$1.useCallback((ref) => openInHost(ref), [openInHost]);
60
- if (!client) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
61
- return /* @__PURE__ */ jsxRuntime.jsx(
62
- documentTools.DocumentToolsProvider,
63
- {
64
- client,
65
- deploymentDomain: host?.deploymentDomain,
66
- user: signer,
67
- notify,
68
- openDocument: host?.openDocument ?? ownOpenDocument,
69
- onDocumentsChanged: host?.onDocumentsChanged ?? ownDocumentsChanged,
70
- uploadDocument: host?.uploadDocument ?? ownUpload,
71
- emailDocument,
72
- certificateUrl: host?.certificateUrl,
73
- children
74
- }
75
- );
76
- }
77
-
78
- // src/connection/viewer/support.ts
79
- var NO_SUPPORT = {};
80
- function useDocumentViewerSupport() {
81
- return chunkMB3S2ETI_cjs.useHost().viewer ?? NO_SUPPORT;
82
- }
83
- var NONE = () => void 0;
84
- var ATTACHED = () => false;
85
- function useViewerStreamingDocument(documentId) {
86
- const useStreaming = useDocumentViewerSupport().useStreamingDocument ?? NONE;
87
- return useStreaming(documentId);
88
- }
89
- function useViewerDraftDocument(draftId) {
90
- const useDraft = useDocumentViewerSupport().useDraftDocument ?? NONE;
91
- return useDraft(draftId);
92
- }
93
- function useViewerPassageCitation() {
94
- const useCitation = useDocumentViewerSupport().usePassageCitation ?? NONE;
95
- return useCitation();
96
- }
97
- function useViewerIsDetached() {
98
- const useDetached = useDocumentViewerSupport().useIsDetached ?? ATTACHED;
99
- return useDetached();
100
- }
101
-
102
- exports.ConnectedDocumentToolsProvider = ConnectedDocumentToolsProvider;
103
- exports.useDocumentViewerSupport = useDocumentViewerSupport;
104
- exports.useViewerDraftDocument = useViewerDraftDocument;
105
- exports.useViewerIsDetached = useViewerIsDetached;
106
- exports.useViewerPassageCitation = useViewerPassageCitation;
107
- exports.useViewerStreamingDocument = useViewerStreamingDocument;
108
- //# sourceMappingURL=chunk-3PEUP4CH.cjs.map
109
- //# sourceMappingURL=chunk-3PEUP4CH.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/connection/viewer/ConnectedDocumentToolsProvider.tsx","../src/connection/viewer/support.ts"],"names":["useOptionalDocumentTools","jsx","Fragment","useArbi","useQueryClient","useHost","useConnectedWorkspace","useBlocksEnvironment","useMemo","useCallback","refreshDocuments","arbiQueryKeys","documentBytesKey","clientUpload","DocumentToolsProvider"],"mappings":"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","file":"chunk-3PEUP4CH.cjs","sourcesContent":["/**\n * The PDF document tools (markup, Freeze, signing, signature requests, productions) on the\n * signed-in session, for any host: the API client, the signed-in user, the host's notices and\n * document opening (`BlocksEnvironment`), and the shared caches a change refreshes. A host with its\n * own binding (its own lists to refresh, an XHR upload with progress, Mail) gives it as the host\n * configuration's `documentTools`, field by field. An enclosing `DocumentToolsProvider` (a dialog\n * with its own client) wins.\n */\n\nimport { useCallback, useMemo, type ReactNode } from 'react'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { arbiQueryKeys, refreshDocuments, useArbi } from '@arbidocs/react'\nimport {\n DocumentToolsProvider,\n clientUpload,\n documentBytesKey,\n useOptionalDocumentTools,\n type DocumentChange,\n type DocumentToolsClient,\n type DocumentToolsEnvironment,\n type DocumentToolsNotify,\n type DocumentUploadRequest,\n} from '@arbidocs/react/document-tools'\nimport { useBlocksEnvironment } from '../../provider/environment'\nimport { useHost } from '../../provider/host'\nimport { useConnectedWorkspace } from '../ConnectionProvider'\n\n/** What a host binds of the document tools itself; each absent field is the kit's own. */\nexport interface DocumentToolsHost {\n /** The API client the tools call. Default: the host `arbi`'s. */\n client?: DocumentToolsClient\n /** The deployment domain keys are derived for (signing). Default: the host `arbi`'s. */\n deploymentDomain?: string\n /** Open a document or a version the tools made. Default: the environment's `openDocument`. */\n openDocument?: (documentRef: string) => void\n /** Refresh the host's lists after a change. Default: the shared document caches. */\n onDocumentsChanged?: DocumentToolsEnvironment['onDocumentsChanged']\n /** Upload a derived copy. Default: through the API client, into the open workspace. */\n uploadDocument?: DocumentToolsEnvironment['uploadDocument']\n /**\n * Where \"View certificate\" goes for a signature `reference` (e.g. the site's own verify page).\n * Default: the certificate link the API returns (on the deployment domain).\n */\n certificateUrl?: (reference: string) => string\n /** Email a document (a hook): absent, or returning nothing, when mail is not offered. */\n useEmailDocument?: () => ((documentRef: string) => void) | undefined\n}\n\nconst NO_EMAIL = () => undefined\n\nexport function ConnectedDocumentToolsProvider({ children }: { children: ReactNode }) {\n const enclosing = useOptionalDocumentTools()\n return enclosing ? <>{children}</> : <OwnDocumentTools>{children}</OwnDocumentTools>\n}\n\nfunction OwnDocumentTools({ children }: { children: ReactNode }) {\n const arbi = useArbi()\n const queryClient = useQueryClient()\n const host = useHost().documentTools\n const { user, ensureWorkspaceOpen } = useConnectedWorkspace()\n const { notify: environmentNotify, openDocument: openInHost } = useBlocksEnvironment()\n const useEmailDocument = host?.useEmailDocument ?? NO_EMAIL\n const emailDocument = useEmailDocument()\n const client = host?.client ?? (arbi.isLoggedIn ? arbi.getClient().fetch : null)\n const signer = useMemo(\n () => (user ? { name: user.name, email: user.email, externalId: user.externalId } : null),\n [user]\n )\n const notify = useCallback<DocumentToolsNotify>(\n (message, kind, options) =>\n environmentNotify(message, kind, {\n description: options?.description,\n action: options?.action,\n }),\n [environmentNotify]\n )\n const ownDocumentsChanged = useCallback(\n async (ids: string[], change: DocumentChange) => {\n // The list carries each version's markup count and the copies; a signature or a saved\n // version is a new current version, with new versions and a new rendered PDF.\n const refresh: Promise<unknown>[] = [refreshDocuments(queryClient, arbi, ids)]\n if (change === 'signed' || change === 'version')\n for (const id of ids)\n refresh.push(\n queryClient.invalidateQueries({ queryKey: arbiQueryKeys.documentVersions(id) }),\n queryClient.invalidateQueries({ queryKey: documentBytesKey(id) })\n )\n await Promise.all(refresh)\n },\n [queryClient, arbi]\n )\n // The server files an upload in the session's open workspace: re-assert it first.\n const ownUpload = useCallback(\n async (request: DocumentUploadRequest) => {\n if (!client) throw new Error('Sign in to save a copy.')\n await ensureWorkspaceOpen()\n return clientUpload(client)(request)\n },\n [client, ensureWorkspaceOpen]\n )\n const ownOpenDocument = useCallback((ref: string) => openInHost(ref), [openInHost])\n if (!client) return <>{children}</>\n return (\n <DocumentToolsProvider\n client={client}\n deploymentDomain={host?.deploymentDomain}\n user={signer}\n notify={notify}\n openDocument={host?.openDocument ?? ownOpenDocument}\n onDocumentsChanged={host?.onDocumentsChanged ?? ownDocumentsChanged}\n uploadDocument={host?.uploadDocument ?? ownUpload}\n emailDocument={emailDocument}\n certificateUrl={host?.certificateUrl}\n >\n {children}\n </DocumentToolsProvider>\n )\n}\n","/**\n * What a host adds to the connected document viewer. The viewer reads documents, versions, PDFs,\n * markup and signatures on the signed-in session by itself; these are the host's own things it\n * cannot know: documents the host makes on the client (an artifact streaming in from a chat, an\n * unsaved draft), the host's dialogs and workflows a document action opens, and how the host lays\n * the viewer out. It is the host configuration's `viewer`. Every field is optional: without one the\n * viewer offers less (no Translate button, no draft controls), never something that does nothing.\n * What changes while the viewer is open is read through hooks (`use…`).\n */\n\nimport type { ReactNode } from 'react'\nimport type { components } from '@arbidocs/client'\nimport { useHost } from '../../provider/host'\n\n/** A document's record, as the viewer reads it. */\nexport type ViewerDocumentRecord = components['schemas']['DocResponse']\n\n/** An artifact being generated in a chat, shown in the viewer as it streams. */\nexport interface ViewerStreamingDocument {\n title?: string | null\n /** The content so far (Markdown, or the html/react source of a live artifact). */\n content: string\n /** How it is carried: a document draft, a live `html` / `react` artifact, an `image`. */\n mode?: string | null\n isComplete: boolean\n}\n\n/** A document the user started on the client, with no backend record until it is saved. */\nexport interface ViewerDraftDocument {\n kind: 'text' | 'audio' | 'photo' | 'video'\n title?: string | null\n /** A text draft's starting content. */\n content?: string | null\n}\n\nexport interface DocumentViewerSupport {\n /** The artifact streaming in as this document, if one is (a hook). */\n useStreamingDocument?: (documentId: string) => ViewerStreamingDocument | undefined\n /** The unsaved draft with this client id, if there is one (a hook). */\n useDraftDocument?: (draftId: string) => ViewerDraftDocument | undefined\n /** A draft's kind (text, photo, audio, video), in place of the tabs. */\n renderDraftKind?: (draftId: string) => ReactNode\n /** A draft's name (editable), in place of the title. */\n renderDraftTitle?: (draftId: string) => ReactNode\n /** The recorder of a photo, audio or video draft: the whole body of the viewer. */\n renderCaptureDraft?: (draftId: string) => ReactNode\n /** A text draft was saved as `documentId`; the viewer shows it next. */\n onDraftSaved?: (draftId: string, documentId: string) => void\n /** The copy of a document kept on this device, for when the network is down. */\n loadOfflineCopy?: (document: ViewerDocumentRecord) => Promise<Blob | undefined>\n /** Documents related to the one open (near duplicates), beside its name. */\n renderRelated?: (document: ViewerDocumentRecord) => ReactNode\n /** A document as a pill (the comparison's other side). Default: its name. */\n renderDocumentPill?: (documentId: string) => ReactNode\n /** Open the host's share dialog for the document. Default: share it with the workspace. */\n share?: (document: { id: string; name: string | undefined; isPrivate: boolean }) => void\n /** Ask the assistant about a version (`doc-…@v2`) open read-only. Absent: not offered. */\n askAboutVersion?: (versionRef: string) => void\n /** Translate the document (or the version) on screen. Absent: not offered. */\n translate?: (documentRef: string) => void\n /** Start an image generation from the image on screen. Absent: not offered. */\n useImageAsReference?: (documentId: string) => void\n /**\n * A citation being edited elsewhere (a fact's sources, a field's) picks its passages in the text\n * view: clicks and selections there are handed to it (a hook). Absent: passages are not pickable.\n */\n usePassageCitation?: () => PassageCitation | undefined\n /** Open the document's passages in the host's navigator (a passage's menu). Absent: not offered. */\n openInNavigator?: (documentId: string) => void\n /** Start a new label or field in the host's editor (the passage tagging panel). Absent: not offered. */\n createTag?: () => void\n /** How dates read (versions, signatures). Default: `fmtDate`. */\n formatDate?: (iso: string) => string\n /** Whether the viewer is shown in another window, where PDF pages render without the page's web\n * fonts (a hook). */\n useIsDetached?: () => boolean\n}\n\n/** A passage picked for a citation: its chunk and, when known, its page. */\nexport interface PickedPassage {\n chunk_id: string\n page?: number\n}\n\n/** The citation a host is editing, as the text view sees it. */\nexport interface PassageCitation {\n /** The citation picking passages now, and the document it picks in; null when none is. */\n active: { documentId: string; key: string | null } | null\n /** Passages to light (a fact's cited passages while its sources are open). */\n highlighted: readonly string[]\n /** Passages added to the citation. */\n pick: (passages: PickedPassage[]) => void\n /** Passages taken off it. */\n unpick: (chunkIds: string[]) => void\n}\n\nconst NO_SUPPORT: DocumentViewerSupport = {}\n\nexport function useDocumentViewerSupport(): DocumentViewerSupport {\n return useHost().viewer ?? NO_SUPPORT\n}\n\nconst NONE = () => undefined\nconst ATTACHED = () => false\n\n/** The artifact streaming in as this document (none without the host's). */\nexport function useViewerStreamingDocument(\n documentId: string\n): ViewerStreamingDocument | undefined {\n const useStreaming = useDocumentViewerSupport().useStreamingDocument ?? NONE\n return useStreaming(documentId)\n}\n\n/** The unsaved draft with this id (none without the host's). */\nexport function useViewerDraftDocument(draftId: string): ViewerDraftDocument | undefined {\n const useDraft = useDocumentViewerSupport().useDraftDocument ?? NONE\n return useDraft(draftId)\n}\n\n/** The citation picking passages (none without the host's). */\nexport function useViewerPassageCitation(): PassageCitation | undefined {\n const useCitation = useDocumentViewerSupport().usePassageCitation ?? NONE\n return useCitation()\n}\n\n/** Whether the viewer is in another window (never without the host's). */\nexport function useViewerIsDetached(): boolean {\n const useDetached = useDocumentViewerSupport().useIsDetached ?? ATTACHED\n return useDetached()\n}\n"]}