@dxos/plugin-thread 0.8.4-main.f9ba587 → 0.8.4-main.fd6878d

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 (204) hide show
  1. package/dist/lib/browser/ChannelContainer-O2SFQJU7.mjs +16 -0
  2. package/dist/lib/browser/{ChatContainer-2UYQ23KO.mjs → ChatContainer-PVT3DUZJ.mjs} +4 -4
  3. package/dist/lib/browser/{app-graph-builder-Q5V3KXE3.mjs → app-graph-builder-AF3M7UWN.mjs} +5 -5
  4. package/dist/lib/browser/app-graph-builder-AF3M7UWN.mjs.map +7 -0
  5. package/dist/lib/browser/{call-manager-NIPDYUVD.mjs → call-manager-XRRCAVLI.mjs} +4 -4
  6. package/dist/lib/browser/call-manager-XRRCAVLI.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-2CWJBXBH.mjs +21 -0
  8. package/dist/lib/browser/{chunk-LGSDKXPF.mjs → chunk-4APCDRSH.mjs} +1 -1
  9. package/dist/lib/browser/{chunk-LGSDKXPF.mjs.map → chunk-4APCDRSH.mjs.map} +1 -1
  10. package/dist/lib/browser/{chunk-JVIKVYTI.mjs → chunk-DW7JD64V.mjs} +11 -2
  11. package/dist/lib/browser/chunk-DW7JD64V.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-YD57K2SL.mjs → chunk-FY4ZRD5X.mjs} +8 -8
  13. package/dist/lib/{node-esm/chunk-RGTWAVEE.mjs.map → browser/chunk-FY4ZRD5X.mjs.map} +3 -3
  14. package/dist/lib/browser/{chunk-NCSFNWBZ.mjs → chunk-J3JO5NWO.mjs} +30 -32
  15. package/dist/lib/browser/chunk-J3JO5NWO.mjs.map +7 -0
  16. package/dist/lib/browser/{chunk-6NSMBO3B.mjs → chunk-JGKMMI65.mjs} +2 -2
  17. package/dist/lib/browser/{chunk-6NSMBO3B.mjs.map → chunk-JGKMMI65.mjs.map} +3 -3
  18. package/dist/lib/browser/{chunk-ZE7KWN36.mjs → chunk-TUFWPOVS.mjs} +92 -63
  19. package/dist/lib/browser/chunk-TUFWPOVS.mjs.map +7 -0
  20. package/dist/lib/browser/{chunk-ERWASUQK.mjs → chunk-X5PIP5YR.mjs} +3 -3
  21. package/dist/lib/browser/{chunk-ERWASUQK.mjs.map → chunk-X5PIP5YR.mjs.map} +3 -3
  22. package/dist/lib/browser/{chunk-LCJD3NOB.mjs → chunk-ZJ7QBXK6.mjs} +225 -225
  23. package/dist/lib/browser/chunk-ZJ7QBXK6.mjs.map +7 -0
  24. package/dist/lib/browser/index.mjs +16 -28
  25. package/dist/lib/browser/index.mjs.map +3 -3
  26. package/dist/lib/browser/{intent-resolver-MWE6XLPY.mjs → intent-resolver-DCY4P4OX.mjs} +28 -12
  27. package/dist/lib/browser/intent-resolver-DCY4P4OX.mjs.map +7 -0
  28. package/dist/lib/browser/{markdown-ZO34G7RM.mjs → markdown-WZSXCEZJ.mjs} +4 -4
  29. package/dist/lib/browser/markdown-WZSXCEZJ.mjs.map +7 -0
  30. package/dist/lib/browser/meta.json +1 -1
  31. package/dist/lib/browser/{react-root-YNDNPODD.mjs → react-root-QXPALOUQ.mjs} +9 -9
  32. package/dist/lib/browser/{react-surface-2AXRNTCA.mjs → react-surface-PYAMIADB.mjs} +9 -9
  33. package/dist/lib/browser/react-surface-PYAMIADB.mjs.map +7 -0
  34. package/dist/lib/browser/{settings-XZGPZNAU.mjs → settings-AC6YSASL.mjs} +2 -2
  35. package/dist/lib/browser/{state-H6CYONWE.mjs → state-2T4KDWBX.mjs} +2 -2
  36. package/dist/lib/browser/{state-H6CYONWE.mjs.map → state-2T4KDWBX.mjs.map} +2 -2
  37. package/dist/lib/browser/types/index.mjs +1 -1
  38. package/dist/lib/node-esm/{ChannelContainer-O2LZKMRM.mjs → ChannelContainer-B2ZGAE4P.mjs} +7 -7
  39. package/dist/lib/node-esm/{ChatContainer-6N35MP5J.mjs → ChatContainer-2CT4PJ7I.mjs} +4 -4
  40. package/dist/lib/node-esm/{app-graph-builder-GAKBZNU3.mjs → app-graph-builder-OLSJVCWY.mjs} +5 -5
  41. package/dist/lib/node-esm/app-graph-builder-OLSJVCWY.mjs.map +7 -0
  42. package/dist/lib/node-esm/{call-manager-D6O5ZJJ4.mjs → call-manager-EI7FXRAU.mjs} +4 -4
  43. package/dist/lib/node-esm/call-manager-EI7FXRAU.mjs.map +7 -0
  44. package/dist/lib/node-esm/{chunk-IHDNQLLR.mjs → chunk-4TME3BR4.mjs} +92 -63
  45. package/dist/lib/node-esm/chunk-4TME3BR4.mjs.map +7 -0
  46. package/dist/lib/node-esm/chunk-6CRHHOST.mjs +23 -0
  47. package/dist/lib/node-esm/{chunk-RGTWAVEE.mjs → chunk-BF4UKS55.mjs} +8 -8
  48. package/dist/lib/node-esm/chunk-BF4UKS55.mjs.map +7 -0
  49. package/dist/lib/node-esm/{chunk-75RJ5DJI.mjs → chunk-PYTVBN5J.mjs} +1 -1
  50. package/dist/lib/node-esm/{chunk-75RJ5DJI.mjs.map → chunk-PYTVBN5J.mjs.map} +1 -1
  51. package/dist/lib/node-esm/{chunk-OU5BYIDO.mjs → chunk-QBHKLWGR.mjs} +2 -2
  52. package/dist/lib/node-esm/{chunk-OU5BYIDO.mjs.map → chunk-QBHKLWGR.mjs.map} +3 -3
  53. package/dist/lib/node-esm/{chunk-25ABSYP2.mjs → chunk-SED3O2XO.mjs} +3 -3
  54. package/dist/lib/node-esm/{chunk-25ABSYP2.mjs.map → chunk-SED3O2XO.mjs.map} +3 -3
  55. package/dist/lib/node-esm/{chunk-A6QLTZCY.mjs → chunk-VNG6M2IY.mjs} +30 -32
  56. package/dist/lib/node-esm/chunk-VNG6M2IY.mjs.map +7 -0
  57. package/dist/lib/node-esm/{chunk-3X3YKRM2.mjs → chunk-XVKWHTH4.mjs} +11 -2
  58. package/dist/lib/node-esm/chunk-XVKWHTH4.mjs.map +7 -0
  59. package/dist/lib/node-esm/{chunk-5UQ4KKDE.mjs → chunk-YIDU3DXK.mjs} +225 -225
  60. package/dist/lib/node-esm/chunk-YIDU3DXK.mjs.map +7 -0
  61. package/dist/lib/node-esm/index.mjs +16 -28
  62. package/dist/lib/node-esm/index.mjs.map +3 -3
  63. package/dist/lib/node-esm/{intent-resolver-B6PNTMPY.mjs → intent-resolver-QGTPU6QB.mjs} +28 -12
  64. package/dist/lib/node-esm/intent-resolver-QGTPU6QB.mjs.map +7 -0
  65. package/dist/lib/node-esm/{markdown-ZJUFV2TA.mjs → markdown-3MZXUGUA.mjs} +4 -4
  66. package/dist/lib/node-esm/markdown-3MZXUGUA.mjs.map +7 -0
  67. package/dist/lib/node-esm/meta.json +1 -1
  68. package/dist/lib/node-esm/{react-root-ZUVVTKWG.mjs → react-root-7ZFJYVUZ.mjs} +9 -9
  69. package/dist/lib/node-esm/{react-surface-OMEZTOU6.mjs → react-surface-UJFCSFNO.mjs} +9 -9
  70. package/dist/lib/node-esm/react-surface-UJFCSFNO.mjs.map +7 -0
  71. package/dist/lib/node-esm/{settings-XECBSD6Q.mjs → settings-N52O7MLS.mjs} +2 -2
  72. package/dist/lib/node-esm/{state-D7WNDT3N.mjs → state-62TQKQVB.mjs} +2 -2
  73. package/dist/lib/node-esm/{state-D7WNDT3N.mjs.map → state-62TQKQVB.mjs.map} +2 -2
  74. package/dist/lib/node-esm/types/index.mjs +1 -1
  75. package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
  76. package/dist/types/src/calls/call-manager.d.ts.map +1 -1
  77. package/dist/types/src/calls/call-swarm-synchronizer.d.ts.map +1 -1
  78. package/dist/types/src/calls/media-manager.d.ts.map +1 -1
  79. package/dist/types/src/calls/types.d.ts +1 -1
  80. package/dist/types/src/calls/types.d.ts.map +1 -1
  81. package/dist/types/src/calls/util/calls-service.d.ts +1 -1
  82. package/dist/types/src/calls/util/calls-service.d.ts.map +1 -1
  83. package/dist/types/src/calls/util/stub-media-streams.d.ts.map +1 -1
  84. package/dist/types/src/calls-service.stories.d.ts +1 -1
  85. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  86. package/dist/types/src/capabilities/call-manager.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/capabilities.d.ts +2 -2
  88. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/index.d.ts +1 -1
  90. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  92. package/dist/types/src/capabilities/markdown.d.ts +1 -1
  93. package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
  94. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  95. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  96. package/dist/types/src/components/Call/Call.d.ts.map +1 -1
  97. package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
  98. package/dist/types/src/components/CallDebugPanel.d.ts.map +1 -1
  99. package/dist/types/src/components/CallSidebar.d.ts.map +1 -1
  100. package/dist/types/src/components/ChannelContainer.d.ts.map +1 -1
  101. package/dist/types/src/components/ChannelContainer.stories.d.ts.map +1 -1
  102. package/dist/types/src/components/Chat.stories.d.ts.map +1 -1
  103. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  104. package/dist/types/src/components/Comments.stories.d.ts.map +1 -1
  105. package/dist/types/src/components/CommentsContainer.d.ts.map +1 -1
  106. package/dist/types/src/components/CommentsThreadContainer.d.ts.map +1 -1
  107. package/dist/types/src/components/Lobby/Lobby.d.ts.map +1 -1
  108. package/dist/types/src/components/Media/VideoObject.d.ts +1 -1
  109. package/dist/types/src/components/Media/VideoObject.stories.d.ts +1 -1
  110. package/dist/types/src/components/Media/VideoObject.stories.d.ts.map +1 -1
  111. package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
  112. package/dist/types/src/components/Participant/ParticipantGrid.d.ts.map +1 -1
  113. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts +1 -1
  114. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts.map +1 -1
  115. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +1 -1
  116. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts.map +1 -1
  117. package/dist/types/src/components/ResponsiveGrid/ResponsiveGridItem.d.ts.map +1 -1
  118. package/dist/types/src/extensions/threads.d.ts +2 -2
  119. package/dist/types/src/extensions/threads.d.ts.map +1 -1
  120. package/dist/types/src/translations.d.ts +2 -0
  121. package/dist/types/src/translations.d.ts.map +1 -1
  122. package/dist/types/src/types/schema.d.ts +53 -22
  123. package/dist/types/src/types/schema.d.ts.map +1 -1
  124. package/dist/types/src/types/types.d.ts +72 -24
  125. package/dist/types/src/types/types.d.ts.map +1 -1
  126. package/dist/types/src/util.d.ts +17 -2
  127. package/dist/types/src/util.d.ts.map +1 -1
  128. package/dist/types/tsconfig.tsbuildinfo +1 -1
  129. package/package.json +47 -45
  130. package/src/ThreadPlugin.tsx +8 -23
  131. package/src/calls/call-manager.ts +1 -1
  132. package/src/calls/call-swarm-synchronizer.ts +1 -1
  133. package/src/calls/media-manager.ts +2 -2
  134. package/src/calls/types.ts +1 -1
  135. package/src/calls/util/calls-service.ts +4 -3
  136. package/src/calls/util/stub-media-streams.ts +2 -2
  137. package/src/calls-service.stories.tsx +3 -3
  138. package/src/capabilities/app-graph-builder.ts +6 -5
  139. package/src/capabilities/call-manager.ts +3 -2
  140. package/src/capabilities/capabilities.ts +2 -2
  141. package/src/capabilities/intent-resolver.ts +26 -7
  142. package/src/capabilities/markdown.ts +4 -3
  143. package/src/capabilities/react-surface.tsx +5 -4
  144. package/src/capabilities/state.ts +2 -1
  145. package/src/components/Call/Call.tsx +3 -2
  146. package/src/components/Call/Toolbar.tsx +3 -3
  147. package/src/components/CallDebugPanel.tsx +1 -1
  148. package/src/components/CallSidebar.tsx +2 -1
  149. package/src/components/ChannelContainer.stories.tsx +3 -2
  150. package/src/components/ChannelContainer.tsx +7 -6
  151. package/src/components/Chat.stories.tsx +3 -2
  152. package/src/components/ChatContainer.tsx +6 -5
  153. package/src/components/Comments.stories.tsx +4 -3
  154. package/src/components/CommentsContainer.tsx +2 -1
  155. package/src/components/CommentsThreadContainer.tsx +3 -2
  156. package/src/components/Lobby/Lobby.tsx +1 -1
  157. package/src/components/Media/VideoObject.stories.tsx +4 -3
  158. package/src/components/MessageContainer.tsx +6 -5
  159. package/src/components/Participant/ParticipantGrid.tsx +2 -1
  160. package/src/components/ResponsiveGrid/ResponsiveContainer.stories.tsx +4 -3
  161. package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +5 -4
  162. package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +1 -1
  163. package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +2 -2
  164. package/src/components/ThreadComplementary.tsx +1 -1
  165. package/src/components/command-extension.ts +1 -1
  166. package/src/components/testing.ts +2 -2
  167. package/src/extensions/threads.ts +6 -6
  168. package/src/hooks/useDebugMode.ts +1 -1
  169. package/src/testing/stories.ts +2 -2
  170. package/src/translations.ts +2 -0
  171. package/src/types/types.ts +11 -2
  172. package/src/typings.d.ts +8 -0
  173. package/dist/lib/browser/ChannelContainer-5YH4FTBL.mjs +0 -16
  174. package/dist/lib/browser/app-graph-builder-Q5V3KXE3.mjs.map +0 -7
  175. package/dist/lib/browser/call-manager-NIPDYUVD.mjs.map +0 -7
  176. package/dist/lib/browser/chunk-5ZVJ4GAS.mjs +0 -21
  177. package/dist/lib/browser/chunk-JVIKVYTI.mjs.map +0 -7
  178. package/dist/lib/browser/chunk-LCJD3NOB.mjs.map +0 -7
  179. package/dist/lib/browser/chunk-NCSFNWBZ.mjs.map +0 -7
  180. package/dist/lib/browser/chunk-YD57K2SL.mjs.map +0 -7
  181. package/dist/lib/browser/chunk-ZE7KWN36.mjs.map +0 -7
  182. package/dist/lib/browser/intent-resolver-MWE6XLPY.mjs.map +0 -7
  183. package/dist/lib/browser/markdown-ZO34G7RM.mjs.map +0 -7
  184. package/dist/lib/browser/react-surface-2AXRNTCA.mjs.map +0 -7
  185. package/dist/lib/node-esm/app-graph-builder-GAKBZNU3.mjs.map +0 -7
  186. package/dist/lib/node-esm/call-manager-D6O5ZJJ4.mjs.map +0 -7
  187. package/dist/lib/node-esm/chunk-3X3YKRM2.mjs.map +0 -7
  188. package/dist/lib/node-esm/chunk-5UQ4KKDE.mjs.map +0 -7
  189. package/dist/lib/node-esm/chunk-A6QLTZCY.mjs.map +0 -7
  190. package/dist/lib/node-esm/chunk-IHDNQLLR.mjs.map +0 -7
  191. package/dist/lib/node-esm/chunk-X62X3VOK.mjs +0 -23
  192. package/dist/lib/node-esm/intent-resolver-B6PNTMPY.mjs.map +0 -7
  193. package/dist/lib/node-esm/markdown-ZJUFV2TA.mjs.map +0 -7
  194. package/dist/lib/node-esm/react-surface-OMEZTOU6.mjs.map +0 -7
  195. /package/dist/lib/browser/{ChannelContainer-5YH4FTBL.mjs.map → ChannelContainer-O2SFQJU7.mjs.map} +0 -0
  196. /package/dist/lib/browser/{ChatContainer-2UYQ23KO.mjs.map → ChatContainer-PVT3DUZJ.mjs.map} +0 -0
  197. /package/dist/lib/browser/{chunk-5ZVJ4GAS.mjs.map → chunk-2CWJBXBH.mjs.map} +0 -0
  198. /package/dist/lib/browser/{react-root-YNDNPODD.mjs.map → react-root-QXPALOUQ.mjs.map} +0 -0
  199. /package/dist/lib/browser/{settings-XZGPZNAU.mjs.map → settings-AC6YSASL.mjs.map} +0 -0
  200. /package/dist/lib/node-esm/{ChannelContainer-O2LZKMRM.mjs.map → ChannelContainer-B2ZGAE4P.mjs.map} +0 -0
  201. /package/dist/lib/node-esm/{ChatContainer-6N35MP5J.mjs.map → ChatContainer-2CT4PJ7I.mjs.map} +0 -0
  202. /package/dist/lib/node-esm/{chunk-X62X3VOK.mjs.map → chunk-6CRHHOST.mjs.map} +0 -0
  203. /package/dist/lib/node-esm/{react-root-ZUVVTKWG.mjs.map → react-root-7ZFJYVUZ.mjs.map} +0 -0
  204. /package/dist/lib/node-esm/{settings-XECBSD6Q.mjs.map → settings-N52O7MLS.mjs.map} +0 -0
@@ -5,7 +5,7 @@
5
5
  import React, { useLayoutEffect, useMemo, useRef, useState } from 'react';
6
6
 
7
7
  import { Obj, Ref } from '@dxos/echo';
8
- import { fullyQualifiedId, type Space, useMembers } from '@dxos/react-client/echo';
8
+ import { type Space, fullyQualifiedId, useMembers } from '@dxos/react-client/echo';
9
9
  import { useIdentity } from '@dxos/react-client/halo';
10
10
  import { Icon, ScrollArea, useThemeContext, useTranslation } from '@dxos/react-ui';
11
11
  import { createBasicExtensions, createThemeExtensions, listener } from '@dxos/react-ui-editor';
@@ -21,13 +21,14 @@ import {
21
21
  import { DataType } from '@dxos/schema';
22
22
  import { isNonNullable } from '@dxos/util';
23
23
 
24
- import { MessageContainer } from './MessageContainer';
25
- import { command } from './command-extension';
26
24
  import { useStatus } from '../hooks';
27
25
  import { meta } from '../meta';
28
26
  import { type ThreadType } from '../types';
29
27
  import { getMessageMetadata } from '../util';
30
28
 
29
+ import { command } from './command-extension';
30
+ import { MessageContainer } from './MessageContainer';
31
+
31
32
  export const ChatHeading = ({ attendableId }: { attendableId?: string }) => {
32
33
  const { t } = useTranslation(meta.id);
33
34
  return (
@@ -92,9 +93,9 @@ export const ChatContainer = ({ space, thread, context, current, autoFocusTextbo
92
93
  thread.messages.push(
93
94
  Ref.make(
94
95
  Obj.make(DataType.Message, {
95
- sender: { identityDid: identity.did },
96
96
  created: new Date().toISOString(),
97
- blocks: [{ type: 'text', text: messageRef.current }],
97
+ sender: { identityDid: identity.did },
98
+ blocks: [{ _tag: 'text', text: messageRef.current }],
98
99
  properties: context ? { context: Ref.make(context) } : undefined,
99
100
  }),
100
101
  ),
@@ -17,11 +17,12 @@ import { useIdentity } from '@dxos/react-client/halo';
17
17
  import { AnchoredTo, DataType } from '@dxos/schema';
18
18
  import { layoutCentered, render, withLayout, withTheme } from '@dxos/storybook-utils';
19
19
 
20
- import { CommentsContainer } from './CommentsContainer';
21
- import { createCommentThread } from './testing';
22
20
  import { translations } from '../translations';
23
21
  import { ThreadType } from '../types';
24
22
 
23
+ import { CommentsContainer } from './CommentsContainer';
24
+ import { createCommentThread } from './testing';
25
+
25
26
  faker.seed(1);
26
27
 
27
28
  const DefaultStory = () => {
@@ -75,7 +76,7 @@ const meta: Meta = {
75
76
  IntentPlugin(),
76
77
  ClientPlugin({
77
78
  types: [DataType.Message, ThreadType, AnchoredTo],
78
- onClientInitialized: async (_, client) => {
79
+ onClientInitialized: async ({ client }) => {
79
80
  await client.halo.createIdentity();
80
81
  },
81
82
  }),
@@ -9,10 +9,11 @@ import { fullyQualifiedId } from '@dxos/react-client/echo';
9
9
  import { Callout, Icon, Trans, useTranslation } from '@dxos/react-ui';
10
10
  import { type AnchoredTo } from '@dxos/schema';
11
11
 
12
- import { CommentsThreadContainer, type CommentsThreadContainerProps } from './CommentsThreadContainer';
13
12
  import { meta } from '../meta';
14
13
  import { type ThreadType } from '../types';
15
14
 
15
+ import { CommentsThreadContainer, type CommentsThreadContainerProps } from './CommentsThreadContainer';
16
+
16
17
  export type CommentsContainerProps = Omit<CommentsThreadContainerProps, 'anchor' | 'current'> & {
17
18
  anchors: AnchoredTo[];
18
19
  currentId?: string;
@@ -14,13 +14,14 @@ import { MessageTextbox, type MessageTextboxProps, Thread, type ThreadRootProps
14
14
  import { type AnchoredTo } from '@dxos/schema';
15
15
  import { isNonNullable } from '@dxos/util';
16
16
 
17
- import { MessageContainer } from './MessageContainer';
18
- import { command } from './command-extension';
19
17
  import { useStatus } from '../hooks';
20
18
  import { meta } from '../meta';
21
19
  import { type ThreadType } from '../types';
22
20
  import { getMessageMetadata } from '../util';
23
21
 
22
+ import { command } from './command-extension';
23
+ import { MessageContainer } from './MessageContainer';
24
+
24
25
  // TODO(burdon): Remove need for p-1.
25
26
  export const commentControlClassNames = '!p-1 transition-opacity';
26
27
 
@@ -5,7 +5,7 @@
5
5
  import React, { type FC, type PropsWithChildren, useEffect, useState } from 'react';
6
6
 
7
7
  import { useCapability } from '@dxos/app-framework';
8
- import { useTranslation, type ThemedClassName } from '@dxos/react-ui';
8
+ import { type ThemedClassName, useTranslation } from '@dxos/react-ui';
9
9
  import { mx } from '@dxos/react-ui-theme';
10
10
 
11
11
  import { ThreadCapabilities } from '../../capabilities';
@@ -4,18 +4,19 @@
4
4
 
5
5
  import '@dxos-theme';
6
6
 
7
- import { type StoryObj, type Meta } from '@storybook/react-vite';
7
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
8
8
  import React, { useEffect, useState } from 'react';
9
9
 
10
10
  import { scheduleTask } from '@dxos/async';
11
11
  import { Context } from '@dxos/context';
12
12
  import { log } from '@dxos/log';
13
- import { withTheme, withLayout } from '@dxos/storybook-utils';
13
+ import { withLayout, withTheme } from '@dxos/storybook-utils';
14
14
 
15
- import { VideoObject } from './VideoObject';
16
15
  import { getUserMediaTrack } from '../../calls';
17
16
  import { ResponsiveContainer } from '../ResponsiveGrid';
18
17
 
18
+ import { VideoObject } from './VideoObject';
19
+
19
20
  const meta: Meta<typeof VideoObject> = {
20
21
  title: 'plugins/plugin-thread/VideoObject',
21
22
  component: VideoObject,
@@ -9,19 +9,20 @@ import { Surface } from '@dxos/app-framework';
9
9
  import { type Obj, Ref, type Type } from '@dxos/echo';
10
10
  import { PublicKey } from '@dxos/react-client';
11
11
  import { type SpaceMember } from '@dxos/react-client/echo';
12
- import { useIdentity, type Identity } from '@dxos/react-client/halo';
12
+ import { type Identity, useIdentity } from '@dxos/react-client/halo';
13
13
  import { IconButton, useOnTransition, useThemeContext, useTranslation } from '@dxos/react-ui';
14
14
  import { createBasicExtensions, createThemeExtensions, useTextEditor } from '@dxos/react-ui-editor';
15
15
  import { hoverableControlItem, hoverableControls, hoverableFocusedWithinControls, mx } from '@dxos/react-ui-theme';
16
16
  import { MessageHeading, MessageRoot } from '@dxos/react-ui-thread';
17
17
  import { type DataType } from '@dxos/schema';
18
18
 
19
- import { commentControlClassNames } from './CommentsThreadContainer';
20
- import { command } from './command-extension';
21
19
  import { useOnEditAnalytics } from '../hooks';
22
20
  import { meta } from '../meta';
23
21
  import { getMessageMetadata } from '../util';
24
22
 
23
+ import { command } from './command-extension';
24
+ import { commentControlClassNames } from './CommentsThreadContainer';
25
+
25
26
  export type MessageContainerProps = {
26
27
  message: DataType.Message;
27
28
  members: SpaceMember[];
@@ -40,8 +41,8 @@ export const MessageContainer = ({ message, members, editable = false, onDelete
40
41
  const userIsAuthor = useIdentity()?.did === messageMetadata.authorId;
41
42
  const [editing, setEditing] = useState(false);
42
43
  const handleDelete = useCallback(() => onDelete?.(message.id), [message, onDelete]);
43
- const textBlock = message.blocks.find((block) => block.type === 'text');
44
- const references = message.blocks.filter((block) => block.type === 'reference').map((block) => block.reference);
44
+ const textBlock = message.blocks.find((block) => block._tag === 'text');
45
+ const references = message.blocks.filter((block) => block._tag === 'reference').map((block) => block.reference);
45
46
 
46
47
  useOnEditAnalytics(message, textBlock, !!editing);
47
48
 
@@ -6,10 +6,11 @@ import React, { useEffect, useMemo, useState } from 'react';
6
6
 
7
7
  import { type ThemedClassName } from '@dxos/react-ui';
8
8
 
9
- import { Participant, SCREENSHARE_SUFFIX } from './Participant';
10
9
  import { type UserState } from '../../calls';
11
10
  import { ResponsiveGrid } from '../ResponsiveGrid';
12
11
 
12
+ import { Participant, SCREENSHARE_SUFFIX } from './Participant';
13
+
13
14
  const getId = (user: UserState): string => user.id!;
14
15
 
15
16
  export type ParticipantGridProps = ThemedClassName<{
@@ -4,15 +4,16 @@
4
4
 
5
5
  import '@dxos-theme';
6
6
 
7
- import { type StoryObj, type Meta } from '@storybook/react-vite';
7
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
8
8
  import React from 'react';
9
9
 
10
- import { withTheme, withLayout } from '@dxos/storybook-utils';
10
+ import { withLayout, withTheme } from '@dxos/storybook-utils';
11
11
 
12
- import { ResponsiveContainer } from './ResponsiveContainer';
13
12
  import { translations } from '../../translations';
14
13
  import { VideoObject as VideoObjectComponent } from '../Media';
15
14
 
15
+ import { ResponsiveContainer } from './ResponsiveContainer';
16
+
16
17
  const meta: Meta<typeof ResponsiveContainer> = {
17
18
  title: 'plugins/plugin-thread/ResponsiveContainer',
18
19
  component: ResponsiveContainer,
@@ -4,15 +4,16 @@
4
4
 
5
5
  import '@dxos-theme';
6
6
 
7
- import { type StoryObj, type Meta } from '@storybook/react-vite';
7
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
8
8
  import React, { useEffect, useState } from 'react';
9
9
 
10
10
  import { faker } from '@dxos/random';
11
- import { withTheme, withLayout } from '@dxos/storybook-utils';
11
+ import { withLayout, withTheme } from '@dxos/storybook-utils';
12
+
13
+ import { translations } from '../../translations';
12
14
 
13
15
  import { ResponsiveGrid, type ResponsiveGridProps } from './ResponsiveGrid';
14
16
  import { ResponsiveGridItem, type ResponsiveGridItemProps } from './ResponsiveGridItem';
15
- import { translations } from '../../translations';
16
17
 
17
18
  type TestItem = {
18
19
  id: string;
@@ -61,7 +62,7 @@ const meta: Meta<StoryProps> = {
61
62
  component: ResponsiveGrid,
62
63
  render: (args) => {
63
64
  const [pinned, setPinned] = useState<string | undefined>(
64
- args.pinned ?? args.items.length > 1 ? args.items[0]?.id : undefined,
65
+ (args.pinned ?? args.items.length > 1) ? args.items[0]?.id : undefined,
65
66
  );
66
67
  const [items, setItems] = useState<TestItem[]>(args.items);
67
68
  useEffect(() => {
@@ -2,7 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import React, { type ComponentType, type FC, useLayoutEffect, useState, useEffect, useMemo, useCallback } from 'react';
5
+ import React, { type ComponentType, type FC, useCallback, useEffect, useLayoutEffect, useMemo, useState } from 'react';
6
6
  import { useResizeDetector } from 'react-resize-detector';
7
7
 
8
8
  import { invariant } from '@dxos/invariant';
@@ -2,9 +2,9 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import React, { useEffect, useState, type CSSProperties, type PropsWithChildren } from 'react';
5
+ import React, { type CSSProperties, type PropsWithChildren, useEffect, useState } from 'react';
6
6
 
7
- import { Icon, IconButton, useTranslation, type ThemedClassName } from '@dxos/react-ui';
7
+ import { Icon, IconButton, type ThemedClassName, useTranslation } from '@dxos/react-ui';
8
8
  import { Waveform } from '@dxos/react-ui-sfx';
9
9
  import { groupHoverControlItemWithTransition, mx } from '@dxos/react-ui-theme';
10
10
 
@@ -8,8 +8,8 @@ import {
8
8
  Capabilities,
9
9
  LayoutAction,
10
10
  createIntent,
11
- useCapability,
12
11
  useCapabilities,
12
+ useCapability,
13
13
  useIntentDispatcher,
14
14
  } from '@dxos/app-framework';
15
15
  import { Filter, Obj, Query, Relation } from '@dxos/echo';
@@ -2,7 +2,7 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { StreamLanguage, HighlightStyle, syntaxHighlighting } from '@codemirror/language';
5
+ import { HighlightStyle, StreamLanguage, syntaxHighlighting } from '@codemirror/language';
6
6
  import { type Extension } from '@codemirror/state';
7
7
 
8
8
  import { tags } from '@dxos/react-ui-editor';
@@ -16,11 +16,11 @@ export const createCommentThread = (identity: Identity): ThreadType => {
16
16
  () =>
17
17
  Ref.make(
18
18
  Obj.make(DataType.Message, {
19
+ created: new Date().toISOString(),
19
20
  sender: {
20
21
  identityDid: faker.datatype.boolean() ? identity.did : IdentityDid.random(),
21
22
  },
22
- created: new Date().toISOString(),
23
- blocks: [{ type: 'text', text: faker.lorem.sentences(3) }],
23
+ blocks: [{ _tag: 'text', text: faker.lorem.sentences(3) }],
24
24
  }),
25
25
  ),
26
26
  { count: { min: 2, max: 3 } },
@@ -6,17 +6,17 @@ import { type Extension } from '@codemirror/state';
6
6
  import { EditorView } from '@codemirror/view';
7
7
  import { computed, effect } from '@preact/signals-core';
8
8
 
9
- import { createIntent, type PromiseIntentDispatcher } from '@dxos/app-framework';
9
+ import { type PromiseIntentDispatcher, createIntent } from '@dxos/app-framework';
10
10
  import { Filter, Obj, Query, Relation } from '@dxos/echo';
11
- import { type DocumentType } from '@dxos/plugin-markdown/types';
12
- import { getSpace, getTextInRange, createDocAccessor, fullyQualifiedId, getSource } from '@dxos/react-client/echo';
11
+ import { type Markdown } from '@dxos/plugin-markdown/types';
12
+ import { createDocAccessor, fullyQualifiedId, getSource, getSpace, getTextInRange } from '@dxos/react-client/echo';
13
13
  import { comments, createExternalCommentSync } from '@dxos/react-ui-editor';
14
14
  import { AnchoredTo } from '@dxos/schema';
15
15
 
16
- import { ThreadAction, ThreadType, type ThreadState } from '../types';
16
+ import { ThreadAction, type ThreadState, ThreadType } from '../types';
17
17
 
18
18
  // TODO(burdon): Factor out.
19
- const getName = (doc: DocumentType, anchor: string): string | undefined => {
19
+ const getName = (doc: Markdown.Document, anchor: string): string | undefined => {
20
20
  if (doc.content) {
21
21
  const [start, end] = anchor.split(':');
22
22
  return getTextInRange(createDocAccessor(doc.content.target!, ['content']), start, end);
@@ -26,7 +26,7 @@ const getName = (doc: DocumentType, anchor: string): string | undefined => {
26
26
  /**
27
27
  * Construct plugins.
28
28
  */
29
- export const threads = (state: ThreadState, doc?: DocumentType, dispatch?: PromiseIntentDispatcher): Extension => {
29
+ export const threads = (state: ThreadState, doc?: Markdown.Document, dispatch?: PromiseIntentDispatcher): Extension => {
30
30
  const space = doc && getSpace(doc);
31
31
  if (!doc || !space || !dispatch) {
32
32
  // Include no-op comments extension here to ensure that the facets are always present when they are expected.
@@ -2,7 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { useState, useEffect } from 'react';
5
+ import { useEffect, useState } from 'react';
6
6
 
7
7
  // TODO(burdon): Standardize across plugins/composer.
8
8
  export const useDebugMode = () => {
@@ -18,10 +18,10 @@ import { ChannelType, ThreadType } from '../types';
18
18
  export const createThreadPlugins = async () => [
19
19
  ThemePlugin({ tx: defaultTx }),
20
20
  ClientPlugin({
21
- onClientInitialized: async (_, client) => {
21
+ onClientInitialized: async ({ client }) => {
22
22
  await client.halo.createIdentity({ displayName: 'Test User' });
23
23
  },
24
- onSpacesReady: async (_, client) => {
24
+ onSpacesReady: async ({ client }) => {
25
25
  await client.spaces.default.waitUntilReady();
26
26
  const thread = Obj.make(ThreadType, { messages: [] });
27
27
  client.spaces.default.db.add(Obj.make(ChannelType, { defaultThread: Ref.make(thread), threads: [] }));
@@ -16,6 +16,8 @@ export const translations = [
16
16
  'typename label_one': 'Channel',
17
17
  'typename label_other': 'Channels',
18
18
  'object name placeholder': 'New channel',
19
+ 'rename object label': 'Rename channel',
20
+ 'delete object label': 'Delete channel',
19
21
  },
20
22
  [meta.id]: {
21
23
  'plugin name': 'Chat',
@@ -5,15 +5,24 @@
5
5
  import { Schema } from 'effect';
6
6
 
7
7
  import { Type } from '@dxos/echo';
8
- import { EchoObjectSchema } from '@dxos/react-client/echo';
8
+ import { EchoObjectSchema, SpaceSchema } from '@dxos/react-client/echo';
9
9
  import { AnchoredTo, DataType } from '@dxos/schema';
10
10
 
11
- import { ChannelType, ThreadType } from './schema';
12
11
  import { THREAD_PLUGIN } from '../meta';
13
12
 
13
+ import { ChannelType, ThreadType } from './schema';
14
+
14
15
  export namespace ThreadAction {
15
16
  const THREAD_ACTION = `${THREAD_PLUGIN}/action`;
16
17
 
18
+ export class OnSpaceCreated extends Schema.TaggedClass<OnSpaceCreated>()(`${THREAD_ACTION}/on-space-created`, {
19
+ input: Schema.Struct({
20
+ space: SpaceSchema,
21
+ rootCollection: DataType.Collection,
22
+ }),
23
+ output: Schema.Void,
24
+ }) {}
25
+
17
26
  export class CreateChannel extends Schema.TaggedClass<CreateChannel>()(`${THREAD_ACTION}/create-channel`, {
18
27
  input: Schema.Struct({
19
28
  spaceId: Type.SpaceId,
@@ -0,0 +1,8 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ declare module '*.mp4?raw' {
6
+ const content: string;
7
+ export default content;
8
+ }
@@ -1,16 +0,0 @@
1
- import {
2
- ChannelContainer,
3
- ChannelContainer_default
4
- } from "./chunk-LCJD3NOB.mjs";
5
- import "./chunk-5ZVJ4GAS.mjs";
6
- import "./chunk-LGSDKXPF.mjs";
7
- import "./chunk-NCSFNWBZ.mjs";
8
- import "./chunk-ERWASUQK.mjs";
9
- import "./chunk-GERVMFQW.mjs";
10
- import "./chunk-6NSMBO3B.mjs";
11
- import "./chunk-EV4JWI7L.mjs";
12
- export {
13
- ChannelContainer,
14
- ChannelContainer_default as default
15
- };
16
- //# sourceMappingURL=ChannelContainer-5YH4FTBL.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport { Option, pipe } from 'effect';\n\nimport { Capabilities, contributes, createIntent, type PluginContext } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { AttentionCapabilities } from '@dxos/plugin-attention';\nimport { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR, DECK_COMPANION_TYPE } from '@dxos/plugin-deck/types';\nimport { createExtension, ROOT_ID, rxFromSignal } from '@dxos/plugin-graph';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\n\nimport { ThreadCapabilities } from './capabilities';\nimport { meta, THREAD_PLUGIN } from '../meta';\nimport { ChannelType, ThreadAction } from '../types';\nimport { getAnchor } from '../util';\n\nexport default (context: PluginContext) => {\n const resolve = (typename: string) =>\n context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};\n\n return contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: `${THREAD_PLUGIN}/active-call`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map((node) => {\n const [call] = get(context.capabilities(ThreadCapabilities.CallManager));\n return get(\n rxFromSignal(() =>\n call?.joined\n ? [\n {\n id: `${node.id}${ATTENDABLE_PATH_SEPARATOR}active-call`,\n type: DECK_COMPANION_TYPE,\n data: null,\n properties: {\n label: ['call panel label', { ns: THREAD_PLUGIN }],\n icon: 'ph--video-conference--regular',\n position: 'hoist',\n disposition: 'hidden',\n },\n },\n ]\n : [],\n ),\n );\n }),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n // TODO(wittjosiah): The channel shouldn't become the companion during a call.\n // Alternative: the call/meeting/thread should be a child node of the channel and that should be opened.\n createExtension({\n id: `${THREAD_PLUGIN}/channel-chat-companion`,\n connector: (node) => {\n return Rx.make((get) => {\n return pipe(\n get(node),\n Option.flatMap((node) => (Obj.instanceOf(ChannelType, node.data) ? Option.some(node.data) : Option.none())),\n Option.map((channel) => {\n const callManager = context.getCapability(ThreadCapabilities.CallManager);\n const joined = get(\n rxFromSignal(() => callManager.joined && callManager.roomId === fullyQualifiedId(channel)),\n );\n if (!joined) {\n return [];\n }\n\n return [\n {\n id: `${fullyQualifiedId(channel)}${ATTENDABLE_PATH_SEPARATOR}chat`,\n type: PLANK_COMPANION_TYPE,\n data: 'chat',\n properties: {\n label: ['channel companion label', { ns: THREAD_PLUGIN }],\n icon: 'ph--hash--regular',\n position: 'hoist',\n disposition: 'hidden',\n },\n },\n ];\n }),\n Option.getOrElse(() => []),\n );\n });\n },\n }),\n createExtension({\n id: `${meta.id}/comments-companion`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => {\n if (!Obj.isObject(node.data) || Obj.instanceOf(ChannelType, node.data)) {\n return Option.none();\n }\n const metadata = resolve(Obj.getTypename(node.data)!);\n return typeof metadata.comments === 'string' ? Option.some(node) : Option.none();\n }),\n Option.map((node) => [\n {\n id: [node.id, 'comments'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'comments',\n properties: {\n label: ['comments label', { ns: meta.id }],\n icon: 'ph--chat-text--regular',\n disposition: 'hidden',\n position: 'hoist',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n createExtension({\n id: `${meta.id}/comment-toolbar`,\n actions: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => {\n if (!Obj.isObject(node.data) || Obj.instanceOf(ChannelType, node.data)) {\n return Option.none();\n }\n const metadata = resolve(Obj.getTypename(node.data)!);\n return typeof metadata.comments === 'string' ? Option.some(node.data) : Option.none();\n }),\n Option.map((object) => {\n const selectionManager = context.getCapability(AttentionCapabilities.Selection);\n const toolbar = get(context.capabilities(ThreadCapabilities.State))[0]?.state.toolbar ?? {};\n const disabled = get(\n rxFromSignal(() => {\n const metadata = resolve(Obj.getTypename(object)!);\n const selection = selectionManager.getSelection(fullyQualifiedId(object), metadata.selectionMode);\n const anchor = getAnchor(selection);\n const invalidSelection = !anchor;\n const overlappingComment = toolbar[fullyQualifiedId(object)];\n return (metadata.comments === 'anchored' && invalidSelection) || overlappingComment;\n }),\n );\n\n return [\n {\n id: `${fullyQualifiedId(object)}/comment`,\n data: () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const metadata = resolve(Obj.getTypename(object)!);\n const selection = selectionManager.getSelection(fullyQualifiedId(object));\n // TODO(wittjosiah): Use presence of selection to determine if the comment should be anchored.\n // Requires all components which support selection (e.g. table/kanban) to support anchored comments.\n const anchor = metadata.comments === 'anchored' ? getAnchor(selection) : Date.now().toString();\n const name = metadata.getAnchorLabel?.(object, anchor);\n void dispatch(createIntent(ThreadAction.Create, { anchor, name, subject: object }));\n },\n properties: {\n label: ['add comment label', { ns: meta.id }],\n icon: 'ph--chat-text--regular',\n disposition: 'toolbar',\n disabled,\n testId: 'thread.comment.add',\n },\n },\n ];\n }),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n ]);\n};\n"],
5
- "mappings": "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",
6
- "names": ["Rx", "Option", "pipe", "Capabilities", "contributes", "createIntent", "Obj", "AttentionCapabilities", "PLANK_COMPANION_TYPE", "ATTENDABLE_PATH_SEPARATOR", "DECK_COMPANION_TYPE", "createExtension", "ROOT_ID", "rxFromSignal", "fullyQualifiedId", "context", "resolve", "typename", "getCapabilities", "Capabilities", "Metadata", "find", "id", "metadata", "contributes", "AppGraphBuilder", "createExtension", "THREAD_PLUGIN", "connector", "node", "Rx", "make", "get", "pipe", "Option", "flatMap", "ROOT_ID", "some", "none", "map", "call", "capabilities", "ThreadCapabilities", "CallManager", "rxFromSignal", "joined", "ATTENDABLE_PATH_SEPARATOR", "type", "DECK_COMPANION_TYPE", "data", "properties", "label", "ns", "icon", "position", "disposition", "getOrElse", "Obj", "instanceOf", "ChannelType", "channel", "callManager", "getCapability", "roomId", "fullyQualifiedId", "PLANK_COMPANION_TYPE", "meta", "isObject", "getTypename", "comments", "join", "actions", "object", "selectionManager", "AttentionCapabilities", "Selection", "toolbar", "State", "state", "disabled", "selection", "getSelection", "selectionMode", "anchor", "getAnchor", "invalidSelection", "overlappingComment", "dispatchPromise", "dispatch", "IntentDispatcher", "Date", "now", "toString", "name", "getAnchorLabel", "createIntent", "ThreadAction", "Create", "subject", "testId"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/call-manager.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes, type PluginContext } from '@dxos/app-framework';\nimport { ClientCapabilities } from '@dxos/plugin-client';\n\nimport { ThreadCapabilities } from './capabilities';\nimport { CallManager } from '../calls';\n\nexport default async (context: PluginContext) => {\n const client = context.getCapability(ClientCapabilities.Client);\n const callManager = new CallManager(client);\n await callManager.open();\n\n return contributes(ThreadCapabilities.CallManager, callManager, () => {\n void callManager.close();\n });\n};\n"],
5
- "mappings": ";;;;;;;;;;AAIA,SAASA,mBAAuC;AAChD,SAASC,0BAA0B;AAKnC,IAAA,uBAAe,OAAOC,YAAAA;AACpB,QAAMC,SAASD,QAAQE,cAAcC,mBAAmBC,MAAM;AAC9D,QAAMC,cAAc,IAAIC,YAAYL,MAAAA;AACpC,QAAMI,YAAYE,KAAI;AAEtB,SAAOC,YAAYC,mBAAmBH,aAAaD,aAAa,MAAA;AAC9D,SAAKA,YAAYK,MAAK;EACxB,CAAA;AACF;",
6
- "names": ["contributes", "ClientCapabilities", "context", "client", "getCapability", "ClientCapabilities", "Client", "callManager", "CallManager", "open", "contributes", "ThreadCapabilities", "close"]
7
- }
@@ -1,21 +0,0 @@
1
- // src/capabilities/index.ts
2
- import { lazy } from "@dxos/app-framework";
3
- var AppGraphBuilder = lazy(() => import("./app-graph-builder-Q5V3KXE3.mjs"));
4
- var CallManager = lazy(() => import("./call-manager-NIPDYUVD.mjs"));
5
- var IntentResolver = lazy(() => import("./intent-resolver-MWE6XLPY.mjs"));
6
- var Markdown = lazy(() => import("./markdown-ZO34G7RM.mjs"));
7
- var ReactRoot = lazy(() => import("./react-root-YNDNPODD.mjs"));
8
- var ReactSurface = lazy(() => import("./react-surface-2AXRNTCA.mjs"));
9
- var ThreadSettings = lazy(() => import("./settings-XZGPZNAU.mjs"));
10
- var ThreadState = lazy(() => import("./state-H6CYONWE.mjs"));
11
-
12
- export {
13
- AppGraphBuilder,
14
- CallManager,
15
- IntentResolver,
16
- Markdown,
17
- ReactRoot,
18
- ReactSurface,
19
- ThreadState
20
- };
21
- //# sourceMappingURL=chunk-5ZVJ4GAS.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/types/schema.ts", "../../../src/types/types.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { Type } from '@dxos/echo';\nimport { DataType } from '@dxos/schema';\n\nexport const ThreadStatus = Schema.Union(\n Schema.Literal('staged'),\n Schema.Literal('active'),\n Schema.Literal('resolved'),\n);\n\nconst _ThreadType = Schema.Struct({\n name: Schema.optional(Schema.String),\n status: Schema.optional(ThreadStatus),\n messages: Schema.mutable(Schema.Array(Type.Ref(DataType.Message))),\n}).pipe(Type.Obj({ typename: 'dxos.org/type/Thread', version: '0.1.0' }));\nexport interface ThreadType extends Schema.Schema.Type<typeof _ThreadType> {}\nexport const ThreadType: Type.obj<Schema.Schema<ThreadType, Schema.Schema.Encoded<typeof _ThreadType>, never>> =\n _ThreadType;\n\nconst _ChannelType = Schema.Struct({\n name: Schema.optional(Schema.String),\n defaultThread: Type.Ref(ThreadType),\n // TODO(wittjosiah): Should be an \"ordered collection\".\n threads: Schema.mutable(Schema.Array(Type.Ref(ThreadType))),\n}).pipe(Type.Obj({ typename: 'dxos.org/type/Channel', version: '0.1.0' }));\nexport interface ChannelType extends Schema.Schema.Type<typeof _ChannelType> {}\nexport const ChannelType: Type.obj<Schema.Schema<ChannelType, Schema.Schema.Encoded<typeof _ChannelType>, never>> =\n _ChannelType;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { Type } from '@dxos/echo';\nimport { EchoObjectSchema } from '@dxos/react-client/echo';\nimport { AnchoredTo, DataType } from '@dxos/schema';\n\nimport { ChannelType, ThreadType } from './schema';\nimport { THREAD_PLUGIN } from '../meta';\n\nexport namespace ThreadAction {\n const THREAD_ACTION = `${THREAD_PLUGIN}/action`;\n\n export class CreateChannel extends Schema.TaggedClass<CreateChannel>()(`${THREAD_ACTION}/create-channel`, {\n input: Schema.Struct({\n spaceId: Type.SpaceId,\n name: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: ChannelType,\n }),\n }) {}\n\n export class CreateChannelThread extends Schema.TaggedClass<CreateChannelThread>()(\n `${THREAD_ACTION}/create-channel-thread`,\n {\n input: Schema.Struct({\n channel: ChannelType,\n }),\n output: Schema.Struct({\n object: ThreadType,\n }),\n },\n ) {}\n\n export class Create extends Schema.TaggedClass<Create>()(`${THREAD_ACTION}/create`, {\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n anchor: Schema.optional(Schema.String),\n subject: EchoObjectSchema,\n }),\n output: Schema.Void,\n }) {}\n\n export class Delete extends Schema.TaggedClass<Delete>()(`${THREAD_ACTION}/delete`, {\n input: Schema.Struct({\n anchor: AnchoredTo,\n subject: EchoObjectSchema,\n thread: Schema.optional(ThreadType),\n }),\n output: Schema.Void,\n }) {}\n\n export class Select extends Schema.TaggedClass<Select>()(`${THREAD_ACTION}/select`, {\n input: Schema.Struct({\n current: Schema.String,\n }),\n output: Schema.Void,\n }) {}\n\n export class ToggleResolved extends Schema.TaggedClass<ToggleResolved>()(`${THREAD_ACTION}/toggle-resolved`, {\n input: Schema.Struct({\n thread: ThreadType,\n }),\n output: Schema.Void,\n }) {}\n\n export class AddMessage extends Schema.TaggedClass<AddMessage>()(`${THREAD_ACTION}/add-message`, {\n input: Schema.Struct({\n subject: EchoObjectSchema,\n anchor: AnchoredTo,\n sender: DataType.Actor,\n text: Schema.String,\n }),\n output: Schema.Void,\n }) {}\n\n export class DeleteMessage extends Schema.TaggedClass<DeleteMessage>()(`${THREAD_ACTION}/delete-message`, {\n input: Schema.Struct({\n anchor: AnchoredTo,\n subject: EchoObjectSchema,\n messageId: Schema.String,\n message: Schema.optional(DataType.Message),\n messageIndex: Schema.optional(Schema.Number),\n }),\n output: Schema.Void,\n }) {}\n}\n\nexport const ThreadSettingsSchema = Schema.mutable(Schema.Struct({}));\nexport type ThreadSettingsProps = Schema.Schema.Type<typeof ThreadSettingsSchema>;\n\nexport interface ThreadModel {\n root: ThreadType;\n}\n\ntype SubjectId = string;\nexport type ViewState = { showResolvedThreads: boolean };\nexport type ViewStore = Record<SubjectId, ViewState>;\n\nexport type ThreadState = {\n /** Object toolbar state. */\n toolbar: Record<string, boolean>;\n /** In-memory draft threads. */\n drafts: Record<string, AnchoredTo[]>;\n current?: string | undefined;\n};\n"],
5
- "mappings": "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",
6
- "names": ["Schema", "Type", "DataType", "ThreadStatus", "Schema", "Union", "Literal", "_ThreadType", "Struct", "name", "optional", "String", "status", "messages", "mutable", "Array", "Type", "Ref", "DataType", "Message", "pipe", "Obj", "typename", "version", "ThreadType", "_ChannelType", "defaultThread", "threads", "ChannelType", "Schema", "Type", "EchoObjectSchema", "AnchoredTo", "DataType", "ThreadAction", "THREAD_ACTION", "THREAD_PLUGIN", "CreateChannel", "Schema", "TaggedClass", "input", "Struct", "spaceId", "Type", "SpaceId", "name", "optional", "String", "output", "object", "ChannelType", "CreateChannelThread", "channel", "ThreadType", "Create", "anchor", "subject", "EchoObjectSchema", "Void", "Delete", "AnchoredTo", "thread", "Select", "current", "ToggleResolved", "AddMessage", "sender", "DataType", "Actor", "text", "DeleteMessage", "messageId", "message", "Message", "messageIndex", "Number", "ThreadSettingsSchema", "mutable"]
7
- }