@dxos/plugin-thread 0.8.0 → 0.8.1-main.81238a8

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 (157) hide show
  1. package/dist/lib/browser/ChannelContainer-6YTHIJPS.mjs +74 -0
  2. package/dist/lib/browser/ChannelContainer-6YTHIJPS.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-UPKU23DA.mjs → chunk-3BIHVVEA.mjs} +5 -5
  4. package/dist/lib/browser/chunk-3BIHVVEA.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-BNEWNQBO.mjs → chunk-K3NUEKPS.mjs} +14 -2
  6. package/dist/lib/browser/{chunk-BNEWNQBO.mjs.map → chunk-K3NUEKPS.mjs.map} +4 -4
  7. package/dist/lib/browser/{chunk-NAO3LZMZ.mjs → chunk-NOOMCX5E.mjs} +3 -2
  8. package/dist/lib/browser/chunk-NOOMCX5E.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-YK3ICB7G.mjs → chunk-OPDRTA7Q.mjs} +2 -2
  10. package/dist/lib/browser/{chunk-YK3ICB7G.mjs.map → chunk-OPDRTA7Q.mjs.map} +1 -1
  11. package/dist/lib/browser/{chunk-636QDHE3.mjs → chunk-WBJLUUOK.mjs} +1 -1
  12. package/dist/lib/browser/{chunk-636QDHE3.mjs.map → chunk-WBJLUUOK.mjs.map} +2 -2
  13. package/dist/lib/browser/index.mjs +25 -15
  14. package/dist/lib/browser/index.mjs.map +4 -4
  15. package/dist/lib/browser/{intent-resolver-FAFQ54NP.mjs → intent-resolver-WAVFYWIS.mjs} +5 -5
  16. package/dist/lib/browser/{intent-resolver-FAFQ54NP.mjs.map → intent-resolver-WAVFYWIS.mjs.map} +2 -2
  17. package/dist/lib/browser/{markdown-RPYOUBVR.mjs → markdown-R6VIT67G.mjs} +6 -6
  18. package/dist/lib/browser/markdown-R6VIT67G.mjs.map +7 -0
  19. package/dist/lib/browser/meta.json +1 -1
  20. package/dist/lib/browser/{react-surface-Y4MUSICN.mjs → react-surface-2MKPJW4D.mjs} +15 -28
  21. package/dist/lib/browser/react-surface-2MKPJW4D.mjs.map +7 -0
  22. package/dist/lib/browser/{settings-WQTE5AEZ.mjs → settings-2EJW5SUY.mjs} +3 -3
  23. package/dist/lib/browser/{state-GNFUURIC.mjs → state-HPUFZBB7.mjs} +4 -3
  24. package/dist/lib/browser/state-HPUFZBB7.mjs.map +7 -0
  25. package/dist/lib/browser/types.mjs +2 -2
  26. package/dist/lib/node/ChannelContainer-AVRYTS7L.cjs +98 -0
  27. package/dist/lib/node/ChannelContainer-AVRYTS7L.cjs.map +7 -0
  28. package/dist/lib/node/{chunk-AWSTZ2KN.cjs → chunk-E6HDHBUB.cjs} +28 -4
  29. package/dist/lib/node/chunk-E6HDHBUB.cjs.map +7 -0
  30. package/dist/lib/node/{chunk-RQR5Z23G.cjs → chunk-EHS2JT63.cjs} +12 -12
  31. package/dist/lib/node/chunk-EHS2JT63.cjs.map +7 -0
  32. package/dist/lib/node/{chunk-CMEMMYDL.cjs → chunk-GBL2K6YX.cjs} +6 -6
  33. package/dist/lib/node/{chunk-CMEMMYDL.cjs.map → chunk-GBL2K6YX.cjs.map} +1 -1
  34. package/dist/lib/node/{chunk-F735VMTN.cjs → chunk-ONLWOUYZ.cjs} +4 -4
  35. package/dist/lib/node/{chunk-F735VMTN.cjs.map → chunk-ONLWOUYZ.cjs.map} +2 -2
  36. package/dist/lib/node/{chunk-FPWNZ6TB.cjs → chunk-VEVJBOWK.cjs} +8 -7
  37. package/dist/lib/node/chunk-VEVJBOWK.cjs.map +7 -0
  38. package/dist/lib/node/index.cjs +62 -53
  39. package/dist/lib/node/index.cjs.map +4 -4
  40. package/dist/lib/node/{intent-resolver-DVBEXJ33.cjs → intent-resolver-ESZ7YDRL.cjs} +22 -22
  41. package/dist/lib/node/{intent-resolver-DVBEXJ33.cjs.map → intent-resolver-ESZ7YDRL.cjs.map} +2 -2
  42. package/dist/lib/node/{markdown-ELRGISXE.cjs → markdown-KJJCSWOZ.cjs} +12 -12
  43. package/dist/lib/node/markdown-KJJCSWOZ.cjs.map +7 -0
  44. package/dist/lib/node/meta.json +1 -1
  45. package/dist/lib/node/{react-surface-7HLTN5XS.cjs → react-surface-YJNIS6CL.cjs} +35 -48
  46. package/dist/lib/node/react-surface-YJNIS6CL.cjs.map +7 -0
  47. package/dist/lib/node/{settings-7VQYARM5.cjs → settings-5YWRJNSN.cjs} +8 -8
  48. package/dist/lib/node/{state-TQWEZ6B3.cjs → state-JMI5ZXZI.cjs} +8 -7
  49. package/dist/lib/node/state-JMI5ZXZI.cjs.map +7 -0
  50. package/dist/lib/node/types.cjs +4 -4
  51. package/dist/lib/node/types.cjs.map +1 -1
  52. package/dist/lib/node-esm/ChannelContainer-2ZU33KAF.mjs +75 -0
  53. package/dist/lib/node-esm/ChannelContainer-2ZU33KAF.mjs.map +7 -0
  54. package/dist/lib/node-esm/{chunk-FXUATCLW.mjs → chunk-42F2DTMM.mjs} +1 -1
  55. package/dist/lib/node-esm/{chunk-FXUATCLW.mjs.map → chunk-42F2DTMM.mjs.map} +2 -2
  56. package/dist/lib/node-esm/{chunk-33NDMQQQ.mjs → chunk-B5VGBXRR.mjs} +2 -2
  57. package/dist/lib/node-esm/{chunk-33NDMQQQ.mjs.map → chunk-B5VGBXRR.mjs.map} +1 -1
  58. package/dist/lib/node-esm/{chunk-HLWJTUWZ.mjs → chunk-L4C7BEQZ.mjs} +14 -2
  59. package/dist/lib/node-esm/{chunk-HLWJTUWZ.mjs.map → chunk-L4C7BEQZ.mjs.map} +4 -4
  60. package/dist/lib/node-esm/{chunk-CISLDOH7.mjs → chunk-RN3V7SYL.mjs} +5 -5
  61. package/dist/lib/node-esm/chunk-RN3V7SYL.mjs.map +7 -0
  62. package/dist/lib/node-esm/{chunk-ZJITX3TO.mjs → chunk-TXW5SIBN.mjs} +3 -2
  63. package/dist/lib/node-esm/chunk-TXW5SIBN.mjs.map +7 -0
  64. package/dist/lib/node-esm/index.mjs +25 -15
  65. package/dist/lib/node-esm/index.mjs.map +4 -4
  66. package/dist/lib/node-esm/{intent-resolver-DHVLBNCC.mjs → intent-resolver-YLBQTBSE.mjs} +5 -5
  67. package/dist/lib/node-esm/{intent-resolver-DHVLBNCC.mjs.map → intent-resolver-YLBQTBSE.mjs.map} +2 -2
  68. package/dist/lib/node-esm/{markdown-23OB7EZG.mjs → markdown-LF4X5O6L.mjs} +6 -6
  69. package/dist/lib/node-esm/markdown-LF4X5O6L.mjs.map +7 -0
  70. package/dist/lib/node-esm/meta.json +1 -1
  71. package/dist/lib/node-esm/{react-surface-AZHTTR6J.mjs → react-surface-ZEDBXBP3.mjs} +15 -28
  72. package/dist/lib/node-esm/react-surface-ZEDBXBP3.mjs.map +7 -0
  73. package/dist/lib/node-esm/{settings-SGMM7UDT.mjs → settings-5EZW6KK4.mjs} +3 -3
  74. package/dist/lib/node-esm/{state-7MLR27YG.mjs → state-PSZO57LP.mjs} +4 -3
  75. package/dist/lib/node-esm/state-PSZO57LP.mjs.map +7 -0
  76. package/dist/lib/node-esm/types.mjs +2 -2
  77. package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
  78. package/dist/types/src/capabilities/capabilities.d.ts +5 -0
  79. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  80. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  81. package/dist/types/src/components/ChannelContainer.d.ts +9 -0
  82. package/dist/types/src/components/ChannelContainer.d.ts.map +1 -0
  83. package/dist/types/src/components/ChatContainer.d.ts +3 -2
  84. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  85. package/dist/types/src/components/CommentContainer.d.ts +2 -1
  86. package/dist/types/src/components/CommentContainer.d.ts.map +1 -1
  87. package/dist/types/src/components/CommentsContainer.d.ts +2 -1
  88. package/dist/types/src/components/CommentsContainer.d.ts.map +1 -1
  89. package/dist/types/src/components/MessageContainer.d.ts +2 -1
  90. package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
  91. package/dist/types/src/components/ThreadComplementary.d.ts +2 -1
  92. package/dist/types/src/components/ThreadComplementary.d.ts.map +1 -1
  93. package/dist/types/src/components/ThreadSettings.d.ts +2 -1
  94. package/dist/types/src/components/ThreadSettings.d.ts.map +1 -1
  95. package/dist/types/src/components/index.d.ts +3 -2
  96. package/dist/types/src/components/index.d.ts.map +1 -1
  97. package/dist/types/src/components/testing.d.ts +38 -38
  98. package/dist/types/src/components/testing.d.ts.map +1 -1
  99. package/dist/types/src/events.d.ts +4 -0
  100. package/dist/types/src/events.d.ts.map +1 -0
  101. package/dist/types/src/index.d.ts +2 -0
  102. package/dist/types/src/index.d.ts.map +1 -1
  103. package/dist/types/src/meta.d.ts +2 -7
  104. package/dist/types/src/meta.d.ts.map +1 -1
  105. package/dist/types/src/types.d.ts +2 -0
  106. package/dist/types/src/types.d.ts.map +1 -1
  107. package/package.json +31 -30
  108. package/src/ThreadPlugin.tsx +2 -1
  109. package/src/capabilities/capabilities.ts +6 -0
  110. package/src/capabilities/intent-resolver.ts +1 -1
  111. package/src/capabilities/react-surface.tsx +5 -16
  112. package/src/capabilities/state.ts +1 -1
  113. package/src/components/ChannelContainer.tsx +80 -0
  114. package/src/components/ChatContainer.tsx +1 -1
  115. package/src/components/CommentContainer.tsx +1 -1
  116. package/src/components/MessageContainer.tsx +1 -1
  117. package/src/components/ThreadComplementary.tsx +1 -1
  118. package/src/components/index.ts +1 -1
  119. package/src/events.ts +11 -0
  120. package/src/extensions/threads.ts +2 -2
  121. package/src/index.ts +2 -0
  122. package/src/meta.ts +2 -2
  123. package/src/types.ts +2 -0
  124. package/dist/lib/browser/ThreadContainer-6OP5AG2W.mjs +0 -19
  125. package/dist/lib/browser/ThreadContainer-6OP5AG2W.mjs.map +0 -7
  126. package/dist/lib/browser/chunk-NAO3LZMZ.mjs.map +0 -7
  127. package/dist/lib/browser/chunk-UPKU23DA.mjs.map +0 -7
  128. package/dist/lib/browser/chunk-VOMIDDNO.mjs +0 -15
  129. package/dist/lib/browser/chunk-VOMIDDNO.mjs.map +0 -7
  130. package/dist/lib/browser/markdown-RPYOUBVR.mjs.map +0 -7
  131. package/dist/lib/browser/react-surface-Y4MUSICN.mjs.map +0 -7
  132. package/dist/lib/browser/state-GNFUURIC.mjs.map +0 -7
  133. package/dist/lib/node/ThreadContainer-LTKKLPXX.cjs +0 -45
  134. package/dist/lib/node/ThreadContainer-LTKKLPXX.cjs.map +0 -7
  135. package/dist/lib/node/chunk-AWSTZ2KN.cjs.map +0 -7
  136. package/dist/lib/node/chunk-BHFHFTHO.cjs +0 -50
  137. package/dist/lib/node/chunk-BHFHFTHO.cjs.map +0 -7
  138. package/dist/lib/node/chunk-FPWNZ6TB.cjs.map +0 -7
  139. package/dist/lib/node/chunk-RQR5Z23G.cjs.map +0 -7
  140. package/dist/lib/node/markdown-ELRGISXE.cjs.map +0 -7
  141. package/dist/lib/node/react-surface-7HLTN5XS.cjs.map +0 -7
  142. package/dist/lib/node/state-TQWEZ6B3.cjs.map +0 -7
  143. package/dist/lib/node-esm/ThreadContainer-SV74JFRH.mjs +0 -20
  144. package/dist/lib/node-esm/ThreadContainer-SV74JFRH.mjs.map +0 -7
  145. package/dist/lib/node-esm/chunk-CISLDOH7.mjs.map +0 -7
  146. package/dist/lib/node-esm/chunk-PJPVEO7E.mjs +0 -17
  147. package/dist/lib/node-esm/chunk-PJPVEO7E.mjs.map +0 -7
  148. package/dist/lib/node-esm/chunk-ZJITX3TO.mjs.map +0 -7
  149. package/dist/lib/node-esm/markdown-23OB7EZG.mjs.map +0 -7
  150. package/dist/lib/node-esm/react-surface-AZHTTR6J.mjs.map +0 -7
  151. package/dist/lib/node-esm/state-7MLR27YG.mjs.map +0 -7
  152. package/dist/types/src/components/ThreadContainer.d.ts +0 -7
  153. package/dist/types/src/components/ThreadContainer.d.ts.map +0 -1
  154. package/src/components/ThreadContainer.tsx +0 -22
  155. /package/dist/lib/browser/{settings-WQTE5AEZ.mjs.map → settings-2EJW5SUY.mjs.map} +0 -0
  156. /package/dist/lib/node/{settings-7VQYARM5.cjs.map → settings-5YWRJNSN.cjs.map} +0 -0
  157. /package/dist/lib/node-esm/{settings-SGMM7UDT.mjs.map → settings-5EZW6KK4.mjs.map} +0 -0
@@ -16,20 +16,21 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var chunk_FPWNZ6TB_exports = {};
20
- __export(chunk_FPWNZ6TB_exports, {
19
+ var chunk_VEVJBOWK_exports = {};
20
+ __export(chunk_VEVJBOWK_exports, {
21
21
  ThreadCapabilities: () => ThreadCapabilities
22
22
  });
23
- module.exports = __toCommonJS(chunk_FPWNZ6TB_exports);
24
- var import_chunk_F735VMTN = require("./chunk-F735VMTN.cjs");
23
+ module.exports = __toCommonJS(chunk_VEVJBOWK_exports);
24
+ var import_chunk_ONLWOUYZ = require("./chunk-ONLWOUYZ.cjs");
25
25
  var import_app_framework = require("@dxos/app-framework");
26
26
  var ThreadCapabilities;
27
27
  (function(ThreadCapabilities2) {
28
- ThreadCapabilities2.State = (0, import_app_framework.defineCapability)(`${import_chunk_F735VMTN.THREAD_PLUGIN}/capability/state`);
29
- ThreadCapabilities2.MutableState = (0, import_app_framework.defineCapability)(`${import_chunk_F735VMTN.THREAD_PLUGIN}/capability/state`);
28
+ ThreadCapabilities2.State = (0, import_app_framework.defineCapability)(`${import_chunk_ONLWOUYZ.THREAD_PLUGIN}/capability/state`);
29
+ ThreadCapabilities2.MutableState = (0, import_app_framework.defineCapability)(`${import_chunk_ONLWOUYZ.THREAD_PLUGIN}/capability/state`);
30
+ ThreadCapabilities2.Activity = (0, import_app_framework.defineCapability)(`${import_chunk_ONLWOUYZ.THREAD_PLUGIN}/capability/activity`);
30
31
  })(ThreadCapabilities || (ThreadCapabilities = {}));
31
32
  // Annotate the CommonJS export names for ESM import in node:
32
33
  0 && (module.exports = {
33
34
  ThreadCapabilities
34
35
  });
35
- //# sourceMappingURL=chunk-FPWNZ6TB.cjs.map
36
+ //# sourceMappingURL=chunk-VEVJBOWK.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/capabilities.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineCapability } from '@dxos/app-framework';\nimport { type MenuActionProperties } from '@dxos/react-ui-menu';\nimport { type DeepReadonly } from '@dxos/util';\n\nimport { THREAD_PLUGIN } from '../meta';\nimport { type ViewState, type ThreadState } from '../types';\n\nexport namespace ThreadCapabilities {\n type GetViewState = (subjectId: string) => ViewState;\n export const State = defineCapability<{ state: DeepReadonly<ThreadState>; getViewState: GetViewState }>(\n `${THREAD_PLUGIN}/capability/state`,\n );\n export const MutableState = defineCapability<{ state: ThreadState; getViewState: GetViewState }>(\n `${THREAD_PLUGIN}/capability/state`,\n );\n\n export type Activity = Omit<MenuActionProperties, 'variant' | 'checked'> & {\n id: string;\n };\n export const Activity = defineCapability<Activity>(`${THREAD_PLUGIN}/capability/activity`);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAAiC;;UAOhBA,qBAAAA;sBAEFC,YAAQC,uCACnB,GAAGC,mCAAAA,mBAAgC;sBAExBC,mBAAeF,uCAC1B,GAAGC,mCAAAA,mBAAgC;sBAMxBE,eAAWH,uCAA2B,GAAGC,mCAAAA,sBAAmC;AAC3F,GAbiBH,uBAAAA,qBAAAA,CAAAA,EAAAA;",
6
+ "names": ["ThreadCapabilities", "State", "defineCapability", "THREAD_PLUGIN", "MutableState", "Activity"]
7
+ }
@@ -18,21 +18,23 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var node_exports = {};
20
20
  __export(node_exports, {
21
- THREAD_ITEM: () => import_chunk_F735VMTN.THREAD_ITEM,
22
- THREAD_PLUGIN: () => import_chunk_F735VMTN.THREAD_PLUGIN,
21
+ THREAD_ITEM: () => import_chunk_ONLWOUYZ.THREAD_ITEM,
22
+ THREAD_PLUGIN: () => import_chunk_ONLWOUYZ.THREAD_PLUGIN,
23
+ ThreadCapabilities: () => import_chunk_VEVJBOWK.ThreadCapabilities,
24
+ ThreadEvents: () => ThreadEvents,
23
25
  ThreadPlugin: () => ThreadPlugin,
24
- meta: () => import_chunk_F735VMTN.meta,
25
- useAnalyticsCallback: () => import_chunk_AWSTZ2KN.useAnalyticsCallback,
26
- useOnEditAnalytics: () => import_chunk_AWSTZ2KN.useOnEditAnalytics,
27
- useStatus: () => import_chunk_AWSTZ2KN.useStatus
26
+ meta: () => import_chunk_ONLWOUYZ.meta,
27
+ useAnalyticsCallback: () => import_chunk_E6HDHBUB.useAnalyticsCallback,
28
+ useOnEditAnalytics: () => import_chunk_E6HDHBUB.useOnEditAnalytics,
29
+ useStatus: () => import_chunk_E6HDHBUB.useStatus
28
30
  });
29
31
  module.exports = __toCommonJS(node_exports);
30
- var import_chunk_BHFHFTHO = require("./chunk-BHFHFTHO.cjs");
31
- var import_chunk_AWSTZ2KN = require("./chunk-AWSTZ2KN.cjs");
32
- var import_chunk_CMEMMYDL = require("./chunk-CMEMMYDL.cjs");
33
- var import_chunk_FPWNZ6TB = require("./chunk-FPWNZ6TB.cjs");
34
- var import_chunk_F735VMTN = require("./chunk-F735VMTN.cjs");
32
+ var import_chunk_E6HDHBUB = require("./chunk-E6HDHBUB.cjs");
33
+ var import_chunk_GBL2K6YX = require("./chunk-GBL2K6YX.cjs");
34
+ var import_chunk_VEVJBOWK = require("./chunk-VEVJBOWK.cjs");
35
+ var import_chunk_ONLWOUYZ = require("./chunk-ONLWOUYZ.cjs");
35
36
  var import_app_framework = require("@dxos/app-framework");
37
+ var import_app_framework2 = require("@dxos/app-framework");
36
38
  var import_plugin_client = require("@dxos/plugin-client");
37
39
  var import_plugin_deck = require("@dxos/plugin-deck");
38
40
  var import_plugin_markdown = require("@dxos/plugin-markdown");
@@ -41,13 +43,17 @@ var import_types = require("@dxos/plugin-space/types");
41
43
  var import_echo = require("@dxos/react-client/echo");
42
44
  var import_react_ui_thread = require("@dxos/react-ui-thread");
43
45
  var import_types2 = require("@dxos/plugin-space/types");
46
+ var ThreadEvents;
47
+ (function(ThreadEvents3) {
48
+ ThreadEvents3.SetupActivity = import_app_framework.Events.createStateEvent(`${import_chunk_ONLWOUYZ.THREAD_PLUGIN}/setup-activity`);
49
+ })(ThreadEvents || (ThreadEvents = {}));
44
50
  var translations_default = [
45
51
  {
46
52
  "en-US": {
47
53
  [import_types2.ChannelType.typename]: {
48
54
  "typename label": "Channel"
49
55
  },
50
- [import_chunk_F735VMTN.THREAD_PLUGIN]: {
56
+ [import_chunk_ONLWOUYZ.THREAD_PLUGIN]: {
51
57
  "plugin name": "Threads",
52
58
  "channel name placeholder": "New channel",
53
59
  "channel title label": "Title",
@@ -81,40 +87,40 @@ var translations_default = [
81
87
  }
82
88
  }
83
89
  ];
84
- var ThreadPlugin = () => (0, import_app_framework.definePlugin)(import_chunk_F735VMTN.meta, [
90
+ var ThreadPlugin = () => (0, import_app_framework2.definePlugin)(import_chunk_ONLWOUYZ.meta, [
85
91
  // TODO(wittjosiah): Currently not used but leaving because there will likely be settings for threads again.
86
92
  // defineModule({
87
93
  // id: `${meta.id}/module/settings`,
88
94
  // activatesOn: Events.SetupSettings,
89
95
  // activate: ThreadSettings,
90
96
  // }),
91
- (0, import_app_framework.defineModule)({
92
- id: `${import_chunk_F735VMTN.meta.id}/module/state`,
97
+ (0, import_app_framework2.defineModule)({
98
+ id: `${import_chunk_ONLWOUYZ.meta.id}/module/state`,
93
99
  // TODO(wittjosiah): Does not integrate with settings store.
94
100
  // Should this be a different event?
95
101
  // Should settings store be renamed to be more generic?
96
- activatesOn: import_app_framework.Events.SetupSettings,
97
- activate: import_chunk_BHFHFTHO.ThreadState
102
+ activatesOn: import_app_framework2.Events.SetupSettings,
103
+ activate: import_chunk_E6HDHBUB.ThreadState
98
104
  }),
99
- (0, import_app_framework.defineModule)({
100
- id: `${import_chunk_F735VMTN.meta.id}/module/translations`,
101
- activatesOn: import_app_framework.Events.SetupTranslations,
102
- activate: () => (0, import_app_framework.contributes)(import_app_framework.Capabilities.Translations, [
105
+ (0, import_app_framework2.defineModule)({
106
+ id: `${import_chunk_ONLWOUYZ.meta.id}/module/translations`,
107
+ activatesOn: import_app_framework2.Events.SetupTranslations,
108
+ activate: () => (0, import_app_framework2.contributes)(import_app_framework2.Capabilities.Translations, [
103
109
  ...translations_default,
104
110
  ...import_react_ui_thread.translations
105
111
  ])
106
112
  }),
107
- (0, import_app_framework.defineModule)({
108
- id: `${import_chunk_F735VMTN.meta.id}/module/metadata`,
109
- activatesOn: import_app_framework.Events.SetupMetadata,
113
+ (0, import_app_framework2.defineModule)({
114
+ id: `${import_chunk_ONLWOUYZ.meta.id}/module/metadata`,
115
+ activatesOn: import_app_framework2.Events.SetupMetadata,
110
116
  activate: () => [
111
- (0, import_app_framework.contributes)(import_app_framework.Capabilities.Metadata, {
117
+ (0, import_app_framework2.contributes)(import_app_framework2.Capabilities.Metadata, {
112
118
  id: import_types.ChannelType.typename,
113
119
  metadata: {
114
120
  placeholder: [
115
121
  "channel name placeholder",
116
122
  {
117
- ns: import_chunk_F735VMTN.THREAD_PLUGIN
123
+ ns: import_chunk_ONLWOUYZ.THREAD_PLUGIN
118
124
  }
119
125
  ],
120
126
  icon: "ph--chat--regular",
@@ -122,22 +128,22 @@ var ThreadPlugin = () => (0, import_app_framework.definePlugin)(import_chunk_F73
122
128
  loadReferences: async (channel) => await import_echo.RefArray.loadAll(channel.threads ?? [])
123
129
  }
124
130
  }),
125
- (0, import_app_framework.contributes)(import_app_framework.Capabilities.Metadata, {
131
+ (0, import_app_framework2.contributes)(import_app_framework2.Capabilities.Metadata, {
126
132
  id: import_types.ThreadType.typename,
127
133
  metadata: {
128
134
  // TODO(wittjosiah): Move out of metadata.
129
135
  loadReferences: async (thread) => await import_echo.RefArray.loadAll(thread.messages ?? [])
130
136
  }
131
137
  }),
132
- (0, import_app_framework.contributes)(import_app_framework.Capabilities.Metadata, {
138
+ (0, import_app_framework2.contributes)(import_app_framework2.Capabilities.Metadata, {
133
139
  id: import_types.MessageType.typename,
134
140
  metadata: {
135
141
  // TODO(wittjosiah): Move out of metadata.
136
142
  loadReferences: (message) => []
137
143
  }
138
144
  }),
139
- (0, import_app_framework.contributes)(import_app_framework.Capabilities.Metadata, {
140
- id: import_chunk_F735VMTN.THREAD_ITEM,
145
+ (0, import_app_framework2.contributes)(import_app_framework2.Capabilities.Metadata, {
146
+ id: import_chunk_ONLWOUYZ.THREAD_ITEM,
141
147
  metadata: {
142
148
  parse: (item, type) => {
143
149
  switch (type) {
@@ -160,31 +166,31 @@ var ThreadPlugin = () => (0, import_app_framework.definePlugin)(import_chunk_F73
160
166
  })
161
167
  ]
162
168
  }),
163
- (0, import_app_framework.defineModule)({
164
- id: `${import_chunk_F735VMTN.meta.id}/module/object-form`,
169
+ (0, import_app_framework2.defineModule)({
170
+ id: `${import_chunk_ONLWOUYZ.meta.id}/module/object-form`,
165
171
  activatesOn: import_plugin_client.ClientEvents.SetupSchema,
166
- activate: () => (0, import_app_framework.contributes)(import_plugin_space.SpaceCapabilities.ObjectForm, (0, import_types.defineObjectForm)({
172
+ activate: () => (0, import_app_framework2.contributes)(import_plugin_space.SpaceCapabilities.ObjectForm, (0, import_types.defineObjectForm)({
167
173
  objectSchema: import_types.ChannelType,
168
- getIntent: () => (0, import_app_framework.createIntent)(import_chunk_CMEMMYDL.ThreadAction.Create)
174
+ getIntent: () => (0, import_app_framework2.createIntent)(import_chunk_GBL2K6YX.ThreadAction.Create)
169
175
  }))
170
176
  }),
171
- (0, import_app_framework.defineModule)({
172
- id: `${import_chunk_F735VMTN.meta.id}/module/schema`,
177
+ (0, import_app_framework2.defineModule)({
178
+ id: `${import_chunk_ONLWOUYZ.meta.id}/module/schema`,
173
179
  activatesOn: import_plugin_client.ClientEvents.SetupSchema,
174
- activate: () => (0, import_app_framework.contributes)(import_plugin_client.ClientCapabilities.Schema, [
180
+ activate: () => (0, import_app_framework2.contributes)(import_plugin_client.ClientCapabilities.Schema, [
175
181
  import_types.ThreadType,
176
182
  import_types.MessageType
177
183
  ])
178
184
  }),
179
- (0, import_app_framework.defineModule)({
180
- id: `${import_chunk_F735VMTN.meta.id}/module/complementary-panel`,
185
+ (0, import_app_framework2.defineModule)({
186
+ id: `${import_chunk_ONLWOUYZ.meta.id}/module/complementary-panel`,
181
187
  activatesOn: import_plugin_deck.DeckEvents.SetupComplementaryPanels,
182
- activate: () => (0, import_app_framework.contributes)(import_plugin_deck.DeckCapabilities.ComplementaryPanel, {
188
+ activate: () => (0, import_app_framework2.contributes)(import_plugin_deck.DeckCapabilities.ComplementaryPanel, {
183
189
  id: "comments",
184
190
  label: [
185
191
  "comments panel label",
186
192
  {
187
- ns: import_chunk_F735VMTN.THREAD_PLUGIN
193
+ ns: import_chunk_ONLWOUYZ.THREAD_PLUGIN
188
194
  }
189
195
  ],
190
196
  icon: "ph--chat-text--regular",
@@ -194,30 +200,33 @@ var ThreadPlugin = () => (0, import_app_framework.definePlugin)(import_chunk_F73
194
200
  filter: (node) => !!node.data && typeof node.data === "object" && "threads" in node.data && Array.isArray(node.data.threads) && !(node.data instanceof import_types.ChannelType)
195
201
  })
196
202
  }),
197
- (0, import_app_framework.defineModule)({
198
- id: `${import_chunk_F735VMTN.meta.id}/module/markdown`,
203
+ (0, import_app_framework2.defineModule)({
204
+ id: `${import_chunk_ONLWOUYZ.meta.id}/module/markdown`,
199
205
  activatesOn: import_plugin_markdown.MarkdownEvents.SetupExtensions,
200
- activate: import_chunk_BHFHFTHO.Markdown
206
+ activate: import_chunk_E6HDHBUB.Markdown
201
207
  }),
202
- (0, import_app_framework.defineModule)({
203
- id: `${import_chunk_F735VMTN.meta.id}/module/react-surface`,
204
- activatesOn: import_app_framework.Events.SetupReactSurface,
208
+ (0, import_app_framework2.defineModule)({
209
+ id: `${import_chunk_ONLWOUYZ.meta.id}/module/react-surface`,
210
+ activatesOn: import_app_framework2.Events.SetupReactSurface,
205
211
  // TODO(wittjosiah): Should occur before the comments thread is loaded when surfaces activation is more granular.
206
212
  activatesBefore: [
207
- import_plugin_space.ThreadEvents.SetupThread
213
+ import_plugin_space.ThreadEvents.SetupThread,
214
+ ThreadEvents.SetupActivity
208
215
  ],
209
- activate: import_chunk_BHFHFTHO.ReactSurface
216
+ activate: import_chunk_E6HDHBUB.ReactSurface
210
217
  }),
211
- (0, import_app_framework.defineModule)({
212
- id: `${import_chunk_F735VMTN.meta.id}/module/intent-resolver`,
213
- activatesOn: import_app_framework.Events.SetupIntentResolver,
214
- activate: import_chunk_BHFHFTHO.IntentResolver
218
+ (0, import_app_framework2.defineModule)({
219
+ id: `${import_chunk_ONLWOUYZ.meta.id}/module/intent-resolver`,
220
+ activatesOn: import_app_framework2.Events.SetupIntentResolver,
221
+ activate: import_chunk_E6HDHBUB.IntentResolver
215
222
  })
216
223
  ]);
217
224
  // Annotate the CommonJS export names for ESM import in node:
218
225
  0 && (module.exports = {
219
226
  THREAD_ITEM,
220
227
  THREAD_PLUGIN,
228
+ ThreadCapabilities,
229
+ ThreadEvents,
221
230
  ThreadPlugin,
222
231
  meta,
223
232
  useAnalyticsCallback,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/ThreadPlugin.tsx", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from '@dxos/app-framework';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { DeckCapabilities, DeckEvents } from '@dxos/plugin-deck';\nimport { MarkdownEvents } from '@dxos/plugin-markdown';\nimport { SpaceCapabilities, ThreadEvents } from '@dxos/plugin-space';\nimport { ChannelType, defineObjectForm, MessageType, ThreadType } from '@dxos/plugin-space/types';\nimport { type ReactiveEchoObject, RefArray } from '@dxos/react-client/echo';\nimport { translations as threadTranslations } from '@dxos/react-ui-thread';\n\nimport { IntentResolver, Markdown, ReactSurface, ThreadState } from './capabilities';\nimport { meta, THREAD_ITEM, THREAD_PLUGIN } from './meta';\nimport translations from './translations';\nimport { ThreadAction } from './types';\n\n// TODO(Zan): Every instance of `cursor` should be replaced with `anchor`.\n// NOTE(burdon): Review/discuss CursorConverter semantics.\nexport const ThreadPlugin = () =>\n definePlugin(meta, [\n // TODO(wittjosiah): Currently not used but leaving because there will likely be settings for threads again.\n // defineModule({\n // id: `${meta.id}/module/settings`,\n // activatesOn: Events.SetupSettings,\n // activate: ThreadSettings,\n // }),\n defineModule({\n id: `${meta.id}/module/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: Events.SetupSettings,\n activate: ThreadState,\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, ...threadTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () => [\n contributes(Capabilities.Metadata, {\n id: ChannelType.typename,\n metadata: {\n placeholder: ['channel name placeholder', { ns: THREAD_PLUGIN }],\n icon: 'ph--chat--regular',\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (channel: ChannelType) => await RefArray.loadAll(channel.threads ?? []),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: ThreadType.typename,\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (thread: ThreadType) => await RefArray.loadAll(thread.messages ?? []),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: MessageType.typename,\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: (message: MessageType) => [], // loadObjectReferences(message, (message) => [...message.parts, message.context]),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: THREAD_ITEM,\n metadata: {\n parse: (item: ReactiveEchoObject<any>, type: string) => {\n switch (type) {\n case 'node':\n return { id: item.id, label: item.title, 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 defineModule({\n id: `${meta.id}/module/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: ChannelType,\n getIntent: () => createIntent(ThreadAction.Create),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => contributes(ClientCapabilities.Schema, [ThreadType, MessageType]),\n }),\n defineModule({\n id: `${meta.id}/module/complementary-panel`,\n activatesOn: DeckEvents.SetupComplementaryPanels,\n activate: () =>\n contributes(DeckCapabilities.ComplementaryPanel, {\n id: 'comments',\n label: ['comments panel label', { ns: THREAD_PLUGIN }],\n icon: 'ph--chat-text--regular',\n position: 'hoist',\n // TODO(wittjosiah): Support comments on any object.\n // filter: (node) => isEchoObject(node.data) && !!getSpace(node.data),\n filter: (node) =>\n !!node.data &&\n typeof node.data === 'object' &&\n 'threads' in node.data &&\n Array.isArray(node.data.threads) &&\n !(node.data instanceof ChannelType),\n }),\n }),\n defineModule({\n id: `${meta.id}/module/markdown`,\n activatesOn: MarkdownEvents.SetupExtensions,\n activate: Markdown,\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n // TODO(wittjosiah): Should occur before the comments thread is loaded when surfaces activation is more granular.\n activatesBefore: [ThreadEvents.SetupThread],\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ChannelType } from '@dxos/plugin-space/types';\n\nimport { THREAD_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [ChannelType.typename]: {\n 'typename label': 'Channel',\n },\n [THREAD_PLUGIN]: {\n 'plugin name': 'Threads',\n 'channel name placeholder': 'New channel',\n 'channel title label': 'Title',\n 'delete channel label': 'Delete channel',\n 'create channel label': 'Create channel',\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 'thread deleted label': 'You deleted a thread.',\n 'message deleted label': 'You deleted a message.',\n 'comments heading': 'Comments',\n 'chat heading': 'Chat',\n 'draft button': 'DRAFT',\n 'no comments title': 'No comments (yet)',\n 'no comments message':\n 'To start a comment thread, select a range of text in a document and click the <commentIcon></commentIcon> Create comment button in the toolbar.',\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 'open comments panel label': 'Show Comments',\n 'comments panel label': 'Comments',\n 'show all label': 'All comments',\n 'show unresolved label': 'Unresolved only',\n },\n },\n },\n];\n"],
5
- "mappings": "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",
6
- "names": ["import_types", "ChannelType", "typename", "THREAD_PLUGIN", "ThreadPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupSettings", "activate", "ThreadState", "SetupTranslations", "contributes", "Capabilities", "Translations", "translations", "threadTranslations", "SetupMetadata", "Metadata", "metadata", "placeholder", "ns", "icon", "loadReferences", "channel", "RefArray", "loadAll", "threads", "ThreadType", "thread", "messages", "MessageType", "message", "THREAD_ITEM", "parse", "item", "type", "label", "title", "data", "object", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "getIntent", "createIntent", "ThreadAction", "Create", "ClientCapabilities", "Schema", "DeckEvents", "SetupComplementaryPanels", "DeckCapabilities", "ComplementaryPanel", "position", "filter", "node", "Array", "isArray", "MarkdownEvents", "SetupExtensions", "Markdown", "SetupReactSurface", "activatesBefore", "ThreadEvents", "SetupThread", "ReactSurface", "SetupIntentResolver", "IntentResolver"]
3
+ "sources": ["../../../src/events.ts", "../../../src/ThreadPlugin.tsx", "../../../src/translations.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Events } from '@dxos/app-framework';\n\nimport { THREAD_PLUGIN } from './meta';\n\nexport namespace ThreadEvents {\n export const SetupActivity = Events.createStateEvent(`${THREAD_PLUGIN}/setup-activity`);\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from '@dxos/app-framework';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { DeckCapabilities, DeckEvents } from '@dxos/plugin-deck';\nimport { MarkdownEvents } from '@dxos/plugin-markdown';\nimport { SpaceCapabilities, ThreadEvents } from '@dxos/plugin-space';\nimport { ChannelType, defineObjectForm, MessageType, ThreadType } from '@dxos/plugin-space/types';\nimport { type ReactiveEchoObject, RefArray } from '@dxos/react-client/echo';\nimport { translations as threadTranslations } from '@dxos/react-ui-thread';\n\nimport { IntentResolver, Markdown, ReactSurface, ThreadState } from './capabilities';\nimport { ThreadEvents as LocalThreadEvents } from './events';\nimport { meta, THREAD_ITEM, THREAD_PLUGIN } from './meta';\nimport translations from './translations';\nimport { ThreadAction } from './types';\n\n// TODO(Zan): Every instance of `cursor` should be replaced with `anchor`.\n// NOTE(burdon): Review/discuss CursorConverter semantics.\nexport const ThreadPlugin = () =>\n definePlugin(meta, [\n // TODO(wittjosiah): Currently not used but leaving because there will likely be settings for threads again.\n // defineModule({\n // id: `${meta.id}/module/settings`,\n // activatesOn: Events.SetupSettings,\n // activate: ThreadSettings,\n // }),\n defineModule({\n id: `${meta.id}/module/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: Events.SetupSettings,\n activate: ThreadState,\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, ...threadTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () => [\n contributes(Capabilities.Metadata, {\n id: ChannelType.typename,\n metadata: {\n placeholder: ['channel name placeholder', { ns: THREAD_PLUGIN }],\n icon: 'ph--chat--regular',\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (channel: ChannelType) => await RefArray.loadAll(channel.threads ?? []),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: ThreadType.typename,\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (thread: ThreadType) => await RefArray.loadAll(thread.messages ?? []),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: MessageType.typename,\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: (message: MessageType) => [], // loadObjectReferences(message, (message) => [...message.parts, message.context]),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: THREAD_ITEM,\n metadata: {\n parse: (item: ReactiveEchoObject<any>, type: string) => {\n switch (type) {\n case 'node':\n return { id: item.id, label: item.title, 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 defineModule({\n id: `${meta.id}/module/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: ChannelType,\n getIntent: () => createIntent(ThreadAction.Create),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => contributes(ClientCapabilities.Schema, [ThreadType, MessageType]),\n }),\n defineModule({\n id: `${meta.id}/module/complementary-panel`,\n activatesOn: DeckEvents.SetupComplementaryPanels,\n activate: () =>\n contributes(DeckCapabilities.ComplementaryPanel, {\n id: 'comments',\n label: ['comments panel label', { ns: THREAD_PLUGIN }],\n icon: 'ph--chat-text--regular',\n position: 'hoist',\n // TODO(wittjosiah): Support comments on any object.\n // filter: (node) => isEchoObject(node.data) && !!getSpace(node.data),\n filter: (node) =>\n !!node.data &&\n typeof node.data === 'object' &&\n 'threads' in node.data &&\n Array.isArray(node.data.threads) &&\n !(node.data instanceof ChannelType),\n }),\n }),\n defineModule({\n id: `${meta.id}/module/markdown`,\n activatesOn: MarkdownEvents.SetupExtensions,\n activate: Markdown,\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n // TODO(wittjosiah): Should occur before the comments thread is loaded when surfaces activation is more granular.\n activatesBefore: [ThreadEvents.SetupThread, LocalThreadEvents.SetupActivity],\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ChannelType } from '@dxos/plugin-space/types';\n\nimport { THREAD_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [ChannelType.typename]: {\n 'typename label': 'Channel',\n },\n [THREAD_PLUGIN]: {\n 'plugin name': 'Threads',\n 'channel name placeholder': 'New channel',\n 'channel title label': 'Title',\n 'delete channel label': 'Delete channel',\n 'create channel label': 'Create channel',\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 'thread deleted label': 'You deleted a thread.',\n 'message deleted label': 'You deleted a message.',\n 'comments heading': 'Comments',\n 'chat heading': 'Chat',\n 'draft button': 'DRAFT',\n 'no comments title': 'No comments (yet)',\n 'no comments message':\n 'To start a comment thread, select a range of text in a document and click the <commentIcon></commentIcon> Create comment button in the toolbar.',\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 'open comments panel label': 'Show Comments',\n 'comments panel label': 'Comments',\n 'show all label': 'All comments',\n 'show unresolved label': 'Unresolved only',\n },\n },\n },\n];\n"],
5
+ "mappings": "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",
6
+ "names": ["import_app_framework", "import_types", "ThreadEvents", "SetupActivity", "Events", "createStateEvent", "THREAD_PLUGIN", "ChannelType", "typename", "ThreadPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "SetupSettings", "activate", "ThreadState", "SetupTranslations", "contributes", "Capabilities", "Translations", "translations", "threadTranslations", "SetupMetadata", "Metadata", "metadata", "placeholder", "ns", "icon", "loadReferences", "channel", "RefArray", "loadAll", "threads", "ThreadType", "thread", "messages", "MessageType", "message", "THREAD_ITEM", "parse", "item", "type", "label", "title", "data", "object", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "getIntent", "createIntent", "ThreadAction", "Create", "ClientCapabilities", "Schema", "DeckEvents", "SetupComplementaryPanels", "DeckCapabilities", "ComplementaryPanel", "position", "filter", "node", "Array", "isArray", "MarkdownEvents", "SetupExtensions", "Markdown", "SetupReactSurface", "activatesBefore", "SetupThread", "LocalThreadEvents", "ReactSurface", "SetupIntentResolver", "IntentResolver"]
7
7
  }
@@ -16,14 +16,14 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var intent_resolver_DVBEXJ33_exports = {};
20
- __export(intent_resolver_DVBEXJ33_exports, {
19
+ var intent_resolver_ESZ7YDRL_exports = {};
20
+ __export(intent_resolver_ESZ7YDRL_exports, {
21
21
  default: () => intent_resolver_default
22
22
  });
23
- module.exports = __toCommonJS(intent_resolver_DVBEXJ33_exports);
24
- var import_chunk_CMEMMYDL = require("./chunk-CMEMMYDL.cjs");
25
- var import_chunk_FPWNZ6TB = require("./chunk-FPWNZ6TB.cjs");
26
- var import_chunk_F735VMTN = require("./chunk-F735VMTN.cjs");
23
+ module.exports = __toCommonJS(intent_resolver_ESZ7YDRL_exports);
24
+ var import_chunk_GBL2K6YX = require("./chunk-GBL2K6YX.cjs");
25
+ var import_chunk_VEVJBOWK = require("./chunk-VEVJBOWK.cjs");
26
+ var import_chunk_ONLWOUYZ = require("./chunk-ONLWOUYZ.cjs");
27
27
  var import_app_framework = require("@dxos/app-framework");
28
28
  var import_echo_schema = require("@dxos/echo-schema");
29
29
  var import_log = require("@dxos/log");
@@ -33,7 +33,7 @@ var import_echo = require("@dxos/react-client/echo");
33
33
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-thread/src/capabilities/intent-resolver.ts";
34
34
  var intent_resolver_default = (context) => (0, import_app_framework.contributes)(import_app_framework.Capabilities.IntentResolver, [
35
35
  (0, import_app_framework.createResolver)({
36
- intent: import_chunk_CMEMMYDL.ThreadAction.Create,
36
+ intent: import_chunk_GBL2K6YX.ThreadAction.Create,
37
37
  resolve: ({ name, cursor, subject }) => {
38
38
  if (cursor && subject) {
39
39
  if (subject?.threads === void 0) {
@@ -51,7 +51,7 @@ var intent_resolver_default = (context) => (0, import_app_framework.contributes)
51
51
  return;
52
52
  }
53
53
  }
54
- const { state } = context.requestCapability(import_chunk_FPWNZ6TB.ThreadCapabilities.MutableState);
54
+ const { state } = context.requestCapability(import_chunk_VEVJBOWK.ThreadCapabilities.MutableState);
55
55
  const subjectId = (0, import_echo.fullyQualifiedId)(subject);
56
56
  const thread = (0, import_echo.create)(import_types2.ThreadType, {
57
57
  name,
@@ -72,7 +72,7 @@ var intent_resolver_default = (context) => (0, import_app_framework.contributes)
72
72
  object: thread
73
73
  },
74
74
  intents: [
75
- (0, import_app_framework.createIntent)(import_chunk_CMEMMYDL.ThreadAction.Select, {
75
+ (0, import_app_framework.createIntent)(import_chunk_GBL2K6YX.ThreadAction.Select, {
76
76
  current: (0, import_echo.fullyQualifiedId)(thread)
77
77
  }),
78
78
  (0, import_app_framework.createIntent)(import_app_framework.LayoutAction.UpdateComplementary, {
@@ -97,9 +97,9 @@ var intent_resolver_default = (context) => (0, import_app_framework.contributes)
97
97
  }
98
98
  }),
99
99
  (0, import_app_framework.createResolver)({
100
- intent: import_chunk_CMEMMYDL.ThreadAction.Select,
100
+ intent: import_chunk_GBL2K6YX.ThreadAction.Select,
101
101
  resolve: ({ current, skipOpen }) => {
102
- const { state } = context.requestCapability(import_chunk_FPWNZ6TB.ThreadCapabilities.MutableState);
102
+ const { state } = context.requestCapability(import_chunk_VEVJBOWK.ThreadCapabilities.MutableState);
103
103
  state.current = current;
104
104
  return {
105
105
  intents: !skipOpen ? [
@@ -112,7 +112,7 @@ var intent_resolver_default = (context) => (0, import_app_framework.contributes)
112
112
  }
113
113
  }),
114
114
  (0, import_app_framework.createResolver)({
115
- intent: import_chunk_CMEMMYDL.ThreadAction.ToggleResolved,
115
+ intent: import_chunk_GBL2K6YX.ThreadAction.ToggleResolved,
116
116
  resolve: ({ thread }) => {
117
117
  if (thread.status === "active" || thread.status === void 0) {
118
118
  thread.status = "resolved";
@@ -135,9 +135,9 @@ var intent_resolver_default = (context) => (0, import_app_framework.contributes)
135
135
  }
136
136
  }),
137
137
  (0, import_app_framework.createResolver)({
138
- intent: import_chunk_CMEMMYDL.ThreadAction.Delete,
138
+ intent: import_chunk_GBL2K6YX.ThreadAction.Delete,
139
139
  resolve: ({ subject, thread }, undo) => {
140
- const { state } = context.requestCapability(import_chunk_FPWNZ6TB.ThreadCapabilities.MutableState);
140
+ const { state } = context.requestCapability(import_chunk_VEVJBOWK.ThreadCapabilities.MutableState);
141
141
  const subjectId = (0, import_echo.fullyQualifiedId)(subject);
142
142
  const draft = state.drafts[subjectId];
143
143
  if (draft) {
@@ -163,7 +163,7 @@ var intent_resolver_default = (context) => (0, import_app_framework.contributes)
163
163
  message: [
164
164
  "thread deleted label",
165
165
  {
166
- ns: import_chunk_F735VMTN.THREAD_PLUGIN
166
+ ns: import_chunk_ONLWOUYZ.THREAD_PLUGIN
167
167
  }
168
168
  ],
169
169
  data: {
@@ -198,9 +198,9 @@ var intent_resolver_default = (context) => (0, import_app_framework.contributes)
198
198
  }
199
199
  }),
200
200
  (0, import_app_framework.createResolver)({
201
- intent: import_chunk_CMEMMYDL.ThreadAction.OnMessageAdd,
201
+ intent: import_chunk_GBL2K6YX.ThreadAction.OnMessageAdd,
202
202
  resolve: ({ thread, subject }) => {
203
- const { state } = context.requestCapability(import_chunk_FPWNZ6TB.ThreadCapabilities.MutableState);
203
+ const { state } = context.requestCapability(import_chunk_VEVJBOWK.ThreadCapabilities.MutableState);
204
204
  const subjectId = (0, import_echo.fullyQualifiedId)(subject);
205
205
  const space = (0, import_echo.getSpace)(subject);
206
206
  const intents = [];
@@ -232,7 +232,7 @@ var intent_resolver_default = (context) => (0, import_app_framework.contributes)
232
232
  }
233
233
  }),
234
234
  (0, import_app_framework.createResolver)({
235
- intent: import_chunk_CMEMMYDL.ThreadAction.DeleteMessage,
235
+ intent: import_chunk_GBL2K6YX.ThreadAction.DeleteMessage,
236
236
  resolve: ({ subject, thread, messageId, message, messageIndex }, undo) => {
237
237
  const space = (0, import_echo.getSpace)(subject);
238
238
  if (!undo) {
@@ -244,7 +244,7 @@ var intent_resolver_default = (context) => (0, import_app_framework.contributes)
244
244
  if (messageIndex2 === 0 && thread.messages.length === 1) {
245
245
  return {
246
246
  intents: [
247
- (0, import_app_framework.createIntent)(import_chunk_CMEMMYDL.ThreadAction.Delete, {
247
+ (0, import_app_framework.createIntent)(import_chunk_GBL2K6YX.ThreadAction.Delete, {
248
248
  subject,
249
249
  thread
250
250
  })
@@ -258,7 +258,7 @@ var intent_resolver_default = (context) => (0, import_app_framework.contributes)
258
258
  message: [
259
259
  "message deleted label",
260
260
  {
261
- ns: import_chunk_F735VMTN.THREAD_PLUGIN
261
+ ns: import_chunk_ONLWOUYZ.THREAD_PLUGIN
262
262
  }
263
263
  ],
264
264
  data: {
@@ -277,7 +277,7 @@ var intent_resolver_default = (context) => (0, import_app_framework.contributes)
277
277
  ]
278
278
  };
279
279
  } else {
280
- if (!messageIndex || !message) {
280
+ if (messageIndex === void 0 || !message) {
281
281
  return;
282
282
  }
283
283
  thread.messages.splice(messageIndex, 0, (0, import_echo.makeRef)(message));
@@ -296,4 +296,4 @@ var intent_resolver_default = (context) => (0, import_app_framework.contributes)
296
296
  }
297
297
  })
298
298
  ]);
299
- //# sourceMappingURL=intent-resolver-DVBEXJ33.cjs.map
299
+ //# sourceMappingURL=intent-resolver-ESZ7YDRL.cjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n createResolver,\n LayoutAction,\n type PluginsContext,\n} from '@dxos/app-framework';\nimport { Ref } from '@dxos/echo-schema';\nimport { log } from '@dxos/log';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\nimport { ChannelType, ThreadType } from '@dxos/plugin-space/types';\nimport { create, fullyQualifiedId, getSpace, makeRef } from '@dxos/react-client/echo';\n\nimport { ThreadCapabilities } from './capabilities';\nimport { THREAD_PLUGIN } from '../meta';\nimport { ThreadAction } from '../types';\n\nexport default (context: PluginsContext) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: ThreadAction.Create,\n resolve: ({ name, cursor, subject }) => {\n if (cursor && subject) {\n // Seed the threads array if it does not exist.\n if (subject?.threads === undefined) {\n try {\n // Static schema will throw an error if subject does not support threads array property.\n subject.threads = [];\n } catch (err) {\n log.error('Subject does not support threads array', { typename: subject?.typename });\n return;\n }\n }\n\n const { state } = context.requestCapability(ThreadCapabilities.MutableState);\n const subjectId = fullyQualifiedId(subject);\n const thread = create(ThreadType, { name, anchor: cursor, messages: [], status: 'staged' });\n const draft = state.drafts[subjectId];\n if (draft) {\n draft.push(thread);\n } else {\n state.drafts[subjectId] = [thread];\n }\n\n return {\n data: { object: thread },\n intents: [\n createIntent(ThreadAction.Select, { current: fullyQualifiedId(thread) }),\n createIntent(LayoutAction.UpdateComplementary, { part: 'complementary', subject: 'comments' }),\n ],\n };\n } else {\n // TODO(wittjosiah): Create separate intent for channel creation.\n return {\n data: { object: create(ChannelType, { threads: [makeRef(create(ThreadType, { messages: [] }))] }) },\n };\n }\n },\n }),\n createResolver({\n intent: ThreadAction.Select,\n resolve: ({ current, skipOpen }) => {\n const { state } = context.requestCapability(ThreadCapabilities.MutableState);\n state.current = current;\n\n return {\n intents: !skipOpen\n ? [createIntent(LayoutAction.UpdateComplementary, { part: 'complementary', subject: 'comments' })]\n : undefined,\n };\n },\n }),\n createResolver({\n intent: ThreadAction.ToggleResolved,\n resolve: ({ thread }) => {\n if (thread.status === 'active' || thread.status === undefined) {\n thread.status = 'resolved';\n } else if (thread.status === 'resolved') {\n thread.status = 'active';\n }\n\n const space = getSpace(thread);\n const spaceId = space?.id;\n\n return {\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.toggle-resolved',\n properties: { threadId: thread.id, spaceId },\n }),\n ],\n };\n },\n }),\n createResolver({\n intent: ThreadAction.Delete,\n resolve: ({ subject, thread }, undo) => {\n const { state } = context.requestCapability(ThreadCapabilities.MutableState);\n const subjectId = fullyQualifiedId(subject);\n const draft = state.drafts[subjectId];\n if (draft) {\n // Check if we're deleting a draft; if so, remove it.\n const index = draft.findIndex((t) => t.id === thread.id);\n if (index !== -1) {\n draft.splice(index, 1);\n return;\n }\n }\n\n const space = getSpace(thread);\n if (!space || !subject.threads) {\n return;\n }\n\n if (!undo) {\n const index = subject.threads.findIndex((t: any) => t?.id === thread.id);\n const cursor = subject.threads[index]?.anchor;\n if (index !== -1) {\n subject.threads?.splice(index, 1);\n }\n\n space.db.remove(thread);\n\n return {\n undoable: {\n message: ['thread deleted label', { ns: THREAD_PLUGIN }],\n data: { cursor },\n },\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.delete',\n properties: { threadId: thread.id, spaceId: space.id },\n }),\n ],\n };\n } else {\n // TODO(wittjosiah): SDK should do this automatically.\n const savedThread = space.db.add(thread);\n subject.threads.push(savedThread);\n\n return {\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.undo-delete',\n properties: { threadId: thread.id, spaceId: space.id },\n }),\n ],\n };\n }\n },\n }),\n createResolver({\n intent: ThreadAction.OnMessageAdd,\n resolve: ({ thread, subject }) => {\n const { state } = context.requestCapability(ThreadCapabilities.MutableState);\n const subjectId = fullyQualifiedId(subject);\n const space = getSpace(subject);\n const intents = [];\n const analyticsProperties = { threadId: thread.id, spaceId: space?.id };\n\n if (state.drafts[subjectId]?.find((t) => t === thread)) {\n // Move draft to document.\n thread.status = 'active';\n subject.threads ? subject.threads.push(makeRef(thread)) : (subject.threads = [makeRef(thread)]);\n state.drafts[subjectId] = state.drafts[subjectId]?.filter(({ id }) => id !== thread.id);\n intents.push(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.thread-created',\n properties: analyticsProperties,\n }),\n );\n }\n\n intents.push(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.message-added',\n properties: { ...analyticsProperties, threadLength: thread.messages.length },\n }),\n );\n\n return { intents };\n },\n }),\n createResolver({\n intent: ThreadAction.DeleteMessage,\n resolve: ({ subject, thread, messageId, message, messageIndex }, undo) => {\n const space = getSpace(subject);\n\n if (!undo) {\n const messageIndex = thread.messages.findIndex(Ref.hasObjectId(messageId));\n const message = thread.messages[messageIndex]?.target;\n if (!message) {\n return;\n }\n\n if (messageIndex === 0 && thread.messages.length === 1) {\n // If the message is the only message in the thread, delete the thread.\n return {\n intents: [createIntent(ThreadAction.Delete, { subject, thread })],\n };\n } else {\n thread.messages.splice(messageIndex, 1);\n }\n\n return {\n undoable: {\n message: ['message deleted label', { ns: THREAD_PLUGIN }],\n data: { message, messageIndex },\n },\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.message.delete',\n properties: { threadId: thread.id, spaceId: space?.id },\n }),\n ],\n };\n } else {\n if (!messageIndex || !message) {\n return;\n }\n\n thread.messages.splice(messageIndex, 0, makeRef(message));\n return {\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.message.undo-delete',\n properties: { threadId: thread.id, spaceId: space?.id },\n }),\n ],\n };\n }\n },\n }),\n ]);\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n createResolver,\n LayoutAction,\n type PluginsContext,\n} from '@dxos/app-framework';\nimport { Ref } from '@dxos/echo-schema';\nimport { log } from '@dxos/log';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\nimport { ChannelType, ThreadType } from '@dxos/plugin-space/types';\nimport { create, fullyQualifiedId, getSpace, makeRef } from '@dxos/react-client/echo';\n\nimport { ThreadCapabilities } from './capabilities';\nimport { THREAD_PLUGIN } from '../meta';\nimport { ThreadAction } from '../types';\n\nexport default (context: PluginsContext) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: ThreadAction.Create,\n resolve: ({ name, cursor, subject }) => {\n if (cursor && subject) {\n // Seed the threads array if it does not exist.\n if (subject?.threads === undefined) {\n try {\n // Static schema will throw an error if subject does not support threads array property.\n subject.threads = [];\n } catch (err) {\n log.error('Subject does not support threads array', { typename: subject?.typename });\n return;\n }\n }\n\n const { state } = context.requestCapability(ThreadCapabilities.MutableState);\n const subjectId = fullyQualifiedId(subject);\n const thread = create(ThreadType, { name, anchor: cursor, messages: [], status: 'staged' });\n const draft = state.drafts[subjectId];\n if (draft) {\n draft.push(thread);\n } else {\n state.drafts[subjectId] = [thread];\n }\n\n return {\n data: { object: thread },\n intents: [\n createIntent(ThreadAction.Select, { current: fullyQualifiedId(thread) }),\n createIntent(LayoutAction.UpdateComplementary, { part: 'complementary', subject: 'comments' }),\n ],\n };\n } else {\n // TODO(wittjosiah): Create separate intent for channel creation.\n return {\n data: { object: create(ChannelType, { threads: [makeRef(create(ThreadType, { messages: [] }))] }) },\n };\n }\n },\n }),\n createResolver({\n intent: ThreadAction.Select,\n resolve: ({ current, skipOpen }) => {\n const { state } = context.requestCapability(ThreadCapabilities.MutableState);\n state.current = current;\n\n return {\n intents: !skipOpen\n ? [createIntent(LayoutAction.UpdateComplementary, { part: 'complementary', subject: 'comments' })]\n : undefined,\n };\n },\n }),\n createResolver({\n intent: ThreadAction.ToggleResolved,\n resolve: ({ thread }) => {\n if (thread.status === 'active' || thread.status === undefined) {\n thread.status = 'resolved';\n } else if (thread.status === 'resolved') {\n thread.status = 'active';\n }\n\n const space = getSpace(thread);\n const spaceId = space?.id;\n\n return {\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.toggle-resolved',\n properties: { threadId: thread.id, spaceId },\n }),\n ],\n };\n },\n }),\n createResolver({\n intent: ThreadAction.Delete,\n resolve: ({ subject, thread }, undo) => {\n const { state } = context.requestCapability(ThreadCapabilities.MutableState);\n const subjectId = fullyQualifiedId(subject);\n const draft = state.drafts[subjectId];\n if (draft) {\n // Check if we're deleting a draft; if so, remove it.\n const index = draft.findIndex((t) => t.id === thread.id);\n if (index !== -1) {\n draft.splice(index, 1);\n return;\n }\n }\n\n const space = getSpace(thread);\n if (!space || !subject.threads) {\n return;\n }\n\n if (!undo) {\n const index = subject.threads.findIndex((t: any) => t?.id === thread.id);\n const cursor = subject.threads[index]?.anchor;\n if (index !== -1) {\n subject.threads?.splice(index, 1);\n }\n\n space.db.remove(thread);\n\n return {\n undoable: {\n message: ['thread deleted label', { ns: THREAD_PLUGIN }],\n data: { cursor },\n },\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.delete',\n properties: { threadId: thread.id, spaceId: space.id },\n }),\n ],\n };\n } else {\n // TODO(wittjosiah): SDK should do this automatically.\n const savedThread = space.db.add(thread);\n subject.threads.push(savedThread);\n\n return {\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.undo-delete',\n properties: { threadId: thread.id, spaceId: space.id },\n }),\n ],\n };\n }\n },\n }),\n createResolver({\n intent: ThreadAction.OnMessageAdd,\n resolve: ({ thread, subject }) => {\n const { state } = context.requestCapability(ThreadCapabilities.MutableState);\n const subjectId = fullyQualifiedId(subject);\n const space = getSpace(subject);\n const intents = [];\n const analyticsProperties = { threadId: thread.id, spaceId: space?.id };\n\n if (state.drafts[subjectId]?.find((t) => t === thread)) {\n // Move draft to document.\n thread.status = 'active';\n subject.threads ? subject.threads.push(makeRef(thread)) : (subject.threads = [makeRef(thread)]);\n state.drafts[subjectId] = state.drafts[subjectId]?.filter(({ id }) => id !== thread.id);\n intents.push(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.thread-created',\n properties: analyticsProperties,\n }),\n );\n }\n\n intents.push(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.message-added',\n properties: { ...analyticsProperties, threadLength: thread.messages.length },\n }),\n );\n\n return { intents };\n },\n }),\n createResolver({\n intent: ThreadAction.DeleteMessage,\n resolve: ({ subject, thread, messageId, message, messageIndex }, undo) => {\n const space = getSpace(subject);\n\n if (!undo) {\n const messageIndex = thread.messages.findIndex(Ref.hasObjectId(messageId));\n const message = thread.messages[messageIndex]?.target;\n if (!message) {\n return;\n }\n\n if (messageIndex === 0 && thread.messages.length === 1) {\n // If the message is the only message in the thread, delete the thread.\n return {\n intents: [createIntent(ThreadAction.Delete, { subject, thread })],\n };\n } else {\n thread.messages.splice(messageIndex, 1);\n }\n\n return {\n undoable: {\n message: ['message deleted label', { ns: THREAD_PLUGIN }],\n data: { message, messageIndex },\n },\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.message.delete',\n properties: { threadId: thread.id, spaceId: space?.id },\n }),\n ],\n };\n } else {\n if (messageIndex === undefined || !message) {\n return;\n }\n\n thread.messages.splice(messageIndex, 0, makeRef(message));\n return {\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.message.undo-delete',\n properties: { threadId: thread.id, spaceId: space?.id },\n }),\n ],\n };\n }\n },\n }),\n ]);\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_types", "context", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "ThreadAction", "Create", "resolve", "name", "cursor", "subject", "threads", "undefined", "err", "log", "error", "typename", "state", "requestCapability", "ThreadCapabilities", "MutableState", "subjectId", "fullyQualifiedId", "thread", "create", "ThreadType", "anchor", "messages", "status", "draft", "drafts", "push", "data", "object", "intents", "createIntent", "Select", "current", "LayoutAction", "UpdateComplementary", "part", "ChannelType", "makeRef", "skipOpen", "ToggleResolved", "space", "getSpace", "spaceId", "id", "ObservabilityAction", "SendEvent", "properties", "threadId", "Delete", "undo", "index", "findIndex", "t", "splice", "db", "remove", "undoable", "message", "ns", "THREAD_PLUGIN", "savedThread", "add", "OnMessageAdd", "analyticsProperties", "find", "filter", "threadLength", "length", "DeleteMessage", "messageId", "messageIndex", "Ref", "hasObjectId", "target"]
7
7
  }
@@ -16,14 +16,14 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var markdown_ELRGISXE_exports = {};
20
- __export(markdown_ELRGISXE_exports, {
19
+ var markdown_KJJCSWOZ_exports = {};
20
+ __export(markdown_KJJCSWOZ_exports, {
21
21
  default: () => markdown_default
22
22
  });
23
- module.exports = __toCommonJS(markdown_ELRGISXE_exports);
24
- var import_chunk_CMEMMYDL = require("./chunk-CMEMMYDL.cjs");
25
- var import_chunk_FPWNZ6TB = require("./chunk-FPWNZ6TB.cjs");
26
- var import_chunk_F735VMTN = require("./chunk-F735VMTN.cjs");
23
+ module.exports = __toCommonJS(markdown_KJJCSWOZ_exports);
24
+ var import_chunk_GBL2K6YX = require("./chunk-GBL2K6YX.cjs");
25
+ var import_chunk_VEVJBOWK = require("./chunk-VEVJBOWK.cjs");
26
+ var import_chunk_ONLWOUYZ = require("./chunk-ONLWOUYZ.cjs");
27
27
  var import_app_framework = require("@dxos/app-framework");
28
28
  var import_plugin_markdown = require("@dxos/plugin-markdown");
29
29
  var import_view = require("@codemirror/view");
@@ -50,13 +50,13 @@ var threads = (state, doc, dispatch) => {
50
50
  ];
51
51
  }
52
52
  const threads2 = (0, import_signals_core.computed)(() => [
53
- ...import_live_object.RefArray.allResolvedTargets(doc.threads),
53
+ ...import_live_object.RefArray.targets(doc.threads),
54
54
  ...state.drafts[(0, import_echo.fullyQualifiedId)(doc)] ?? []
55
55
  ].filter((thread) => !(thread?.status === "resolved")));
56
56
  return [
57
57
  import_view.EditorView.updateListener.of((update) => {
58
58
  if (update.docChanged) {
59
- import_live_object.RefArray.allResolvedTargets(doc.threads).forEach((thread) => {
59
+ import_live_object.RefArray.targets(doc.threads).forEach((thread) => {
60
60
  if (thread.anchor) {
61
61
  const name = getName(doc, thread.anchor);
62
62
  if (name && name !== thread.name) {
@@ -74,7 +74,7 @@ var threads = (state, doc, dispatch) => {
74
74
  id: (0, import_echo.fullyQualifiedId)(doc),
75
75
  onCreate: ({ cursor }) => {
76
76
  const name = getName(doc, cursor);
77
- void dispatch((0, import_app_framework2.createIntent)(import_chunk_CMEMMYDL.ThreadAction.Create, {
77
+ void dispatch((0, import_app_framework2.createIntent)(import_chunk_GBL2K6YX.ThreadAction.Create, {
78
78
  cursor,
79
79
  name,
80
80
  subject: doc
@@ -103,7 +103,7 @@ var threads = (state, doc, dispatch) => {
103
103
  onSelect: ({ selection }) => {
104
104
  const current = selection.current ?? selection.closest;
105
105
  if (current) {
106
- void dispatch((0, import_app_framework2.createIntent)(import_chunk_CMEMMYDL.ThreadAction.Select, {
106
+ void dispatch((0, import_app_framework2.createIntent)(import_chunk_GBL2K6YX.ThreadAction.Select, {
107
107
  current,
108
108
  skipOpen: true
109
109
  }));
@@ -115,8 +115,8 @@ var threads = (state, doc, dispatch) => {
115
115
  var markdown_default = (context) => (0, import_app_framework.contributes)(import_plugin_markdown.MarkdownCapabilities.Extensions, [
116
116
  ({ document: doc }) => {
117
117
  const { dispatchPromise: dispatch } = context.requestCapability(import_app_framework.Capabilities.IntentDispatcher);
118
- const { state } = context.requestCapability(import_chunk_FPWNZ6TB.ThreadCapabilities.MutableState);
118
+ const { state } = context.requestCapability(import_chunk_VEVJBOWK.ThreadCapabilities.MutableState);
119
119
  return threads(state, doc, dispatch);
120
120
  }
121
121
  ]);
122
- //# sourceMappingURL=markdown-ELRGISXE.cjs.map
122
+ //# sourceMappingURL=markdown-KJJCSWOZ.cjs.map