@dxos/plugin-thread 0.8.4-main.72ec0f3 → 0.8.4-main.7996785055

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 (579) hide show
  1. package/dist/lib/browser/CallDebugPanel-RY6FXDN7.mjs +181 -0
  2. package/dist/lib/browser/CallDebugPanel-RY6FXDN7.mjs.map +7 -0
  3. package/dist/lib/browser/CallSidebar-U3YOKNG6.mjs +37 -0
  4. package/dist/lib/browser/CallSidebar-U3YOKNG6.mjs.map +7 -0
  5. package/dist/lib/browser/ChannelContainer-C25SJD67.mjs +18 -0
  6. package/dist/lib/browser/ChatContainer-VG6JXVMR.mjs +19 -0
  7. package/dist/lib/browser/ThreadCompanion-LHPNPABS.mjs +223 -0
  8. package/dist/lib/browser/ThreadCompanion-LHPNPABS.mjs.map +7 -0
  9. package/dist/lib/browser/ThreadSettings-7WRTSUPH.mjs +19 -0
  10. package/dist/lib/browser/ThreadSettings-7WRTSUPH.mjs.map +7 -0
  11. package/dist/lib/browser/add-message-O3INEWOI.mjs +97 -0
  12. package/dist/lib/browser/add-message-O3INEWOI.mjs.map +7 -0
  13. package/dist/lib/browser/app-graph-builder-NQASP6LK.mjs +191 -0
  14. package/dist/lib/browser/app-graph-builder-NQASP6LK.mjs.map +7 -0
  15. package/dist/lib/browser/blueprint-definition-BVS7F5KD.mjs +20 -0
  16. package/dist/lib/browser/blueprint-definition-BVS7F5KD.mjs.map +7 -0
  17. package/dist/lib/browser/blueprints/index.mjs +11 -0
  18. package/dist/lib/browser/call-manager-HRJSB3NQ.mjs +26 -0
  19. package/dist/lib/browser/call-manager-HRJSB3NQ.mjs.map +7 -0
  20. package/dist/lib/browser/chunk-2M2HV5K4.mjs +35 -0
  21. package/dist/lib/browser/chunk-2M2HV5K4.mjs.map +7 -0
  22. package/dist/lib/browser/chunk-4PJ6SUNH.mjs +8 -0
  23. package/dist/lib/browser/chunk-4PJ6SUNH.mjs.map +7 -0
  24. package/dist/lib/browser/{chunk-ZCW3NSDZ.mjs → chunk-ERK254BS.mjs} +68 -51
  25. package/dist/lib/browser/chunk-ERK254BS.mjs.map +7 -0
  26. package/dist/lib/browser/chunk-GB4CYKEA.mjs +223 -0
  27. package/dist/lib/browser/chunk-GB4CYKEA.mjs.map +7 -0
  28. package/dist/lib/browser/{chunk-KOBXMDCI.mjs → chunk-GYRGZNEC.mjs} +14 -12
  29. package/dist/lib/browser/chunk-GYRGZNEC.mjs.map +7 -0
  30. package/dist/lib/browser/chunk-L7RCZYUB.mjs +39 -0
  31. package/dist/lib/browser/chunk-L7RCZYUB.mjs.map +7 -0
  32. package/dist/lib/browser/chunk-MC6IA6YE.mjs +135 -0
  33. package/dist/lib/browser/chunk-MC6IA6YE.mjs.map +7 -0
  34. package/dist/lib/browser/chunk-NU7YGDHW.mjs +126 -0
  35. package/dist/lib/browser/chunk-NU7YGDHW.mjs.map +7 -0
  36. package/dist/lib/browser/{chunk-K2DUJRFJ.mjs → chunk-SDMEBXOE.mjs} +3 -3
  37. package/dist/lib/browser/chunk-SDMEBXOE.mjs.map +7 -0
  38. package/dist/lib/browser/chunk-T6FNJOLU.mjs +259 -0
  39. package/dist/lib/browser/chunk-T6FNJOLU.mjs.map +7 -0
  40. package/dist/lib/browser/chunk-TAEJJ3CF.mjs +57 -0
  41. package/dist/lib/browser/chunk-TAEJJ3CF.mjs.map +7 -0
  42. package/dist/lib/browser/chunk-WR6V7S4Q.mjs +1093 -0
  43. package/dist/lib/browser/chunk-WR6V7S4Q.mjs.map +7 -0
  44. package/dist/lib/browser/create-UP6DYIPF.mjs +55 -0
  45. package/dist/lib/browser/create-UP6DYIPF.mjs.map +7 -0
  46. package/dist/lib/browser/create-channel-NHQ3BKJC.mjs +21 -0
  47. package/dist/lib/browser/create-channel-NHQ3BKJC.mjs.map +7 -0
  48. package/dist/lib/browser/create-channel-thread-JJ7ZST67.mjs +28 -0
  49. package/dist/lib/browser/create-channel-thread-JJ7ZST67.mjs.map +7 -0
  50. package/dist/lib/browser/create-proposals-EQQXX7U7.mjs +57 -0
  51. package/dist/lib/browser/create-proposals-EQQXX7U7.mjs.map +7 -0
  52. package/dist/lib/browser/delete-UFRQJ5GV.mjs +59 -0
  53. package/dist/lib/browser/delete-UFRQJ5GV.mjs.map +7 -0
  54. package/dist/lib/browser/delete-message-TR4FW7HR.mjs +64 -0
  55. package/dist/lib/browser/delete-message-TR4FW7HR.mjs.map +7 -0
  56. package/dist/lib/browser/index.mjs +137 -129
  57. package/dist/lib/browser/index.mjs.map +4 -4
  58. package/dist/lib/browser/markdown-ZS2LW3OL.mjs +84 -0
  59. package/dist/lib/browser/markdown-ZS2LW3OL.mjs.map +7 -0
  60. package/dist/lib/browser/meta.json +1 -1
  61. package/dist/lib/browser/on-create-space-KLARW25R.mjs +25 -0
  62. package/dist/lib/browser/on-create-space-KLARW25R.mjs.map +7 -0
  63. package/dist/lib/browser/operation-handler-2PRAMPLT.mjs +17 -0
  64. package/dist/lib/browser/operation-handler-2PRAMPLT.mjs.map +7 -0
  65. package/dist/lib/browser/operations/index.mjs +13 -0
  66. package/dist/lib/browser/react-root-EGOEX44B.mjs +26 -0
  67. package/dist/lib/browser/react-root-EGOEX44B.mjs.map +7 -0
  68. package/dist/lib/browser/react-surface-UFSXNECJ.mjs +114 -0
  69. package/dist/lib/browser/react-surface-UFSXNECJ.mjs.map +7 -0
  70. package/dist/lib/browser/restore-GANFC4M4.mjs +33 -0
  71. package/dist/lib/browser/restore-GANFC4M4.mjs.map +7 -0
  72. package/dist/lib/browser/restore-message-FWGQ4FCN.mjs +42 -0
  73. package/dist/lib/browser/restore-message-FWGQ4FCN.mjs.map +7 -0
  74. package/dist/lib/browser/select-Y4XQX4BS.mjs +26 -0
  75. package/dist/lib/browser/select-Y4XQX4BS.mjs.map +7 -0
  76. package/dist/lib/browser/settings-VOVRRXEK.mjs +34 -0
  77. package/dist/lib/browser/settings-VOVRRXEK.mjs.map +7 -0
  78. package/dist/lib/browser/state-WNYOQCCT.mjs +24 -0
  79. package/dist/lib/browser/state-WNYOQCCT.mjs.map +7 -0
  80. package/dist/lib/browser/toggle-resolved-QVOZGID6.mjs +45 -0
  81. package/dist/lib/browser/toggle-resolved-QVOZGID6.mjs.map +7 -0
  82. package/dist/lib/browser/types/index.mjs +5 -7
  83. package/dist/lib/browser/undo-mappings-BTXCCPUL.mjs +59 -0
  84. package/dist/lib/browser/undo-mappings-BTXCCPUL.mjs.map +7 -0
  85. package/dist/lib/node-esm/CallDebugPanel-CKGXAWG5.mjs +182 -0
  86. package/dist/lib/node-esm/CallDebugPanel-CKGXAWG5.mjs.map +7 -0
  87. package/dist/lib/node-esm/CallSidebar-MSAQRWCO.mjs +38 -0
  88. package/dist/lib/node-esm/CallSidebar-MSAQRWCO.mjs.map +7 -0
  89. package/dist/lib/node-esm/ChannelContainer-R23E4D3N.mjs +19 -0
  90. package/dist/lib/node-esm/ChannelContainer-R23E4D3N.mjs.map +7 -0
  91. package/dist/lib/node-esm/ChatContainer-VS2NX3S7.mjs +20 -0
  92. package/dist/lib/node-esm/ChatContainer-VS2NX3S7.mjs.map +7 -0
  93. package/dist/lib/node-esm/ThreadCompanion-DIKUNH3P.mjs +224 -0
  94. package/dist/lib/node-esm/ThreadCompanion-DIKUNH3P.mjs.map +7 -0
  95. package/dist/lib/node-esm/ThreadSettings-UJBAAD4J.mjs +20 -0
  96. package/dist/lib/node-esm/ThreadSettings-UJBAAD4J.mjs.map +7 -0
  97. package/dist/lib/node-esm/add-message-GQO7ETY3.mjs +98 -0
  98. package/dist/lib/node-esm/add-message-GQO7ETY3.mjs.map +7 -0
  99. package/dist/lib/node-esm/app-graph-builder-WIYQ3COQ.mjs +192 -0
  100. package/dist/lib/node-esm/app-graph-builder-WIYQ3COQ.mjs.map +7 -0
  101. package/dist/lib/node-esm/blueprint-definition-NXHQAJT7.mjs +21 -0
  102. package/dist/lib/node-esm/blueprint-definition-NXHQAJT7.mjs.map +7 -0
  103. package/dist/lib/node-esm/blueprints/index.mjs +12 -0
  104. package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
  105. package/dist/lib/node-esm/call-manager-LOWS24PO.mjs +27 -0
  106. package/dist/lib/node-esm/call-manager-LOWS24PO.mjs.map +7 -0
  107. package/dist/lib/node-esm/chunk-6ZJGXE4F.mjs +58 -0
  108. package/dist/lib/node-esm/chunk-6ZJGXE4F.mjs.map +7 -0
  109. package/dist/lib/node-esm/chunk-A3SWGVF3.mjs +37 -0
  110. package/dist/lib/node-esm/chunk-A3SWGVF3.mjs.map +7 -0
  111. package/dist/lib/node-esm/{chunk-PZH2EDU5.mjs → chunk-EYWLIDLC.mjs} +14 -12
  112. package/dist/lib/node-esm/chunk-EYWLIDLC.mjs.map +7 -0
  113. package/dist/lib/node-esm/chunk-GRA2YL5N.mjs +1094 -0
  114. package/dist/lib/node-esm/chunk-GRA2YL5N.mjs.map +7 -0
  115. package/dist/lib/node-esm/chunk-JOAZKE2A.mjs +260 -0
  116. package/dist/lib/node-esm/chunk-JOAZKE2A.mjs.map +7 -0
  117. package/dist/lib/node-esm/chunk-JOIEIY5R.mjs +224 -0
  118. package/dist/lib/node-esm/chunk-JOIEIY5R.mjs.map +7 -0
  119. package/dist/lib/node-esm/{chunk-XI45H4IV.mjs → chunk-JZI7AFD6.mjs} +3 -3
  120. package/dist/lib/node-esm/chunk-JZI7AFD6.mjs.map +7 -0
  121. package/dist/lib/node-esm/chunk-KCWDGW5M.mjs +127 -0
  122. package/dist/lib/node-esm/chunk-KCWDGW5M.mjs.map +7 -0
  123. package/dist/lib/node-esm/chunk-QFVKK6S6.mjs +10 -0
  124. package/dist/lib/node-esm/chunk-QFVKK6S6.mjs.map +7 -0
  125. package/dist/lib/node-esm/{chunk-7KZWZS2U.mjs → chunk-QP3KQOPQ.mjs} +68 -51
  126. package/dist/lib/node-esm/chunk-QP3KQOPQ.mjs.map +7 -0
  127. package/dist/lib/node-esm/chunk-VRNCL65Y.mjs +40 -0
  128. package/dist/lib/node-esm/chunk-VRNCL65Y.mjs.map +7 -0
  129. package/dist/lib/node-esm/chunk-YGHV23ZD.mjs +136 -0
  130. package/dist/lib/node-esm/chunk-YGHV23ZD.mjs.map +7 -0
  131. package/dist/lib/node-esm/create-DIAK4OFO.mjs +56 -0
  132. package/dist/lib/node-esm/create-DIAK4OFO.mjs.map +7 -0
  133. package/dist/lib/node-esm/create-channel-JHQN2RGK.mjs +22 -0
  134. package/dist/lib/node-esm/create-channel-JHQN2RGK.mjs.map +7 -0
  135. package/dist/lib/node-esm/create-channel-thread-PQKG5VFZ.mjs +29 -0
  136. package/dist/lib/node-esm/create-channel-thread-PQKG5VFZ.mjs.map +7 -0
  137. package/dist/lib/node-esm/create-proposals-JBZLGBSF.mjs +58 -0
  138. package/dist/lib/node-esm/create-proposals-JBZLGBSF.mjs.map +7 -0
  139. package/dist/lib/node-esm/delete-F4NFPLKJ.mjs +60 -0
  140. package/dist/lib/node-esm/delete-F4NFPLKJ.mjs.map +7 -0
  141. package/dist/lib/node-esm/delete-message-QSTGJOL6.mjs +65 -0
  142. package/dist/lib/node-esm/delete-message-QSTGJOL6.mjs.map +7 -0
  143. package/dist/lib/node-esm/index.mjs +137 -129
  144. package/dist/lib/node-esm/index.mjs.map +4 -4
  145. package/dist/lib/node-esm/markdown-YP22U47Q.mjs +85 -0
  146. package/dist/lib/node-esm/markdown-YP22U47Q.mjs.map +7 -0
  147. package/dist/lib/node-esm/meta.json +1 -1
  148. package/dist/lib/node-esm/on-create-space-N7SEMK4L.mjs +26 -0
  149. package/dist/lib/node-esm/on-create-space-N7SEMK4L.mjs.map +7 -0
  150. package/dist/lib/node-esm/operation-handler-S6I62YNM.mjs +18 -0
  151. package/dist/lib/node-esm/operation-handler-S6I62YNM.mjs.map +7 -0
  152. package/dist/lib/node-esm/operations/index.mjs +14 -0
  153. package/dist/lib/node-esm/operations/index.mjs.map +7 -0
  154. package/dist/lib/node-esm/react-root-DBJS3JVF.mjs +27 -0
  155. package/dist/lib/node-esm/react-root-DBJS3JVF.mjs.map +7 -0
  156. package/dist/lib/node-esm/react-surface-NOV4MWBJ.mjs +115 -0
  157. package/dist/lib/node-esm/react-surface-NOV4MWBJ.mjs.map +7 -0
  158. package/dist/lib/node-esm/restore-N7MEXVMG.mjs +34 -0
  159. package/dist/lib/node-esm/restore-N7MEXVMG.mjs.map +7 -0
  160. package/dist/lib/node-esm/restore-message-ECWGBHBC.mjs +43 -0
  161. package/dist/lib/node-esm/restore-message-ECWGBHBC.mjs.map +7 -0
  162. package/dist/lib/node-esm/select-GPWM36LA.mjs +27 -0
  163. package/dist/lib/node-esm/select-GPWM36LA.mjs.map +7 -0
  164. package/dist/lib/node-esm/settings-LIZBH7EW.mjs +35 -0
  165. package/dist/lib/node-esm/settings-LIZBH7EW.mjs.map +7 -0
  166. package/dist/lib/node-esm/state-ELJSYGJK.mjs +25 -0
  167. package/dist/lib/node-esm/state-ELJSYGJK.mjs.map +7 -0
  168. package/dist/lib/node-esm/toggle-resolved-EBEJUS66.mjs +46 -0
  169. package/dist/lib/node-esm/toggle-resolved-EBEJUS66.mjs.map +7 -0
  170. package/dist/lib/node-esm/types/index.mjs +5 -7
  171. package/dist/lib/node-esm/undo-mappings-IYTSBZWN.mjs +60 -0
  172. package/dist/lib/node-esm/undo-mappings-IYTSBZWN.mjs.map +7 -0
  173. package/dist/types/src/ThreadPlugin.d.ts +2 -1
  174. package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
  175. package/dist/types/src/blueprints/index.d.ts +2 -0
  176. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  177. package/dist/types/src/blueprints/thread-blueprint.d.ts +4 -0
  178. package/dist/types/src/blueprints/thread-blueprint.d.ts.map +1 -0
  179. package/dist/types/src/calls/call-manager.d.ts +40 -30
  180. package/dist/types/src/calls/call-manager.d.ts.map +1 -1
  181. package/dist/types/src/calls/call-swarm-synchronizer.d.ts +2 -2
  182. package/dist/types/src/calls/call-swarm-synchronizer.d.ts.map +1 -1
  183. package/dist/types/src/calls/media-manager.d.ts +1 -1
  184. package/dist/types/src/calls/media-manager.d.ts.map +1 -1
  185. package/dist/types/src/calls/util/calls-service.d.ts +1 -1
  186. package/dist/types/src/calls/util/calls-service.d.ts.map +1 -1
  187. package/dist/types/src/calls/util/task-scheduling.d.ts +2 -2
  188. package/dist/types/src/calls/util/task-scheduling.d.ts.map +1 -1
  189. package/dist/types/src/calls-service.stories.d.ts +2 -2
  190. package/dist/types/src/calls-service.stories.d.ts.map +1 -1
  191. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  192. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  193. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  194. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  195. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +6 -0
  196. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
  197. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
  198. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
  199. package/dist/types/src/capabilities/call-manager/call-manager.d.ts +6 -0
  200. package/dist/types/src/capabilities/call-manager/call-manager.d.ts.map +1 -0
  201. package/dist/types/src/capabilities/call-manager/index.d.ts +3 -0
  202. package/dist/types/src/capabilities/call-manager/index.d.ts.map +1 -0
  203. package/dist/types/src/capabilities/index.d.ts +10 -16
  204. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  205. package/dist/types/src/capabilities/markdown/index.d.ts +3 -0
  206. package/dist/types/src/capabilities/markdown/index.d.ts.map +1 -0
  207. package/dist/types/src/capabilities/markdown/markdown.d.ts +5 -0
  208. package/dist/types/src/capabilities/markdown/markdown.d.ts.map +1 -0
  209. package/dist/types/src/capabilities/operation-handler/index.d.ts +4 -0
  210. package/dist/types/src/capabilities/operation-handler/index.d.ts.map +1 -0
  211. package/dist/types/src/capabilities/operation-handler/operation-handler.d.ts +6 -0
  212. package/dist/types/src/capabilities/operation-handler/operation-handler.d.ts.map +1 -0
  213. package/dist/types/src/capabilities/react-root/index.d.ts +6 -0
  214. package/dist/types/src/capabilities/react-root/index.d.ts.map +1 -0
  215. package/dist/types/src/capabilities/react-root/react-root.d.ts +9 -0
  216. package/dist/types/src/capabilities/react-root/react-root.d.ts.map +1 -0
  217. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  218. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  219. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  220. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  221. package/dist/types/src/capabilities/settings/index.d.ts +3 -0
  222. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  223. package/dist/types/src/capabilities/settings/settings.d.ts +6 -0
  224. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  225. package/dist/types/src/capabilities/state/index.d.ts +3 -0
  226. package/dist/types/src/capabilities/state/index.d.ts.map +1 -0
  227. package/dist/types/src/capabilities/state/state.d.ts +7 -0
  228. package/dist/types/src/capabilities/state/state.d.ts.map +1 -0
  229. package/dist/types/src/capabilities/undo-mappings/index.d.ts +3 -0
  230. package/dist/types/src/capabilities/undo-mappings/index.d.ts.map +1 -0
  231. package/dist/types/src/capabilities/undo-mappings/undo-mappings.d.ts +5 -0
  232. package/dist/types/src/capabilities/undo-mappings/undo-mappings.d.ts.map +1 -0
  233. package/dist/types/src/components/Call/Call.d.ts.map +1 -1
  234. package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
  235. package/dist/types/src/components/CommentsPanel/CommentsPanel.d.ts +13 -0
  236. package/dist/types/src/components/CommentsPanel/CommentsPanel.d.ts.map +1 -0
  237. package/dist/types/src/components/{ChannelContainer.stories.d.ts → CommentsPanel/CommentsPanel.stories.d.ts} +8 -4
  238. package/dist/types/src/components/CommentsPanel/CommentsPanel.stories.d.ts.map +1 -0
  239. package/dist/types/src/components/{CommentsThreadContainer.d.ts → CommentsPanel/CommentsThread.d.ts} +3 -3
  240. package/dist/types/src/components/CommentsPanel/CommentsThread.d.ts.map +1 -0
  241. package/dist/types/src/components/CommentsPanel/index.d.ts +3 -0
  242. package/dist/types/src/components/CommentsPanel/index.d.ts.map +1 -0
  243. package/dist/types/src/components/Lobby/Lobby.d.ts.map +1 -1
  244. package/dist/types/src/components/Media/VideoObject.d.ts +1 -1
  245. package/dist/types/src/components/Media/VideoObject.stories.d.ts +1 -1
  246. package/dist/types/src/components/MessagePanel/MessagePanel.d.ts +15 -0
  247. package/dist/types/src/components/MessagePanel/MessagePanel.d.ts.map +1 -0
  248. package/dist/types/src/components/MessagePanel/index.d.ts +2 -0
  249. package/dist/types/src/components/MessagePanel/index.d.ts.map +1 -0
  250. package/dist/types/src/components/Participant/Participant.d.ts.map +1 -1
  251. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +8 -2
  252. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts.map +1 -1
  253. package/dist/types/src/components/ResponsiveGrid/{ResponsiveContainer.d.ts → ResponsivePanel.d.ts} +4 -4
  254. package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.d.ts.map +1 -0
  255. package/dist/types/src/components/ResponsiveGrid/{ResponsiveContainer.stories.d.ts → ResponsivePanel.stories.d.ts} +9 -3
  256. package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.stories.d.ts.map +1 -0
  257. package/dist/types/src/components/ResponsiveGrid/index.d.ts +1 -1
  258. package/dist/types/src/components/ResponsiveGrid/index.d.ts.map +1 -1
  259. package/dist/types/src/components/index.d.ts +2 -9
  260. package/dist/types/src/components/index.d.ts.map +1 -1
  261. package/dist/types/src/{components → containers/CallDebugPanel}/CallDebugPanel.d.ts +1 -1
  262. package/dist/types/src/containers/CallDebugPanel/CallDebugPanel.d.ts.map +1 -0
  263. package/dist/types/src/containers/CallDebugPanel/index.d.ts +3 -0
  264. package/dist/types/src/containers/CallDebugPanel/index.d.ts.map +1 -0
  265. package/dist/types/src/{components → containers/CallSidebar}/CallSidebar.d.ts +0 -1
  266. package/dist/types/src/containers/CallSidebar/CallSidebar.d.ts.map +1 -0
  267. package/dist/types/src/containers/CallSidebar/index.d.ts +3 -0
  268. package/dist/types/src/containers/CallSidebar/index.d.ts.map +1 -0
  269. package/dist/types/src/containers/ChannelContainer/ChannelContainer.d.ts +12 -0
  270. package/dist/types/src/containers/ChannelContainer/ChannelContainer.d.ts.map +1 -0
  271. package/dist/types/src/{components/Comments.stories.d.ts → containers/ChannelContainer/ChannelContainer.stories.d.ts} +10 -2
  272. package/dist/types/src/containers/ChannelContainer/ChannelContainer.stories.d.ts.map +1 -0
  273. package/dist/types/src/containers/ChannelContainer/index.d.ts +3 -0
  274. package/dist/types/src/containers/ChannelContainer/index.d.ts.map +1 -0
  275. package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts +20 -0
  276. package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts.map +1 -0
  277. package/dist/types/src/{components/Chat.stories.d.ts → containers/ChatContainer/ChatContainer.stories.d.ts} +8 -2
  278. package/dist/types/src/containers/ChatContainer/ChatContainer.stories.d.ts.map +1 -0
  279. package/dist/types/src/containers/ChatContainer/index.d.ts +4 -0
  280. package/dist/types/src/containers/ChatContainer/index.d.ts.map +1 -0
  281. package/dist/types/src/containers/ThreadCompanion/ThreadCompanion.d.ts +8 -0
  282. package/dist/types/src/containers/ThreadCompanion/ThreadCompanion.d.ts.map +1 -0
  283. package/dist/types/src/containers/ThreadCompanion/index.d.ts +3 -0
  284. package/dist/types/src/containers/ThreadCompanion/index.d.ts.map +1 -0
  285. package/dist/types/src/containers/ThreadSettings/ThreadSettings.d.ts +8 -0
  286. package/dist/types/src/containers/ThreadSettings/ThreadSettings.d.ts.map +1 -0
  287. package/dist/types/src/containers/ThreadSettings/index.d.ts +3 -0
  288. package/dist/types/src/containers/ThreadSettings/index.d.ts.map +1 -0
  289. package/dist/types/src/containers/index.d.ts +8 -0
  290. package/dist/types/src/containers/index.d.ts.map +1 -0
  291. package/dist/types/src/{components/command-extension.d.ts → extensions/command.d.ts} +1 -1
  292. package/dist/types/src/extensions/command.d.ts.map +1 -0
  293. package/dist/types/src/extensions/index.d.ts +1 -0
  294. package/dist/types/src/extensions/index.d.ts.map +1 -1
  295. package/dist/types/src/extensions/threads.d.ts +7 -2
  296. package/dist/types/src/extensions/threads.d.ts.map +1 -1
  297. package/dist/types/src/hooks/analytics.d.ts +1 -2
  298. package/dist/types/src/hooks/analytics.d.ts.map +1 -1
  299. package/dist/types/src/index.d.ts +1 -1
  300. package/dist/types/src/index.d.ts.map +1 -1
  301. package/dist/types/src/meta.d.ts +2 -2
  302. package/dist/types/src/meta.d.ts.map +1 -1
  303. package/dist/types/src/operations/add-message.d.ts +5 -0
  304. package/dist/types/src/operations/add-message.d.ts.map +1 -0
  305. package/dist/types/src/operations/create-channel-thread.d.ts +5 -0
  306. package/dist/types/src/operations/create-channel-thread.d.ts.map +1 -0
  307. package/dist/types/src/operations/create-channel.d.ts +5 -0
  308. package/dist/types/src/operations/create-channel.d.ts.map +1 -0
  309. package/dist/types/src/operations/create-proposals.d.ts +5 -0
  310. package/dist/types/src/operations/create-proposals.d.ts.map +1 -0
  311. package/dist/types/src/operations/create.d.ts +5 -0
  312. package/dist/types/src/operations/create.d.ts.map +1 -0
  313. package/dist/types/src/operations/definitions.d.ts +2788 -0
  314. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  315. package/dist/types/src/operations/delete-message.d.ts +5 -0
  316. package/dist/types/src/operations/delete-message.d.ts.map +1 -0
  317. package/dist/types/src/operations/delete.d.ts +5 -0
  318. package/dist/types/src/operations/delete.d.ts.map +1 -0
  319. package/dist/types/src/operations/index.d.ts +4 -0
  320. package/dist/types/src/operations/index.d.ts.map +1 -0
  321. package/dist/types/src/operations/on-create-space.d.ts +5 -0
  322. package/dist/types/src/operations/on-create-space.d.ts.map +1 -0
  323. package/dist/types/src/operations/restore-message.d.ts +5 -0
  324. package/dist/types/src/operations/restore-message.d.ts.map +1 -0
  325. package/dist/types/src/operations/restore.d.ts +5 -0
  326. package/dist/types/src/operations/restore.d.ts.map +1 -0
  327. package/dist/types/src/operations/select.d.ts +5 -0
  328. package/dist/types/src/operations/select.d.ts.map +1 -0
  329. package/dist/types/src/operations/toggle-resolved.d.ts +5 -0
  330. package/dist/types/src/operations/toggle-resolved.d.ts.map +1 -0
  331. package/dist/types/src/{components/testing.d.ts → testing/data.d.ts} +2 -2
  332. package/dist/types/src/testing/data.d.ts.map +1 -0
  333. package/dist/types/src/testing/stories.d.ts +2 -1
  334. package/dist/types/src/testing/stories.d.ts.map +1 -1
  335. package/dist/types/src/translations.d.ts +6 -0
  336. package/dist/types/src/translations.d.ts.map +1 -1
  337. package/dist/types/src/types/Channel.d.ts +707 -12
  338. package/dist/types/src/types/Channel.d.ts.map +1 -1
  339. package/dist/types/src/types/capabilities.d.ts +23 -0
  340. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  341. package/dist/types/src/types/index.d.ts +1 -1
  342. package/dist/types/src/types/index.d.ts.map +1 -1
  343. package/dist/types/src/types/types.d.ts +1 -365
  344. package/dist/types/src/types/types.d.ts.map +1 -1
  345. package/dist/types/tsconfig.tsbuildinfo +1 -1
  346. package/package.json +96 -68
  347. package/src/ThreadPlugin.tsx +72 -111
  348. package/src/blueprints/index.ts +5 -0
  349. package/src/blueprints/thread-blueprint.ts +37 -0
  350. package/src/calls/call-manager.ts +76 -52
  351. package/src/calls/call-swarm-synchronizer.ts +2 -2
  352. package/src/calls/media-manager.ts +1 -1
  353. package/src/calls/util/calls-service.ts +1 -1
  354. package/src/calls/util/task-scheduling.ts +4 -4
  355. package/src/calls-service.stories.tsx +4 -4
  356. package/src/capabilities/app-graph-builder/app-graph-builder.ts +204 -0
  357. package/src/capabilities/app-graph-builder/index.ts +7 -0
  358. package/src/capabilities/blueprint-definition/blueprint-definition.ts +17 -0
  359. package/src/capabilities/blueprint-definition/index.ts +7 -0
  360. package/src/capabilities/call-manager/call-manager.ts +26 -0
  361. package/src/capabilities/call-manager/index.ts +7 -0
  362. package/src/capabilities/index.ts +10 -13
  363. package/src/capabilities/markdown/index.ts +7 -0
  364. package/src/capabilities/markdown/markdown.ts +81 -0
  365. package/src/capabilities/operation-handler/index.ts +11 -0
  366. package/src/capabilities/operation-handler/operation-handler.ts +16 -0
  367. package/src/capabilities/react-root/index.ts +7 -0
  368. package/src/capabilities/react-root/react-root.tsx +20 -0
  369. package/src/capabilities/react-surface/index.ts +7 -0
  370. package/src/capabilities/react-surface/react-surface.tsx +101 -0
  371. package/src/capabilities/settings/index.ts +7 -0
  372. package/src/capabilities/settings/settings.ts +34 -0
  373. package/src/capabilities/state/index.ts +7 -0
  374. package/src/capabilities/state/state.ts +22 -0
  375. package/src/capabilities/undo-mappings/index.ts +7 -0
  376. package/src/capabilities/undo-mappings/undo-mappings.ts +46 -0
  377. package/src/components/Call/Call.tsx +9 -5
  378. package/src/components/Call/Toolbar.tsx +33 -26
  379. package/src/components/CommentsPanel/CommentsPanel.stories.tsx +94 -0
  380. package/src/components/{CommentsContainer.tsx → CommentsPanel/CommentsPanel.tsx} +15 -15
  381. package/src/components/{CommentsThreadContainer.tsx → CommentsPanel/CommentsThread.tsx} +22 -24
  382. package/src/components/CommentsPanel/index.ts +6 -0
  383. package/src/components/Lobby/Lobby.tsx +12 -10
  384. package/src/components/Media/AudioStream.tsx +2 -2
  385. package/src/components/Media/VideoObject.stories.tsx +6 -6
  386. package/src/components/Media/VideoObject.tsx +2 -2
  387. package/src/components/{MessageContainer.tsx → MessagePanel/MessagePanel.tsx} +67 -36
  388. package/src/components/MessagePanel/index.ts +5 -0
  389. package/src/components/Participant/Participant.tsx +32 -19
  390. package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +6 -6
  391. package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +9 -9
  392. package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +6 -6
  393. package/src/components/ResponsiveGrid/{ResponsiveContainer.stories.tsx → ResponsivePanel.stories.tsx} +7 -7
  394. package/src/components/ResponsiveGrid/{ResponsiveContainer.tsx → ResponsivePanel.tsx} +6 -6
  395. package/src/components/ResponsiveGrid/index.ts +1 -1
  396. package/src/components/index.ts +2 -13
  397. package/src/{components → containers/CallDebugPanel}/CallDebugPanel.tsx +4 -4
  398. package/src/containers/CallDebugPanel/index.ts +7 -0
  399. package/src/containers/CallSidebar/CallSidebar.tsx +17 -0
  400. package/src/containers/CallSidebar/index.ts +7 -0
  401. package/src/containers/ChannelContainer/ChannelContainer.stories.tsx +59 -0
  402. package/src/{components → containers/ChannelContainer}/ChannelContainer.tsx +88 -71
  403. package/src/containers/ChannelContainer/index.ts +7 -0
  404. package/src/{components/Chat.stories.tsx → containers/ChatContainer/ChatContainer.stories.tsx} +21 -19
  405. package/src/containers/ChatContainer/ChatContainer.tsx +130 -0
  406. package/src/containers/ChatContainer/index.ts +8 -0
  407. package/src/containers/ThreadCompanion/ThreadCompanion.tsx +217 -0
  408. package/src/containers/ThreadCompanion/index.ts +7 -0
  409. package/src/containers/ThreadSettings/ThreadSettings.tsx +22 -0
  410. package/src/containers/ThreadSettings/index.ts +7 -0
  411. package/src/containers/index.ts +12 -0
  412. package/src/{components/command-extension.ts → extensions/command.ts} +3 -3
  413. package/src/extensions/index.ts +1 -0
  414. package/src/extensions/threads.ts +79 -43
  415. package/src/hooks/analytics.ts +24 -20
  416. package/src/index.ts +1 -1
  417. package/src/meta.ts +4 -4
  418. package/src/operations/add-message.ts +82 -0
  419. package/src/operations/create-channel-thread.ts +26 -0
  420. package/src/operations/create-channel.ts +21 -0
  421. package/src/operations/create-proposals.ts +49 -0
  422. package/src/operations/create.ts +49 -0
  423. package/src/operations/definitions.ts +177 -0
  424. package/src/operations/delete-message.ts +53 -0
  425. package/src/operations/delete.ts +64 -0
  426. package/src/operations/index.ts +22 -0
  427. package/src/operations/on-create-space.ts +27 -0
  428. package/src/operations/restore-message.ts +38 -0
  429. package/src/operations/restore.ts +38 -0
  430. package/src/operations/select.ts +25 -0
  431. package/src/operations/toggle-resolved.ts +41 -0
  432. package/src/{components/testing.ts → testing/data.ts} +1 -3
  433. package/src/testing/stories.ts +15 -16
  434. package/src/translations.ts +3 -0
  435. package/src/types/Channel.ts +20 -11
  436. package/src/types/capabilities.ts +34 -0
  437. package/src/types/index.ts +1 -1
  438. package/src/types/types.ts +2 -94
  439. package/dist/lib/browser/ChannelContainer-MX5ABVGC.mjs +0 -16
  440. package/dist/lib/browser/ChatContainer-7F5Y6GXJ.mjs +0 -15
  441. package/dist/lib/browser/app-graph-builder-HNYLII5E.mjs +0 -170
  442. package/dist/lib/browser/app-graph-builder-HNYLII5E.mjs.map +0 -7
  443. package/dist/lib/browser/blueprint-definition-6BKYTMJS.mjs +0 -104
  444. package/dist/lib/browser/blueprint-definition-6BKYTMJS.mjs.map +0 -7
  445. package/dist/lib/browser/call-manager-MAXQLMMS.mjs +0 -24
  446. package/dist/lib/browser/call-manager-MAXQLMMS.mjs.map +0 -7
  447. package/dist/lib/browser/chunk-BBTXGRIR.mjs +0 -18
  448. package/dist/lib/browser/chunk-BBTXGRIR.mjs.map +0 -7
  449. package/dist/lib/browser/chunk-BQWQFTWT.mjs +0 -612
  450. package/dist/lib/browser/chunk-BQWQFTWT.mjs.map +0 -7
  451. package/dist/lib/browser/chunk-FR6MEAZI.mjs +0 -377
  452. package/dist/lib/browser/chunk-FR6MEAZI.mjs.map +0 -7
  453. package/dist/lib/browser/chunk-INQVAYPN.mjs +0 -989
  454. package/dist/lib/browser/chunk-INQVAYPN.mjs.map +0 -7
  455. package/dist/lib/browser/chunk-K2DUJRFJ.mjs.map +0 -7
  456. package/dist/lib/browser/chunk-KOBXMDCI.mjs.map +0 -7
  457. package/dist/lib/browser/chunk-NMJEVD36.mjs +0 -168
  458. package/dist/lib/browser/chunk-NMJEVD36.mjs.map +0 -7
  459. package/dist/lib/browser/chunk-OOUDK7Q7.mjs +0 -23
  460. package/dist/lib/browser/chunk-OOUDK7Q7.mjs.map +0 -7
  461. package/dist/lib/browser/chunk-ZCW3NSDZ.mjs.map +0 -7
  462. package/dist/lib/browser/intent-resolver-BOUT4WGY.mjs +0 -361
  463. package/dist/lib/browser/intent-resolver-BOUT4WGY.mjs.map +0 -7
  464. package/dist/lib/browser/markdown-74EUSQGV.mjs +0 -171
  465. package/dist/lib/browser/markdown-74EUSQGV.mjs.map +0 -7
  466. package/dist/lib/browser/react-root-BVG7B2LW.mjs +0 -28
  467. package/dist/lib/browser/react-root-BVG7B2LW.mjs.map +0 -7
  468. package/dist/lib/browser/react-surface-BCD5ODQ6.mjs +0 -110
  469. package/dist/lib/browser/react-surface-BCD5ODQ6.mjs.map +0 -7
  470. package/dist/lib/browser/settings-LGQUZITB.mjs +0 -22
  471. package/dist/lib/browser/settings-LGQUZITB.mjs.map +0 -7
  472. package/dist/lib/browser/state-36REWXO5.mjs +0 -34
  473. package/dist/lib/browser/state-36REWXO5.mjs.map +0 -7
  474. package/dist/lib/node-esm/ChannelContainer-2JJJ3IDK.mjs +0 -17
  475. package/dist/lib/node-esm/ChatContainer-C526R4DI.mjs +0 -16
  476. package/dist/lib/node-esm/app-graph-builder-SOCKP4ST.mjs +0 -171
  477. package/dist/lib/node-esm/app-graph-builder-SOCKP4ST.mjs.map +0 -7
  478. package/dist/lib/node-esm/blueprint-definition-6LEAWSC7.mjs +0 -105
  479. package/dist/lib/node-esm/blueprint-definition-6LEAWSC7.mjs.map +0 -7
  480. package/dist/lib/node-esm/call-manager-LC4OS2KD.mjs +0 -25
  481. package/dist/lib/node-esm/call-manager-LC4OS2KD.mjs.map +0 -7
  482. package/dist/lib/node-esm/chunk-5DLH4MWN.mjs +0 -25
  483. package/dist/lib/node-esm/chunk-5DLH4MWN.mjs.map +0 -7
  484. package/dist/lib/node-esm/chunk-7KZWZS2U.mjs.map +0 -7
  485. package/dist/lib/node-esm/chunk-JF7THR7F.mjs +0 -990
  486. package/dist/lib/node-esm/chunk-JF7THR7F.mjs.map +0 -7
  487. package/dist/lib/node-esm/chunk-JJW6YMLC.mjs +0 -613
  488. package/dist/lib/node-esm/chunk-JJW6YMLC.mjs.map +0 -7
  489. package/dist/lib/node-esm/chunk-PZH2EDU5.mjs.map +0 -7
  490. package/dist/lib/node-esm/chunk-TJKM5JZT.mjs +0 -169
  491. package/dist/lib/node-esm/chunk-TJKM5JZT.mjs.map +0 -7
  492. package/dist/lib/node-esm/chunk-TWKGDFCS.mjs +0 -378
  493. package/dist/lib/node-esm/chunk-TWKGDFCS.mjs.map +0 -7
  494. package/dist/lib/node-esm/chunk-XI45H4IV.mjs.map +0 -7
  495. package/dist/lib/node-esm/chunk-ZQAGII7M.mjs +0 -19
  496. package/dist/lib/node-esm/chunk-ZQAGII7M.mjs.map +0 -7
  497. package/dist/lib/node-esm/intent-resolver-45PLIFCJ.mjs +0 -362
  498. package/dist/lib/node-esm/intent-resolver-45PLIFCJ.mjs.map +0 -7
  499. package/dist/lib/node-esm/markdown-566XXB55.mjs +0 -172
  500. package/dist/lib/node-esm/markdown-566XXB55.mjs.map +0 -7
  501. package/dist/lib/node-esm/react-root-DCY6DKLC.mjs +0 -29
  502. package/dist/lib/node-esm/react-root-DCY6DKLC.mjs.map +0 -7
  503. package/dist/lib/node-esm/react-surface-WZH7OAO3.mjs +0 -111
  504. package/dist/lib/node-esm/react-surface-WZH7OAO3.mjs.map +0 -7
  505. package/dist/lib/node-esm/settings-WKLJSP6R.mjs +0 -23
  506. package/dist/lib/node-esm/settings-WKLJSP6R.mjs.map +0 -7
  507. package/dist/lib/node-esm/state-X3W67GTL.mjs +0 -35
  508. package/dist/lib/node-esm/state-X3W67GTL.mjs.map +0 -7
  509. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  510. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  511. package/dist/types/src/capabilities/blueprint-definition.d.ts +0 -5
  512. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +0 -1
  513. package/dist/types/src/capabilities/call-manager.d.ts +0 -5
  514. package/dist/types/src/capabilities/call-manager.d.ts.map +0 -1
  515. package/dist/types/src/capabilities/capabilities.d.ts +0 -27
  516. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  517. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  518. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  519. package/dist/types/src/capabilities/markdown.d.ts +0 -4
  520. package/dist/types/src/capabilities/markdown.d.ts.map +0 -1
  521. package/dist/types/src/capabilities/react-root.d.ts +0 -7
  522. package/dist/types/src/capabilities/react-root.d.ts.map +0 -1
  523. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  524. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  525. package/dist/types/src/capabilities/settings.d.ts +0 -4
  526. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  527. package/dist/types/src/capabilities/state.d.ts +0 -7
  528. package/dist/types/src/capabilities/state.d.ts.map +0 -1
  529. package/dist/types/src/components/CallDebugPanel.d.ts.map +0 -1
  530. package/dist/types/src/components/CallSidebar.d.ts.map +0 -1
  531. package/dist/types/src/components/ChannelContainer.d.ts +0 -14
  532. package/dist/types/src/components/ChannelContainer.d.ts.map +0 -1
  533. package/dist/types/src/components/ChannelContainer.stories.d.ts.map +0 -1
  534. package/dist/types/src/components/Chat.stories.d.ts.map +0 -1
  535. package/dist/types/src/components/ChatContainer.d.ts +0 -18
  536. package/dist/types/src/components/ChatContainer.d.ts.map +0 -1
  537. package/dist/types/src/components/Comments.stories.d.ts.map +0 -1
  538. package/dist/types/src/components/CommentsContainer.d.ts +0 -13
  539. package/dist/types/src/components/CommentsContainer.d.ts.map +0 -1
  540. package/dist/types/src/components/CommentsThreadContainer.d.ts.map +0 -1
  541. package/dist/types/src/components/MessageContainer.d.ts +0 -14
  542. package/dist/types/src/components/MessageContainer.d.ts.map +0 -1
  543. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.d.ts.map +0 -1
  544. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts.map +0 -1
  545. package/dist/types/src/components/ThreadCompanion.d.ts +0 -5
  546. package/dist/types/src/components/ThreadCompanion.d.ts.map +0 -1
  547. package/dist/types/src/components/ThreadSettings.d.ts +0 -6
  548. package/dist/types/src/components/ThreadSettings.d.ts.map +0 -1
  549. package/dist/types/src/components/command-extension.d.ts.map +0 -1
  550. package/dist/types/src/components/testing.d.ts.map +0 -1
  551. package/dist/types/src/functions/create-proposals.d.ts +0 -6
  552. package/dist/types/src/functions/create-proposals.d.ts.map +0 -1
  553. package/dist/types/src/functions/index.d.ts +0 -2
  554. package/dist/types/src/functions/index.d.ts.map +0 -1
  555. package/dist/types/src/types/Thread.d.ts +0 -167
  556. package/dist/types/src/types/Thread.d.ts.map +0 -1
  557. package/src/capabilities/app-graph-builder.ts +0 -194
  558. package/src/capabilities/blueprint-definition.ts +0 -38
  559. package/src/capabilities/call-manager.ts +0 -20
  560. package/src/capabilities/capabilities.ts +0 -33
  561. package/src/capabilities/intent-resolver.ts +0 -311
  562. package/src/capabilities/markdown.ts +0 -71
  563. package/src/capabilities/react-root.tsx +0 -17
  564. package/src/capabilities/react-surface.tsx +0 -90
  565. package/src/capabilities/settings.ts +0 -19
  566. package/src/capabilities/state.ts +0 -26
  567. package/src/components/CallSidebar.tsx +0 -18
  568. package/src/components/ChannelContainer.stories.tsx +0 -59
  569. package/src/components/ChatContainer.tsx +0 -154
  570. package/src/components/Comments.stories.tsx +0 -91
  571. package/src/components/ThreadCompanion.tsx +0 -188
  572. package/src/components/ThreadSettings.tsx +0 -16
  573. package/src/functions/create-proposals.ts +0 -58
  574. package/src/functions/index.ts +0 -5
  575. package/src/types/Thread.ts +0 -26
  576. /package/dist/lib/browser/{ChannelContainer-MX5ABVGC.mjs.map → ChannelContainer-C25SJD67.mjs.map} +0 -0
  577. /package/dist/lib/browser/{ChatContainer-7F5Y6GXJ.mjs.map → ChatContainer-VG6JXVMR.mjs.map} +0 -0
  578. /package/dist/lib/{node-esm/ChannelContainer-2JJJ3IDK.mjs.map → browser/blueprints/index.mjs.map} +0 -0
  579. /package/dist/lib/{node-esm/ChatContainer-C526R4DI.mjs.map → browser/operations/index.mjs.map} +0 -0
@@ -0,0 +1,223 @@
1
+ import {
2
+ ChatContainer
3
+ } from "./chunk-NU7YGDHW.mjs";
4
+ import {
5
+ Call
6
+ } from "./chunk-WR6V7S4Q.mjs";
7
+ import {
8
+ ThreadCapabilities
9
+ } from "./chunk-TAEJJ3CF.mjs";
10
+ import {
11
+ meta
12
+ } from "./chunk-SDMEBXOE.mjs";
13
+
14
+ // src/containers/ChannelContainer/ChannelContainer.tsx
15
+ import { Atom, useAtomValue } from "@effect-atom/atom-react";
16
+ import React, { useCallback, useEffect, useMemo, useState } from "react";
17
+ import { useCapabilities, useCapability } from "@dxos/app-framework/ui";
18
+ import { Context } from "@dxos/context";
19
+ import { failUndefined } from "@dxos/debug";
20
+ import { log } from "@dxos/log";
21
+ import { useClient } from "@dxos/react-client";
22
+ import { getSpace } from "@dxos/react-client/echo";
23
+ import { useIdentity } from "@dxos/react-client/halo";
24
+ import { ElevationProvider, Input, Panel, useTranslation } from "@dxos/react-ui";
25
+ import { Settings } from "@dxos/react-ui-form";
26
+ import { Menu, createMenuAction, createMenuItemGroup, useMenuActions } from "@dxos/react-ui-menu";
27
+ import { useSoundEffect } from "@dxos/react-ui-sfx";
28
+ import { composable, composableProps } from "@dxos/ui-theme";
29
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/containers/ChannelContainer/ChannelContainer.tsx";
30
+ var ChannelContainer = ({ role, subject: channel, attendableId, roomId: roomIdProp, fullscreen }) => {
31
+ const space = getSpace(channel);
32
+ const callManager = useCapability(ThreadCapabilities.CallManager);
33
+ const extensions = useCapabilities(ThreadCapabilities.CallExtension);
34
+ const joined = useAtomValue(callManager.joinedAtom);
35
+ const currentRoomId = useAtomValue(callManager.roomIdAtom);
36
+ const roomId = roomIdProp ?? attendableId ?? failUndefined();
37
+ const identity = useIdentity();
38
+ const isNamed = !!identity?.profile?.displayName;
39
+ const joinSound = useSoundEffect("JoinCall");
40
+ const leaveSound = useSoundEffect("LeaveCall");
41
+ useEffect(() => {
42
+ const ctx = new Context(void 0, {
43
+ F: __dxlog_file,
44
+ L: 59
45
+ });
46
+ callManager.left.on(ctx, (roomId2) => {
47
+ extensions.forEach((extension) => {
48
+ void extension.onLeave?.(roomId2);
49
+ });
50
+ });
51
+ callManager.callStateUpdated.on(ctx, (state) => {
52
+ extensions.forEach((extension) => {
53
+ void extension.onCallStateUpdated?.(state);
54
+ });
55
+ });
56
+ callManager.mediaStateUpdated.on(ctx, (state) => {
57
+ extensions.forEach((extension) => {
58
+ void extension.onMediaStateUpdated?.(state);
59
+ });
60
+ });
61
+ return () => {
62
+ void ctx.dispose();
63
+ };
64
+ }, [
65
+ callManager,
66
+ extensions
67
+ ]);
68
+ const handleJoin = useCallback(async () => {
69
+ if (!roomId || !channel) {
70
+ return;
71
+ }
72
+ if (joined) {
73
+ await callManager.leave();
74
+ }
75
+ try {
76
+ void joinSound.play();
77
+ callManager.setRoomId(roomId);
78
+ await callManager.join();
79
+ await Promise.all(extensions.map((extension) => extension.onJoin?.({
80
+ channel,
81
+ roomId
82
+ })));
83
+ } catch (err) {
84
+ log.catch(err, void 0, {
85
+ F: __dxlog_file,
86
+ L: 103,
87
+ S: void 0,
88
+ C: (f, a) => f(...a)
89
+ });
90
+ }
91
+ }, [
92
+ extensions,
93
+ channel,
94
+ roomId,
95
+ joined
96
+ ]);
97
+ const handleLeave = useCallback(async () => {
98
+ try {
99
+ void leaveSound.play();
100
+ } catch (err) {
101
+ log.catch(err, void 0, {
102
+ F: __dxlog_file,
103
+ L: 115,
104
+ S: void 0,
105
+ C: (f, a) => f(...a)
106
+ });
107
+ } finally {
108
+ void callManager.turnAudioOff();
109
+ void callManager.turnVideoOff();
110
+ void callManager.turnScreenshareOff();
111
+ void callManager.leave();
112
+ }
113
+ }, [
114
+ extensions,
115
+ roomId
116
+ ]);
117
+ const isJoined = joined && currentRoomId === roomId;
118
+ if (isJoined) {
119
+ return /* @__PURE__ */ React.createElement(Panel.Root, null, /* @__PURE__ */ React.createElement(Panel.Content, null, isNamed ? /* @__PURE__ */ React.createElement(Call.Root, null, /* @__PURE__ */ React.createElement(Call.Grid, {
120
+ fullscreen
121
+ }), /* @__PURE__ */ React.createElement(Call.Toolbar, {
122
+ channel,
123
+ onLeave: handleLeave
124
+ })) : /* @__PURE__ */ React.createElement(DisplayNameMissing, null)));
125
+ }
126
+ if (channel && channel.defaultThread.target && space) {
127
+ return /* @__PURE__ */ React.createElement(Panel.Root, {
128
+ classNames: "dx-document"
129
+ }, /* @__PURE__ */ React.createElement(Panel.Toolbar, {
130
+ asChild: true
131
+ }, /* @__PURE__ */ React.createElement(ChannelToolbar, {
132
+ attendableId,
133
+ role,
134
+ onJoinCall: handleJoin
135
+ })), /* @__PURE__ */ React.createElement(Panel.Content, {
136
+ asChild: true
137
+ }, /* @__PURE__ */ React.createElement(ChatContainer, {
138
+ space,
139
+ thread: channel.defaultThread.target
140
+ })));
141
+ }
142
+ return null;
143
+ };
144
+ var DisplayNameMissing = () => {
145
+ const { t } = useTranslation(meta.id);
146
+ const client = useClient();
147
+ const [displayName, setDisplayName] = useState("");
148
+ const handleChange = useCallback((event) => setDisplayName(event.target.value), []);
149
+ const handleSave = useCallback(() => client.halo.updateProfile({
150
+ displayName
151
+ }), [
152
+ client,
153
+ displayName
154
+ ]);
155
+ return /* @__PURE__ */ React.createElement(Settings.Group, {
156
+ classNames: "p-4 place-content-center"
157
+ }, /* @__PURE__ */ React.createElement(Settings.ItemInput, {
158
+ title: t("display name label"),
159
+ description: t("display name description")
160
+ }, /* @__PURE__ */ React.createElement(Input.TextInput, {
161
+ value: displayName,
162
+ onChange: handleChange,
163
+ placeholder: t("display name input placeholder"),
164
+ classNames: "md:min-w-64"
165
+ })), /* @__PURE__ */ React.createElement(Settings.GroupButton, {
166
+ disabled: !displayName,
167
+ onClick: handleSave
168
+ }, t("set display name label")));
169
+ };
170
+ var useChannelToolbarActions = (onJoinCall) => {
171
+ const creator = useMemo(() => Atom.make(() => {
172
+ return {
173
+ nodes: [
174
+ createMenuItemGroup("root", {
175
+ label: [
176
+ "channel toolbar title",
177
+ {
178
+ ns: meta.id
179
+ }
180
+ ]
181
+ }),
182
+ createMenuAction("video-call", () => onJoinCall?.(), {
183
+ label: [
184
+ "start video call label",
185
+ {
186
+ ns: meta.id
187
+ }
188
+ ],
189
+ icon: "ph--video-camera--regular",
190
+ type: "video-call"
191
+ })
192
+ ],
193
+ edges: [
194
+ {
195
+ source: "root",
196
+ target: "video-call",
197
+ relation: "child"
198
+ }
199
+ ]
200
+ };
201
+ }), []);
202
+ return useMenuActions(creator);
203
+ };
204
+ var ChannelToolbar = composable(({ attendableId, role, onJoinCall, ...props }, forwardedRef) => {
205
+ const menuActions = useChannelToolbarActions(onJoinCall);
206
+ return /* @__PURE__ */ React.createElement(ElevationProvider, {
207
+ elevation: role === "section" ? "positioned" : "base"
208
+ }, /* @__PURE__ */ React.createElement(Menu.Root, {
209
+ ...menuActions,
210
+ attendableId
211
+ }, /* @__PURE__ */ React.createElement(Menu.Toolbar, {
212
+ ...composableProps(props),
213
+ ref: forwardedRef
214
+ })));
215
+ });
216
+
217
+ // src/containers/ChannelContainer/index.ts
218
+ var ChannelContainer_default = ChannelContainer;
219
+
220
+ export {
221
+ ChannelContainer_default
222
+ };
223
+ //# sourceMappingURL=chunk-GB4CYKEA.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/ChannelContainer/ChannelContainer.tsx", "../../../src/containers/ChannelContainer/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom, useAtomValue } from '@effect-atom/atom-react';\nimport React, { type ChangeEvent, useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { useCapabilities, useCapability } from '@dxos/app-framework/ui';\nimport { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';\nimport { Context } from '@dxos/context';\nimport { failUndefined } from '@dxos/debug';\nimport { log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { ElevationProvider, Input, Panel, useTranslation } from '@dxos/react-ui';\nimport { Settings } from '@dxos/react-ui-form';\nimport { Menu, MenuRootProps, createMenuAction, createMenuItemGroup, useMenuActions } from '@dxos/react-ui-menu';\nimport { useSoundEffect } from '@dxos/react-ui-sfx';\nimport { composable, composableProps } from '@dxos/ui-theme';\n\nimport { Call } from '../../components';\nimport { meta } from '../../meta';\nimport { ThreadCapabilities } from '../../types';\nimport { type Channel } from '../../types';\nimport { ChatContainer } from '../ChatContainer';\n\nexport type ChannelContainerProps = SurfaceComponentProps<\n Channel.Channel | undefined,\n {\n roomId?: string;\n fullscreen?: boolean;\n }\n>;\n\n/**\n * Renders a call when active, otherwise renders the channel chat.\n */\n// TODO(burdon): Create Radix style layout.\nexport const ChannelContainer = ({\n role,\n subject: channel,\n attendableId,\n roomId: roomIdProp,\n fullscreen,\n}: ChannelContainerProps) => {\n const space = getSpace(channel);\n const callManager = useCapability(ThreadCapabilities.CallManager);\n const extensions = useCapabilities(ThreadCapabilities.CallExtension);\n const joined = useAtomValue(callManager.joinedAtom);\n const currentRoomId = useAtomValue(callManager.roomIdAtom);\n const roomId = roomIdProp ?? attendableId ?? failUndefined();\n const identity = useIdentity();\n const isNamed = !!identity?.profile?.displayName;\n const joinSound = useSoundEffect('JoinCall');\n const leaveSound = useSoundEffect('LeaveCall');\n\n useEffect(() => {\n const ctx = new Context();\n callManager.left.on(ctx, (roomId) => {\n extensions.forEach((extension) => {\n void extension.onLeave?.(roomId);\n });\n });\n\n callManager.callStateUpdated.on(ctx, (state) => {\n extensions.forEach((extension) => {\n void extension.onCallStateUpdated?.(state);\n });\n });\n\n callManager.mediaStateUpdated.on(ctx, (state) => {\n extensions.forEach((extension) => {\n void extension.onMediaStateUpdated?.(state);\n });\n });\n\n return () => {\n void ctx.dispose();\n };\n }, [callManager, extensions]);\n\n /**\n * Join the call.\n */\n // TODO(wittjosiah): Show preview before joining?\n const handleJoin = useCallback(async () => {\n if (!roomId || !channel) {\n return;\n }\n\n if (joined) {\n await callManager.leave();\n }\n\n try {\n void joinSound.play();\n callManager.setRoomId(roomId);\n await callManager.join();\n await Promise.all(extensions.map((extension) => extension.onJoin?.({ channel, roomId })));\n } catch (err) {\n // TODO(burdon): Error sound.\n log.catch(err);\n }\n }, [extensions, channel, roomId, joined]);\n\n /**\n * Leave the call.\n */\n const handleLeave = useCallback(async () => {\n try {\n void leaveSound.play();\n } catch (err) {\n // TODO(burdon): Error sound.\n log.catch(err);\n } finally {\n void callManager.turnAudioOff();\n void callManager.turnVideoOff();\n void callManager.turnScreenshareOff();\n void callManager.leave();\n }\n }, [extensions, roomId]);\n\n const isJoined = joined && currentRoomId === roomId;\n if (isJoined) {\n return (\n <Panel.Root>\n <Panel.Content>\n {isNamed ? (\n <Call.Root>\n <Call.Grid fullscreen={fullscreen} />\n <Call.Toolbar channel={channel} onLeave={handleLeave} />\n </Call.Root>\n ) : (\n <DisplayNameMissing />\n )}\n </Panel.Content>\n </Panel.Root>\n );\n }\n\n if (channel && channel.defaultThread.target && space) {\n return (\n <Panel.Root classNames='dx-document'>\n <Panel.Toolbar asChild>\n <ChannelToolbar attendableId={attendableId} role={role} onJoinCall={handleJoin} />\n </Panel.Toolbar>\n <Panel.Content asChild>\n <ChatContainer space={space} thread={channel.defaultThread.target} />\n </Panel.Content>\n </Panel.Root>\n );\n }\n\n return null;\n};\n\nconst DisplayNameMissing = () => {\n const { t } = useTranslation(meta.id);\n const client = useClient();\n const [displayName, setDisplayName] = useState('');\n const handleChange = useCallback((event: ChangeEvent<HTMLInputElement>) => setDisplayName(event.target.value), []);\n const handleSave = useCallback(() => client.halo.updateProfile({ displayName }), [client, displayName]);\n\n return (\n <Settings.Group classNames='p-4 place-content-center'>\n <Settings.ItemInput title={t('display name label')} description={t('display name description')}>\n <Input.TextInput\n value={displayName}\n onChange={handleChange}\n placeholder={t('display name input placeholder')}\n classNames='md:min-w-64'\n />\n </Settings.ItemInput>\n <Settings.GroupButton disabled={!displayName} onClick={handleSave}>\n {t('set display name label')}\n </Settings.GroupButton>\n </Settings.Group>\n );\n};\n\nconst useChannelToolbarActions = (onJoinCall?: () => void) => {\n const creator = useMemo(\n () =>\n Atom.make(() => {\n return {\n nodes: [\n createMenuItemGroup('root', {\n label: ['channel toolbar title', { ns: meta.id }],\n }),\n createMenuAction('video-call', () => onJoinCall?.(), {\n label: ['start video call label', { ns: meta.id }],\n icon: 'ph--video-camera--regular',\n type: 'video-call',\n }),\n ],\n edges: [{ source: 'root', target: 'video-call', relation: 'child' }],\n };\n }),\n [],\n );\n\n return useMenuActions(creator);\n};\n\ntype ChannelToolbarProps = Pick<MenuRootProps, 'attendableId'> & {\n onJoinCall?: () => void;\n};\n\nconst ChannelToolbar = composable<HTMLDivElement, ChannelToolbarProps>(\n ({ attendableId, role, onJoinCall, ...props }, forwardedRef) => {\n const menuActions = useChannelToolbarActions(onJoinCall);\n\n return (\n <ElevationProvider elevation={role === 'section' ? 'positioned' : 'base'}>\n <Menu.Root {...menuActions} attendableId={attendableId}>\n <Menu.Toolbar {...composableProps(props)} ref={forwardedRef} />\n </Menu.Root>\n </ElevationProvider>\n );\n },\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { ChannelContainer } from './ChannelContainer';\n\nexport default ChannelContainer;\n"],
5
+ "mappings": "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",
6
+ "names": ["Atom", "useAtomValue", "React", "useCallback", "useEffect", "useMemo", "useState", "useCapabilities", "useCapability", "Context", "failUndefined", "log", "useClient", "getSpace", "useIdentity", "ElevationProvider", "Input", "Panel", "useTranslation", "Settings", "Menu", "createMenuAction", "createMenuItemGroup", "useMenuActions", "useSoundEffect", "composable", "composableProps", "ChannelContainer", "role", "subject", "channel", "attendableId", "roomId", "roomIdProp", "fullscreen", "space", "getSpace", "callManager", "useCapability", "ThreadCapabilities", "CallManager", "extensions", "useCapabilities", "CallExtension", "joined", "useAtomValue", "joinedAtom", "currentRoomId", "roomIdAtom", "failUndefined", "identity", "useIdentity", "isNamed", "profile", "displayName", "joinSound", "useSoundEffect", "leaveSound", "useEffect", "ctx", "Context", "left", "on", "forEach", "extension", "onLeave", "callStateUpdated", "state", "onCallStateUpdated", "mediaStateUpdated", "onMediaStateUpdated", "dispose", "handleJoin", "useCallback", "leave", "play", "setRoomId", "join", "Promise", "all", "map", "onJoin", "err", "log", "catch", "handleLeave", "turnAudioOff", "turnVideoOff", "turnScreenshareOff", "isJoined", "Panel", "Root", "Content", "Call", "Grid", "Toolbar", "DisplayNameMissing", "defaultThread", "target", "classNames", "asChild", "ChannelToolbar", "onJoinCall", "ChatContainer", "thread", "t", "useTranslation", "meta", "id", "client", "useClient", "setDisplayName", "useState", "handleChange", "event", "value", "handleSave", "halo", "updateProfile", "Settings", "Group", "ItemInput", "title", "description", "Input", "TextInput", "onChange", "placeholder", "GroupButton", "disabled", "onClick", "useChannelToolbarActions", "creator", "useMemo", "Atom", "make", "nodes", "createMenuItemGroup", "label", "ns", "createMenuAction", "icon", "type", "edges", "source", "relation", "useMenuActions", "composable", "props", "forwardedRef", "menuActions", "ElevationProvider", "elevation", "Menu", "composableProps", "ref", "ChannelContainer"]
7
+ }
@@ -5,28 +5,30 @@ import {
5
5
 
6
6
  // src/hooks/analytics.ts
7
7
  import { useCallback } from "react";
8
- import { createIntent } from "@dxos/app-framework";
9
- import { useIntentDispatcher } from "@dxos/app-framework/react";
10
- import { ObservabilityAction } from "@dxos/plugin-observability/types";
11
- import { getSpace } from "@dxos/react-client/echo";
8
+ import { useOperationInvoker } from "@dxos/app-framework/ui";
9
+ import { Obj } from "@dxos/echo";
10
+ import { ObservabilityOperation } from "@dxos/plugin-observability/operations";
12
11
  import { useOnTransition } from "@dxos/react-ui";
13
12
  var useOnEditAnalytics = (message, textBlock, editing) => {
14
- const { dispatchPromise: dispatch } = useIntentDispatcher();
13
+ const { invokePromise } = useOperationInvoker();
15
14
  const onEdit = useCallback(() => {
16
- const space = getSpace(message);
17
- if (!space || !textBlock) {
15
+ if (!message || !textBlock) {
18
16
  return;
19
17
  }
20
- void dispatch(createIntent(ObservabilityAction.SendEvent, {
18
+ const db = Obj.getDatabase(message);
19
+ if (!db) {
20
+ return;
21
+ }
22
+ void invokePromise(ObservabilityOperation.SendEvent, {
21
23
  name: "threads.message.update",
22
24
  properties: {
23
- spaceId: space.id,
25
+ spaceId: db.spaceId,
24
26
  messageId: message.id,
25
27
  messageLength: textBlock?.text.length
26
28
  }
27
- }));
29
+ });
28
30
  }, [
29
- dispatch,
31
+ invokePromise,
30
32
  message,
31
33
  textBlock
32
34
  ]);
@@ -179,4 +181,4 @@ export {
179
181
  useStatus,
180
182
  useVideoStreamTrack
181
183
  };
182
- //# sourceMappingURL=chunk-KOBXMDCI.mjs.map
184
+ //# sourceMappingURL=chunk-GYRGZNEC.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/hooks/analytics.ts", "../../../src/hooks/useBlackCanvasStreamTrack.tsx", "../../../src/hooks/useDebugMode.ts", "../../../src/hooks/useInaudibleAudioStreamTrack.tsx", "../../../src/hooks/useStatus.ts", "../../../src/hooks/useVideoStreamTrack.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { useCallback } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { Obj } from '@dxos/echo';\nimport { ObservabilityOperation } from '@dxos/plugin-observability/operations';\nimport { useOnTransition } from '@dxos/react-ui';\nimport { type ContentBlock } from '@dxos/types';\n\nexport const useOnEditAnalytics = (\n message: any | undefined,\n textBlock: ContentBlock.Text | undefined,\n editing: boolean,\n) => {\n const { invokePromise } = useOperationInvoker();\n\n const onEdit = useCallback(() => {\n if (!message || !textBlock) {\n return;\n }\n\n const db = Obj.getDatabase(message);\n if (!db) {\n return;\n }\n\n void invokePromise(ObservabilityOperation.SendEvent, {\n name: 'threads.message.update',\n properties: {\n spaceId: db.spaceId,\n messageId: message.id,\n messageLength: textBlock?.text.length,\n },\n });\n }, [invokePromise, message, textBlock]);\n\n useOnTransition(editing, true, false, onEdit);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { scheduleTask } from '@dxos/async';\nimport { Context } from '@dxos/context';\n\nimport { createBlackCanvasStreamTrack } from '../calls/util/stub-media-streams';\n\nexport const useBlackCanvasStreamTrack = () => {\n const [blackCanvasStreamTrack, setBlackCanvasStreamTrack] = useState<MediaStreamTrack | undefined>(undefined);\n useEffect(() => {\n const ctx = new Context();\n scheduleTask(ctx, async () => {\n const blackCanvasStreamTrack = await createBlackCanvasStreamTrack({ ctx, width: 720, height: 480 });\n setBlackCanvasStreamTrack(blackCanvasStreamTrack);\n });\n\n return () => {\n void ctx.dispose();\n };\n }, []);\n\n return blackCanvasStreamTrack;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\n// TODO(burdon): Standardize across plugins/composer.\nexport const useDebugMode = () => {\n const [enabled, setEnabled] = useState(false);\n useEffect(() => {\n const handler = (ev: KeyboardEvent) => {\n if (ev.key.toLowerCase() === 'd' && ev.ctrlKey) {\n ev.preventDefault();\n setEnabled(!enabled);\n }\n };\n\n document.addEventListener('keypress', handler);\n return () => {\n document.removeEventListener('keypress', handler);\n };\n }, [enabled]);\n\n return enabled;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { scheduleTask } from '@dxos/async';\nimport { Context } from '@dxos/context';\n\nimport { createInaudibleAudioStreamTrack } from '../calls/util/stub-media-streams';\n\nexport const useInaudibleAudioStreamTrack = () => {\n const [audioStreamTrack, setAudioStreamTrack] = useState<MediaStreamTrack | undefined>(undefined);\n useEffect(() => {\n const ctx = new Context();\n scheduleTask(ctx, async () => {\n const audioStreamTrack = await createInaudibleAudioStreamTrack({ ctx });\n setAudioStreamTrack(audioStreamTrack);\n });\n\n return () => {\n void ctx.dispose();\n };\n }, []);\n\n return audioStreamTrack;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { type Space } from '@dxos/react-client/echo';\n\n// TODO(burdon): Generalize and factor out.\nexport const useStatus = (space?: Space, channel?: string) => {\n const [processing, setProcessing] = useState(false);\n useEffect(() => {\n if (!space || !channel) {\n return;\n }\n\n const unsubscribe = space.listen(`status/${channel}`, (status) => {\n const { event } = status.payload ?? {};\n setProcessing(event === 'processing');\n });\n\n const t = setInterval(() => {\n setProcessing((prev: any) => {\n if (typeof prev?.ts === 'number' && Date.now() - prev.ts > 30_000) {\n return undefined;\n } else {\n return prev;\n }\n });\n }, 1_000);\n\n return () => {\n unsubscribe();\n clearInterval(t);\n };\n }, [space, channel]);\n\n return processing;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type RefObject, useEffect, useRef, useState } from 'react';\n\nexport const useVideoStreamTrack = (videoElement: RefObject<HTMLVideoElement | null>, videoSrc: string) => {\n // Get video stream track.\n const [videoStreamTrack, setVideoStreamTrack] = useState<MediaStreamTrack | undefined>(undefined);\n const hadRun = useRef(false);\n useEffect(() => {\n // This is done to capture only one video stream.\n if (!videoElement.current || hadRun.current || !videoSrc) {\n return;\n }\n hadRun.current = true;\n videoElement.current.addEventListener('playing', () => {\n if (videoStreamTrack) {\n return;\n }\n const stream = (videoElement.current as any).captureStream();\n const track = stream.getTracks()[0];\n if (track && !videoStreamTrack) {\n setVideoStreamTrack(track);\n }\n stream.onaddtrack = (event: MediaStreamTrackEvent) => {\n if (event.track.kind === 'video' && !videoStreamTrack) {\n setVideoStreamTrack(event.track);\n }\n };\n });\n videoElement.current.src = videoSrc;\n }, [videoElement.current, videoSrc]);\n\n return videoStreamTrack;\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["useCallback", "useOperationInvoker", "Obj", "ObservabilityOperation", "useOnTransition", "useOnEditAnalytics", "message", "textBlock", "editing", "invokePromise", "useOperationInvoker", "onEdit", "useCallback", "db", "Obj", "getDatabase", "ObservabilityOperation", "SendEvent", "name", "properties", "spaceId", "messageId", "id", "messageLength", "text", "length", "useOnTransition", "useEffect", "useState", "scheduleTask", "Context", "useBlackCanvasStreamTrack", "blackCanvasStreamTrack", "setBlackCanvasStreamTrack", "useState", "undefined", "useEffect", "ctx", "Context", "scheduleTask", "createBlackCanvasStreamTrack", "width", "height", "dispose", "useEffect", "useState", "useDebugMode", "enabled", "setEnabled", "useState", "useEffect", "handler", "ev", "key", "toLowerCase", "ctrlKey", "preventDefault", "document", "addEventListener", "removeEventListener", "useEffect", "useState", "scheduleTask", "Context", "useInaudibleAudioStreamTrack", "audioStreamTrack", "setAudioStreamTrack", "useState", "undefined", "useEffect", "ctx", "Context", "scheduleTask", "createInaudibleAudioStreamTrack", "dispose", "useEffect", "useState", "useStatus", "space", "channel", "processing", "setProcessing", "useState", "useEffect", "unsubscribe", "listen", "status", "event", "payload", "t", "setInterval", "prev", "ts", "Date", "now", "undefined", "clearInterval", "useEffect", "useRef", "useState", "useVideoStreamTrack", "videoElement", "videoSrc", "videoStreamTrack", "setVideoStreamTrack", "useState", "undefined", "hadRun", "useRef", "useEffect", "current", "addEventListener", "stream", "captureStream", "track", "getTracks", "onaddtrack", "event", "kind", "src"]
7
+ }
@@ -0,0 +1,39 @@
1
+ import {
2
+ definitions_exports
3
+ } from "./chunk-T6FNJOLU.mjs";
4
+
5
+ // src/blueprints/thread-blueprint.ts
6
+ import { Blueprint, Template } from "@dxos/blueprints";
7
+ import { trim } from "@dxos/util";
8
+ var BLUEPRINT_KEY = "org.dxos.blueprint.thread";
9
+ var make = () => Blueprint.make({
10
+ key: BLUEPRINT_KEY,
11
+ name: "Thread",
12
+ tools: Blueprint.toolDefinitions({
13
+ operations: [
14
+ definitions_exports.CreateProposals
15
+ ]
16
+ }),
17
+ instructions: Template.make({
18
+ // TODO(wittjosiah): Move example to function input schema annotation.
19
+ source: trim`
20
+ You can update markdown documents via proposals.
21
+ For each diff, respond with the smallest possible matching span.
22
+ For example:
23
+ - "There is a tyop in this sentence."
24
+ + "There is a typo in this sentence."
25
+ - "This id goof."
26
+ + "This is good."
27
+ `
28
+ })
29
+ });
30
+ var blueprint = {
31
+ key: BLUEPRINT_KEY,
32
+ make
33
+ };
34
+ var thread_blueprint_default = blueprint;
35
+
36
+ export {
37
+ thread_blueprint_default
38
+ };
39
+ //# sourceMappingURL=chunk-L7RCZYUB.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/blueprints/thread-blueprint.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type AppCapabilities } from '@dxos/app-toolkit';\nimport { Blueprint, Template } from '@dxos/blueprints';\nimport { trim } from '@dxos/util';\n\nimport { ThreadOperation } from '../operations';\n\nconst BLUEPRINT_KEY = 'org.dxos.blueprint.thread';\n\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Thread',\n tools: Blueprint.toolDefinitions({ operations: [ThreadOperation.CreateProposals] }),\n instructions: Template.make({\n // TODO(wittjosiah): Move example to function input schema annotation.\n source: trim`\n You can update markdown documents via proposals.\n For each diff, respond with the smallest possible matching span.\n For example:\n - \"There is a tyop in this sentence.\"\n + \"There is a typo in this sentence.\"\n - \"This id goof.\"\n + \"This is good.\"\n `,\n }),\n });\n\nconst blueprint: AppCapabilities.BlueprintDefinition = {\n key: BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n"],
5
+ "mappings": ";;;;;AAKA,SAASA,WAAWC,gBAAgB;AACpC,SAASC,YAAY;AAIrB,IAAMC,gBAAgB;AAEtB,IAAMC,OAAO,MACXC,UAAUD,KAAK;EACbE,KAAKH;EACLI,MAAM;EACNC,OAAOH,UAAUI,gBAAgB;IAAEC,YAAY;MAACC,oBAAgBC;;EAAiB,CAAA;EACjFC,cAAcC,SAASV,KAAK;;IAE1BW,QAAQC;;;;;;;;;EASV,CAAA;AACF,CAAA;AAEF,IAAMC,YAAiD;EACrDX,KAAKH;EACLC;AACF;AAEA,IAAA,2BAAea;",
6
+ "names": ["Blueprint", "Template", "trim", "BLUEPRINT_KEY", "make", "Blueprint", "key", "name", "tools", "toolDefinitions", "operations", "ThreadOperation", "CreateProposals", "instructions", "Template", "source", "trim", "blueprint"]
7
+ }
@@ -0,0 +1,135 @@
1
+ import {
2
+ definitions_exports
3
+ } from "./chunk-T6FNJOLU.mjs";
4
+
5
+ // src/extensions/threads.ts
6
+ import { EditorView } from "@codemirror/view";
7
+ import { Filter, Obj, Query, Relation } from "@dxos/echo";
8
+ import { createDocAccessor, getTextInRange } from "@dxos/echo-db";
9
+ import { AnchoredTo, Thread } from "@dxos/types";
10
+ import { comments, createExternalCommentSync } from "@dxos/ui-editor";
11
+ var getName = (doc, anchor) => {
12
+ if (doc.content) {
13
+ const [start, end] = anchor.split(":");
14
+ return getTextInRange(createDocAccessor(doc.content.target, [
15
+ "content"
16
+ ]), start, end);
17
+ }
18
+ };
19
+ var threads = (store, doc, invokePromise) => {
20
+ const db = doc && Obj.getDatabase(doc);
21
+ if (!doc || !db || !invokePromise) {
22
+ return [
23
+ comments()
24
+ ];
25
+ }
26
+ const { registry, stateAtom } = store;
27
+ const objectId = Obj.getDXN(doc).toString();
28
+ const query = db.query(Query.select(Filter.id(doc.id)).targetOf(AnchoredTo.AnchoredTo));
29
+ const getAnchors = () => query.results.filter((anchor) => {
30
+ const thread = Relation.getSource(anchor);
31
+ return Obj.instanceOf(Thread.Thread, thread) && thread.status !== "resolved";
32
+ }).concat(registry.get(stateAtom).drafts[objectId] ?? []);
33
+ return [
34
+ EditorView.domEventHandlers({
35
+ destroy: () => {
36
+ }
37
+ }),
38
+ EditorView.updateListener.of((update) => {
39
+ if (update.docChanged) {
40
+ getAnchors().forEach((anchor) => {
41
+ if (anchor.anchor) {
42
+ const name = getName(doc, anchor.anchor);
43
+ const thread = Relation.getSource(anchor);
44
+ if (name && name !== thread.name) {
45
+ Obj.change(thread, (obj) => {
46
+ obj.name = name;
47
+ });
48
+ }
49
+ }
50
+ });
51
+ }
52
+ }),
53
+ createExternalCommentSync(objectId, (sink) => {
54
+ const unsubQuery = query.subscribe(sink);
55
+ const unsubStore = registry.subscribe(stateAtom, sink);
56
+ return () => {
57
+ unsubQuery();
58
+ unsubStore();
59
+ };
60
+ }, () => getAnchors().filter((anchor) => anchor.anchor).map((anchor) => ({
61
+ id: Obj.getDXN(Relation.getSource(anchor)).toString(),
62
+ cursor: anchor.anchor
63
+ }))),
64
+ comments({
65
+ id: objectId,
66
+ onCreate: ({ cursor }) => {
67
+ const name = getName(doc, cursor);
68
+ void invokePromise(definitions_exports.Create, {
69
+ anchor: cursor,
70
+ name,
71
+ subject: doc
72
+ });
73
+ },
74
+ onDelete: ({ id }) => {
75
+ const drafts = registry.get(stateAtom).drafts[objectId];
76
+ if (drafts) {
77
+ const index = drafts.findIndex((draft) => Relation.getDXN(draft).toString() === id);
78
+ if (index !== -1) {
79
+ const current = registry.get(stateAtom);
80
+ registry.set(stateAtom, {
81
+ ...current,
82
+ drafts: {
83
+ ...current.drafts,
84
+ [objectId]: current.drafts[objectId]?.filter((_, i) => i !== index)
85
+ }
86
+ });
87
+ }
88
+ }
89
+ const thread = query.results.find((object) => Relation.getSource(object).id === id);
90
+ if (thread) {
91
+ Relation.change(thread, (obj) => {
92
+ obj.anchor = void 0;
93
+ });
94
+ }
95
+ },
96
+ onUpdate: ({ id, cursor }) => {
97
+ const draft = registry.get(stateAtom).drafts[objectId]?.find((d) => Relation.getDXN(d).toString() === id);
98
+ if (draft) {
99
+ const thread = Relation.getSource(draft);
100
+ Obj.change(thread, (obj) => {
101
+ obj.name = getName(doc, cursor);
102
+ });
103
+ Relation.change(draft, (obj) => {
104
+ obj.anchor = cursor;
105
+ });
106
+ }
107
+ const relation = query.results.find((object) => Relation.getSource(object).id === id);
108
+ if (relation) {
109
+ const thread = Relation.getSource(relation);
110
+ if (Obj.instanceOf(Thread.Thread, thread)) {
111
+ Obj.change(thread, (obj) => {
112
+ obj.name = getName(doc, cursor);
113
+ });
114
+ Relation.change(relation, (obj) => {
115
+ obj.anchor = cursor;
116
+ });
117
+ }
118
+ }
119
+ },
120
+ onSelect: ({ selection }) => {
121
+ const current = selection.current ?? selection.closest;
122
+ if (current) {
123
+ void invokePromise(definitions_exports.Select, {
124
+ current
125
+ });
126
+ }
127
+ }
128
+ })
129
+ ];
130
+ };
131
+
132
+ export {
133
+ threads
134
+ };
135
+ //# sourceMappingURL=chunk-MC6IA6YE.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/extensions/threads.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Extension } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { type Atom, type Registry } from '@effect-atom/atom-react';\n\nimport { Filter, Obj, Query, Relation } from '@dxos/echo';\nimport { createDocAccessor, getTextInRange } from '@dxos/echo-db';\nimport { type OperationInvoker } from '@dxos/operation';\nimport { type Markdown } from '@dxos/plugin-markdown/types';\nimport { AnchoredTo, Thread } from '@dxos/types';\nimport { comments, createExternalCommentSync } from '@dxos/ui-editor';\n\nimport { type ThreadState } from '../types';\nimport { ThreadOperation } from '../operations';\n\n// TODO(burdon): Factor out.\nconst getName = (doc: Markdown.Document, anchor: string): string | undefined => {\n if (doc.content) {\n const [start, end] = anchor.split(':');\n return getTextInRange(createDocAccessor(doc.content.target!, ['content']), start, end);\n }\n};\n\nexport type ThreadStore = {\n registry: Registry.Registry;\n stateAtom: Atom.Writable<ThreadState>;\n};\n\n/**\n * Construct plugins.\n */\nexport const threads = (\n store: ThreadStore,\n doc?: Markdown.Document,\n invokePromise?: OperationInvoker.OperationInvoker['invokePromise'],\n): Extension => {\n const db = doc && Obj.getDatabase(doc);\n if (!doc || !db || !invokePromise) {\n // Include no-op comments extension here to ensure that the facets are always present when they are expected.\n // TODO(wittjosiah): The Editor should only look for these facets when comments are available.\n return [comments()];\n }\n\n const { registry, stateAtom } = store;\n const objectId = Obj.getDXN(doc).toString();\n const query = db.query(Query.select(Filter.id(doc.id)).targetOf(AnchoredTo.AnchoredTo));\n\n // Get current anchors by combining query results with store drafts.\n const getAnchors = () =>\n query.results\n .filter((anchor) => {\n const thread = Relation.getSource(anchor);\n return Obj.instanceOf(Thread.Thread, thread) && thread.status !== 'resolved';\n })\n .concat(registry.get(stateAtom).drafts[objectId] ?? []);\n\n return [\n EditorView.domEventHandlers({\n destroy: () => {\n // Note: cleanup functions for subscriptions are handled by createExternalCommentSync.\n },\n }),\n\n EditorView.updateListener.of((update) => {\n if (update.docChanged) {\n getAnchors().forEach((anchor) => {\n if (anchor.anchor) {\n // Only update if the name has changed, otherwise this will cause an infinite loop.\n // Skip if the name is empty; this means comment text was deleted, but thread name should remain.\n const name = getName(doc, anchor.anchor);\n const thread = Relation.getSource(anchor) as Thread.Thread;\n if (name && name !== thread.name) {\n Obj.change(thread, (obj) => {\n obj.name = name;\n });\n }\n }\n });\n }\n }),\n\n createExternalCommentSync(\n objectId,\n (sink) => {\n // Subscribe to both query changes and store state changes.\n const unsubQuery = query.subscribe(sink);\n const unsubStore = registry.subscribe(stateAtom, sink);\n return () => {\n unsubQuery();\n unsubStore();\n };\n },\n () =>\n getAnchors()\n .filter((anchor) => anchor.anchor)\n .map((anchor) => ({\n id: Obj.getDXN(Relation.getSource(anchor)).toString(),\n cursor: anchor.anchor,\n })),\n ),\n\n comments({\n id: objectId,\n onCreate: ({ cursor }) => {\n const name = getName(doc, cursor);\n void invokePromise(ThreadOperation.Create, {\n anchor: cursor,\n name,\n subject: doc,\n });\n },\n onDelete: ({ id }) => {\n const drafts = registry.get(stateAtom).drafts[objectId];\n if (drafts) {\n const index = drafts.findIndex((draft) => Relation.getDXN(draft).toString() === id);\n if (index !== -1) {\n const current = registry.get(stateAtom);\n registry.set(stateAtom, {\n ...current,\n drafts: {\n ...current.drafts,\n [objectId]: current.drafts[objectId]?.filter((_, i) => i !== index),\n },\n });\n }\n }\n\n const thread = query.results.find((object) => Relation.getSource(object).id === id);\n if (thread) {\n Relation.change(thread, (obj) => {\n obj.anchor = undefined;\n });\n }\n },\n onUpdate: ({ id, cursor }) => {\n const draft = registry.get(stateAtom).drafts[objectId]?.find((d) => Relation.getDXN(d).toString() === id);\n if (draft) {\n const thread = Relation.getSource(draft) as Thread.Thread;\n Obj.change(thread, (obj) => {\n obj.name = getName(doc, cursor);\n });\n Relation.change(draft, (obj) => {\n obj.anchor = cursor;\n });\n }\n\n const relation = query.results.find((object) => Relation.getSource(object).id === id);\n if (relation) {\n const thread = Relation.getSource(relation);\n if (Obj.instanceOf(Thread.Thread, thread)) {\n Obj.change(thread, (obj) => {\n obj.name = getName(doc, cursor);\n });\n Relation.change(relation, (obj) => {\n obj.anchor = cursor;\n });\n }\n }\n },\n onSelect: ({ selection }) => {\n const current = selection.current ?? selection.closest;\n if (current) {\n void invokePromise(ThreadOperation.Select, { current });\n }\n },\n }),\n ];\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["EditorView", "Filter", "Obj", "Query", "Relation", "createDocAccessor", "getTextInRange", "AnchoredTo", "Thread", "comments", "createExternalCommentSync", "getName", "doc", "anchor", "content", "start", "end", "split", "getTextInRange", "createDocAccessor", "target", "threads", "store", "invokePromise", "db", "Obj", "getDatabase", "comments", "registry", "stateAtom", "objectId", "getDXN", "toString", "query", "Query", "select", "Filter", "id", "targetOf", "AnchoredTo", "getAnchors", "results", "filter", "thread", "Relation", "getSource", "instanceOf", "Thread", "status", "concat", "get", "drafts", "EditorView", "domEventHandlers", "destroy", "updateListener", "of", "update", "docChanged", "forEach", "name", "change", "obj", "createExternalCommentSync", "sink", "unsubQuery", "subscribe", "unsubStore", "map", "cursor", "onCreate", "ThreadOperation", "Create", "subject", "onDelete", "index", "findIndex", "draft", "current", "set", "_", "i", "find", "object", "undefined", "onUpdate", "d", "relation", "onSelect", "selection", "closest", "Select"]
7
+ }