@dxos/plugin-thread 0.8.4-main.1068cf700f → 0.8.4-main.1c7ec43d41

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 (507) hide show
  1. package/dist/lib/browser/add-message-3FTZANTW.mjs +89 -0
  2. package/dist/lib/browser/add-message-3FTZANTW.mjs.map +7 -0
  3. package/dist/lib/browser/append-channel-message-CO3M6FSA.mjs +40 -0
  4. package/dist/lib/browser/append-channel-message-CO3M6FSA.mjs.map +7 -0
  5. package/dist/lib/browser/blueprints/index.mjs +33 -4
  6. package/dist/lib/browser/blueprints/index.mjs.map +4 -4
  7. package/dist/lib/browser/chunk-MR4CWITF.mjs +31 -0
  8. package/dist/lib/browser/chunk-MR4CWITF.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-TPNZ43NB.mjs +258 -0
  10. package/dist/lib/browser/chunk-TPNZ43NB.mjs.map +7 -0
  11. package/dist/lib/browser/create-GMUAPFZM.mjs +55 -0
  12. package/dist/lib/browser/create-GMUAPFZM.mjs.map +7 -0
  13. package/dist/lib/browser/create-channel-ZXKSLHGN.mjs +19 -0
  14. package/dist/lib/browser/create-channel-ZXKSLHGN.mjs.map +7 -0
  15. package/dist/lib/browser/create-proposals-AV5CREPV.mjs +56 -0
  16. package/dist/lib/browser/create-proposals-AV5CREPV.mjs.map +7 -0
  17. package/dist/lib/browser/delete-673YOWCG.mjs +59 -0
  18. package/dist/lib/browser/delete-673YOWCG.mjs.map +7 -0
  19. package/dist/lib/browser/delete-message-RQ72ZY5D.mjs +55 -0
  20. package/dist/lib/browser/delete-message-RQ72ZY5D.mjs.map +7 -0
  21. package/dist/lib/browser/index.mjs +1770 -270
  22. package/dist/lib/browser/index.mjs.map +4 -4
  23. package/dist/lib/browser/meta.json +1 -1
  24. package/dist/lib/browser/on-create-space-SPE3QVFZ.mjs +24 -0
  25. package/dist/lib/browser/on-create-space-SPE3QVFZ.mjs.map +7 -0
  26. package/dist/lib/browser/operations/index.mjs +13 -0
  27. package/dist/lib/browser/operations/index.mjs.map +7 -0
  28. package/dist/lib/browser/restore-VX7FLZOZ.mjs +32 -0
  29. package/dist/lib/browser/restore-VX7FLZOZ.mjs.map +7 -0
  30. package/dist/lib/browser/restore-message-D65NSWUA.mjs +33 -0
  31. package/dist/lib/browser/restore-message-D65NSWUA.mjs.map +7 -0
  32. package/dist/lib/browser/select-DO4AYSCB.mjs +26 -0
  33. package/dist/lib/browser/select-DO4AYSCB.mjs.map +7 -0
  34. package/dist/lib/browser/toggle-resolved-JD3D4WBZ.mjs +36 -0
  35. package/dist/lib/browser/toggle-resolved-JD3D4WBZ.mjs.map +7 -0
  36. package/dist/lib/browser/translations.mjs +90 -0
  37. package/dist/lib/browser/translations.mjs.map +7 -0
  38. package/dist/lib/browser/types/index.mjs +5 -9
  39. package/dist/lib/node-esm/add-message-56J2HLJB.mjs +90 -0
  40. package/dist/lib/node-esm/add-message-56J2HLJB.mjs.map +7 -0
  41. package/dist/lib/node-esm/append-channel-message-F7KGBSWP.mjs +41 -0
  42. package/dist/lib/node-esm/append-channel-message-F7KGBSWP.mjs.map +7 -0
  43. package/dist/lib/node-esm/blueprints/index.mjs +33 -4
  44. package/dist/lib/node-esm/blueprints/index.mjs.map +4 -4
  45. package/dist/lib/node-esm/chunk-L6UL3NVS.mjs +32 -0
  46. package/dist/lib/node-esm/chunk-L6UL3NVS.mjs.map +7 -0
  47. package/dist/lib/node-esm/chunk-XKUMDYGR.mjs +259 -0
  48. package/dist/lib/node-esm/chunk-XKUMDYGR.mjs.map +7 -0
  49. package/dist/lib/node-esm/create-LEXHIPUT.mjs +56 -0
  50. package/dist/lib/node-esm/create-LEXHIPUT.mjs.map +7 -0
  51. package/dist/lib/node-esm/create-channel-6VHTC2OR.mjs +20 -0
  52. package/dist/lib/node-esm/create-channel-6VHTC2OR.mjs.map +7 -0
  53. package/dist/lib/node-esm/create-proposals-P5O2ICOL.mjs +57 -0
  54. package/dist/lib/node-esm/create-proposals-P5O2ICOL.mjs.map +7 -0
  55. package/dist/lib/node-esm/delete-4KSU4UEJ.mjs +60 -0
  56. package/dist/lib/node-esm/delete-4KSU4UEJ.mjs.map +7 -0
  57. package/dist/lib/node-esm/delete-message-PGNLB6TL.mjs +56 -0
  58. package/dist/lib/node-esm/delete-message-PGNLB6TL.mjs.map +7 -0
  59. package/dist/lib/node-esm/index.mjs +1770 -270
  60. package/dist/lib/node-esm/index.mjs.map +4 -4
  61. package/dist/lib/node-esm/meta.json +1 -1
  62. package/dist/lib/node-esm/on-create-space-TFBSHWQ4.mjs +25 -0
  63. package/dist/lib/node-esm/on-create-space-TFBSHWQ4.mjs.map +7 -0
  64. package/dist/lib/node-esm/operations/index.mjs +14 -0
  65. package/dist/lib/node-esm/operations/index.mjs.map +7 -0
  66. package/dist/lib/node-esm/restore-E27OAIFJ.mjs +33 -0
  67. package/dist/lib/node-esm/restore-E27OAIFJ.mjs.map +7 -0
  68. package/dist/lib/node-esm/restore-message-J3CH6NGI.mjs +34 -0
  69. package/dist/lib/node-esm/restore-message-J3CH6NGI.mjs.map +7 -0
  70. package/dist/lib/node-esm/select-NDHRM75K.mjs +27 -0
  71. package/dist/lib/node-esm/select-NDHRM75K.mjs.map +7 -0
  72. package/dist/lib/node-esm/toggle-resolved-VS6NKXL3.mjs +37 -0
  73. package/dist/lib/node-esm/toggle-resolved-VS6NKXL3.mjs.map +7 -0
  74. package/dist/lib/node-esm/translations.mjs +91 -0
  75. package/dist/lib/node-esm/translations.mjs.map +7 -0
  76. package/dist/lib/node-esm/types/index.mjs +5 -9
  77. package/dist/types/src/ThreadPlugin.d.ts +1 -0
  78. package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
  79. package/dist/types/src/ThreadPlugin.node.d.ts +4 -0
  80. package/dist/types/src/ThreadPlugin.node.d.ts.map +1 -0
  81. package/dist/types/src/ThreadPlugin.test.d.ts +2 -0
  82. package/dist/types/src/ThreadPlugin.test.d.ts.map +1 -0
  83. package/dist/types/src/blueprints/index.d.ts +1 -1
  84. package/dist/types/src/blueprints/index.d.ts.map +1 -1
  85. package/dist/types/src/blueprints/thread-blueprint.d.ts +3 -20
  86. package/dist/types/src/blueprints/thread-blueprint.d.ts.map +1 -1
  87. package/dist/types/src/calls/call-manager.d.ts.map +1 -1
  88. package/dist/types/src/calls/call-swarm-synchronizer.d.ts.map +1 -1
  89. package/dist/types/src/calls/media-manager.d.ts.map +1 -1
  90. package/dist/types/src/calls/speaking-monitor.d.ts +0 -3
  91. package/dist/types/src/calls/speaking-monitor.d.ts.map +1 -1
  92. package/dist/types/src/calls/types.d.ts.map +1 -1
  93. package/dist/types/src/calls/util/audio.d.ts.map +1 -1
  94. package/dist/types/src/calls/util/calls-service.d.ts +2 -2
  95. package/dist/types/src/calls/util/calls-service.d.ts.map +1 -1
  96. package/dist/types/src/calls/util/history-cache.d.ts.map +1 -1
  97. package/dist/types/src/calls/util/media.d.ts.map +1 -1
  98. package/dist/types/src/calls/util/stub-media-streams.d.ts.map +1 -1
  99. package/dist/types/src/calls/util/task-scheduling.d.ts.map +1 -1
  100. package/dist/types/src/calls-service.stories.d.ts +2 -2
  101. package/dist/types/src/calls-service.stories.d.ts.map +1 -1
  102. package/dist/types/src/capabilities/app-graph-builder.d.ts +6 -0
  103. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  104. package/dist/types/src/capabilities/blueprint-definition.d.ts +6 -0
  105. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  106. package/dist/types/src/capabilities/call-manager.d.ts +6 -0
  107. package/dist/types/src/capabilities/call-manager.d.ts.map +1 -0
  108. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  109. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  110. package/dist/types/src/capabilities/index.d.ts +21 -10
  111. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  112. package/dist/types/src/capabilities/markdown.d.ts +5 -0
  113. package/dist/types/src/capabilities/markdown.d.ts.map +1 -0
  114. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  115. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  116. package/dist/types/src/capabilities/{react-root/react-root.d.ts → react-root.d.ts} +1 -1
  117. package/dist/types/src/capabilities/react-root.d.ts.map +1 -0
  118. package/dist/types/src/capabilities/react-surface.d.ts +5 -0
  119. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  120. package/dist/types/src/capabilities/settings.d.ts +7 -0
  121. package/dist/types/src/capabilities/settings.d.ts.map +1 -0
  122. package/dist/types/src/capabilities/state.d.ts +7 -0
  123. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  124. package/dist/types/src/capabilities/undo-mappings.d.ts +5 -0
  125. package/dist/types/src/capabilities/undo-mappings.d.ts.map +1 -0
  126. package/dist/types/src/components/Call/Call.d.ts +32 -4
  127. package/dist/types/src/components/Call/Call.d.ts.map +1 -1
  128. package/dist/types/src/components/Call/Toolbar.d.ts +5 -5
  129. package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
  130. package/dist/types/src/components/Chat/Chat.d.ts +51 -0
  131. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -0
  132. package/dist/types/src/components/Chat/index.d.ts +2 -0
  133. package/dist/types/src/components/Chat/index.d.ts.map +1 -0
  134. package/dist/types/src/components/CommentsPanel/CommentsPanel.d.ts +13 -0
  135. package/dist/types/src/components/CommentsPanel/CommentsPanel.d.ts.map +1 -0
  136. package/dist/types/src/components/CommentsPanel/CommentsPanel.stories.d.ts +160 -0
  137. package/dist/types/src/components/CommentsPanel/CommentsPanel.stories.d.ts.map +1 -0
  138. package/dist/types/src/components/{CommentsThreadContainer.d.ts → CommentsPanel/CommentsThread.d.ts} +3 -3
  139. package/dist/types/src/components/CommentsPanel/CommentsThread.d.ts.map +1 -0
  140. package/dist/types/src/components/CommentsPanel/index.d.ts +3 -0
  141. package/dist/types/src/components/CommentsPanel/index.d.ts.map +1 -0
  142. package/dist/types/src/components/Lobby/Lobby.d.ts +24 -3
  143. package/dist/types/src/components/Lobby/Lobby.d.ts.map +1 -1
  144. package/dist/types/src/components/Media/VideoObject.d.ts +1 -1
  145. package/dist/types/src/components/Media/VideoObject.stories.d.ts +1 -1
  146. package/dist/types/src/components/Media/VideoObject.stories.d.ts.map +1 -1
  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/Participant/Participant.d.ts.map +1 -1
  152. package/dist/types/src/components/Participant/ParticipantGrid.d.ts.map +1 -1
  153. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.d.ts.map +1 -1
  154. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +142 -144
  155. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts.map +1 -1
  156. package/dist/types/src/components/ResponsiveGrid/ResponsiveGridItem.d.ts.map +1 -1
  157. package/dist/types/src/components/ResponsiveGrid/{ResponsiveContainer.d.ts → ResponsivePanel.d.ts} +4 -4
  158. package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.d.ts.map +1 -0
  159. package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.stories.d.ts +164 -0
  160. package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.stories.d.ts.map +1 -0
  161. package/dist/types/src/components/ResponsiveGrid/index.d.ts +1 -1
  162. package/dist/types/src/components/ResponsiveGrid/index.d.ts.map +1 -1
  163. package/dist/types/src/components/ThreadSettings/ThreadSettings.d.ts +6 -0
  164. package/dist/types/src/components/ThreadSettings/ThreadSettings.d.ts.map +1 -0
  165. package/dist/types/src/components/ThreadSettings/ThreadSettings.stories.d.ts +161 -0
  166. package/dist/types/src/components/ThreadSettings/ThreadSettings.stories.d.ts.map +1 -0
  167. package/dist/types/src/components/ThreadSettings/index.d.ts +2 -0
  168. package/dist/types/src/components/ThreadSettings/index.d.ts.map +1 -0
  169. package/dist/types/src/components/index.d.ts +5 -9
  170. package/dist/types/src/components/index.d.ts.map +1 -1
  171. package/dist/types/src/{components → containers/CallDebugPanel}/CallDebugPanel.d.ts +1 -1
  172. package/dist/types/src/containers/CallDebugPanel/CallDebugPanel.d.ts.map +1 -0
  173. package/dist/types/src/containers/CallDebugPanel/index.d.ts +2 -0
  174. package/dist/types/src/containers/CallDebugPanel/index.d.ts.map +1 -0
  175. package/dist/types/src/{components → containers/CallSidebar}/CallSidebar.d.ts +0 -1
  176. package/dist/types/src/containers/CallSidebar/CallSidebar.d.ts.map +1 -0
  177. package/dist/types/src/containers/CallSidebar/index.d.ts +2 -0
  178. package/dist/types/src/containers/CallSidebar/index.d.ts.map +1 -0
  179. package/dist/types/src/containers/ChannelChat/ChannelChat.d.ts +20 -0
  180. package/dist/types/src/containers/ChannelChat/ChannelChat.d.ts.map +1 -0
  181. package/dist/types/src/containers/ChannelChat/index.d.ts +4 -0
  182. package/dist/types/src/containers/ChannelChat/index.d.ts.map +1 -0
  183. package/dist/types/src/containers/ChannelContainer/ChannelContainer.d.ts +12 -0
  184. package/dist/types/src/containers/ChannelContainer/ChannelContainer.d.ts.map +1 -0
  185. package/dist/types/src/containers/ChannelContainer/ChannelContainer.stories.d.ts +162 -0
  186. package/dist/types/src/containers/ChannelContainer/ChannelContainer.stories.d.ts.map +1 -0
  187. package/dist/types/src/containers/ChannelContainer/index.d.ts +2 -0
  188. package/dist/types/src/containers/ChannelContainer/index.d.ts.map +1 -0
  189. package/dist/types/src/containers/ThreadCompanion/ThreadCompanion.d.ts +8 -0
  190. package/dist/types/src/containers/ThreadCompanion/ThreadCompanion.d.ts.map +1 -0
  191. package/dist/types/src/containers/ThreadCompanion/index.d.ts +2 -0
  192. package/dist/types/src/containers/ThreadCompanion/index.d.ts.map +1 -0
  193. package/dist/types/src/containers/ThreadContainer/ThreadContainer.d.ts +20 -0
  194. package/dist/types/src/containers/ThreadContainer/ThreadContainer.d.ts.map +1 -0
  195. package/dist/types/src/containers/ThreadContainer/ThreadContainer.stories.d.ts +162 -0
  196. package/dist/types/src/containers/ThreadContainer/ThreadContainer.stories.d.ts.map +1 -0
  197. package/dist/types/src/containers/ThreadContainer/index.d.ts +4 -0
  198. package/dist/types/src/containers/ThreadContainer/index.d.ts.map +1 -0
  199. package/dist/types/src/containers/index.d.ts +8 -0
  200. package/dist/types/src/containers/index.d.ts.map +1 -0
  201. package/dist/types/src/{components/command-extension.d.ts → extensions/command.d.ts} +1 -1
  202. package/dist/types/src/extensions/command.d.ts.map +1 -0
  203. package/dist/types/src/extensions/index.d.ts +1 -0
  204. package/dist/types/src/extensions/index.d.ts.map +1 -1
  205. package/dist/types/src/extensions/threads.d.ts +3 -3
  206. package/dist/types/src/extensions/threads.d.ts.map +1 -1
  207. package/dist/types/src/hooks/analytics.d.ts.map +1 -1
  208. package/dist/types/src/hooks/useStatus.d.ts.map +1 -1
  209. package/dist/types/src/hooks/useVideoStreamTrack.d.ts.map +1 -1
  210. package/dist/types/src/index.d.ts +3 -2
  211. package/dist/types/src/index.d.ts.map +1 -1
  212. package/dist/types/src/operations/add-message.d.ts +5 -0
  213. package/dist/types/src/operations/add-message.d.ts.map +1 -0
  214. package/dist/types/src/operations/append-channel-message.d.ts +5 -0
  215. package/dist/types/src/operations/append-channel-message.d.ts.map +1 -0
  216. package/dist/types/src/operations/create-channel.d.ts +5 -0
  217. package/dist/types/src/operations/create-channel.d.ts.map +1 -0
  218. package/dist/types/src/operations/create-proposals.d.ts +5 -0
  219. package/dist/types/src/operations/create-proposals.d.ts.map +1 -0
  220. package/dist/types/src/operations/create.d.ts +5 -0
  221. package/dist/types/src/operations/create.d.ts.map +1 -0
  222. package/dist/types/src/operations/definitions.d.ts +1995 -0
  223. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  224. package/dist/types/src/operations/delete-message.d.ts +5 -0
  225. package/dist/types/src/operations/delete-message.d.ts.map +1 -0
  226. package/dist/types/src/operations/delete.d.ts +5 -0
  227. package/dist/types/src/operations/delete.d.ts.map +1 -0
  228. package/dist/types/src/operations/index.d.ts +4 -0
  229. package/dist/types/src/operations/index.d.ts.map +1 -0
  230. package/dist/types/src/operations/on-create-space.d.ts +5 -0
  231. package/dist/types/src/operations/on-create-space.d.ts.map +1 -0
  232. package/dist/types/src/operations/restore-message.d.ts +5 -0
  233. package/dist/types/src/operations/restore-message.d.ts.map +1 -0
  234. package/dist/types/src/operations/restore.d.ts +5 -0
  235. package/dist/types/src/operations/restore.d.ts.map +1 -0
  236. package/dist/types/src/operations/select.d.ts +5 -0
  237. package/dist/types/src/operations/select.d.ts.map +1 -0
  238. package/dist/types/src/operations/toggle-resolved.d.ts +5 -0
  239. package/dist/types/src/operations/toggle-resolved.d.ts.map +1 -0
  240. package/dist/types/src/{components/testing.d.ts → testing/data.d.ts} +1 -1
  241. package/dist/types/src/testing/data.d.ts.map +1 -0
  242. package/dist/types/src/testing/index.d.ts +1 -1
  243. package/dist/types/src/testing/index.d.ts.map +1 -1
  244. package/dist/types/src/translations.d.ts +140 -142
  245. package/dist/types/src/translations.d.ts.map +1 -1
  246. package/dist/types/src/types/Settings.d.ts +5 -0
  247. package/dist/types/src/types/Settings.d.ts.map +1 -0
  248. package/dist/types/src/types/capabilities.d.ts +8 -2
  249. package/dist/types/src/types/capabilities.d.ts.map +1 -1
  250. package/dist/types/src/types/index.d.ts +0 -1
  251. package/dist/types/src/types/index.d.ts.map +1 -1
  252. package/dist/types/src/types/types.d.ts +1 -3227
  253. package/dist/types/src/types/types.d.ts.map +1 -1
  254. package/dist/types/src/util.d.ts +6 -3
  255. package/dist/types/src/util.d.ts.map +1 -1
  256. package/dist/types/tsconfig.tsbuildinfo +1 -1
  257. package/package.json +89 -71
  258. package/src/ThreadPlugin.node.ts +39 -0
  259. package/src/ThreadPlugin.test.ts +37 -0
  260. package/src/ThreadPlugin.tsx +20 -67
  261. package/src/blueprints/index.ts +1 -1
  262. package/src/blueprints/thread-blueprint.ts +13 -9
  263. package/src/calls/util/calls-service.ts +3 -2
  264. package/src/calls/util/stub-media-streams.ts +3 -1
  265. package/src/calls-service.stories.tsx +9 -8
  266. package/src/capabilities/{app-graph-builder/app-graph-builder.ts → app-graph-builder.ts} +53 -60
  267. package/src/capabilities/blueprint-definition.ts +19 -0
  268. package/src/capabilities/{call-manager/call-manager.ts → call-manager.ts} +4 -3
  269. package/src/capabilities/create-object.ts +29 -0
  270. package/src/capabilities/index.ts +18 -10
  271. package/src/capabilities/{markdown/markdown.ts → markdown.ts} +17 -14
  272. package/src/capabilities/operation-handler.ts +16 -0
  273. package/src/capabilities/{react-root/react-root.tsx → react-root.tsx} +2 -2
  274. package/src/capabilities/react-surface.tsx +97 -0
  275. package/src/capabilities/{settings/settings.ts → settings.ts} +6 -5
  276. package/src/capabilities/{state/state.ts → state.ts} +1 -1
  277. package/src/capabilities/undo-mappings.ts +46 -0
  278. package/src/components/Call/Call.tsx +9 -9
  279. package/src/components/Call/Toolbar.tsx +28 -20
  280. package/src/components/Chat/Chat.tsx +258 -0
  281. package/src/components/Chat/index.ts +5 -0
  282. package/src/components/{Comments.stories.tsx → CommentsPanel/CommentsPanel.stories.tsx} +18 -16
  283. package/src/components/{CommentsContainer.tsx → CommentsPanel/CommentsPanel.tsx} +15 -14
  284. package/src/components/{CommentsThreadContainer.tsx → CommentsPanel/CommentsThread.tsx} +19 -20
  285. package/src/components/CommentsPanel/index.ts +6 -0
  286. package/src/components/Lobby/Lobby.tsx +12 -10
  287. package/src/components/Media/VideoObject.stories.tsx +6 -7
  288. package/src/components/Media/VideoObject.tsx +1 -1
  289. package/src/components/{MessageContainer.tsx → MessagePanel/MessagePanel.tsx} +28 -19
  290. package/src/components/MessagePanel/index.ts +5 -0
  291. package/src/components/Participant/Participant.tsx +2 -1
  292. package/src/components/Participant/ParticipantGrid.tsx +0 -1
  293. package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +11 -11
  294. package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +8 -8
  295. package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +9 -9
  296. package/src/components/ResponsiveGrid/{ResponsiveContainer.stories.tsx → ResponsivePanel.stories.tsx} +9 -9
  297. package/src/components/ResponsiveGrid/{ResponsiveContainer.tsx → ResponsivePanel.tsx} +5 -5
  298. package/src/components/ResponsiveGrid/index.ts +1 -1
  299. package/src/components/ThreadSettings/ThreadSettings.stories.tsx +32 -0
  300. package/src/components/ThreadSettings/ThreadSettings.tsx +20 -0
  301. package/src/components/ThreadSettings/index.ts +5 -0
  302. package/src/components/index.ts +6 -9
  303. package/src/{components → containers/CallDebugPanel}/CallDebugPanel.tsx +8 -7
  304. package/src/containers/CallDebugPanel/index.ts +5 -0
  305. package/src/{components → containers/CallSidebar}/CallSidebar.tsx +3 -5
  306. package/src/containers/CallSidebar/index.ts +5 -0
  307. package/src/containers/ChannelChat/ChannelChat.tsx +75 -0
  308. package/src/containers/ChannelChat/index.ts +8 -0
  309. package/src/containers/ChannelContainer/ChannelContainer.stories.tsx +105 -0
  310. package/src/{components → containers/ChannelContainer}/ChannelContainer.tsx +73 -58
  311. package/src/containers/ChannelContainer/index.ts +5 -0
  312. package/src/{components → containers/ThreadCompanion}/ThreadCompanion.tsx +66 -45
  313. package/src/containers/ThreadCompanion/index.ts +5 -0
  314. package/src/{components/Chat.stories.tsx → containers/ThreadContainer/ThreadContainer.stories.tsx} +23 -23
  315. package/src/containers/ThreadContainer/ThreadContainer.tsx +75 -0
  316. package/src/containers/ThreadContainer/index.ts +8 -0
  317. package/src/containers/index.ts +12 -0
  318. package/src/{components/command-extension.ts → extensions/command.ts} +1 -1
  319. package/src/extensions/index.ts +1 -0
  320. package/src/extensions/threads.ts +15 -14
  321. package/src/hooks/analytics.ts +2 -1
  322. package/src/index.ts +10 -3
  323. package/src/meta.ts +2 -2
  324. package/src/operations/add-message.ts +81 -0
  325. package/src/operations/append-channel-message.ts +36 -0
  326. package/src/operations/create-channel.ts +20 -0
  327. package/src/operations/create-proposals.ts +49 -0
  328. package/src/operations/create.ts +48 -0
  329. package/src/operations/definitions.ts +177 -0
  330. package/src/operations/delete-message.ts +53 -0
  331. package/src/operations/delete.ts +63 -0
  332. package/src/operations/index.ts +22 -0
  333. package/src/operations/on-create-space.ts +27 -0
  334. package/src/operations/restore-message.ts +38 -0
  335. package/src/operations/restore.ts +38 -0
  336. package/src/operations/select.ts +24 -0
  337. package/src/operations/toggle-resolved.ts +41 -0
  338. package/src/{components/testing.ts → testing/data.ts} +7 -7
  339. package/src/testing/index.ts +1 -1
  340. package/src/translations.ts +72 -76
  341. package/src/types/Settings.ts +10 -0
  342. package/src/types/capabilities.ts +15 -7
  343. package/src/types/index.ts +0 -1
  344. package/src/types/types.ts +2 -184
  345. package/src/util.ts +37 -5
  346. package/dist/lib/browser/app-graph-builder-XFGLMIGK.mjs +0 -189
  347. package/dist/lib/browser/app-graph-builder-XFGLMIGK.mjs.map +0 -7
  348. package/dist/lib/browser/blueprint-definition-ACPH22F7.mjs +0 -18
  349. package/dist/lib/browser/blueprint-definition-ACPH22F7.mjs.map +0 -7
  350. package/dist/lib/browser/call-manager-GDGIKJKN.mjs +0 -26
  351. package/dist/lib/browser/call-manager-GDGIKJKN.mjs.map +0 -7
  352. package/dist/lib/browser/chunk-2FIHSX35.mjs +0 -293
  353. package/dist/lib/browser/chunk-2FIHSX35.mjs.map +0 -7
  354. package/dist/lib/browser/chunk-4EUEMHNI.mjs +0 -1817
  355. package/dist/lib/browser/chunk-4EUEMHNI.mjs.map +0 -7
  356. package/dist/lib/browser/chunk-CP7E2HRE.mjs +0 -31
  357. package/dist/lib/browser/chunk-CP7E2HRE.mjs.map +0 -7
  358. package/dist/lib/browser/chunk-ERK254BS.mjs +0 -1810
  359. package/dist/lib/browser/chunk-ERK254BS.mjs.map +0 -7
  360. package/dist/lib/browser/chunk-ISCHODBV.mjs +0 -106
  361. package/dist/lib/browser/chunk-ISCHODBV.mjs.map +0 -7
  362. package/dist/lib/browser/chunk-JBB73URQ.mjs +0 -184
  363. package/dist/lib/browser/chunk-JBB73URQ.mjs.map +0 -7
  364. package/dist/lib/browser/chunk-RH7XTXSR.mjs +0 -106
  365. package/dist/lib/browser/chunk-RH7XTXSR.mjs.map +0 -7
  366. package/dist/lib/browser/markdown-YJCSOWXX.mjs +0 -210
  367. package/dist/lib/browser/markdown-YJCSOWXX.mjs.map +0 -7
  368. package/dist/lib/browser/operation-resolver-PROCP5L4.mjs +0 -441
  369. package/dist/lib/browser/operation-resolver-PROCP5L4.mjs.map +0 -7
  370. package/dist/lib/browser/react-root-FHK2SVPU.mjs +0 -25
  371. package/dist/lib/browser/react-root-FHK2SVPU.mjs.map +0 -7
  372. package/dist/lib/browser/react-surface-7MQA6VSH.mjs +0 -111
  373. package/dist/lib/browser/react-surface-7MQA6VSH.mjs.map +0 -7
  374. package/dist/lib/browser/repair-6OZ75AUU.mjs +0 -38
  375. package/dist/lib/browser/repair-6OZ75AUU.mjs.map +0 -7
  376. package/dist/lib/browser/settings-TWKOTGSU.mjs +0 -33
  377. package/dist/lib/browser/settings-TWKOTGSU.mjs.map +0 -7
  378. package/dist/lib/browser/state-SJR2GL5G.mjs +0 -24
  379. package/dist/lib/browser/state-SJR2GL5G.mjs.map +0 -7
  380. package/dist/lib/node-esm/app-graph-builder-IN6VLJBO.mjs +0 -190
  381. package/dist/lib/node-esm/app-graph-builder-IN6VLJBO.mjs.map +0 -7
  382. package/dist/lib/node-esm/blueprint-definition-SXVKFUNV.mjs +0 -19
  383. package/dist/lib/node-esm/blueprint-definition-SXVKFUNV.mjs.map +0 -7
  384. package/dist/lib/node-esm/call-manager-36UAAQCJ.mjs +0 -27
  385. package/dist/lib/node-esm/call-manager-36UAAQCJ.mjs.map +0 -7
  386. package/dist/lib/node-esm/chunk-ABUFOZVX.mjs +0 -33
  387. package/dist/lib/node-esm/chunk-ABUFOZVX.mjs.map +0 -7
  388. package/dist/lib/node-esm/chunk-G7PZNN3Z.mjs +0 -185
  389. package/dist/lib/node-esm/chunk-G7PZNN3Z.mjs.map +0 -7
  390. package/dist/lib/node-esm/chunk-OKVE6CLS.mjs +0 -107
  391. package/dist/lib/node-esm/chunk-OKVE6CLS.mjs.map +0 -7
  392. package/dist/lib/node-esm/chunk-QP3KQOPQ.mjs +0 -1811
  393. package/dist/lib/node-esm/chunk-QP3KQOPQ.mjs.map +0 -7
  394. package/dist/lib/node-esm/chunk-RBRWHRHE.mjs +0 -1818
  395. package/dist/lib/node-esm/chunk-RBRWHRHE.mjs.map +0 -7
  396. package/dist/lib/node-esm/chunk-VBI32FGI.mjs +0 -108
  397. package/dist/lib/node-esm/chunk-VBI32FGI.mjs.map +0 -7
  398. package/dist/lib/node-esm/chunk-WMWUXWAS.mjs +0 -294
  399. package/dist/lib/node-esm/chunk-WMWUXWAS.mjs.map +0 -7
  400. package/dist/lib/node-esm/markdown-6LRP3PAP.mjs +0 -211
  401. package/dist/lib/node-esm/markdown-6LRP3PAP.mjs.map +0 -7
  402. package/dist/lib/node-esm/operation-resolver-LPEPV5BF.mjs +0 -442
  403. package/dist/lib/node-esm/operation-resolver-LPEPV5BF.mjs.map +0 -7
  404. package/dist/lib/node-esm/react-root-P5P4VGQJ.mjs +0 -26
  405. package/dist/lib/node-esm/react-root-P5P4VGQJ.mjs.map +0 -7
  406. package/dist/lib/node-esm/react-surface-M7VI5XG2.mjs +0 -112
  407. package/dist/lib/node-esm/react-surface-M7VI5XG2.mjs.map +0 -7
  408. package/dist/lib/node-esm/repair-6777EPOM.mjs +0 -39
  409. package/dist/lib/node-esm/repair-6777EPOM.mjs.map +0 -7
  410. package/dist/lib/node-esm/settings-5O254B3Z.mjs +0 -34
  411. package/dist/lib/node-esm/settings-5O254B3Z.mjs.map +0 -7
  412. package/dist/lib/node-esm/state-5R3TZJQE.mjs +0 -25
  413. package/dist/lib/node-esm/state-5R3TZJQE.mjs.map +0 -7
  414. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +0 -6
  415. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
  416. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
  417. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
  418. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +0 -10
  419. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +0 -1
  420. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +0 -3
  421. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +0 -1
  422. package/dist/types/src/capabilities/call-manager/call-manager.d.ts +0 -6
  423. package/dist/types/src/capabilities/call-manager/call-manager.d.ts.map +0 -1
  424. package/dist/types/src/capabilities/call-manager/index.d.ts +0 -3
  425. package/dist/types/src/capabilities/call-manager/index.d.ts.map +0 -1
  426. package/dist/types/src/capabilities/markdown/index.d.ts +0 -3
  427. package/dist/types/src/capabilities/markdown/index.d.ts.map +0 -1
  428. package/dist/types/src/capabilities/markdown/markdown.d.ts +0 -5
  429. package/dist/types/src/capabilities/markdown/markdown.d.ts.map +0 -1
  430. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -3
  431. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  432. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
  433. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  434. package/dist/types/src/capabilities/react-root/index.d.ts +0 -6
  435. package/dist/types/src/capabilities/react-root/index.d.ts.map +0 -1
  436. package/dist/types/src/capabilities/react-root/react-root.d.ts.map +0 -1
  437. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  438. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  439. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +0 -5
  440. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  441. package/dist/types/src/capabilities/repair/index.d.ts +0 -3
  442. package/dist/types/src/capabilities/repair/index.d.ts.map +0 -1
  443. package/dist/types/src/capabilities/repair/repair.d.ts +0 -6
  444. package/dist/types/src/capabilities/repair/repair.d.ts.map +0 -1
  445. package/dist/types/src/capabilities/settings/index.d.ts +0 -3
  446. package/dist/types/src/capabilities/settings/index.d.ts.map +0 -1
  447. package/dist/types/src/capabilities/settings/settings.d.ts +0 -6
  448. package/dist/types/src/capabilities/settings/settings.d.ts.map +0 -1
  449. package/dist/types/src/capabilities/state/index.d.ts +0 -3
  450. package/dist/types/src/capabilities/state/index.d.ts.map +0 -1
  451. package/dist/types/src/capabilities/state/state.d.ts +0 -7
  452. package/dist/types/src/capabilities/state/state.d.ts.map +0 -1
  453. package/dist/types/src/components/CallDebugPanel.d.ts.map +0 -1
  454. package/dist/types/src/components/CallSidebar.d.ts.map +0 -1
  455. package/dist/types/src/components/ChannelContainer.d.ts +0 -13
  456. package/dist/types/src/components/ChannelContainer.d.ts.map +0 -1
  457. package/dist/types/src/components/ChannelContainer.stories.d.ts +0 -164
  458. package/dist/types/src/components/ChannelContainer.stories.d.ts.map +0 -1
  459. package/dist/types/src/components/Chat.stories.d.ts +0 -164
  460. package/dist/types/src/components/Chat.stories.d.ts.map +0 -1
  461. package/dist/types/src/components/ChatContainer.d.ts +0 -18
  462. package/dist/types/src/components/ChatContainer.d.ts.map +0 -1
  463. package/dist/types/src/components/Comments.stories.d.ts +0 -162
  464. package/dist/types/src/components/Comments.stories.d.ts.map +0 -1
  465. package/dist/types/src/components/CommentsContainer.d.ts +0 -13
  466. package/dist/types/src/components/CommentsContainer.d.ts.map +0 -1
  467. package/dist/types/src/components/CommentsThreadContainer.d.ts.map +0 -1
  468. package/dist/types/src/components/MessageContainer.d.ts +0 -15
  469. package/dist/types/src/components/MessageContainer.d.ts.map +0 -1
  470. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.d.ts.map +0 -1
  471. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts +0 -166
  472. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts.map +0 -1
  473. package/dist/types/src/components/ThreadCompanion.d.ts +0 -5
  474. package/dist/types/src/components/ThreadCompanion.d.ts.map +0 -1
  475. package/dist/types/src/components/ThreadSettings.d.ts +0 -8
  476. package/dist/types/src/components/ThreadSettings.d.ts.map +0 -1
  477. package/dist/types/src/components/command-extension.d.ts.map +0 -1
  478. package/dist/types/src/components/testing.d.ts.map +0 -1
  479. package/dist/types/src/functions/create-proposals.d.ts +0 -13
  480. package/dist/types/src/functions/create-proposals.d.ts.map +0 -1
  481. package/dist/types/src/functions/index.d.ts +0 -2
  482. package/dist/types/src/functions/index.d.ts.map +0 -1
  483. package/dist/types/src/testing/stories.d.ts +0 -3
  484. package/dist/types/src/testing/stories.d.ts.map +0 -1
  485. package/dist/types/src/types/Channel.d.ts +0 -695
  486. package/dist/types/src/types/Channel.d.ts.map +0 -1
  487. package/src/capabilities/app-graph-builder/index.ts +0 -7
  488. package/src/capabilities/blueprint-definition/blueprint-definition.ts +0 -24
  489. package/src/capabilities/blueprint-definition/index.ts +0 -7
  490. package/src/capabilities/call-manager/index.ts +0 -7
  491. package/src/capabilities/markdown/index.ts +0 -7
  492. package/src/capabilities/operation-resolver/index.ts +0 -7
  493. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -400
  494. package/src/capabilities/react-root/index.ts +0 -7
  495. package/src/capabilities/react-surface/index.ts +0 -7
  496. package/src/capabilities/react-surface/react-surface.tsx +0 -98
  497. package/src/capabilities/repair/index.ts +0 -7
  498. package/src/capabilities/repair/repair.ts +0 -51
  499. package/src/capabilities/settings/index.ts +0 -7
  500. package/src/capabilities/state/index.ts +0 -7
  501. package/src/components/ChannelContainer.stories.tsx +0 -60
  502. package/src/components/ChatContainer.tsx +0 -152
  503. package/src/components/ThreadSettings.tsx +0 -22
  504. package/src/functions/create-proposals.ts +0 -57
  505. package/src/functions/index.ts +0 -5
  506. package/src/testing/stories.ts +0 -56
  507. package/src/types/Channel.ts +0 -30
@@ -0,0 +1,6 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ export * from './CommentsPanel';
6
+ export * from './CommentsThread';
@@ -3,17 +3,18 @@
3
3
  //
4
4
 
5
5
  import { useAtomValue } from '@effect-atom/atom-react';
6
- import React, { type FC, type PropsWithChildren, useEffect, useState } from 'react';
6
+ import React, { type PropsWithChildren, useEffect, useState } from 'react';
7
7
 
8
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
 
12
- import { meta } from '../../meta';
13
- import { ThreadCapabilities } from '../../types';
12
+ import { meta } from '#meta';
13
+ import { ThreadCapabilities } from '#types';
14
+
14
15
  import { Toolbar, type ToolbarProps } from '../Call';
15
16
  import { VideoObject } from '../Media';
16
- import { ResponsiveContainer } from '../ResponsiveGrid';
17
+ import { ResponsivePanel } from '../ResponsiveGrid';
17
18
 
18
19
  // TODO(wittjosiah): Repurpose lobby for preview.
19
20
 
@@ -25,7 +26,8 @@ const SWARM_PEEK_INTERVAL = 1_000;
25
26
 
26
27
  type LobbyRootProps = PropsWithChildren<ThemedClassName>;
27
28
 
28
- const LobbyRoot: FC<LobbyRootProps> = ({ children }) => {
29
+ // TODO(burdon): Make headless?
30
+ const LobbyRoot = ({ children }: LobbyRootProps) => {
29
31
  return <div className='relative flex flex-col grow overflow-hidden group'>{children}</div>;
30
32
  };
31
33
 
@@ -37,7 +39,7 @@ LobbyRoot.displayName = 'LobbyRoot';
37
39
 
38
40
  type LobbyPreviewProps = {};
39
41
 
40
- const LobbyPreview: FC<LobbyPreviewProps> = () => {
42
+ const LobbyPreview = (_props: LobbyPreviewProps) => {
41
43
  const { t } = useTranslation(meta.id);
42
44
  const call = useCapability(ThreadCapabilities.CallManager);
43
45
  const media = useAtomValue(call.mediaAtom);
@@ -58,7 +60,7 @@ const LobbyPreview: FC<LobbyPreviewProps> = () => {
58
60
 
59
61
  return (
60
62
  <div className='grid grow p-4'>
61
- <ResponsiveContainer>
63
+ <ResponsivePanel>
62
64
  {(media.videoEnabled && (
63
65
  <VideoObject
64
66
  videoStream={media.videoStream}
@@ -69,8 +71,8 @@ const LobbyPreview: FC<LobbyPreviewProps> = () => {
69
71
  classNames,
70
72
  )}
71
73
  />
72
- )) || <div className='p-4 outline outline-separator rounded-md'>{t('camera off label')}</div>}
73
- </ResponsiveContainer>
74
+ )) || <div className='p-4 outline outline-separator rounded-md'>{t('camera-off.label')}</div>}
75
+ </ResponsivePanel>
74
76
  </div>
75
77
  );
76
78
  };
@@ -87,7 +89,7 @@ type LobbyToolbarProps = ThemedClassName<
87
89
  } & Pick<ToolbarProps, 'onJoin'>
88
90
  >;
89
91
 
90
- const LobbyToolbar: FC<LobbyToolbarProps> = ({ roomId, ...props }) => {
92
+ const LobbyToolbar = ({ roomId, ...props }: LobbyToolbarProps) => {
91
93
  const call = useCapability(ThreadCapabilities.CallManager);
92
94
  const [count, setCount] = useState<number>(0);
93
95
 
@@ -8,11 +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';
15
-
14
+ import { ResponsivePanel } from '../ResponsiveGrid';
16
15
  import { VideoObject, type VideoObjectProps } from './VideoObject';
17
16
 
18
17
  const DefaultStory = (props: VideoObjectProps) => {
@@ -37,17 +36,17 @@ const DefaultStory = (props: VideoObjectProps) => {
37
36
  }, []);
38
37
 
39
38
  return (
40
- <ResponsiveContainer>
39
+ <ResponsivePanel>
41
40
  <VideoObject videoStream={videoStream} flip {...props} />
42
- </ResponsiveContainer>
41
+ </ResponsivePanel>
43
42
  );
44
43
  };
45
44
 
46
45
  const meta = {
47
- title: 'plugins/plugin-thread/VideoObject',
46
+ title: 'plugins/plugin-thread/components/VideoObject',
48
47
  component: VideoObject,
49
48
  render: DefaultStory,
50
- decorators: [withTheme()],
49
+ decorators: [withTheme(), withLayout({ layout: 'fullscreen' })],
51
50
  parameters: {
52
51
  layout: 'fullscreen',
53
52
  },
@@ -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,
@@ -6,43 +6,44 @@ import { EditorView } from '@codemirror/view';
6
6
  import React, { forwardRef, useCallback, useEffect, useRef, useState } from 'react';
7
7
 
8
8
  import { Surface } from '@dxos/app-framework/ui';
9
+ import { AppSurface } from '@dxos/app-toolkit/ui';
9
10
  import { type Obj, Ref } from '@dxos/echo';
10
11
  import { useObject } from '@dxos/echo-react';
11
12
  import { PublicKey } from '@dxos/react-client';
12
13
  import { type SpaceMember } from '@dxos/react-client/echo';
13
14
  import { type Identity, useIdentity } from '@dxos/react-client/halo';
14
15
  import { IconButton, useOnTransition, useThemeContext, useTranslation } from '@dxos/react-ui';
16
+ import { Card } from '@dxos/react-ui';
15
17
  import { useTextEditor } from '@dxos/react-ui-editor';
16
- import { Card } from '@dxos/react-ui-mosaic';
17
18
  import { MessageHeading, MessageRoot } from '@dxos/react-ui-thread';
18
19
  import { type ContentBlock, type Message } from '@dxos/types';
19
20
  import { createBasicExtensions, createThemeExtensions } from '@dxos/ui-editor';
20
21
  import { hoverableControlItem, hoverableControls, hoverableFocusedWithinControls, mx } from '@dxos/ui-theme';
21
22
 
22
- import { useOnEditAnalytics } from '../hooks';
23
- import { meta } from '../meta';
24
- import { getMessageMetadata } from '../util';
23
+ import { useOnEditAnalytics } from '#hooks';
24
+ import { meta } from '#meta';
25
25
 
26
- import { command } from './command-extension';
26
+ import { command } from '../../extensions/command';
27
+ import { getMessageMetadata } from '../../util';
27
28
 
28
- export const buttonGroupClassNames = 'flex flex-row items-center gap-0.5 pie-2';
29
- export const buttonClassNames = '!p-1 transition-opacity';
29
+ export const buttonGroupClassNames = 'flex flex-row items-center gap-0.5 pe-2';
30
+ export const buttonClassNames = 'p-1! transition-opacity';
30
31
 
31
- export type MessageContainerProps = {
32
- message: Obj.Obj<Message.Message> | Ref.Ref<Obj.Obj<Message.Message>>;
32
+ export type MessagePanelProps = {
33
+ message: Obj.OfShape<Message.Message> | Ref.Ref<Obj.OfShape<Message.Message>>;
33
34
  members: SpaceMember[];
34
35
  editable?: boolean;
35
36
  onDelete?: (id: string) => void;
36
37
  onAcceptProposal?: (id: string) => void;
37
38
  };
38
39
 
39
- export const MessageContainer = ({
40
+ export const MessagePanel = ({
40
41
  message: messageOrRef,
41
42
  members,
42
43
  editable = false,
43
44
  onDelete,
44
45
  onAcceptProposal,
45
- }: MessageContainerProps) => {
46
+ }: MessagePanelProps) => {
46
47
  const { t } = useTranslation(meta.id);
47
48
  const [message, updateMessage] = useObject(messageOrRef);
48
49
  const identity = useIdentity();
@@ -81,7 +82,10 @@ export const MessageContainer = ({
81
82
  (message.sender.identityDid && member.identity.did === message.sender.identityDid) ||
82
83
  (message.sender.identityKey && PublicKey.equals(member.identity.identityKey, message.sender.identityKey)),
83
84
  )?.identity;
84
- const messageMetadata = getMessageMetadata(message.id, senderIdentity);
85
+ // Pass `message.sender` as the fallback so externally-synced messages
86
+ // (Slack, etc.) display the source-side sender name instead of "Anonymous"
87
+ // when no DXOS identity matches.
88
+ const messageMetadata = getMessageMetadata(message.id, senderIdentity, message.sender);
85
89
  const userIsAuthor = identity?.did === messageMetadata.authorId;
86
90
  const proposalBlock = message.blocks.find((block) => block._tag === 'proposal');
87
91
  const references = message.blocks.filter((block) => block._tag === 'reference').map((block) => block.reference);
@@ -96,7 +100,7 @@ export const MessageContainer = ({
96
100
  variant='ghost'
97
101
  icon={editing ? 'ph--check--regular' : 'ph--pencil-simple--regular'}
98
102
  iconOnly
99
- label={t(editing ? 'save message label' : 'edit message label')}
103
+ label={t(editing ? 'save-message.label' : 'edit-message.label')}
100
104
  classNames={[buttonClassNames, hoverableControlItem]}
101
105
  onClick={handleEdit}
102
106
  />
@@ -108,7 +112,7 @@ export const MessageContainer = ({
108
112
  variant='ghost'
109
113
  icon='ph--check--regular'
110
114
  iconOnly
111
- label={t('accept proposal label')}
115
+ label={t('accept-proposal.label')}
112
116
  classNames={[buttonClassNames, hoverableControlItem]}
113
117
  onClick={handleAcceptProposal}
114
118
  />
@@ -119,7 +123,7 @@ export const MessageContainer = ({
119
123
  variant='ghost'
120
124
  icon='ph--x--regular'
121
125
  iconOnly
122
- label={t('delete message label')}
126
+ label={t('delete-message.label')}
123
127
  classNames={[buttonClassNames, hoverableControlItem]}
124
128
  onClick={handleDelete}
125
129
  />
@@ -187,12 +191,12 @@ const TextboxBlock = ({
187
191
  editing && view?.focus();
188
192
  }, [editing, view]);
189
193
 
190
- return <div role='none' ref={parentRef} className='mie-4' {...focusAttributes} />;
194
+ return <div role='none' ref={parentRef} className='me-4' {...focusAttributes} />;
191
195
  };
192
196
 
193
197
  const ProposalBlock = ({ block }: { block: ContentBlock.Proposal }) => {
194
198
  return (
195
- <div role='none' className='mie-4 italic'>
199
+ <div role='none' className='me-4 italic'>
196
200
  {block.text}
197
201
  </div>
198
202
  );
@@ -207,10 +211,15 @@ const MessageBlockObjectTile = forwardRef<HTMLDivElement, { subject: Obj.Unknown
207
211
 
208
212
  return (
209
213
  <Card.Root
210
- className={mx('grid col-span-3 plb-1 pr-4', hoverableControls, hoverableFocusedWithinControls)}
214
+ className={mx('grid col-span-3 py-1 pr-4', hoverableControls, hoverableFocusedWithinControls)}
211
215
  ref={forwardedRef}
212
216
  >
213
- <Surface.Surface role='card-content' limit={1} data={{ subject }} fallback={title} />
217
+ <Surface.Surface
218
+ type={AppSurface.Card}
219
+ limit={1}
220
+ data={{ subject } satisfies AppSurface.ObjectCardData}
221
+ fallback={title}
222
+ />
214
223
  </Card.Root>
215
224
  );
216
225
  });
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ export * from './MessagePanel';
@@ -7,8 +7,9 @@ import React, { memo, useMemo } from 'react';
7
7
 
8
8
  import { useCapability } from '@dxos/app-framework/ui';
9
9
 
10
+ import { ThreadCapabilities } from '#types';
11
+
10
12
  import { type EncodedTrackName, type UserState } from '../../calls';
11
- import { ThreadCapabilities } from '../../types';
12
13
  import { VideoObject } from '../Media';
13
14
  import { ResponsiveGridItem, type ResponsiveGridItemProps } from '../ResponsiveGrid';
14
15
 
@@ -8,7 +8,6 @@ import { type ThemedClassName } from '@dxos/react-ui';
8
8
 
9
9
  import { type UserState } from '../../calls';
10
10
  import { ResponsiveGrid } from '../ResponsiveGrid';
11
-
12
11
  import { Participant, SCREENSHARE_SUFFIX } from './Participant';
13
12
 
14
13
  const getId = (user: UserState): string => user.id!;
@@ -5,10 +5,10 @@
5
5
  import { type Meta, type StoryObj } from '@storybook/react-vite';
6
6
  import React, { useEffect, useState } from 'react';
7
7
 
8
- import { faker } from '@dxos/random';
9
- import { withTheme } from '@dxos/react-ui/testing';
8
+ import { random } from '@dxos/random';
9
+ import { withLayout, withTheme } from '@dxos/react-ui/testing';
10
10
 
11
- import { translations } from '../../translations';
11
+ import { translations } from '#translations';
12
12
 
13
13
  import { ResponsiveGrid, type ResponsiveGridProps } from './ResponsiveGrid';
14
14
  import { ResponsiveGridItem, type ResponsiveGridItemProps } from './ResponsiveGridItem';
@@ -41,7 +41,7 @@ const TestCell = ({ item, ...props }: ResponsiveGridItemProps<TestItem>) => {
41
41
  {item.type === 'image' && <img className='aspect-video object-contain' src={item.imageUrl} />}
42
42
  {item.type === 'video' && (
43
43
  <video
44
- className='is-full aspect-video object-cover rounded-md'
44
+ className='w-full aspect-video object-cover rounded-md'
45
45
  src={item.videoUrl}
46
46
  playsInline
47
47
  autoPlay
@@ -53,9 +53,9 @@ const TestCell = ({ item, ...props }: ResponsiveGridItemProps<TestItem>) => {
53
53
  );
54
54
  };
55
55
 
56
- type StoryProps = ResponsiveGridProps<TestItem> & { random?: boolean; autoHideGallery?: boolean };
56
+ type DefaultStoryProps = ResponsiveGridProps<TestItem> & { random?: boolean; autoHideGallery?: boolean };
57
57
 
58
- const DefaultStory = (props: StoryProps) => {
58
+ const DefaultStory = (props: DefaultStoryProps) => {
59
59
  const [pinned, setPinned] = useState<string | undefined>(
60
60
  (props.pinned ?? props.items.length > 1) ? props.items[0]?.id : undefined,
61
61
  );
@@ -89,10 +89,10 @@ const DefaultStory = (props: StoryProps) => {
89
89
  };
90
90
 
91
91
  const meta = {
92
- title: 'plugins/plugin-thread/ResponsiveGrid',
92
+ title: 'plugins/plugin-thread/components/ResponsiveGrid',
93
93
  component: ResponsiveGrid as any,
94
94
  render: DefaultStory,
95
- decorators: [withTheme()],
95
+ decorators: [withTheme(), withLayout({ layout: 'fullscreen' })],
96
96
  parameters: {
97
97
  layout: 'fullscreen',
98
98
  translations,
@@ -107,13 +107,13 @@ const videoUrls = [
107
107
  ];
108
108
 
109
109
  const createItem = (type?: 'image' | 'video') => {
110
- const id = faker.string.uuid();
110
+ const id = random.string.uuid();
111
111
  return {
112
112
  id,
113
113
  type,
114
- name: faker.person.fullName(),
114
+ name: random.person.fullName(),
115
115
  imageUrl: `https://placehold.co/3200x1800/333/999?font=roboto&text=${id.slice(0, 2)}`,
116
- videoUrl: faker.helpers.arrayElement(videoUrls),
116
+ videoUrl: random.helpers.arrayElement(videoUrls),
117
117
  };
118
118
  };
119
119
 
@@ -10,15 +10,15 @@ import { type ThemedClassName } from '@dxos/react-ui';
10
10
  import { type Size } from '@dxos/react-ui-dnd';
11
11
  import { mx } from '@dxos/ui-theme';
12
12
 
13
- import { ResponsiveContainer } from './ResponsiveContainer';
14
13
  import { type ResponsiveGridItemProps } from './ResponsiveGridItem';
14
+ import { ResponsivePanel } from './ResponsivePanel';
15
15
 
16
16
  const ASPECT_RATIO = 16 / 9;
17
17
  const MIN_GALLERY_HEIGHT = 250;
18
18
 
19
19
  const DEFAULT_GAP = 8;
20
20
 
21
- const maxImageSize = 'is-[2560px] bs-[1440px]';
21
+ const maxImageSize = 'w-[2560px] h-[1440px]';
22
22
 
23
23
  /**
24
24
  * Props for the ResponsiveGrid component.
@@ -136,13 +136,13 @@ export const ResponsiveGrid = <T extends object = any>({
136
136
  );
137
137
 
138
138
  return (
139
- <div ref={containerRef} className={mx('relative is-full bs-full', classNames)}>
139
+ <div ref={containerRef} className={mx('dx-expander relative', classNames)}>
140
140
  {/* Placeholder elements to calculate layout. */}
141
141
  <div className='absolute inset-0 flex flex-col grow gap-2'>
142
142
  {/* Pinned item. */}
143
143
  {pinnedItem && (
144
144
  <div
145
- className={mx('flex grow-[2] shrink overflow-hidden justify-center items-center', hideGallery && 'bs-full')}
145
+ className={mx('flex grow-[2] shrink overflow-hidden justify-center items-center', hideGallery && 'h-full')}
146
146
  style={hideGallery ? {} : { height: dividerHeight }}
147
147
  >
148
148
  <SoloItem id={getId(pinnedItem)} debug={debug} />
@@ -157,7 +157,7 @@ export const ResponsiveGrid = <T extends object = any>({
157
157
  style={hideGallery ? {} : { minHeight: MIN_GALLERY_HEIGHT }}
158
158
  >
159
159
  {mainItems.length === 1 && (
160
- <div style={{ width: cellWidth }} className='flex bs-full'>
160
+ <div style={{ width: cellWidth }} className='flex h-full'>
161
161
  <SoloItem id={getId(mainItems[0])} debug={debug} />
162
162
  </div>
163
163
  )}
@@ -176,7 +176,7 @@ export const ResponsiveGrid = <T extends object = any>({
176
176
  key={getId(item)}
177
177
  {...{ 'data-grid-item': getId(item) }}
178
178
  className={mx(
179
- 'aspect-video max-bs-full max-is-full is-auto bs-auto',
179
+ 'aspect-video max-h-full max-w-full w-auto h-auto',
180
180
  debug && 'border border-primary-500',
181
181
  )}
182
182
  />
@@ -206,7 +206,7 @@ export const ResponsiveGrid = <T extends object = any>({
206
206
 
207
207
  const SoloItem: FC<Pick<ResponsiveGridProps, 'debug'> & { id: string }> = ({ debug, id }) => {
208
208
  return (
209
- <ResponsiveContainer>
209
+ <ResponsivePanel>
210
210
  <div
211
211
  {...{ 'data-grid-item': id }}
212
212
  className={mx('aspect-video overflow-hidden', debug && 'z-20 border-2 border-primary-500')}
@@ -214,7 +214,7 @@ const SoloItem: FC<Pick<ResponsiveGridProps, 'debug'> & { id: string }> = ({ deb
214
214
  {/* Maximum size placeholder image forces aspect ratio. */}
215
215
  <img alt='placeholder video' className={mx('opacity-0', maxImageSize)} />
216
216
  </div>
217
- </ResponsiveContainer>
217
+ </ResponsivePanel>
218
218
  );
219
219
  };
220
220
 
@@ -8,7 +8,7 @@ import { Icon, IconButton, type ThemedClassName, useTranslation } from '@dxos/re
8
8
  import { Waveform } from '@dxos/react-ui-sfx';
9
9
  import { groupHoverControlItemWithTransition, mx } from '@dxos/ui-theme';
10
10
 
11
- import { meta } from '../../meta';
11
+ import { meta } from '#meta';
12
12
 
13
13
  export type ResponsiveGridItemProps<T extends object = any> = PropsWithChildren<
14
14
  ThemedClassName<{
@@ -49,12 +49,12 @@ export const ResponsiveGridItem = <T extends object = any>({
49
49
  const iconProps: Record<string, { icon: string; label: string; classNames?: string }> = {
50
50
  wave: {
51
51
  icon: 'ph--hand-waving--duotone',
52
- label: t('icon wave'),
52
+ label: t('icon-wave.label'),
53
53
  classNames: 'animate-pulse bg-orange-500',
54
54
  },
55
55
  mute: {
56
56
  icon: 'ph--microphone-slash--regular',
57
- label: t('icon muted'),
57
+ label: t('icon-muted.label'),
58
58
  },
59
59
  };
60
60
 
@@ -76,7 +76,7 @@ export const ResponsiveGridItem = <T extends object = any>({
76
76
  return (
77
77
  <div
78
78
  className={mx(
79
- 'relative is-full bs-full group',
79
+ 'dx-expander relative group',
80
80
  'rounded-md outline outline-2 outline-neutral-900 transition-[outline-color] duration-500',
81
81
  speakingIndicator ? 'outline-green-500' : !video && 'outline-separator',
82
82
  classNames,
@@ -89,11 +89,11 @@ export const ResponsiveGridItem = <T extends object = any>({
89
89
  {onClick && (
90
90
  <div className='z-10 absolute top-1 right-1 flex'>
91
91
  <IconButton
92
- classNames={mx('p-1 min-bs-1 rounded', groupHoverControlItemWithTransition)}
92
+ classNames={mx('p-1 min-h-1 rounded-sm', groupHoverControlItemWithTransition)}
93
93
  iconOnly
94
94
  icon={pinned ? 'ph--x--regular' : 'ph--arrows-out--regular'}
95
95
  size={pinned ? 5 : 4}
96
- label={pinned ? t('icon unpin') : t('icon pin')}
96
+ label={pinned ? t('icon-unpin.label') : t('icon-pin.label')}
97
97
  onClick={() => onClick?.(item)}
98
98
  />
99
99
  </div>
@@ -107,8 +107,8 @@ export const ResponsiveGridItem = <T extends object = any>({
107
107
  {screenshare && <Icon icon='ph--broadcast--regular' size={pinned ? 5 : 4} />}
108
108
  <div
109
109
  className={mx(
110
- 'bg-neutral-800 text-neutral-100 plb-0.5 truncate rounded',
111
- pinned ? 'pli-2' : 'pli-1 text-xs',
110
+ 'bg-neutral-800 text-neutral-100 py-0.5 truncate rounded-sm',
111
+ pinned ? 'px-2' : 'px-1 text-xs',
112
112
  )}
113
113
  >
114
114
  {name}
@@ -121,7 +121,7 @@ export const ResponsiveGridItem = <T extends object = any>({
121
121
  {(speaking && <Waveform active size={pinned ? 5 : 4} />) ||
122
122
  (props && (
123
123
  <IconButton
124
- classNames={mx('p-1 min-bs-1 rounded', props?.classNames)}
124
+ classNames={mx('p-1 min-h-1 rounded-sm', props?.classNames)}
125
125
  icon={props?.icon}
126
126
  label={props?.label}
127
127
  size={pinned ? 5 : 4}
@@ -5,26 +5,26 @@
5
5
  import { type Meta, type StoryObj } from '@storybook/react-vite';
6
6
  import React from 'react';
7
7
 
8
- import { withTheme } from '@dxos/react-ui/testing';
8
+ import { withLayout, withTheme } from '@dxos/react-ui/testing';
9
9
 
10
- import { translations } from '../../translations';
11
- import { VideoObject as VideoObjectComponent } from '../Media';
10
+ import { translations } from '#translations';
12
11
 
13
- import { ResponsiveContainer } from './ResponsiveContainer';
12
+ import { VideoObject as VideoObjectComponent } from '../Media';
13
+ import { ResponsivePanel } from './ResponsivePanel';
14
14
 
15
15
  const meta = {
16
- title: 'plugins/plugin-thread/ResponsiveContainer',
17
- component: ResponsiveContainer,
18
- decorators: [withTheme()],
16
+ title: 'plugins/plugin-thread/components/ResponsivePanel',
17
+ component: ResponsivePanel,
18
+ decorators: [withTheme(), withLayout({ layout: 'fullscreen' })],
19
19
  parameters: {
20
20
  layout: 'fullscreen',
21
21
  translations,
22
22
  },
23
- } satisfies Meta<typeof ResponsiveContainer>;
23
+ } satisfies Meta<typeof ResponsivePanel>;
24
24
 
25
25
  export default meta;
26
26
 
27
- type Story = StoryObj<typeof ResponsiveContainer>;
27
+ type Story = StoryObj<typeof ResponsivePanel>;
28
28
 
29
29
  export const Image: Story = {
30
30
  args: {
@@ -11,18 +11,18 @@ import { mx } from '@dxos/ui-theme';
11
11
  * The container will scale to fit within its parent's bounds while preserving the aspect ratio.
12
12
  *
13
13
  * @example
14
- * <ResponsiveContainer>
14
+ * <ResponsivePanel>
15
15
  * <VideoObject />
16
- * </ResponsiveContainer>
16
+ * </ResponsivePanel>
17
17
  */
18
- export const ResponsiveContainer = ({ children }: PropsWithChildren) => {
18
+ export const ResponsivePanel = ({ children }: PropsWithChildren) => {
19
19
  return (
20
20
  // Outer container that takes full size of parent.
21
- <div role='none' className='relative flex is-full bs-full'>
21
+ <div role='none' className='dx-expander relative flex'>
22
22
  {/* Absolute positioning layer for centering content. */}
23
23
  <div role='none' className='absolute inset-0 flex justify-center items-center'>
24
24
  {/* Content container that maintains given aspect ratio and proper scaling. */}
25
- <div role='none' className={mx('max-bs-full max-is-full is-auto bs-auto aspect-video')}>
25
+ <div role='none' className={mx('max-h-full max-w-full w-auto h-auto aspect-video')}>
26
26
  {children}
27
27
  </div>
28
28
  </div>
@@ -2,6 +2,6 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- export * from './ResponsiveContainer';
5
+ export * from './ResponsivePanel';
6
6
  export * from './ResponsiveGrid';
7
7
  export * from './ResponsiveGridItem';
@@ -0,0 +1,32 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
6
+
7
+ import { withLayout, withTheme } from '@dxos/react-ui/testing';
8
+
9
+ import { translations } from '#translations';
10
+
11
+ import { ThreadSettings } from './ThreadSettings';
12
+
13
+ const meta = {
14
+ title: 'plugins/plugin-thread/components/ThreadSettings',
15
+ component: ThreadSettings,
16
+ tags: ['settings'],
17
+ decorators: [withTheme(), withLayout({ layout: 'fullscreen' })],
18
+ parameters: {
19
+ layout: 'fullscreen',
20
+ translations,
21
+ },
22
+ } satisfies Meta<typeof ThreadSettings>;
23
+
24
+ export default meta;
25
+
26
+ type Story = StoryObj<typeof meta>;
27
+
28
+ export const Default: Story = {
29
+ args: {
30
+ settings: {},
31
+ },
32
+ };
@@ -0,0 +1,20 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import React from 'react';
6
+
7
+ import { type AppSurface } from '@dxos/app-toolkit/ui';
8
+ import { useTranslation } from '@dxos/react-ui';
9
+ import { Settings as SettingsForm } from '@dxos/react-ui-form';
10
+
11
+ import { meta } from '#meta';
12
+ import { type Settings } from '#types';
13
+
14
+ export type ThreadSettingsProps = AppSurface.SettingsArticleProps<Settings.Settings>;
15
+
16
+ // TODO(burdon): Settings.
17
+ export const ThreadSettings = ({ settings: _settings }: ThreadSettingsProps) => {
18
+ const { t: _t } = useTranslation(meta.id);
19
+ return <SettingsForm.Viewport></SettingsForm.Viewport>;
20
+ };
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ export { ThreadSettings as default } from './ThreadSettings';
@@ -2,14 +2,11 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
+ import { type ComponentType, lazy } from 'react';
6
+
5
7
  export * from './Call';
6
- export * from './CallDebugPanel';
7
- export * from './CallSidebar';
8
- export * from './CommentsContainer';
9
- export * from './CommentsThreadContainer';
10
- export * from './MessageContainer';
11
- export * from './ThreadCompanion';
12
- export * from './ThreadSettings';
8
+ export * from './Chat';
9
+ export * from './CommentsPanel';
10
+ export * from './MessagePanel';
13
11
 
14
- export { ChannelContainer } from './ChannelContainer';
15
- export { ChatContainer } from './ChatContainer';
12
+ export const ThreadSettings: ComponentType<any> = lazy(() => import('./ThreadSettings'));