@dxos/plugin-thread 0.8.4-main.9735255 → 0.8.4-main.abd8ff62ef

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 (504) hide show
  1. package/dist/lib/browser/add-message-LRVGIHDH.mjs +89 -0
  2. package/dist/lib/browser/add-message-LRVGIHDH.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-E4GG3NX2.mjs +29 -0
  8. package/dist/lib/browser/chunk-E4GG3NX2.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-BTGLHLBA.mjs +55 -0
  12. package/dist/lib/browser/create-BTGLHLBA.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-GLYEP7NE.mjs +59 -0
  18. package/dist/lib/browser/delete-GLYEP7NE.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 -269
  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-AT4L7EBU.mjs +26 -0
  33. package/dist/lib/browser/select-AT4L7EBU.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-4EAQ2ZPI.mjs +90 -0
  40. package/dist/lib/node-esm/add-message-4EAQ2ZPI.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-BVEZBGIY.mjs +30 -0
  46. package/dist/lib/node-esm/chunk-BVEZBGIY.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-DEZFPN2Y.mjs +56 -0
  50. package/dist/lib/node-esm/create-DEZFPN2Y.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-QG45QLPY.mjs +60 -0
  56. package/dist/lib/node-esm/delete-QG45QLPY.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 -269
  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-UU6Q2XAB.mjs +27 -0
  71. package/dist/lib/node-esm/select-UU6Q2XAB.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/index.d.ts +15 -10
  109. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  110. package/dist/types/src/capabilities/markdown.d.ts +5 -0
  111. package/dist/types/src/capabilities/markdown.d.ts.map +1 -0
  112. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  113. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  114. package/dist/types/src/capabilities/{react-root/react-root.d.ts → react-root.d.ts} +1 -1
  115. package/dist/types/src/capabilities/react-root.d.ts.map +1 -0
  116. package/dist/types/src/capabilities/react-surface.d.ts +5 -0
  117. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  118. package/dist/types/src/capabilities/settings.d.ts +7 -0
  119. package/dist/types/src/capabilities/settings.d.ts.map +1 -0
  120. package/dist/types/src/capabilities/state.d.ts +7 -0
  121. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  122. package/dist/types/src/capabilities/undo-mappings.d.ts +5 -0
  123. package/dist/types/src/capabilities/undo-mappings.d.ts.map +1 -0
  124. package/dist/types/src/components/Call/Call.d.ts +32 -4
  125. package/dist/types/src/components/Call/Call.d.ts.map +1 -1
  126. package/dist/types/src/components/Call/Toolbar.d.ts +5 -5
  127. package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
  128. package/dist/types/src/components/Chat/Chat.d.ts +44 -0
  129. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -0
  130. package/dist/types/src/components/Chat/index.d.ts +2 -0
  131. package/dist/types/src/components/Chat/index.d.ts.map +1 -0
  132. package/dist/types/src/components/CommentsPanel/CommentsPanel.d.ts +13 -0
  133. package/dist/types/src/components/CommentsPanel/CommentsPanel.d.ts.map +1 -0
  134. package/dist/types/src/components/CommentsPanel/CommentsPanel.stories.d.ts +160 -0
  135. package/dist/types/src/components/CommentsPanel/CommentsPanel.stories.d.ts.map +1 -0
  136. package/dist/types/src/components/{CommentsThreadContainer.d.ts → CommentsPanel/CommentsThread.d.ts} +3 -3
  137. package/dist/types/src/components/CommentsPanel/CommentsThread.d.ts.map +1 -0
  138. package/dist/types/src/components/CommentsPanel/index.d.ts +3 -0
  139. package/dist/types/src/components/CommentsPanel/index.d.ts.map +1 -0
  140. package/dist/types/src/components/Lobby/Lobby.d.ts +24 -3
  141. package/dist/types/src/components/Lobby/Lobby.d.ts.map +1 -1
  142. package/dist/types/src/components/Media/VideoObject.d.ts +1 -1
  143. package/dist/types/src/components/Media/VideoObject.stories.d.ts +1 -1
  144. package/dist/types/src/components/Media/VideoObject.stories.d.ts.map +1 -1
  145. package/dist/types/src/components/MessagePanel/MessagePanel.d.ts +15 -0
  146. package/dist/types/src/components/MessagePanel/MessagePanel.d.ts.map +1 -0
  147. package/dist/types/src/components/MessagePanel/index.d.ts +2 -0
  148. package/dist/types/src/components/MessagePanel/index.d.ts.map +1 -0
  149. package/dist/types/src/components/Participant/Participant.d.ts.map +1 -1
  150. package/dist/types/src/components/Participant/ParticipantGrid.d.ts.map +1 -1
  151. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.d.ts.map +1 -1
  152. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +142 -144
  153. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts.map +1 -1
  154. package/dist/types/src/components/ResponsiveGrid/ResponsiveGridItem.d.ts.map +1 -1
  155. package/dist/types/src/components/ResponsiveGrid/{ResponsiveContainer.d.ts → ResponsivePanel.d.ts} +4 -4
  156. package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.d.ts.map +1 -0
  157. package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.stories.d.ts +164 -0
  158. package/dist/types/src/components/ResponsiveGrid/ResponsivePanel.stories.d.ts.map +1 -0
  159. package/dist/types/src/components/ResponsiveGrid/index.d.ts +1 -1
  160. package/dist/types/src/components/ResponsiveGrid/index.d.ts.map +1 -1
  161. package/dist/types/src/components/ThreadSettings/ThreadSettings.d.ts +6 -0
  162. package/dist/types/src/components/ThreadSettings/ThreadSettings.d.ts.map +1 -0
  163. package/dist/types/src/components/ThreadSettings/ThreadSettings.stories.d.ts +161 -0
  164. package/dist/types/src/components/ThreadSettings/ThreadSettings.stories.d.ts.map +1 -0
  165. package/dist/types/src/components/ThreadSettings/index.d.ts +2 -0
  166. package/dist/types/src/components/ThreadSettings/index.d.ts.map +1 -0
  167. package/dist/types/src/components/index.d.ts +5 -9
  168. package/dist/types/src/components/index.d.ts.map +1 -1
  169. package/dist/types/src/{components → containers/CallDebugPanel}/CallDebugPanel.d.ts +1 -1
  170. package/dist/types/src/containers/CallDebugPanel/CallDebugPanel.d.ts.map +1 -0
  171. package/dist/types/src/containers/CallDebugPanel/index.d.ts +2 -0
  172. package/dist/types/src/containers/CallDebugPanel/index.d.ts.map +1 -0
  173. package/dist/types/src/{components → containers/CallSidebar}/CallSidebar.d.ts +0 -1
  174. package/dist/types/src/containers/CallSidebar/CallSidebar.d.ts.map +1 -0
  175. package/dist/types/src/containers/CallSidebar/index.d.ts +2 -0
  176. package/dist/types/src/containers/CallSidebar/index.d.ts.map +1 -0
  177. package/dist/types/src/containers/ChannelChat/ChannelChat.d.ts +16 -0
  178. package/dist/types/src/containers/ChannelChat/ChannelChat.d.ts.map +1 -0
  179. package/dist/types/src/containers/ChannelChat/index.d.ts +4 -0
  180. package/dist/types/src/containers/ChannelChat/index.d.ts.map +1 -0
  181. package/dist/types/src/containers/ChannelContainer/ChannelContainer.d.ts +12 -0
  182. package/dist/types/src/containers/ChannelContainer/ChannelContainer.d.ts.map +1 -0
  183. package/dist/types/src/containers/ChannelContainer/ChannelContainer.stories.d.ts +162 -0
  184. package/dist/types/src/containers/ChannelContainer/ChannelContainer.stories.d.ts.map +1 -0
  185. package/dist/types/src/containers/ChannelContainer/index.d.ts +2 -0
  186. package/dist/types/src/containers/ChannelContainer/index.d.ts.map +1 -0
  187. package/dist/types/src/containers/ThreadCompanion/ThreadCompanion.d.ts +8 -0
  188. package/dist/types/src/containers/ThreadCompanion/ThreadCompanion.d.ts.map +1 -0
  189. package/dist/types/src/containers/ThreadCompanion/index.d.ts +2 -0
  190. package/dist/types/src/containers/ThreadCompanion/index.d.ts.map +1 -0
  191. package/dist/types/src/containers/ThreadContainer/ThreadContainer.d.ts +20 -0
  192. package/dist/types/src/containers/ThreadContainer/ThreadContainer.d.ts.map +1 -0
  193. package/dist/types/src/containers/ThreadContainer/ThreadContainer.stories.d.ts +162 -0
  194. package/dist/types/src/containers/ThreadContainer/ThreadContainer.stories.d.ts.map +1 -0
  195. package/dist/types/src/containers/ThreadContainer/index.d.ts +4 -0
  196. package/dist/types/src/containers/ThreadContainer/index.d.ts.map +1 -0
  197. package/dist/types/src/containers/index.d.ts +8 -0
  198. package/dist/types/src/containers/index.d.ts.map +1 -0
  199. package/dist/types/src/{components/command-extension.d.ts → extensions/command.d.ts} +1 -1
  200. package/dist/types/src/extensions/command.d.ts.map +1 -0
  201. package/dist/types/src/extensions/index.d.ts +1 -0
  202. package/dist/types/src/extensions/index.d.ts.map +1 -1
  203. package/dist/types/src/extensions/threads.d.ts +3 -3
  204. package/dist/types/src/extensions/threads.d.ts.map +1 -1
  205. package/dist/types/src/hooks/analytics.d.ts.map +1 -1
  206. package/dist/types/src/hooks/useStatus.d.ts.map +1 -1
  207. package/dist/types/src/hooks/useVideoStreamTrack.d.ts.map +1 -1
  208. package/dist/types/src/index.d.ts +3 -2
  209. package/dist/types/src/index.d.ts.map +1 -1
  210. package/dist/types/src/operations/add-message.d.ts +5 -0
  211. package/dist/types/src/operations/add-message.d.ts.map +1 -0
  212. package/dist/types/src/operations/append-channel-message.d.ts +5 -0
  213. package/dist/types/src/operations/append-channel-message.d.ts.map +1 -0
  214. package/dist/types/src/operations/create-channel.d.ts +5 -0
  215. package/dist/types/src/operations/create-channel.d.ts.map +1 -0
  216. package/dist/types/src/operations/create-proposals.d.ts +5 -0
  217. package/dist/types/src/operations/create-proposals.d.ts.map +1 -0
  218. package/dist/types/src/operations/create.d.ts +5 -0
  219. package/dist/types/src/operations/create.d.ts.map +1 -0
  220. package/dist/types/src/operations/definitions.d.ts +1995 -0
  221. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  222. package/dist/types/src/operations/delete-message.d.ts +5 -0
  223. package/dist/types/src/operations/delete-message.d.ts.map +1 -0
  224. package/dist/types/src/operations/delete.d.ts +5 -0
  225. package/dist/types/src/operations/delete.d.ts.map +1 -0
  226. package/dist/types/src/operations/index.d.ts +4 -0
  227. package/dist/types/src/operations/index.d.ts.map +1 -0
  228. package/dist/types/src/operations/on-create-space.d.ts +5 -0
  229. package/dist/types/src/operations/on-create-space.d.ts.map +1 -0
  230. package/dist/types/src/operations/restore-message.d.ts +5 -0
  231. package/dist/types/src/operations/restore-message.d.ts.map +1 -0
  232. package/dist/types/src/operations/restore.d.ts +5 -0
  233. package/dist/types/src/operations/restore.d.ts.map +1 -0
  234. package/dist/types/src/operations/select.d.ts +5 -0
  235. package/dist/types/src/operations/select.d.ts.map +1 -0
  236. package/dist/types/src/operations/toggle-resolved.d.ts +5 -0
  237. package/dist/types/src/operations/toggle-resolved.d.ts.map +1 -0
  238. package/dist/types/src/{components/testing.d.ts → testing/data.d.ts} +1 -1
  239. package/dist/types/src/testing/data.d.ts.map +1 -0
  240. package/dist/types/src/testing/index.d.ts +1 -1
  241. package/dist/types/src/testing/index.d.ts.map +1 -1
  242. package/dist/types/src/translations.d.ts +140 -142
  243. package/dist/types/src/translations.d.ts.map +1 -1
  244. package/dist/types/src/types/Settings.d.ts +5 -0
  245. package/dist/types/src/types/Settings.d.ts.map +1 -0
  246. package/dist/types/src/types/capabilities.d.ts +4 -2
  247. package/dist/types/src/types/capabilities.d.ts.map +1 -1
  248. package/dist/types/src/types/index.d.ts +0 -1
  249. package/dist/types/src/types/index.d.ts.map +1 -1
  250. package/dist/types/src/types/types.d.ts +1 -3227
  251. package/dist/types/src/types/types.d.ts.map +1 -1
  252. package/dist/types/src/util.d.ts +2 -2
  253. package/dist/types/src/util.d.ts.map +1 -1
  254. package/dist/types/tsconfig.tsbuildinfo +1 -1
  255. package/package.json +96 -76
  256. package/src/ThreadPlugin.node.ts +84 -0
  257. package/src/ThreadPlugin.test.ts +37 -0
  258. package/src/ThreadPlugin.tsx +59 -61
  259. package/src/blueprints/index.ts +1 -1
  260. package/src/blueprints/thread-blueprint.ts +13 -9
  261. package/src/calls/util/calls-service.ts +3 -2
  262. package/src/calls/util/stub-media-streams.ts +3 -1
  263. package/src/calls-service.stories.tsx +10 -9
  264. package/src/capabilities/{app-graph-builder/app-graph-builder.ts → app-graph-builder.ts} +44 -51
  265. package/src/capabilities/blueprint-definition.ts +19 -0
  266. package/src/capabilities/{call-manager/call-manager.ts → call-manager.ts} +6 -5
  267. package/src/capabilities/index.ts +17 -10
  268. package/src/capabilities/{markdown/markdown.ts → markdown.ts} +22 -19
  269. package/src/capabilities/operation-handler.ts +16 -0
  270. package/src/capabilities/{react-root/react-root.tsx → react-root.tsx} +4 -4
  271. package/src/capabilities/react-surface.tsx +97 -0
  272. package/src/capabilities/{settings/settings.ts → settings.ts} +9 -7
  273. package/src/capabilities/{state/state.ts → state.ts} +1 -1
  274. package/src/capabilities/undo-mappings.ts +46 -0
  275. package/src/components/Call/Call.tsx +10 -10
  276. package/src/components/Call/Toolbar.tsx +30 -21
  277. package/src/components/Chat/Chat.tsx +218 -0
  278. package/src/components/Chat/index.ts +5 -0
  279. package/src/components/{Comments.stories.tsx → CommentsPanel/CommentsPanel.stories.tsx} +19 -17
  280. package/src/components/{CommentsContainer.tsx → CommentsPanel/CommentsPanel.tsx} +15 -14
  281. package/src/components/{CommentsThreadContainer.tsx → CommentsPanel/CommentsThread.tsx} +19 -20
  282. package/src/components/CommentsPanel/index.ts +6 -0
  283. package/src/components/Lobby/Lobby.tsx +13 -11
  284. package/src/components/Media/VideoObject.stories.tsx +6 -7
  285. package/src/components/Media/VideoObject.tsx +1 -1
  286. package/src/components/{MessageContainer.tsx → MessagePanel/MessagePanel.tsx} +25 -19
  287. package/src/components/MessagePanel/index.ts +5 -0
  288. package/src/components/Participant/Participant.tsx +3 -2
  289. package/src/components/Participant/ParticipantGrid.tsx +0 -1
  290. package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +11 -11
  291. package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +8 -8
  292. package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +9 -9
  293. package/src/components/ResponsiveGrid/{ResponsiveContainer.stories.tsx → ResponsivePanel.stories.tsx} +9 -9
  294. package/src/components/ResponsiveGrid/{ResponsiveContainer.tsx → ResponsivePanel.tsx} +5 -5
  295. package/src/components/ResponsiveGrid/index.ts +1 -1
  296. package/src/components/ThreadSettings/ThreadSettings.stories.tsx +32 -0
  297. package/src/components/ThreadSettings/ThreadSettings.tsx +20 -0
  298. package/src/components/ThreadSettings/index.ts +5 -0
  299. package/src/components/index.ts +6 -9
  300. package/src/{components → containers/CallDebugPanel}/CallDebugPanel.tsx +8 -7
  301. package/src/containers/CallDebugPanel/index.ts +5 -0
  302. package/src/{components → containers/CallSidebar}/CallSidebar.tsx +4 -6
  303. package/src/containers/CallSidebar/index.ts +5 -0
  304. package/src/containers/ChannelChat/ChannelChat.tsx +65 -0
  305. package/src/containers/ChannelChat/index.ts +8 -0
  306. package/src/containers/ChannelContainer/ChannelContainer.stories.tsx +105 -0
  307. package/src/{components → containers/ChannelContainer}/ChannelContainer.tsx +75 -59
  308. package/src/containers/ChannelContainer/index.ts +5 -0
  309. package/src/{components → containers/ThreadCompanion}/ThreadCompanion.tsx +74 -50
  310. package/src/containers/ThreadCompanion/index.ts +5 -0
  311. package/src/{components/Chat.stories.tsx → containers/ThreadContainer/ThreadContainer.stories.tsx} +26 -25
  312. package/src/containers/ThreadContainer/ThreadContainer.tsx +75 -0
  313. package/src/containers/ThreadContainer/index.ts +8 -0
  314. package/src/containers/index.ts +12 -0
  315. package/src/{components/command-extension.ts → extensions/command.ts} +1 -1
  316. package/src/extensions/index.ts +1 -0
  317. package/src/extensions/threads.ts +15 -14
  318. package/src/hooks/analytics.ts +3 -2
  319. package/src/index.ts +10 -3
  320. package/src/meta.ts +2 -2
  321. package/src/operations/add-message.ts +81 -0
  322. package/src/operations/append-channel-message.ts +36 -0
  323. package/src/operations/create-channel.ts +20 -0
  324. package/src/operations/create-proposals.ts +49 -0
  325. package/src/operations/create.ts +48 -0
  326. package/src/operations/definitions.ts +177 -0
  327. package/src/operations/delete-message.ts +53 -0
  328. package/src/operations/delete.ts +63 -0
  329. package/src/operations/index.ts +22 -0
  330. package/src/operations/on-create-space.ts +27 -0
  331. package/src/operations/restore-message.ts +38 -0
  332. package/src/operations/restore.ts +38 -0
  333. package/src/operations/select.ts +24 -0
  334. package/src/operations/toggle-resolved.ts +41 -0
  335. package/src/{components/testing.ts → testing/data.ts} +7 -7
  336. package/src/testing/index.ts +1 -1
  337. package/src/translations.ts +72 -76
  338. package/src/types/Settings.ts +10 -0
  339. package/src/types/capabilities.ts +10 -7
  340. package/src/types/index.ts +0 -1
  341. package/src/types/types.ts +2 -184
  342. package/src/util.ts +1 -1
  343. package/dist/lib/browser/app-graph-builder-7C2QW32W.mjs +0 -188
  344. package/dist/lib/browser/app-graph-builder-7C2QW32W.mjs.map +0 -7
  345. package/dist/lib/browser/blueprint-definition-UQ63QKQG.mjs +0 -17
  346. package/dist/lib/browser/blueprint-definition-UQ63QKQG.mjs.map +0 -7
  347. package/dist/lib/browser/call-manager-4P536YNX.mjs +0 -26
  348. package/dist/lib/browser/call-manager-4P536YNX.mjs.map +0 -7
  349. package/dist/lib/browser/chunk-2FIHSX35.mjs +0 -293
  350. package/dist/lib/browser/chunk-2FIHSX35.mjs.map +0 -7
  351. package/dist/lib/browser/chunk-CP7E2HRE.mjs +0 -31
  352. package/dist/lib/browser/chunk-CP7E2HRE.mjs.map +0 -7
  353. package/dist/lib/browser/chunk-DLO2G3DM.mjs +0 -184
  354. package/dist/lib/browser/chunk-DLO2G3DM.mjs.map +0 -7
  355. package/dist/lib/browser/chunk-ERK254BS.mjs +0 -1810
  356. package/dist/lib/browser/chunk-ERK254BS.mjs.map +0 -7
  357. package/dist/lib/browser/chunk-ISCHODBV.mjs +0 -106
  358. package/dist/lib/browser/chunk-ISCHODBV.mjs.map +0 -7
  359. package/dist/lib/browser/chunk-YSHXWAL3.mjs +0 -1815
  360. package/dist/lib/browser/chunk-YSHXWAL3.mjs.map +0 -7
  361. package/dist/lib/browser/chunk-ZFLSTQSE.mjs +0 -106
  362. package/dist/lib/browser/chunk-ZFLSTQSE.mjs.map +0 -7
  363. package/dist/lib/browser/markdown-QMJLRR6R.mjs +0 -210
  364. package/dist/lib/browser/markdown-QMJLRR6R.mjs.map +0 -7
  365. package/dist/lib/browser/operation-resolver-T63EP5TY.mjs +0 -441
  366. package/dist/lib/browser/operation-resolver-T63EP5TY.mjs.map +0 -7
  367. package/dist/lib/browser/react-root-56MJI77R.mjs +0 -25
  368. package/dist/lib/browser/react-root-56MJI77R.mjs.map +0 -7
  369. package/dist/lib/browser/react-surface-DMBHQOXJ.mjs +0 -110
  370. package/dist/lib/browser/react-surface-DMBHQOXJ.mjs.map +0 -7
  371. package/dist/lib/browser/repair-6OZ75AUU.mjs +0 -38
  372. package/dist/lib/browser/repair-6OZ75AUU.mjs.map +0 -7
  373. package/dist/lib/browser/settings-WZMJMML3.mjs +0 -32
  374. package/dist/lib/browser/settings-WZMJMML3.mjs.map +0 -7
  375. package/dist/lib/browser/state-SJR2GL5G.mjs +0 -24
  376. package/dist/lib/browser/state-SJR2GL5G.mjs.map +0 -7
  377. package/dist/lib/node-esm/app-graph-builder-JCSVFRVY.mjs +0 -189
  378. package/dist/lib/node-esm/app-graph-builder-JCSVFRVY.mjs.map +0 -7
  379. package/dist/lib/node-esm/blueprint-definition-MZZXXL37.mjs +0 -18
  380. package/dist/lib/node-esm/blueprint-definition-MZZXXL37.mjs.map +0 -7
  381. package/dist/lib/node-esm/call-manager-FMLRR5S5.mjs +0 -27
  382. package/dist/lib/node-esm/call-manager-FMLRR5S5.mjs.map +0 -7
  383. package/dist/lib/node-esm/chunk-7XQLXMX7.mjs +0 -1816
  384. package/dist/lib/node-esm/chunk-7XQLXMX7.mjs.map +0 -7
  385. package/dist/lib/node-esm/chunk-ABUFOZVX.mjs +0 -33
  386. package/dist/lib/node-esm/chunk-ABUFOZVX.mjs.map +0 -7
  387. package/dist/lib/node-esm/chunk-AQHPP6ZX.mjs +0 -107
  388. package/dist/lib/node-esm/chunk-AQHPP6ZX.mjs.map +0 -7
  389. package/dist/lib/node-esm/chunk-KRBZBJRI.mjs +0 -185
  390. package/dist/lib/node-esm/chunk-KRBZBJRI.mjs.map +0 -7
  391. package/dist/lib/node-esm/chunk-QP3KQOPQ.mjs +0 -1811
  392. package/dist/lib/node-esm/chunk-QP3KQOPQ.mjs.map +0 -7
  393. package/dist/lib/node-esm/chunk-VBI32FGI.mjs +0 -108
  394. package/dist/lib/node-esm/chunk-VBI32FGI.mjs.map +0 -7
  395. package/dist/lib/node-esm/chunk-WMWUXWAS.mjs +0 -294
  396. package/dist/lib/node-esm/chunk-WMWUXWAS.mjs.map +0 -7
  397. package/dist/lib/node-esm/markdown-L6LLQLIN.mjs +0 -211
  398. package/dist/lib/node-esm/markdown-L6LLQLIN.mjs.map +0 -7
  399. package/dist/lib/node-esm/operation-resolver-G6GZPBRP.mjs +0 -442
  400. package/dist/lib/node-esm/operation-resolver-G6GZPBRP.mjs.map +0 -7
  401. package/dist/lib/node-esm/react-root-V4W4X5GL.mjs +0 -26
  402. package/dist/lib/node-esm/react-root-V4W4X5GL.mjs.map +0 -7
  403. package/dist/lib/node-esm/react-surface-ELDSTUA3.mjs +0 -111
  404. package/dist/lib/node-esm/react-surface-ELDSTUA3.mjs.map +0 -7
  405. package/dist/lib/node-esm/repair-6777EPOM.mjs +0 -39
  406. package/dist/lib/node-esm/repair-6777EPOM.mjs.map +0 -7
  407. package/dist/lib/node-esm/settings-37CO3SNR.mjs +0 -33
  408. package/dist/lib/node-esm/settings-37CO3SNR.mjs.map +0 -7
  409. package/dist/lib/node-esm/state-5R3TZJQE.mjs +0 -25
  410. package/dist/lib/node-esm/state-5R3TZJQE.mjs.map +0 -7
  411. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +0 -6
  412. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
  413. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
  414. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
  415. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +0 -9
  416. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +0 -1
  417. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +0 -3
  418. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +0 -1
  419. package/dist/types/src/capabilities/call-manager/call-manager.d.ts +0 -6
  420. package/dist/types/src/capabilities/call-manager/call-manager.d.ts.map +0 -1
  421. package/dist/types/src/capabilities/call-manager/index.d.ts +0 -3
  422. package/dist/types/src/capabilities/call-manager/index.d.ts.map +0 -1
  423. package/dist/types/src/capabilities/markdown/index.d.ts +0 -3
  424. package/dist/types/src/capabilities/markdown/index.d.ts.map +0 -1
  425. package/dist/types/src/capabilities/markdown/markdown.d.ts +0 -5
  426. package/dist/types/src/capabilities/markdown/markdown.d.ts.map +0 -1
  427. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -3
  428. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  429. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
  430. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  431. package/dist/types/src/capabilities/react-root/index.d.ts +0 -6
  432. package/dist/types/src/capabilities/react-root/index.d.ts.map +0 -1
  433. package/dist/types/src/capabilities/react-root/react-root.d.ts.map +0 -1
  434. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  435. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  436. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +0 -5
  437. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  438. package/dist/types/src/capabilities/repair/index.d.ts +0 -3
  439. package/dist/types/src/capabilities/repair/index.d.ts.map +0 -1
  440. package/dist/types/src/capabilities/repair/repair.d.ts +0 -6
  441. package/dist/types/src/capabilities/repair/repair.d.ts.map +0 -1
  442. package/dist/types/src/capabilities/settings/index.d.ts +0 -3
  443. package/dist/types/src/capabilities/settings/index.d.ts.map +0 -1
  444. package/dist/types/src/capabilities/settings/settings.d.ts +0 -5
  445. package/dist/types/src/capabilities/settings/settings.d.ts.map +0 -1
  446. package/dist/types/src/capabilities/state/index.d.ts +0 -3
  447. package/dist/types/src/capabilities/state/index.d.ts.map +0 -1
  448. package/dist/types/src/capabilities/state/state.d.ts +0 -7
  449. package/dist/types/src/capabilities/state/state.d.ts.map +0 -1
  450. package/dist/types/src/components/CallDebugPanel.d.ts.map +0 -1
  451. package/dist/types/src/components/CallSidebar.d.ts.map +0 -1
  452. package/dist/types/src/components/ChannelContainer.d.ts +0 -13
  453. package/dist/types/src/components/ChannelContainer.d.ts.map +0 -1
  454. package/dist/types/src/components/ChannelContainer.stories.d.ts +0 -164
  455. package/dist/types/src/components/ChannelContainer.stories.d.ts.map +0 -1
  456. package/dist/types/src/components/Chat.stories.d.ts +0 -164
  457. package/dist/types/src/components/Chat.stories.d.ts.map +0 -1
  458. package/dist/types/src/components/ChatContainer.d.ts +0 -18
  459. package/dist/types/src/components/ChatContainer.d.ts.map +0 -1
  460. package/dist/types/src/components/Comments.stories.d.ts +0 -162
  461. package/dist/types/src/components/Comments.stories.d.ts.map +0 -1
  462. package/dist/types/src/components/CommentsContainer.d.ts +0 -13
  463. package/dist/types/src/components/CommentsContainer.d.ts.map +0 -1
  464. package/dist/types/src/components/CommentsThreadContainer.d.ts.map +0 -1
  465. package/dist/types/src/components/MessageContainer.d.ts +0 -15
  466. package/dist/types/src/components/MessageContainer.d.ts.map +0 -1
  467. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.d.ts.map +0 -1
  468. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts +0 -166
  469. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts.map +0 -1
  470. package/dist/types/src/components/ThreadCompanion.d.ts +0 -5
  471. package/dist/types/src/components/ThreadCompanion.d.ts.map +0 -1
  472. package/dist/types/src/components/ThreadSettings.d.ts +0 -8
  473. package/dist/types/src/components/ThreadSettings.d.ts.map +0 -1
  474. package/dist/types/src/components/command-extension.d.ts.map +0 -1
  475. package/dist/types/src/components/testing.d.ts.map +0 -1
  476. package/dist/types/src/functions/create-proposals.d.ts +0 -6
  477. package/dist/types/src/functions/create-proposals.d.ts.map +0 -1
  478. package/dist/types/src/functions/index.d.ts +0 -2
  479. package/dist/types/src/functions/index.d.ts.map +0 -1
  480. package/dist/types/src/testing/stories.d.ts +0 -3
  481. package/dist/types/src/testing/stories.d.ts.map +0 -1
  482. package/dist/types/src/types/Channel.d.ts +0 -695
  483. package/dist/types/src/types/Channel.d.ts.map +0 -1
  484. package/src/capabilities/app-graph-builder/index.ts +0 -7
  485. package/src/capabilities/blueprint-definition/blueprint-definition.ts +0 -23
  486. package/src/capabilities/blueprint-definition/index.ts +0 -7
  487. package/src/capabilities/call-manager/index.ts +0 -7
  488. package/src/capabilities/markdown/index.ts +0 -7
  489. package/src/capabilities/operation-resolver/index.ts +0 -7
  490. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -400
  491. package/src/capabilities/react-root/index.ts +0 -7
  492. package/src/capabilities/react-surface/index.ts +0 -7
  493. package/src/capabilities/react-surface/react-surface.tsx +0 -97
  494. package/src/capabilities/repair/index.ts +0 -7
  495. package/src/capabilities/repair/repair.ts +0 -51
  496. package/src/capabilities/settings/index.ts +0 -7
  497. package/src/capabilities/state/index.ts +0 -7
  498. package/src/components/ChannelContainer.stories.tsx +0 -61
  499. package/src/components/ChatContainer.tsx +0 -155
  500. package/src/components/ThreadSettings.tsx +0 -21
  501. package/src/functions/create-proposals.ts +0 -57
  502. package/src/functions/index.ts +0 -5
  503. package/src/testing/stories.ts +0 -55
  504. package/src/types/Channel.ts +0 -30
@@ -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';
25
24
 
26
- import { command } from './command-extension';
27
- import { MessageContainer, buttonClassNames, buttonGroupClassNames } from './MessageContainer';
25
+ import { command } from '../../extensions/command';
26
+ import { getMessageMetadata } from '../../util';
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()!;
@@ -64,7 +64,7 @@ export const CommentsThreadContainer = ({
64
64
  const messageRef = useRef('');
65
65
  const extensions = useMemo(
66
66
  () => [
67
- createBasicExtensions({ placeholder: t('message placeholder') }),
67
+ createBasicExtensions({ placeholder: t('message.placeholder') }),
68
68
  createThemeExtensions({ themeMode }),
69
69
  listener({ onChange: ({ text }) => (messageRef.current = text) }),
70
70
  command,
@@ -82,7 +82,7 @@ export const CommentsThreadContainer = ({
82
82
  const handleThreadDelete = useCallback(() => onThreadDelete?.(anchor), [onThreadDelete, anchor]);
83
83
  const handleAcceptProposal = useCallback((id: string) => onAcceptProposal?.(anchor, id), [onAcceptProposal, anchor]);
84
84
 
85
- const handleComment: MessageTextboxProps['onSend'] = useCallback(() => {
85
+ const handleComment = useCallback<NonNullable<MessageTextboxProps['onSend']>>(() => {
86
86
  if (!messageRef.current) {
87
87
  return false;
88
88
  }
@@ -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,27 +106,27 @@ 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
  )}
113
113
  >
114
114
  {detached ? (
115
- <Tooltip.Trigger asChild content={t('detached thread label')} side='top'>
115
+ <Tooltip.Trigger asChild content={t('detached-thread.label')} side='top'>
116
116
  <ThreadComponent.Header detached>{thread.name}</ThreadComponent.Header>
117
117
  </Tooltip.Trigger>
118
118
  ) : (
119
119
  <ThreadComponent.Header>{thread.name}</ThreadComponent.Header>
120
120
  )}
121
121
  <div role='none' className={buttonGroupClassNames}>
122
- {thread.status === 'staged' && <Tag palette='neutral'>{t('draft button')}</Tag>}
122
+ {thread.status === 'staged' && <Tag palette='neutral'>{t('draft.button')}</Tag>}
123
123
  {onResolve && !(thread?.status === 'staged') && (
124
124
  <IconButton
125
125
  data-testid='thread.resolve'
126
126
  variant='ghost'
127
127
  icon={thread?.status === 'resolved' ? 'ph--check--fill' : 'ph--check--regular'}
128
128
  iconOnly
129
- label={t('resolve thread label')}
129
+ label={t('resolve-thread.label')}
130
130
  classNames={[buttonClassNames, thread?.status !== 'resolved' && hoverableControlItem]}
131
131
  onClick={handleResolve}
132
132
  />
@@ -137,7 +137,7 @@ export const CommentsThreadContainer = ({
137
137
  variant='ghost'
138
138
  icon='ph--x--regular'
139
139
  iconOnly
140
- label={t('delete thread label')}
140
+ label={t('delete-thread.label')}
141
141
  classNames={[buttonClassNames, hoverableControlItem]}
142
142
  onClick={handleThreadDelete}
143
143
  />
@@ -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}
@@ -164,10 +164,9 @@ export const CommentsThreadContainer = ({
164
164
  */}
165
165
  <MessageTextbox extensions={extensions} onSend={handleComment} {...textboxMetadata} />
166
166
 
167
- <ThreadComponent.Status activity={activity}>{t('activity message')}</ThreadComponent.Status>
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';
@@ -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
- 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
 
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,
@@ -5,44 +5,45 @@
5
5
  import { EditorView } from '@codemirror/view';
6
6
  import React, { forwardRef, useCallback, useEffect, useRef, useState } from 'react';
7
7
 
8
- import { Surface } from '@dxos/app-framework/react';
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();
@@ -96,7 +97,7 @@ export const MessageContainer = ({
96
97
  variant='ghost'
97
98
  icon={editing ? 'ph--check--regular' : 'ph--pencil-simple--regular'}
98
99
  iconOnly
99
- label={t(editing ? 'save message label' : 'edit message label')}
100
+ label={t(editing ? 'save-message.label' : 'edit-message.label')}
100
101
  classNames={[buttonClassNames, hoverableControlItem]}
101
102
  onClick={handleEdit}
102
103
  />
@@ -108,7 +109,7 @@ export const MessageContainer = ({
108
109
  variant='ghost'
109
110
  icon='ph--check--regular'
110
111
  iconOnly
111
- label={t('accept proposal label')}
112
+ label={t('accept-proposal.label')}
112
113
  classNames={[buttonClassNames, hoverableControlItem]}
113
114
  onClick={handleAcceptProposal}
114
115
  />
@@ -119,7 +120,7 @@ export const MessageContainer = ({
119
120
  variant='ghost'
120
121
  icon='ph--x--regular'
121
122
  iconOnly
122
- label={t('delete message label')}
123
+ label={t('delete-message.label')}
123
124
  classNames={[buttonClassNames, hoverableControlItem]}
124
125
  onClick={handleDelete}
125
126
  />
@@ -187,12 +188,12 @@ const TextboxBlock = ({
187
188
  editing && view?.focus();
188
189
  }, [editing, view]);
189
190
 
190
- return <div role='none' ref={parentRef} className='mie-4' {...focusAttributes} />;
191
+ return <div role='none' ref={parentRef} className='me-4' {...focusAttributes} />;
191
192
  };
192
193
 
193
194
  const ProposalBlock = ({ block }: { block: ContentBlock.Proposal }) => {
194
195
  return (
195
- <div role='none' className='mie-4 italic'>
196
+ <div role='none' className='me-4 italic'>
196
197
  {block.text}
197
198
  </div>
198
199
  );
@@ -207,10 +208,15 @@ const MessageBlockObjectTile = forwardRef<HTMLDivElement, { subject: Obj.Unknown
207
208
 
208
209
  return (
209
210
  <Card.Root
210
- className={mx('grid col-span-3 plb-1 pr-4', hoverableControls, hoverableFocusedWithinControls)}
211
+ className={mx('grid col-span-3 py-1 pr-4', hoverableControls, hoverableFocusedWithinControls)}
211
212
  ref={forwardedRef}
212
213
  >
213
- <Surface role='card-content' limit={1} data={{ subject }} fallback={title} />
214
+ <Surface.Surface
215
+ type={AppSurface.Card}
216
+ limit={1}
217
+ data={{ subject } satisfies AppSurface.ObjectCardData}
218
+ fallback={title}
219
+ />
214
220
  </Card.Root>
215
221
  );
216
222
  });
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ export * from './MessagePanel';
@@ -5,10 +5,11 @@
5
5
  import { useAtomValue } from '@effect-atom/atom-react';
6
6
  import React, { memo, useMemo } from 'react';
7
7
 
8
- import { useCapability } from '@dxos/app-framework/react';
8
+ import { useCapability } from '@dxos/app-framework/ui';
9
+
10
+ import { ThreadCapabilities } from '#types';
9
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: {