@dxos/plugin-thread 0.8.4-main.21d9917 → 0.8.4-main.2244d791bb

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 (168) hide show
  1. package/dist/lib/browser/{app-graph-builder-SPAZN5XL.mjs → app-graph-builder-XFGLMIGK.mjs} +6 -5
  2. package/dist/lib/browser/app-graph-builder-XFGLMIGK.mjs.map +7 -0
  3. package/dist/lib/browser/blueprint-definition-RWH6FTW7.mjs +17 -0
  4. package/dist/lib/browser/blueprint-definition-RWH6FTW7.mjs.map +7 -0
  5. package/dist/lib/browser/blueprints/index.mjs +3 -3
  6. package/dist/lib/browser/{call-manager-YBRTG6T3.mjs → call-manager-GDGIKJKN.mjs} +4 -4
  7. package/dist/lib/browser/call-manager-GDGIKJKN.mjs.map +7 -0
  8. package/dist/lib/browser/{chunk-TAWDJPMD.mjs → chunk-2FIHSX35.mjs} +2 -2
  9. package/dist/lib/browser/chunk-2FIHSX35.mjs.map +7 -0
  10. package/dist/lib/browser/{chunk-VZICDGBW.mjs → chunk-4EUEMHNI.mjs} +48 -44
  11. package/dist/lib/browser/chunk-4EUEMHNI.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-ZFLSTQSE.mjs → chunk-CBX65FMW.mjs} +25 -26
  13. package/dist/lib/browser/chunk-CBX65FMW.mjs.map +7 -0
  14. package/dist/lib/browser/{chunk-DLO2G3DM.mjs → chunk-JBB73URQ.mjs} +2 -2
  15. package/dist/lib/browser/chunk-JBB73URQ.mjs.map +7 -0
  16. package/dist/lib/browser/index.mjs +54 -53
  17. package/dist/lib/browser/index.mjs.map +3 -3
  18. package/dist/lib/browser/{markdown-TSXOA3GV.mjs → markdown-YJCSOWXX.mjs} +7 -7
  19. package/dist/lib/browser/markdown-YJCSOWXX.mjs.map +7 -0
  20. package/dist/lib/browser/meta.json +1 -1
  21. package/dist/lib/browser/{operation-resolver-MDMEBYH2.mjs → operation-resolver-PROCP5L4.mjs} +9 -9
  22. package/dist/lib/browser/operation-resolver-PROCP5L4.mjs.map +7 -0
  23. package/dist/lib/browser/{react-root-Q7U5D3DA.mjs → react-root-FHK2SVPU.mjs} +6 -6
  24. package/dist/lib/browser/react-root-FHK2SVPU.mjs.map +7 -0
  25. package/dist/lib/browser/{react-surface-WDZQSDWH.mjs → react-surface-7MQA6VSH.mjs} +16 -15
  26. package/dist/lib/browser/react-surface-7MQA6VSH.mjs.map +7 -0
  27. package/dist/lib/browser/{repair-TDKAFAGH.mjs → repair-6OZ75AUU.mjs} +2 -2
  28. package/dist/lib/browser/{settings-OOKKVXV7.mjs → settings-TWKOTGSU.mjs} +5 -4
  29. package/dist/lib/browser/settings-TWKOTGSU.mjs.map +7 -0
  30. package/dist/lib/browser/{state-3LKZHDRI.mjs → state-SJR2GL5G.mjs} +2 -2
  31. package/dist/lib/browser/types/index.mjs +1 -1
  32. package/dist/lib/node-esm/{app-graph-builder-3LJAPDUW.mjs → app-graph-builder-IN6VLJBO.mjs} +6 -5
  33. package/dist/lib/node-esm/app-graph-builder-IN6VLJBO.mjs.map +7 -0
  34. package/dist/lib/node-esm/{blueprint-definition-MZZXXL37.mjs → blueprint-definition-QZ3GXYAN.mjs} +6 -6
  35. package/dist/lib/node-esm/blueprint-definition-QZ3GXYAN.mjs.map +7 -0
  36. package/dist/lib/node-esm/blueprints/index.mjs +3 -3
  37. package/dist/lib/node-esm/{call-manager-MMCTNFOH.mjs → call-manager-36UAAQCJ.mjs} +4 -4
  38. package/dist/lib/node-esm/call-manager-36UAAQCJ.mjs.map +7 -0
  39. package/dist/lib/node-esm/{chunk-AQHPP6ZX.mjs → chunk-2UQ73JQJ.mjs} +25 -25
  40. package/dist/lib/node-esm/chunk-2UQ73JQJ.mjs.map +7 -0
  41. package/dist/lib/node-esm/{chunk-KRBZBJRI.mjs → chunk-G7PZNN3Z.mjs} +2 -2
  42. package/dist/lib/node-esm/chunk-G7PZNN3Z.mjs.map +7 -0
  43. package/dist/lib/node-esm/{chunk-3RD3IVVD.mjs → chunk-RBRWHRHE.mjs} +48 -44
  44. package/dist/lib/node-esm/chunk-RBRWHRHE.mjs.map +7 -0
  45. package/dist/lib/node-esm/{chunk-ARTUUKTM.mjs → chunk-WMWUXWAS.mjs} +2 -2
  46. package/dist/lib/node-esm/chunk-WMWUXWAS.mjs.map +7 -0
  47. package/dist/lib/node-esm/index.mjs +54 -53
  48. package/dist/lib/node-esm/index.mjs.map +3 -3
  49. package/dist/lib/node-esm/{markdown-N2UJ3D6L.mjs → markdown-6LRP3PAP.mjs} +7 -7
  50. package/dist/lib/node-esm/markdown-6LRP3PAP.mjs.map +7 -0
  51. package/dist/lib/node-esm/meta.json +1 -1
  52. package/dist/lib/node-esm/{operation-resolver-7PHDJZA2.mjs → operation-resolver-LPEPV5BF.mjs} +9 -9
  53. package/dist/lib/node-esm/operation-resolver-LPEPV5BF.mjs.map +7 -0
  54. package/dist/lib/node-esm/{react-root-SZIGQRDZ.mjs → react-root-P5P4VGQJ.mjs} +6 -6
  55. package/dist/lib/node-esm/react-root-P5P4VGQJ.mjs.map +7 -0
  56. package/dist/lib/node-esm/{react-surface-24PNWUDX.mjs → react-surface-M7VI5XG2.mjs} +16 -15
  57. package/dist/lib/node-esm/react-surface-M7VI5XG2.mjs.map +7 -0
  58. package/dist/lib/node-esm/{repair-LHLLGXKF.mjs → repair-6777EPOM.mjs} +2 -2
  59. package/dist/lib/node-esm/{settings-LXZQXSPL.mjs → settings-5O254B3Z.mjs} +5 -4
  60. package/dist/lib/node-esm/settings-5O254B3Z.mjs.map +7 -0
  61. package/dist/lib/node-esm/{state-YYAK5ENM.mjs → state-5R3TZJQE.mjs} +2 -2
  62. package/dist/lib/node-esm/types/index.mjs +1 -1
  63. package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
  64. package/dist/types/src/blueprints/index.d.ts +1 -1
  65. package/dist/types/src/blueprints/index.d.ts.map +1 -1
  66. package/dist/types/src/blueprints/thread-blueprint.d.ts +3 -20
  67. package/dist/types/src/blueprints/thread-blueprint.d.ts.map +1 -1
  68. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -1
  69. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +3 -6
  70. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -1
  71. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +1 -1
  72. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -1
  73. package/dist/types/src/capabilities/call-manager/call-manager.d.ts.map +1 -1
  74. package/dist/types/src/capabilities/markdown/markdown.d.ts.map +1 -1
  75. package/dist/types/src/capabilities/operation-resolver/index.d.ts +1 -1
  76. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -1
  77. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +2 -2
  78. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
  79. package/dist/types/src/capabilities/react-root/react-root.d.ts.map +1 -1
  80. package/dist/types/src/capabilities/react-surface/index.d.ts +1 -1
  81. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -1
  82. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +2 -2
  83. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
  84. package/dist/types/src/capabilities/settings/index.d.ts +1 -1
  85. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -1
  86. package/dist/types/src/capabilities/settings/settings.d.ts +3 -2
  87. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -1
  88. package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
  89. package/dist/types/src/components/ChannelContainer.d.ts +1 -1
  90. package/dist/types/src/components/ChannelContainer.d.ts.map +1 -1
  91. package/dist/types/src/components/ChannelContainer.stories.d.ts.map +1 -1
  92. package/dist/types/src/components/Chat.stories.d.ts.map +1 -1
  93. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  94. package/dist/types/src/components/ThreadCompanion.d.ts.map +1 -1
  95. package/dist/types/src/components/ThreadSettings.d.ts.map +1 -1
  96. package/dist/types/src/functions/create-proposals.d.ts +8 -1
  97. package/dist/types/src/functions/create-proposals.d.ts.map +1 -1
  98. package/dist/types/src/functions/index.d.ts +13 -1
  99. package/dist/types/src/functions/index.d.ts.map +1 -1
  100. package/dist/types/src/testing/stories.d.ts.map +1 -1
  101. package/dist/types/src/types/Channel.d.ts +422 -422
  102. package/dist/types/src/types/Channel.d.ts.map +1 -1
  103. package/dist/types/src/types/types.d.ts +1674 -1674
  104. package/dist/types/src/types/types.d.ts.map +1 -1
  105. package/dist/types/tsconfig.tsbuildinfo +1 -1
  106. package/package.json +63 -61
  107. package/src/ThreadPlugin.tsx +29 -28
  108. package/src/blueprints/index.ts +1 -1
  109. package/src/blueprints/thread-blueprint.ts +14 -6
  110. package/src/calls-service.stories.tsx +1 -1
  111. package/src/capabilities/app-graph-builder/app-graph-builder.ts +4 -3
  112. package/src/capabilities/blueprint-definition/blueprint-definition.ts +6 -12
  113. package/src/capabilities/call-manager/call-manager.ts +2 -2
  114. package/src/capabilities/markdown/markdown.ts +5 -5
  115. package/src/capabilities/operation-resolver/operation-resolver.ts +7 -7
  116. package/src/capabilities/react-root/react-root.tsx +2 -2
  117. package/src/capabilities/react-surface/react-surface.tsx +13 -12
  118. package/src/capabilities/settings/settings.ts +3 -2
  119. package/src/components/Call/Call.tsx +1 -1
  120. package/src/components/Call/Toolbar.tsx +2 -1
  121. package/src/components/CallSidebar.tsx +1 -1
  122. package/src/components/ChannelContainer.stories.tsx +4 -5
  123. package/src/components/ChannelContainer.tsx +9 -8
  124. package/src/components/Chat.stories.tsx +5 -4
  125. package/src/components/ChatContainer.tsx +15 -16
  126. package/src/components/Comments.stories.tsx +1 -1
  127. package/src/components/Lobby/Lobby.tsx +1 -1
  128. package/src/components/Media/VideoObject.stories.tsx +1 -1
  129. package/src/components/MessageContainer.tsx +2 -2
  130. package/src/components/Participant/Participant.tsx +1 -1
  131. package/src/components/ResponsiveGrid/ResponsiveContainer.stories.tsx +1 -1
  132. package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +1 -1
  133. package/src/components/ThreadCompanion.tsx +8 -7
  134. package/src/components/ThreadSettings.tsx +3 -2
  135. package/src/functions/create-proposals.ts +9 -9
  136. package/src/functions/index.ts +5 -1
  137. package/src/hooks/analytics.ts +1 -1
  138. package/src/testing/stories.ts +2 -1
  139. package/src/types/Channel.ts +1 -1
  140. package/dist/lib/browser/app-graph-builder-SPAZN5XL.mjs.map +0 -7
  141. package/dist/lib/browser/blueprint-definition-UQ63QKQG.mjs +0 -17
  142. package/dist/lib/browser/blueprint-definition-UQ63QKQG.mjs.map +0 -7
  143. package/dist/lib/browser/call-manager-YBRTG6T3.mjs.map +0 -7
  144. package/dist/lib/browser/chunk-DLO2G3DM.mjs.map +0 -7
  145. package/dist/lib/browser/chunk-TAWDJPMD.mjs.map +0 -7
  146. package/dist/lib/browser/chunk-VZICDGBW.mjs.map +0 -7
  147. package/dist/lib/browser/chunk-ZFLSTQSE.mjs.map +0 -7
  148. package/dist/lib/browser/markdown-TSXOA3GV.mjs.map +0 -7
  149. package/dist/lib/browser/operation-resolver-MDMEBYH2.mjs.map +0 -7
  150. package/dist/lib/browser/react-root-Q7U5D3DA.mjs.map +0 -7
  151. package/dist/lib/browser/react-surface-WDZQSDWH.mjs.map +0 -7
  152. package/dist/lib/browser/settings-OOKKVXV7.mjs.map +0 -7
  153. package/dist/lib/node-esm/app-graph-builder-3LJAPDUW.mjs.map +0 -7
  154. package/dist/lib/node-esm/blueprint-definition-MZZXXL37.mjs.map +0 -7
  155. package/dist/lib/node-esm/call-manager-MMCTNFOH.mjs.map +0 -7
  156. package/dist/lib/node-esm/chunk-3RD3IVVD.mjs.map +0 -7
  157. package/dist/lib/node-esm/chunk-AQHPP6ZX.mjs.map +0 -7
  158. package/dist/lib/node-esm/chunk-ARTUUKTM.mjs.map +0 -7
  159. package/dist/lib/node-esm/chunk-KRBZBJRI.mjs.map +0 -7
  160. package/dist/lib/node-esm/markdown-N2UJ3D6L.mjs.map +0 -7
  161. package/dist/lib/node-esm/operation-resolver-7PHDJZA2.mjs.map +0 -7
  162. package/dist/lib/node-esm/react-root-SZIGQRDZ.mjs.map +0 -7
  163. package/dist/lib/node-esm/react-surface-24PNWUDX.mjs.map +0 -7
  164. package/dist/lib/node-esm/settings-LXZQXSPL.mjs.map +0 -7
  165. /package/dist/lib/browser/{repair-TDKAFAGH.mjs.map → repair-6OZ75AUU.mjs.map} +0 -0
  166. /package/dist/lib/browser/{state-3LKZHDRI.mjs.map → state-SJR2GL5G.mjs.map} +0 -0
  167. /package/dist/lib/node-esm/{repair-LHLLGXKF.mjs.map → repair-6777EPOM.mjs.map} +0 -0
  168. /package/dist/lib/node-esm/{state-YYAK5ENM.mjs.map → state-5R3TZJQE.mjs.map} +0 -0
@@ -6,7 +6,7 @@ import {
6
6
  useOnEditAnalytics,
7
7
  useStatus,
8
8
  useVideoStreamTrack
9
- } from "./chunk-KRBZBJRI.mjs";
9
+ } from "./chunk-G7PZNN3Z.mjs";
10
10
  import {
11
11
  CALLS_URL,
12
12
  CallManager,
@@ -31,12 +31,13 @@ import {
31
31
  ThreadCapabilities,
32
32
  ThreadOperation,
33
33
  meta
34
- } from "./chunk-ARTUUKTM.mjs";
34
+ } from "./chunk-WMWUXWAS.mjs";
35
35
  import "./chunk-HSLMI22Q.mjs";
36
36
 
37
37
  // src/ThreadPlugin.tsx
38
38
  import * as Effect from "effect/Effect";
39
- import { Capability as Capability11, Common, Plugin } from "@dxos/app-framework";
39
+ import { Capability as Capability11, Plugin } from "@dxos/app-framework";
40
+ import { AppActivationEvents, AppPlugin } from "@dxos/app-toolkit";
40
41
  import { Ref, Type as Type2 } from "@dxos/echo";
41
42
  import { Operation } from "@dxos/operation";
42
43
  import { ClientCapabilities, ClientEvents } from "@dxos/plugin-client";
@@ -47,43 +48,43 @@ import { AnchoredTo, Message, Thread } from "@dxos/types";
47
48
 
48
49
  // src/capabilities/app-graph-builder/index.ts
49
50
  import { Capability } from "@dxos/app-framework";
50
- var AppGraphBuilder = Capability.lazy("AppGraphBuilder", () => import("./app-graph-builder-3LJAPDUW.mjs"));
51
+ var AppGraphBuilder = Capability.lazy("AppGraphBuilder", () => import("./app-graph-builder-IN6VLJBO.mjs"));
51
52
 
52
53
  // src/capabilities/blueprint-definition/index.ts
53
54
  import { Capability as Capability2 } from "@dxos/app-framework";
54
- var BlueprintDefinition = Capability2.lazy("BlueprintDefinition", () => import("./blueprint-definition-MZZXXL37.mjs"));
55
+ var BlueprintDefinition = Capability2.lazy("BlueprintDefinition", () => import("./blueprint-definition-QZ3GXYAN.mjs"));
55
56
 
56
57
  // src/capabilities/call-manager/index.ts
57
58
  import { Capability as Capability3 } from "@dxos/app-framework";
58
- var CallManager2 = Capability3.lazy("CallManager", () => import("./call-manager-MMCTNFOH.mjs"));
59
+ var CallManager2 = Capability3.lazy("CallManager", () => import("./call-manager-36UAAQCJ.mjs"));
59
60
 
60
61
  // src/capabilities/markdown/index.ts
61
62
  import { Capability as Capability4 } from "@dxos/app-framework";
62
- var Markdown = Capability4.lazy("Markdown", () => import("./markdown-N2UJ3D6L.mjs"));
63
+ var Markdown = Capability4.lazy("Markdown", () => import("./markdown-6LRP3PAP.mjs"));
63
64
 
64
65
  // src/capabilities/operation-resolver/index.ts
65
66
  import { Capability as Capability5 } from "@dxos/app-framework";
66
- var OperationResolver = Capability5.lazy("OperationResolver", () => import("./operation-resolver-7PHDJZA2.mjs"));
67
+ var OperationResolver = Capability5.lazy("OperationResolver", () => import("./operation-resolver-LPEPV5BF.mjs"));
67
68
 
68
69
  // src/capabilities/react-root/index.ts
69
70
  import { Capability as Capability6 } from "@dxos/app-framework";
70
- var ReactRoot = Capability6.lazy("ReactRoot", () => import("./react-root-SZIGQRDZ.mjs"));
71
+ var ReactRoot = Capability6.lazy("ReactRoot", () => import("./react-root-P5P4VGQJ.mjs"));
71
72
 
72
73
  // src/capabilities/react-surface/index.ts
73
74
  import { Capability as Capability7 } from "@dxos/app-framework";
74
- var ReactSurface = Capability7.lazy("ReactSurface", () => import("./react-surface-24PNWUDX.mjs"));
75
+ var ReactSurface = Capability7.lazy("ReactSurface", () => import("./react-surface-M7VI5XG2.mjs"));
75
76
 
76
77
  // src/capabilities/repair/index.ts
77
78
  import { Capability as Capability8 } from "@dxos/app-framework";
78
- var Repair = Capability8.lazy("Repair", () => import("./repair-LHLLGXKF.mjs"));
79
+ var Repair = Capability8.lazy("Repair", () => import("./repair-6777EPOM.mjs"));
79
80
 
80
81
  // src/capabilities/settings/index.ts
81
82
  import { Capability as Capability9 } from "@dxos/app-framework";
82
- var ThreadSettings = Capability9.lazy("ThreadSettings", () => import("./settings-LXZQXSPL.mjs"));
83
+ var ThreadSettings = Capability9.lazy("ThreadSettings", () => import("./settings-5O254B3Z.mjs"));
83
84
 
84
85
  // src/capabilities/state/index.ts
85
86
  import { Capability as Capability10 } from "@dxos/app-framework";
86
- var ThreadState = Capability10.lazy("ThreadState", () => import("./state-YYAK5ENM.mjs"));
87
+ var ThreadState = Capability10.lazy("ThreadState", () => import("./state-5R3TZJQE.mjs"));
87
88
 
88
89
  // src/translations.ts
89
90
  import { Type } from "@dxos/echo";
@@ -171,32 +172,13 @@ var translations = [
171
172
 
172
173
  // src/ThreadPlugin.tsx
173
174
  var ThreadPlugin = Plugin.define(meta).pipe(
174
- Plugin.addModule({
175
- id: "call-manager",
176
- activatesOn: ClientEvents.ClientReady,
177
- activate: CallManager2
178
- }),
179
- // TODO(wittjosiah): Currently not used but leaving because there will likely be settings for threads again.
180
- // Plugin.addModule({
181
- // id: 'settings',
182
- // activatesOn: Events.SetupSettings,
183
- // activate: ThreadSettings,
184
- // }),
185
- Plugin.addModule({
186
- id: "state",
187
- // TODO(wittjosiah): Does not integrate with settings store.
188
- // Should this be a different event?
189
- // Should settings store be renamed to be more generic?
190
- activatesOn: Common.ActivationEvent.SetupSettings,
191
- activate: ThreadState
175
+ AppPlugin.addAppGraphModule({
176
+ activate: AppGraphBuilder
192
177
  }),
193
- Common.Plugin.addTranslationsModule({
194
- translations: [
195
- ...translations,
196
- ...threadTranslations
197
- ]
178
+ AppPlugin.addBlueprintDefinitionModule({
179
+ activate: BlueprintDefinition
198
180
  }),
199
- Common.Plugin.addMetadataModule({
181
+ AppPlugin.addMetadataModule({
200
182
  metadata: [
201
183
  {
202
184
  id: Type2.getTypename(Channel_exports.Channel),
@@ -244,7 +226,13 @@ var ThreadPlugin = Plugin.define(meta).pipe(
244
226
  }
245
227
  ]
246
228
  }),
247
- Common.Plugin.addSchemaModule({
229
+ AppPlugin.addOperationResolverModule({
230
+ activate: OperationResolver
231
+ }),
232
+ AppPlugin.addReactRootModule({
233
+ activate: ReactRoot
234
+ }),
235
+ AppPlugin.addSchemaModule({
248
236
  schema: [
249
237
  AnchoredTo.AnchoredTo,
250
238
  Channel_exports.Channel,
@@ -253,6 +241,34 @@ var ThreadPlugin = Plugin.define(meta).pipe(
253
241
  Thread.Thread
254
242
  ]
255
243
  }),
244
+ AppPlugin.addSurfaceModule({
245
+ activate: ReactSurface
246
+ }),
247
+ AppPlugin.addTranslationsModule({
248
+ translations: [
249
+ ...translations,
250
+ ...threadTranslations
251
+ ]
252
+ }),
253
+ Plugin.addModule({
254
+ id: "call-manager",
255
+ activatesOn: ClientEvents.ClientReady,
256
+ activate: CallManager2
257
+ }),
258
+ // TODO(wittjosiah): Currently not used but leaving because there will likely be settings for threads again.
259
+ // Plugin.addModule({
260
+ // id: 'settings',
261
+ // activatesOn: Events.SetupSettings,
262
+ // activate: ThreadSettings,
263
+ // }),
264
+ Plugin.addModule({
265
+ id: "state",
266
+ // TODO(wittjosiah): Does not integrate with settings store.
267
+ // Should this be a different event?
268
+ // Should settings store be renamed to be more generic?
269
+ activatesOn: AppActivationEvents.SetupSettings,
270
+ activate: ThreadState
271
+ }),
256
272
  Plugin.addModule({
257
273
  id: "migration",
258
274
  activatesOn: ClientEvents.SetupMigration,
@@ -275,21 +291,6 @@ var ThreadPlugin = Plugin.define(meta).pipe(
275
291
  activatesOn: MarkdownEvents.SetupExtensions,
276
292
  activate: Markdown
277
293
  }),
278
- Common.Plugin.addReactRootModule({
279
- activate: ReactRoot
280
- }),
281
- Common.Plugin.addSurfaceModule({
282
- activate: ReactSurface
283
- }),
284
- Common.Plugin.addOperationResolverModule({
285
- activate: OperationResolver
286
- }),
287
- Common.Plugin.addAppGraphModule({
288
- activate: AppGraphBuilder
289
- }),
290
- Common.Plugin.addBlueprintDefinitionModule({
291
- activate: BlueprintDefinition
292
- }),
293
294
  Plugin.make
294
295
  );
295
296
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/ThreadPlugin.tsx", "../../../src/capabilities/app-graph-builder/index.ts", "../../../src/capabilities/blueprint-definition/index.ts", "../../../src/capabilities/call-manager/index.ts", "../../../src/capabilities/markdown/index.ts", "../../../src/capabilities/operation-resolver/index.ts", "../../../src/capabilities/react-root/index.ts", "../../../src/capabilities/react-surface/index.ts", "../../../src/capabilities/repair/index.ts", "../../../src/capabilities/settings/index.ts", "../../../src/capabilities/state/index.ts", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability, Common, Plugin } from '@dxos/app-framework';\nimport { Ref, Type } from '@dxos/echo';\nimport { Operation } from '@dxos/operation';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { MarkdownEvents } from '@dxos/plugin-markdown';\nimport { SpaceCapabilities, SpaceEvents } from '@dxos/plugin-space';\nimport { type CreateObject } from '@dxos/plugin-space/types';\nimport { translations as threadTranslations } from '@dxos/react-ui-thread';\nimport { AnchoredTo, Message, Thread } from '@dxos/types';\n\nimport {\n AppGraphBuilder,\n BlueprintDefinition,\n CallManager,\n Markdown,\n OperationResolver,\n ReactRoot,\n ReactSurface,\n Repair,\n ThreadState,\n} from './capabilities';\nimport { THREAD_ITEM, meta } from './meta';\nimport { translations } from './translations';\nimport { Channel, ThreadOperation } from './types';\n\n// TODO(Zan): Every instance of `cursor` should be replaced with `anchor`.\n// NOTE(burdon): Review/discuss CursorConverter semantics.\n\n// TODO(wittjosiah): Rename to ChatPlugin.\n// TODO(wittjosiah): Enabling comments should likely be factored out of this plugin but depend on it's capabilities.\nexport const ThreadPlugin = Plugin.define(meta).pipe(\n Plugin.addModule({\n id: 'call-manager',\n activatesOn: ClientEvents.ClientReady,\n activate: CallManager,\n }),\n // TODO(wittjosiah): Currently not used but leaving because there will likely be settings for threads again.\n // Plugin.addModule({\n // id: 'settings',\n // activatesOn: Events.SetupSettings,\n // activate: ThreadSettings,\n // }),\n Plugin.addModule({\n id: 'state',\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: Common.ActivationEvent.SetupSettings,\n activate: ThreadState,\n }),\n Common.Plugin.addTranslationsModule({ translations: [...translations, ...threadTranslations] }),\n Common.Plugin.addMetadataModule({\n metadata: [\n {\n id: Type.getTypename(Channel.Channel),\n metadata: {\n icon: 'ph--hash--regular',\n iconHue: 'rose',\n createObject: ((props) => Effect.sync(() => Channel.make(props))) satisfies CreateObject,\n },\n },\n {\n id: Type.getTypename(Thread.Thread),\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (thread: Thread.Thread) => await Ref.Array.loadAll(thread.messages ?? []),\n },\n },\n {\n id: Message.Message.typename,\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: () => [], // loadObjectReferences(message, (message) => [...message.parts, message.context]),\n },\n },\n {\n id: THREAD_ITEM,\n metadata: {\n parse: (item: Thread.Thread, type: string) => {\n switch (type) {\n case 'node':\n return { id: item.id, label: item.name, data: item };\n case 'object':\n return item;\n case 'view-object':\n return { id: `${item.id}-view`, object: item };\n }\n },\n },\n },\n ],\n }),\n Common.Plugin.addSchemaModule({\n schema: [AnchoredTo.AnchoredTo, Channel.Channel, Message.Message, Message.MessageV1, Thread.Thread],\n }),\n Plugin.addModule({\n id: 'migration',\n activatesOn: ClientEvents.SetupMigration,\n activate: () => Effect.succeed(Capability.contributes(ClientCapabilities.Migration, [Message.MessageV1ToV2])),\n }),\n Plugin.addModule({\n id: 'on-space-created',\n activatesOn: SpaceEvents.SpaceCreated,\n activate: () =>\n Effect.succeed(\n Capability.contributes(SpaceCapabilities.OnCreateSpace, (params) =>\n Operation.invoke(ThreadOperation.OnCreateSpace, params),\n ),\n ),\n }),\n Plugin.addModule({\n id: 'repair',\n activatesOn: ClientEvents.SpacesReady,\n activate: Repair,\n }),\n Plugin.addModule({\n id: 'markdown',\n activatesOn: MarkdownEvents.SetupExtensions,\n activate: Markdown,\n }),\n Common.Plugin.addReactRootModule({ activate: ReactRoot }),\n Common.Plugin.addSurfaceModule({ activate: ReactSurface }),\n Common.Plugin.addOperationResolverModule({ activate: OperationResolver }),\n Common.Plugin.addAppGraphModule({ activate: AppGraphBuilder }),\n Common.Plugin.addBlueprintDefinitionModule({ activate: BlueprintDefinition }),\n Plugin.make,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const BlueprintDefinition = Capability.lazy('BlueprintDefinition', () => import('./blueprint-definition'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const CallManager = Capability.lazy('CallManager', () => import('./call-manager'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const Markdown = Capability.lazy('Markdown', () => import('./markdown'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const OperationResolver = Capability.lazy('OperationResolver', () => import('./operation-resolver'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactRoot = Capability.lazy('ReactRoot', () => import('./react-root'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const Repair = Capability.lazy('Repair', () => import('./repair'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ThreadSettings = Capability.lazy('ThreadSettings', () => import('./settings'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ThreadState = Capability.lazy('ThreadState', () => import('./state'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Type } from '@dxos/echo';\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\nimport { Channel } from './types';\n\nexport const translations = [\n {\n 'en-US': {\n [Type.getTypename(Channel.Channel)]: {\n 'typename label': 'Channel',\n 'typename label_zero': 'Channels',\n 'typename label_one': 'Channel',\n 'typename label_other': 'Channels',\n 'object name placeholder': 'New channel',\n 'rename object label': 'Rename channel',\n 'delete object label': 'Delete channel',\n 'object deleted label': 'Channel deleted',\n },\n [meta.id]: {\n 'plugin name': 'Chat',\n 'channel title label': 'Title',\n 'message placeholder': 'Reply…',\n 'activity message': 'Processing…',\n 'anonymous label': 'Anonymous',\n 'delete message block label': 'Delete message block',\n 'detached thread label': 'Referenced content was removed',\n 'delete thread label': 'Delete thread',\n 'resolve thread label': 'Resolve thread',\n 'thread deleted label': 'Thread deleted',\n 'message deleted label': 'Message deleted',\n 'comments heading': 'Comments',\n 'chat heading': 'Chat',\n 'draft button': 'DRAFT',\n 'no comments title': 'Comments',\n 'no comments message':\n 'Click on the <commentIcon></commentIcon> button in the document toolbar to create a comment thread on the selected text.',\n 'toggle show resolved': 'Show resolved',\n 'unnamed object threads label': 'Threads',\n 'mark as resolved label': 'Mark as resolved',\n 'mark as unresolved label': 'Mark as unresolved',\n 'save message label': 'Save',\n 'edit message label': 'Edit',\n 'delete message label': 'Delete message',\n 'accept proposal label': 'Accept proposal',\n 'open comments panel label': 'Show Comments',\n 'comments label': 'Comments',\n 'show all label': 'All comments',\n 'show unresolved label': 'Unresolved comments',\n 'add comment label': 'Add comment',\n\n 'channel companion label': 'Channel',\n 'call panel label': 'Active Call',\n\n 'display name label': 'Display name',\n 'display name description': 'Set your display name before joining a meeting.',\n 'display name input placeholder': 'Enter your name',\n 'set display name label': 'Continue',\n\n 'call tab label': 'Call',\n 'meeting status title': 'Calls',\n 'share meeting link label': 'Share meeting',\n 'show webrtc stats title': 'WebRTC Stats',\n 'show calls history title': 'Service History',\n\n 'meeting summary label': 'Summary',\n 'summarize label': 'Summarize',\n 'summarizing label': 'Creating summary...',\n 'create summary message': 'A summary doesn’t exist for this meeting yet. Create one now?',\n\n 'join call': 'Join',\n 'leave call': 'Leave',\n\n 'lobby participants_zero': 'No participants',\n 'lobby participants_one': '1 participant',\n 'lobby participants_other': '{{count}} participants',\n\n 'icon pin': 'Pin video',\n 'icon unpin': 'Unpin video',\n 'icon wave': 'Waving',\n 'icon muted': 'Muted',\n 'icon speaking': 'Speaking',\n\n 'mic on': 'Unmute',\n 'mic off': 'Mute',\n 'camera on': 'Turn camera on',\n 'camera off': 'Turn camera off',\n 'camera off label': 'Camera off',\n\n 'raise hand': 'Raise hand',\n 'lower hand': 'Lower hand',\n 'screenshare on': 'Share screen',\n 'screenshare off': 'Stop streaming',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
- "mappings": "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",
6
- "names": ["Effect", "Capability", "Common", "Plugin", "Ref", "Type", "Operation", "ClientCapabilities", "ClientEvents", "MarkdownEvents", "SpaceCapabilities", "SpaceEvents", "translations", "threadTranslations", "AnchoredTo", "Message", "Thread", "Capability", "AppGraphBuilder", "Capability", "lazy", "Capability", "BlueprintDefinition", "Capability", "lazy", "Capability", "CallManager", "Capability", "lazy", "Capability", "Markdown", "Capability", "lazy", "Capability", "OperationResolver", "Capability", "lazy", "Capability", "ReactRoot", "Capability", "lazy", "Capability", "ReactSurface", "Capability", "lazy", "Capability", "Repair", "Capability", "lazy", "Capability", "ThreadSettings", "Capability", "lazy", "Capability", "ThreadState", "Capability", "lazy", "Type", "translations", "Type", "getTypename", "Channel", "meta", "id", "ThreadPlugin", "Plugin", "define", "meta", "pipe", "addModule", "id", "activatesOn", "ClientEvents", "ClientReady", "activate", "CallManager", "Common", "ActivationEvent", "SetupSettings", "ThreadState", "addTranslationsModule", "translations", "threadTranslations", "addMetadataModule", "metadata", "Type", "getTypename", "Channel", "icon", "iconHue", "createObject", "props", "sync", "make", "Thread", "loadReferences", "thread", "Ref", "Array", "loadAll", "messages", "Message", "typename", "THREAD_ITEM", "parse", "item", "type", "label", "name", "data", "object", "addSchemaModule", "schema", "AnchoredTo", "MessageV1", "SetupMigration", "succeed", "Capability", "contributes", "ClientCapabilities", "Migration", "MessageV1ToV2", "SpaceEvents", "SpaceCreated", "SpaceCapabilities", "OnCreateSpace", "params", "Operation", "invoke", "ThreadOperation", "SpacesReady", "Repair", "MarkdownEvents", "SetupExtensions", "Markdown", "addReactRootModule", "ReactRoot", "addSurfaceModule", "ReactSurface", "addOperationResolverModule", "OperationResolver", "addAppGraphModule", "AppGraphBuilder", "addBlueprintDefinitionModule", "BlueprintDefinition"]
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability, Plugin } from '@dxos/app-framework';\nimport { AppActivationEvents, AppPlugin } from '@dxos/app-toolkit';\nimport { Ref, Type } from '@dxos/echo';\nimport { Operation } from '@dxos/operation';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { MarkdownEvents } from '@dxos/plugin-markdown';\nimport { SpaceCapabilities, SpaceEvents } from '@dxos/plugin-space';\nimport { type CreateObject } from '@dxos/plugin-space/types';\nimport { translations as threadTranslations } from '@dxos/react-ui-thread';\nimport { AnchoredTo, Message, Thread } from '@dxos/types';\n\nimport {\n AppGraphBuilder,\n BlueprintDefinition,\n CallManager,\n Markdown,\n OperationResolver,\n ReactRoot,\n ReactSurface,\n Repair,\n ThreadState,\n} from './capabilities';\nimport { THREAD_ITEM, meta } from './meta';\nimport { translations } from './translations';\nimport { Channel, ThreadOperation } from './types';\n\n// TODO(Zan): Every instance of `cursor` should be replaced with `anchor`.\n// NOTE(burdon): Review/discuss CursorConverter semantics.\n\n// TODO(wittjosiah): Rename to ChatPlugin.\n// TODO(wittjosiah): Enabling comments should likely be factored out of this plugin but depend on it's capabilities.\nexport const ThreadPlugin = Plugin.define(meta).pipe(\n AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),\n AppPlugin.addBlueprintDefinitionModule({ activate: BlueprintDefinition }),\n AppPlugin.addMetadataModule({\n metadata: [\n {\n id: Type.getTypename(Channel.Channel),\n metadata: {\n icon: 'ph--hash--regular',\n iconHue: 'rose',\n createObject: ((props) => Effect.sync(() => Channel.make(props))) satisfies CreateObject,\n },\n },\n {\n id: Type.getTypename(Thread.Thread),\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (thread: Thread.Thread) => await Ref.Array.loadAll(thread.messages ?? []),\n },\n },\n {\n id: Message.Message.typename,\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: () => [], // loadObjectReferences(message, (message) => [...message.parts, message.context]),\n },\n },\n {\n id: THREAD_ITEM,\n metadata: {\n parse: (item: Thread.Thread, type: string) => {\n switch (type) {\n case 'node':\n return { id: item.id, label: item.name, data: item };\n case 'object':\n return item;\n case 'view-object':\n return { id: `${item.id}-view`, object: item };\n }\n },\n },\n },\n ],\n }),\n AppPlugin.addOperationResolverModule({ activate: OperationResolver }),\n AppPlugin.addReactRootModule({ activate: ReactRoot }),\n AppPlugin.addSchemaModule({\n schema: [AnchoredTo.AnchoredTo, Channel.Channel, Message.Message, Message.MessageV1, Thread.Thread],\n }),\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations: [...translations, ...threadTranslations] }),\n Plugin.addModule({\n id: 'call-manager',\n activatesOn: ClientEvents.ClientReady,\n activate: CallManager,\n }),\n // TODO(wittjosiah): Currently not used but leaving because there will likely be settings for threads again.\n // Plugin.addModule({\n // id: 'settings',\n // activatesOn: Events.SetupSettings,\n // activate: ThreadSettings,\n // }),\n Plugin.addModule({\n id: 'state',\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: AppActivationEvents.SetupSettings,\n activate: ThreadState,\n }),\n Plugin.addModule({\n id: 'migration',\n activatesOn: ClientEvents.SetupMigration,\n activate: () => Effect.succeed(Capability.contributes(ClientCapabilities.Migration, [Message.MessageV1ToV2])),\n }),\n Plugin.addModule({\n id: 'on-space-created',\n activatesOn: SpaceEvents.SpaceCreated,\n activate: () =>\n Effect.succeed(\n Capability.contributes(SpaceCapabilities.OnCreateSpace, (params) =>\n Operation.invoke(ThreadOperation.OnCreateSpace, params),\n ),\n ),\n }),\n Plugin.addModule({\n id: 'repair',\n activatesOn: ClientEvents.SpacesReady,\n activate: Repair,\n }),\n Plugin.addModule({\n id: 'markdown',\n activatesOn: MarkdownEvents.SetupExtensions,\n activate: Markdown,\n }),\n Plugin.make,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const BlueprintDefinition = Capability.lazy('BlueprintDefinition', () => import('./blueprint-definition'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const CallManager = Capability.lazy('CallManager', () => import('./call-manager'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const Markdown = Capability.lazy('Markdown', () => import('./markdown'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const OperationResolver = Capability.lazy('OperationResolver', () => import('./operation-resolver'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactRoot = Capability.lazy('ReactRoot', () => import('./react-root'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const Repair = Capability.lazy('Repair', () => import('./repair'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ThreadSettings = Capability.lazy('ThreadSettings', () => import('./settings'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ThreadState = Capability.lazy('ThreadState', () => import('./state'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Type } from '@dxos/echo';\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\nimport { Channel } from './types';\n\nexport const translations = [\n {\n 'en-US': {\n [Type.getTypename(Channel.Channel)]: {\n 'typename label': 'Channel',\n 'typename label_zero': 'Channels',\n 'typename label_one': 'Channel',\n 'typename label_other': 'Channels',\n 'object name placeholder': 'New channel',\n 'rename object label': 'Rename channel',\n 'delete object label': 'Delete channel',\n 'object deleted label': 'Channel deleted',\n },\n [meta.id]: {\n 'plugin name': 'Chat',\n 'channel title label': 'Title',\n 'message placeholder': 'Reply…',\n 'activity message': 'Processing…',\n 'anonymous label': 'Anonymous',\n 'delete message block label': 'Delete message block',\n 'detached thread label': 'Referenced content was removed',\n 'delete thread label': 'Delete thread',\n 'resolve thread label': 'Resolve thread',\n 'thread deleted label': 'Thread deleted',\n 'message deleted label': 'Message deleted',\n 'comments heading': 'Comments',\n 'chat heading': 'Chat',\n 'draft button': 'DRAFT',\n 'no comments title': 'Comments',\n 'no comments message':\n 'Click on the <commentIcon></commentIcon> button in the document toolbar to create a comment thread on the selected text.',\n 'toggle show resolved': 'Show resolved',\n 'unnamed object threads label': 'Threads',\n 'mark as resolved label': 'Mark as resolved',\n 'mark as unresolved label': 'Mark as unresolved',\n 'save message label': 'Save',\n 'edit message label': 'Edit',\n 'delete message label': 'Delete message',\n 'accept proposal label': 'Accept proposal',\n 'open comments panel label': 'Show Comments',\n 'comments label': 'Comments',\n 'show all label': 'All comments',\n 'show unresolved label': 'Unresolved comments',\n 'add comment label': 'Add comment',\n\n 'channel companion label': 'Channel',\n 'call panel label': 'Active Call',\n\n 'display name label': 'Display name',\n 'display name description': 'Set your display name before joining a meeting.',\n 'display name input placeholder': 'Enter your name',\n 'set display name label': 'Continue',\n\n 'call tab label': 'Call',\n 'meeting status title': 'Calls',\n 'share meeting link label': 'Share meeting',\n 'show webrtc stats title': 'WebRTC Stats',\n 'show calls history title': 'Service History',\n\n 'meeting summary label': 'Summary',\n 'summarize label': 'Summarize',\n 'summarizing label': 'Creating summary...',\n 'create summary message': 'A summary doesn’t exist for this meeting yet. Create one now?',\n\n 'join call': 'Join',\n 'leave call': 'Leave',\n\n 'lobby participants_zero': 'No participants',\n 'lobby participants_one': '1 participant',\n 'lobby participants_other': '{{count}} participants',\n\n 'icon pin': 'Pin video',\n 'icon unpin': 'Unpin video',\n 'icon wave': 'Waving',\n 'icon muted': 'Muted',\n 'icon speaking': 'Speaking',\n\n 'mic on': 'Unmute',\n 'mic off': 'Mute',\n 'camera on': 'Turn camera on',\n 'camera off': 'Turn camera off',\n 'camera off label': 'Camera off',\n\n 'raise hand': 'Raise hand',\n 'lower hand': 'Lower hand',\n 'screenshare on': 'Share screen',\n 'screenshare off': 'Stop streaming',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
+ "mappings": "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",
6
+ "names": ["Effect", "Capability", "Plugin", "AppActivationEvents", "AppPlugin", "Ref", "Type", "Operation", "ClientCapabilities", "ClientEvents", "MarkdownEvents", "SpaceCapabilities", "SpaceEvents", "translations", "threadTranslations", "AnchoredTo", "Message", "Thread", "Capability", "AppGraphBuilder", "Capability", "lazy", "Capability", "BlueprintDefinition", "Capability", "lazy", "Capability", "CallManager", "Capability", "lazy", "Capability", "Markdown", "Capability", "lazy", "Capability", "OperationResolver", "Capability", "lazy", "Capability", "ReactRoot", "Capability", "lazy", "Capability", "ReactSurface", "Capability", "lazy", "Capability", "Repair", "Capability", "lazy", "Capability", "ThreadSettings", "Capability", "lazy", "Capability", "ThreadState", "Capability", "lazy", "Type", "translations", "Type", "getTypename", "Channel", "meta", "id", "ThreadPlugin", "Plugin", "define", "meta", "pipe", "AppPlugin", "addAppGraphModule", "activate", "AppGraphBuilder", "addBlueprintDefinitionModule", "BlueprintDefinition", "addMetadataModule", "metadata", "id", "Type", "getTypename", "Channel", "icon", "iconHue", "createObject", "props", "sync", "make", "Thread", "loadReferences", "thread", "Ref", "Array", "loadAll", "messages", "Message", "typename", "THREAD_ITEM", "parse", "item", "type", "label", "name", "data", "object", "addOperationResolverModule", "OperationResolver", "addReactRootModule", "ReactRoot", "addSchemaModule", "schema", "AnchoredTo", "MessageV1", "addSurfaceModule", "ReactSurface", "addTranslationsModule", "translations", "threadTranslations", "addModule", "activatesOn", "ClientEvents", "ClientReady", "CallManager", "AppActivationEvents", "SetupSettings", "ThreadState", "SetupMigration", "succeed", "Capability", "contributes", "ClientCapabilities", "Migration", "MessageV1ToV2", "SpaceEvents", "SpaceCreated", "SpaceCapabilities", "OnCreateSpace", "params", "Operation", "invoke", "ThreadOperation", "SpacesReady", "Repair", "MarkdownEvents", "SetupExtensions", "Markdown"]
7
7
  }
@@ -2,13 +2,13 @@ import { createRequire } from 'node:module';const require = createRequire(import
2
2
  import {
3
3
  ThreadCapabilities,
4
4
  ThreadOperation
5
- } from "./chunk-ARTUUKTM.mjs";
5
+ } from "./chunk-WMWUXWAS.mjs";
6
6
  import "./chunk-HSLMI22Q.mjs";
7
7
 
8
8
  // src/capabilities/markdown/markdown.ts
9
9
  import { EditorView as EditorView2 } from "@codemirror/view";
10
10
  import * as Effect from "effect/Effect";
11
- import { Capability, Common } from "@dxos/app-framework";
11
+ import { Capabilities, Capability } from "@dxos/app-framework";
12
12
  import { Obj as Obj2 } from "@dxos/echo";
13
13
  import { ATTENDABLE_PATH_SEPARATOR, DeckOperation } from "@dxos/plugin-deck/types";
14
14
  import { MarkdownCapabilities } from "@dxos/plugin-markdown";
@@ -146,8 +146,8 @@ var markdown_default = Capability.makeModule(Effect.fnUntraced(function* () {
146
146
  const capabilities = yield* Capability.Service;
147
147
  return Capability.contributes(MarkdownCapabilities.Extensions, [
148
148
  ({ document: doc }) => {
149
- const { invokePromise } = capabilities.get(Common.Capability.OperationInvoker);
150
- const registry = capabilities.get(Common.Capability.AtomRegistry);
149
+ const { invokePromise } = capabilities.get(Capabilities.OperationInvoker);
150
+ const registry = capabilities.get(Capabilities.AtomRegistry);
151
151
  const stateAtom = capabilities.get(ThreadCapabilities.State);
152
152
  return threads({
153
153
  registry,
@@ -156,7 +156,7 @@ var markdown_default = Capability.makeModule(Effect.fnUntraced(function* () {
156
156
  },
157
157
  ({ document: doc }) => {
158
158
  if (!doc) return [];
159
- const registry = capabilities.get(Common.Capability.AtomRegistry);
159
+ const registry = capabilities.get(Capabilities.AtomRegistry);
160
160
  const stateAtom = capabilities.get(ThreadCapabilities.State);
161
161
  return EditorView2.updateListener.of((update) => {
162
162
  if (update.docChanged || update.selectionSet) {
@@ -175,7 +175,7 @@ var markdown_default = Capability.makeModule(Effect.fnUntraced(function* () {
175
175
  },
176
176
  ({ document: doc }) => {
177
177
  if (!doc) return [];
178
- const { invokePromise } = capabilities.get(Common.Capability.OperationInvoker);
178
+ const { invokePromise } = capabilities.get(Capabilities.OperationInvoker);
179
179
  const id = Obj2.getDXN(doc).toString();
180
180
  return EditorView2.updateListener.of((update) => {
181
181
  update.transactions.forEach((transaction) => {
@@ -208,4 +208,4 @@ var selectionOverlapsComment = (state) => {
208
208
  export {
209
209
  markdown_default as default
210
210
  };
211
- //# sourceMappingURL=markdown-N2UJ3D6L.mjs.map
211
+ //# sourceMappingURL=markdown-6LRP3PAP.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/markdown/markdown.ts", "../../../src/extensions/threads.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { EditorView } from '@codemirror/view';\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { ATTENDABLE_PATH_SEPARATOR, DeckOperation } from '@dxos/plugin-deck/types';\nimport { MarkdownCapabilities } from '@dxos/plugin-markdown';\nimport { type EditorState, commentClickedEffect, commentsState, overlap } from '@dxos/ui-editor';\n\nimport { threads } from '../../extensions';\nimport { ThreadCapabilities } from '../../types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n // Get context for lazy capability access in callbacks.\n const capabilities = yield* Capability.Service;\n\n return Capability.contributes(MarkdownCapabilities.Extensions, [\n ({ document: doc }) => {\n const { invokePromise } = capabilities.get(Capabilities.OperationInvoker);\n const registry = capabilities.get(Capabilities.AtomRegistry);\n const stateAtom = capabilities.get(ThreadCapabilities.State);\n return threads({ registry, stateAtom }, doc, invokePromise);\n },\n ({ document: doc }) => {\n if (!doc) return [];\n const registry = capabilities.get(Capabilities.AtomRegistry);\n const stateAtom = capabilities.get(ThreadCapabilities.State);\n\n return EditorView.updateListener.of((update) => {\n if (update.docChanged || update.selectionSet) {\n const objectId = Obj.getDXN(doc).toString();\n const overlaps = selectionOverlapsComment(update.state);\n const current = registry.get(stateAtom);\n registry.set(stateAtom, {\n ...current,\n toolbar: { ...current.toolbar, [objectId]: overlaps },\n });\n }\n });\n },\n ({ document: doc }) => {\n if (!doc) return [];\n const { invokePromise } = capabilities.get(Capabilities.OperationInvoker);\n const id = Obj.getDXN(doc).toString();\n\n return EditorView.updateListener.of((update) => {\n update.transactions.forEach((transaction) => {\n transaction.effects.forEach(async (effect) => {\n if (effect.is(commentClickedEffect)) {\n void invokePromise(DeckOperation.ChangeCompanion, {\n primary: id,\n companion: `${id}${ATTENDABLE_PATH_SEPARATOR}comments`,\n });\n }\n });\n });\n });\n },\n ]);\n }),\n);\n\nconst selectionOverlapsComment = (state: EditorState): boolean => {\n // May not be defined if thread plugin not installed.\n const commentState = state.field(commentsState, false);\n if (commentState === undefined) {\n return false;\n }\n\n const { selection } = state;\n for (const range of selection.ranges) {\n if (commentState.comments.some(({ range: commentRange }) => overlap(commentRange, range))) {\n return true;\n }\n }\n\n return false;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Extension } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { type Atom, type Registry } from '@effect-atom/atom-react';\n\nimport { Filter, Obj, Query, Relation } from '@dxos/echo';\nimport { createDocAccessor, getTextInRange } from '@dxos/echo-db';\nimport { type OperationInvoker } from '@dxos/operation';\nimport { type Markdown } from '@dxos/plugin-markdown/types';\nimport { AnchoredTo, Thread } from '@dxos/types';\nimport { comments, createExternalCommentSync } from '@dxos/ui-editor';\n\nimport { ThreadOperation, type ThreadState } from '../types';\n\n// TODO(burdon): Factor out.\nconst getName = (doc: Markdown.Document, anchor: string): string | undefined => {\n if (doc.content) {\n const [start, end] = anchor.split(':');\n return getTextInRange(createDocAccessor(doc.content.target!, ['content']), start, end);\n }\n};\n\nexport type ThreadStore = {\n registry: Registry.Registry;\n stateAtom: Atom.Writable<ThreadState>;\n};\n\n/**\n * Construct plugins.\n */\nexport const threads = (\n store: ThreadStore,\n doc?: Markdown.Document,\n invokePromise?: OperationInvoker.OperationInvoker['invokePromise'],\n): Extension => {\n const db = doc && Obj.getDatabase(doc);\n if (!doc || !db || !invokePromise) {\n // Include no-op comments extension here to ensure that the facets are always present when they are expected.\n // TODO(wittjosiah): The Editor should only look for these facets when comments are available.\n return [comments()];\n }\n\n const { registry, stateAtom } = store;\n const objectId = Obj.getDXN(doc).toString();\n const query = db.query(Query.select(Filter.id(doc.id)).targetOf(AnchoredTo.AnchoredTo));\n\n // Get current anchors by combining query results with store drafts.\n const getAnchors = () =>\n query.results\n .filter((anchor) => {\n const thread = Relation.getSource(anchor);\n return Obj.instanceOf(Thread.Thread, thread) && thread.status !== 'resolved';\n })\n .concat(registry.get(stateAtom).drafts[objectId] ?? []);\n\n return [\n EditorView.domEventHandlers({\n destroy: () => {\n // Note: cleanup functions for subscriptions are handled by createExternalCommentSync.\n },\n }),\n\n EditorView.updateListener.of((update) => {\n if (update.docChanged) {\n getAnchors().forEach((anchor) => {\n if (anchor.anchor) {\n // Only update if the name has changed, otherwise this will cause an infinite loop.\n // Skip if the name is empty; this means comment text was deleted, but thread name should remain.\n const name = getName(doc, anchor.anchor);\n const thread = Relation.getSource(anchor) as Thread.Thread;\n if (name && name !== thread.name) {\n Obj.change(thread, (t) => {\n t.name = name;\n });\n }\n }\n });\n }\n }),\n\n createExternalCommentSync(\n objectId,\n (sink) => {\n // Subscribe to both query changes and store state changes.\n const unsubQuery = query.subscribe(sink);\n const unsubStore = registry.subscribe(stateAtom, sink);\n return () => {\n unsubQuery();\n unsubStore();\n };\n },\n () =>\n getAnchors()\n .filter((anchor) => anchor.anchor)\n .map((anchor) => ({\n id: Obj.getDXN(Relation.getSource(anchor)).toString(),\n cursor: anchor.anchor,\n })),\n ),\n\n comments({\n id: objectId,\n onCreate: ({ cursor }) => {\n const name = getName(doc, cursor);\n void invokePromise(ThreadOperation.Create, {\n anchor: cursor,\n name,\n subject: doc,\n });\n },\n onDelete: ({ id }) => {\n const drafts = registry.get(stateAtom).drafts[objectId];\n if (drafts) {\n const index = drafts.findIndex((draft) => Relation.getDXN(draft).toString() === id);\n if (index !== -1) {\n const current = registry.get(stateAtom);\n registry.set(stateAtom, {\n ...current,\n drafts: {\n ...current.drafts,\n [objectId]: current.drafts[objectId]?.filter((_, i) => i !== index),\n },\n });\n }\n }\n\n const thread = query.results.find((object) => Relation.getSource(object).id === id);\n if (thread) {\n Relation.change(thread, (t) => {\n t.anchor = undefined;\n });\n }\n },\n onUpdate: ({ id, cursor }) => {\n const draft = registry.get(stateAtom).drafts[objectId]?.find((d) => Relation.getDXN(d).toString() === id);\n if (draft) {\n const thread = Relation.getSource(draft) as Thread.Thread;\n Obj.change(thread, (t) => {\n t.name = getName(doc, cursor);\n });\n Relation.change(draft, (d) => {\n d.anchor = cursor;\n });\n }\n\n const relation = query.results.find((object) => Relation.getSource(object).id === id);\n if (relation) {\n const thread = Relation.getSource(relation);\n if (Obj.instanceOf(Thread.Thread, thread)) {\n Obj.change(thread, (t) => {\n t.name = getName(doc, cursor);\n });\n Relation.change(relation, (r) => {\n r.anchor = cursor;\n });\n }\n }\n },\n onSelect: ({ selection }) => {\n const current = selection.current ?? selection.closest;\n if (current) {\n void invokePromise(ThreadOperation.Select, { current });\n }\n },\n }),\n ];\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["EditorView", "Effect", "Capabilities", "Capability", "Obj", "ATTENDABLE_PATH_SEPARATOR", "DeckOperation", "MarkdownCapabilities", "commentClickedEffect", "commentsState", "overlap", "EditorView", "Filter", "Obj", "Query", "Relation", "createDocAccessor", "getTextInRange", "AnchoredTo", "Thread", "comments", "createExternalCommentSync", "getName", "doc", "anchor", "content", "start", "end", "split", "getTextInRange", "createDocAccessor", "target", "threads", "store", "invokePromise", "db", "Obj", "getDatabase", "comments", "registry", "stateAtom", "objectId", "getDXN", "toString", "query", "Query", "select", "Filter", "id", "targetOf", "AnchoredTo", "getAnchors", "results", "filter", "thread", "Relation", "getSource", "instanceOf", "Thread", "status", "concat", "get", "drafts", "EditorView", "domEventHandlers", "destroy", "updateListener", "of", "update", "docChanged", "forEach", "name", "change", "t", "createExternalCommentSync", "sink", "unsubQuery", "subscribe", "unsubStore", "map", "cursor", "onCreate", "ThreadOperation", "Create", "subject", "onDelete", "index", "findIndex", "draft", "current", "set", "_", "i", "find", "object", "undefined", "onUpdate", "d", "relation", "r", "onSelect", "selection", "closest", "Select", "Capability", "makeModule", "fnUntraced", "capabilities", "Service", "contributes", "MarkdownCapabilities", "Extensions", "document", "doc", "invokePromise", "get", "Capabilities", "OperationInvoker", "registry", "AtomRegistry", "stateAtom", "ThreadCapabilities", "State", "threads", "EditorView", "updateListener", "of", "update", "docChanged", "selectionSet", "objectId", "Obj", "getDXN", "toString", "overlaps", "selectionOverlapsComment", "state", "current", "set", "toolbar", "id", "transactions", "forEach", "transaction", "effects", "effect", "is", "commentClickedEffect", "DeckOperation", "ChangeCompanion", "primary", "companion", "ATTENDABLE_PATH_SEPARATOR", "commentState", "field", "commentsState", "undefined", "selection", "range", "ranges", "comments", "some", "commentRange", "overlap"]
7
+ }