@arbidocs/blocks 0.4.141 → 0.4.143

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 (222) hide show
  1. package/dist/agents/index.cjs +440 -436
  2. package/dist/agents/index.js +12 -8
  3. package/dist/chat/index.cjs +139 -138
  4. package/dist/chat/index.js +4 -3
  5. package/dist/{chunk-S24XEVPS.cjs → chunk-464YPRAE.cjs} +33 -2
  6. package/dist/chunk-464YPRAE.cjs.map +1 -0
  7. package/dist/{chunk-7YLJHTDC.cjs → chunk-5A2QQAF5.cjs} +11 -11
  8. package/dist/{chunk-7YLJHTDC.cjs.map → chunk-5A2QQAF5.cjs.map} +1 -1
  9. package/dist/{chunk-ON3TKY5Y.js → chunk-5YHEHEJT.js} +242 -4
  10. package/dist/chunk-5YHEHEJT.js.map +1 -0
  11. package/dist/chunk-76L6LOP3.cjs +308 -0
  12. package/dist/chunk-76L6LOP3.cjs.map +1 -0
  13. package/dist/chunk-AHDJXIUB.cjs +25 -0
  14. package/dist/chunk-AHDJXIUB.cjs.map +1 -0
  15. package/dist/chunk-AOSUHWIL.js +98 -0
  16. package/dist/chunk-AOSUHWIL.js.map +1 -0
  17. package/dist/{chunk-YFF3GTJQ.js → chunk-C44TDH54.js} +14 -1613
  18. package/dist/chunk-C44TDH54.js.map +1 -0
  19. package/dist/{chunk-GFRQG36Y.cjs → chunk-COCGRJLA.cjs} +213 -57
  20. package/dist/chunk-COCGRJLA.cjs.map +1 -0
  21. package/dist/chunk-CQCC7LE7.js +210 -0
  22. package/dist/chunk-CQCC7LE7.js.map +1 -0
  23. package/dist/{chunk-UGCKUXRV.js → chunk-CSI2B2H5.js} +3 -3
  24. package/dist/{chunk-UGCKUXRV.js.map → chunk-CSI2B2H5.js.map} +1 -1
  25. package/dist/{chunk-R26BK7YL.cjs → chunk-DTROMMDX.cjs} +4 -4
  26. package/dist/{chunk-R26BK7YL.cjs.map → chunk-DTROMMDX.cjs.map} +1 -1
  27. package/dist/{chunk-65THHQVB.cjs → chunk-ECW2R2KF.cjs} +27 -27
  28. package/dist/{chunk-65THHQVB.cjs.map → chunk-ECW2R2KF.cjs.map} +1 -1
  29. package/dist/{chunk-RI6DZA5X.js → chunk-EF4ZLKRM.js} +3 -3
  30. package/dist/{chunk-RI6DZA5X.js.map → chunk-EF4ZLKRM.js.map} +1 -1
  31. package/dist/{chunk-WS5EX7DN.cjs → chunk-EYKISBDO.cjs} +5 -5
  32. package/dist/{chunk-WS5EX7DN.cjs.map → chunk-EYKISBDO.cjs.map} +1 -1
  33. package/dist/chunk-FJETR2AS.js +561 -0
  34. package/dist/chunk-FJETR2AS.js.map +1 -0
  35. package/dist/{chunk-JO3EMZ4X.js → chunk-GWSGIZQ5.js} +3 -3
  36. package/dist/{chunk-JO3EMZ4X.js.map → chunk-GWSGIZQ5.js.map} +1 -1
  37. package/dist/{chunk-O6W6RW3B.js → chunk-H4D7WKDY.js} +207 -54
  38. package/dist/chunk-H4D7WKDY.js.map +1 -0
  39. package/dist/{chunk-OAQEUTNJ.cjs → chunk-HAOKT4LC.cjs} +5 -5
  40. package/dist/{chunk-OAQEUTNJ.cjs.map → chunk-HAOKT4LC.cjs.map} +1 -1
  41. package/dist/{chunk-YWY2KIX2.js → chunk-IJST4EBM.js} +13 -9
  42. package/dist/chunk-IJST4EBM.js.map +1 -0
  43. package/dist/{chunk-3RJN2VTL.js → chunk-IXWJGOM2.js} +3 -3
  44. package/dist/{chunk-3RJN2VTL.js.map → chunk-IXWJGOM2.js.map} +1 -1
  45. package/dist/{chunk-CYNF5PZI.js → chunk-J5CWKFSC.js} +3 -3
  46. package/dist/{chunk-CYNF5PZI.js.map → chunk-J5CWKFSC.js.map} +1 -1
  47. package/dist/{chunk-OWCEQKAR.cjs → chunk-JSTKEZBS.cjs} +21 -318
  48. package/dist/chunk-JSTKEZBS.cjs.map +1 -0
  49. package/dist/{chunk-TP6PLDNM.cjs → chunk-KMZWKSKO.cjs} +8 -8
  50. package/dist/{chunk-TP6PLDNM.cjs.map → chunk-KMZWKSKO.cjs.map} +1 -1
  51. package/dist/{chunk-C4WSHRR6.cjs → chunk-KPZZ5FHE.cjs} +32 -12
  52. package/dist/chunk-KPZZ5FHE.cjs.map +1 -0
  53. package/dist/{chunk-CKCBBYTA.js → chunk-KSHKTOY2.js} +5 -205
  54. package/dist/chunk-KSHKTOY2.js.map +1 -0
  55. package/dist/chunk-LJJJ6CYH.cjs +62 -0
  56. package/dist/chunk-LJJJ6CYH.cjs.map +1 -0
  57. package/dist/chunk-LPYEUD2D.cjs +1627 -0
  58. package/dist/chunk-LPYEUD2D.cjs.map +1 -0
  59. package/dist/chunk-MHFF5N65.cjs +101 -0
  60. package/dist/chunk-MHFF5N65.cjs.map +1 -0
  61. package/dist/{chunk-GYAUJ4KT.js → chunk-MTSKK3BN.js} +32 -3
  62. package/dist/chunk-MTSKK3BN.js.map +1 -0
  63. package/dist/chunk-NHZK64TQ.js +75 -0
  64. package/dist/chunk-NHZK64TQ.js.map +1 -0
  65. package/dist/{chunk-BPBSSMRB.js → chunk-NRFAWUVD.js} +3 -3
  66. package/dist/{chunk-BPBSSMRB.js.map → chunk-NRFAWUVD.js.map} +1 -1
  67. package/dist/chunk-NWNVWO6L.cjs +80 -0
  68. package/dist/chunk-NWNVWO6L.cjs.map +1 -0
  69. package/dist/{chunk-CQ4MFKFC.cjs → chunk-O2GW5IY6.cjs} +90 -86
  70. package/dist/chunk-O2GW5IY6.cjs.map +1 -0
  71. package/dist/{chunk-3BFGL2JL.cjs → chunk-ODRHHWHY.cjs} +4 -4
  72. package/dist/{chunk-3BFGL2JL.cjs.map → chunk-ODRHHWHY.cjs.map} +1 -1
  73. package/dist/{chunk-Y3KA6X7B.js → chunk-OVR3XMYL.js} +4 -4
  74. package/dist/{chunk-Y3KA6X7B.js.map → chunk-OVR3XMYL.js.map} +1 -1
  75. package/dist/{chunk-Y5KTM3V5.js → chunk-PDKM27DF.js} +17 -295
  76. package/dist/chunk-PDKM27DF.js.map +1 -0
  77. package/dist/{chunk-OAL3B2ZU.cjs → chunk-PLJ7PHWU.cjs} +5 -5
  78. package/dist/{chunk-OAL3B2ZU.cjs.map → chunk-PLJ7PHWU.cjs.map} +1 -1
  79. package/dist/{chunk-2UUNSHDI.cjs → chunk-RB7GX2VT.cjs} +59 -1682
  80. package/dist/chunk-RB7GX2VT.cjs.map +1 -0
  81. package/dist/chunk-RFIBUWLF.cjs +232 -0
  82. package/dist/chunk-RFIBUWLF.cjs.map +1 -0
  83. package/dist/chunk-RLWIUUQ5.js +23 -0
  84. package/dist/chunk-RLWIUUQ5.js.map +1 -0
  85. package/dist/{chunk-MIDXCYZB.cjs → chunk-RQ2Y7USX.cjs} +15 -235
  86. package/dist/chunk-RQ2Y7USX.cjs.map +1 -0
  87. package/dist/chunk-SV65E4QW.js +58 -0
  88. package/dist/chunk-SV65E4QW.js.map +1 -0
  89. package/dist/{chunk-LYUO3E6V.js → chunk-SZOFGU7W.js} +3 -3
  90. package/dist/{chunk-LYUO3E6V.js.map → chunk-SZOFGU7W.js.map} +1 -1
  91. package/dist/chunk-T5B7FM7S.js +1602 -0
  92. package/dist/chunk-T5B7FM7S.js.map +1 -0
  93. package/dist/{chunk-YNIBUKV5.js → chunk-TBEVGWY3.js} +32 -14
  94. package/dist/chunk-TBEVGWY3.js.map +1 -0
  95. package/dist/{chunk-MJCCBMM5.cjs → chunk-TC3RQNEX.cjs} +6 -80
  96. package/dist/chunk-TC3RQNEX.cjs.map +1 -0
  97. package/dist/chunk-TZGBRLPK.js +288 -0
  98. package/dist/chunk-TZGBRLPK.js.map +1 -0
  99. package/dist/chunk-U6YVZDOV.cjs +574 -0
  100. package/dist/chunk-U6YVZDOV.cjs.map +1 -0
  101. package/dist/{chunk-QIMVTGKS.cjs → chunk-U73KPFYH.cjs} +255 -2
  102. package/dist/chunk-U73KPFYH.cjs.map +1 -0
  103. package/dist/{chunk-HFGXA5CL.cjs → chunk-UTTTJSQU.cjs} +4 -4
  104. package/dist/{chunk-HFGXA5CL.cjs.map → chunk-UTTTJSQU.cjs.map} +1 -1
  105. package/dist/{chunk-DLBUFHLY.js → chunk-VTTZZ4FN.js} +4 -74
  106. package/dist/chunk-VTTZZ4FN.js.map +1 -0
  107. package/dist/{chunk-5FTIHRZH.cjs → chunk-XVUOMWMD.cjs} +4 -4
  108. package/dist/{chunk-5FTIHRZH.cjs.map → chunk-XVUOMWMD.cjs.map} +1 -1
  109. package/dist/{chunk-3ZYOASAX.js → chunk-Y4ATWQGV.js} +3 -3
  110. package/dist/{chunk-3ZYOASAX.js.map → chunk-Y4ATWQGV.js.map} +1 -1
  111. package/dist/{chunk-444XKG46.js → chunk-YKQ2DPIP.js} +3 -3
  112. package/dist/{chunk-444XKG46.js.map → chunk-YKQ2DPIP.js.map} +1 -1
  113. package/dist/{chunk-HEMU73OP.cjs → chunk-YSHIC4NJ.cjs} +4 -4
  114. package/dist/{chunk-HEMU73OP.cjs.map → chunk-YSHIC4NJ.cjs.map} +1 -1
  115. package/dist/{chunk-5BXEYYH6.js → chunk-ZM26YEOT.js} +3 -3
  116. package/dist/{chunk-5BXEYYH6.js.map → chunk-ZM26YEOT.js.map} +1 -1
  117. package/dist/citations/index.cjs +12 -12
  118. package/dist/citations/index.js +3 -3
  119. package/dist/connect/docx.cjs +36 -7
  120. package/dist/connect/docx.cjs.map +1 -1
  121. package/dist/connect/docx.d.ts +9 -2
  122. package/dist/connect/docx.js +30 -6
  123. package/dist/connect/docx.js.map +1 -1
  124. package/dist/connect/index.cjs +805 -630
  125. package/dist/connect/index.cjs.map +1 -1
  126. package/dist/connect/index.d.ts +2 -0
  127. package/dist/connect/index.js +639 -509
  128. package/dist/connect/index.js.map +1 -1
  129. package/dist/connection/ConnectedSettings.d.ts +3 -2
  130. package/dist/connection/docx/ConnectedNativeDocxComparison.d.ts +5 -0
  131. package/dist/connection/docx/ConnectedNativeDocxEditor.d.ts +16 -0
  132. package/dist/connection/{ConnectedStreamedWordArtifact.d.ts → docx/ConnectedStreamedWordArtifact.d.ts} +1 -1
  133. package/dist/connection/docx/support.d.ts +27 -0
  134. package/dist/connection/docx/useConnectedDocxReferences.d.ts +2 -0
  135. package/dist/connection/docx/useConnectedHouseTemplate.d.ts +2 -0
  136. package/dist/connection/settings-page/ConnectedAccountSettings.d.ts +35 -0
  137. package/dist/connection/settings-page/ConnectedMailSettings.d.ts +13 -0
  138. package/dist/connection/settings-page/ConnectedPremiumModels.d.ts +1 -0
  139. package/dist/connection/settings-page/ConnectedPrivacySettings.d.ts +12 -0
  140. package/dist/connection/settings-page/ConnectedSettingsPage.d.ts +29 -0
  141. package/dist/connection/settings-page/SessionStatusIcon.d.ts +7 -0
  142. package/dist/connection/settings-page/index.d.ts +6 -0
  143. package/dist/docx/index.cjs +17 -63
  144. package/dist/docx/index.cjs.map +1 -1
  145. package/dist/docx/index.d.ts +1 -0
  146. package/dist/docx/index.js +2 -64
  147. package/dist/docx/index.js.map +1 -1
  148. package/dist/docx/template/candidates.d.ts +16 -0
  149. package/dist/facts/index.cjs +4 -4
  150. package/dist/facts/index.js +3 -3
  151. package/dist/files/index.cjs +3 -3
  152. package/dist/files/index.js +2 -2
  153. package/dist/home/index.cjs +20 -20
  154. package/dist/home/index.js +4 -4
  155. package/dist/index.cjs +793 -755
  156. package/dist/index.cjs.map +1 -1
  157. package/dist/index.d.ts +2 -0
  158. package/dist/index.js +25 -19
  159. package/dist/index.js.map +1 -1
  160. package/dist/lib/deep-link.d.ts +46 -0
  161. package/dist/lib/sidebar-mode.d.ts +1 -3
  162. package/dist/lib/use-close-on-escape.d.ts +6 -0
  163. package/dist/provider/BlocksProvider.d.ts +5 -1
  164. package/dist/provider/settings-section.d.ts +9 -0
  165. package/dist/retrieval/index.cjs +4 -4
  166. package/dist/retrieval/index.js +2 -2
  167. package/dist/settings/AppearanceSettings.d.ts +18 -0
  168. package/dist/settings/ServerConnectionControls.d.ts +16 -0
  169. package/dist/settings/SettingsPage.d.ts +31 -0
  170. package/dist/settings/index.cjs +189 -251
  171. package/dist/settings/index.cjs.map +1 -1
  172. package/dist/settings/index.d.ts +3 -1
  173. package/dist/settings/index.js +89 -200
  174. package/dist/settings/index.js.map +1 -1
  175. package/dist/shell/ShellSidebar.d.ts +37 -0
  176. package/dist/shell/Sidebar.d.ts +6 -6
  177. package/dist/shell/index.cjs +63 -50
  178. package/dist/shell/index.d.ts +4 -1
  179. package/dist/shell/index.js +5 -4
  180. package/dist/shell/types.d.ts +18 -0
  181. package/dist/shell/use-sidebar-controller.d.ts +59 -0
  182. package/dist/site/index.cjs +74 -73
  183. package/dist/site/index.js +3 -2
  184. package/dist/studio/index.cjs +80 -78
  185. package/dist/studio/index.cjs.map +1 -1
  186. package/dist/studio/index.js +10 -8
  187. package/dist/studio/index.js.map +1 -1
  188. package/dist/workflow-canvas/index.cjs +64 -60
  189. package/dist/workflow-canvas/index.cjs.map +1 -1
  190. package/dist/workflow-canvas/index.js +12 -8
  191. package/dist/workflow-canvas/index.js.map +1 -1
  192. package/dist/workspaces/index.cjs +3 -3
  193. package/dist/workspaces/index.js +2 -2
  194. package/node_modules/@arbidocs/coedit/package.json +1 -1
  195. package/package.json +4 -4
  196. package/dist/chunk-2UUNSHDI.cjs.map +0 -1
  197. package/dist/chunk-4TR5QCCX.cjs +0 -43
  198. package/dist/chunk-4TR5QCCX.cjs.map +0 -1
  199. package/dist/chunk-7NDW4KF4.cjs +0 -112
  200. package/dist/chunk-7NDW4KF4.cjs.map +0 -1
  201. package/dist/chunk-C4WSHRR6.cjs.map +0 -1
  202. package/dist/chunk-CKCBBYTA.js.map +0 -1
  203. package/dist/chunk-CQ4MFKFC.cjs.map +0 -1
  204. package/dist/chunk-DLBUFHLY.js.map +0 -1
  205. package/dist/chunk-ETXYVO6E.js +0 -109
  206. package/dist/chunk-ETXYVO6E.js.map +0 -1
  207. package/dist/chunk-GFRQG36Y.cjs.map +0 -1
  208. package/dist/chunk-GYAUJ4KT.js.map +0 -1
  209. package/dist/chunk-MCKOZACC.js +0 -41
  210. package/dist/chunk-MCKOZACC.js.map +0 -1
  211. package/dist/chunk-MIDXCYZB.cjs.map +0 -1
  212. package/dist/chunk-MJCCBMM5.cjs.map +0 -1
  213. package/dist/chunk-O6W6RW3B.js.map +0 -1
  214. package/dist/chunk-ON3TKY5Y.js.map +0 -1
  215. package/dist/chunk-OWCEQKAR.cjs.map +0 -1
  216. package/dist/chunk-QIMVTGKS.cjs.map +0 -1
  217. package/dist/chunk-S24XEVPS.cjs.map +0 -1
  218. package/dist/chunk-Y5KTM3V5.js.map +0 -1
  219. package/dist/chunk-YFF3GTJQ.js.map +0 -1
  220. package/dist/chunk-YNIBUKV5.js.map +0 -1
  221. package/dist/chunk-YWY2KIX2.js.map +0 -1
  222. package/dist/connection/ConnectedNativeDocxEditor.d.ts +0 -6
@@ -3,26 +3,30 @@
3
3
 
4
4
  var chunkJZNXRMLH_cjs = require('../chunk-JZNXRMLH.cjs');
5
5
  var chunkGFNELPDP_cjs = require('../chunk-GFNELPDP.cjs');
6
- var chunkCQ4MFKFC_cjs = require('../chunk-CQ4MFKFC.cjs');
7
- var chunk2UUNSHDI_cjs = require('../chunk-2UUNSHDI.cjs');
8
- require('../chunk-WS5EX7DN.cjs');
9
- require('../chunk-MIDXCYZB.cjs');
6
+ var chunkO2GW5IY6_cjs = require('../chunk-O2GW5IY6.cjs');
7
+ var chunkRB7GX2VT_cjs = require('../chunk-RB7GX2VT.cjs');
8
+ require('../chunk-RFIBUWLF.cjs');
9
+ var chunkLPYEUD2D_cjs = require('../chunk-LPYEUD2D.cjs');
10
+ require('../chunk-EYKISBDO.cjs');
11
+ require('../chunk-AHDJXIUB.cjs');
12
+ require('../chunk-RQ2Y7USX.cjs');
10
13
  require('../chunk-ZW6FPIFC.cjs');
11
14
  require('../chunk-3AFWGEDJ.cjs');
12
15
  require('../chunk-DVUZTGVL.cjs');
13
16
  require('../chunk-DETZZBG2.cjs');
14
- require('../chunk-R26BK7YL.cjs');
17
+ require('../chunk-DTROMMDX.cjs');
15
18
  require('../chunk-V4ISCZJ7.cjs');
16
19
  require('../chunk-2EI7NCUA.cjs');
17
20
  require('../chunk-C2CWWEHO.cjs');
18
- var chunkOWCEQKAR_cjs = require('../chunk-OWCEQKAR.cjs');
21
+ require('../chunk-7RGLTF76.cjs');
22
+ var chunkJSTKEZBS_cjs = require('../chunk-JSTKEZBS.cjs');
23
+ var chunk76L6LOP3_cjs = require('../chunk-76L6LOP3.cjs');
19
24
  require('../chunk-7UTB4PHM.cjs');
20
25
  var chunk32HW2Q33_cjs = require('../chunk-32HW2Q33.cjs');
21
26
  require('../chunk-FX3K6LNZ.cjs');
22
- require('../chunk-7RGLTF76.cjs');
23
27
  require('../chunk-PPCATBOY.cjs');
24
28
  require('../chunk-MHVNT4J3.cjs');
25
- var chunkC4WSHRR6_cjs = require('../chunk-C4WSHRR6.cjs');
29
+ var chunkKPZZ5FHE_cjs = require('../chunk-KPZZ5FHE.cjs');
26
30
  require('../chunk-ULWRNGGE.cjs');
27
31
  require('../chunk-KDG6FER6.cjs');
28
32
  require('../chunk-DES3K4SD.cjs');
@@ -49,11 +53,11 @@ function withSteps(workflow, steps, layout) {
49
53
  const run = workflow.run.kind === "steps" ? workflow.run : { kind: "steps", steps: [] };
50
54
  return {
51
55
  ...workflow,
52
- run: { ...run, steps: chunkOWCEQKAR_cjs.orderSteps(steps), layout: layout ?? run.layout }
56
+ run: { ...run, steps: chunkJSTKEZBS_cjs.orderSteps(steps), layout: layout ?? run.layout }
53
57
  };
54
58
  }
55
59
  var layoutOf = (workflow) => workflow.run.kind === "steps" && workflow.run.layout || {};
56
- var explicit = (steps) => steps.map((s) => ({ ...s, after: chunkOWCEQKAR_cjs.stepDependencies(steps, s.id) }));
60
+ var explicit = (steps) => steps.map((s) => ({ ...s, after: chunkJSTKEZBS_cjs.stepDependencies(steps, s.id) }));
57
61
  function stepIdFor(steps, title) {
58
62
  const base = title.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").replace(/^[^a-z]+/, "") || "step";
59
63
  const taken = new Set(steps.map((s) => s.id));
@@ -100,7 +104,7 @@ function blankStep(kind, id, title) {
100
104
  }
101
105
  }
102
106
  function addStep(workflow, kind, options = {}) {
103
- const steps = explicit(chunkOWCEQKAR_cjs.workflowSteps(workflow));
107
+ const steps = explicit(chunkJSTKEZBS_cjs.workflowSteps(workflow));
104
108
  const title = options.title ?? DEFAULT_TITLES[kind];
105
109
  const id = stepIdFor(steps, title);
106
110
  const step = { ...blankStep(kind, id, title), after: options.after ? [options.after] : [] };
@@ -109,7 +113,7 @@ function addStep(workflow, kind, options = {}) {
109
113
  return { workflow: withSteps(workflow, [...steps, step], layout), id };
110
114
  }
111
115
  function removeStep(workflow, id) {
112
- const steps = explicit(chunkOWCEQKAR_cjs.workflowSteps(workflow));
116
+ const steps = explicit(chunkJSTKEZBS_cjs.workflowSteps(workflow));
113
117
  const removed = steps.find((s) => s.id === id);
114
118
  if (!removed) return workflow;
115
119
  const bridged = steps.filter((s) => s.id !== id).map(
@@ -122,8 +126,8 @@ function removeStep(workflow, id) {
122
126
  return withSteps(workflow, bridged, layout);
123
127
  }
124
128
  function connectSteps(workflow, from, to) {
125
- const steps = explicit(chunkOWCEQKAR_cjs.workflowSteps(workflow));
126
- if (from === to || !steps.some((s) => s.id === from) || chunkOWCEQKAR_cjs.dependsOn(steps, from, to)) {
129
+ const steps = explicit(chunkJSTKEZBS_cjs.workflowSteps(workflow));
130
+ if (from === to || !steps.some((s) => s.id === from) || chunkJSTKEZBS_cjs.dependsOn(steps, from, to)) {
127
131
  return workflow;
128
132
  }
129
133
  return withSteps(
@@ -133,16 +137,16 @@ function connectSteps(workflow, from, to) {
133
137
  )
134
138
  );
135
139
  }
136
- var wouldCycle = (workflow, from, to) => from === to || chunkOWCEQKAR_cjs.dependsOn(chunkOWCEQKAR_cjs.workflowSteps(workflow), from, to);
140
+ var wouldCycle = (workflow, from, to) => from === to || chunkJSTKEZBS_cjs.dependsOn(chunkJSTKEZBS_cjs.workflowSteps(workflow), from, to);
137
141
  function disconnectSteps(workflow, from, to) {
138
- const steps = explicit(chunkOWCEQKAR_cjs.workflowSteps(workflow));
142
+ const steps = explicit(chunkJSTKEZBS_cjs.workflowSteps(workflow));
139
143
  return withSteps(
140
144
  workflow,
141
145
  steps.map((s) => s.id === to ? { ...s, after: (s.after ?? []).filter((d) => d !== from) } : s)
142
146
  );
143
147
  }
144
148
  function updateStep(workflow, id, patch) {
145
- const steps = explicit(chunkOWCEQKAR_cjs.workflowSteps(workflow));
149
+ const steps = explicit(chunkJSTKEZBS_cjs.workflowSteps(workflow));
146
150
  return withSteps(
147
151
  workflow,
148
152
  steps.map(
@@ -156,7 +160,7 @@ var renameIn = (text, from, to) => text.replace(
156
160
  );
157
161
  function renameInput(workflow, from, to) {
158
162
  if (from === to) return workflow;
159
- const steps = chunkOWCEQKAR_cjs.workflowSteps(workflow).map((s) => {
163
+ const steps = chunkJSTKEZBS_cjs.workflowSteps(workflow).map((s) => {
160
164
  if (s.kind === "agent")
161
165
  return {
162
166
  ...s,
@@ -205,13 +209,13 @@ function renameInput(workflow, from, to) {
205
209
  var renamePerson = (a, from, to) => "input" in a && a.input === from ? { input: to } : a;
206
210
  var renameRef = (r, from, to) => "input" in r && r.input === from ? { input: to } : r;
207
211
  function moveStep(workflow, id, position) {
208
- return withSteps(workflow, chunkOWCEQKAR_cjs.workflowSteps(workflow), { ...layoutOf(workflow), [id]: position });
212
+ return withSteps(workflow, chunkJSTKEZBS_cjs.workflowSteps(workflow), { ...layoutOf(workflow), [id]: position });
209
213
  }
210
214
  var COLUMN = 300;
211
215
  var ROW = 140;
212
216
  function autoLayout(steps) {
213
217
  const layout = {};
214
- chunkOWCEQKAR_cjs.stepLevels(steps).forEach(
218
+ chunkJSTKEZBS_cjs.stepLevels(steps).forEach(
215
219
  (level, x) => level.forEach((s, y) => {
216
220
  layout[s.id] = { x: x * COLUMN, y: (y - (level.length - 1) / 2) * ROW };
217
221
  })
@@ -219,7 +223,7 @@ function autoLayout(steps) {
219
223
  return layout;
220
224
  }
221
225
  function layoutWithDefaults(workflow) {
222
- const auto = autoLayout(chunkOWCEQKAR_cjs.workflowSteps(workflow));
226
+ const auto = autoLayout(chunkJSTKEZBS_cjs.workflowSteps(workflow));
223
227
  return { ...auto, ...layoutOf(workflow) };
224
228
  }
225
229
  var DEFAULT_SIGNALS_EDITOR_LABELS = {
@@ -316,9 +320,9 @@ function SignalsEditor({
316
320
  {
317
321
  className: ui.cn(
318
322
  "space-y-1.5 rounded-md border p-2",
319
- chunk2UUNSHDI_cjs.isIncompleteSignal(signal) ? "border-destructive/50" : "border-border"
323
+ chunkRB7GX2VT_cjs.isIncompleteSignal(signal) ? "border-destructive/50" : "border-border"
320
324
  ),
321
- "data-incomplete": chunk2UUNSHDI_cjs.isIncompleteSignal(signal) || void 0,
325
+ "data-incomplete": chunkRB7GX2VT_cjs.isIncompleteSignal(signal) || void 0,
322
326
  "data-testid": `${testId}-${i}`,
323
327
  children: [
324
328
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
@@ -1147,7 +1151,7 @@ function StepInspector({
1147
1151
  }) {
1148
1152
  const l = { ...DEFAULT_STEP_INSPECTOR_LABELS, ...labels };
1149
1153
  const ol = { ...DEFAULT_FIELD_OPTIONS_EDITOR_LABELS, ...optionLabels };
1150
- const steps = chunkOWCEQKAR_cjs.workflowSteps(workflow);
1154
+ const steps = chunkJSTKEZBS_cjs.workflowSteps(workflow);
1151
1155
  const step = steps.find((s) => s.id === stepId);
1152
1156
  const run = workflow.run.kind === "steps" ? workflow.run : void 0;
1153
1157
  if (!step || !run) {
@@ -1174,8 +1178,8 @@ function StepInspector({
1174
1178
  const patch = (p) => onChange(updateStep(workflow, step.id, p));
1175
1179
  const al = { ...DEFAULT_STEP_ACTION_SETTINGS_LABELS, ...actionLabels };
1176
1180
  const ctx = {
1177
- earlier: chunkOWCEQKAR_cjs.upstreamSteps(steps, step.id),
1178
- fields: chunkOWCEQKAR_cjs.runFields(workflow),
1181
+ earlier: chunkJSTKEZBS_cjs.upstreamSteps(steps, step.id),
1182
+ fields: chunkJSTKEZBS_cjs.runFields(workflow),
1179
1183
  people,
1180
1184
  tags,
1181
1185
  documents
@@ -1196,7 +1200,7 @@ function StepInspector({
1196
1200
  )
1197
1201
  );
1198
1202
  };
1199
- const deps = chunkOWCEQKAR_cjs.stepDependencies(steps, step.id);
1203
+ const deps = chunkJSTKEZBS_cjs.stepDependencies(steps, step.id);
1200
1204
  const titleOf = (id) => steps.find((s) => s.id === id)?.title ?? id;
1201
1205
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", "data-testid": `${testId}-step`, children: [
1202
1206
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-2", children: [
@@ -1277,7 +1281,7 @@ function StepInspector({
1277
1281
  {
1278
1282
  step,
1279
1283
  workflows,
1280
- fields: chunkOWCEQKAR_cjs.runFields(workflow).map((f) => f.name),
1284
+ fields: chunkJSTKEZBS_cjs.runFields(workflow).map((f) => f.name),
1281
1285
  patch,
1282
1286
  l,
1283
1287
  testId
@@ -1338,7 +1342,7 @@ function StepInspector({
1338
1342
  testId: `${testId}-review-grid`
1339
1343
  }
1340
1344
  ),
1341
- chunkOWCEQKAR_cjs.canAssign(step) && /* @__PURE__ */ jsxRuntime.jsx(AssigneeSettings, { step, patch, ctx, l: al, testId }),
1345
+ chunkJSTKEZBS_cjs.canAssign(step) && /* @__PURE__ */ jsxRuntime.jsx(AssigneeSettings, { step, patch, ctx, l: al, testId }),
1342
1346
  /* @__PURE__ */ jsxRuntime.jsx(
1343
1347
  SignalsEditor,
1344
1348
  {
@@ -1604,7 +1608,7 @@ function triggerFields(trigger, clearOthers) {
1604
1608
  return {
1605
1609
  timezone: trigger.timezone,
1606
1610
  rrule: trigger.start === "repeat" ? trigger.rrule.trim() : none,
1607
- run_at: trigger.start === "once" ? chunkCQ4MFKFC_cjs.localInputToIso(trigger.runAt) : none,
1611
+ run_at: trigger.start === "once" ? chunkO2GW5IY6_cjs.localInputToIso(trigger.runAt) : none,
1608
1612
  event_kind: trigger.start === "event" ? trigger.eventKind.trim() : none,
1609
1613
  // A step signal is `workflow_signal` narrowed to one signal name.
1610
1614
  event_filter: filter ?? none,
@@ -1620,7 +1624,7 @@ function plan(value, options) {
1620
1624
  criteria: [],
1621
1625
  max_passes: 3,
1622
1626
  documents: [],
1623
- steps: chunk2UUNSHDI_cjs.toPlanSteps(value.workflow, options)
1627
+ steps: chunkRB7GX2VT_cjs.toPlanSteps(value.workflow, options)
1624
1628
  };
1625
1629
  }
1626
1630
  function builderToWorkflowRequest(value, workspaceId, options = {}) {
@@ -1655,7 +1659,7 @@ function builderToWorkflowUpdate(value, options = {}) {
1655
1659
  }
1656
1660
  function workflowRecordToBuilder(record) {
1657
1661
  const planned = record.plan?.steps ?? [];
1658
- const steps = planned.length ? chunk2UUNSHDI_cjs.fromPlanSteps(planned) : record.prompt || record.skill_ref ? [
1662
+ const steps = planned.length ? chunkRB7GX2VT_cjs.fromPlanSteps(planned) : record.prompt || record.skill_ref ? [
1659
1663
  {
1660
1664
  id: "work",
1661
1665
  kind: "agent",
@@ -1663,7 +1667,7 @@ function workflowRecordToBuilder(record) {
1663
1667
  ...record.skill_ref ? { workflow: record.skill_ref } : { run: { kind: "prompt", promptTemplate: record.prompt } }
1664
1668
  }
1665
1669
  ] : [];
1666
- const when = chunkCQ4MFKFC_cjs.workflowWhen(record);
1670
+ const when = chunkO2GW5IY6_cjs.workflowWhen(record);
1667
1671
  return {
1668
1672
  workflow: {
1669
1673
  id: record.external_id,
@@ -1672,12 +1676,12 @@ function workflowRecordToBuilder(record) {
1672
1676
  inputs: [],
1673
1677
  landing: "chat",
1674
1678
  schedulable: false,
1675
- run: { kind: "steps", steps, layout: chunk2UUNSHDI_cjs.layoutFromPlanSteps(planned ?? []) }
1679
+ run: { kind: "steps", steps, layout: chunkRB7GX2VT_cjs.layoutFromPlanSteps(planned ?? []) }
1676
1680
  },
1677
1681
  trigger: {
1678
1682
  ...DEFAULT_WORKFLOW_TRIGGER,
1679
1683
  start: when === "now" ? "manual" : when,
1680
- runAt: chunkCQ4MFKFC_cjs.isoToLocalInput(record.run_at),
1684
+ runAt: chunkO2GW5IY6_cjs.isoToLocalInput(record.run_at),
1681
1685
  rrule: record.rrule ?? "",
1682
1686
  timezone: record.timezone || DEFAULT_WORKFLOW_TRIGGER.timezone,
1683
1687
  eventKind: record.event_kind ?? "",
@@ -1733,7 +1737,7 @@ function triggerSummary(trigger, options = {}) {
1733
1737
  case "once":
1734
1738
  return trigger.runAt ? new Date(trigger.runAt).toLocaleString() : l.starts.once;
1735
1739
  case "repeat":
1736
- return trigger.rrule ? chunkCQ4MFKFC_cjs.describeRRule(trigger.rrule) : l.starts.repeat;
1740
+ return trigger.rrule ? chunkO2GW5IY6_cjs.describeRRule(trigger.rrule) : l.starts.repeat;
1737
1741
  case "event":
1738
1742
  if (isSignalTrigger(trigger))
1739
1743
  return trigger.signal ? l.signalSummary.replace("{signal}", trigger.signal) : l.stepSignals;
@@ -1792,7 +1796,7 @@ function TriggerInspector({
1792
1796
  }
1793
1797
  )
1794
1798
  ] }),
1795
- trigger.start === "repeat" && /* @__PURE__ */ jsxRuntime.jsx(chunkCQ4MFKFC_cjs.RecurrenceBuilder, { rrule: trigger.rrule, onChange: (rrule) => set({ rrule }) }),
1799
+ trigger.start === "repeat" && /* @__PURE__ */ jsxRuntime.jsx(chunkO2GW5IY6_cjs.RecurrenceBuilder, { rrule: trigger.rrule, onChange: (rrule) => set({ rrule }) }),
1796
1800
  trigger.start === "event" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
1797
1801
  /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { className: "text-xs", children: l.event }),
1798
1802
  /* @__PURE__ */ jsxRuntime.jsxs(
@@ -1844,7 +1848,7 @@ function TriggerInspector({
1844
1848
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
1845
1849
  /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { className: "text-xs", children: l.agent }),
1846
1850
  /* @__PURE__ */ jsxRuntime.jsx(
1847
- chunk2UUNSHDI_cjs.AgentSelect,
1851
+ chunkLPYEUD2D_cjs.AgentSelect,
1848
1852
  {
1849
1853
  agents,
1850
1854
  value: trigger.agentId,
@@ -1912,7 +1916,7 @@ function revealCenter(node, view, frame, reserveRight = 0) {
1912
1916
  };
1913
1917
  }
1914
1918
  var DEFAULT_WORKFLOW_CANVAS_LABELS = {
1915
- ...chunkOWCEQKAR_cjs.DEFAULT_STEP_KIND_LABELS,
1919
+ ...chunkJSTKEZBS_cjs.DEFAULT_STEP_KIND_LABELS,
1916
1920
  redline: "Tracked changes",
1917
1921
  branch: "Branch",
1918
1922
  kindHints: {
@@ -1943,7 +1947,7 @@ var DEFAULT_WORKFLOW_CANVAS_LABELS = {
1943
1947
  fitView: "Fit view"
1944
1948
  };
1945
1949
  var TRIGGER_NODE = "__trigger";
1946
- var KINDS = chunkOWCEQKAR_cjs.WORKFLOW_STEP_KINDS;
1950
+ var KINDS = chunkJSTKEZBS_cjs.WORKFLOW_STEP_KINDS;
1947
1951
  function AddNext({
1948
1952
  from,
1949
1953
  onAdd,
@@ -1965,7 +1969,7 @@ function AddNext({
1965
1969
  /* @__PURE__ */ jsxRuntime.jsxs(ui.PopoverContent, { side: "right", align: "start", className: "w-60 p-1.5", children: [
1966
1970
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-2 pb-1 pt-0.5 text-xs font-medium text-muted-foreground", children: l.addNext }),
1967
1971
  KINDS.map((kind) => {
1968
- const Icon = chunkOWCEQKAR_cjs.STEP_KIND_ICONS[kind];
1972
+ const Icon = chunkJSTKEZBS_cjs.STEP_KIND_ICONS[kind];
1969
1973
  return /* @__PURE__ */ jsxRuntime.jsxs(
1970
1974
  "button",
1971
1975
  {
@@ -2004,8 +2008,8 @@ function PhaseMark({ phase }) {
2004
2008
  }
2005
2009
  function StepNode({ data }) {
2006
2010
  const { step, phase, summary, assignee, icon, l, onAdd, testId } = data;
2007
- const kind = chunkOWCEQKAR_cjs.stepKindOf(step);
2008
- const KindIcon = chunkOWCEQKAR_cjs.STEP_KIND_ICONS[kind];
2011
+ const kind = chunkJSTKEZBS_cjs.stepKindOf(step);
2012
+ const KindIcon = chunkJSTKEZBS_cjs.STEP_KIND_ICONS[kind];
2009
2013
  const redline = step.kind === "agent" && !!step.editDocument;
2010
2014
  return /* @__PURE__ */ jsxRuntime.jsxs(
2011
2015
  "div",
@@ -2139,12 +2143,12 @@ function WorkflowCanvas({
2139
2143
  testId = "workflow-canvas"
2140
2144
  }) {
2141
2145
  const l = react.useMemo(() => ({ ...DEFAULT_WORKFLOW_CANVAS_LABELS, ...labels }), [labels]);
2142
- const steps = chunkOWCEQKAR_cjs.workflowSteps(workflow);
2146
+ const steps = chunkJSTKEZBS_cjs.workflowSteps(workflow);
2143
2147
  const editable = !!onChange;
2144
2148
  const built = react.useMemo(() => {
2145
2149
  const layout = layoutWithDefaults(workflow);
2146
- const all = chunkOWCEQKAR_cjs.workflowSteps(workflow);
2147
- const roots = all.filter((s) => chunkOWCEQKAR_cjs.stepDependencies(all, s.id).length === 0);
2150
+ const all = chunkJSTKEZBS_cjs.workflowSteps(workflow);
2151
+ const roots = all.filter((s) => chunkJSTKEZBS_cjs.stepDependencies(all, s.id).length === 0);
2148
2152
  const triggerNode = trigger ? [
2149
2153
  {
2150
2154
  id: TRIGGER_NODE,
@@ -2193,7 +2197,7 @@ function WorkflowCanvas({
2193
2197
  react.useEffect(() => setNodes(built), [built]);
2194
2198
  const edges = react.useMemo(
2195
2199
  () => steps.flatMap((s) => {
2196
- const deps = chunkOWCEQKAR_cjs.stepDependencies(steps, s.id);
2200
+ const deps = chunkJSTKEZBS_cjs.stepDependencies(steps, s.id);
2197
2201
  const from = deps.length ? deps : trigger ? [TRIGGER_NODE] : [];
2198
2202
  return from.map((d) => ({
2199
2203
  id: `${d}->${s.id}`,
@@ -2363,7 +2367,7 @@ function WorkflowCanvas({
2363
2367
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-semibold", children: l.emptyTitle }),
2364
2368
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: l.emptyHint }),
2365
2369
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3 grid grid-cols-2 gap-2", children: KINDS.map((kind) => {
2366
- const Icon = chunkOWCEQKAR_cjs.STEP_KIND_ICONS[kind];
2370
+ const Icon = chunkJSTKEZBS_cjs.STEP_KIND_ICONS[kind];
2367
2371
  return /* @__PURE__ */ jsxRuntime.jsxs(
2368
2372
  "button",
2369
2373
  {
@@ -2413,7 +2417,7 @@ var DEFAULT_WORKFLOW_BUILDER_LABELS = {
2413
2417
  }
2414
2418
  };
2415
2419
  var PANEL_WIDTH = 344;
2416
- var KINDS2 = chunkOWCEQKAR_cjs.WORKFLOW_STEP_KINDS;
2420
+ var KINDS2 = chunkJSTKEZBS_cjs.WORKFLOW_STEP_KINDS;
2417
2421
  function WorkflowBuilder({
2418
2422
  value,
2419
2423
  onChange,
@@ -2445,12 +2449,12 @@ function WorkflowBuilder({
2445
2449
  const [mode, setMode] = react.useState("design");
2446
2450
  const [adding, setAdding] = react.useState(false);
2447
2451
  const { workflow, trigger } = value;
2448
- const steps = chunkOWCEQKAR_cjs.workflowSteps(workflow);
2449
- const problems = chunkOWCEQKAR_cjs.validateWorkflowGraph(steps);
2450
- const missing = chunkOWCEQKAR_cjs.stepConfigProblems(steps);
2452
+ const steps = chunkJSTKEZBS_cjs.workflowSteps(workflow);
2453
+ const problems = chunkJSTKEZBS_cjs.validateWorkflowGraph(steps);
2454
+ const missing = chunkJSTKEZBS_cjs.stepConfigProblems(steps);
2451
2455
  const nameOf = (id) => people.find((p) => p.value === id)?.label;
2452
- const fields = chunkOWCEQKAR_cjs.runFields(workflow);
2453
- const assigneeOf = (step) => chunkOWCEQKAR_cjs.canAssign(step) ? chunkOWCEQKAR_cjs.assigneeName(step.assignee, { nameOf, fields }) : void 0;
2456
+ const fields = chunkJSTKEZBS_cjs.runFields(workflow);
2457
+ const assigneeOf = (step) => chunkJSTKEZBS_cjs.canAssign(step) ? chunkJSTKEZBS_cjs.assigneeName(step.assignee, { nameOf, fields }) : void 0;
2454
2458
  const titles = react.useMemo(() => new Map(workflows.map((w) => [w.id, w.title])), [workflows]);
2455
2459
  const setWorkflow = (next) => onChange({ ...value, workflow: next });
2456
2460
  const addAfter = (from, kind) => {
@@ -2519,7 +2523,7 @@ function WorkflowBuilder({
2519
2523
  l.addStep
2520
2524
  ] }) }),
2521
2525
  /* @__PURE__ */ jsxRuntime.jsx(ui.PopoverContent, { align: "start", className: "w-64 p-1.5", children: KINDS2.map((kind) => {
2522
- const Icon = chunkOWCEQKAR_cjs.STEP_KIND_ICONS[kind];
2526
+ const Icon = chunkJSTKEZBS_cjs.STEP_KIND_ICONS[kind];
2523
2527
  const cls = { ...DEFAULT_WORKFLOW_CANVAS_LABELS, ...canvasLabels };
2524
2528
  return /* @__PURE__ */ jsxRuntime.jsxs(
2525
2529
  "button",
@@ -2681,13 +2685,13 @@ function WorkflowPreview({
2681
2685
  renderIcon,
2682
2686
  testId
2683
2687
  }) {
2684
- const run = chunkCQ4MFKFC_cjs.useWorkflowPreview(workflow, {
2688
+ const run = chunkO2GW5IY6_cjs.useWorkflowPreview(workflow, {
2685
2689
  resolveWorkflow: (id) => workflows.find((w) => w.id === id),
2686
2690
  compose,
2687
2691
  answer
2688
2692
  });
2689
2693
  return /* @__PURE__ */ jsxRuntime.jsx(
2690
- chunk2UUNSHDI_cjs.WorkflowRunner,
2694
+ chunkRB7GX2VT_cjs.WorkflowRunner,
2691
2695
  {
2692
2696
  workflow,
2693
2697
  run,
@@ -2763,7 +2767,7 @@ function ConnectedWorkflowBuilder({
2763
2767
  ...builderProps
2764
2768
  }) {
2765
2769
  const l = { ...DEFAULT_CONNECTED_WORKFLOW_BUILDER_LABELS, ...connectedLabels };
2766
- const { notify, openConversation } = chunkC4WSHRR6_cjs.useBlocksEnvironment();
2770
+ const { notify, openConversation } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
2767
2771
  const { workspaceId, live, ensureWorkspaceOpen } = chunkGFNELPDP_cjs.useConnectedWorkspace();
2768
2772
  const members = react$2.useWorkspaceUsers(workspaceId ?? void 0, {
2769
2773
  enabled: live && !!workspaceId,
@@ -2800,7 +2804,7 @@ function ConnectedWorkflowBuilder({
2800
2804
  }
2801
2805
  }, [record, loaded]);
2802
2806
  const workflows = react.useMemo(() => {
2803
- const merged = chunkOWCEQKAR_cjs.mergeSkillWorkflows(hostWorkflows, skills.data ?? []);
2807
+ const merged = chunk76L6LOP3_cjs.mergeSkillWorkflows(hostWorkflows, skills.data ?? []);
2804
2808
  return [...merged.host, ...merged.skills];
2805
2809
  }, [hostWorkflows, skills.data]);
2806
2810
  const agents = (agentsQuery.data ?? []).map((a) => ({
@@ -2809,7 +2813,7 @@ function ConnectedWorkflowBuilder({
2809
2813
  }));
2810
2814
  const tasks = conversations.filter((c) => c.status && c.status !== "done").map((c) => ({ value: c.external_id, label: c.title || l.untitledTask }));
2811
2815
  const options = { resolveWorkflow: (wid) => workflows.find((w) => w.id === wid), compose };
2812
- const problem = triggerProblem(value.trigger) ?? (chunkOWCEQKAR_cjs.validateWorkflowGraph(chunkOWCEQKAR_cjs.workflowSteps(value.workflow)).length || chunkOWCEQKAR_cjs.stepConfigProblems(chunkOWCEQKAR_cjs.workflowSteps(value.workflow)).length ? "graph" : null);
2816
+ const problem = triggerProblem(value.trigger) ?? (chunkJSTKEZBS_cjs.validateWorkflowGraph(chunkJSTKEZBS_cjs.workflowSteps(value.workflow)).length || chunkJSTKEZBS_cjs.stepConfigProblems(chunkJSTKEZBS_cjs.workflowSteps(value.workflow)).length ? "graph" : null);
2813
2817
  const busy = !!pending || create.isPending || update.isPending || run.isPending;
2814
2818
  const save = async () => {
2815
2819
  if (!workspaceId) return void 0;