@dxos/plugin-thread 0.8.4-main.7996785055 → 0.8.4-main.8baae0fced

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 (656) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/neutral/ChannelArticle-ACZD7YFT.mjs +28 -0
  4. package/dist/lib/neutral/ChannelArticle-ACZD7YFT.mjs.map +7 -0
  5. package/dist/lib/neutral/ChannelChat-6YTD5HWL.mjs +10 -0
  6. package/dist/lib/{browser/ThreadCompanion-LHPNPABS.mjs → neutral/ThreadCompanion-NQWPS2H6.mjs} +22 -37
  7. package/dist/lib/neutral/ThreadCompanion-NQWPS2H6.mjs.map +7 -0
  8. package/dist/lib/neutral/ThreadContainer-XYEPEOSD.mjs +61 -0
  9. package/dist/lib/neutral/ThreadContainer-XYEPEOSD.mjs.map +7 -0
  10. package/dist/lib/neutral/ThreadPlugin.mjs +80 -0
  11. package/dist/lib/neutral/ThreadPlugin.mjs.map +7 -0
  12. package/dist/lib/neutral/ThreadPlugin.node.mjs +40 -0
  13. package/dist/lib/neutral/ThreadPlugin.node.mjs.map +7 -0
  14. package/dist/lib/neutral/ThreadPlugin.workerd.mjs +24 -0
  15. package/dist/lib/neutral/ThreadPlugin.workerd.mjs.map +7 -0
  16. package/dist/lib/neutral/ThreadSettings-5MKTDK3A.mjs +15 -0
  17. package/dist/lib/neutral/ThreadSettings-5MKTDK3A.mjs.map +7 -0
  18. package/dist/lib/{browser/add-message-O3INEWOI.mjs → neutral/add-message-FBIROBEZ.mjs} +15 -25
  19. package/dist/lib/neutral/add-message-FBIROBEZ.mjs.map +7 -0
  20. package/dist/lib/neutral/app-graph-builder-MJU3WYMY.mjs +120 -0
  21. package/dist/lib/neutral/app-graph-builder-MJU3WYMY.mjs.map +7 -0
  22. package/dist/lib/neutral/append-channel-message-FTFAD3PK.mjs +40 -0
  23. package/dist/lib/neutral/append-channel-message-FTFAD3PK.mjs.map +7 -0
  24. package/dist/lib/neutral/blueprint-definition-S3EBOH4R.mjs +15 -0
  25. package/dist/lib/neutral/blueprint-definition-S3EBOH4R.mjs.map +7 -0
  26. package/dist/lib/neutral/blueprints/index.mjs +8 -0
  27. package/dist/lib/neutral/capabilities/index.mjs +25 -0
  28. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  29. package/dist/lib/{browser/chunk-L7RCZYUB.mjs → neutral/chunk-5T5LPLBN.mjs} +4 -7
  30. package/dist/lib/neutral/chunk-5T5LPLBN.mjs.map +7 -0
  31. package/dist/lib/neutral/chunk-D5LGFCUY.mjs +55 -0
  32. package/dist/lib/neutral/chunk-D5LGFCUY.mjs.map +7 -0
  33. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  34. package/dist/lib/{browser/chunk-CP7E2HRE.mjs → neutral/chunk-JLY4NVTA.mjs} +12 -5
  35. package/dist/lib/neutral/chunk-JLY4NVTA.mjs.map +7 -0
  36. package/dist/lib/{browser/chunk-MC6IA6YE.mjs → neutral/chunk-KRXHIW4P.mjs} +48 -19
  37. package/dist/lib/neutral/chunk-KRXHIW4P.mjs.map +7 -0
  38. package/dist/lib/{browser/chunk-T6FNJOLU.mjs → neutral/chunk-PE7IH7EL.mjs} +99 -87
  39. package/dist/lib/neutral/chunk-PE7IH7EL.mjs.map +7 -0
  40. package/dist/lib/{browser/chunk-SDMEBXOE.mjs → neutral/chunk-QDCG6XQI.mjs} +3 -9
  41. package/dist/lib/neutral/chunk-QDCG6XQI.mjs.map +7 -0
  42. package/dist/lib/neutral/chunk-QFDT33VT.mjs +69 -0
  43. package/dist/lib/neutral/chunk-QFDT33VT.mjs.map +7 -0
  44. package/dist/lib/neutral/chunk-QMLVLKE3.mjs +8 -0
  45. package/dist/lib/neutral/chunk-QMLVLKE3.mjs.map +7 -0
  46. package/dist/lib/neutral/components/index.mjs +539 -0
  47. package/dist/lib/neutral/components/index.mjs.map +7 -0
  48. package/dist/lib/neutral/containers/index.mjs +15 -0
  49. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  50. package/dist/lib/{browser/create-UP6DYIPF.mjs → neutral/create-OAQJ6LXN.mjs} +13 -16
  51. package/dist/lib/neutral/create-OAQJ6LXN.mjs.map +7 -0
  52. package/dist/lib/neutral/create-channel-3E4FJ662.mjs +19 -0
  53. package/dist/lib/neutral/create-channel-3E4FJ662.mjs.map +7 -0
  54. package/dist/lib/neutral/create-object-HIEWSBZB.mjs +27 -0
  55. package/dist/lib/neutral/create-object-HIEWSBZB.mjs.map +7 -0
  56. package/dist/lib/{browser/create-proposals-EQQXX7U7.mjs → neutral/create-proposals-GRYZXRMV.mjs} +6 -7
  57. package/dist/lib/neutral/create-proposals-GRYZXRMV.mjs.map +7 -0
  58. package/dist/lib/{browser/delete-UFRQJ5GV.mjs → neutral/delete-HCCG5RVR.mjs} +9 -11
  59. package/dist/lib/neutral/delete-HCCG5RVR.mjs.map +7 -0
  60. package/dist/lib/{browser/delete-message-TR4FW7HR.mjs → neutral/delete-message-DHFRACB4.mjs} +11 -21
  61. package/dist/lib/neutral/delete-message-DHFRACB4.mjs.map +7 -0
  62. package/dist/lib/neutral/hooks/index.mjs +10 -0
  63. package/dist/lib/neutral/index.mjs +28 -0
  64. package/dist/lib/{browser/markdown-ZS2LW3OL.mjs → neutral/markdown-BUORNCPG.mjs} +15 -16
  65. package/dist/lib/neutral/markdown-BUORNCPG.mjs.map +7 -0
  66. package/dist/lib/neutral/meta.json +1 -0
  67. package/dist/lib/neutral/meta.mjs +10 -0
  68. package/dist/lib/neutral/on-create-space-OEBRKOAM.mjs +23 -0
  69. package/dist/lib/neutral/on-create-space-OEBRKOAM.mjs.map +7 -0
  70. package/dist/lib/{browser/operation-handler-2PRAMPLT.mjs → neutral/operation-handler-RU6K2S4L.mjs} +4 -8
  71. package/dist/lib/neutral/operation-handler-RU6K2S4L.mjs.map +7 -0
  72. package/dist/lib/neutral/operations/index.mjs +8 -0
  73. package/dist/lib/neutral/plugin.mjs +16 -0
  74. package/dist/lib/neutral/plugin.mjs.map +7 -0
  75. package/dist/lib/neutral/react-surface-XY23GVZH.mjs +76 -0
  76. package/dist/lib/neutral/react-surface-XY23GVZH.mjs.map +7 -0
  77. package/dist/lib/{browser/restore-GANFC4M4.mjs → neutral/restore-P4ZLXLF7.mjs} +7 -8
  78. package/dist/lib/neutral/restore-P4ZLXLF7.mjs.map +7 -0
  79. package/dist/lib/{browser/restore-message-FWGQ4FCN.mjs → neutral/restore-message-AUBOP2DF.mjs} +10 -19
  80. package/dist/lib/neutral/restore-message-AUBOP2DF.mjs.map +7 -0
  81. package/dist/lib/{browser/select-Y4XQX4BS.mjs → neutral/select-LIVAMBCE.mjs} +8 -10
  82. package/dist/lib/neutral/select-LIVAMBCE.mjs.map +7 -0
  83. package/dist/lib/{browser/settings-VOVRRXEK.mjs → neutral/settings-HK4EB6TF.mjs} +7 -11
  84. package/dist/lib/neutral/settings-HK4EB6TF.mjs.map +7 -0
  85. package/dist/lib/{browser/state-WNYOQCCT.mjs → neutral/state-UU7VEAKV.mjs} +4 -6
  86. package/dist/lib/neutral/state-UU7VEAKV.mjs.map +7 -0
  87. package/dist/lib/neutral/testing/index.mjs +58 -0
  88. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  89. package/dist/lib/{browser/toggle-resolved-QVOZGID6.mjs → neutral/toggle-resolved-RQBDQZSV.mjs} +13 -22
  90. package/dist/lib/neutral/toggle-resolved-RQBDQZSV.mjs.map +7 -0
  91. package/dist/lib/neutral/translations.mjs +90 -0
  92. package/dist/lib/neutral/translations.mjs.map +7 -0
  93. package/dist/lib/neutral/types/index.mjs +12 -0
  94. package/dist/lib/{browser/undo-mappings-BTXCCPUL.mjs → neutral/undo-mappings-HOKL2L3M.mjs} +11 -16
  95. package/dist/lib/neutral/undo-mappings-HOKL2L3M.mjs.map +7 -0
  96. package/dist/types/src/ThreadPlugin.d.ts +1 -0
  97. package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
  98. package/dist/types/src/ThreadPlugin.node.d.ts +4 -0
  99. package/dist/types/src/ThreadPlugin.node.d.ts.map +1 -0
  100. package/dist/types/src/ThreadPlugin.test.d.ts +2 -0
  101. package/dist/types/src/ThreadPlugin.test.d.ts.map +1 -0
  102. package/dist/types/src/ThreadPlugin.workerd.d.ts +4 -0
  103. package/dist/types/src/ThreadPlugin.workerd.d.ts.map +1 -0
  104. package/dist/types/src/blueprints/thread-blueprint.d.ts +2 -2
  105. package/dist/types/src/blueprints/thread-blueprint.d.ts.map +1 -1
  106. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  107. package/dist/types/src/capabilities/blueprint-definition.d.ts +6 -0
  108. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  109. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  110. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  111. package/dist/types/src/capabilities/index.d.ts +16 -10
  112. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  113. package/dist/types/src/capabilities/markdown.d.ts.map +1 -0
  114. package/dist/types/src/capabilities/{operation-handler/operation-handler.d.ts → operation-handler.d.ts} +1 -1
  115. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  116. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  117. package/dist/types/src/capabilities/{settings/settings.d.ts → settings.d.ts} +2 -1
  118. package/dist/types/src/capabilities/settings.d.ts.map +1 -0
  119. package/dist/types/src/capabilities/{state/state.d.ts → state.d.ts} +1 -1
  120. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  121. package/dist/types/src/capabilities/undo-mappings.d.ts.map +1 -0
  122. package/dist/types/src/components/Chat/Chat.d.ts +51 -0
  123. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -0
  124. package/dist/types/src/components/Chat/index.d.ts +2 -0
  125. package/dist/types/src/components/Chat/index.d.ts.map +1 -0
  126. package/dist/types/src/components/CommentsPanel/CommentsPanel.d.ts.map +1 -1
  127. package/dist/types/src/components/CommentsPanel/CommentsPanel.stories.d.ts +140 -144
  128. package/dist/types/src/components/CommentsPanel/CommentsPanel.stories.d.ts.map +1 -1
  129. package/dist/types/src/components/CommentsPanel/CommentsThread.d.ts.map +1 -1
  130. package/dist/types/src/components/MessagePanel/MessagePanel.d.ts.map +1 -1
  131. package/dist/types/src/components/ThreadSettings/ThreadSettings.d.ts +6 -0
  132. package/dist/types/src/components/ThreadSettings/ThreadSettings.d.ts.map +1 -0
  133. package/dist/types/src/components/ThreadSettings/ThreadSettings.stories.d.ts +161 -0
  134. package/dist/types/src/components/ThreadSettings/ThreadSettings.stories.d.ts.map +1 -0
  135. package/dist/types/src/components/ThreadSettings/index.d.ts +2 -0
  136. package/dist/types/src/components/ThreadSettings/index.d.ts.map +1 -0
  137. package/dist/types/src/components/index.d.ts +3 -1
  138. package/dist/types/src/components/index.d.ts.map +1 -1
  139. package/dist/types/src/containers/ChannelArticle/ChannelArticle.d.ts +13 -0
  140. package/dist/types/src/containers/ChannelArticle/ChannelArticle.d.ts.map +1 -0
  141. package/dist/types/src/containers/ChannelArticle/ChannelArticle.stories.d.ts +162 -0
  142. package/dist/types/src/containers/ChannelArticle/ChannelArticle.stories.d.ts.map +1 -0
  143. package/dist/types/src/containers/ChannelArticle/index.d.ts +2 -0
  144. package/dist/types/src/containers/ChannelArticle/index.d.ts.map +1 -0
  145. package/dist/types/src/containers/ChannelChat/ChannelChat.d.ts +20 -0
  146. package/dist/types/src/containers/ChannelChat/ChannelChat.d.ts.map +1 -0
  147. package/dist/types/src/containers/ChannelChat/index.d.ts +4 -0
  148. package/dist/types/src/containers/ChannelChat/index.d.ts.map +1 -0
  149. package/dist/types/src/containers/ThreadCompanion/ThreadCompanion.d.ts +2 -2
  150. package/dist/types/src/containers/ThreadCompanion/ThreadCompanion.d.ts.map +1 -1
  151. package/dist/types/src/containers/ThreadCompanion/index.d.ts +1 -2
  152. package/dist/types/src/containers/ThreadCompanion/index.d.ts.map +1 -1
  153. package/dist/types/src/containers/ThreadContainer/ThreadContainer.d.ts +20 -0
  154. package/dist/types/src/containers/ThreadContainer/ThreadContainer.d.ts.map +1 -0
  155. package/dist/types/src/containers/ThreadContainer/ThreadContainer.stories.d.ts +162 -0
  156. package/dist/types/src/containers/ThreadContainer/ThreadContainer.stories.d.ts.map +1 -0
  157. package/dist/types/src/containers/ThreadContainer/index.d.ts +4 -0
  158. package/dist/types/src/containers/ThreadContainer/index.d.ts.map +1 -0
  159. package/dist/types/src/containers/index.d.ts +3 -5
  160. package/dist/types/src/containers/index.d.ts.map +1 -1
  161. package/dist/types/src/extensions/threads.d.ts +4 -4
  162. package/dist/types/src/extensions/threads.d.ts.map +1 -1
  163. package/dist/types/src/hooks/analytics.d.ts.map +1 -1
  164. package/dist/types/src/hooks/index.d.ts +0 -4
  165. package/dist/types/src/hooks/index.d.ts.map +1 -1
  166. package/dist/types/src/hooks/useStatus.d.ts.map +1 -1
  167. package/dist/types/src/index.d.ts +2 -3
  168. package/dist/types/src/index.d.ts.map +1 -1
  169. package/dist/types/src/meta.d.ts.map +1 -1
  170. package/dist/types/src/operations/add-message.d.ts +3 -3
  171. package/dist/types/src/operations/add-message.d.ts.map +1 -1
  172. package/dist/types/src/operations/append-channel-message.d.ts +5 -0
  173. package/dist/types/src/operations/append-channel-message.d.ts.map +1 -0
  174. package/dist/types/src/operations/create-channel.d.ts +3 -3
  175. package/dist/types/src/operations/create-channel.d.ts.map +1 -1
  176. package/dist/types/src/operations/create-proposals.d.ts +3 -3
  177. package/dist/types/src/operations/create-proposals.d.ts.map +1 -1
  178. package/dist/types/src/operations/create.d.ts +3 -3
  179. package/dist/types/src/operations/create.d.ts.map +1 -1
  180. package/dist/types/src/operations/delete-message.d.ts +3 -3
  181. package/dist/types/src/operations/delete-message.d.ts.map +1 -1
  182. package/dist/types/src/operations/delete.d.ts +3 -3
  183. package/dist/types/src/operations/delete.d.ts.map +1 -1
  184. package/dist/types/src/operations/index.d.ts +1 -2
  185. package/dist/types/src/operations/index.d.ts.map +1 -1
  186. package/dist/types/src/operations/on-create-space.d.ts +3 -3
  187. package/dist/types/src/operations/on-create-space.d.ts.map +1 -1
  188. package/dist/types/src/operations/restore-message.d.ts +3 -3
  189. package/dist/types/src/operations/restore-message.d.ts.map +1 -1
  190. package/dist/types/src/operations/restore.d.ts +3 -3
  191. package/dist/types/src/operations/restore.d.ts.map +1 -1
  192. package/dist/types/src/operations/select.d.ts +3 -3
  193. package/dist/types/src/operations/select.d.ts.map +1 -1
  194. package/dist/types/src/operations/toggle-resolved.d.ts +3 -3
  195. package/dist/types/src/operations/toggle-resolved.d.ts.map +1 -1
  196. package/dist/types/src/plugin.d.ts +4 -0
  197. package/dist/types/src/plugin.d.ts.map +1 -0
  198. package/dist/types/src/testing/data.d.ts.map +1 -1
  199. package/dist/types/src/testing/index.d.ts +1 -1
  200. package/dist/types/src/testing/index.d.ts.map +1 -1
  201. package/dist/types/src/translations.d.ts +140 -144
  202. package/dist/types/src/translations.d.ts.map +1 -1
  203. package/dist/types/src/types/Settings.d.ts +5 -0
  204. package/dist/types/src/types/Settings.d.ts.map +1 -0
  205. package/dist/types/src/types/ThreadCapabilities.d.ts +13 -0
  206. package/dist/types/src/types/ThreadCapabilities.d.ts.map +1 -0
  207. package/dist/types/src/{operations/definitions.d.ts → types/ThreadOperation.d.ts} +893 -1666
  208. package/dist/types/src/types/ThreadOperation.d.ts.map +1 -0
  209. package/dist/types/src/types/index.d.ts +3 -2
  210. package/dist/types/src/types/index.d.ts.map +1 -1
  211. package/dist/types/src/types/types.d.ts +0 -3
  212. package/dist/types/src/types/types.d.ts.map +1 -1
  213. package/dist/types/src/util.d.ts +6 -3
  214. package/dist/types/src/util.d.ts.map +1 -1
  215. package/dist/types/tsconfig.tsbuildinfo +1 -1
  216. package/package.json +130 -94
  217. package/src/ThreadPlugin.node.ts +39 -0
  218. package/src/ThreadPlugin.test.ts +37 -0
  219. package/src/ThreadPlugin.tsx +13 -65
  220. package/src/ThreadPlugin.workerd.ts +20 -0
  221. package/src/blueprints/thread-blueprint.ts +3 -4
  222. package/src/capabilities/app-graph-builder.ts +143 -0
  223. package/src/capabilities/{blueprint-definition/blueprint-definition.ts → blueprint-definition.ts} +3 -1
  224. package/src/capabilities/create-object.ts +29 -0
  225. package/src/capabilities/index.ts +16 -10
  226. package/src/capabilities/{markdown/markdown.ts → markdown.ts} +13 -8
  227. package/src/capabilities/{operation-handler/operation-handler.ts → operation-handler.ts} +2 -2
  228. package/src/capabilities/react-surface.tsx +75 -0
  229. package/src/capabilities/{settings/settings.ts → settings.ts} +4 -5
  230. package/src/capabilities/{state/state.ts → state.ts} +1 -1
  231. package/src/capabilities/{undo-mappings/undo-mappings.ts → undo-mappings.ts} +4 -4
  232. package/src/components/Chat/Chat.tsx +258 -0
  233. package/src/components/Chat/index.ts +5 -0
  234. package/src/components/CommentsPanel/CommentsPanel.stories.tsx +10 -10
  235. package/src/components/CommentsPanel/CommentsPanel.tsx +6 -6
  236. package/src/components/CommentsPanel/CommentsThread.tsx +12 -13
  237. package/src/components/MessagePanel/MessagePanel.tsx +20 -15
  238. package/src/components/ThreadSettings/ThreadSettings.stories.tsx +32 -0
  239. package/src/components/ThreadSettings/ThreadSettings.tsx +19 -0
  240. package/src/components/ThreadSettings/index.ts +5 -0
  241. package/src/components/index.ts +5 -1
  242. package/src/containers/ChannelArticle/ChannelArticle.stories.tsx +105 -0
  243. package/src/containers/ChannelArticle/ChannelArticle.tsx +42 -0
  244. package/src/containers/ChannelArticle/index.ts +5 -0
  245. package/src/containers/ChannelChat/ChannelChat.tsx +75 -0
  246. package/src/containers/ChannelChat/index.ts +8 -0
  247. package/src/containers/ThreadCompanion/ThreadCompanion.tsx +17 -19
  248. package/src/containers/ThreadCompanion/index.ts +1 -3
  249. package/src/containers/{ChatContainer/ChatContainer.stories.tsx → ThreadContainer/ThreadContainer.stories.tsx} +14 -15
  250. package/src/containers/ThreadContainer/ThreadContainer.tsx +75 -0
  251. package/src/containers/ThreadContainer/index.ts +8 -0
  252. package/src/containers/index.ts +3 -5
  253. package/src/extensions/command.ts +1 -1
  254. package/src/extensions/threads.ts +16 -16
  255. package/src/hooks/analytics.ts +1 -1
  256. package/src/hooks/index.ts +0 -5
  257. package/src/index.ts +4 -4
  258. package/src/meta.ts +2 -2
  259. package/src/operations/add-message.ts +9 -10
  260. package/src/operations/append-channel-message.ts +37 -0
  261. package/src/operations/create-channel.ts +4 -5
  262. package/src/operations/create-proposals.ts +3 -3
  263. package/src/operations/create.ts +8 -9
  264. package/src/operations/delete-message.ts +7 -7
  265. package/src/operations/delete.ts +4 -5
  266. package/src/operations/index.ts +2 -4
  267. package/src/operations/on-create-space.ts +4 -4
  268. package/src/operations/restore-message.ts +6 -6
  269. package/src/operations/restore.ts +4 -4
  270. package/src/operations/select.ts +3 -4
  271. package/src/operations/toggle-resolved.ts +9 -9
  272. package/src/plugin.ts +11 -0
  273. package/src/testing/data.ts +7 -7
  274. package/src/testing/index.ts +1 -1
  275. package/src/translations.ts +74 -79
  276. package/src/types/Settings.ts +10 -0
  277. package/src/types/ThreadCapabilities.ts +26 -0
  278. package/src/{operations/definitions.ts → types/ThreadOperation.ts} +15 -14
  279. package/src/types/index.ts +4 -2
  280. package/src/types/types.ts +0 -5
  281. package/src/util.ts +37 -5
  282. package/dist/lib/browser/CallDebugPanel-RY6FXDN7.mjs +0 -181
  283. package/dist/lib/browser/CallDebugPanel-RY6FXDN7.mjs.map +0 -7
  284. package/dist/lib/browser/CallSidebar-U3YOKNG6.mjs +0 -37
  285. package/dist/lib/browser/CallSidebar-U3YOKNG6.mjs.map +0 -7
  286. package/dist/lib/browser/ChannelContainer-C25SJD67.mjs +0 -18
  287. package/dist/lib/browser/ChatContainer-VG6JXVMR.mjs +0 -19
  288. package/dist/lib/browser/ThreadCompanion-LHPNPABS.mjs.map +0 -7
  289. package/dist/lib/browser/ThreadSettings-7WRTSUPH.mjs +0 -19
  290. package/dist/lib/browser/ThreadSettings-7WRTSUPH.mjs.map +0 -7
  291. package/dist/lib/browser/add-message-O3INEWOI.mjs.map +0 -7
  292. package/dist/lib/browser/app-graph-builder-NQASP6LK.mjs +0 -191
  293. package/dist/lib/browser/app-graph-builder-NQASP6LK.mjs.map +0 -7
  294. package/dist/lib/browser/blueprint-definition-BVS7F5KD.mjs +0 -20
  295. package/dist/lib/browser/blueprint-definition-BVS7F5KD.mjs.map +0 -7
  296. package/dist/lib/browser/blueprints/index.mjs +0 -11
  297. package/dist/lib/browser/call-manager-HRJSB3NQ.mjs +0 -26
  298. package/dist/lib/browser/call-manager-HRJSB3NQ.mjs.map +0 -7
  299. package/dist/lib/browser/chunk-2M2HV5K4.mjs +0 -35
  300. package/dist/lib/browser/chunk-2M2HV5K4.mjs.map +0 -7
  301. package/dist/lib/browser/chunk-4PJ6SUNH.mjs +0 -8
  302. package/dist/lib/browser/chunk-4PJ6SUNH.mjs.map +0 -7
  303. package/dist/lib/browser/chunk-CP7E2HRE.mjs.map +0 -7
  304. package/dist/lib/browser/chunk-ERK254BS.mjs +0 -1810
  305. package/dist/lib/browser/chunk-ERK254BS.mjs.map +0 -7
  306. package/dist/lib/browser/chunk-GB4CYKEA.mjs +0 -223
  307. package/dist/lib/browser/chunk-GB4CYKEA.mjs.map +0 -7
  308. package/dist/lib/browser/chunk-GYRGZNEC.mjs +0 -184
  309. package/dist/lib/browser/chunk-GYRGZNEC.mjs.map +0 -7
  310. package/dist/lib/browser/chunk-ISCHODBV.mjs +0 -106
  311. package/dist/lib/browser/chunk-ISCHODBV.mjs.map +0 -7
  312. package/dist/lib/browser/chunk-L7RCZYUB.mjs.map +0 -7
  313. package/dist/lib/browser/chunk-MC6IA6YE.mjs.map +0 -7
  314. package/dist/lib/browser/chunk-NU7YGDHW.mjs +0 -126
  315. package/dist/lib/browser/chunk-NU7YGDHW.mjs.map +0 -7
  316. package/dist/lib/browser/chunk-SDMEBXOE.mjs.map +0 -7
  317. package/dist/lib/browser/chunk-T6FNJOLU.mjs.map +0 -7
  318. package/dist/lib/browser/chunk-TAEJJ3CF.mjs +0 -57
  319. package/dist/lib/browser/chunk-TAEJJ3CF.mjs.map +0 -7
  320. package/dist/lib/browser/chunk-WR6V7S4Q.mjs +0 -1093
  321. package/dist/lib/browser/chunk-WR6V7S4Q.mjs.map +0 -7
  322. package/dist/lib/browser/create-UP6DYIPF.mjs.map +0 -7
  323. package/dist/lib/browser/create-channel-NHQ3BKJC.mjs +0 -21
  324. package/dist/lib/browser/create-channel-NHQ3BKJC.mjs.map +0 -7
  325. package/dist/lib/browser/create-channel-thread-JJ7ZST67.mjs +0 -28
  326. package/dist/lib/browser/create-channel-thread-JJ7ZST67.mjs.map +0 -7
  327. package/dist/lib/browser/create-proposals-EQQXX7U7.mjs.map +0 -7
  328. package/dist/lib/browser/delete-UFRQJ5GV.mjs.map +0 -7
  329. package/dist/lib/browser/delete-message-TR4FW7HR.mjs.map +0 -7
  330. package/dist/lib/browser/index.mjs +0 -320
  331. package/dist/lib/browser/index.mjs.map +0 -7
  332. package/dist/lib/browser/markdown-ZS2LW3OL.mjs.map +0 -7
  333. package/dist/lib/browser/meta.json +0 -1
  334. package/dist/lib/browser/on-create-space-KLARW25R.mjs +0 -25
  335. package/dist/lib/browser/on-create-space-KLARW25R.mjs.map +0 -7
  336. package/dist/lib/browser/operation-handler-2PRAMPLT.mjs.map +0 -7
  337. package/dist/lib/browser/operations/index.mjs +0 -13
  338. package/dist/lib/browser/react-root-EGOEX44B.mjs +0 -26
  339. package/dist/lib/browser/react-root-EGOEX44B.mjs.map +0 -7
  340. package/dist/lib/browser/react-surface-UFSXNECJ.mjs +0 -114
  341. package/dist/lib/browser/react-surface-UFSXNECJ.mjs.map +0 -7
  342. package/dist/lib/browser/restore-GANFC4M4.mjs.map +0 -7
  343. package/dist/lib/browser/restore-message-FWGQ4FCN.mjs.map +0 -7
  344. package/dist/lib/browser/select-Y4XQX4BS.mjs.map +0 -7
  345. package/dist/lib/browser/settings-VOVRRXEK.mjs.map +0 -7
  346. package/dist/lib/browser/state-WNYOQCCT.mjs.map +0 -7
  347. package/dist/lib/browser/toggle-resolved-QVOZGID6.mjs.map +0 -7
  348. package/dist/lib/browser/types/index.mjs +0 -12
  349. package/dist/lib/browser/undo-mappings-BTXCCPUL.mjs.map +0 -7
  350. package/dist/lib/node-esm/CallDebugPanel-CKGXAWG5.mjs +0 -182
  351. package/dist/lib/node-esm/CallDebugPanel-CKGXAWG5.mjs.map +0 -7
  352. package/dist/lib/node-esm/CallSidebar-MSAQRWCO.mjs +0 -38
  353. package/dist/lib/node-esm/CallSidebar-MSAQRWCO.mjs.map +0 -7
  354. package/dist/lib/node-esm/ChannelContainer-R23E4D3N.mjs +0 -19
  355. package/dist/lib/node-esm/ChatContainer-VS2NX3S7.mjs +0 -20
  356. package/dist/lib/node-esm/ChatContainer-VS2NX3S7.mjs.map +0 -7
  357. package/dist/lib/node-esm/ThreadCompanion-DIKUNH3P.mjs +0 -224
  358. package/dist/lib/node-esm/ThreadCompanion-DIKUNH3P.mjs.map +0 -7
  359. package/dist/lib/node-esm/ThreadSettings-UJBAAD4J.mjs +0 -20
  360. package/dist/lib/node-esm/ThreadSettings-UJBAAD4J.mjs.map +0 -7
  361. package/dist/lib/node-esm/add-message-GQO7ETY3.mjs +0 -98
  362. package/dist/lib/node-esm/add-message-GQO7ETY3.mjs.map +0 -7
  363. package/dist/lib/node-esm/app-graph-builder-WIYQ3COQ.mjs +0 -192
  364. package/dist/lib/node-esm/app-graph-builder-WIYQ3COQ.mjs.map +0 -7
  365. package/dist/lib/node-esm/blueprint-definition-NXHQAJT7.mjs +0 -21
  366. package/dist/lib/node-esm/blueprint-definition-NXHQAJT7.mjs.map +0 -7
  367. package/dist/lib/node-esm/blueprints/index.mjs +0 -12
  368. package/dist/lib/node-esm/call-manager-LOWS24PO.mjs +0 -27
  369. package/dist/lib/node-esm/call-manager-LOWS24PO.mjs.map +0 -7
  370. package/dist/lib/node-esm/chunk-6ZJGXE4F.mjs +0 -58
  371. package/dist/lib/node-esm/chunk-6ZJGXE4F.mjs.map +0 -7
  372. package/dist/lib/node-esm/chunk-A3SWGVF3.mjs +0 -37
  373. package/dist/lib/node-esm/chunk-A3SWGVF3.mjs.map +0 -7
  374. package/dist/lib/node-esm/chunk-ABUFOZVX.mjs +0 -33
  375. package/dist/lib/node-esm/chunk-ABUFOZVX.mjs.map +0 -7
  376. package/dist/lib/node-esm/chunk-EYWLIDLC.mjs +0 -185
  377. package/dist/lib/node-esm/chunk-EYWLIDLC.mjs.map +0 -7
  378. package/dist/lib/node-esm/chunk-GRA2YL5N.mjs +0 -1094
  379. package/dist/lib/node-esm/chunk-GRA2YL5N.mjs.map +0 -7
  380. package/dist/lib/node-esm/chunk-JOAZKE2A.mjs +0 -260
  381. package/dist/lib/node-esm/chunk-JOAZKE2A.mjs.map +0 -7
  382. package/dist/lib/node-esm/chunk-JOIEIY5R.mjs +0 -224
  383. package/dist/lib/node-esm/chunk-JOIEIY5R.mjs.map +0 -7
  384. package/dist/lib/node-esm/chunk-JZI7AFD6.mjs +0 -28
  385. package/dist/lib/node-esm/chunk-JZI7AFD6.mjs.map +0 -7
  386. package/dist/lib/node-esm/chunk-KCWDGW5M.mjs +0 -127
  387. package/dist/lib/node-esm/chunk-KCWDGW5M.mjs.map +0 -7
  388. package/dist/lib/node-esm/chunk-QFVKK6S6.mjs +0 -10
  389. package/dist/lib/node-esm/chunk-QFVKK6S6.mjs.map +0 -7
  390. package/dist/lib/node-esm/chunk-QP3KQOPQ.mjs +0 -1811
  391. package/dist/lib/node-esm/chunk-QP3KQOPQ.mjs.map +0 -7
  392. package/dist/lib/node-esm/chunk-VBI32FGI.mjs +0 -108
  393. package/dist/lib/node-esm/chunk-VBI32FGI.mjs.map +0 -7
  394. package/dist/lib/node-esm/chunk-VRNCL65Y.mjs +0 -40
  395. package/dist/lib/node-esm/chunk-VRNCL65Y.mjs.map +0 -7
  396. package/dist/lib/node-esm/chunk-YGHV23ZD.mjs +0 -136
  397. package/dist/lib/node-esm/chunk-YGHV23ZD.mjs.map +0 -7
  398. package/dist/lib/node-esm/create-DIAK4OFO.mjs +0 -56
  399. package/dist/lib/node-esm/create-DIAK4OFO.mjs.map +0 -7
  400. package/dist/lib/node-esm/create-channel-JHQN2RGK.mjs +0 -22
  401. package/dist/lib/node-esm/create-channel-JHQN2RGK.mjs.map +0 -7
  402. package/dist/lib/node-esm/create-channel-thread-PQKG5VFZ.mjs +0 -29
  403. package/dist/lib/node-esm/create-channel-thread-PQKG5VFZ.mjs.map +0 -7
  404. package/dist/lib/node-esm/create-proposals-JBZLGBSF.mjs +0 -58
  405. package/dist/lib/node-esm/create-proposals-JBZLGBSF.mjs.map +0 -7
  406. package/dist/lib/node-esm/delete-F4NFPLKJ.mjs +0 -60
  407. package/dist/lib/node-esm/delete-F4NFPLKJ.mjs.map +0 -7
  408. package/dist/lib/node-esm/delete-message-QSTGJOL6.mjs +0 -65
  409. package/dist/lib/node-esm/delete-message-QSTGJOL6.mjs.map +0 -7
  410. package/dist/lib/node-esm/index.mjs +0 -321
  411. package/dist/lib/node-esm/index.mjs.map +0 -7
  412. package/dist/lib/node-esm/markdown-YP22U47Q.mjs +0 -85
  413. package/dist/lib/node-esm/markdown-YP22U47Q.mjs.map +0 -7
  414. package/dist/lib/node-esm/meta.json +0 -1
  415. package/dist/lib/node-esm/on-create-space-N7SEMK4L.mjs +0 -26
  416. package/dist/lib/node-esm/on-create-space-N7SEMK4L.mjs.map +0 -7
  417. package/dist/lib/node-esm/operation-handler-S6I62YNM.mjs +0 -18
  418. package/dist/lib/node-esm/operation-handler-S6I62YNM.mjs.map +0 -7
  419. package/dist/lib/node-esm/operations/index.mjs +0 -14
  420. package/dist/lib/node-esm/react-root-DBJS3JVF.mjs +0 -27
  421. package/dist/lib/node-esm/react-root-DBJS3JVF.mjs.map +0 -7
  422. package/dist/lib/node-esm/react-surface-NOV4MWBJ.mjs +0 -115
  423. package/dist/lib/node-esm/react-surface-NOV4MWBJ.mjs.map +0 -7
  424. package/dist/lib/node-esm/restore-N7MEXVMG.mjs +0 -34
  425. package/dist/lib/node-esm/restore-N7MEXVMG.mjs.map +0 -7
  426. package/dist/lib/node-esm/restore-message-ECWGBHBC.mjs +0 -43
  427. package/dist/lib/node-esm/restore-message-ECWGBHBC.mjs.map +0 -7
  428. package/dist/lib/node-esm/select-GPWM36LA.mjs +0 -27
  429. package/dist/lib/node-esm/select-GPWM36LA.mjs.map +0 -7
  430. package/dist/lib/node-esm/settings-LIZBH7EW.mjs +0 -35
  431. package/dist/lib/node-esm/settings-LIZBH7EW.mjs.map +0 -7
  432. package/dist/lib/node-esm/state-ELJSYGJK.mjs +0 -25
  433. package/dist/lib/node-esm/state-ELJSYGJK.mjs.map +0 -7
  434. package/dist/lib/node-esm/toggle-resolved-EBEJUS66.mjs +0 -46
  435. package/dist/lib/node-esm/toggle-resolved-EBEJUS66.mjs.map +0 -7
  436. package/dist/lib/node-esm/types/index.mjs +0 -13
  437. package/dist/lib/node-esm/types/index.mjs.map +0 -7
  438. package/dist/lib/node-esm/undo-mappings-IYTSBZWN.mjs +0 -60
  439. package/dist/lib/node-esm/undo-mappings-IYTSBZWN.mjs.map +0 -7
  440. package/dist/types/src/calls/call-manager.d.ts +0 -87
  441. package/dist/types/src/calls/call-manager.d.ts.map +0 -1
  442. package/dist/types/src/calls/call-swarm-synchronizer.d.ts +0 -66
  443. package/dist/types/src/calls/call-swarm-synchronizer.d.ts.map +0 -1
  444. package/dist/types/src/calls/index.d.ts +0 -7
  445. package/dist/types/src/calls/index.d.ts.map +0 -1
  446. package/dist/types/src/calls/media-manager.d.ts +0 -60
  447. package/dist/types/src/calls/media-manager.d.ts.map +0 -1
  448. package/dist/types/src/calls/speaking-monitor.d.ts +0 -24
  449. package/dist/types/src/calls/speaking-monitor.d.ts.map +0 -1
  450. package/dist/types/src/calls/types.d.ts +0 -45
  451. package/dist/types/src/calls/types.d.ts.map +0 -1
  452. package/dist/types/src/calls/util/audio.d.ts +0 -6
  453. package/dist/types/src/calls/util/audio.d.ts.map +0 -1
  454. package/dist/types/src/calls/util/calls-service.d.ts +0 -77
  455. package/dist/types/src/calls/util/calls-service.d.ts.map +0 -1
  456. package/dist/types/src/calls/util/history-cache.d.ts +0 -11
  457. package/dist/types/src/calls/util/history-cache.d.ts.map +0 -1
  458. package/dist/types/src/calls/util/index.d.ts +0 -5
  459. package/dist/types/src/calls/util/index.d.ts.map +0 -1
  460. package/dist/types/src/calls/util/media.d.ts +0 -6
  461. package/dist/types/src/calls/util/media.d.ts.map +0 -1
  462. package/dist/types/src/calls/util/stub-media-streams.d.ts +0 -18
  463. package/dist/types/src/calls/util/stub-media-streams.d.ts.map +0 -1
  464. package/dist/types/src/calls/util/task-scheduling.d.ts +0 -17
  465. package/dist/types/src/calls/util/task-scheduling.d.ts.map +0 -1
  466. package/dist/types/src/calls-service.stories.d.ts +0 -23
  467. package/dist/types/src/calls-service.stories.d.ts.map +0 -1
  468. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
  469. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
  470. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
  471. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +0 -6
  472. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +0 -1
  473. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +0 -3
  474. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +0 -1
  475. package/dist/types/src/capabilities/call-manager/call-manager.d.ts +0 -6
  476. package/dist/types/src/capabilities/call-manager/call-manager.d.ts.map +0 -1
  477. package/dist/types/src/capabilities/call-manager/index.d.ts +0 -3
  478. package/dist/types/src/capabilities/call-manager/index.d.ts.map +0 -1
  479. package/dist/types/src/capabilities/markdown/index.d.ts +0 -3
  480. package/dist/types/src/capabilities/markdown/index.d.ts.map +0 -1
  481. package/dist/types/src/capabilities/markdown/markdown.d.ts.map +0 -1
  482. package/dist/types/src/capabilities/operation-handler/index.d.ts +0 -4
  483. package/dist/types/src/capabilities/operation-handler/index.d.ts.map +0 -1
  484. package/dist/types/src/capabilities/operation-handler/operation-handler.d.ts.map +0 -1
  485. package/dist/types/src/capabilities/react-root/index.d.ts +0 -6
  486. package/dist/types/src/capabilities/react-root/index.d.ts.map +0 -1
  487. package/dist/types/src/capabilities/react-root/react-root.d.ts +0 -9
  488. package/dist/types/src/capabilities/react-root/react-root.d.ts.map +0 -1
  489. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  490. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  491. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  492. package/dist/types/src/capabilities/settings/index.d.ts +0 -3
  493. package/dist/types/src/capabilities/settings/index.d.ts.map +0 -1
  494. package/dist/types/src/capabilities/settings/settings.d.ts.map +0 -1
  495. package/dist/types/src/capabilities/state/index.d.ts +0 -3
  496. package/dist/types/src/capabilities/state/index.d.ts.map +0 -1
  497. package/dist/types/src/capabilities/state/state.d.ts.map +0 -1
  498. package/dist/types/src/capabilities/undo-mappings/index.d.ts +0 -3
  499. package/dist/types/src/capabilities/undo-mappings/index.d.ts.map +0 -1
  500. package/dist/types/src/capabilities/undo-mappings/undo-mappings.d.ts.map +0 -1
  501. package/dist/types/src/components/Call/Call.d.ts +0 -17
  502. package/dist/types/src/components/Call/Call.d.ts.map +0 -1
  503. package/dist/types/src/components/Call/Toolbar.d.ts +0 -16
  504. package/dist/types/src/components/Call/Toolbar.d.ts.map +0 -1
  505. package/dist/types/src/components/Call/index.d.ts +0 -3
  506. package/dist/types/src/components/Call/index.d.ts.map +0 -1
  507. package/dist/types/src/components/Lobby/Lobby.d.ts +0 -15
  508. package/dist/types/src/components/Lobby/Lobby.d.ts.map +0 -1
  509. package/dist/types/src/components/Lobby/index.d.ts +0 -2
  510. package/dist/types/src/components/Lobby/index.d.ts.map +0 -1
  511. package/dist/types/src/components/Media/AudioStream.d.ts +0 -6
  512. package/dist/types/src/components/Media/AudioStream.d.ts.map +0 -1
  513. package/dist/types/src/components/Media/VideoObject.d.ts +0 -15
  514. package/dist/types/src/components/Media/VideoObject.d.ts.map +0 -1
  515. package/dist/types/src/components/Media/VideoObject.stories.d.ts +0 -22
  516. package/dist/types/src/components/Media/VideoObject.stories.d.ts.map +0 -1
  517. package/dist/types/src/components/Media/index.d.ts +0 -3
  518. package/dist/types/src/components/Media/index.d.ts.map +0 -1
  519. package/dist/types/src/components/Participant/Participant.d.ts +0 -6
  520. package/dist/types/src/components/Participant/Participant.d.ts.map +0 -1
  521. package/dist/types/src/components/Participant/ParticipantGrid.d.ts +0 -11
  522. package/dist/types/src/components/Participant/ParticipantGrid.d.ts.map +0 -1
  523. package/dist/types/src/components/Participant/index.d.ts +0 -3
  524. package/dist/types/src/components/Participant/index.d.ts.map +0 -1
  525. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.d.ts +0 -32
  526. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.d.ts.map +0 -1
  527. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +0 -182
  528. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts.map +0 -1
  529. package/dist/types/src/components/ResponsiveGrid/ResponsiveGridItem.d.ts +0 -21
  530. package/dist/types/src/components/ResponsiveGrid/ResponsiveGridItem.d.ts.map +0 -1
  531. package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.d.ts +0 -12
  532. package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.d.ts.map +0 -1
  533. package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.stories.d.ts +0 -168
  534. package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.stories.d.ts.map +0 -1
  535. package/dist/types/src/components/ResponsiveGrid/index.d.ts +0 -4
  536. package/dist/types/src/components/ResponsiveGrid/index.d.ts.map +0 -1
  537. package/dist/types/src/containers/CallDebugPanel/CallDebugPanel.d.ts +0 -15
  538. package/dist/types/src/containers/CallDebugPanel/CallDebugPanel.d.ts.map +0 -1
  539. package/dist/types/src/containers/CallDebugPanel/index.d.ts +0 -3
  540. package/dist/types/src/containers/CallDebugPanel/index.d.ts.map +0 -1
  541. package/dist/types/src/containers/CallSidebar/CallSidebar.d.ts +0 -3
  542. package/dist/types/src/containers/CallSidebar/CallSidebar.d.ts.map +0 -1
  543. package/dist/types/src/containers/CallSidebar/index.d.ts +0 -3
  544. package/dist/types/src/containers/CallSidebar/index.d.ts.map +0 -1
  545. package/dist/types/src/containers/ChannelContainer/ChannelContainer.d.ts +0 -12
  546. package/dist/types/src/containers/ChannelContainer/ChannelContainer.d.ts.map +0 -1
  547. package/dist/types/src/containers/ChannelContainer/ChannelContainer.stories.d.ts +0 -166
  548. package/dist/types/src/containers/ChannelContainer/ChannelContainer.stories.d.ts.map +0 -1
  549. package/dist/types/src/containers/ChannelContainer/index.d.ts +0 -3
  550. package/dist/types/src/containers/ChannelContainer/index.d.ts.map +0 -1
  551. package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts +0 -20
  552. package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts.map +0 -1
  553. package/dist/types/src/containers/ChatContainer/ChatContainer.stories.d.ts +0 -166
  554. package/dist/types/src/containers/ChatContainer/ChatContainer.stories.d.ts.map +0 -1
  555. package/dist/types/src/containers/ChatContainer/index.d.ts +0 -4
  556. package/dist/types/src/containers/ChatContainer/index.d.ts.map +0 -1
  557. package/dist/types/src/containers/ThreadSettings/ThreadSettings.d.ts +0 -8
  558. package/dist/types/src/containers/ThreadSettings/ThreadSettings.d.ts.map +0 -1
  559. package/dist/types/src/containers/ThreadSettings/index.d.ts +0 -3
  560. package/dist/types/src/containers/ThreadSettings/index.d.ts.map +0 -1
  561. package/dist/types/src/hooks/useBlackCanvasStreamTrack.d.ts +0 -2
  562. package/dist/types/src/hooks/useBlackCanvasStreamTrack.d.ts.map +0 -1
  563. package/dist/types/src/hooks/useDebugMode.d.ts +0 -2
  564. package/dist/types/src/hooks/useDebugMode.d.ts.map +0 -1
  565. package/dist/types/src/hooks/useInaudibleAudioStreamTrack.d.ts +0 -2
  566. package/dist/types/src/hooks/useInaudibleAudioStreamTrack.d.ts.map +0 -1
  567. package/dist/types/src/hooks/useVideoStreamTrack.d.ts +0 -3
  568. package/dist/types/src/hooks/useVideoStreamTrack.d.ts.map +0 -1
  569. package/dist/types/src/operations/create-channel-thread.d.ts +0 -5
  570. package/dist/types/src/operations/create-channel-thread.d.ts.map +0 -1
  571. package/dist/types/src/operations/definitions.d.ts.map +0 -1
  572. package/dist/types/src/testing/stories.d.ts +0 -3
  573. package/dist/types/src/testing/stories.d.ts.map +0 -1
  574. package/dist/types/src/types/Channel.d.ts +0 -711
  575. package/dist/types/src/types/Channel.d.ts.map +0 -1
  576. package/dist/types/src/types/capabilities.d.ts +0 -23
  577. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  578. package/src/calls/call-manager.ts +0 -270
  579. package/src/calls/call-swarm-synchronizer.ts +0 -350
  580. package/src/calls/index.ts +0 -10
  581. package/src/calls/media-manager.ts +0 -378
  582. package/src/calls/speaking-monitor.ts +0 -85
  583. package/src/calls/types.ts +0 -74
  584. package/src/calls/util/audio.ts +0 -58
  585. package/src/calls/util/calls-service.ts +0 -581
  586. package/src/calls/util/history-cache.ts +0 -27
  587. package/src/calls/util/index.ts +0 -8
  588. package/src/calls/util/media.ts +0 -52
  589. package/src/calls/util/stub-media-streams.ts +0 -127
  590. package/src/calls/util/task-scheduling.ts +0 -92
  591. package/src/calls-service.stories.tsx +0 -229
  592. package/src/capabilities/app-graph-builder/app-graph-builder.ts +0 -204
  593. package/src/capabilities/app-graph-builder/index.ts +0 -7
  594. package/src/capabilities/blueprint-definition/index.ts +0 -7
  595. package/src/capabilities/call-manager/call-manager.ts +0 -26
  596. package/src/capabilities/call-manager/index.ts +0 -7
  597. package/src/capabilities/markdown/index.ts +0 -7
  598. package/src/capabilities/operation-handler/index.ts +0 -11
  599. package/src/capabilities/react-root/index.ts +0 -7
  600. package/src/capabilities/react-root/react-root.tsx +0 -20
  601. package/src/capabilities/react-surface/index.ts +0 -7
  602. package/src/capabilities/react-surface/react-surface.tsx +0 -101
  603. package/src/capabilities/settings/index.ts +0 -7
  604. package/src/capabilities/state/index.ts +0 -7
  605. package/src/capabilities/undo-mappings/index.ts +0 -7
  606. package/src/components/Call/Call.tsx +0 -93
  607. package/src/components/Call/Toolbar.tsx +0 -189
  608. package/src/components/Call/index.ts +0 -6
  609. package/src/components/Lobby/Lobby.tsx +0 -121
  610. package/src/components/Lobby/index.ts +0 -5
  611. package/src/components/Media/AudioStream.tsx +0 -67
  612. package/src/components/Media/VideoObject.stories.tsx +0 -60
  613. package/src/components/Media/VideoObject.tsx +0 -58
  614. package/src/components/Media/index.ts +0 -6
  615. package/src/components/Participant/Participant.tsx +0 -76
  616. package/src/components/Participant/ParticipantGrid.tsx +0 -89
  617. package/src/components/Participant/index.ts +0 -6
  618. package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +0 -158
  619. package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +0 -341
  620. package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +0 -134
  621. package/src/components/ResponsiveGrid/ResponsivePanel.stories.tsx +0 -54
  622. package/src/components/ResponsiveGrid/ResponsivePanel.tsx +0 -31
  623. package/src/components/ResponsiveGrid/index.ts +0 -7
  624. package/src/containers/CallDebugPanel/CallDebugPanel.tsx +0 -172
  625. package/src/containers/CallDebugPanel/index.ts +0 -7
  626. package/src/containers/CallSidebar/CallSidebar.tsx +0 -17
  627. package/src/containers/CallSidebar/index.ts +0 -7
  628. package/src/containers/ChannelContainer/ChannelContainer.stories.tsx +0 -59
  629. package/src/containers/ChannelContainer/ChannelContainer.tsx +0 -222
  630. package/src/containers/ChannelContainer/index.ts +0 -7
  631. package/src/containers/ChatContainer/ChatContainer.tsx +0 -130
  632. package/src/containers/ChatContainer/index.ts +0 -8
  633. package/src/containers/ThreadSettings/ThreadSettings.tsx +0 -22
  634. package/src/containers/ThreadSettings/index.ts +0 -7
  635. package/src/hooks/useBlackCanvasStreamTrack.tsx +0 -27
  636. package/src/hooks/useDebugMode.ts +0 -25
  637. package/src/hooks/useInaudibleAudioStreamTrack.tsx +0 -27
  638. package/src/hooks/useVideoStreamTrack.tsx +0 -36
  639. package/src/operations/create-channel-thread.ts +0 -26
  640. package/src/testing/stories.ts +0 -50
  641. package/src/types/Channel.ts +0 -36
  642. package/src/types/capabilities.ts +0 -34
  643. package/src/typings/peermetrics-webrtc-stats.d.ts +0 -46
  644. package/src/typings.d.ts +0 -8
  645. /package/dist/lib/{browser/ChannelContainer-C25SJD67.mjs.map → neutral/ChannelChat-6YTD5HWL.mjs.map} +0 -0
  646. /package/dist/lib/{browser → neutral}/blueprints/index.mjs.map +0 -0
  647. /package/dist/lib/{browser/ChatContainer-VG6JXVMR.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  648. /package/dist/lib/{browser/operations → neutral/hooks}/index.mjs.map +0 -0
  649. /package/dist/lib/{browser/types → neutral}/index.mjs.map +0 -0
  650. /package/dist/lib/{node-esm/ChannelContainer-R23E4D3N.mjs.map → neutral/meta.mjs.map} +0 -0
  651. /package/dist/lib/{node-esm/blueprints → neutral/operations}/index.mjs.map +0 -0
  652. /package/dist/lib/{node-esm/operations → neutral/types}/index.mjs.map +0 -0
  653. /package/dist/types/src/capabilities/{app-graph-builder/app-graph-builder.d.ts → app-graph-builder.d.ts} +0 -0
  654. /package/dist/types/src/capabilities/{markdown/markdown.d.ts → markdown.d.ts} +0 -0
  655. /package/dist/types/src/capabilities/{react-surface/react-surface.d.ts → react-surface.d.ts} +0 -0
  656. /package/dist/types/src/capabilities/{undo-mappings/undo-mappings.d.ts → undo-mappings.d.ts} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/components/index.ts", "../../../../src/components/Chat/Chat.tsx", "../../../../src/components/MessagePanel/MessagePanel.tsx", "../../../../src/components/CommentsPanel/CommentsPanel.tsx", "../../../../src/components/CommentsPanel/CommentsThread.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport * from './Chat';\nexport * from './CommentsPanel';\nexport * from './MessagePanel';\n\nexport const ThreadSettings: ComponentType<any> = lazy(() => import('./ThreadSettings'));\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport React, { type RefObject, useLayoutEffect, useMemo, useRef, useState } from 'react';\n\nimport { type SpaceMember } from '@dxos/react-client/echo';\nimport { type Identity } from '@dxos/react-client/halo';\nimport { ScrollArea, type ThemedClassName, useThemeContext, useTranslation } from '@dxos/react-ui';\nimport {\n type MessageMetadata,\n MessageTextbox,\n Thread as ThreadComponent,\n type ThreadRootProps,\n threadLayout,\n} from '@dxos/react-ui-thread';\nimport { type Message } from '@dxos/types';\nimport { createBasicExtensions, createThemeExtensions, listener, type Extension } from '@dxos/ui-editor';\nimport { composable, composableProps, mx } from '@dxos/ui-theme';\nimport { isNonNullable } from '@dxos/util';\n\nimport { meta } from '#meta';\n\nimport { command } from '../../extensions';\nimport { getMessageMetadata } from '../../util';\nimport { MessagePanel } from '../MessagePanel';\n\nexport type ChatProps = ThemedClassName<\n {\n /** Stable id used for the underlying thread root and message metadata. */\n id: string;\n /** Identity used to attribute outgoing messages in the textbox metadata. */\n identity?: Identity;\n /** Space members for rendering sender names/avatars on incoming messages. */\n members: SpaceMember[];\n /** Messages to render in order. */\n messages: readonly Message.Message[];\n /** Activity indicator (e.g. processing) shown beneath the textbox. */\n activity?: boolean;\n /**\n * Called with the user's textbox content when they press send.\n * Returning `true` signals the message was accepted; the textbox is then cleared.\n */\n onSend: (text: string) => boolean;\n autoFocusTextbox?: boolean;\n /**\n * Where the composer sits relative to the messages.\n * - `'top'` (default) — composer follows the messages at intrinsic height,\n * suitable for inline comment threads.\n * - `'bottom'` — composer pinned to the bottom of the panel, messages\n * scrolling above it. Suitable for full-panel multi-party chat.\n */\n orientation?: ChatOrientation;\n /**\n * When true, hide the composer textbox and activity indicator. Used for\n * channels whose source-of-truth lives elsewhere (e.g. externally-synced\n * Slack/Discord channels keyed by a foreign id) — sending isn't meaningful\n * because there is no local-write path back to the source.\n */\n readOnly?: boolean;\n } & Pick<ThreadRootProps, 'current'>\n>;\n\nexport type ChatOrientation = 'top' | 'bottom';\n\n/**\n * Pure chat UI: scrollable message list + composer textbox + activity indicator.\n * Owns its own UI state (textbox content, scroll position, editor extensions) but\n * does not load data or invoke operations — the caller passes messages and an\n * `onSend` callback. Used by both `ThreadContainer` (AutoMerge `Thread`) and\n * `ChannelArticle`'s feed-backed channel chat.\n */\nexport const Chat = composable<HTMLDivElement, ChatProps>(\n (\n {\n id,\n identity,\n members,\n messages,\n activity,\n onSend,\n autoFocusTextbox,\n current,\n orientation = 'top',\n readOnly,\n ...props\n },\n forwardedRef,\n ) => {\n const { t } = useTranslation(meta.id);\n const { themeMode } = useThemeContext();\n\n const scrollRef = useRef<HTMLDivElement | null>(null);\n const sentinelRef = useRef<HTMLDivElement | null>(null);\n const [autoFocus, setAutoFocus] = useState(autoFocusTextbox);\n\n // Force the editor to remount after a successful send so its content resets.\n const [_count, _setCount] = useState(0);\n\n const textboxMetadata = getMessageMetadata(id, identity);\n const messageRef = useRef('');\n const extensions = useMemo(\n () => [\n createBasicExtensions({ placeholder: t('message.placeholder') }),\n createThemeExtensions({ themeMode }),\n listener({ onChange: ({ text }) => (messageRef.current = text) }),\n command,\n ],\n [themeMode, _count],\n );\n\n const scrollToEnd = (behavior: ScrollBehavior) =>\n setTimeout(() => sentinelRef.current?.scrollIntoView({ behavior, block: 'end' }), 10);\n\n useLayoutEffect(() => {\n scrollToEnd('instant');\n }, []);\n // NOTE: Auto-scroll on new messages is intentionally not implemented here. Smooth-scroll\n // animations were causing ResizeObserver feedback loops with CodeMirror/ScrollArea. The\n // proper fix is \"scroll only if user is already at the bottom\" — deferred to a follow-up.\n\n const handleSend = () => {\n const text = messageRef.current;\n if (!text?.length) {\n return false;\n }\n\n const accepted = onSend(text);\n if (!accepted) {\n return false;\n }\n\n messageRef.current = '';\n setAutoFocus(true);\n scrollToEnd('smooth');\n _setCount((count) => count + 1);\n return true;\n };\n\n const filteredMessages = messages.filter(isNonNullable);\n const renderState: ChatRenderState = {\n messages: filteredMessages,\n members,\n activity,\n extensions,\n autoFocus,\n handleSend,\n textboxMetadata,\n scrollRef,\n sentinelRef,\n readOnly,\n };\n\n return orientation === 'bottom' ? (\n <ChannelLayout\n {...composableProps(props, { classNames: 'flex flex-col bs-full min-h-0' })}\n id={id}\n ref={forwardedRef}\n state={renderState}\n />\n ) : (\n <ThreadLayout\n {...composableProps(props, { classNames: 'dx-container grid-rows-[1fr_min-content_min-content]' })}\n id={id}\n current={current}\n ref={forwardedRef}\n state={renderState}\n />\n );\n },\n);\n\n//\n// Internal layout helpers — share state via the ChatRenderState bag.\n//\n\ntype ChatRenderState = {\n messages: Message.Message[];\n members: SpaceMember[];\n activity?: boolean;\n extensions: Extension[];\n autoFocus?: boolean;\n handleSend: () => boolean;\n textboxMetadata: MessageMetadata;\n scrollRef: RefObject<HTMLDivElement | null>;\n sentinelRef: RefObject<HTMLDivElement | null>;\n readOnly?: boolean;\n};\n\ntype LayoutProps = React.HTMLAttributes<HTMLDivElement> & {\n id: string;\n state: ChatRenderState;\n};\n\n/** Thread layout — composer follows messages at intrinsic height. */\nconst ThreadLayout = React.forwardRef<HTMLDivElement, LayoutProps & Pick<ThreadRootProps, 'current'>>(\n ({ id, current, state, ...props }, ref) => {\n const { t } = useTranslation(meta.id);\n const { messages, members, activity, extensions, autoFocus, handleSend, textboxMetadata, sentinelRef, readOnly } =\n state;\n return (\n <ThreadComponent.Root {...props} id={id} current={current} ref={ref}>\n <ScrollArea.Root classNames='col-span-2' orientation='vertical'>\n <ScrollArea.Viewport ref={sentinelRef}>\n <div className={mx(threadLayout, 'place-self-end')}>\n {messages.map((message) => (\n <MessagePanel key={message.id} message={message} members={members} />\n ))}\n </div>\n </ScrollArea.Viewport>\n </ScrollArea.Root>\n {!readOnly && (\n <>\n <MessageTextbox extensions={extensions} autoFocus={autoFocus} onSend={handleSend} {...textboxMetadata} />\n <ThreadComponent.Status activity={activity}>{t('activity.message')}</ThreadComponent.Status>\n </>\n )}\n </ThreadComponent.Root>\n );\n },\n);\n\n/** Channel layout — composer pinned to the bottom, messages scroll above it. */\nconst ChannelLayout = React.forwardRef<HTMLDivElement, LayoutProps>(({ id, state, ...props }, ref) => {\n const { t } = useTranslation(meta.id);\n const {\n messages,\n members,\n activity,\n extensions,\n autoFocus,\n handleSend,\n textboxMetadata,\n scrollRef,\n sentinelRef,\n readOnly,\n } = state;\n return (\n <div {...props} id={id} ref={ref}>\n <div ref={scrollRef} className='flex-1 min-h-0 overflow-y-auto'>\n {messages.map((message) => (\n <div key={message.id} className='grid grid-cols-[var(--dx-rail-size)_1fr] w-full'>\n <MessagePanel message={message} members={members} />\n </div>\n ))}\n <div ref={sentinelRef} />\n </div>\n {!readOnly && (\n <>\n <div className='shrink-0 grid grid-cols-[var(--dx-rail-size)_1fr]'>\n <MessageTextbox extensions={extensions} autoFocus={autoFocus} onSend={handleSend} {...textboxMetadata} />\n </div>\n <div className='shrink-0 px-2 pb-1 text-xs text-description'>{activity ? t('activity.message') : null}</div>\n </>\n )}\n </div>\n );\n});\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { EditorView } from '@codemirror/view';\nimport React, { forwardRef, useCallback, useEffect, useRef, useState } from 'react';\n\nimport { Surface } from '@dxos/app-framework/ui';\nimport { AppSurface } from '@dxos/app-toolkit/ui';\nimport { type Obj, Ref } from '@dxos/echo';\nimport { useObject } from '@dxos/echo-react';\nimport { PublicKey } from '@dxos/react-client';\nimport { type SpaceMember } from '@dxos/react-client/echo';\nimport { type Identity, useIdentity } from '@dxos/react-client/halo';\nimport { IconButton, useOnTransition, useThemeContext, useTranslation } from '@dxos/react-ui';\nimport { Card } from '@dxos/react-ui';\nimport { useTextEditor } from '@dxos/react-ui-editor';\nimport { MessageHeading, MessageRoot } from '@dxos/react-ui-thread';\nimport { type ContentBlock, type Message } from '@dxos/types';\nimport { createBasicExtensions, createThemeExtensions } from '@dxos/ui-editor';\nimport { hoverableControlItem, hoverableControls, hoverableFocusedWithinControls, mx } from '@dxos/ui-theme';\n\nimport { useOnEditAnalytics } from '#hooks';\nimport { meta } from '#meta';\n\nimport { command } from '../../extensions/command';\nimport { getMessageMetadata } from '../../util';\n\nexport const buttonGroupClassNames = 'flex flex-row items-center gap-0.5 pe-2';\nexport const buttonClassNames = 'p-1! transition-opacity';\n\nexport type MessagePanelProps = {\n message: Obj.OfShape<Message.Message> | Ref.Ref<Obj.OfShape<Message.Message>>;\n members: SpaceMember[];\n editable?: boolean;\n onDelete?: (id: string) => void;\n onAcceptProposal?: (id: string) => void;\n};\n\nexport const MessagePanel = ({\n message: messageOrRef,\n members,\n editable = false,\n onDelete,\n onAcceptProposal,\n}: MessagePanelProps) => {\n const { t } = useTranslation(meta.id);\n const [message, updateMessage] = useObject(messageOrRef);\n const identity = useIdentity();\n const [editing, setEditing] = useState(false);\n\n const textBlockIndex = message?.blocks.findIndex((block) => block._tag === 'text') ?? -1;\n\n const handleEdit = useCallback(() => setEditing((editing) => !editing), []);\n const handleDelete = useCallback(() => message && onDelete?.(message.id), [message, onDelete]);\n const handleAcceptProposal = useCallback(\n () => message && onAcceptProposal?.(message.id),\n [message, onAcceptProposal],\n );\n const handleTextBlockChange = useCallback(\n (newText: string) => {\n updateMessage((m) => {\n const targetBlock = m.blocks[textBlockIndex];\n if (targetBlock && targetBlock._tag === 'text') {\n targetBlock.text = newText;\n }\n });\n },\n [updateMessage, textBlockIndex],\n );\n\n const textBlock =\n message && textBlockIndex !== -1 ? (message.blocks[textBlockIndex] as ContentBlock.Text) : undefined;\n useOnEditAnalytics(message, textBlock, !!editing);\n\n if (!message) {\n return null;\n }\n\n const senderIdentity = members.find(\n (member) =>\n (message.sender.identityDid && member.identity.did === message.sender.identityDid) ||\n (message.sender.identityKey && PublicKey.equals(member.identity.identityKey, message.sender.identityKey)),\n )?.identity;\n // Pass `message.sender` as the fallback so externally-synced messages\n // (Slack, etc.) display the source-side sender name instead of \"Anonymous\"\n // when no DXOS identity matches.\n const messageMetadata = getMessageMetadata(message.id, senderIdentity, message.sender);\n const userIsAuthor = identity?.did === messageMetadata.authorId;\n const proposalBlock = message.blocks.find((block) => block._tag === 'proposal');\n const references = message.blocks.filter((block) => block._tag === 'reference').map((block) => block.reference);\n\n return (\n <MessageRoot {...messageMetadata} classNames={[hoverableControls, hoverableFocusedWithinControls]}>\n <MessageHeading authorName={messageMetadata.authorName} timestamp={messageMetadata.timestamp}>\n <div className={buttonGroupClassNames}>\n {userIsAuthor && editable && (\n <IconButton\n data-testid={editing ? 'thread.message.save' : 'thread.message.edit'}\n variant='ghost'\n icon={editing ? 'ph--check--regular' : 'ph--pencil-simple--regular'}\n iconOnly\n label={t(editing ? 'save-message.label' : 'edit-message.label')}\n classNames={[buttonClassNames, hoverableControlItem]}\n onClick={handleEdit}\n />\n )}\n {/* TODO(wittjosiah): Proposal controls should probably be hoisted to thread level. */}\n {proposalBlock && onAcceptProposal && (\n <IconButton\n data-testid='thread.message.accept'\n variant='ghost'\n icon='ph--check--regular'\n iconOnly\n label={t('accept-proposal.label')}\n classNames={[buttonClassNames, hoverableControlItem]}\n onClick={handleAcceptProposal}\n />\n )}\n {onDelete && (\n <IconButton\n data-testid='thread.message.delete'\n variant='ghost'\n icon='ph--x--regular'\n iconOnly\n label={t('delete-message.label')}\n classNames={[buttonClassNames, hoverableControlItem]}\n onClick={handleDelete}\n />\n )}\n </div>\n </MessageHeading>\n {textBlock && (\n <TextboxBlock block={textBlock} isAuthor={userIsAuthor} editing={editing} onSave={handleTextBlockChange} />\n )}\n {proposalBlock && <ProposalBlock block={proposalBlock} />}\n {Ref.Array.targets(references).map((reference, index) => (\n <MessagePart key={index} part={reference as Obj.Unknown} />\n ))}\n </MessageRoot>\n );\n};\n\nconst MessagePart = ({ part }: { part: Obj.Unknown }) => {\n return <MessageBlockObjectTile subject={part} />;\n};\n\nconst TextboxBlock = ({\n block,\n isAuthor,\n editing,\n onSave,\n}: {\n block: ContentBlock.Text;\n editing?: boolean;\n isAuthor?: boolean;\n identity?: Identity;\n onSave?: (newText: string) => void;\n}) => {\n const { themeMode } = useThemeContext();\n const inMemoryContentRef = useRef(block.text);\n\n const handleDocumentChange = useCallback((newState: string) => {\n inMemoryContentRef.current = newState;\n }, []);\n\n const saveDocumentChange = useCallback(() => {\n onSave?.(inMemoryContentRef.current);\n }, [onSave]);\n\n useOnTransition(editing, true, false, saveDocumentChange);\n\n const { parentRef, focusAttributes, view } = useTextEditor(\n () => ({\n initialValue: block.text,\n extensions: [\n createBasicExtensions({ readOnly: !isAuthor || !editing }),\n createThemeExtensions({ themeMode }),\n command,\n EditorView.updateListener.of((update) => {\n if (update.docChanged) {\n handleDocumentChange(update.state.doc.toString());\n }\n }),\n ],\n }),\n [block.text, editing, isAuthor, themeMode, handleDocumentChange],\n );\n\n useEffect(() => {\n editing && view?.focus();\n }, [editing, view]);\n\n return <div ref={parentRef} className='me-4' {...focusAttributes} />;\n};\n\nconst ProposalBlock = ({ block }: { block: ContentBlock.Proposal }) => {\n return <div className='me-4 italic'>{block.text}</div>;\n};\n\nconst MessageBlockObjectTile = forwardRef<HTMLDivElement, { subject: Obj.Unknown }>(({ subject }, forwardedRef) => {\n // TODO(burdon): Use annotation to get title.\n let title = (subject as any).name ?? (subject as any).title ?? (subject as any).type ?? 'Object';\n if (typeof title !== 'string') {\n title = title?.content ?? '';\n }\n\n return (\n <Card.Root\n className={mx('grid col-span-3 py-1 pr-4', hoverableControls, hoverableFocusedWithinControls)}\n ref={forwardedRef}\n >\n <Surface.Surface\n type={AppSurface.Card}\n limit={1}\n data={{ subject } satisfies AppSurface.ObjectCardData}\n fallback={title}\n />\n </Card.Root>\n );\n});\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useEffect } from 'react';\n\nimport { Obj, Relation } from '@dxos/echo';\nimport { Icon, Message, Trans, useTranslation } from '@dxos/react-ui';\nimport { type AnchoredTo, type Thread } from '@dxos/types';\n\nimport { meta } from '#meta';\n\nimport { CommentsThread, type CommentsThreadProps } from './CommentsThread';\n\nexport type CommentsPanelProps = Omit<CommentsThreadProps, 'anchor' | 'current'> & {\n anchors: AnchoredTo.AnchoredTo[];\n currentId?: string;\n showResolvedThreads?: boolean;\n};\n\n/**\n * Root container for collection of comment threads.\n */\nexport const CommentsPanel = ({ anchors, currentId, showResolvedThreads, ...props }: CommentsPanelProps) => {\n const { t } = useTranslation(meta.id);\n\n // TODO(wittjosiah): There seems to be a race between thread and anchor being deleted.\n const filteredAnchors = showResolvedThreads\n ? anchors.filter((anchor) => !!Relation.getSource(anchor))\n : anchors.filter((anchor) => {\n const thread = Relation.getSource(anchor);\n // TODO(dmaretskyi): Do Obj.instanceOf check instead.\n return thread && (thread as any).status !== 'resolved';\n });\n\n useEffect(() => {\n if (currentId) {\n document.getElementById(currentId)?.scrollIntoView({ behavior: 'smooth', block: 'end' });\n }\n }, [currentId]);\n\n if (filteredAnchors.length === 0) {\n return (\n <div className='p-form-padding'>\n <Message.Root>\n <Message.Content>\n <Trans\n {...{\n t,\n i18nKey: 'no-comments.message',\n components: {\n commentIcon: <Icon icon='ph--chat-text--regular' size={4} classNames='dx-icon-inline' />,\n },\n }}\n />\n </Message.Content>\n </Message.Root>\n </div>\n );\n }\n\n return (\n <div>\n {filteredAnchors.map((anchor) => {\n const thread = Relation.getSource(anchor) as Thread.Thread;\n const threadId = Obj.getDXN(thread).toString();\n return <CommentsThread key={threadId} anchor={anchor} current={currentId === threadId} {...props} />;\n })}\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback, useMemo, useRef, useState } from 'react';\n\nimport { Obj, Relation } from '@dxos/echo';\nimport { useObject } from '@dxos/echo-react';\nimport { getSpace, useMembers } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { IconButton, Tag, Tooltip, useThemeContext, useTranslation } from '@dxos/react-ui';\nimport {\n MessageTextbox,\n type MessageTextboxProps,\n Thread as ThreadComponent,\n type ThreadRootProps,\n} from '@dxos/react-ui-thread';\nimport { type AnchoredTo, type Thread } from '@dxos/types';\nimport { createBasicExtensions, createThemeExtensions, listener } from '@dxos/ui-editor';\nimport { hoverableControlItem, hoverableControls, hoverableFocusedWithinControls, mx } from '@dxos/ui-theme';\n\nimport { useStatus } from '#hooks';\nimport { meta } from '#meta';\n\nimport { command } from '../../extensions/command';\nimport { getMessageMetadata } from '../../util';\nimport { MessagePanel, buttonClassNames, buttonGroupClassNames } from '../MessagePanel';\n\nexport type CommentsThreadProps = {\n anchor: AnchoredTo.AnchoredTo;\n onAttend?: (anchor: AnchoredTo.AnchoredTo) => void;\n onComment?: (anchor: AnchoredTo.AnchoredTo, message: string) => void;\n onResolve?: (anchor: AnchoredTo.AnchoredTo) => void;\n onMessageDelete?: (anchor: AnchoredTo.AnchoredTo, messageId: string) => void;\n onThreadDelete?: (anchor: AnchoredTo.AnchoredTo) => void;\n onAcceptProposal?: (anchor: AnchoredTo.AnchoredTo, messageId: string) => void;\n} & Pick<ThreadRootProps, 'current'>;\n\nexport const CommentsThread = ({\n anchor,\n current,\n onAttend,\n onComment,\n onResolve,\n onMessageDelete,\n onThreadDelete,\n onAcceptProposal,\n}: CommentsThreadProps) => {\n const { themeMode } = useThemeContext();\n const { t } = useTranslation(meta.id);\n const identity = useIdentity()!;\n const space = getSpace(anchor);\n const members = useMembers(space?.id);\n const detached = !anchor.anchor;\n const thread = Relation.getSource(anchor) as Thread.Thread;\n const [messages] = useObject(thread, 'messages');\n const activity = useStatus(space, Obj.getDXN(thread).toString());\n const threadScrollRef = useRef<HTMLDivElement | null>(null);\n\n const textboxMetadata = getMessageMetadata(Obj.getDXN(thread).toString(), identity);\n\n // TODO(wittjosiah): This is a hack to reset the editor after a message is sent.\n const [state, setState] = useState({});\n const messageRef = useRef('');\n const extensions = useMemo(\n () => [\n createBasicExtensions({ placeholder: t('message.placeholder') }),\n createThemeExtensions({ themeMode }),\n listener({ onChange: ({ text }) => (messageRef.current = text) }),\n command,\n ],\n [state],\n );\n\n // TODO(thure): Factor out.\n const scrollToEnd = (behavior: ScrollBehavior) =>\n setTimeout(() => threadScrollRef.current?.scrollIntoView({ behavior, block: 'end' }), 10);\n\n const handleAttend = useCallback(() => onAttend?.(anchor), [onAttend, anchor]);\n const handleResolve = useCallback(() => onResolve?.(anchor), [onResolve, anchor]);\n const handleMessageDelete = useCallback((id: string) => onMessageDelete?.(anchor, id), [onMessageDelete, anchor]);\n const handleThreadDelete = useCallback(() => onThreadDelete?.(anchor), [onThreadDelete, anchor]);\n const handleAcceptProposal = useCallback((id: string) => onAcceptProposal?.(anchor, id), [onAcceptProposal, anchor]);\n\n const handleComment = useCallback<NonNullable<MessageTextboxProps['onSend']>>(() => {\n if (!messageRef.current) {\n return false;\n }\n\n onComment?.(anchor, messageRef.current);\n messageRef.current = '';\n scrollToEnd('instant');\n setState({});\n\n return true;\n }, [anchor, identity]);\n\n return (\n <ThreadComponent.Root\n id={Obj.getDXN(thread).toString()}\n classNames='pt-2 border-b border-subdued-separator last:border-none'\n current={current}\n onClickCapture={handleAttend}\n onFocusCapture={handleAttend}\n >\n <div\n className={mx(\n 'col-span-2 grid grid-cols-[var(--dx-rail-size)_1fr_min-content]',\n hoverableControls,\n hoverableFocusedWithinControls,\n )}\n >\n {detached ? (\n <Tooltip.Trigger asChild content={t('detached-thread.label')} side='top'>\n <ThreadComponent.Header detached>{thread.name}</ThreadComponent.Header>\n </Tooltip.Trigger>\n ) : (\n <ThreadComponent.Header>{thread.name}</ThreadComponent.Header>\n )}\n <div className={buttonGroupClassNames}>\n {thread.status === 'staged' && <Tag palette='neutral'>{t('draft.button')}</Tag>}\n {onResolve && !(thread?.status === 'staged') && (\n <IconButton\n data-testid='thread.resolve'\n variant='ghost'\n icon={thread?.status === 'resolved' ? 'ph--check--fill' : 'ph--check--regular'}\n iconOnly\n label={t('resolve-thread.label')}\n classNames={[buttonClassNames, thread?.status !== 'resolved' && hoverableControlItem]}\n onClick={handleResolve}\n />\n )}\n {onThreadDelete && (\n <IconButton\n data-testid='thread.delete'\n variant='ghost'\n icon='ph--x--regular'\n iconOnly\n label={t('delete-thread.label')}\n classNames={[buttonClassNames, hoverableControlItem]}\n onClick={handleThreadDelete}\n />\n )}\n </div>\n </div>\n\n {messages?.map((ref) => (\n <MessagePanel\n key={ref.dxn.toString()}\n editable\n message={ref}\n members={members}\n onDelete={handleMessageDelete}\n onAcceptProposal={handleAcceptProposal}\n />\n ))}\n\n {/*\n TODO(wittjosiah): Can't autofocus this generally.\n There can be multiple threads with inputs and they can't all be focused.\n Also, it steals focus from documents when first rendered.\n Need to find a way to autofocus in one scenario only: when a new thread is created.\n */}\n <MessageTextbox extensions={extensions} onSend={handleComment} {...textboxMetadata} />\n\n <ThreadComponent.Status activity={activity}>{t('activity.message')}</ThreadComponent.Status>\n\n <div className='h-px -mt-px' ref={threadScrollRef} />\n </ThreadComponent.Root>\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["lazy", "React", "useLayoutEffect", "useMemo", "useRef", "useState", "ScrollArea", "useThemeContext", "useTranslation", "MessageTextbox", "Thread", "ThreadComponent", "threadLayout", "createBasicExtensions", "createThemeExtensions", "listener", "composable", "composableProps", "mx", "isNonNullable", "meta", "EditorView", "React", "forwardRef", "useCallback", "useEffect", "useRef", "useState", "Surface", "AppSurface", "Ref", "useObject", "PublicKey", "useIdentity", "IconButton", "useOnTransition", "useThemeContext", "useTranslation", "Card", "useTextEditor", "MessageHeading", "MessageRoot", "createBasicExtensions", "createThemeExtensions", "hoverableControlItem", "hoverableControls", "hoverableFocusedWithinControls", "mx", "useOnEditAnalytics", "meta", "buttonGroupClassNames", "buttonClassNames", "MessagePanel", "message", "messageOrRef", "members", "editable", "onDelete", "onAcceptProposal", "t", "useTranslation", "meta", "id", "updateMessage", "useObject", "identity", "useIdentity", "editing", "setEditing", "useState", "textBlockIndex", "blocks", "findIndex", "block", "_tag", "handleEdit", "useCallback", "handleDelete", "handleAcceptProposal", "handleTextBlockChange", "newText", "m", "targetBlock", "text", "textBlock", "undefined", "useOnEditAnalytics", "senderIdentity", "find", "member", "sender", "identityDid", "did", "identityKey", "PublicKey", "equals", "messageMetadata", "getMessageMetadata", "userIsAuthor", "authorId", "proposalBlock", "references", "filter", "map", "reference", "MessageRoot", "classNames", "hoverableControls", "hoverableFocusedWithinControls", "MessageHeading", "authorName", "timestamp", "div", "className", "IconButton", "data-testid", "variant", "icon", "iconOnly", "label", "hoverableControlItem", "onClick", "TextboxBlock", "isAuthor", "onSave", "ProposalBlock", "Ref", "Array", "targets", "index", "MessagePart", "key", "part", "MessageBlockObjectTile", "subject", "themeMode", "useThemeContext", "inMemoryContentRef", "useRef", "handleDocumentChange", "newState", "current", "saveDocumentChange", "useOnTransition", "parentRef", "focusAttributes", "view", "useTextEditor", "initialValue", "extensions", "createBasicExtensions", "readOnly", "createThemeExtensions", "command", "EditorView", "updateListener", "of", "update", "docChanged", "state", "doc", "toString", "useEffect", "focus", "ref", "forwardRef", "forwardedRef", "title", "name", "type", "content", "Card", "Root", "mx", "Surface", "AppSurface", "limit", "data", "fallback", "Chat", "composable", "id", "identity", "members", "messages", "activity", "onSend", "autoFocusTextbox", "current", "orientation", "readOnly", "props", "forwardedRef", "t", "useTranslation", "meta", "themeMode", "useThemeContext", "scrollRef", "useRef", "sentinelRef", "autoFocus", "setAutoFocus", "useState", "_count", "_setCount", "textboxMetadata", "getMessageMetadata", "messageRef", "extensions", "useMemo", "createBasicExtensions", "placeholder", "createThemeExtensions", "listener", "onChange", "text", "command", "scrollToEnd", "behavior", "setTimeout", "scrollIntoView", "block", "useLayoutEffect", "handleSend", "length", "accepted", "count", "filteredMessages", "filter", "isNonNullable", "renderState", "React", "ChannelLayout", "composableProps", "classNames", "ref", "state", "ThreadLayout", "forwardRef", "ThreadComponent", "Root", "ScrollArea", "Viewport", "div", "className", "mx", "threadLayout", "map", "message", "MessagePanel", "key", "MessageTextbox", "Status", "React", "useEffect", "Obj", "Relation", "Icon", "Message", "Trans", "useTranslation", "meta", "React", "useCallback", "useMemo", "useRef", "useState", "Obj", "Relation", "useObject", "getSpace", "useMembers", "useIdentity", "IconButton", "Tag", "Tooltip", "useThemeContext", "useTranslation", "MessageTextbox", "Thread", "ThreadComponent", "createBasicExtensions", "createThemeExtensions", "listener", "hoverableControlItem", "hoverableControls", "hoverableFocusedWithinControls", "mx", "useStatus", "meta", "CommentsThread", "anchor", "current", "onAttend", "onComment", "onResolve", "onMessageDelete", "onThreadDelete", "onAcceptProposal", "themeMode", "useThemeContext", "t", "useTranslation", "meta", "id", "identity", "useIdentity", "space", "getSpace", "members", "useMembers", "detached", "thread", "Relation", "getSource", "messages", "useObject", "activity", "useStatus", "Obj", "getDXN", "toString", "threadScrollRef", "useRef", "textboxMetadata", "getMessageMetadata", "state", "setState", "useState", "messageRef", "extensions", "useMemo", "createBasicExtensions", "placeholder", "createThemeExtensions", "listener", "onChange", "text", "command", "scrollToEnd", "behavior", "setTimeout", "scrollIntoView", "block", "handleAttend", "useCallback", "handleResolve", "handleMessageDelete", "handleThreadDelete", "handleAcceptProposal", "handleComment", "React", "ThreadComponent", "Root", "classNames", "onClickCapture", "onFocusCapture", "div", "className", "mx", "hoverableControls", "hoverableFocusedWithinControls", "Tooltip", "Trigger", "asChild", "content", "side", "Header", "name", "buttonGroupClassNames", "status", "Tag", "palette", "IconButton", "data-testid", "variant", "icon", "iconOnly", "label", "buttonClassNames", "hoverableControlItem", "onClick", "map", "ref", "MessagePanel", "key", "dxn", "editable", "message", "onDelete", "MessageTextbox", "onSend", "Status", "CommentsPanel", "anchors", "currentId", "showResolvedThreads", "props", "t", "useTranslation", "meta", "id", "filteredAnchors", "filter", "anchor", "Relation", "getSource", "thread", "status", "useEffect", "document", "getElementById", "scrollIntoView", "behavior", "block", "length", "React", "div", "className", "Message", "Root", "Content", "Trans", "i18nKey", "components", "commentIcon", "Icon", "icon", "size", "classNames", "map", "threadId", "Obj", "getDXN", "toString", "CommentsThread", "key", "current", "ThreadSettings", "lazy"]
7
+ }
@@ -0,0 +1,15 @@
1
+ import "../chunk-J5LGTIGS.mjs";
2
+
3
+ // src/containers/index.ts
4
+ import { lazy } from "react";
5
+ var ChannelChat = lazy(() => import("../ChannelChat-6YTD5HWL.mjs"));
6
+ var ChannelArticle = lazy(() => import("../ChannelArticle-ACZD7YFT.mjs"));
7
+ var ThreadContainer = lazy(() => import("../ThreadContainer-XYEPEOSD.mjs"));
8
+ var ThreadCompanion = lazy(() => import("../ThreadCompanion-NQWPS2H6.mjs"));
9
+ export {
10
+ ChannelArticle,
11
+ ChannelChat,
12
+ ThreadCompanion,
13
+ ThreadContainer
14
+ };
15
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/containers/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport const ChannelChat: ComponentType<any> = lazy(() => import('./ChannelChat'));\nexport const ChannelArticle: ComponentType<any> = lazy(() => import('./ChannelArticle'));\nexport const ThreadContainer: ComponentType<any> = lazy(() => import('./ThreadContainer'));\nexport const ThreadCompanion: ComponentType<any> = lazy(() => import('./ThreadCompanion'));\n"],
5
+ "mappings": ";;;AAIA,SAA6BA,YAAY;AAElC,IAAMC,cAAkCD,KAAK,MAAM,OAAO,6BAAA,CAAA;AAC1D,IAAME,iBAAqCF,KAAK,MAAM,OAAO,gCAAA,CAAA;AAC7D,IAAMG,kBAAsCH,KAAK,MAAM,OAAO,iCAAA,CAAA;AAC9D,IAAMI,kBAAsCJ,KAAK,MAAM,OAAO,iCAAA,CAAA;",
6
+ "names": ["lazy", "ChannelChat", "ChannelArticle", "ThreadContainer", "ThreadCompanion"]
7
+ }
@@ -1,23 +1,20 @@
1
1
  import {
2
- Create,
3
- Select
4
- } from "./chunk-T6FNJOLU.mjs";
5
- import {
6
- ThreadCapabilities
7
- } from "./chunk-TAEJJ3CF.mjs";
8
- import "./chunk-SDMEBXOE.mjs";
2
+ ThreadCapabilities_exports,
3
+ ThreadOperation_exports
4
+ } from "./chunk-PE7IH7EL.mjs";
5
+ import "./chunk-J5LGTIGS.mjs";
9
6
 
10
7
  // src/operations/create.ts
11
8
  import * as Effect from "effect/Effect";
12
9
  import { Capabilities, Capability } from "@dxos/app-framework";
13
- import { companionSegment } from "@dxos/app-toolkit";
10
+ import { LayoutOperation } from "@dxos/app-toolkit";
11
+ import { Operation } from "@dxos/compute";
14
12
  import { Obj, Relation } from "@dxos/echo";
15
- import { Operation } from "@dxos/operation";
16
- import { DeckOperation } from "@dxos/plugin-deck/operations";
13
+ import { linkedSegment } from "@dxos/react-ui-attention";
17
14
  import { AnchoredTo, Thread } from "@dxos/types";
18
- var handler = Create.pipe(Operation.withHandler(Effect.fnUntraced(function* ({ name, anchor: _anchor, subject }) {
15
+ var handler = ThreadOperation_exports.Create.pipe(Operation.withHandler(Effect.fnUntraced(function* ({ name, anchor: _anchor, subject }) {
19
16
  const registry = yield* Capability.get(Capabilities.AtomRegistry);
20
- const stateAtom = yield* Capability.get(ThreadCapabilities.State);
17
+ const stateAtom = yield* Capability.get(ThreadCapabilities_exports.State);
21
18
  const subjectId = Obj.getDXN(subject).toString();
22
19
  const thread = Thread.make({
23
20
  name
@@ -41,15 +38,15 @@ var handler = Create.pipe(Operation.withHandler(Effect.fnUntraced(function* ({ n
41
38
  ]
42
39
  }
43
40
  });
44
- yield* Operation.invoke(Select, {
41
+ yield* Operation.invoke(ThreadOperation_exports.Select, {
45
42
  current: Obj.getDXN(thread).toString()
46
43
  });
47
- yield* Operation.invoke(DeckOperation.ChangeCompanion, {
48
- companion: companionSegment("comments")
44
+ yield* Operation.invoke(LayoutOperation.UpdateCompanion, {
45
+ subject: linkedSegment("comments")
49
46
  });
50
47
  })));
51
48
  var create_default = handler;
52
49
  export {
53
50
  create_default as default
54
51
  };
55
- //# sourceMappingURL=create-UP6DYIPF.mjs.map
52
+ //# sourceMappingURL=create-OAQJ6LXN.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/create.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/compute';\nimport { Obj, Relation } from '@dxos/echo';\nimport { linkedSegment } from '@dxos/react-ui-attention';\nimport { AnchoredTo, Thread } from '@dxos/types';\n\nimport { ThreadCapabilities } from '../types';\nimport { ThreadOperation } from '../types';\n\nconst handler: Operation.WithHandler<typeof ThreadOperation.Create> = ThreadOperation.Create.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* ({ name, anchor: _anchor, subject }) {\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n const stateAtom = yield* Capability.get(ThreadCapabilities.State);\n const subjectId = Obj.getDXN(subject).toString();\n const thread = Thread.make({ name });\n const anchor = Relation.make(AnchoredTo.AnchoredTo, {\n [Relation.Source]: thread,\n [Relation.Target]: subject,\n anchor: _anchor,\n });\n\n const state = registry.get(stateAtom);\n const existingDrafts = state.drafts[subjectId];\n registry.set(stateAtom, {\n ...state,\n drafts: {\n ...state.drafts,\n [subjectId]: existingDrafts ? [...existingDrafts, anchor] : [anchor],\n },\n });\n\n yield* Operation.invoke(ThreadOperation.Select, { current: Obj.getDXN(thread).toString() });\n yield* Operation.invoke(LayoutOperation.UpdateCompanion, {\n subject: linkedSegment('comments'),\n });\n }),\n ),\n);\n\nexport default handler;\n"],
5
+ "mappings": ";;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,uBAAuB;AAChC,SAASC,iBAAiB;AAC1B,SAASC,KAAKC,gBAAgB;AAC9B,SAASC,qBAAqB;AAC9B,SAASC,YAAYC,cAAc;AAKnC,IAAMC,UAAgEC,wBAAgBC,OAAOC,KAC3FC,UAAUC,YACDC,kBAAW,WAAW,EAAEC,MAAMC,QAAQC,SAASC,QAAO,GAAE;AAC7D,QAAMC,WAAW,OAAOC,WAAWC,IAAIC,aAAaC,YAAY;AAChE,QAAMC,YAAY,OAAOJ,WAAWC,IAAII,2BAAmBC,KAAK;AAChE,QAAMC,YAAYC,IAAIC,OAAOX,OAAAA,EAASY,SAAQ;AAC9C,QAAMC,SAASC,OAAOC,KAAK;IAAElB;EAAK,CAAA;AAClC,QAAMC,SAASkB,SAASD,KAAKE,WAAWA,YAAY;IAClD,CAACD,SAASE,MAAM,GAAGL;IACnB,CAACG,SAASG,MAAM,GAAGnB;IACnBF,QAAQC;EACV,CAAA;AAEA,QAAMqB,QAAQnB,SAASE,IAAIG,SAAAA;AAC3B,QAAMe,iBAAiBD,MAAME,OAAOb,SAAAA;AACpCR,WAASsB,IAAIjB,WAAW;IACtB,GAAGc;IACHE,QAAQ;MACN,GAAGF,MAAME;MACT,CAACb,SAAAA,GAAYY,iBAAiB;WAAIA;QAAgBvB;UAAU;QAACA;;IAC/D;EACF,CAAA;AAEA,SAAOJ,UAAU8B,OAAOjC,wBAAgBkC,QAAQ;IAAEC,SAAShB,IAAIC,OAAOE,MAAAA,EAAQD,SAAQ;EAAG,CAAA;AACzF,SAAOlB,UAAU8B,OAAOG,gBAAgBC,iBAAiB;IACvD5B,SAAS6B,cAAc,UAAA;EACzB,CAAA;AACF,CAAA,CAAA,CAAA;AAIJ,IAAA,iBAAevC;",
6
+ "names": ["Effect", "Capabilities", "Capability", "LayoutOperation", "Operation", "Obj", "Relation", "linkedSegment", "AnchoredTo", "Thread", "handler", "ThreadOperation", "Create", "pipe", "Operation", "withHandler", "fnUntraced", "name", "anchor", "_anchor", "subject", "registry", "Capability", "get", "Capabilities", "AtomRegistry", "stateAtom", "ThreadCapabilities", "State", "subjectId", "Obj", "getDXN", "toString", "thread", "Thread", "make", "Relation", "AnchoredTo", "Source", "Target", "state", "existingDrafts", "drafts", "set", "invoke", "Select", "current", "LayoutOperation", "UpdateCompanion", "linkedSegment"]
7
+ }
@@ -0,0 +1,19 @@
1
+ import {
2
+ ThreadOperation_exports
3
+ } from "./chunk-PE7IH7EL.mjs";
4
+ import "./chunk-J5LGTIGS.mjs";
5
+
6
+ // src/operations/create-channel.ts
7
+ import * as Effect from "effect/Effect";
8
+ import { Operation } from "@dxos/compute";
9
+ import { Channel } from "@dxos/types";
10
+ var handler = ThreadOperation_exports.CreateChannel.pipe(Operation.withHandler((input) => Effect.sync(() => ({
11
+ object: Channel.make({
12
+ name: input.name
13
+ })
14
+ }))));
15
+ var create_channel_default = handler;
16
+ export {
17
+ create_channel_default as default
18
+ };
19
+ //# sourceMappingURL=create-channel-3E4FJ662.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/create-channel.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\nimport { Channel } from '@dxos/types';\n\nimport { ThreadOperation } from '../types';\n\nconst handler: Operation.WithHandler<typeof ThreadOperation.CreateChannel> = ThreadOperation.CreateChannel.pipe(\n Operation.withHandler((input) =>\n Effect.sync(() => ({\n object: Channel.make({ name: input.name }),\n })),\n ),\n);\n\nexport default handler;\n"],
5
+ "mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,eAAe;AAIxB,IAAMC,UAAuEC,wBAAgBC,cAAcC,KACzGC,UAAUC,YAAY,CAACC,UACdC,YAAK,OAAO;EACjBC,QAAQC,QAAQC,KAAK;IAAEC,MAAML,MAAMK;EAAK,CAAA;AAC1C,EAAA,CAAA,CAAA;AAIJ,IAAA,yBAAeX;",
6
+ "names": ["Effect", "Operation", "Channel", "handler", "ThreadOperation", "CreateChannel", "pipe", "Operation", "withHandler", "input", "sync", "object", "Channel", "make", "name"]
7
+ }
@@ -0,0 +1,27 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/create-object.ts
4
+ import * as Effect from "effect/Effect";
5
+ import { Capability } from "@dxos/app-framework";
6
+ import { Operation } from "@dxos/compute";
7
+ import { SpaceOperation } from "@dxos/plugin-space";
8
+ import { SpaceCapabilities } from "@dxos/plugin-space";
9
+ import { Channel } from "@dxos/types";
10
+ var create_object_default = Capability.makeModule(Effect.fnUntraced(function* () {
11
+ return Capability.contributes(SpaceCapabilities.CreateObjectEntry, {
12
+ id: Channel.Channel.typename,
13
+ createObject: (props, options) => Effect.gen(function* () {
14
+ const object = Channel.make(props);
15
+ return yield* Operation.invoke(SpaceOperation.AddObject, {
16
+ object,
17
+ target: options.target,
18
+ hidden: true,
19
+ targetNodeId: options.targetNodeId
20
+ });
21
+ })
22
+ });
23
+ }));
24
+ export {
25
+ create_object_default as default
26
+ };
27
+ //# sourceMappingURL=create-object-HIEWSBZB.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/create-object.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Operation } from '@dxos/compute';\nimport { SpaceOperation } from '@dxos/plugin-space';\nimport { SpaceCapabilities } from '@dxos/plugin-space';\nimport { Channel } from '@dxos/types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n return Capability.contributes(SpaceCapabilities.CreateObjectEntry, {\n id: Channel.Channel.typename,\n createObject: (props, options) =>\n Effect.gen(function* () {\n const object = Channel.make(props);\n return yield* Operation.invoke(SpaceOperation.AddObject, {\n object,\n target: options.target,\n hidden: true,\n targetNodeId: options.targetNodeId,\n });\n }),\n });\n }),\n);\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,iBAAiB;AAC1B,SAASC,sBAAsB;AAC/B,SAASC,yBAAyB;AAClC,SAASC,eAAe;AAExB,IAAA,wBAAeJ,WAAWK,WACjBC,kBAAW,aAAA;AAChB,SAAON,WAAWO,YAAYJ,kBAAkBK,mBAAmB;IACjEC,IAAIL,QAAQA,QAAQM;IACpBC,cAAc,CAACC,OAAOC,YACbC,WAAI,aAAA;AACT,YAAMC,SAASX,QAAQY,KAAKJ,KAAAA;AAC5B,aAAO,OAAOX,UAAUgB,OAAOf,eAAegB,WAAW;QACvDH;QACAI,QAAQN,QAAQM;QAChBC,QAAQ;QACRC,cAAcR,QAAQQ;MACxB,CAAA;IACF,CAAA;EACJ,CAAA;AACF,CAAA,CAAA;",
6
+ "names": ["Effect", "Capability", "Operation", "SpaceOperation", "SpaceCapabilities", "Channel", "makeModule", "fnUntraced", "contributes", "CreateObjectEntry", "id", "typename", "createObject", "props", "options", "gen", "object", "make", "invoke", "AddObject", "target", "hidden", "targetNodeId"]
7
+ }
@@ -1,19 +1,18 @@
1
1
  import {
2
- CreateProposals
3
- } from "./chunk-T6FNJOLU.mjs";
4
- import "./chunk-TAEJJ3CF.mjs";
5
- import "./chunk-SDMEBXOE.mjs";
2
+ ThreadOperation_exports
3
+ } from "./chunk-PE7IH7EL.mjs";
4
+ import "./chunk-J5LGTIGS.mjs";
6
5
 
7
6
  // src/operations/create-proposals.ts
8
7
  import * as Array from "effect/Array";
9
8
  import * as Effect from "effect/Effect";
10
9
  import * as Function from "effect/Function";
11
10
  import { computeDiffsWithCursors } from "@dxos/assistant";
11
+ import { Operation } from "@dxos/compute";
12
12
  import { Database, Obj, Ref, Relation } from "@dxos/echo";
13
13
  import { createDocAccessor } from "@dxos/echo-db";
14
- import { Operation } from "@dxos/operation";
15
14
  import { AnchoredTo, Message, Thread } from "@dxos/types";
16
- var handler = CreateProposals.pipe(Operation.withHandler(Effect.fn(function* ({ doc, diffs }) {
15
+ var handler = ThreadOperation_exports.CreateProposals.pipe(Operation.withHandler(Effect.fn(function* ({ doc, diffs }) {
17
16
  const object = yield* Database.load(doc);
18
17
  const content = yield* Effect.promise(() => object.content.load());
19
18
  const accessor = createDocAccessor(content, [
@@ -54,4 +53,4 @@ var create_proposals_default = handler;
54
53
  export {
55
54
  create_proposals_default as default
56
55
  };
57
- //# sourceMappingURL=create-proposals-EQQXX7U7.mjs.map
56
+ //# sourceMappingURL=create-proposals-GRYZXRMV.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/create-proposals.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Array from 'effect/Array';\nimport * as Effect from 'effect/Effect';\nimport * as Function from 'effect/Function';\n\nimport { computeDiffsWithCursors } from '@dxos/assistant';\nimport { Operation } from '@dxos/compute';\nimport { Database, Obj, Ref, Relation } from '@dxos/echo';\nimport { createDocAccessor } from '@dxos/echo-db';\nimport { AnchoredTo, Message, Thread } from '@dxos/types';\n\nimport { ThreadOperation } from '../types';\n\nconst handler: Operation.WithHandler<typeof ThreadOperation.CreateProposals> = ThreadOperation.CreateProposals.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ doc, diffs }) {\n const object = yield* Database.load(doc);\n const content = yield* Effect.promise(() => object.content.load());\n const accessor = createDocAccessor(content, ['content']);\n\n yield* Function.pipe(\n computeDiffsWithCursors(accessor, diffs),\n Array.map(\n Effect.fnUntraced(function* ({ cursor, text }) {\n const proposal = Obj.make(Message.Message, {\n created: new Date().toISOString(),\n sender: { role: 'assistant' },\n blocks: [{ _tag: 'proposal', text }],\n });\n const thread = Thread.make({ name: 'Proposal', messages: [Ref.make(proposal)], status: 'active' });\n const relation = Relation.make(AnchoredTo.AnchoredTo, {\n [Relation.Source]: thread,\n [Relation.Target]: object,\n anchor: cursor,\n });\n yield* Database.add(thread);\n yield* Database.add(relation);\n }),\n ),\n Effect.allWith({ concurrency: 'unbounded' }),\n );\n }),\n ),\n);\n\nexport default handler;\n"],
5
+ "mappings": ";;;;;;AAIA,YAAYA,WAAW;AACvB,YAAYC,YAAY;AACxB,YAAYC,cAAc;AAE1B,SAASC,+BAA+B;AACxC,SAASC,iBAAiB;AAC1B,SAASC,UAAUC,KAAKC,KAAKC,gBAAgB;AAC7C,SAASC,yBAAyB;AAClC,SAASC,YAAYC,SAASC,cAAc;AAI5C,IAAMC,UAAyEC,wBAAgBC,gBAAgBC,KAC7GC,UAAUC,YACDC,UAAG,WAAW,EAAEC,KAAKC,MAAK,GAAE;AACjC,QAAMC,SAAS,OAAOC,SAASC,KAAKJ,GAAAA;AACpC,QAAMK,UAAU,OAAcC,eAAQ,MAAMJ,OAAOG,QAAQD,KAAI,CAAA;AAC/D,QAAMG,WAAWC,kBAAkBH,SAAS;IAAC;GAAU;AAEvD,SAAgBT,cACda,wBAAwBF,UAAUN,KAAAA,GAC5BS,UACGC,kBAAW,WAAW,EAAEC,QAAQC,KAAI,GAAE;AAC3C,UAAMC,WAAWC,IAAIC,KAAKC,QAAQA,SAAS;MACzCC,UAAS,oBAAIC,KAAAA,GAAOC,YAAW;MAC/BC,QAAQ;QAAEC,MAAM;MAAY;MAC5BC,QAAQ;QAAC;UAAEC,MAAM;UAAYX;QAAK;;IACpC,CAAA;AACA,UAAMY,SAASC,OAAOV,KAAK;MAAEW,MAAM;MAAYC,UAAU;QAACC,IAAIb,KAAKF,QAAAA;;MAAYgB,QAAQ;IAAS,CAAA;AAChG,UAAMC,WAAWC,SAAShB,KAAKiB,WAAWA,YAAY;MACpD,CAACD,SAASE,MAAM,GAAGT;MACnB,CAACO,SAASG,MAAM,GAAGjC;MACnBkC,QAAQxB;IACV,CAAA;AACA,WAAOT,SAASkC,IAAIZ,MAAAA;AACpB,WAAOtB,SAASkC,IAAIN,QAAAA;EACtB,CAAA,CAAA,GAEKO,eAAQ;IAAEC,aAAa;EAAY,CAAA,CAAA;AAE9C,CAAA,CAAA,CAAA;AAIJ,IAAA,2BAAe9C;",
6
+ "names": ["Array", "Effect", "Function", "computeDiffsWithCursors", "Operation", "Database", "Obj", "Ref", "Relation", "createDocAccessor", "AnchoredTo", "Message", "Thread", "handler", "ThreadOperation", "CreateProposals", "pipe", "Operation", "withHandler", "fn", "doc", "diffs", "object", "Database", "load", "content", "promise", "accessor", "createDocAccessor", "computeDiffsWithCursors", "map", "fnUntraced", "cursor", "text", "proposal", "Obj", "make", "Message", "created", "Date", "toISOString", "sender", "role", "blocks", "_tag", "thread", "Thread", "name", "messages", "Ref", "status", "relation", "Relation", "AnchoredTo", "Source", "Target", "anchor", "add", "allWith", "concurrency"]
7
+ }
@@ -1,21 +1,19 @@
1
1
  import {
2
- Delete
3
- } from "./chunk-T6FNJOLU.mjs";
4
- import {
5
- ThreadCapabilities
6
- } from "./chunk-TAEJJ3CF.mjs";
7
- import "./chunk-SDMEBXOE.mjs";
2
+ ThreadCapabilities_exports,
3
+ ThreadOperation_exports
4
+ } from "./chunk-PE7IH7EL.mjs";
5
+ import "./chunk-J5LGTIGS.mjs";
8
6
 
9
7
  // src/operations/delete.ts
10
8
  import * as Effect from "effect/Effect";
11
9
  import { Capabilities, Capability } from "@dxos/app-framework";
12
10
  import { sleep } from "@dxos/async";
11
+ import { Operation } from "@dxos/compute";
13
12
  import { Obj, Relation } from "@dxos/echo";
14
- import { Operation } from "@dxos/operation";
15
- import { ObservabilityOperation } from "@dxos/plugin-observability/operations";
16
- var handler = Delete.pipe(Operation.withHandler(Effect.fnUntraced(function* ({ subject, anchor, thread: _thread }) {
13
+ import { ObservabilityOperation } from "@dxos/plugin-observability";
14
+ var handler = ThreadOperation_exports.Delete.pipe(Operation.withHandler(Effect.fnUntraced(function* ({ subject, anchor, thread: _thread }) {
17
15
  const registry = yield* Capability.get(Capabilities.AtomRegistry);
18
- const stateAtom = yield* Capability.get(ThreadCapabilities.State);
16
+ const stateAtom = yield* Capability.get(ThreadCapabilities_exports.State);
19
17
  const thread = _thread ?? Relation.getSource(anchor);
20
18
  const subjectId = Obj.getDXN(subject).toString();
21
19
  const state = registry.get(stateAtom);
@@ -56,4 +54,4 @@ var delete_default = handler;
56
54
  export {
57
55
  delete_default as default
58
56
  };
59
- //# sourceMappingURL=delete-UFRQJ5GV.mjs.map
57
+ //# sourceMappingURL=delete-HCCG5RVR.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/delete.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { sleep } from '@dxos/async';\nimport { Operation } from '@dxos/compute';\nimport { Obj, Relation } from '@dxos/echo';\nimport { ObservabilityOperation } from '@dxos/plugin-observability';\nimport { Thread } from '@dxos/types';\n\nimport { ThreadCapabilities } from '../types';\nimport { ThreadOperation } from '../types';\n\nconst handler: Operation.WithHandler<typeof ThreadOperation.Delete> = ThreadOperation.Delete.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* ({ subject, anchor, thread: _thread }) {\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n const stateAtom = yield* Capability.get(ThreadCapabilities.State);\n const thread = _thread ?? (Relation.getSource(anchor) as Thread.Thread);\n const subjectId = Obj.getDXN(subject).toString();\n const state = registry.get(stateAtom);\n const draft = state.drafts[subjectId];\n if (draft) {\n const index = draft.findIndex((a: { id: string }) => a.id === anchor.id);\n if (index !== -1) {\n registry.set(stateAtom, {\n ...state,\n drafts: {\n ...state.drafts,\n [subjectId]: state.drafts[subjectId]?.filter((_, i) => i !== index),\n },\n });\n return {};\n }\n }\n\n const db = Obj.getDatabase(thread);\n if (!db) {\n return {};\n }\n\n // TODO(wittjosiah): Without sleep, rendering crashes at `Relation.setSource(anchor)`.\n db.remove(anchor);\n yield* Effect.promise(() => sleep(100));\n db.remove(thread);\n\n yield* Operation.schedule(ObservabilityOperation.SendEvent, {\n name: 'threads.delete',\n properties: {\n spaceId: db.spaceId,\n threadId: thread.id,\n },\n });\n\n return { thread, anchor };\n }),\n ),\n);\n\nexport default handler;\n"],
5
+ "mappings": ";;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,aAAa;AACtB,SAASC,iBAAiB;AAC1B,SAASC,KAAKC,gBAAgB;AAC9B,SAASC,8BAA8B;AAMvC,IAAMC,UAAgEC,wBAAgBC,OAAOC,KAC3FC,UAAUC,YACDC,kBAAW,WAAW,EAAEC,SAASC,QAAQC,QAAQC,QAAO,GAAE;AAC/D,QAAMC,WAAW,OAAOC,WAAWC,IAAIC,aAAaC,YAAY;AAChE,QAAMC,YAAY,OAAOJ,WAAWC,IAAII,2BAAmBC,KAAK;AAChE,QAAMT,SAASC,WAAYS,SAASC,UAAUZ,MAAAA;AAC9C,QAAMa,YAAYC,IAAIC,OAAOhB,OAAAA,EAASiB,SAAQ;AAC9C,QAAMC,QAAQd,SAASE,IAAIG,SAAAA;AAC3B,QAAMU,QAAQD,MAAME,OAAON,SAAAA;AAC3B,MAAIK,OAAO;AACT,UAAME,QAAQF,MAAMG,UAAU,CAACC,MAAsBA,EAAEC,OAAOvB,OAAOuB,EAAE;AACvE,QAAIH,UAAU,IAAI;AAChBjB,eAASqB,IAAIhB,WAAW;QACtB,GAAGS;QACHE,QAAQ;UACN,GAAGF,MAAME;UACT,CAACN,SAAAA,GAAYI,MAAME,OAAON,SAAAA,GAAYY,OAAO,CAACC,GAAGC,MAAMA,MAAMP,KAAAA;QAC/D;MACF,CAAA;AACA,aAAO,CAAC;IACV;EACF;AAEA,QAAMQ,KAAKd,IAAIe,YAAY5B,MAAAA;AAC3B,MAAI,CAAC2B,IAAI;AACP,WAAO,CAAC;EACV;AAGAA,KAAGE,OAAO9B,MAAAA;AACV,SAAc+B,eAAQ,MAAMC,MAAM,GAAA,CAAA;AAClCJ,KAAGE,OAAO7B,MAAAA;AAEV,SAAOL,UAAUqC,SAASC,uBAAuBC,WAAW;IAC1DC,MAAM;IACNC,YAAY;MACVC,SAASV,GAAGU;MACZC,UAAUtC,OAAOsB;IACnB;EACF,CAAA;AAEA,SAAO;IAAEtB;IAAQD;EAAO;AAC1B,CAAA,CAAA,CAAA;AAIJ,IAAA,iBAAeR;",
6
+ "names": ["Effect", "Capabilities", "Capability", "sleep", "Operation", "Obj", "Relation", "ObservabilityOperation", "handler", "ThreadOperation", "Delete", "pipe", "Operation", "withHandler", "fnUntraced", "subject", "anchor", "thread", "_thread", "registry", "Capability", "get", "Capabilities", "AtomRegistry", "stateAtom", "ThreadCapabilities", "State", "Relation", "getSource", "subjectId", "Obj", "getDXN", "toString", "state", "draft", "drafts", "index", "findIndex", "a", "id", "set", "filter", "_", "i", "db", "getDatabase", "remove", "promise", "sleep", "schedule", "ObservabilityOperation", "SendEvent", "name", "properties", "spaceId", "threadId"]
7
+ }
@@ -1,29 +1,19 @@
1
1
  import {
2
- Delete,
3
- DeleteMessage
4
- } from "./chunk-T6FNJOLU.mjs";
5
- import "./chunk-TAEJJ3CF.mjs";
6
- import "./chunk-SDMEBXOE.mjs";
2
+ ThreadOperation_exports
3
+ } from "./chunk-PE7IH7EL.mjs";
4
+ import "./chunk-J5LGTIGS.mjs";
7
5
 
8
6
  // src/operations/delete-message.ts
9
7
  import * as Effect from "effect/Effect";
8
+ import { Operation } from "@dxos/compute";
10
9
  import { Obj, Relation } from "@dxos/echo";
11
10
  import { invariant } from "@dxos/invariant";
12
- import { Operation } from "@dxos/operation";
13
- import { ObservabilityOperation } from "@dxos/plugin-observability/operations";
11
+ import { ObservabilityOperation } from "@dxos/plugin-observability";
14
12
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/operations/delete-message.ts";
15
- var handler = DeleteMessage.pipe(Operation.withHandler(Effect.fnUntraced(function* ({ subject, anchor, messageId }) {
13
+ var handler = ThreadOperation_exports.DeleteMessage.pipe(Operation.withHandler(Effect.fnUntraced(function* ({ subject, anchor, messageId }) {
16
14
  const thread = Relation.getSource(anchor);
17
15
  const db = Obj.getDatabase(subject);
18
- invariant(db, "Database not found", {
19
- F: __dxlog_file,
20
- L: 20,
21
- S: this,
22
- A: [
23
- "db",
24
- "'Database not found'"
25
- ]
26
- });
16
+ invariant(db, "Database not found", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 13, S: this, A: ["db", "'Database not found'"] });
27
17
  const msgIndex = thread.messages.findIndex((ref) => ref.target?.id === messageId);
28
18
  const msg = thread.messages[msgIndex]?.target;
29
19
  if (!msg) {
@@ -32,7 +22,7 @@ var handler = DeleteMessage.pipe(Operation.withHandler(Effect.fnUntraced(functio
32
22
  };
33
23
  }
34
24
  if (msgIndex === 0 && thread.messages.length === 1) {
35
- yield* Operation.invoke(Delete, {
25
+ yield* Operation.invoke(ThreadOperation_exports.Delete, {
36
26
  subject,
37
27
  anchor
38
28
  });
@@ -40,8 +30,8 @@ var handler = DeleteMessage.pipe(Operation.withHandler(Effect.fnUntraced(functio
40
30
  messageIndex: -1
41
31
  };
42
32
  }
43
- Obj.change(thread, (obj) => {
44
- obj.messages.splice(msgIndex, 1);
33
+ Obj.update(thread, (thread2) => {
34
+ thread2.messages.splice(msgIndex, 1);
45
35
  });
46
36
  yield* Operation.schedule(ObservabilityOperation.SendEvent, {
47
37
  name: "threads.message.delete",
@@ -61,4 +51,4 @@ var delete_message_default = handler;
61
51
  export {
62
52
  delete_message_default as default
63
53
  };
64
- //# sourceMappingURL=delete-message-TR4FW7HR.mjs.map
54
+ //# sourceMappingURL=delete-message-DHFRACB4.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/delete-message.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\nimport { Obj, Relation } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { ObservabilityOperation } from '@dxos/plugin-observability';\nimport { Thread } from '@dxos/types';\n\nimport { ThreadOperation } from '../types';\n\nconst handler: Operation.WithHandler<typeof ThreadOperation.DeleteMessage> = ThreadOperation.DeleteMessage.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* ({ subject, anchor, messageId }) {\n const thread = Relation.getSource(anchor) as Thread.Thread;\n const db = Obj.getDatabase(subject);\n invariant(db, 'Database not found');\n\n const msgIndex = thread.messages.findIndex((ref) => ref.target?.id === messageId);\n const msg = thread.messages[msgIndex]?.target;\n if (!msg) {\n return { messageIndex: -1 };\n }\n\n if (msgIndex === 0 && thread.messages.length === 1) {\n // TODO(wittjosiah): This doesn't support restoring the thread.\n yield* Operation.invoke(ThreadOperation.Delete, { subject, anchor });\n return { messageIndex: -1 };\n }\n\n Obj.update(thread, (thread) => {\n thread.messages.splice(msgIndex, 1);\n });\n\n yield* Operation.schedule(ObservabilityOperation.SendEvent, {\n name: 'threads.message.delete',\n properties: {\n spaceId: db.spaceId,\n threadId: thread.id,\n threadLength: thread.messages.length,\n messageId,\n },\n });\n\n return { message: msg, messageIndex: msgIndex };\n }),\n ),\n);\n\nexport default handler;\n"],
5
+ "mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,KAAKC,gBAAgB;AAC9B,SAASC,iBAAiB;AAC1B,SAASC,8BAA8B;AAKvC,IAAA,eAA6EC;IAIvE,UAAWC,wBAAgBC,cAAAA,KAAAA,UAAAA,YAAAA,kBAAAA,WAAAA,EAAAA,SAAAA,QAAAA,UAAAA,GAAAA;AAC3BC,QAAAA,SAAc,SAAA,UAAA,MAAA;AAEd,QAAMC,KAAAA,IAAAA,YAAkBC,OAASC;AACjC,YAAMC,IAAMC,sBAAgBJ,EAAAA,YAAWK,YAAAA,GAAAA,cAAAA,GAAAA,IAAAA,GAAAA,MAAAA,GAAAA,CAAAA,MAAAA,sBAAAA,EAAAA,CAAAA;AACvC,QAAKF,WAAK,OAAA,SAAA,UAAA,CAAA,QAAA,IAAA,QAAA,OAAA,SAAA;QACR,MAAO,OAAA,SAAA,QAAA,GAAA;YAAEG;AAAiB,WAAA;MAC5B,cAAA;IAEIN;;MAEF,aAAOO,KAAUC,OAAOZ,SAAAA,WAAgBa,GAAQ;WAAWC,UAAAA,OAAAA,wBAAAA,QAAAA;MAAO;MAClE;;AAA0B,WAAA;MAC5B,cAAA;IAEIC;;AAEJ,MAAA,OAAA,QAAA,CAAAP,YAAA;AAEA,IAAAA,QAAOG,SAAUK,OAASC,UAAAA,CAAAA;;SAExBC,UAAY,SAAA,uBAAA,WAAA;UACVC;gBACAC;MACAC,SAAAA,GAAAA;MACAC,UAAAA,OAAAA;MACF,cAAA,OAAA,SAAA;MACF;IAEA;;SAAuBZ;IAAuB,SAAA;IAChD,cAAA;EAIJ;;;",
6
+ "names": ["Effect", "Operation", "Obj", "Relation", "invariant", "ObservabilityOperation", "ThreadOperation", "Obj", "subject", "invariant", "msgIndex", "messages", "findIndex", "msg", "thread", "target", "messageIndex", "Operation", "invoke", "Delete", "anchor", "update", "schedule", "ObservabilityOperation", "properties", "spaceId", "threadId", "threadLength", "messageId"]
7
+ }
@@ -0,0 +1,10 @@
1
+ import {
2
+ useOnEditAnalytics,
3
+ useStatus
4
+ } from "../chunk-QFDT33VT.mjs";
5
+ import "../chunk-J5LGTIGS.mjs";
6
+ export {
7
+ useOnEditAnalytics,
8
+ useStatus
9
+ };
10
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,28 @@
1
+ import {
2
+ useOnEditAnalytics,
3
+ useStatus
4
+ } from "./chunk-QFDT33VT.mjs";
5
+ import {
6
+ THREAD_ITEM,
7
+ meta
8
+ } from "./chunk-QDCG6XQI.mjs";
9
+ import {
10
+ Settings_exports,
11
+ ThreadCapabilities_exports,
12
+ ThreadOperation_exports
13
+ } from "./chunk-PE7IH7EL.mjs";
14
+ import {
15
+ thread_blueprint_default
16
+ } from "./chunk-5T5LPLBN.mjs";
17
+ import "./chunk-J5LGTIGS.mjs";
18
+ export {
19
+ Settings_exports as Settings,
20
+ THREAD_ITEM,
21
+ thread_blueprint_default as ThreadBlueprint,
22
+ ThreadCapabilities_exports as ThreadCapabilities,
23
+ ThreadOperation_exports as ThreadOperation,
24
+ meta,
25
+ useOnEditAnalytics,
26
+ useStatus
27
+ };
28
+ //# sourceMappingURL=index.mjs.map
@@ -1,22 +1,17 @@
1
1
  import {
2
2
  threads
3
- } from "./chunk-MC6IA6YE.mjs";
4
- import "./chunk-2M2HV5K4.mjs";
5
- import "./chunk-4PJ6SUNH.mjs";
6
- import "./chunk-T6FNJOLU.mjs";
7
- import {
8
- ThreadCapabilities
9
- } from "./chunk-TAEJJ3CF.mjs";
10
- import "./chunk-SDMEBXOE.mjs";
3
+ } from "./chunk-KRXHIW4P.mjs";
4
+ import "./chunk-J5LGTIGS.mjs";
11
5
 
12
- // src/capabilities/markdown/markdown.ts
6
+ // src/capabilities/markdown.ts
13
7
  import { EditorView } from "@codemirror/view";
14
8
  import * as Effect from "effect/Effect";
15
9
  import { Capabilities, Capability } from "@dxos/app-framework";
16
- import { companionSegment } from "@dxos/app-toolkit";
17
- import { DeckOperation } from "@dxos/plugin-deck/operations";
10
+ import { LayoutOperation } from "@dxos/app-toolkit";
18
11
  import { MarkdownCapabilities } from "@dxos/plugin-markdown";
12
+ import { linkedSegment } from "@dxos/react-ui-attention";
19
13
  import { commentClickedEffect, commentsState, documentId, overlap } from "@dxos/ui-editor";
14
+ import { ThreadCapabilities } from "#types";
20
15
  var markdown_default = Capability.makeModule(Effect.fnUntraced(function* () {
21
16
  const capabilities = yield* Capability.Service;
22
17
  return Capability.contributes(MarkdownCapabilities.Extensions, [
@@ -30,7 +25,9 @@ var markdown_default = Capability.makeModule(Effect.fnUntraced(function* () {
30
25
  }, doc, invokePromise);
31
26
  },
32
27
  ({ document: doc }) => {
33
- if (!doc) return [];
28
+ if (!doc) {
29
+ return [];
30
+ }
34
31
  const registry = capabilities.get(Capabilities.AtomRegistry);
35
32
  const stateAtom = capabilities.get(ThreadCapabilities.State);
36
33
  return EditorView.updateListener.of((update) => {
@@ -49,14 +46,16 @@ var markdown_default = Capability.makeModule(Effect.fnUntraced(function* () {
49
46
  });
50
47
  },
51
48
  ({ document: doc }) => {
52
- if (!doc) return [];
49
+ if (!doc) {
50
+ return [];
51
+ }
53
52
  const { invokePromise } = capabilities.get(Capabilities.OperationInvoker);
54
53
  return EditorView.updateListener.of((update) => {
55
54
  update.transactions.forEach((transaction) => {
56
55
  transaction.effects.forEach(async (effect) => {
57
56
  if (effect.is(commentClickedEffect)) {
58
- void invokePromise(DeckOperation.ChangeCompanion, {
59
- companion: companionSegment("comments")
57
+ void invokePromise(LayoutOperation.UpdateCompanion, {
58
+ subject: linkedSegment("comments")
60
59
  });
61
60
  }
62
61
  });
@@ -81,4 +80,4 @@ var selectionOverlapsComment = (state) => {
81
80
  export {
82
81
  markdown_default as default
83
82
  };
84
- //# sourceMappingURL=markdown-ZS2LW3OL.mjs.map
83
+ //# sourceMappingURL=markdown-BUORNCPG.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/markdown.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 { LayoutOperation } from '@dxos/app-toolkit';\nimport { MarkdownCapabilities } from '@dxos/plugin-markdown';\nimport { linkedSegment } from '@dxos/react-ui-attention';\nimport { type EditorState, commentClickedEffect, commentsState, documentId, overlap } from '@dxos/ui-editor';\n\nimport { ThreadCapabilities } from '#types';\n\nimport { threads } from '../extensions';\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) {\n return [];\n }\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 id = update.state.facet(documentId);\n const overlaps = selectionOverlapsComment(update.state);\n const current = registry.get(stateAtom);\n registry.set(stateAtom, {\n ...current,\n toolbar: { ...current.toolbar, [id]: overlaps },\n });\n }\n });\n },\n ({ document: doc }) => {\n if (!doc) {\n return [];\n }\n const { invokePromise } = capabilities.get(Capabilities.OperationInvoker);\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(LayoutOperation.UpdateCompanion, {\n subject: linkedSegment('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"],
5
+ "mappings": ";;;;;;AAIA,SAASA,kBAAkB;AAC3B,YAAYC,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,uBAAuB;AAChC,SAASC,4BAA4B;AACrC,SAASC,qBAAqB;AAC9B,SAA2BC,sBAAsBC,eAAeC,YAAYC,eAAe;AAE3F,SAASC,0BAA0B;AAInC,IAAA,mBAAeC,WAAWC,WACjBC,kBAAW,aAAA;AAEhB,QAAMC,eAAe,OAAOH,WAAWI;AAEvC,SAAOJ,WAAWK,YAAYC,qBAAqBC,YAAY;IAC7D,CAAC,EAAEC,UAAUC,IAAG,MAAE;AAChB,YAAM,EAAEC,cAAa,IAAKP,aAAaQ,IAAIC,aAAaC,gBAAgB;AACxE,YAAMC,WAAWX,aAAaQ,IAAIC,aAAaG,YAAY;AAC3D,YAAMC,YAAYb,aAAaQ,IAAIM,mBAAmBC,KAAK;AAC3D,aAAOC,QAAQ;QAAEL;QAAUE;MAAU,GAAGP,KAAKC,aAAAA;IAC/C;IACA,CAAC,EAAEF,UAAUC,IAAG,MAAE;AAChB,UAAI,CAACA,KAAK;AACR,eAAO,CAAA;MACT;AACA,YAAMK,WAAWX,aAAaQ,IAAIC,aAAaG,YAAY;AAC3D,YAAMC,YAAYb,aAAaQ,IAAIM,mBAAmBC,KAAK;AAE3D,aAAOE,WAAWC,eAAeC,GAAG,CAACC,WAAAA;AACnC,YAAIA,OAAOC,cAAcD,OAAOE,cAAc;AAC5C,gBAAMC,KAAKH,OAAOI,MAAMC,MAAMC,UAAAA;AAC9B,gBAAMC,WAAWC,yBAAyBR,OAAOI,KAAK;AACtD,gBAAMK,UAAUlB,SAASH,IAAIK,SAAAA;AAC7BF,mBAASmB,IAAIjB,WAAW;YACtB,GAAGgB;YACHE,SAAS;cAAE,GAAGF,QAAQE;cAAS,CAACR,EAAAA,GAAKI;YAAS;UAChD,CAAA;QACF;MACF,CAAA;IACF;IACA,CAAC,EAAEtB,UAAUC,IAAG,MAAE;AAChB,UAAI,CAACA,KAAK;AACR,eAAO,CAAA;MACT;AACA,YAAM,EAAEC,cAAa,IAAKP,aAAaQ,IAAIC,aAAaC,gBAAgB;AAExE,aAAOO,WAAWC,eAAeC,GAAG,CAACC,WAAAA;AACnCA,eAAOY,aAAaC,QAAQ,CAACC,gBAAAA;AAC3BA,sBAAYC,QAAQF,QAAQ,OAAOG,WAAAA;AACjC,gBAAIA,OAAOC,GAAGC,oBAAAA,GAAuB;AACnC,mBAAK/B,cAAcgC,gBAAgBC,iBAAiB;gBAClDC,SAASC,cAAc,UAAA;cACzB,CAAA;YACF;UACF,CAAA;QACF,CAAA;MACF,CAAA;IACF;GACD;AACH,CAAA,CAAA;AAGF,IAAMd,2BAA2B,CAACJ,UAAAA;AAEhC,QAAMmB,eAAenB,MAAMoB,MAAMC,eAAe,KAAA;AAChD,MAAIF,iBAAiBG,QAAW;AAC9B,WAAO;EACT;AAEA,QAAM,EAAEC,UAAS,IAAKvB;AACtB,aAAWwB,SAASD,UAAUE,QAAQ;AACpC,QAAIN,aAAaO,SAASC,KAAK,CAAC,EAAEH,OAAOI,aAAY,MAAOC,QAAQD,cAAcJ,KAAAA,CAAAA,GAAS;AACzF,aAAO;IACT;EACF;AAEA,SAAO;AACT;",
6
+ "names": ["EditorView", "Effect", "Capabilities", "Capability", "LayoutOperation", "MarkdownCapabilities", "linkedSegment", "commentClickedEffect", "commentsState", "documentId", "overlap", "ThreadCapabilities", "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", "id", "state", "facet", "documentId", "overlaps", "selectionOverlapsComment", "current", "set", "toolbar", "transactions", "forEach", "transaction", "effects", "effect", "is", "commentClickedEffect", "LayoutOperation", "UpdateCompanion", "subject", "linkedSegment", "commentState", "field", "commentsState", "undefined", "selection", "range", "ranges", "comments", "some", "commentRange", "overlap"]
7
+ }