@dxos/plugin-thread 0.8.4-main.bc674ce → 0.8.4-main.c351d160a8

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 (326) hide show
  1. package/dist/lib/browser/CallDebugPanel-BO3SLD4E.mjs +182 -0
  2. package/dist/lib/browser/CallDebugPanel-BO3SLD4E.mjs.map +7 -0
  3. package/dist/lib/browser/CallSidebar-KSOBZJGD.mjs +36 -0
  4. package/dist/lib/browser/CallSidebar-KSOBZJGD.mjs.map +7 -0
  5. package/dist/lib/browser/ChannelContainer-EQZXMQMV.mjs +17 -0
  6. package/dist/lib/browser/ChannelContainer-EQZXMQMV.mjs.map +7 -0
  7. package/dist/lib/browser/ChatContainer-VPCJ2AMF.mjs +18 -0
  8. package/dist/lib/browser/ChatContainer-VPCJ2AMF.mjs.map +7 -0
  9. package/dist/lib/browser/ThreadCompanion-7GTSEJQT.mjs +209 -0
  10. package/dist/lib/browser/ThreadCompanion-7GTSEJQT.mjs.map +7 -0
  11. package/dist/lib/browser/ThreadSettings-VL3HBE62.mjs +20 -0
  12. package/dist/lib/browser/ThreadSettings-VL3HBE62.mjs.map +7 -0
  13. package/dist/lib/browser/{app-graph-builder-7C2QW32W.mjs → app-graph-builder-ECTCB36F.mjs} +25 -24
  14. package/dist/lib/browser/app-graph-builder-ECTCB36F.mjs.map +7 -0
  15. package/dist/lib/browser/blueprint-definition-UJ4QH3LV.mjs +17 -0
  16. package/dist/lib/browser/blueprint-definition-UJ4QH3LV.mjs.map +7 -0
  17. package/dist/lib/browser/blueprints/index.mjs +3 -3
  18. package/dist/lib/browser/{call-manager-4P536YNX.mjs → call-manager-3P6D7IH7.mjs} +5 -4
  19. package/dist/lib/browser/call-manager-3P6D7IH7.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-7GONB2BI.mjs +219 -0
  23. package/dist/lib/browser/chunk-7GONB2BI.mjs.map +7 -0
  24. package/dist/lib/browser/chunk-D7PVIURR.mjs +1094 -0
  25. package/dist/lib/browser/chunk-D7PVIURR.mjs.map +7 -0
  26. package/dist/lib/browser/{chunk-2FIHSX35.mjs → chunk-FGEVENLN.mjs} +34 -47
  27. package/dist/lib/browser/chunk-FGEVENLN.mjs.map +7 -0
  28. package/dist/lib/browser/{chunk-DLO2G3DM.mjs → chunk-HDLDMR54.mjs} +2 -2
  29. package/dist/lib/browser/chunk-HDLDMR54.mjs.map +7 -0
  30. package/dist/lib/browser/{chunk-ZFLSTQSE.mjs → chunk-J75MXJZN.mjs} +26 -27
  31. package/dist/lib/browser/chunk-J75MXJZN.mjs.map +7 -0
  32. package/dist/lib/browser/chunk-JMH6UT5J.mjs +127 -0
  33. package/dist/lib/browser/chunk-JMH6UT5J.mjs.map +7 -0
  34. package/dist/lib/browser/{markdown-QMJLRR6R.mjs → chunk-PV5GYINX.mjs} +3 -78
  35. package/dist/lib/browser/chunk-PV5GYINX.mjs.map +7 -0
  36. package/dist/lib/browser/chunk-QVJO3VJ4.mjs +20 -0
  37. package/dist/lib/browser/chunk-QVJO3VJ4.mjs.map +7 -0
  38. package/dist/lib/browser/index.mjs +64 -83
  39. package/dist/lib/browser/index.mjs.map +4 -4
  40. package/dist/lib/browser/markdown-J6H6EIZE.mjs +83 -0
  41. package/dist/lib/browser/markdown-J6H6EIZE.mjs.map +7 -0
  42. package/dist/lib/browser/meta.json +1 -1
  43. package/dist/lib/browser/{operation-resolver-T63EP5TY.mjs → operation-resolver-3JHO5DFX.mjs} +22 -29
  44. package/dist/lib/browser/operation-resolver-3JHO5DFX.mjs.map +7 -0
  45. package/dist/lib/browser/{react-root-56MJI77R.mjs → react-root-AM3J34AK.mjs} +8 -6
  46. package/dist/lib/browser/react-root-AM3J34AK.mjs.map +7 -0
  47. package/dist/lib/browser/{react-surface-DMBHQOXJ.mjs → react-surface-VNGEEVYP.mjs} +40 -35
  48. package/dist/lib/browser/react-surface-VNGEEVYP.mjs.map +7 -0
  49. package/dist/lib/browser/{settings-WZMJMML3.mjs → settings-HYNYTOSX.mjs} +8 -5
  50. package/dist/lib/browser/settings-HYNYTOSX.mjs.map +7 -0
  51. package/dist/lib/browser/{state-SJR2GL5G.mjs → state-NQZQCDFD.mjs} +3 -2
  52. package/dist/lib/browser/types/index.mjs +2 -1
  53. package/dist/lib/node-esm/CallDebugPanel-7OIL5FVT.mjs +183 -0
  54. package/dist/lib/node-esm/CallDebugPanel-7OIL5FVT.mjs.map +7 -0
  55. package/dist/lib/node-esm/CallSidebar-Y2I3UBBA.mjs +37 -0
  56. package/dist/lib/node-esm/CallSidebar-Y2I3UBBA.mjs.map +7 -0
  57. package/dist/lib/node-esm/ChannelContainer-WB5YYZKU.mjs +18 -0
  58. package/dist/lib/node-esm/ChannelContainer-WB5YYZKU.mjs.map +7 -0
  59. package/dist/lib/node-esm/ChatContainer-CP6PNF53.mjs +19 -0
  60. package/dist/lib/node-esm/ChatContainer-CP6PNF53.mjs.map +7 -0
  61. package/dist/lib/node-esm/ThreadCompanion-5MM3XACT.mjs +210 -0
  62. package/dist/lib/node-esm/ThreadCompanion-5MM3XACT.mjs.map +7 -0
  63. package/dist/lib/node-esm/ThreadSettings-TCZMYH3J.mjs +21 -0
  64. package/dist/lib/node-esm/ThreadSettings-TCZMYH3J.mjs.map +7 -0
  65. package/dist/lib/node-esm/{app-graph-builder-JCSVFRVY.mjs → app-graph-builder-HSX4GHGQ.mjs} +25 -24
  66. package/dist/lib/node-esm/app-graph-builder-HSX4GHGQ.mjs.map +7 -0
  67. package/dist/lib/node-esm/{blueprint-definition-MZZXXL37.mjs → blueprint-definition-SABUBK23.mjs} +6 -6
  68. package/dist/lib/node-esm/blueprint-definition-SABUBK23.mjs.map +7 -0
  69. package/dist/lib/node-esm/blueprints/index.mjs +3 -3
  70. package/dist/lib/node-esm/{call-manager-FMLRR5S5.mjs → call-manager-ENAYC5L3.mjs} +5 -4
  71. package/dist/lib/node-esm/call-manager-ENAYC5L3.mjs.map +7 -0
  72. package/dist/lib/node-esm/chunk-35G7Q243.mjs +1095 -0
  73. package/dist/lib/node-esm/chunk-35G7Q243.mjs.map +7 -0
  74. package/dist/lib/node-esm/chunk-4BOUHFEC.mjs +128 -0
  75. package/dist/lib/node-esm/chunk-4BOUHFEC.mjs.map +7 -0
  76. package/dist/lib/node-esm/chunk-A3SWGVF3.mjs +37 -0
  77. package/dist/lib/node-esm/chunk-A3SWGVF3.mjs.map +7 -0
  78. package/dist/lib/node-esm/{markdown-L6LLQLIN.mjs → chunk-B7POKKGL.mjs} +3 -78
  79. package/dist/lib/node-esm/chunk-B7POKKGL.mjs.map +7 -0
  80. package/dist/lib/node-esm/chunk-CSIDVJEC.mjs +220 -0
  81. package/dist/lib/node-esm/chunk-CSIDVJEC.mjs.map +7 -0
  82. package/dist/lib/node-esm/{chunk-WMWUXWAS.mjs → chunk-HGIUKAXD.mjs} +34 -47
  83. package/dist/lib/node-esm/chunk-HGIUKAXD.mjs.map +7 -0
  84. package/dist/lib/node-esm/chunk-N2T5KLKB.mjs +22 -0
  85. package/dist/lib/node-esm/chunk-N2T5KLKB.mjs.map +7 -0
  86. package/dist/lib/node-esm/{chunk-AQHPP6ZX.mjs → chunk-NDSI2G7B.mjs} +26 -26
  87. package/dist/lib/node-esm/chunk-NDSI2G7B.mjs.map +7 -0
  88. package/dist/lib/node-esm/{chunk-KRBZBJRI.mjs → chunk-YN2Y7GPW.mjs} +2 -2
  89. package/dist/lib/node-esm/chunk-YN2Y7GPW.mjs.map +7 -0
  90. package/dist/lib/node-esm/index.mjs +64 -83
  91. package/dist/lib/node-esm/index.mjs.map +4 -4
  92. package/dist/lib/node-esm/markdown-P2WSGZJB.mjs +84 -0
  93. package/dist/lib/node-esm/markdown-P2WSGZJB.mjs.map +7 -0
  94. package/dist/lib/node-esm/meta.json +1 -1
  95. package/dist/lib/node-esm/{operation-resolver-G6GZPBRP.mjs → operation-resolver-I3RCYCC4.mjs} +22 -29
  96. package/dist/lib/node-esm/operation-resolver-I3RCYCC4.mjs.map +7 -0
  97. package/dist/lib/node-esm/{react-root-V4W4X5GL.mjs → react-root-TFDOAH6Z.mjs} +8 -6
  98. package/dist/lib/node-esm/react-root-TFDOAH6Z.mjs.map +7 -0
  99. package/dist/lib/node-esm/{react-surface-ELDSTUA3.mjs → react-surface-3C7PBXXD.mjs} +40 -35
  100. package/dist/lib/node-esm/react-surface-3C7PBXXD.mjs.map +7 -0
  101. package/dist/lib/node-esm/{settings-37CO3SNR.mjs → settings-FV2O6HDY.mjs} +8 -5
  102. package/dist/lib/node-esm/settings-FV2O6HDY.mjs.map +7 -0
  103. package/dist/lib/node-esm/{state-5R3TZJQE.mjs → state-IODNXJEB.mjs} +3 -2
  104. package/dist/lib/{browser/state-SJR2GL5G.mjs.map → node-esm/state-IODNXJEB.mjs.map} +1 -1
  105. package/dist/lib/node-esm/types/index.mjs +2 -1
  106. package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
  107. package/dist/types/src/blueprints/index.d.ts +1 -1
  108. package/dist/types/src/blueprints/index.d.ts.map +1 -1
  109. package/dist/types/src/blueprints/thread-blueprint.d.ts +3 -20
  110. package/dist/types/src/blueprints/thread-blueprint.d.ts.map +1 -1
  111. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +1 -1
  112. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -1
  113. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +3 -6
  114. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -1
  115. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +1 -1
  116. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -1
  117. package/dist/types/src/capabilities/call-manager/call-manager.d.ts +1 -1
  118. package/dist/types/src/capabilities/call-manager/call-manager.d.ts.map +1 -1
  119. package/dist/types/src/capabilities/index.d.ts +0 -1
  120. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  121. package/dist/types/src/capabilities/markdown/markdown.d.ts +1 -1
  122. package/dist/types/src/capabilities/markdown/markdown.d.ts.map +1 -1
  123. package/dist/types/src/capabilities/operation-resolver/index.d.ts +1 -1
  124. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -1
  125. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +2 -2
  126. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
  127. package/dist/types/src/capabilities/react-root/react-root.d.ts +1 -1
  128. package/dist/types/src/capabilities/react-root/react-root.d.ts.map +1 -1
  129. package/dist/types/src/capabilities/react-surface/index.d.ts +1 -1
  130. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -1
  131. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +2 -2
  132. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
  133. package/dist/types/src/capabilities/settings/index.d.ts +1 -1
  134. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -1
  135. package/dist/types/src/capabilities/settings/settings.d.ts +3 -2
  136. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -1
  137. package/dist/types/src/capabilities/state/state.d.ts +1 -1
  138. package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
  139. package/dist/types/src/components/CommentsPanel/CommentsPanel.d.ts +13 -0
  140. package/dist/types/src/components/CommentsPanel/CommentsPanel.d.ts.map +1 -0
  141. package/dist/types/src/components/{Comments.stories.d.ts → CommentsPanel/CommentsPanel.stories.d.ts} +4 -2
  142. package/dist/types/src/components/CommentsPanel/CommentsPanel.stories.d.ts.map +1 -0
  143. package/dist/types/src/components/{CommentsThreadContainer.d.ts → CommentsPanel/CommentsThread.d.ts} +3 -3
  144. package/dist/types/src/components/CommentsPanel/CommentsThread.d.ts.map +1 -0
  145. package/dist/types/src/components/CommentsPanel/index.d.ts +3 -0
  146. package/dist/types/src/components/CommentsPanel/index.d.ts.map +1 -0
  147. package/dist/types/src/components/MessagePanel/MessagePanel.d.ts +15 -0
  148. package/dist/types/src/components/MessagePanel/MessagePanel.d.ts.map +1 -0
  149. package/dist/types/src/components/MessagePanel/index.d.ts +2 -0
  150. package/dist/types/src/components/MessagePanel/index.d.ts.map +1 -0
  151. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +2 -0
  152. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts.map +1 -1
  153. package/dist/types/src/components/ResponsiveGrid/{ResponsiveContainer.d.ts → ResponsivePanel.d.ts} +4 -4
  154. package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.d.ts.map +1 -0
  155. package/dist/types/src/components/ResponsiveGrid/{ResponsiveContainer.stories.d.ts → ResponsivePanel.stories.d.ts} +5 -3
  156. package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.stories.d.ts.map +1 -0
  157. package/dist/types/src/components/ResponsiveGrid/index.d.ts +1 -1
  158. package/dist/types/src/components/ResponsiveGrid/index.d.ts.map +1 -1
  159. package/dist/types/src/components/index.d.ts +2 -9
  160. package/dist/types/src/components/index.d.ts.map +1 -1
  161. package/dist/types/src/{components → containers/CallDebugPanel}/CallDebugPanel.d.ts +1 -1
  162. package/dist/types/src/containers/CallDebugPanel/CallDebugPanel.d.ts.map +1 -0
  163. package/dist/types/src/containers/CallDebugPanel/index.d.ts +3 -0
  164. package/dist/types/src/containers/CallDebugPanel/index.d.ts.map +1 -0
  165. package/dist/types/src/{components → containers/CallSidebar}/CallSidebar.d.ts +0 -1
  166. package/dist/types/src/containers/CallSidebar/CallSidebar.d.ts.map +1 -0
  167. package/dist/types/src/containers/CallSidebar/index.d.ts +3 -0
  168. package/dist/types/src/containers/CallSidebar/index.d.ts.map +1 -0
  169. package/dist/types/src/{components → containers/ChannelContainer}/ChannelContainer.d.ts +3 -4
  170. package/dist/types/src/containers/ChannelContainer/ChannelContainer.d.ts.map +1 -0
  171. package/dist/types/src/{components → containers/ChannelContainer}/ChannelContainer.stories.d.ts +4 -2
  172. package/dist/types/src/containers/ChannelContainer/ChannelContainer.stories.d.ts.map +1 -0
  173. package/dist/types/src/containers/ChannelContainer/index.d.ts +3 -0
  174. package/dist/types/src/containers/ChannelContainer/index.d.ts.map +1 -0
  175. package/dist/types/src/{components → containers/ChatContainer}/ChatContainer.d.ts +4 -5
  176. package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts.map +1 -0
  177. package/dist/types/src/{components/Chat.stories.d.ts → containers/ChatContainer/ChatContainer.stories.d.ts} +4 -2
  178. package/dist/types/src/containers/ChatContainer/ChatContainer.stories.d.ts.map +1 -0
  179. package/dist/types/src/containers/ChatContainer/index.d.ts +4 -0
  180. package/dist/types/src/containers/ChatContainer/index.d.ts.map +1 -0
  181. package/dist/types/src/containers/ThreadCompanion/ThreadCompanion.d.ts +6 -0
  182. package/dist/types/src/containers/ThreadCompanion/ThreadCompanion.d.ts.map +1 -0
  183. package/dist/types/src/containers/ThreadCompanion/index.d.ts +3 -0
  184. package/dist/types/src/containers/ThreadCompanion/index.d.ts.map +1 -0
  185. package/dist/types/src/{components → containers/ThreadSettings}/ThreadSettings.d.ts +1 -1
  186. package/dist/types/src/containers/ThreadSettings/ThreadSettings.d.ts.map +1 -0
  187. package/dist/types/src/containers/ThreadSettings/index.d.ts +3 -0
  188. package/dist/types/src/containers/ThreadSettings/index.d.ts.map +1 -0
  189. package/dist/types/src/containers/index.d.ts +8 -0
  190. package/dist/types/src/containers/index.d.ts.map +1 -0
  191. package/dist/types/src/{components/command-extension.d.ts → extensions/command.d.ts} +1 -1
  192. package/dist/types/src/extensions/command.d.ts.map +1 -0
  193. package/dist/types/src/extensions/index.d.ts +1 -0
  194. package/dist/types/src/extensions/index.d.ts.map +1 -1
  195. package/dist/types/src/functions/create-proposals.d.ts +8 -1
  196. package/dist/types/src/functions/create-proposals.d.ts.map +1 -1
  197. package/dist/types/src/functions/index.d.ts +13 -1
  198. package/dist/types/src/functions/index.d.ts.map +1 -1
  199. package/dist/types/src/hooks/analytics.d.ts.map +1 -1
  200. package/dist/types/src/{components/testing.d.ts → testing/data.d.ts} +1 -1
  201. package/dist/types/src/testing/data.d.ts.map +1 -0
  202. package/dist/types/src/testing/stories.d.ts.map +1 -1
  203. package/dist/types/src/translations.d.ts +2 -0
  204. package/dist/types/src/translations.d.ts.map +1 -1
  205. package/dist/types/src/types/Channel.d.ts +25 -9
  206. package/dist/types/src/types/Channel.d.ts.map +1 -1
  207. package/dist/types/src/types/types.d.ts +182 -105
  208. package/dist/types/src/types/types.d.ts.map +1 -1
  209. package/dist/types/tsconfig.tsbuildinfo +1 -1
  210. package/package.json +67 -65
  211. package/src/ThreadPlugin.tsx +33 -49
  212. package/src/blueprints/index.ts +1 -1
  213. package/src/blueprints/thread-blueprint.ts +14 -6
  214. package/src/calls-service.stories.tsx +2 -2
  215. package/src/capabilities/app-graph-builder/app-graph-builder.ts +20 -18
  216. package/src/capabilities/blueprint-definition/blueprint-definition.ts +6 -12
  217. package/src/capabilities/call-manager/call-manager.ts +2 -2
  218. package/src/capabilities/index.ts +0 -1
  219. package/src/capabilities/markdown/markdown.ts +11 -13
  220. package/src/capabilities/operation-resolver/operation-resolver.ts +13 -21
  221. package/src/capabilities/react-root/react-root.tsx +2 -2
  222. package/src/capabilities/react-surface/react-surface.tsx +28 -24
  223. package/src/capabilities/settings/settings.ts +3 -2
  224. package/src/components/Call/Call.tsx +1 -1
  225. package/src/components/Call/Toolbar.tsx +6 -7
  226. package/src/components/{Comments.stories.tsx → CommentsPanel/CommentsPanel.stories.tsx} +12 -12
  227. package/src/components/{CommentsContainer.tsx → CommentsPanel/CommentsPanel.tsx} +14 -13
  228. package/src/components/{CommentsThreadContainer.tsx → CommentsPanel/CommentsThread.tsx} +12 -13
  229. package/src/components/CommentsPanel/index.ts +6 -0
  230. package/src/components/Lobby/Lobby.tsx +4 -4
  231. package/src/components/Media/VideoObject.stories.tsx +6 -6
  232. package/src/components/Media/VideoObject.tsx +1 -1
  233. package/src/components/{MessageContainer.tsx → MessagePanel/MessagePanel.tsx} +16 -16
  234. package/src/components/MessagePanel/index.ts +5 -0
  235. package/src/components/Participant/Participant.tsx +1 -1
  236. package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +4 -4
  237. package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +8 -8
  238. package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +5 -5
  239. package/src/components/ResponsiveGrid/{ResponsiveContainer.stories.tsx → ResponsivePanel.stories.tsx} +7 -7
  240. package/src/components/ResponsiveGrid/{ResponsiveContainer.tsx → ResponsivePanel.tsx} +5 -5
  241. package/src/components/ResponsiveGrid/index.ts +1 -1
  242. package/src/components/index.ts +2 -10
  243. package/src/{components → containers/CallDebugPanel}/CallDebugPanel.tsx +4 -4
  244. package/src/containers/CallDebugPanel/index.ts +7 -0
  245. package/src/{components → containers/CallSidebar}/CallSidebar.tsx +4 -7
  246. package/src/containers/CallSidebar/index.ts +7 -0
  247. package/src/{components → containers/ChannelContainer}/ChannelContainer.stories.tsx +11 -13
  248. package/src/{components → containers/ChannelContainer}/ChannelContainer.tsx +58 -43
  249. package/src/containers/ChannelContainer/index.ts +7 -0
  250. package/src/{components/Chat.stories.tsx → containers/ChatContainer/ChatContainer.stories.tsx} +20 -18
  251. package/src/{components → containers/ChatContainer}/ChatContainer.tsx +27 -37
  252. package/src/containers/ChatContainer/index.ts +8 -0
  253. package/src/{components → containers/ThreadCompanion}/ThreadCompanion.tsx +50 -44
  254. package/src/containers/ThreadCompanion/index.ts +7 -0
  255. package/src/{components → containers/ThreadSettings}/ThreadSettings.tsx +5 -4
  256. package/src/containers/ThreadSettings/index.ts +7 -0
  257. package/src/containers/index.ts +12 -0
  258. package/src/{components/command-extension.ts → extensions/command.ts} +1 -1
  259. package/src/extensions/index.ts +1 -0
  260. package/src/functions/create-proposals.ts +10 -10
  261. package/src/functions/index.ts +5 -1
  262. package/src/hooks/analytics.ts +2 -1
  263. package/src/meta.ts +2 -2
  264. package/src/testing/stories.ts +2 -1
  265. package/src/translations.ts +1 -0
  266. package/src/types/Channel.ts +10 -4
  267. package/src/types/capabilities.ts +5 -5
  268. package/src/types/types.ts +18 -18
  269. package/dist/lib/browser/app-graph-builder-7C2QW32W.mjs.map +0 -7
  270. package/dist/lib/browser/blueprint-definition-UQ63QKQG.mjs +0 -17
  271. package/dist/lib/browser/blueprint-definition-UQ63QKQG.mjs.map +0 -7
  272. package/dist/lib/browser/call-manager-4P536YNX.mjs.map +0 -7
  273. package/dist/lib/browser/chunk-2FIHSX35.mjs.map +0 -7
  274. package/dist/lib/browser/chunk-DLO2G3DM.mjs.map +0 -7
  275. package/dist/lib/browser/chunk-YSHXWAL3.mjs +0 -1815
  276. package/dist/lib/browser/chunk-YSHXWAL3.mjs.map +0 -7
  277. package/dist/lib/browser/chunk-ZFLSTQSE.mjs.map +0 -7
  278. package/dist/lib/browser/markdown-QMJLRR6R.mjs.map +0 -7
  279. package/dist/lib/browser/operation-resolver-T63EP5TY.mjs.map +0 -7
  280. package/dist/lib/browser/react-root-56MJI77R.mjs.map +0 -7
  281. package/dist/lib/browser/react-surface-DMBHQOXJ.mjs.map +0 -7
  282. package/dist/lib/browser/repair-6OZ75AUU.mjs +0 -38
  283. package/dist/lib/browser/repair-6OZ75AUU.mjs.map +0 -7
  284. package/dist/lib/browser/settings-WZMJMML3.mjs.map +0 -7
  285. package/dist/lib/node-esm/app-graph-builder-JCSVFRVY.mjs.map +0 -7
  286. package/dist/lib/node-esm/blueprint-definition-MZZXXL37.mjs.map +0 -7
  287. package/dist/lib/node-esm/call-manager-FMLRR5S5.mjs.map +0 -7
  288. package/dist/lib/node-esm/chunk-7XQLXMX7.mjs +0 -1816
  289. package/dist/lib/node-esm/chunk-7XQLXMX7.mjs.map +0 -7
  290. package/dist/lib/node-esm/chunk-AQHPP6ZX.mjs.map +0 -7
  291. package/dist/lib/node-esm/chunk-KRBZBJRI.mjs.map +0 -7
  292. package/dist/lib/node-esm/chunk-WMWUXWAS.mjs.map +0 -7
  293. package/dist/lib/node-esm/markdown-L6LLQLIN.mjs.map +0 -7
  294. package/dist/lib/node-esm/operation-resolver-G6GZPBRP.mjs.map +0 -7
  295. package/dist/lib/node-esm/react-root-V4W4X5GL.mjs.map +0 -7
  296. package/dist/lib/node-esm/react-surface-ELDSTUA3.mjs.map +0 -7
  297. package/dist/lib/node-esm/repair-6777EPOM.mjs +0 -39
  298. package/dist/lib/node-esm/repair-6777EPOM.mjs.map +0 -7
  299. package/dist/lib/node-esm/settings-37CO3SNR.mjs.map +0 -7
  300. package/dist/types/src/capabilities/repair/index.d.ts +0 -3
  301. package/dist/types/src/capabilities/repair/index.d.ts.map +0 -1
  302. package/dist/types/src/capabilities/repair/repair.d.ts +0 -6
  303. package/dist/types/src/capabilities/repair/repair.d.ts.map +0 -1
  304. package/dist/types/src/components/CallDebugPanel.d.ts.map +0 -1
  305. package/dist/types/src/components/CallSidebar.d.ts.map +0 -1
  306. package/dist/types/src/components/ChannelContainer.d.ts.map +0 -1
  307. package/dist/types/src/components/ChannelContainer.stories.d.ts.map +0 -1
  308. package/dist/types/src/components/Chat.stories.d.ts.map +0 -1
  309. package/dist/types/src/components/ChatContainer.d.ts.map +0 -1
  310. package/dist/types/src/components/Comments.stories.d.ts.map +0 -1
  311. package/dist/types/src/components/CommentsContainer.d.ts +0 -13
  312. package/dist/types/src/components/CommentsContainer.d.ts.map +0 -1
  313. package/dist/types/src/components/CommentsThreadContainer.d.ts.map +0 -1
  314. package/dist/types/src/components/MessageContainer.d.ts +0 -15
  315. package/dist/types/src/components/MessageContainer.d.ts.map +0 -1
  316. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.d.ts.map +0 -1
  317. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts.map +0 -1
  318. package/dist/types/src/components/ThreadCompanion.d.ts +0 -5
  319. package/dist/types/src/components/ThreadCompanion.d.ts.map +0 -1
  320. package/dist/types/src/components/ThreadSettings.d.ts.map +0 -1
  321. package/dist/types/src/components/command-extension.d.ts.map +0 -1
  322. package/dist/types/src/components/testing.d.ts.map +0 -1
  323. package/src/capabilities/repair/index.ts +0 -7
  324. package/src/capabilities/repair/repair.ts +0 -51
  325. /package/dist/lib/{node-esm/state-5R3TZJQE.mjs.map → browser/state-NQZQCDFD.mjs.map} +0 -0
  326. /package/src/{components/testing.ts → testing/data.ts} +0 -0
@@ -4,17 +4,15 @@
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
6
 
7
- import { Capability, Common, UndoMapping } from '@dxos/app-framework';
7
+ import { Capabilities, Capability, UndoMapping } from '@dxos/app-framework';
8
8
  import { sleep } from '@dxos/async';
9
- import { Obj, Relation, Type } from '@dxos/echo';
9
+ import { COMPANION_PREFIX } from '@dxos/app-toolkit';
10
+ import { Obj, Ref, Relation } from '@dxos/echo';
10
11
  import { invariant } from '@dxos/invariant';
11
- import { OperationResolver } from '@dxos/operation';
12
- import { Operation } from '@dxos/operation';
13
- import { ATTENDABLE_PATH_SEPARATOR, DeckOperation } from '@dxos/plugin-deck/types';
12
+ import { Operation, OperationResolver } from '@dxos/operation';
13
+ import { DeckOperation } from '@dxos/plugin-deck/types';
14
14
  import { ObservabilityOperation } from '@dxos/plugin-observability/types';
15
15
  import { SpaceOperation } from '@dxos/plugin-space/types';
16
- import { Ref } from '@dxos/react-client/echo';
17
- import { Collection } from '@dxos/schema';
18
16
  import { AnchoredTo, Message, Thread } from '@dxos/types';
19
17
 
20
18
  import { meta } from '../../meta';
@@ -23,7 +21,7 @@ import { Channel, ThreadCapabilities, ThreadOperation } from '../../types';
23
21
  export default Capability.makeModule(
24
22
  Effect.fnUntraced(function* () {
25
23
  return [
26
- Capability.contributes(Common.Capability.UndoMapping, [
24
+ Capability.contributes(Capabilities.UndoMapping, [
27
25
  UndoMapping.make({
28
26
  operation: ThreadOperation.Delete,
29
27
  inverse: ThreadOperation.Restore,
@@ -56,7 +54,7 @@ export default Capability.makeModule(
56
54
  message: ['message deleted label', { ns: meta.id }],
57
55
  }),
58
56
  ]),
59
- Capability.contributes(Common.Capability.OperationResolver, [
57
+ Capability.contributes(Capabilities.OperationResolver, [
60
58
  //
61
59
  // CreateChannel
62
60
  //
@@ -90,7 +88,7 @@ export default Capability.makeModule(
90
88
  OperationResolver.make({
91
89
  operation: ThreadOperation.Select,
92
90
  handler: Effect.fnUntraced(function* (input) {
93
- const registry = yield* Capability.get(Common.Capability.AtomRegistry);
91
+ const registry = yield* Capability.get(Capabilities.AtomRegistry);
94
92
  const stateAtom = yield* Capability.get(ThreadCapabilities.State);
95
93
  const current = registry.get(stateAtom);
96
94
  registry.set(stateAtom, { ...current, current: input.current });
@@ -131,16 +129,11 @@ export default Capability.makeModule(
131
129
  //
132
130
  OperationResolver.make({
133
131
  operation: ThreadOperation.OnCreateSpace,
134
- handler: Effect.fnUntraced(function* ({ space, isDefault, rootCollection }) {
132
+ handler: Effect.fnUntraced(function* ({ space, isDefault }) {
135
133
  if (isDefault) {
136
134
  return;
137
135
  }
138
136
 
139
- const collection = Collection.makeManaged({ key: Type.getTypename(Channel.Channel) });
140
- Obj.change(rootCollection, (c) => {
141
- c.objects.push(Ref.make(collection));
142
- });
143
-
144
137
  const { object: channel } = yield* Operation.invoke(ThreadOperation.CreateChannel, {
145
138
  name: 'General',
146
139
  spaceId: space.id,
@@ -155,7 +148,7 @@ export default Capability.makeModule(
155
148
  OperationResolver.make({
156
149
  operation: ThreadOperation.Create,
157
150
  handler: Effect.fnUntraced(function* ({ name, anchor: _anchor, subject }) {
158
- const registry = yield* Capability.get(Common.Capability.AtomRegistry);
151
+ const registry = yield* Capability.get(Capabilities.AtomRegistry);
159
152
  const stateAtom = yield* Capability.get(ThreadCapabilities.State);
160
153
  const subjectId = Obj.getDXN(subject).toString();
161
154
  const thread = Thread.make({ name });
@@ -178,8 +171,7 @@ export default Capability.makeModule(
178
171
  // Follow-up operations.
179
172
  yield* Operation.invoke(ThreadOperation.Select, { current: Obj.getDXN(thread).toString() });
180
173
  yield* Operation.invoke(DeckOperation.ChangeCompanion, {
181
- primary: subjectId,
182
- companion: `${subjectId}${ATTENDABLE_PATH_SEPARATOR}comments`,
174
+ companion: `${COMPANION_PREFIX}comments`,
183
175
  });
184
176
  }),
185
177
  }),
@@ -190,7 +182,7 @@ export default Capability.makeModule(
190
182
  OperationResolver.make({
191
183
  operation: ThreadOperation.Delete,
192
184
  handler: Effect.fnUntraced(function* ({ subject, anchor, thread: _thread }) {
193
- const registry = yield* Capability.get(Common.Capability.AtomRegistry);
185
+ const registry = yield* Capability.get(Capabilities.AtomRegistry);
194
186
  const stateAtom = yield* Capability.get(ThreadCapabilities.State);
195
187
  const thread = _thread ?? (Relation.getSource(anchor) as Thread.Thread);
196
188
  const subjectId = Obj.getDXN(subject).toString();
@@ -242,7 +234,7 @@ export default Capability.makeModule(
242
234
  OperationResolver.make({
243
235
  operation: ThreadOperation.AddMessage,
244
236
  handler: Effect.fnUntraced(function* ({ anchor, subject, sender, text }) {
245
- const registry = yield* Capability.get(Common.Capability.AtomRegistry);
237
+ const registry = yield* Capability.get(Capabilities.AtomRegistry);
246
238
  const stateAtom = yield* Capability.get(ThreadCapabilities.State);
247
239
  const thread = Relation.getSource(anchor) as Thread.Thread;
248
240
  const subjectId = Obj.getDXN(subject).toString();
@@ -5,14 +5,14 @@
5
5
  import * as Effect from 'effect/Effect';
6
6
  import React from 'react';
7
7
 
8
- import { Capability, Common } from '@dxos/app-framework';
8
+ import { Capabilities, Capability } from '@dxos/app-framework';
9
9
 
10
10
  import { Call } from '../../components';
11
11
  import { meta } from '../../meta';
12
12
 
13
13
  export default Capability.makeModule(() =>
14
14
  Effect.sync(() => {
15
- return Capability.contributes(Common.Capability.ReactRoot, {
15
+ return Capability.contributes(Capabilities.ReactRoot, {
16
16
  id: meta.id,
17
17
  root: () => <Call.Audio />,
18
18
  });
@@ -6,8 +6,9 @@ import { useAtomValue } from '@effect-atom/atom-react';
6
6
  import * as Effect from 'effect/Effect';
7
7
  import React from 'react';
8
8
 
9
- import { Capability, Common } from '@dxos/app-framework';
10
- import { useCapability, useSettingsState } from '@dxos/app-framework/react';
9
+ import { Capabilities, Capability } from '@dxos/app-framework';
10
+ import { Surface, useCapability, useSettingsState } from '@dxos/app-framework/ui';
11
+ import { AppCapabilities } from '@dxos/app-toolkit';
11
12
  import { Obj, type Ref } from '@dxos/echo';
12
13
  import { getSpace } from '@dxos/react-client/echo';
13
14
  import { Thread } from '@dxos/types';
@@ -19,21 +20,24 @@ import {
19
20
  ChatContainer,
20
21
  ThreadCompanion,
21
22
  ThreadSettings,
22
- } from '../../components';
23
+ } from '../../containers';
23
24
  import { meta } from '../../meta';
24
25
  import { Channel, ThreadCapabilities, type ThreadSettingsProps } from '../../types';
25
26
 
26
27
  export default Capability.makeModule(() =>
27
28
  Effect.succeed(
28
- Capability.contributes(Common.Capability.ReactSurface, [
29
- Common.createSurface({
30
- id: `${meta.id}/channel`,
29
+ Capability.contributes(Capabilities.ReactSurface, [
30
+ Surface.create({
31
+ id: `${meta.id}.channel`,
31
32
  role: 'article',
32
- filter: (data): data is { subject: Channel.Channel } => Obj.instanceOf(Channel.Channel, data.subject),
33
- component: ({ data: { subject }, role }) => <ChannelContainer role={role} subject={subject} />,
33
+ filter: (data): data is { attendableId: string; subject: Channel.Channel } =>
34
+ typeof data.attendableId === 'string' && Obj.instanceOf(Channel.Channel, data.subject),
35
+ component: ({ data: { subject, attendableId }, role }) => (
36
+ <ChannelContainer role={role} subject={subject} attendableId={attendableId} />
37
+ ),
34
38
  }),
35
- Common.createSurface({
36
- id: `${meta.id}/chat-companion`,
39
+ Surface.create({
40
+ id: `${meta.id}.chat-companion`,
37
41
  role: 'article',
38
42
  filter: (data): data is { companionTo: Channel.Channel; subject: 'chat' } =>
39
43
  Obj.instanceOf(Channel.Channel, data.companionTo) && data.subject === 'chat',
@@ -47,8 +51,8 @@ export default Capability.makeModule(() =>
47
51
  return <ChatContainer thread={thread} space={space} />;
48
52
  },
49
53
  }),
50
- Common.createSurface({
51
- id: `${meta.id}/thread`,
54
+ Surface.create({
55
+ id: `${meta.id}.thread`,
52
56
  role: 'article',
53
57
  filter: (data): data is { subject: Thread.Thread } => Obj.instanceOf(Thread.Thread, data.subject),
54
58
  component: ({ data: { subject } }) => {
@@ -60,31 +64,31 @@ export default Capability.makeModule(() =>
60
64
  return <ChatContainer thread={subject} space={space} />;
61
65
  },
62
66
  }),
63
- Common.createSurface({
64
- id: `${meta.id}/comments`,
67
+ Surface.create({
68
+ id: `${meta.id}.comments`,
65
69
  role: 'article',
66
- filter: (data): data is { companionTo: { threads: Ref.Ref<Thread.Thread>[] } } =>
70
+ filter: (data): data is { attendableId?: string; companionTo: { threads: Ref.Ref<Thread.Thread>[] } } =>
67
71
  data.subject === 'comments' && Obj.isObject(data.companionTo),
68
72
  // TODO(wittjosiah): This isn't scrolling properly in a plank.
69
- component: ({ data }) => <ThreadCompanion subject={data.companionTo} />,
73
+ component: ({ data }) => <ThreadCompanion attendableId={data.attendableId} subject={data.companionTo} />,
70
74
  }),
71
- Common.createSurface({
72
- id: `${meta.id}/plugin-settings`,
75
+ Surface.create({
76
+ id: `${meta.id}.plugin-settings`,
73
77
  role: 'article',
74
- filter: (data): data is { subject: Common.Capability.Settings } =>
75
- Common.Capability.isSettings(data.subject) && data.subject.prefix === meta.id,
78
+ filter: (data): data is { subject: AppCapabilities.Settings } =>
79
+ AppCapabilities.isSettings(data.subject) && data.subject.prefix === meta.id,
76
80
  component: ({ data: { subject } }) => {
77
81
  const { settings, updateSettings } = useSettingsState<ThreadSettingsProps>(subject.atom);
78
82
  return <ThreadSettings settings={settings} onSettingsChange={updateSettings} />;
79
83
  },
80
84
  }),
81
- Common.createSurface({
82
- id: `${meta.id}/assistant`,
85
+ Surface.create({
86
+ id: `${meta.id}.assistant`,
83
87
  role: 'deck-companion--active-call',
84
88
  component: () => <CallSidebar />,
85
89
  }),
86
- Common.createSurface({
87
- id: `${meta.id}/devtools-overview`,
90
+ Surface.create({
91
+ id: `${meta.id}.devtools-overview`,
88
92
  role: 'devtools-overview',
89
93
  component: () => {
90
94
  const call = useCapability(ThreadCapabilities.CallManager);
@@ -4,7 +4,8 @@
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
6
 
7
- import { Capability, Common } from '@dxos/app-framework';
7
+ import { Capability } from '@dxos/app-framework';
8
+ import { AppCapabilities } from '@dxos/app-toolkit';
8
9
  import { createKvsStore } from '@dxos/effect';
9
10
 
10
11
  import { meta } from '../../meta';
@@ -23,7 +24,7 @@ export default Capability.makeModule(() =>
23
24
  // Expose atom directly for programmatic access.
24
25
  Capability.contributes(ThreadCapabilities.Settings, settingsAtom),
25
26
  // Contribute to common settings for UI discovery.
26
- Capability.contributes(Common.Capability.Settings, {
27
+ Capability.contributes(AppCapabilities.Settings, {
27
28
  prefix: meta.id,
28
29
  schema: ThreadSettingsSchema,
29
30
  atom: settingsAtom,
@@ -5,7 +5,7 @@
5
5
  import { useAtomValue } from '@effect-atom/atom-react';
6
6
  import React, { type FC, type PropsWithChildren } from 'react';
7
7
 
8
- import { useCapability } from '@dxos/app-framework/react';
8
+ import { useCapability } from '@dxos/app-framework/ui';
9
9
  import { type ThemedClassName } from '@dxos/react-ui';
10
10
 
11
11
  import { useDebugMode } from '../../hooks';
@@ -5,7 +5,8 @@
5
5
  import { useAtomValue } from '@effect-atom/atom-react';
6
6
  import React from 'react';
7
7
 
8
- import { useAppGraph, useCapability } from '@dxos/app-framework/react';
8
+ import { useCapability } from '@dxos/app-framework/ui';
9
+ import { useAppGraph } from '@dxos/app-toolkit/ui';
9
10
  import { Obj } from '@dxos/echo';
10
11
  import { Node, useActionRunner } from '@dxos/plugin-graph';
11
12
  import { useActions, useNode } from '@dxos/plugin-graph';
@@ -62,7 +63,7 @@ export const Toolbar = ({
62
63
  // TODO(wittjosiah): In order to use toolbar, need to update to actually use the graph action callbacks directly.
63
64
  return (
64
65
  <div className={mx('z-20 flex justify-center m-8', autoHideControls && groupHoverControlItemWithTransition)}>
65
- <NaturalToolbar.Root classNames={['p-2 bg-modalSurface rounded-md shadow-md', classNames]}>
66
+ <NaturalToolbar.Root classNames={['p-2 bg-modal-surface rounded-md shadow-md', classNames]}>
66
67
  <ToggleButton
67
68
  active={media.audioEnabled}
68
69
  state={{
@@ -70,13 +71,12 @@ export const Toolbar = ({
70
71
  icon: 'ph--microphone--regular',
71
72
  label: t('mic off'),
72
73
  onClick: () => call.turnAudioOff(),
73
- classNames: 'bg-callActive',
74
+ classNames: 'bg-call-active',
74
75
  },
75
76
  off: {
76
77
  icon: 'ph--microphone-slash--duotone',
77
78
  label: t('mic on'),
78
79
  onClick: () => call.turnAudioOn(),
79
- classNames: [joined && 'bg-callAlert'],
80
80
  },
81
81
  }}
82
82
  />
@@ -97,7 +97,7 @@ export const Toolbar = ({
97
97
  />
98
98
 
99
99
  {(participants !== undefined && (
100
- <div className='flex justify-center items-center gap-2 is-[5rem] text-xs text-subdued'>
100
+ <div className='flex justify-center items-center gap-2 w-[5rem] text-xs text-subdued'>
101
101
  <Icon icon='ph--users--regular' size={4} />
102
102
  <div>{participants}</div>
103
103
  </div>
@@ -143,7 +143,6 @@ export const Toolbar = ({
143
143
  icon: 'ph--hand-waving--regular',
144
144
  label: t('lower hand'),
145
145
  onClick: () => call.setRaisedHand(false),
146
- classNames: [joined && 'bg-callAlert'],
147
146
  },
148
147
  off: {
149
148
  icon: 'ph--hand-palm--duotone',
@@ -182,7 +181,7 @@ const defaultButtonProps: Partial<IconButtonProps> = {
182
181
  const ToggleButton = ({ active, state }: ToolbarButtonProps) => (
183
182
  <IconButton
184
183
  {...defaultButtonProps}
185
- classNames={[active ? (state.on.classNames ?? 'bg-callActive') : state.off.classNames]}
184
+ classNames={[active ? (state.on.classNames ?? 'bg-call-active') : state.off.classNames]}
186
185
  icon={active ? state.on.icon : state.off.icon}
187
186
  label={active ? state.on.label : state.off.label}
188
187
  onClick={active ? state.on.onClick : state.off.onClick}
@@ -6,7 +6,7 @@ import { type Meta, type StoryObj } from '@storybook/react-vite';
6
6
  import * as Effect from 'effect/Effect';
7
7
  import React from 'react';
8
8
 
9
- import { OperationPlugin } from '@dxos/app-framework';
9
+ import { OperationPlugin, RuntimePlugin } from '@dxos/app-framework';
10
10
  import { withPluginManager } from '@dxos/app-framework/testing';
11
11
  import { Obj, Query, Relation } from '@dxos/echo';
12
12
  import { TestSchema } from '@dxos/echo/testing';
@@ -15,14 +15,13 @@ import { faker } from '@dxos/random';
15
15
  import { useDatabase, useQuery } from '@dxos/react-client/echo';
16
16
  import { useIdentity } from '@dxos/react-client/halo';
17
17
  import { useAsyncEffect } from '@dxos/react-ui';
18
- import { withLayout, withTheme } from '@dxos/react-ui/testing';
19
- import { render } from '@dxos/storybook-utils';
18
+ import { withLayout, withTheme, Loading } from '@dxos/react-ui/testing';
20
19
  import { AnchoredTo, Message, Thread } from '@dxos/types';
21
20
 
22
- import { translations } from '../translations';
21
+ import { translations } from '../../translations';
23
22
 
24
- import { CommentsContainer } from './CommentsContainer';
25
- import { createCommentThread, createProposalThread } from './testing';
23
+ import { CommentsPanel } from './CommentsPanel';
24
+ import { createCommentThread, createProposalThread } from '../../testing/data';
26
25
 
27
26
  faker.seed(1);
28
27
 
@@ -54,23 +53,24 @@ const DefaultStory = () => {
54
53
  }, [identity, db]);
55
54
 
56
55
  if (!identity || !db || !anchors) {
57
- return null;
56
+ return <Loading data={{ identity: !!identity, db: !!db, anchors: !!anchors }} />;
58
57
  }
59
58
 
60
- return <CommentsContainer anchors={anchors} onThreadDelete={console.log} onAcceptProposal={console.log} />;
59
+ return <CommentsPanel anchors={anchors} onThreadDelete={console.log} onAcceptProposal={console.log} />;
61
60
  };
62
61
 
63
62
  const meta = {
64
- title: 'plugins/plugin-thread/Comments',
65
- render: render(DefaultStory),
63
+ title: 'plugins/plugin-thread/components/Comments',
64
+ render: DefaultStory,
66
65
  decorators: [
67
- withTheme,
68
- withLayout({ layout: 'column', scroll: true }),
66
+ withTheme(),
67
+ withLayout({ layout: 'column' }),
69
68
  // TODO(wittjosiah): This shouldn't depend on app framework (use withClientProvider instead).
70
69
  // Currently this is required due to useOnEditAnalytics.
71
70
  withPluginManager({
72
71
  plugins: [
73
72
  OperationPlugin(),
73
+ RuntimePlugin(),
74
74
  ClientPlugin({
75
75
  types: [Message.Message, Thread.Thread, AnchoredTo.AnchoredTo],
76
76
  onClientInitialized: ({ client }) =>
@@ -5,14 +5,14 @@
5
5
  import React, { useEffect } from 'react';
6
6
 
7
7
  import { Obj, Relation } from '@dxos/echo';
8
- import { Callout, Icon, Trans, useTranslation } from '@dxos/react-ui';
8
+ import { Icon, Message, Trans, useTranslation } from '@dxos/react-ui';
9
9
  import { type AnchoredTo, type Thread } from '@dxos/types';
10
10
 
11
- import { meta } from '../meta';
11
+ import { meta } from '../../meta';
12
12
 
13
- import { CommentsThreadContainer, type CommentsThreadContainerProps } from './CommentsThreadContainer';
13
+ import { CommentsThread, type CommentsThreadProps } from './CommentsThread';
14
14
 
15
- export type CommentsContainerProps = Omit<CommentsThreadContainerProps, 'anchor' | 'current'> & {
15
+ export type CommentsPanelProps = Omit<CommentsThreadProps, 'anchor' | 'current'> & {
16
16
  anchors: AnchoredTo.AnchoredTo[];
17
17
  currentId?: string;
18
18
  showResolvedThreads?: boolean;
@@ -21,7 +21,7 @@ export type CommentsContainerProps = Omit<CommentsThreadContainerProps, 'anchor'
21
21
  /**
22
22
  * Root container for collection of comment threads.
23
23
  */
24
- export const CommentsContainer = ({ anchors, currentId, showResolvedThreads, ...props }: CommentsContainerProps) => {
24
+ export const CommentsPanel = ({ anchors, currentId, showResolvedThreads, ...props }: CommentsPanelProps) => {
25
25
  const { t } = useTranslation(meta.id);
26
26
 
27
27
  // TODO(wittjosiah): There seems to be a race between thread and anchor being deleted.
@@ -29,7 +29,8 @@ export const CommentsContainer = ({ anchors, currentId, showResolvedThreads, ...
29
29
  ? anchors.filter((anchor) => !!Relation.getSource(anchor))
30
30
  : anchors.filter((anchor) => {
31
31
  const thread = Relation.getSource(anchor);
32
- return thread && thread.status !== 'resolved';
32
+ // TODO(dmaretskyi): Do Obj.instanceOf check instead.
33
+ return thread && (thread as any).status !== 'resolved';
33
34
  });
34
35
 
35
36
  useEffect(() => {
@@ -40,20 +41,20 @@ export const CommentsContainer = ({ anchors, currentId, showResolvedThreads, ...
40
41
 
41
42
  if (filteredAnchors.length === 0) {
42
43
  return (
43
- <div role='none' className='plb-cardSpacingBlock pli-cardSpacingInline'>
44
- <Callout.Root>
45
- <Callout.Title>
44
+ <div role='none' className='p-form-padding'>
45
+ <Message.Root>
46
+ <Message.Title>
46
47
  <Trans
47
48
  {...{
48
49
  t,
49
50
  i18nKey: 'no comments message',
50
51
  components: {
51
- commentIcon: <Icon icon='ph--chat-text--regular' size={4} classNames='inline-block' />,
52
+ commentIcon: <Icon icon='ph--chat-text--regular' size={4} classNames='w-block' />,
52
53
  },
53
54
  }}
54
55
  />
55
- </Callout.Title>
56
- </Callout.Root>
56
+ </Message.Title>
57
+ </Message.Root>
57
58
  </div>
58
59
  );
59
60
  }
@@ -63,7 +64,7 @@ export const CommentsContainer = ({ anchors, currentId, showResolvedThreads, ...
63
64
  {filteredAnchors.map((anchor) => {
64
65
  const thread = Relation.getSource(anchor) as Thread.Thread;
65
66
  const threadId = Obj.getDXN(thread).toString();
66
- return <CommentsThreadContainer key={threadId} anchor={anchor} current={currentId === threadId} {...props} />;
67
+ return <CommentsThread key={threadId} anchor={anchor} current={currentId === threadId} {...props} />;
67
68
  })}
68
69
  </div>
69
70
  );
@@ -19,14 +19,14 @@ import { type AnchoredTo, type Thread } from '@dxos/types';
19
19
  import { createBasicExtensions, createThemeExtensions, listener } from '@dxos/ui-editor';
20
20
  import { hoverableControlItem, hoverableControls, hoverableFocusedWithinControls, mx } from '@dxos/ui-theme';
21
21
 
22
- import { useStatus } from '../hooks';
23
- import { meta } from '../meta';
24
- import { getMessageMetadata } from '../util';
22
+ import { useStatus } from '../../hooks';
23
+ import { meta } from '../../meta';
24
+ import { getMessageMetadata } from '../../util';
25
25
 
26
- import { command } from './command-extension';
27
- import { MessageContainer, buttonClassNames, buttonGroupClassNames } from './MessageContainer';
26
+ import { command } from '../../extensions/command';
27
+ import { MessagePanel, buttonClassNames, buttonGroupClassNames } from '../MessagePanel';
28
28
 
29
- export type CommentsThreadContainerProps = {
29
+ export type CommentsThreadProps = {
30
30
  anchor: AnchoredTo.AnchoredTo;
31
31
  onAttend?: (anchor: AnchoredTo.AnchoredTo) => void;
32
32
  onComment?: (anchor: AnchoredTo.AnchoredTo, message: string) => void;
@@ -36,7 +36,7 @@ export type CommentsThreadContainerProps = {
36
36
  onAcceptProposal?: (anchor: AnchoredTo.AnchoredTo, messageId: string) => void;
37
37
  } & Pick<ThreadRootProps, 'current'>;
38
38
 
39
- export const CommentsThreadContainer = ({
39
+ export const CommentsThread = ({
40
40
  anchor,
41
41
  current,
42
42
  onAttend,
@@ -45,7 +45,7 @@ export const CommentsThreadContainer = ({
45
45
  onMessageDelete,
46
46
  onThreadDelete,
47
47
  onAcceptProposal,
48
- }: CommentsThreadContainerProps) => {
48
+ }: CommentsThreadProps) => {
49
49
  const { themeMode } = useThemeContext();
50
50
  const { t } = useTranslation(meta.id);
51
51
  const identity = useIdentity()!;
@@ -98,7 +98,7 @@ export const CommentsThreadContainer = ({
98
98
  return (
99
99
  <ThreadComponent.Root
100
100
  id={Obj.getDXN(thread).toString()}
101
- classNames='pbs-2 border-be border-subduedSeparator last:border-none'
101
+ classNames='pt-2 border-b border-subdued-separator last:border-none'
102
102
  current={current}
103
103
  onClickCapture={handleAttend}
104
104
  onFocusCapture={handleAttend}
@@ -106,7 +106,7 @@ export const CommentsThreadContainer = ({
106
106
  <div
107
107
  role='none'
108
108
  className={mx(
109
- 'col-span-2 grid grid-cols-[var(--rail-size)_1fr_min-content]',
109
+ 'col-span-2 grid grid-cols-[var(--dx-rail-size)_1fr_min-content]',
110
110
  hoverableControls,
111
111
  hoverableFocusedWithinControls,
112
112
  )}
@@ -146,7 +146,7 @@ export const CommentsThreadContainer = ({
146
146
  </div>
147
147
 
148
148
  {messages?.map((ref) => (
149
- <MessageContainer
149
+ <MessagePanel
150
150
  key={ref.dxn.toString()}
151
151
  editable
152
152
  message={ref}
@@ -166,8 +166,7 @@ export const CommentsThreadContainer = ({
166
166
 
167
167
  <ThreadComponent.Status activity={activity}>{t('activity message')}</ThreadComponent.Status>
168
168
 
169
- {/* NOTE(thure): This can’t also be the `overflow-anchor` because `ScrollArea` injects an interceding node that contains this necessary ref’d element. */}
170
- <div role='none' className='bs-px -mbs-px' ref={threadScrollRef} />
169
+ <div role='none' className='h-px -mt-px' ref={threadScrollRef} />
171
170
  </ThreadComponent.Root>
172
171
  );
173
172
  };
@@ -0,0 +1,6 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ export * from './CommentsPanel';
6
+ export * from './CommentsThread';
@@ -5,7 +5,7 @@
5
5
  import { useAtomValue } from '@effect-atom/atom-react';
6
6
  import React, { type FC, type PropsWithChildren, useEffect, useState } from 'react';
7
7
 
8
- import { useCapability } from '@dxos/app-framework/react';
8
+ import { useCapability } from '@dxos/app-framework/ui';
9
9
  import { type ThemedClassName, useTranslation } from '@dxos/react-ui';
10
10
  import { mx } from '@dxos/ui-theme';
11
11
 
@@ -13,7 +13,7 @@ import { meta } from '../../meta';
13
13
  import { ThreadCapabilities } from '../../types';
14
14
  import { Toolbar, type ToolbarProps } from '../Call';
15
15
  import { VideoObject } from '../Media';
16
- import { ResponsiveContainer } from '../ResponsiveGrid';
16
+ import { ResponsivePanel } from '../ResponsiveGrid';
17
17
 
18
18
  // TODO(wittjosiah): Repurpose lobby for preview.
19
19
 
@@ -58,7 +58,7 @@ const LobbyPreview: FC<LobbyPreviewProps> = () => {
58
58
 
59
59
  return (
60
60
  <div className='grid grow p-4'>
61
- <ResponsiveContainer>
61
+ <ResponsivePanel>
62
62
  {(media.videoEnabled && (
63
63
  <VideoObject
64
64
  videoStream={media.videoStream}
@@ -70,7 +70,7 @@ const LobbyPreview: FC<LobbyPreviewProps> = () => {
70
70
  )}
71
71
  />
72
72
  )) || <div className='p-4 outline outline-separator rounded-md'>{t('camera off label')}</div>}
73
- </ResponsiveContainer>
73
+ </ResponsivePanel>
74
74
  </div>
75
75
  );
76
76
  };
@@ -8,10 +8,10 @@ import React, { useEffect, useState } from 'react';
8
8
  import { scheduleTask } from '@dxos/async';
9
9
  import { Context } from '@dxos/context';
10
10
  import { log } from '@dxos/log';
11
- import { withTheme } from '@dxos/react-ui/testing';
11
+ import { withLayout, withTheme } from '@dxos/react-ui/testing';
12
12
 
13
13
  import { getUserMediaTrack } from '../../calls';
14
- import { ResponsiveContainer } from '../ResponsiveGrid';
14
+ import { ResponsivePanel } from '../ResponsiveGrid';
15
15
 
16
16
  import { VideoObject, type VideoObjectProps } from './VideoObject';
17
17
 
@@ -37,17 +37,17 @@ const DefaultStory = (props: VideoObjectProps) => {
37
37
  }, []);
38
38
 
39
39
  return (
40
- <ResponsiveContainer>
40
+ <ResponsivePanel>
41
41
  <VideoObject videoStream={videoStream} flip {...props} />
42
- </ResponsiveContainer>
42
+ </ResponsivePanel>
43
43
  );
44
44
  };
45
45
 
46
46
  const meta = {
47
- title: 'plugins/plugin-thread/VideoObject',
47
+ title: 'plugins/plugin-thread/components/VideoObject',
48
48
  component: VideoObject,
49
49
  render: DefaultStory,
50
- decorators: [withTheme],
50
+ decorators: [withTheme(), withLayout({ layout: 'fullscreen' })],
51
51
  parameters: {
52
52
  layout: 'fullscreen',
53
53
  },
@@ -32,7 +32,7 @@ export const VideoObject = memo(
32
32
  return (
33
33
  <video
34
34
  className={mx(
35
- 'is-full aspect-video',
35
+ 'w-full aspect-video',
36
36
  flip && 'scale-x-[-1]',
37
37
  contain ? 'object-contain' : 'object-cover',
38
38
  classNames,