@dxos/plugin-thread 0.8.3 → 0.8.4-main.2e9d522

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 (247) hide show
  1. package/dist/lib/browser/ChannelContainer-IY2UIRLF.mjs +16 -0
  2. package/dist/lib/browser/ChatContainer-AIGIWAUG.mjs +15 -0
  3. package/dist/lib/browser/{app-graph-builder-OY7R7EJP.mjs → app-graph-builder-N7BE5TYW.mjs} +6 -6
  4. package/dist/lib/browser/{call-manager-APQAZWHT.mjs → call-manager-NIPDYUVD.mjs} +6 -5
  5. package/dist/lib/browser/chunk-4OYAYON2.mjs +21 -0
  6. package/dist/lib/browser/chunk-6NSMBO3B.mjs +56 -0
  7. package/dist/lib/browser/chunk-6NSMBO3B.mjs.map +7 -0
  8. package/dist/lib/browser/{chunk-5P5BH5GE.mjs → chunk-ERWASUQK.mjs} +66 -5
  9. package/dist/lib/browser/chunk-ERWASUQK.mjs.map +7 -0
  10. package/dist/lib/browser/{chunk-IIUTBDVB.mjs → chunk-EV4JWI7L.mjs} +2 -2
  11. package/dist/lib/browser/{chunk-AEXWNS6Z.mjs → chunk-GCLD5ESP.mjs} +14 -5
  12. package/dist/lib/browser/chunk-GCLD5ESP.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-JKQUJOTX.mjs → chunk-GERVMFQW.mjs} +2 -2
  14. package/dist/lib/browser/{chunk-XZKBN3NS.mjs → chunk-KWPRNHTK.mjs} +32 -31
  15. package/dist/lib/browser/chunk-KWPRNHTK.mjs.map +7 -0
  16. package/dist/lib/browser/{chunk-R5MDLUPC.mjs → chunk-LGSDKXPF.mjs} +3 -3
  17. package/dist/lib/browser/chunk-VUWC4IJM.mjs +479 -0
  18. package/dist/lib/browser/chunk-VUWC4IJM.mjs.map +7 -0
  19. package/dist/lib/browser/chunk-XLPJXUKO.mjs +367 -0
  20. package/dist/lib/browser/chunk-XLPJXUKO.mjs.map +7 -0
  21. package/dist/lib/browser/{chunk-4H4A264L.mjs → chunk-ZE7KWN36.mjs} +85 -124
  22. package/dist/lib/browser/chunk-ZE7KWN36.mjs.map +7 -0
  23. package/dist/lib/browser/index.mjs +35 -41
  24. package/dist/lib/browser/index.mjs.map +3 -3
  25. package/dist/lib/browser/{intent-resolver-FK2MDVDT.mjs → intent-resolver-JFGLZ6VI.mjs} +30 -14
  26. package/dist/lib/browser/intent-resolver-JFGLZ6VI.mjs.map +7 -0
  27. package/dist/lib/browser/{markdown-TE5SWWNJ.mjs → markdown-GEXBVJYN.mjs} +7 -7
  28. package/dist/lib/browser/meta.json +1 -1
  29. package/dist/lib/browser/react-root-X4UIVGTX.mjs +28 -0
  30. package/dist/lib/browser/{react-surface-VXUJKSOG.mjs → react-surface-YCYEFBPM.mjs} +12 -11
  31. package/dist/lib/browser/{settings-RB2RSLXV.mjs → settings-E32MTL7A.mjs} +4 -4
  32. package/dist/lib/browser/{state-RKL5MSDP.mjs → state-H6CYONWE.mjs} +4 -4
  33. package/dist/lib/browser/types/index.mjs +2 -2
  34. package/dist/lib/node-esm/ChannelContainer-DET6T5N2.mjs +17 -0
  35. package/dist/lib/node-esm/{ChatContainer-F6CSADV7.mjs → ChatContainer-IQUWU426.mjs} +6 -5
  36. package/dist/lib/node-esm/{app-graph-builder-BAHBHYWI.mjs → app-graph-builder-VCW76Z6V.mjs} +6 -6
  37. package/dist/lib/node-esm/{call-manager-UUYXLF4T.mjs → call-manager-D6O5ZJJ4.mjs} +6 -5
  38. package/dist/lib/{browser/call-manager-APQAZWHT.mjs.map → node-esm/call-manager-D6O5ZJJ4.mjs.map} +1 -1
  39. package/dist/lib/node-esm/{chunk-O3V45YJP.mjs → chunk-25ABSYP2.mjs} +65 -5
  40. package/dist/lib/node-esm/chunk-25ABSYP2.mjs.map +7 -0
  41. package/dist/lib/node-esm/chunk-2MFNK53T.mjs +480 -0
  42. package/dist/lib/node-esm/chunk-2MFNK53T.mjs.map +7 -0
  43. package/dist/lib/node-esm/{chunk-PGRP3O4O.mjs → chunk-57XR3LEF.mjs} +2 -2
  44. package/dist/lib/node-esm/{chunk-K4KAUOKT.mjs → chunk-75RJ5DJI.mjs} +3 -3
  45. package/dist/lib/node-esm/{chunk-2RNIPFDA.mjs → chunk-C3XFMUAY.mjs} +32 -31
  46. package/dist/lib/node-esm/chunk-C3XFMUAY.mjs.map +7 -0
  47. package/dist/lib/node-esm/{chunk-ESQC6SYE.mjs → chunk-GRLRWTRU.mjs} +2 -2
  48. package/dist/lib/node-esm/chunk-GW37AAM4.mjs +23 -0
  49. package/dist/lib/node-esm/{chunk-WXNPD542.mjs → chunk-IHDNQLLR.mjs} +84 -124
  50. package/dist/lib/node-esm/chunk-IHDNQLLR.mjs.map +7 -0
  51. package/dist/lib/node-esm/chunk-J4NSON5Q.mjs +368 -0
  52. package/dist/lib/node-esm/chunk-J4NSON5Q.mjs.map +7 -0
  53. package/dist/lib/node-esm/chunk-OU5BYIDO.mjs +58 -0
  54. package/dist/lib/node-esm/chunk-OU5BYIDO.mjs.map +7 -0
  55. package/dist/lib/node-esm/{chunk-UJMPYKT3.mjs → chunk-TDFHTCZZ.mjs} +14 -5
  56. package/dist/lib/node-esm/chunk-TDFHTCZZ.mjs.map +7 -0
  57. package/dist/lib/node-esm/index.mjs +35 -41
  58. package/dist/lib/node-esm/index.mjs.map +3 -3
  59. package/dist/lib/node-esm/{intent-resolver-BU73VYW3.mjs → intent-resolver-OXGNQ44Y.mjs} +30 -14
  60. package/dist/lib/node-esm/intent-resolver-OXGNQ44Y.mjs.map +7 -0
  61. package/dist/lib/node-esm/{markdown-HJUWNBLS.mjs → markdown-LIJZDK2J.mjs} +7 -7
  62. package/dist/lib/node-esm/meta.json +1 -1
  63. package/dist/lib/node-esm/{react-root-RUXOAQNW.mjs → react-root-M7J6PZVW.mjs} +12 -11
  64. package/dist/lib/{browser/react-root-NK3A4VG7.mjs.map → node-esm/react-root-M7J6PZVW.mjs.map} +1 -1
  65. package/dist/lib/node-esm/{react-surface-ELXFYKP6.mjs → react-surface-IRSEKM42.mjs} +12 -11
  66. package/dist/lib/{browser/react-surface-VXUJKSOG.mjs.map → node-esm/react-surface-IRSEKM42.mjs.map} +1 -1
  67. package/dist/lib/node-esm/{settings-EA7DFSM6.mjs → settings-SJ24YG7M.mjs} +4 -4
  68. package/dist/lib/node-esm/{state-6AUTNROZ.mjs → state-D7WNDT3N.mjs} +4 -4
  69. package/dist/lib/node-esm/types/index.mjs +2 -2
  70. package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
  71. package/dist/types/src/calls/call-manager.d.ts +1 -1
  72. package/dist/types/src/calls/call-manager.d.ts.map +1 -1
  73. package/dist/types/src/calls/media-manager.d.ts.map +1 -1
  74. package/dist/types/src/calls/util/calls-service.d.ts +4 -1
  75. package/dist/types/src/calls/util/calls-service.d.ts.map +1 -1
  76. package/dist/types/src/calls/util/stub-media-streams.d.ts.map +1 -1
  77. package/dist/types/src/calls-service.stories.d.ts +22 -0
  78. package/dist/types/src/calls-service.stories.d.ts.map +1 -0
  79. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  80. package/dist/types/src/components/ChannelContainer.d.ts.map +1 -1
  81. package/dist/types/src/components/ChannelContainer.stories.d.ts +2 -2
  82. package/dist/types/src/components/ChannelContainer.stories.d.ts.map +1 -1
  83. package/dist/types/src/components/Chat.stories.d.ts +3 -2
  84. package/dist/types/src/components/Chat.stories.d.ts.map +1 -1
  85. package/dist/types/src/components/ChatContainer.d.ts +2 -2
  86. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  87. package/dist/types/src/components/Comments.stories.d.ts +1 -1
  88. package/dist/types/src/components/Comments.stories.d.ts.map +1 -1
  89. package/dist/types/src/components/CommentsContainer.d.ts +4 -4
  90. package/dist/types/src/components/CommentsContainer.d.ts.map +1 -1
  91. package/dist/types/src/components/CommentsThreadContainer.d.ts +14 -0
  92. package/dist/types/src/components/CommentsThreadContainer.d.ts.map +1 -0
  93. package/dist/types/src/components/Media/VideoObject.stories.d.ts +1 -1
  94. package/dist/types/src/components/Media/VideoObject.stories.d.ts.map +1 -1
  95. package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
  96. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts +1 -1
  97. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts.map +1 -1
  98. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +1 -1
  99. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts.map +1 -1
  100. package/dist/types/src/components/index.d.ts +1 -1
  101. package/dist/types/src/components/index.d.ts.map +1 -1
  102. package/dist/types/src/hooks/index.d.ts +2 -0
  103. package/dist/types/src/hooks/index.d.ts.map +1 -1
  104. package/dist/types/src/hooks/useInaudibleAudioStreamTrack.d.ts +2 -0
  105. package/dist/types/src/hooks/useInaudibleAudioStreamTrack.d.ts.map +1 -0
  106. package/dist/types/src/hooks/useVideoStreamTrack.d.ts +3 -0
  107. package/dist/types/src/hooks/useVideoStreamTrack.d.ts.map +1 -0
  108. package/dist/types/src/testing/stories.d.ts.map +1 -1
  109. package/dist/types/src/translations.d.ts +74 -194
  110. package/dist/types/src/translations.d.ts.map +1 -1
  111. package/dist/types/src/types/schema.d.ts +50 -21
  112. package/dist/types/src/types/schema.d.ts.map +1 -1
  113. package/dist/types/src/types/types.d.ts +68 -22
  114. package/dist/types/src/types/types.d.ts.map +1 -1
  115. package/dist/types/src/util.d.ts +17 -2
  116. package/dist/types/src/util.d.ts.map +1 -1
  117. package/dist/types/tsconfig.tsbuildinfo +1 -1
  118. package/package.json +47 -48
  119. package/src/ThreadPlugin.tsx +7 -22
  120. package/src/calls/call-manager.ts +6 -2
  121. package/src/calls/media-manager.ts +11 -4
  122. package/src/calls/util/calls-service.ts +8 -5
  123. package/src/calls/util/stub-media-streams.ts +3 -6
  124. package/src/calls-service.stories.tsx +216 -0
  125. package/src/capabilities/intent-resolver.ts +22 -4
  126. package/src/components/Call/Call.tsx +1 -1
  127. package/src/components/Call/Toolbar.tsx +3 -3
  128. package/src/components/CallDebugPanel.tsx +2 -2
  129. package/src/components/ChannelContainer.stories.tsx +5 -5
  130. package/src/components/ChannelContainer.tsx +6 -5
  131. package/src/components/Chat.stories.tsx +4 -4
  132. package/src/components/ChatContainer.tsx +12 -11
  133. package/src/components/Comments.stories.tsx +22 -15
  134. package/src/components/CommentsContainer.tsx +16 -11
  135. package/src/components/{CommentContainer.tsx → CommentsThreadContainer.tsx} +49 -80
  136. package/src/components/Media/VideoObject.stories.tsx +1 -1
  137. package/src/components/MessageContainer.tsx +29 -45
  138. package/src/components/ResponsiveGrid/ResponsiveContainer.stories.tsx +2 -2
  139. package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +3 -3
  140. package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +2 -2
  141. package/src/components/ThreadComplementary.tsx +2 -2
  142. package/src/components/ThreadSettings.tsx +2 -2
  143. package/src/components/index.ts +1 -1
  144. package/src/components/testing.ts +2 -2
  145. package/src/hooks/index.ts +2 -0
  146. package/src/hooks/useInaudibleAudioStreamTrack.tsx +27 -0
  147. package/src/hooks/useVideoStreamTrack.tsx +33 -0
  148. package/src/testing/stories.ts +5 -1
  149. package/src/translations.ts +11 -8
  150. package/src/types/types.ts +9 -1
  151. package/dist/lib/browser/ChannelContainer-PKFBVENP.mjs +0 -15
  152. package/dist/lib/browser/ChatContainer-RSOKYAMK.mjs +0 -14
  153. package/dist/lib/browser/chunk-4H4A264L.mjs.map +0 -7
  154. package/dist/lib/browser/chunk-5P5BH5GE.mjs.map +0 -7
  155. package/dist/lib/browser/chunk-6NBVNXTM.mjs +0 -21
  156. package/dist/lib/browser/chunk-AEXWNS6Z.mjs.map +0 -7
  157. package/dist/lib/browser/chunk-PG5CTFKK.mjs +0 -550
  158. package/dist/lib/browser/chunk-PG5CTFKK.mjs.map +0 -7
  159. package/dist/lib/browser/chunk-TAFSCSUR.mjs +0 -351
  160. package/dist/lib/browser/chunk-TAFSCSUR.mjs.map +0 -7
  161. package/dist/lib/browser/chunk-XZKBN3NS.mjs.map +0 -7
  162. package/dist/lib/browser/intent-resolver-FK2MDVDT.mjs.map +0 -7
  163. package/dist/lib/browser/react-root-NK3A4VG7.mjs +0 -27
  164. package/dist/lib/node/ChannelContainer-YS5YT2ML.cjs +0 -36
  165. package/dist/lib/node/ChannelContainer-YS5YT2ML.cjs.map +0 -7
  166. package/dist/lib/node/ChatContainer-GCOM3M56.cjs +0 -35
  167. package/dist/lib/node/ChatContainer-GCOM3M56.cjs.map +0 -7
  168. package/dist/lib/node/app-graph-builder-PBHJNDQY.cjs +0 -179
  169. package/dist/lib/node/app-graph-builder-PBHJNDQY.cjs.map +0 -7
  170. package/dist/lib/node/call-manager-HV2XJW5O.cjs +0 -37
  171. package/dist/lib/node/call-manager-HV2XJW5O.cjs.map +0 -7
  172. package/dist/lib/node/chunk-44I33JDT.cjs +0 -1731
  173. package/dist/lib/node/chunk-44I33JDT.cjs.map +0 -7
  174. package/dist/lib/node/chunk-4YSNVPWU.cjs +0 -37
  175. package/dist/lib/node/chunk-4YSNVPWU.cjs.map +0 -7
  176. package/dist/lib/node/chunk-E3WBZTTI.cjs +0 -371
  177. package/dist/lib/node/chunk-E3WBZTTI.cjs.map +0 -7
  178. package/dist/lib/node/chunk-ERG7G6FF.cjs +0 -59
  179. package/dist/lib/node/chunk-ERG7G6FF.cjs.map +0 -7
  180. package/dist/lib/node/chunk-FUXJAVFZ.cjs +0 -108
  181. package/dist/lib/node/chunk-FUXJAVFZ.cjs.map +0 -7
  182. package/dist/lib/node/chunk-HLMCEE5K.cjs +0 -41
  183. package/dist/lib/node/chunk-HLMCEE5K.cjs.map +0 -7
  184. package/dist/lib/node/chunk-IP533AMV.cjs +0 -554
  185. package/dist/lib/node/chunk-IP533AMV.cjs.map +0 -7
  186. package/dist/lib/node/chunk-LR5NENBE.cjs +0 -54
  187. package/dist/lib/node/chunk-LR5NENBE.cjs.map +0 -7
  188. package/dist/lib/node/chunk-UM36TPCT.cjs +0 -984
  189. package/dist/lib/node/chunk-UM36TPCT.cjs.map +0 -7
  190. package/dist/lib/node/chunk-ZGDN3XBR.cjs +0 -149
  191. package/dist/lib/node/chunk-ZGDN3XBR.cjs.map +0 -7
  192. package/dist/lib/node/index.cjs +0 -310
  193. package/dist/lib/node/index.cjs.map +0 -7
  194. package/dist/lib/node/intent-resolver-SYSJ5SJG.cjs +0 -363
  195. package/dist/lib/node/intent-resolver-SYSJ5SJG.cjs.map +0 -7
  196. package/dist/lib/node/markdown-GQIPJS2F.cjs +0 -178
  197. package/dist/lib/node/markdown-GQIPJS2F.cjs.map +0 -7
  198. package/dist/lib/node/meta.json +0 -1
  199. package/dist/lib/node/react-root-6HHDMULJ.cjs +0 -51
  200. package/dist/lib/node/react-root-6HHDMULJ.cjs.map +0 -7
  201. package/dist/lib/node/react-surface-NBH42NN2.cjs +0 -122
  202. package/dist/lib/node/react-surface-NBH42NN2.cjs.map +0 -7
  203. package/dist/lib/node/settings-4LQSFEDK.cjs +0 -36
  204. package/dist/lib/node/settings-4LQSFEDK.cjs.map +0 -7
  205. package/dist/lib/node/state-IY5XX3H2.cjs +0 -50
  206. package/dist/lib/node/state-IY5XX3H2.cjs.map +0 -7
  207. package/dist/lib/node/types/index.cjs +0 -38
  208. package/dist/lib/node/types/index.cjs.map +0 -7
  209. package/dist/lib/node-esm/ChannelContainer-O4QJII2P.mjs +0 -16
  210. package/dist/lib/node-esm/chunk-2RNIPFDA.mjs.map +0 -7
  211. package/dist/lib/node-esm/chunk-O3V45YJP.mjs.map +0 -7
  212. package/dist/lib/node-esm/chunk-O63QJPQX.mjs +0 -23
  213. package/dist/lib/node-esm/chunk-P6RLFCNT.mjs +0 -352
  214. package/dist/lib/node-esm/chunk-P6RLFCNT.mjs.map +0 -7
  215. package/dist/lib/node-esm/chunk-UJMPYKT3.mjs.map +0 -7
  216. package/dist/lib/node-esm/chunk-UZWVVFT3.mjs +0 -551
  217. package/dist/lib/node-esm/chunk-UZWVVFT3.mjs.map +0 -7
  218. package/dist/lib/node-esm/chunk-WXNPD542.mjs.map +0 -7
  219. package/dist/lib/node-esm/intent-resolver-BU73VYW3.mjs.map +0 -7
  220. package/dist/types/src/components/CommentContainer.d.ts +0 -13
  221. package/dist/types/src/components/CommentContainer.d.ts.map +0 -1
  222. package/dist/types/src/peers.stories.d.ts +0 -11
  223. package/dist/types/src/peers.stories.d.ts.map +0 -1
  224. package/src/peers.stories.tsx +0 -189
  225. /package/dist/lib/browser/{ChannelContainer-PKFBVENP.mjs.map → ChannelContainer-IY2UIRLF.mjs.map} +0 -0
  226. /package/dist/lib/browser/{ChatContainer-RSOKYAMK.mjs.map → ChatContainer-AIGIWAUG.mjs.map} +0 -0
  227. /package/dist/lib/browser/{app-graph-builder-OY7R7EJP.mjs.map → app-graph-builder-N7BE5TYW.mjs.map} +0 -0
  228. /package/dist/lib/{node-esm/call-manager-UUYXLF4T.mjs.map → browser/call-manager-NIPDYUVD.mjs.map} +0 -0
  229. /package/dist/lib/browser/{chunk-6NBVNXTM.mjs.map → chunk-4OYAYON2.mjs.map} +0 -0
  230. /package/dist/lib/browser/{chunk-IIUTBDVB.mjs.map → chunk-EV4JWI7L.mjs.map} +0 -0
  231. /package/dist/lib/browser/{chunk-JKQUJOTX.mjs.map → chunk-GERVMFQW.mjs.map} +0 -0
  232. /package/dist/lib/browser/{chunk-R5MDLUPC.mjs.map → chunk-LGSDKXPF.mjs.map} +0 -0
  233. /package/dist/lib/browser/{markdown-TE5SWWNJ.mjs.map → markdown-GEXBVJYN.mjs.map} +0 -0
  234. /package/dist/lib/{node-esm/react-root-RUXOAQNW.mjs.map → browser/react-root-X4UIVGTX.mjs.map} +0 -0
  235. /package/dist/lib/{node-esm/react-surface-ELXFYKP6.mjs.map → browser/react-surface-YCYEFBPM.mjs.map} +0 -0
  236. /package/dist/lib/browser/{settings-RB2RSLXV.mjs.map → settings-E32MTL7A.mjs.map} +0 -0
  237. /package/dist/lib/browser/{state-RKL5MSDP.mjs.map → state-H6CYONWE.mjs.map} +0 -0
  238. /package/dist/lib/node-esm/{ChannelContainer-O4QJII2P.mjs.map → ChannelContainer-DET6T5N2.mjs.map} +0 -0
  239. /package/dist/lib/node-esm/{ChatContainer-F6CSADV7.mjs.map → ChatContainer-IQUWU426.mjs.map} +0 -0
  240. /package/dist/lib/node-esm/{app-graph-builder-BAHBHYWI.mjs.map → app-graph-builder-VCW76Z6V.mjs.map} +0 -0
  241. /package/dist/lib/node-esm/{chunk-PGRP3O4O.mjs.map → chunk-57XR3LEF.mjs.map} +0 -0
  242. /package/dist/lib/node-esm/{chunk-K4KAUOKT.mjs.map → chunk-75RJ5DJI.mjs.map} +0 -0
  243. /package/dist/lib/node-esm/{chunk-ESQC6SYE.mjs.map → chunk-GRLRWTRU.mjs.map} +0 -0
  244. /package/dist/lib/node-esm/{chunk-O63QJPQX.mjs.map → chunk-GW37AAM4.mjs.map} +0 -0
  245. /package/dist/lib/node-esm/{markdown-HJUWNBLS.mjs.map → markdown-LIJZDK2J.mjs.map} +0 -0
  246. /package/dist/lib/node-esm/{settings-EA7DFSM6.mjs.map → settings-SJ24YG7M.mjs.map} +0 -0
  247. /package/dist/lib/node-esm/{state-6AUTNROZ.mjs.map → state-D7WNDT3N.mjs.map} +0 -0
@@ -1,41 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var chunk_HLMCEE5K_exports = {};
20
- __export(chunk_HLMCEE5K_exports, {
21
- THREAD_ITEM: () => THREAD_ITEM,
22
- THREAD_PLUGIN: () => THREAD_PLUGIN,
23
- meta: () => meta
24
- });
25
- module.exports = __toCommonJS(chunk_HLMCEE5K_exports);
26
- var THREAD_PLUGIN = "dxos.org/plugin/thread";
27
- var THREAD_ITEM = `${THREAD_PLUGIN}/item`;
28
- var meta = {
29
- id: THREAD_PLUGIN,
30
- name: "Chat",
31
- description: "Chat via text, voice, and video in channels or create comment threads on objects.",
32
- icon: "ph--video-conference--regular",
33
- source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-thread"
34
- };
35
- // Annotate the CommonJS export names for ESM import in node:
36
- 0 && (module.exports = {
37
- THREAD_ITEM,
38
- THREAD_PLUGIN,
39
- meta
40
- });
41
- //# sourceMappingURL=chunk-HLMCEE5K.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/meta.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const THREAD_PLUGIN = 'dxos.org/plugin/thread';\nexport const THREAD_ITEM = `${THREAD_PLUGIN}/item`;\n\n// TODO(wittjosiah): Needs screenshots.\nexport const meta: PluginMeta = {\n id: THREAD_PLUGIN,\n name: 'Chat',\n description: 'Chat via text, voice, and video in channels or create comment threads on objects.',\n icon: 'ph--video-conference--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-thread',\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAMO,IAAMA,gBAAgB;AACtB,IAAMC,cAAc,GAAGD,aAAAA;AAGvB,IAAME,OAAmB;EAC9BC,IAAIH;EACJI,MAAM;EACNC,aAAa;EACbC,MAAM;EACNC,QAAQ;AACV;",
6
- "names": ["THREAD_PLUGIN", "THREAD_ITEM", "meta", "id", "name", "description", "icon", "source"]
7
- }
@@ -1,554 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_IP533AMV_exports = {};
30
- __export(chunk_IP533AMV_exports, {
31
- CallDebugPanel: () => CallDebugPanel,
32
- CallSidebar: () => CallSidebar,
33
- ChannelContainer: () => ChannelContainer2,
34
- ChatContainer: () => ChatContainer,
35
- ThreadComplementary: () => ThreadComplementary,
36
- ThreadSettings: () => ThreadSettings
37
- });
38
- module.exports = __toCommonJS(chunk_IP533AMV_exports);
39
- var import_chunk_ZGDN3XBR = require("./chunk-ZGDN3XBR.cjs");
40
- var import_chunk_UM36TPCT = require("./chunk-UM36TPCT.cjs");
41
- var import_chunk_4YSNVPWU = require("./chunk-4YSNVPWU.cjs");
42
- var import_chunk_E3WBZTTI = require("./chunk-E3WBZTTI.cjs");
43
- var import_chunk_FUXJAVFZ = require("./chunk-FUXJAVFZ.cjs");
44
- var import_chunk_LR5NENBE = require("./chunk-LR5NENBE.cjs");
45
- var import_chunk_HLMCEE5K = require("./chunk-HLMCEE5K.cjs");
46
- var import_tracking = require("@preact-signals/safe-react/tracking");
47
- var import_webrtc_stats = require("@peermetrics/webrtc-stats");
48
- var import_react = __toESM(require("react"));
49
- var import_devtools = require("@dxos/devtools");
50
- var import_log = require("@dxos/log");
51
- var import_react_ui = require("@dxos/react-ui");
52
- var import_react_ui_syntax_highlighter = require("@dxos/react-ui-syntax-highlighter");
53
- var import_tracking2 = require("@preact-signals/safe-react/tracking");
54
- var import_react2 = __toESM(require("react"));
55
- var import_app_framework = require("@dxos/app-framework");
56
- var import_tracking3 = require("@preact-signals/safe-react/tracking");
57
- var import_react3 = __toESM(require("react"));
58
- var import_app_framework2 = require("@dxos/app-framework");
59
- var import_echo = require("@dxos/echo");
60
- var import_echo2 = require("@dxos/react-client/echo");
61
- var import_halo = require("@dxos/react-client/halo");
62
- var import_react_ui2 = require("@dxos/react-ui");
63
- var import_react_ui_attention = require("@dxos/react-ui-attention");
64
- var import_react_ui_stack = require("@dxos/react-ui-stack");
65
- var import_react_ui_tabs = require("@dxos/react-ui-tabs");
66
- var import_schema = require("@dxos/schema");
67
- var import_react4 = require("react");
68
- var import_tracking4 = require("@preact-signals/safe-react/tracking");
69
- var import_react5 = require("@phosphor-icons/react");
70
- var import_react6 = __toESM(require("react"));
71
- var import_echo3 = require("@dxos/echo");
72
- var import_live_object = require("@dxos/live-object");
73
- var import_echo4 = require("@dxos/react-client/echo");
74
- var import_halo2 = require("@dxos/react-client/halo");
75
- var import_react_ui3 = require("@dxos/react-ui");
76
- var import_react_ui_editor = require("@dxos/react-ui-editor");
77
- var import_react_ui_theme = require("@dxos/react-ui-theme");
78
- var import_react_ui_thread = require("@dxos/react-ui-thread");
79
- var import_util = require("@dxos/util");
80
- var import_tracking5 = require("@preact-signals/safe-react/tracking");
81
- var import_react7 = __toESM(require("react"));
82
- var import_echo5 = require("@dxos/echo");
83
- var import_echo6 = require("@dxos/react-client/echo");
84
- var import_react_ui4 = require("@dxos/react-ui");
85
- var import_tracking6 = require("@preact-signals/safe-react/tracking");
86
- var import_react8 = __toESM(require("react"));
87
- var import_react_ui_form = require("@dxos/react-ui-form");
88
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-thread/src/components/CallDebugPanel.tsx";
89
- var CallDebugPanel = ({ state }) => {
90
- var _effect = (0, import_tracking.useSignals)();
91
- try {
92
- const users = state?.call?.users;
93
- const self = state?.call?.self;
94
- const { t } = (0, import_react_ui.useTranslation)(import_chunk_HLMCEE5K.THREAD_PLUGIN);
95
- const [open, setOpen] = (0, import_react.useState)(false);
96
- const handleToggle = () => setOpen(!open);
97
- const [showDetailedWebRTCStats, setShowDetailedWebRTCStats] = (0, import_react.useState)(false);
98
- const handleShowDetailedWebRTCStats = () => setShowDetailedWebRTCStats(!showDetailedWebRTCStats);
99
- const webrtcStats = (0, import_react.useMemo)(() => new import_webrtc_stats.WebRTCStats({
100
- getStatsInterval: 1e3
101
- }), []);
102
- const [stats, setStats] = (0, import_react.useState)({});
103
- (0, import_react.useEffect)(() => {
104
- const pc = state?.media.peer?.session?.peerConnection;
105
- const handleStats = (stats2) => setStats(stats2.data);
106
- let added = false;
107
- if (pc && showDetailedWebRTCStats) {
108
- webrtcStats.addConnection({
109
- pc,
110
- peerId: 1,
111
- connectionId: "1"
112
- });
113
- webrtcStats.on("stats", handleStats);
114
- added = true;
115
- }
116
- return () => {
117
- try {
118
- if (pc && added) {
119
- webrtcStats.removeConnection({
120
- pc
121
- });
122
- webrtcStats.removeListener("stats", handleStats);
123
- }
124
- } catch (error) {
125
- import_log.log.error("error removing webrtc stats", {
126
- error,
127
- pc,
128
- peerId: 1,
129
- connectionId: "1"
130
- }, {
131
- F: __dxlog_file,
132
- L: 55,
133
- S: void 0,
134
- C: (f, a) => f(...a)
135
- });
136
- }
137
- };
138
- }, [
139
- state?.media.peer?.session?.peerConnection,
140
- showDetailedWebRTCStats
141
- ]);
142
- return /* @__PURE__ */ import_react.default.createElement(import_devtools.Panel, {
143
- id: "meeting-status",
144
- icon: "ph--video-conference--regular",
145
- open,
146
- onToggle: handleToggle,
147
- title: t("meeting status title"),
148
- maxHeight: false,
149
- info: /* @__PURE__ */ import_react.default.createElement("div", {
150
- className: "flex items-center gap-2"
151
- }, /* @__PURE__ */ import_react.default.createElement("span", {
152
- title: "Joined"
153
- }, self?.joined ? "Active" : "Inactive"), users?.length !== void 0 && /* @__PURE__ */ import_react.default.createElement("span", {
154
- title: "Users"
155
- }, users?.length ?? 0, " User(s)"))
156
- }, /* @__PURE__ */ import_react.default.createElement("div", {
157
- className: "flex flex-col gap-2 overflow-y-auto"
158
- }, /* @__PURE__ */ import_react.default.createElement("div", {
159
- className: "flex items-row gap-2"
160
- }, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Input.Root, null, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Input.Label, {
161
- classNames: "text-sm"
162
- }, t("show webrtc stats title")), /* @__PURE__ */ import_react.default.createElement(import_react_ui.Input.Checkbox, {
163
- checked: showDetailedWebRTCStats,
164
- onCheckedChange: handleShowDetailedWebRTCStats
165
- }))), /* @__PURE__ */ import_react.default.createElement(import_react_ui_syntax_highlighter.Json, {
166
- classNames: "text-sm",
167
- data: {
168
- users,
169
- activities: state?.call?.activities,
170
- ...showDetailedWebRTCStats ? {
171
- webrtc: {
172
- connectionState: state?.media.peer?.session?.peerConnection.connectionState,
173
- iceConnectionState: state?.media.peer?.session?.peerConnection.iceConnectionState,
174
- stats
175
- }
176
- } : {},
177
- tracks: state?.media.peer?.session?.peerConnection.getTransceivers().map((transceiver) => {
178
- const track = transceiver.direction === "recvonly" ? transceiver.receiver.track : transceiver.sender.track;
179
- return {
180
- id: track?.id,
181
- kind: track?.kind,
182
- direction: transceiver.direction,
183
- enabled: track?.enabled,
184
- muted: track?.muted,
185
- readyState: track?.readyState,
186
- settings: track?.getSettings()
187
- };
188
- }),
189
- callsServiceHistory: state?.media.peer?.history.get()
190
- }
191
- })));
192
- } finally {
193
- _effect.f();
194
- }
195
- };
196
- var CallSidebar = () => {
197
- var _effect = (0, import_tracking2.useSignals)();
198
- try {
199
- const call = (0, import_app_framework.useCapability)(import_chunk_4YSNVPWU.ThreadCapabilities.CallManager);
200
- return /* @__PURE__ */ import_react2.default.createElement(import_chunk_UM36TPCT.ChannelContainer, {
201
- roomId: call.roomId
202
- });
203
- } finally {
204
- _effect.f();
205
- }
206
- };
207
- var sizeClass = (0, import_react_ui_theme.getSize)(4);
208
- var commentControlClassNames = "!p-1 !min-bs-0 transition-opacity";
209
- var ToggleResolvedButton = ({ isResolved, onResolve }) => {
210
- var _effect = (0, import_tracking4.useSignals)();
211
- try {
212
- const { t } = (0, import_react_ui3.useTranslation)(import_chunk_HLMCEE5K.THREAD_PLUGIN);
213
- const label = t(isResolved ? "mark as unresolved label" : "mark as resolved label");
214
- return /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Tooltip.Trigger, {
215
- asChild: true,
216
- content: label
217
- }, /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Button, {
218
- variant: "ghost",
219
- "data-testid": "thread.toggle-resolved",
220
- onClick: onResolve,
221
- classNames: [
222
- commentControlClassNames,
223
- !isResolved && import_react_ui_theme.hoverableControlItem
224
- ]
225
- }, /* @__PURE__ */ import_react6.default.createElement("span", {
226
- className: "sr-only"
227
- }, label), isResolved ? /* @__PURE__ */ import_react6.default.createElement(import_react5.CheckCircle, {
228
- className: sizeClass,
229
- weight: "fill"
230
- }) : /* @__PURE__ */ import_react6.default.createElement(import_react5.CheckCircle, {
231
- className: sizeClass
232
- })));
233
- } finally {
234
- _effect.f();
235
- }
236
- };
237
- var DeleteThreadButton = ({ onDelete }) => {
238
- var _effect = (0, import_tracking4.useSignals)();
239
- try {
240
- const { t } = (0, import_react_ui3.useTranslation)(import_chunk_HLMCEE5K.THREAD_PLUGIN);
241
- const label = t("delete thread label");
242
- return /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Tooltip.Trigger, {
243
- asChild: true,
244
- content: label
245
- }, /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Button, {
246
- variant: "ghost",
247
- "data-testid": "thread.delete",
248
- onClick: onDelete,
249
- classNames: [
250
- commentControlClassNames,
251
- import_react_ui_theme.hoverableControlItem
252
- ]
253
- }, /* @__PURE__ */ import_react6.default.createElement("span", {
254
- className: "sr-only"
255
- }, label), /* @__PURE__ */ import_react6.default.createElement(import_react5.X, {
256
- className: sizeClass
257
- })));
258
- } finally {
259
- _effect.f();
260
- }
261
- };
262
- var CommentContainer = ({ anchor, current, onAttend, onComment, onResolve, onMessageDelete, onThreadDelete }) => {
263
- var _effect = (0, import_tracking4.useSignals)();
264
- try {
265
- const identity = (0, import_halo2.useIdentity)();
266
- const space = (0, import_echo4.getSpace)(anchor);
267
- const members = (0, import_echo4.useMembers)(space?.key);
268
- const detached = !anchor.anchor;
269
- const thread = import_echo3.Relation.getSource(anchor);
270
- const activity = (0, import_chunk_FUXJAVFZ.useStatus)(space, (0, import_echo4.fullyQualifiedId)(thread));
271
- const { t } = (0, import_react_ui3.useTranslation)(import_chunk_HLMCEE5K.THREAD_PLUGIN);
272
- const threadScrollRef = (0, import_react6.useRef)(null);
273
- const { themeMode } = (0, import_react_ui3.useThemeContext)();
274
- const textboxMetadata = (0, import_chunk_LR5NENBE.getMessageMetadata)((0, import_echo4.fullyQualifiedId)(thread), identity);
275
- const [_count, _setCount] = (0, import_react6.useState)(0);
276
- const rerenderEditor = () => _setCount((count) => count + 1);
277
- const messageRef = (0, import_react6.useRef)("");
278
- const extensions = (0, import_react6.useMemo)(() => [
279
- (0, import_react_ui_editor.createBasicExtensions)({
280
- placeholder: t("message placeholder")
281
- }),
282
- (0, import_react_ui_editor.createThemeExtensions)({
283
- themeMode
284
- }),
285
- (0, import_react_ui_editor.listener)({
286
- onChange: (text) => messageRef.current = text
287
- }),
288
- import_chunk_E3WBZTTI.command
289
- ], [
290
- _count
291
- ]);
292
- const scrollToEnd = (behavior) => setTimeout(() => threadScrollRef.current?.scrollIntoView({
293
- behavior,
294
- block: "end"
295
- }), 10);
296
- const handleAttend = (0, import_react6.useCallback)(() => onAttend?.(anchor), [
297
- onAttend,
298
- anchor
299
- ]);
300
- const handleResolve = (0, import_react6.useCallback)(() => onResolve?.(anchor), [
301
- onResolve,
302
- anchor
303
- ]);
304
- const handleMessageDelete = (0, import_react6.useCallback)((id) => onMessageDelete?.(anchor, id), [
305
- onMessageDelete,
306
- anchor
307
- ]);
308
- const handleThreadDelete = (0, import_react6.useCallback)(() => onThreadDelete?.(anchor), [
309
- onThreadDelete,
310
- anchor
311
- ]);
312
- const handleComment = (0, import_react6.useCallback)(() => {
313
- if (!messageRef.current) {
314
- return false;
315
- }
316
- onComment?.(anchor, messageRef.current);
317
- messageRef.current = "";
318
- scrollToEnd("instant");
319
- rerenderEditor();
320
- return true;
321
- }, [
322
- anchor,
323
- identity
324
- ]);
325
- return /* @__PURE__ */ import_react6.default.createElement(import_react_ui_thread.Thread, {
326
- onClickCapture: handleAttend,
327
- onFocusCapture: handleAttend,
328
- current,
329
- id: (0, import_echo4.fullyQualifiedId)(thread)
330
- }, /* @__PURE__ */ import_react6.default.createElement("div", {
331
- role: "none",
332
- className: (0, import_react_ui_theme.mx)("col-span-2 grid grid-cols-[var(--rail-size)_1fr_min-content]", import_react_ui_theme.hoverableControls, import_react_ui_theme.hoverableFocusedWithinControls)
333
- }, detached ? /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Tooltip.Trigger, {
334
- asChild: true,
335
- content: t("detached thread label"),
336
- side: "top"
337
- }, /* @__PURE__ */ import_react6.default.createElement(import_react_ui_thread.ThreadHeading, {
338
- detached: true
339
- }, thread.name)) : /* @__PURE__ */ import_react6.default.createElement(import_react_ui_thread.ThreadHeading, null, thread.name), /* @__PURE__ */ import_react6.default.createElement("div", {
340
- className: "flex flex-row items-center pli-1"
341
- }, thread.status === "staged" && /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Tag, {
342
- palette: "neutral"
343
- }, t("draft button")), onResolve && !(thread?.status === "staged") && /* @__PURE__ */ import_react6.default.createElement(ToggleResolvedButton, {
344
- isResolved: thread?.status === "resolved",
345
- onResolve: handleResolve
346
- }), onThreadDelete && /* @__PURE__ */ import_react6.default.createElement(DeleteThreadButton, {
347
- onDelete: handleThreadDelete
348
- }))), import_live_object.RefArray.targets(thread.messages?.filter(import_util.isNonNullable) ?? []).map((message) => /* @__PURE__ */ import_react6.default.createElement(import_chunk_E3WBZTTI.MessageContainer, {
349
- key: message.id,
350
- editable: true,
351
- message,
352
- members,
353
- onDelete: handleMessageDelete
354
- })), /* @__PURE__ */ import_react6.default.createElement(import_react_ui_thread.MessageTextbox, {
355
- extensions,
356
- onSend: handleComment,
357
- ...textboxMetadata
358
- }), /* @__PURE__ */ import_react6.default.createElement(import_react_ui_thread.ThreadFooter, {
359
- activity
360
- }, t("activity message")), /* @__PURE__ */ import_react6.default.createElement("div", {
361
- role: "none",
362
- className: "bs-px -mbs-px",
363
- ref: threadScrollRef
364
- }));
365
- } finally {
366
- _effect.f();
367
- }
368
- };
369
- var CommentsContainer = ({ anchors, currentId, showResolvedThreads, ...props }) => {
370
- var _effect = (0, import_tracking5.useSignals)();
371
- try {
372
- const { t } = (0, import_react_ui4.useTranslation)(import_chunk_HLMCEE5K.THREAD_PLUGIN);
373
- const filteredAnchors = showResolvedThreads ? anchors.filter((anchor) => !!import_echo5.Relation.getSource(anchor)) : anchors.filter((anchor) => {
374
- const thread = import_echo5.Relation.getSource(anchor);
375
- return thread && thread.status !== "resolved";
376
- });
377
- (0, import_react7.useEffect)(() => {
378
- if (currentId) {
379
- document.getElementById(currentId)?.scrollIntoView({
380
- behavior: "smooth",
381
- block: "end"
382
- });
383
- }
384
- }, [
385
- currentId
386
- ]);
387
- if (filteredAnchors.length === 0) {
388
- return /* @__PURE__ */ import_react7.default.createElement("div", {
389
- role: "none",
390
- className: "plb-cardSpacingBlock pli-cardSpacingInline"
391
- }, /* @__PURE__ */ import_react7.default.createElement(import_react_ui4.Callout.Root, null, /* @__PURE__ */ import_react7.default.createElement(import_react_ui4.Callout.Title, null, /* @__PURE__ */ import_react7.default.createElement(import_react_ui4.Trans, {
392
- t,
393
- i18nKey: "no comments message",
394
- components: {
395
- commentIcon: /* @__PURE__ */ import_react7.default.createElement(import_react_ui4.Icon, {
396
- icon: "ph--chat-text--regular",
397
- size: 4,
398
- classNames: "inline-block"
399
- })
400
- }
401
- }))));
402
- }
403
- return filteredAnchors.map((anchor) => {
404
- const thread = import_echo5.Relation.getSource(anchor);
405
- const threadId = (0, import_echo6.fullyQualifiedId)(thread);
406
- return /* @__PURE__ */ import_react7.default.createElement(CommentContainer, {
407
- key: threadId,
408
- anchor,
409
- current: currentId === threadId,
410
- ...props
411
- });
412
- });
413
- } finally {
414
- _effect.f();
415
- }
416
- };
417
- var ThreadSettings = ({ settings }) => {
418
- var _effect = (0, import_tracking6.useSignals)();
419
- try {
420
- return /* @__PURE__ */ import_react8.default.createElement(import_react_ui_form.DeprecatedFormContainer, null);
421
- } finally {
422
- _effect.f();
423
- }
424
- };
425
- var ChannelContainer2 = (0, import_react4.lazy)(() => import("./ChannelContainer-YS5YT2ML.cjs"));
426
- var ChatContainer = (0, import_react4.lazy)(() => import("./ChatContainer-GCOM3M56.cjs"));
427
- var ThreadComplementary = ({ subject }) => {
428
- var _effect = (0, import_tracking3.useSignals)();
429
- try {
430
- const { dispatchPromise: dispatch } = (0, import_app_framework2.useIntentDispatcher)();
431
- const identity = (0, import_halo.useIdentity)();
432
- const { t } = (0, import_react_ui2.useTranslation)(import_chunk_HLMCEE5K.THREAD_PLUGIN);
433
- const { tx } = (0, import_react_ui2.useThemeContext)();
434
- const subjectId = (0, import_echo2.fullyQualifiedId)(subject);
435
- const { state, getViewState } = (0, import_app_framework2.useCapability)(import_chunk_4YSNVPWU.ThreadCapabilities.MutableState);
436
- const drafts = state.drafts[subjectId];
437
- const viewState = (0, import_react3.useMemo)(() => getViewState(subjectId), [
438
- getViewState,
439
- subjectId
440
- ]);
441
- const { showResolvedThreads } = viewState;
442
- const onChangeViewState = (0, import_react3.useCallback)((nextValue) => {
443
- viewState.showResolvedThreads = nextValue === "all";
444
- }, [
445
- viewState
446
- ]);
447
- const anchorSorts = (0, import_app_framework2.useCapabilities)(import_app_framework2.Capabilities.AnchorSort);
448
- const sort = (0, import_react3.useMemo)(() => anchorSorts.find(({ key }) => key === import_echo.Obj.getTypename(subject))?.sort, [
449
- anchorSorts,
450
- subject
451
- ]);
452
- const space = (0, import_echo2.getSpace)(subject);
453
- const objectsAnchoredTo = (0, import_echo2.useQuery)(space, import_echo.Query.select(import_echo.Filter.ids(subject.id)).targetOf(import_schema.AnchoredTo));
454
- const anchors = objectsAnchoredTo.toSorted((a, b) => sort?.(a, b) ?? 0).filter((anchor) => import_echo.Obj.instanceOf(import_chunk_ZGDN3XBR.ThreadType, import_echo.Relation.getSource(anchor))).concat(drafts ?? []);
455
- const attended = (0, import_react_ui_attention.useAttended)();
456
- const handleAttend = (0, import_react3.useCallback)((anchor) => {
457
- const thread = import_echo.Relation.getSource(anchor);
458
- const threadId = (0, import_echo2.fullyQualifiedId)(thread);
459
- if (state.current !== threadId) {
460
- state.current = threadId;
461
- void dispatch((0, import_app_framework2.createIntent)(import_app_framework2.LayoutAction.ScrollIntoView, {
462
- part: "current",
463
- subject: (0, import_echo2.fullyQualifiedId)(subject),
464
- options: {
465
- cursor: anchor.anchor,
466
- ref: threadId
467
- }
468
- }));
469
- }
470
- }, [
471
- state.current,
472
- dispatch,
473
- subject
474
- ]);
475
- const handleComment = (0, import_react3.useCallback)(async (anchor, text) => {
476
- await dispatch((0, import_app_framework2.createIntent)(import_chunk_ZGDN3XBR.ThreadAction.AddMessage, {
477
- anchor,
478
- subject,
479
- sender: {
480
- identityDid: identity?.did
481
- },
482
- text
483
- }));
484
- const thread = import_echo.Relation.getSource(anchor);
485
- state.current = (0, import_echo2.fullyQualifiedId)(thread);
486
- }, [
487
- dispatch,
488
- identity,
489
- subject
490
- ]);
491
- const handleResolve = (0, import_react3.useCallback)((anchor) => dispatch((0, import_app_framework2.createIntent)(import_chunk_ZGDN3XBR.ThreadAction.ToggleResolved, {
492
- thread: import_echo.Relation.getSource(anchor)
493
- })), [
494
- dispatch
495
- ]);
496
- const handleThreadDelete = (0, import_react3.useCallback)((anchor) => dispatch((0, import_app_framework2.createIntent)(import_chunk_ZGDN3XBR.ThreadAction.Delete, {
497
- anchor,
498
- subject
499
- })), [
500
- dispatch,
501
- subject
502
- ]);
503
- const handleMessageDelete = (0, import_react3.useCallback)((anchor, messageId) => dispatch((0, import_app_framework2.createIntent)(import_chunk_ZGDN3XBR.ThreadAction.DeleteMessage, {
504
- anchor,
505
- subject,
506
- messageId
507
- })), [
508
- dispatch,
509
- subject
510
- ]);
511
- const comments = /* @__PURE__ */ import_react3.default.createElement(CommentsContainer, {
512
- anchors,
513
- currentId: attended.includes(subjectId) ? state.current : void 0,
514
- showResolvedThreads,
515
- onAttend: handleAttend,
516
- onComment: handleComment,
517
- onResolve: handleResolve,
518
- onMessageDelete: handleMessageDelete,
519
- onThreadDelete: handleThreadDelete
520
- });
521
- return /* @__PURE__ */ import_react3.default.createElement(import_react_ui_stack.StackItem.Content, {
522
- toolbar: true
523
- }, /* @__PURE__ */ import_react3.default.createElement(import_react_ui_tabs.Tabs.Root, {
524
- value: showResolvedThreads ? "all" : "unresolved",
525
- orientation: "horizontal",
526
- classNames: 'contents [&_[role="tabpanel"]]:min-bs-0 [&_[role="tabpanel"]]:overflow-y-auto [&_[role="tabpanel"]]:scrollbar-thin',
527
- onValueChange: onChangeViewState
528
- }, /* @__PURE__ */ import_react3.default.createElement(import_react_ui_tabs.Tabs.Tablist, {
529
- classNames: tx("toolbar.root", "toolbar", {})
530
- }, /* @__PURE__ */ import_react3.default.createElement(import_react_ui_tabs.Tabs.Tab, {
531
- value: "unresolved",
532
- classNames: "text-sm"
533
- }, t("show unresolved label")), /* @__PURE__ */ import_react3.default.createElement(import_react_ui_tabs.Tabs.Tab, {
534
- value: "all",
535
- classNames: "text-sm"
536
- }, t("show all label"))), /* @__PURE__ */ import_react3.default.createElement(import_react_ui_tabs.Tabs.Tabpanel, {
537
- value: "all"
538
- }, showResolvedThreads && comments), /* @__PURE__ */ import_react3.default.createElement(import_react_ui_tabs.Tabs.Tabpanel, {
539
- value: "unresolved"
540
- }, !showResolvedThreads && comments)));
541
- } finally {
542
- _effect.f();
543
- }
544
- };
545
- // Annotate the CommonJS export names for ESM import in node:
546
- 0 && (module.exports = {
547
- CallDebugPanel,
548
- CallSidebar,
549
- ChannelContainer,
550
- ChatContainer,
551
- ThreadComplementary,
552
- ThreadSettings
553
- });
554
- //# sourceMappingURL=chunk-IP533AMV.cjs.map