@dxos/plugin-thread 0.8.1-main.ba2dec9 → 0.8.1-staging.5be625a

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 (169) hide show
  1. package/dist/lib/browser/ChannelContainer-ITIG7L7P.mjs +75 -0
  2. package/dist/lib/browser/ChannelContainer-ITIG7L7P.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-NAO3LZMZ.mjs → chunk-NOOMCX5E.mjs} +3 -2
  4. package/dist/lib/browser/chunk-NOOMCX5E.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-UPKU23DA.mjs → chunk-NRMJGYMA.mjs} +50 -43
  6. package/dist/lib/browser/chunk-NRMJGYMA.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-YK3ICB7G.mjs → chunk-SJPT347G.mjs} +19 -6
  8. package/dist/lib/browser/chunk-SJPT347G.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-BNEWNQBO.mjs → chunk-SMQYULO6.mjs} +16 -4
  10. package/dist/lib/browser/{chunk-BNEWNQBO.mjs.map → chunk-SMQYULO6.mjs.map} +4 -4
  11. package/dist/lib/browser/{chunk-636QDHE3.mjs → chunk-WBJLUUOK.mjs} +1 -1
  12. package/dist/lib/browser/{chunk-636QDHE3.mjs.map → chunk-WBJLUUOK.mjs.map} +2 -2
  13. package/dist/lib/browser/index.mjs +42 -31
  14. package/dist/lib/browser/index.mjs.map +4 -4
  15. package/dist/lib/browser/{intent-resolver-FAFQ54NP.mjs → intent-resolver-FSG3ZOIM.mjs} +65 -62
  16. package/dist/lib/browser/intent-resolver-FSG3ZOIM.mjs.map +7 -0
  17. package/dist/lib/browser/{markdown-RPYOUBVR.mjs → markdown-MYZQDQFY.mjs} +6 -6
  18. package/dist/lib/browser/markdown-MYZQDQFY.mjs.map +7 -0
  19. package/dist/lib/browser/meta.json +1 -1
  20. package/dist/lib/browser/{react-surface-Y4MUSICN.mjs → react-surface-KOYRIK3E.mjs} +25 -32
  21. package/dist/lib/browser/react-surface-KOYRIK3E.mjs.map +7 -0
  22. package/dist/lib/browser/{settings-WQTE5AEZ.mjs → settings-5CREE7BH.mjs} +3 -3
  23. package/dist/lib/browser/{state-GNFUURIC.mjs → state-HPUFZBB7.mjs} +4 -3
  24. package/dist/lib/browser/state-HPUFZBB7.mjs.map +7 -0
  25. package/dist/lib/browser/types.mjs +2 -2
  26. package/dist/lib/node/ChannelContainer-F7345XW2.cjs +99 -0
  27. package/dist/lib/node/ChannelContainer-F7345XW2.cjs.map +7 -0
  28. package/dist/lib/node/{chunk-CMEMMYDL.cjs → chunk-AXTPNGRI.cjs} +23 -10
  29. package/dist/lib/node/chunk-AXTPNGRI.cjs.map +7 -0
  30. package/dist/lib/node/{chunk-RQR5Z23G.cjs → chunk-DGV5ABT6.cjs} +52 -45
  31. package/dist/lib/node/chunk-DGV5ABT6.cjs.map +7 -0
  32. package/dist/lib/node/{chunk-AWSTZ2KN.cjs → chunk-JBOC6MIE.cjs} +30 -6
  33. package/dist/lib/node/chunk-JBOC6MIE.cjs.map +7 -0
  34. package/dist/lib/node/{chunk-F735VMTN.cjs → chunk-ONLWOUYZ.cjs} +4 -4
  35. package/dist/lib/node/{chunk-F735VMTN.cjs.map → chunk-ONLWOUYZ.cjs.map} +2 -2
  36. package/dist/lib/node/{chunk-FPWNZ6TB.cjs → chunk-VEVJBOWK.cjs} +8 -7
  37. package/dist/lib/node/chunk-VEVJBOWK.cjs.map +7 -0
  38. package/dist/lib/node/index.cjs +77 -67
  39. package/dist/lib/node/index.cjs.map +4 -4
  40. package/dist/lib/node/{intent-resolver-DVBEXJ33.cjs → intent-resolver-NBME5QSW.cjs} +79 -76
  41. package/dist/lib/node/intent-resolver-NBME5QSW.cjs.map +7 -0
  42. package/dist/lib/node/{markdown-ELRGISXE.cjs → markdown-QBQTARMD.cjs} +12 -12
  43. package/dist/lib/node/markdown-QBQTARMD.cjs.map +7 -0
  44. package/dist/lib/node/meta.json +1 -1
  45. package/dist/lib/node/{react-surface-7HLTN5XS.cjs → react-surface-ICWYXRJU.cjs} +46 -53
  46. package/dist/lib/node/react-surface-ICWYXRJU.cjs.map +7 -0
  47. package/dist/lib/node/{settings-7VQYARM5.cjs → settings-XOLYNUHH.cjs} +8 -8
  48. package/dist/lib/node/{state-TQWEZ6B3.cjs → state-JMI5ZXZI.cjs} +8 -7
  49. package/dist/lib/node/state-JMI5ZXZI.cjs.map +7 -0
  50. package/dist/lib/node/types.cjs +4 -4
  51. package/dist/lib/node/types.cjs.map +1 -1
  52. package/dist/lib/node-esm/ChannelContainer-GP6Y6JSN.mjs +76 -0
  53. package/dist/lib/node-esm/ChannelContainer-GP6Y6JSN.mjs.map +7 -0
  54. package/dist/lib/node-esm/{chunk-FXUATCLW.mjs → chunk-42F2DTMM.mjs} +1 -1
  55. package/dist/lib/node-esm/{chunk-FXUATCLW.mjs.map → chunk-42F2DTMM.mjs.map} +2 -2
  56. package/dist/lib/node-esm/{chunk-33NDMQQQ.mjs → chunk-FZXTP57V.mjs} +19 -6
  57. package/dist/lib/node-esm/chunk-FZXTP57V.mjs.map +7 -0
  58. package/dist/lib/node-esm/{chunk-CISLDOH7.mjs → chunk-TW2NME6Z.mjs} +50 -43
  59. package/dist/lib/node-esm/chunk-TW2NME6Z.mjs.map +7 -0
  60. package/dist/lib/node-esm/{chunk-ZJITX3TO.mjs → chunk-TXW5SIBN.mjs} +3 -2
  61. package/dist/lib/node-esm/chunk-TXW5SIBN.mjs.map +7 -0
  62. package/dist/lib/node-esm/{chunk-HLWJTUWZ.mjs → chunk-XQO5DGHF.mjs} +16 -4
  63. package/dist/lib/node-esm/{chunk-HLWJTUWZ.mjs.map → chunk-XQO5DGHF.mjs.map} +4 -4
  64. package/dist/lib/node-esm/index.mjs +42 -31
  65. package/dist/lib/node-esm/index.mjs.map +4 -4
  66. package/dist/lib/node-esm/{intent-resolver-DHVLBNCC.mjs → intent-resolver-QQCCKVEW.mjs} +65 -62
  67. package/dist/lib/node-esm/intent-resolver-QQCCKVEW.mjs.map +7 -0
  68. package/dist/lib/node-esm/{markdown-23OB7EZG.mjs → markdown-QO5HK24O.mjs} +6 -6
  69. package/dist/lib/node-esm/markdown-QO5HK24O.mjs.map +7 -0
  70. package/dist/lib/node-esm/meta.json +1 -1
  71. package/dist/lib/node-esm/{react-surface-AZHTTR6J.mjs → react-surface-Z4CLCKTN.mjs} +25 -32
  72. package/dist/lib/node-esm/react-surface-Z4CLCKTN.mjs.map +7 -0
  73. package/dist/lib/node-esm/{settings-SGMM7UDT.mjs → settings-32PBKVBB.mjs} +3 -3
  74. package/dist/lib/node-esm/{state-7MLR27YG.mjs → state-PSZO57LP.mjs} +4 -3
  75. package/dist/lib/node-esm/state-PSZO57LP.mjs.map +7 -0
  76. package/dist/lib/node-esm/types.mjs +2 -2
  77. package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
  78. package/dist/types/src/capabilities/capabilities.d.ts +5 -0
  79. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  80. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  81. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  82. package/dist/types/src/components/ChannelContainer.d.ts +9 -0
  83. package/dist/types/src/components/ChannelContainer.d.ts.map +1 -0
  84. package/dist/types/src/components/Chat.stories.d.ts.map +1 -1
  85. package/dist/types/src/components/ChatContainer.d.ts +7 -1
  86. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  87. package/dist/types/src/components/CommentContainer.d.ts.map +1 -1
  88. package/dist/types/src/components/Comments.stories.d.ts.map +1 -1
  89. package/dist/types/src/components/MessageContainer.d.ts +3 -2
  90. package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
  91. package/dist/types/src/components/ThreadComplementary.d.ts.map +1 -1
  92. package/dist/types/src/components/index.d.ts +3 -2
  93. package/dist/types/src/components/index.d.ts.map +1 -1
  94. package/dist/types/src/components/testing.d.ts +44 -40
  95. package/dist/types/src/components/testing.d.ts.map +1 -1
  96. package/dist/types/src/events.d.ts +4 -0
  97. package/dist/types/src/events.d.ts.map +1 -0
  98. package/dist/types/src/hooks/analytics.d.ts +2 -1
  99. package/dist/types/src/hooks/analytics.d.ts.map +1 -1
  100. package/dist/types/src/index.d.ts +2 -0
  101. package/dist/types/src/index.d.ts.map +1 -1
  102. package/dist/types/src/meta.d.ts +2 -7
  103. package/dist/types/src/meta.d.ts.map +1 -1
  104. package/dist/types/src/translations.d.ts +2 -9
  105. package/dist/types/src/translations.d.ts.map +1 -1
  106. package/dist/types/src/types.d.ts +20 -4
  107. package/dist/types/src/types.d.ts.map +1 -1
  108. package/package.json +33 -30
  109. package/src/ThreadPlugin.tsx +11 -7
  110. package/src/capabilities/capabilities.ts +6 -0
  111. package/src/capabilities/intent-resolver.ts +39 -33
  112. package/src/capabilities/react-surface.tsx +6 -18
  113. package/src/capabilities/state.ts +1 -1
  114. package/src/components/ChannelContainer.tsx +80 -0
  115. package/src/components/Chat.stories.tsx +19 -9
  116. package/src/components/ChatContainer.tsx +27 -29
  117. package/src/components/CommentContainer.tsx +8 -2
  118. package/src/components/Comments.stories.tsx +2 -1
  119. package/src/components/MessageContainer.tsx +18 -14
  120. package/src/components/ThreadComplementary.tsx +5 -4
  121. package/src/components/index.ts +1 -1
  122. package/src/components/testing.ts +4 -27
  123. package/src/events.ts +11 -0
  124. package/src/extensions/threads.ts +2 -2
  125. package/src/hooks/analytics.ts +7 -2
  126. package/src/index.ts +2 -0
  127. package/src/meta.ts +2 -2
  128. package/src/translations.ts +1 -3
  129. package/src/types.ts +18 -4
  130. package/dist/lib/browser/ThreadContainer-6OP5AG2W.mjs +0 -19
  131. package/dist/lib/browser/ThreadContainer-6OP5AG2W.mjs.map +0 -7
  132. package/dist/lib/browser/chunk-NAO3LZMZ.mjs.map +0 -7
  133. package/dist/lib/browser/chunk-UPKU23DA.mjs.map +0 -7
  134. package/dist/lib/browser/chunk-VOMIDDNO.mjs +0 -15
  135. package/dist/lib/browser/chunk-VOMIDDNO.mjs.map +0 -7
  136. package/dist/lib/browser/chunk-YK3ICB7G.mjs.map +0 -7
  137. package/dist/lib/browser/intent-resolver-FAFQ54NP.mjs.map +0 -7
  138. package/dist/lib/browser/markdown-RPYOUBVR.mjs.map +0 -7
  139. package/dist/lib/browser/react-surface-Y4MUSICN.mjs.map +0 -7
  140. package/dist/lib/browser/state-GNFUURIC.mjs.map +0 -7
  141. package/dist/lib/node/ThreadContainer-LTKKLPXX.cjs +0 -45
  142. package/dist/lib/node/ThreadContainer-LTKKLPXX.cjs.map +0 -7
  143. package/dist/lib/node/chunk-AWSTZ2KN.cjs.map +0 -7
  144. package/dist/lib/node/chunk-BHFHFTHO.cjs +0 -50
  145. package/dist/lib/node/chunk-BHFHFTHO.cjs.map +0 -7
  146. package/dist/lib/node/chunk-CMEMMYDL.cjs.map +0 -7
  147. package/dist/lib/node/chunk-FPWNZ6TB.cjs.map +0 -7
  148. package/dist/lib/node/chunk-RQR5Z23G.cjs.map +0 -7
  149. package/dist/lib/node/intent-resolver-DVBEXJ33.cjs.map +0 -7
  150. package/dist/lib/node/markdown-ELRGISXE.cjs.map +0 -7
  151. package/dist/lib/node/react-surface-7HLTN5XS.cjs.map +0 -7
  152. package/dist/lib/node/state-TQWEZ6B3.cjs.map +0 -7
  153. package/dist/lib/node-esm/ThreadContainer-SV74JFRH.mjs +0 -20
  154. package/dist/lib/node-esm/ThreadContainer-SV74JFRH.mjs.map +0 -7
  155. package/dist/lib/node-esm/chunk-33NDMQQQ.mjs.map +0 -7
  156. package/dist/lib/node-esm/chunk-CISLDOH7.mjs.map +0 -7
  157. package/dist/lib/node-esm/chunk-PJPVEO7E.mjs +0 -17
  158. package/dist/lib/node-esm/chunk-PJPVEO7E.mjs.map +0 -7
  159. package/dist/lib/node-esm/chunk-ZJITX3TO.mjs.map +0 -7
  160. package/dist/lib/node-esm/intent-resolver-DHVLBNCC.mjs.map +0 -7
  161. package/dist/lib/node-esm/markdown-23OB7EZG.mjs.map +0 -7
  162. package/dist/lib/node-esm/react-surface-AZHTTR6J.mjs.map +0 -7
  163. package/dist/lib/node-esm/state-7MLR27YG.mjs.map +0 -7
  164. package/dist/types/src/components/ThreadContainer.d.ts +0 -7
  165. package/dist/types/src/components/ThreadContainer.d.ts.map +0 -1
  166. package/src/components/ThreadContainer.tsx +0 -22
  167. /package/dist/lib/browser/{settings-WQTE5AEZ.mjs.map → settings-5CREE7BH.mjs.map} +0 -0
  168. /package/dist/lib/node/{settings-7VQYARM5.cjs.map → settings-XOLYNUHH.cjs.map} +0 -0
  169. /package/dist/lib/node-esm/{settings-SGMM7UDT.mjs.map → settings-32PBKVBB.mjs.map} +0 -0
@@ -1,22 +1,21 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import "./chunk-PJPVEO7E.mjs";
3
2
  import {
4
3
  MessageContainer,
5
4
  command,
6
5
  getMessageMetadata
7
- } from "./chunk-CISLDOH7.mjs";
6
+ } from "./chunk-TW2NME6Z.mjs";
8
7
  import {
9
8
  useStatus
10
- } from "./chunk-HLWJTUWZ.mjs";
9
+ } from "./chunk-XQO5DGHF.mjs";
11
10
  import {
12
11
  ThreadAction
13
- } from "./chunk-33NDMQQQ.mjs";
12
+ } from "./chunk-FZXTP57V.mjs";
14
13
  import {
15
14
  ThreadCapabilities
16
- } from "./chunk-ZJITX3TO.mjs";
15
+ } from "./chunk-TXW5SIBN.mjs";
17
16
  import {
18
17
  THREAD_PLUGIN
19
- } from "./chunk-FXUATCLW.mjs";
18
+ } from "./chunk-42F2DTMM.mjs";
20
19
 
21
20
  // packages/plugins/plugin-thread/src/capabilities/react-surface.tsx
22
21
  import React5 from "react";
@@ -167,8 +166,9 @@ var CommentContainer = ({ thread, detached, current, onAttend, onComment, onReso
167
166
  onResolve: handleResolve
168
167
  }), onThreadDelete && /* @__PURE__ */ React.createElement(DeleteThreadButton, {
169
168
  onDelete: handleThreadDelete
170
- }))), RefArray.allResolvedTargets(thread.messages?.filter(isNonNullable) ?? []).map((message) => /* @__PURE__ */ React.createElement(MessageContainer, {
169
+ }))), RefArray.targets(thread.messages?.filter(isNonNullable) ?? []).map((message) => /* @__PURE__ */ React.createElement(MessageContainer, {
171
170
  key: message.id,
171
+ editable: true,
172
172
  message,
173
173
  members,
174
174
  onDelete: handleMessageDelete
@@ -233,12 +233,12 @@ var CommentsContainer = ({ threads, detached = [], currentId, showResolvedThread
233
233
  import React3, { useCallback as useCallback2, useEffect as useEffect2, useMemo as useMemo2 } from "react";
234
234
  import { createIntent, LayoutAction, useCapability, useCapabilities, useIntentDispatcher } from "@dxos/app-framework";
235
235
  import { ThreadCapabilities as ThreadCapabilities2 } from "@dxos/plugin-space";
236
- import { MessageType } from "@dxos/plugin-space/types";
237
236
  import { create, fullyQualifiedId as fullyQualifiedId3, makeRef, RefArray as RefArray2 } from "@dxos/react-client/echo";
238
237
  import { useIdentity as useIdentity2 } from "@dxos/react-client/halo";
239
238
  import { useTranslation as useTranslation3 } from "@dxos/react-ui";
240
239
  import { useAttended } from "@dxos/react-ui-attention";
241
240
  import { Tabs } from "@dxos/react-ui-tabs";
241
+ import { MessageType } from "@dxos/schema";
242
242
  import { isNonNullable as isNonNullable2 } from "@dxos/util";
243
243
  var ThreadComplementary = ({ subject }) => {
244
244
  const { dispatchPromise: dispatch } = useIntentDispatcher();
@@ -262,7 +262,7 @@ var ThreadComplementary = ({ subject }) => {
262
262
  createSort,
263
263
  subject
264
264
  ]);
265
- const threadObjects = RefArray2.allResolvedTargets(subject.threads ?? []);
265
+ const threadObjects = RefArray2.targets(subject.threads ?? []);
266
266
  const threads = useMemo2(() => {
267
267
  return threadObjects.concat(drafts ?? []).filter(isNonNullable2);
268
268
  }, [
@@ -308,8 +308,13 @@ var ThreadComplementary = ({ subject }) => {
308
308
  sender: {
309
309
  identityKey: identity?.identityKey.toHex()
310
310
  },
311
- timestamp: (/* @__PURE__ */ new Date()).toISOString(),
312
- text: message
311
+ created: (/* @__PURE__ */ new Date()).toISOString(),
312
+ blocks: [
313
+ {
314
+ type: "text",
315
+ text: message
316
+ }
317
+ ]
313
318
  })));
314
319
  await dispatch(createIntent(ThreadAction.OnMessageAdd, {
315
320
  thread,
@@ -379,35 +384,23 @@ var ThreadSettings = ({ settings }) => {
379
384
  };
380
385
 
381
386
  // packages/plugins/plugin-thread/src/components/index.ts
382
- var ThreadContainer = lazy(() => import("./ThreadContainer-SV74JFRH.mjs"));
387
+ var ChannelContainer = lazy(() => import("./ChannelContainer-GP6Y6JSN.mjs"));
383
388
 
384
389
  // packages/plugins/plugin-thread/src/capabilities/react-surface.tsx
385
390
  var react_surface_default = () => contributes(Capabilities.ReactSurface, [
386
391
  createSurface({
387
392
  id: `${THREAD_PLUGIN}/channel`,
388
393
  role: "article",
389
- filter: (data) => data.subject instanceof ChannelType && !!data.subject.threads[0],
390
- component: ({ data, role }) => {
394
+ filter: (data) => data.subject instanceof ChannelType,
395
+ component: ({ data: { subject: channel }, role }) => {
391
396
  const layout = useLayout();
392
- const channel = data.subject;
393
- void channel.threads[0].load();
394
- const thread = channel.threads[0].target;
395
- if (!thread) {
396
- return null;
397
- }
398
397
  const currentPosition = layout.active.findIndex((id) => id === channel.id);
399
- if (currentPosition > 0) {
400
- const objectToTheLeft = layout.active[currentPosition - 1];
401
- const context = getSpace2(channel)?.db.getObjectById(objectToTheLeft);
402
- return /* @__PURE__ */ React5.createElement(ThreadContainer, {
403
- role,
404
- thread,
405
- context
406
- });
407
- }
408
- return /* @__PURE__ */ React5.createElement(ThreadContainer, {
398
+ const objectToTheLeft = layout.active[currentPosition - 1];
399
+ const context = currentPosition > 0 ? getSpace2(channel)?.db.getObjectById(objectToTheLeft) : void 0;
400
+ return /* @__PURE__ */ React5.createElement(ChannelContainer, {
409
401
  role,
410
- thread
402
+ channel,
403
+ context
411
404
  });
412
405
  }
413
406
  }),
@@ -431,4 +424,4 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
431
424
  export {
432
425
  react_surface_default as default
433
426
  };
434
- //# sourceMappingURL=react-surface-AZHTTR6J.mjs.map
427
+ //# sourceMappingURL=react-surface-Z4CLCKTN.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/index.ts", "../../../src/components/CommentContainer.tsx", "../../../src/components/CommentsContainer.tsx", "../../../src/components/ThreadComplementary.tsx", "../../../src/components/ThreadSettings.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, createSurface, useLayout } from '@dxos/app-framework';\nimport { type Ref } from '@dxos/echo-schema';\nimport { SettingsStore } from '@dxos/local-storage';\nimport { ChannelType, type ThreadType } from '@dxos/plugin-space/types';\nimport { getSpace } from '@dxos/react-client/echo';\n\nimport { ChannelContainer, ThreadComplementary, ThreadSettings } from '../components';\nimport { THREAD_PLUGIN } from '../meta';\nimport { type ThreadSettingsProps } from '../types';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${THREAD_PLUGIN}/channel`,\n role: 'article',\n filter: (data): data is { subject: ChannelType } => data.subject instanceof ChannelType,\n component: ({ data: { subject: channel }, role }) => {\n const layout = useLayout();\n const currentPosition = layout.active.findIndex((id) => id === channel.id);\n const objectToTheLeft = layout.active[currentPosition - 1];\n const context = currentPosition > 0 ? getSpace(channel)?.db.getObjectById(objectToTheLeft) : undefined;\n return <ChannelContainer role={role} channel={channel} context={context} />;\n },\n }),\n createSurface({\n id: `${THREAD_PLUGIN}/thread`,\n role: 'complementary--comments',\n filter: (data): data is { subject: { threads: Ref<ThreadType>[] } } =>\n !!data.subject &&\n typeof data.subject === 'object' &&\n 'threads' in data.subject &&\n Array.isArray(data.subject.threads) &&\n !(data.subject instanceof ChannelType),\n component: ({ data }) => <ThreadComplementary subject={data.subject} />,\n }),\n createSurface({\n id: `${THREAD_PLUGIN}/settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<ThreadSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === THREAD_PLUGIN,\n component: ({ data: { subject } }) => <ThreadSettings settings={subject.value} />,\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport const ChannelContainer = lazy(() => import('./ChannelContainer'));\n\n// TODO(wittjosiah): Suspense boundary for sidebar?\nexport * from './CommentContainer';\nexport * from './CommentsContainer';\nexport * from './ChatContainer';\nexport * from './MessageContainer';\nexport * from './ThreadComplementary';\nexport * from './ThreadSettings';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { CheckCircle, X } from '@phosphor-icons/react';\nimport React, { useCallback, useMemo, useRef, useState } from 'react';\n\nimport { RefArray } from '@dxos/live-object';\nimport { fullyQualifiedId, getSpace, useMembers } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { Button, Tag, Tooltip, useThemeContext, useTranslation } from '@dxos/react-ui';\nimport { createBasicExtensions, createThemeExtensions, listener } from '@dxos/react-ui-editor';\nimport {\n getSize,\n hoverableControlItem,\n hoverableControls,\n hoverableFocusedWithinControls,\n mx,\n} from '@dxos/react-ui-theme';\nimport { MessageTextbox, type MessageTextboxProps, Thread, ThreadFooter, ThreadHeading } from '@dxos/react-ui-thread';\nimport { isNonNullable } from '@dxos/util';\n\nimport { MessageContainer } from './MessageContainer';\nimport { command } from './command-extension';\nimport { type ThreadContainerProps } from './types';\nimport { useStatus } from '../hooks';\nimport { THREAD_PLUGIN } from '../meta';\nimport { getMessageMetadata } from '../util';\n\nconst sizeClass = getSize(4);\n\n// TODO(thure): #8149\nconst commentControlClassNames = '!p-1 !min-bs-0 transition-opacity';\n\nconst ToggleResolvedButton = ({\n isResolved,\n onResolve,\n}: {\n isResolved: boolean | undefined;\n onResolve: () => void;\n}) => {\n const { t } = useTranslation(THREAD_PLUGIN);\n const label = t(isResolved ? 'mark as unresolved label' : 'mark as resolved label');\n return (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <Button\n variant='ghost'\n data-testid='thread.toggle-resolved'\n onClick={onResolve}\n classNames={[commentControlClassNames, !isResolved && hoverableControlItem]}\n >\n <span className='sr-only'>{label}</span>\n {isResolved ? <CheckCircle className={sizeClass} weight='fill' /> : <CheckCircle className={sizeClass} />}\n </Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content>\n {label}\n <Tooltip.Arrow />\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n );\n};\n\nconst DeleteThreadButton = ({ onDelete }: { onDelete: () => void }) => {\n const { t } = useTranslation(THREAD_PLUGIN);\n const label = t('delete thread label');\n return (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <Button\n variant='ghost'\n data-testid='thread.delete'\n onClick={onDelete}\n classNames={[commentControlClassNames, hoverableControlItem]}\n >\n <span className='sr-only'>{label}</span>\n <X className={sizeClass} />\n </Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content classNames='z-30'>\n {label}\n <Tooltip.Arrow />\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n );\n};\n\nexport const CommentContainer = ({\n thread,\n detached,\n current,\n onAttend,\n onComment,\n onResolve,\n onMessageDelete,\n onThreadDelete,\n}: ThreadContainerProps) => {\n const identity = useIdentity()!;\n const space = getSpace(thread);\n const members = useMembers(space?.key);\n const activity = useStatus(space, fullyQualifiedId(thread));\n const { t } = useTranslation(THREAD_PLUGIN);\n const threadScrollRef = useRef<HTMLDivElement | null>(null);\n const { themeMode } = useThemeContext();\n\n const textboxMetadata = getMessageMetadata(fullyQualifiedId(thread), identity);\n // TODO(wittjosiah): This is a hack to reset the editor after a message is sent.\n const [_count, _setCount] = useState(0);\n const rerenderEditor = () => _setCount((count) => count + 1);\n const messageRef = useRef('');\n const extensions = useMemo(\n () => [\n createBasicExtensions({ placeholder: t('message placeholder') }),\n createThemeExtensions({ themeMode }),\n listener({ onChange: (text) => (messageRef.current = text) }),\n command,\n ],\n [_count],\n );\n\n // TODO(thure): Factor out.\n const scrollToEnd = (behavior: ScrollBehavior) =>\n setTimeout(() => threadScrollRef.current?.scrollIntoView({ behavior, block: 'end' }), 10);\n\n const handleAttend = useCallback(() => onAttend?.(thread), [onAttend, thread]);\n const handleResolve = useCallback(() => onResolve?.(thread), [onResolve, thread]);\n const handleMessageDelete = useCallback((id: string) => onMessageDelete?.(thread, id), [onMessageDelete, thread]);\n const handleThreadDelete = useCallback(() => onThreadDelete?.(thread), [onThreadDelete, thread]);\n\n const handleComment: MessageTextboxProps['onSend'] = useCallback(() => {\n if (!messageRef.current) {\n return false;\n }\n\n onComment?.(thread, messageRef.current);\n messageRef.current = '';\n scrollToEnd('instant');\n rerenderEditor();\n\n return true;\n }, [thread, identity]);\n\n return (\n <Thread onClickCapture={handleAttend} onFocusCapture={handleAttend} current={current} id={fullyQualifiedId(thread)}>\n <div\n role='none'\n className={mx(\n 'col-span-2 grid grid-cols-[var(--rail-size)_1fr_min-content]',\n hoverableControls,\n hoverableFocusedWithinControls,\n )}\n >\n {detached ? (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <ThreadHeading detached>{thread.name}</ThreadHeading>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content classNames='z-30' side='top'>\n {t('detached thread label')}\n <Tooltip.Arrow />\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n ) : (\n <ThreadHeading>{thread.name}</ThreadHeading>\n )}\n <div className='flex flex-row items-center pli-1'>\n {thread.status === 'staged' && <Tag palette='neutral'>{t('draft button')}</Tag>}\n {onResolve && !(thread?.status === 'staged') && (\n <ToggleResolvedButton isResolved={thread?.status === 'resolved'} onResolve={handleResolve} />\n )}\n {onThreadDelete && <DeleteThreadButton onDelete={handleThreadDelete} />}\n </div>\n </div>\n {/** TODO(dmaretskyi): How's `thread.messages` undefined? */}\n {RefArray.targets(thread.messages?.filter(isNonNullable) ?? []).map((message) => (\n <MessageContainer\n key={message.id}\n editable\n message={message}\n members={members}\n onDelete={handleMessageDelete}\n />\n ))}\n {/*\n TODO(wittjosiah): Can't autofocus this generally.\n There can be multiple threads with inputs and they can't all be focused.\n Also, it steals focus from documents when first rendered.\n Need to find a way to autofocus in one scenario only: when a new thread is created.\n */}\n <MessageTextbox extensions={extensions} onSend={handleComment} {...textboxMetadata} />\n <ThreadFooter activity={activity}>{t('activity message')}</ThreadFooter>\n {/* NOTE(thure): This can’t also be the `overflow-anchor` because `ScrollArea` injects an interceding node that contains this necessary ref’d element. */}\n <div role='none' className='bs-px -mbs-px' ref={threadScrollRef} />\n </Thread>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { ChatText } from '@phosphor-icons/react';\nimport React, { useEffect } from 'react';\n\nimport { type ThreadType } from '@dxos/plugin-space/types';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { useTranslation, Trans } from '@dxos/react-ui';\nimport { descriptionText, mx } from '@dxos/react-ui-theme';\n\nimport { CommentContainer } from './CommentContainer';\nimport { type ThreadContainerProps } from './types';\nimport { THREAD_PLUGIN } from '../meta';\n\nexport type ThreadsContainerProps = Omit<ThreadContainerProps, 'thread' | 'detached' | 'current' | 'autoFocus'> & {\n threads: ThreadType[];\n /**\n * Threads that are no longer anchored to a position in the object.\n */\n detached?: string[];\n currentId?: string;\n showResolvedThreads?: boolean;\n};\n\n/**\n * Comment threads.\n */\nexport const CommentsContainer = ({\n threads,\n detached = [],\n currentId,\n showResolvedThreads,\n ...props\n}: ThreadsContainerProps) => {\n const { t } = useTranslation(THREAD_PLUGIN);\n const filteredThreads = showResolvedThreads ? threads : threads.filter((thread) => !(thread?.status === 'resolved'));\n\n useEffect(() => {\n if (currentId) {\n document.getElementById(currentId)?.scrollIntoView({ behavior: 'smooth', block: 'end' });\n }\n }, [currentId]);\n\n return (\n <>\n {filteredThreads.length > 0 ? (\n filteredThreads.map((thread) => {\n const threadId = fullyQualifiedId(thread);\n return (\n <CommentContainer\n key={threadId}\n thread={thread}\n current={currentId === threadId}\n detached={detached.includes(threadId)}\n {...props}\n />\n );\n })\n ) : (\n <div\n role='alert'\n className={mx(\n descriptionText,\n 'place-self-center border border-dashed border-unAccent rounded-lg text-center p-4 m-4',\n )}\n >\n <h2 className='mbe-2 font-medium text-baseText'>{t('no comments title')}</h2>\n <p>\n <Trans\n {...{\n t,\n i18nKey: 'no comments message',\n components: {\n commentIcon: <ChatText className='inline-block' />,\n },\n }}\n />\n </p>\n </div>\n )}\n </>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useMemo } from 'react';\n\nimport { createIntent, LayoutAction, useCapability, useCapabilities, useIntentDispatcher } from '@dxos/app-framework';\nimport { ThreadCapabilities } from '@dxos/plugin-space';\nimport { type ThreadType } from '@dxos/plugin-space/types';\nimport { create, fullyQualifiedId, makeRef, RefArray } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { useAttended } from '@dxos/react-ui-attention';\nimport { Tabs } from '@dxos/react-ui-tabs';\nimport { MessageType } from '@dxos/schema';\nimport { isNonNullable } from '@dxos/util';\n\nimport { ThreadCapabilities as LocalThreadCapabilities } from '../capabilities';\nimport { CommentsContainer } from '../components';\nimport { THREAD_PLUGIN } from '../meta';\nimport { ThreadAction } from '../types';\n\nexport const ThreadComplementary = ({ subject }: { subject: any }) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const identity = useIdentity();\n const { t } = useTranslation(THREAD_PLUGIN);\n\n const { state, getViewState } = useCapability(LocalThreadCapabilities.MutableState);\n const viewState = getViewState(fullyQualifiedId(subject));\n const { showResolvedThreads } = viewState;\n const onChangeViewState = useCallback(\n (nextValue: string) => {\n viewState.showResolvedThreads = nextValue === 'all';\n },\n [viewState],\n );\n const drafts = state.drafts[fullyQualifiedId(subject)];\n\n const threadsIntegrators = useCapabilities(ThreadCapabilities.Thread);\n const createSort = useMemo(\n () => threadsIntegrators.find((p) => p.predicate(subject))?.createSort,\n [threadsIntegrators, subject],\n );\n const sort = useMemo(() => createSort?.(subject), [createSort, subject]);\n\n const threadObjects = RefArray.targets(subject.threads ?? []);\n\n const threads = useMemo(() => {\n return threadObjects.concat(drafts ?? []).filter(isNonNullable) as ThreadType[];\n }, [JSON.stringify(threadObjects), JSON.stringify(drafts)]);\n\n const detachedIds = useMemo(() => {\n return threads.filter(({ anchor }) => !anchor).map((thread) => fullyQualifiedId(thread));\n }, [threads]);\n\n useEffect(() => {\n if (!sort) {\n return;\n }\n threads.sort((a, b) => sort(a?.anchor, b?.anchor));\n }, [sort, threads]);\n\n const attended = useAttended();\n const qualifiedSubjectId = fullyQualifiedId(subject);\n\n const handleAttend = useCallback(\n (thread: ThreadType) => {\n const threadId = fullyQualifiedId(thread);\n if (state.current !== threadId) {\n state.current = threadId;\n\n // TODO(wittjosiah): Should this be a thread-specific intent?\n // The layout doesn't know about threads and this working depends on other plugins conditionally handling it.\n // This may be overloading this intent or highjacking its intended purpose.\n void dispatch(\n createIntent(LayoutAction.ScrollIntoView, {\n part: 'current',\n subject: fullyQualifiedId(subject),\n options: {\n cursor: thread.anchor,\n ref: threadId,\n },\n }),\n );\n }\n },\n [state.current, dispatch, subject],\n );\n\n const handleComment = useCallback(\n async (thread: ThreadType, message: string) => {\n thread.messages.push(\n makeRef(\n create(MessageType, {\n sender: { identityKey: identity?.identityKey.toHex() },\n created: new Date().toISOString(),\n blocks: [{ type: 'text', text: message }],\n // TODO(wittjosiah): Context based on attention.\n // context: context ? makeRef(context) : undefined,\n }),\n ),\n );\n\n await dispatch(createIntent(ThreadAction.OnMessageAdd, { thread, subject }));\n\n state.current = fullyQualifiedId(thread);\n },\n [dispatch, identity, subject],\n );\n\n const handleResolve = useCallback(\n (thread: ThreadType) => dispatch(createIntent(ThreadAction.ToggleResolved, { thread })),\n [dispatch],\n );\n\n const handleThreadDelete = useCallback(\n (thread: ThreadType) => dispatch(createIntent(ThreadAction.Delete, { thread, subject })),\n [dispatch, subject],\n );\n\n const handleMessageDelete = useCallback(\n (thread: ThreadType, messageId: string) =>\n dispatch(createIntent(ThreadAction.DeleteMessage, { thread, subject, messageId })),\n [dispatch, subject],\n );\n\n const comments = (\n <CommentsContainer\n threads={threads}\n detached={detachedIds}\n currentId={attended.includes(qualifiedSubjectId) ? state.current : undefined}\n showResolvedThreads={showResolvedThreads}\n onAttend={handleAttend}\n onComment={handleComment}\n onResolve={handleResolve}\n onMessageDelete={handleMessageDelete}\n onThreadDelete={handleThreadDelete}\n />\n );\n\n return (\n <Tabs.Root\n value={showResolvedThreads ? 'all' : 'unresolved'}\n onValueChange={onChangeViewState}\n orientation='horizontal'\n >\n <Tabs.Tablist classNames='p-1 gap-1 bs-[--rail-action] border-be border-separator'>\n <Tabs.Tab value='unresolved' classNames='text-sm'>\n {t('show unresolved label')}\n </Tabs.Tab>\n <Tabs.Tab value='all' classNames='text-sm'>\n {t('show all label')}\n </Tabs.Tab>\n </Tabs.Tablist>\n <Tabs.Tabpanel value='all'>{showResolvedThreads && comments}</Tabs.Tabpanel>\n <Tabs.Tabpanel value='unresolved'>{!showResolvedThreads && comments}</Tabs.Tabpanel>\n </Tabs.Root>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\n// import { useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormContainer } from '@dxos/react-ui-form';\n\n// import { THREAD_PLUGIN } from '../meta';\nimport type { ThreadSettingsProps } from '../types';\n\nexport const ThreadSettings = ({ settings }: { settings: ThreadSettingsProps }) => {\n // const { t } = useTranslation(THREAD_PLUGIN);\n\n return <DeprecatedFormContainer></DeprecatedFormContainer>;\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "Capabilities", "contributes", "createSurface", "useLayout", "SettingsStore", "ChannelType", "getSpace", "lazy", "CheckCircle", "X", "React", "useCallback", "useMemo", "useRef", "useState", "RefArray", "fullyQualifiedId", "getSpace", "useMembers", "useIdentity", "Button", "Tag", "Tooltip", "useThemeContext", "useTranslation", "createBasicExtensions", "createThemeExtensions", "listener", "getSize", "hoverableControlItem", "hoverableControls", "hoverableFocusedWithinControls", "mx", "MessageTextbox", "Thread", "ThreadFooter", "ThreadHeading", "isNonNullable", "sizeClass", "getSize", "commentControlClassNames", "ToggleResolvedButton", "isResolved", "onResolve", "t", "useTranslation", "THREAD_PLUGIN", "label", "Tooltip", "Root", "Trigger", "asChild", "Button", "variant", "data-testid", "onClick", "classNames", "hoverableControlItem", "span", "className", "CheckCircle", "weight", "Portal", "Content", "Arrow", "DeleteThreadButton", "onDelete", "X", "CommentContainer", "thread", "detached", "current", "onAttend", "onComment", "onMessageDelete", "onThreadDelete", "identity", "useIdentity", "space", "getSpace", "members", "useMembers", "key", "activity", "useStatus", "fullyQualifiedId", "threadScrollRef", "useRef", "themeMode", "useThemeContext", "textboxMetadata", "getMessageMetadata", "_count", "_setCount", "useState", "rerenderEditor", "count", "messageRef", "extensions", "useMemo", "createBasicExtensions", "placeholder", "createThemeExtensions", "listener", "onChange", "text", "command", "scrollToEnd", "behavior", "setTimeout", "scrollIntoView", "block", "handleAttend", "useCallback", "handleResolve", "handleMessageDelete", "id", "handleThreadDelete", "handleComment", "Thread", "onClickCapture", "onFocusCapture", "div", "role", "mx", "hoverableControls", "hoverableFocusedWithinControls", "ThreadHeading", "name", "side", "status", "Tag", "palette", "RefArray", "targets", "messages", "filter", "isNonNullable", "map", "message", "MessageContainer", "editable", "MessageTextbox", "onSend", "ThreadFooter", "ref", "ChatText", "React", "useEffect", "fullyQualifiedId", "useTranslation", "Trans", "descriptionText", "mx", "CommentsContainer", "threads", "detached", "currentId", "showResolvedThreads", "props", "t", "useTranslation", "THREAD_PLUGIN", "filteredThreads", "filter", "thread", "status", "useEffect", "document", "getElementById", "scrollIntoView", "behavior", "block", "React", "length", "map", "threadId", "fullyQualifiedId", "CommentContainer", "key", "current", "includes", "div", "role", "className", "mx", "descriptionText", "h2", "p", "Trans", "i18nKey", "components", "commentIcon", "ChatText", "React", "useCallback", "useEffect", "useMemo", "createIntent", "LayoutAction", "useCapability", "useCapabilities", "useIntentDispatcher", "ThreadCapabilities", "create", "fullyQualifiedId", "makeRef", "RefArray", "useIdentity", "useTranslation", "useAttended", "Tabs", "MessageType", "isNonNullable", "ThreadComplementary", "subject", "dispatchPromise", "dispatch", "useIntentDispatcher", "identity", "useIdentity", "t", "useTranslation", "THREAD_PLUGIN", "state", "getViewState", "useCapability", "LocalThreadCapabilities", "MutableState", "viewState", "fullyQualifiedId", "showResolvedThreads", "onChangeViewState", "useCallback", "nextValue", "drafts", "threadsIntegrators", "useCapabilities", "ThreadCapabilities", "Thread", "createSort", "useMemo", "find", "p", "predicate", "sort", "threadObjects", "RefArray", "targets", "threads", "concat", "filter", "isNonNullable", "JSON", "stringify", "detachedIds", "anchor", "map", "thread", "useEffect", "a", "b", "attended", "useAttended", "qualifiedSubjectId", "handleAttend", "threadId", "current", "createIntent", "LayoutAction", "ScrollIntoView", "part", "options", "cursor", "ref", "handleComment", "message", "messages", "push", "makeRef", "create", "MessageType", "sender", "identityKey", "toHex", "created", "Date", "toISOString", "blocks", "type", "text", "ThreadAction", "OnMessageAdd", "handleResolve", "ToggleResolved", "handleThreadDelete", "Delete", "handleMessageDelete", "messageId", "DeleteMessage", "comments", "React", "CommentsContainer", "detached", "currentId", "includes", "undefined", "onAttend", "onComment", "onResolve", "onMessageDelete", "onThreadDelete", "Tabs", "Root", "value", "onValueChange", "orientation", "Tablist", "classNames", "Tab", "Tabpanel", "React", "DeprecatedFormContainer", "ThreadSettings", "settings", "React", "DeprecatedFormContainer", "ChannelContainer", "lazy", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "THREAD_PLUGIN", "role", "filter", "data", "subject", "ChannelType", "component", "channel", "layout", "useLayout", "currentPosition", "active", "findIndex", "objectToTheLeft", "context", "getSpace", "db", "getObjectById", "undefined", "React", "ChannelContainer", "Array", "isArray", "threads", "ThreadComplementary", "SettingsStore", "prefix", "ThreadSettings", "settings", "value"]
7
+ }
@@ -1,10 +1,10 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  ThreadSettingsSchema
4
- } from "./chunk-33NDMQQQ.mjs";
4
+ } from "./chunk-FZXTP57V.mjs";
5
5
  import {
6
6
  THREAD_PLUGIN
7
- } from "./chunk-FXUATCLW.mjs";
7
+ } from "./chunk-42F2DTMM.mjs";
8
8
 
9
9
  // packages/plugins/plugin-thread/src/capabilities/settings.ts
10
10
  import { Capabilities, contributes } from "@dxos/app-framework";
@@ -20,4 +20,4 @@ var settings_default = () => {
20
20
  export {
21
21
  settings_default as default
22
22
  };
23
- //# sourceMappingURL=settings-SGMM7UDT.mjs.map
23
+ //# sourceMappingURL=settings-32PBKVBB.mjs.map
@@ -1,8 +1,8 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  ThreadCapabilities
4
- } from "./chunk-ZJITX3TO.mjs";
5
- import "./chunk-FXUATCLW.mjs";
4
+ } from "./chunk-TXW5SIBN.mjs";
5
+ import "./chunk-42F2DTMM.mjs";
6
6
 
7
7
  // packages/plugins/plugin-thread/src/capabilities/state.ts
8
8
  import { contributes } from "@dxos/app-framework";
@@ -12,6 +12,7 @@ var initialViewState = {
12
12
  };
13
13
  var state_default = () => {
14
14
  const state = create({
15
+ activities: {},
15
16
  drafts: {}
16
17
  });
17
18
  const viewStore = create({});
@@ -31,4 +32,4 @@ var state_default = () => {
31
32
  export {
32
33
  state_default as default
33
34
  };
34
- //# sourceMappingURL=state-7MLR27YG.mjs.map
35
+ //# sourceMappingURL=state-PSZO57LP.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/state.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes } from '@dxos/app-framework';\nimport { create } from '@dxos/live-object';\n\nimport { ThreadCapabilities } from './capabilities';\nimport { type ThreadState, type ViewStore } from '../types';\n\nconst initialViewState = { showResolvedThreads: false };\n\nexport default () => {\n const state = create<ThreadState>({ activities: {}, drafts: {} });\n const viewStore = create<ViewStore>({});\n\n const getViewState = (subjectId: string) => {\n if (!viewStore[subjectId]) {\n viewStore[subjectId] = { ...initialViewState };\n }\n return viewStore[subjectId];\n };\n\n return contributes(ThreadCapabilities.State, { state, getViewState });\n};\n"],
5
+ "mappings": ";;;;;;;AAIA,SAASA,mBAAmB;AAC5B,SAASC,cAAc;AAKvB,IAAMC,mBAAmB;EAAEC,qBAAqB;AAAM;AAEtD,IAAA,gBAAe,MAAA;AACb,QAAMC,QAAQC,OAAoB;IAAEC,YAAY,CAAC;IAAGC,QAAQ,CAAC;EAAE,CAAA;AAC/D,QAAMC,YAAYH,OAAkB,CAAC,CAAA;AAErC,QAAMI,eAAe,CAACC,cAAAA;AACpB,QAAI,CAACF,UAAUE,SAAAA,GAAY;AACzBF,gBAAUE,SAAAA,IAAa;QAAE,GAAGR;MAAiB;IAC/C;AACA,WAAOM,UAAUE,SAAAA;EACnB;AAEA,SAAOC,YAAYC,mBAAmBC,OAAO;IAAET;IAAOK;EAAa,CAAA;AACrE;",
6
+ "names": ["contributes", "create", "initialViewState", "showResolvedThreads", "state", "create", "activities", "drafts", "viewStore", "getViewState", "subjectId", "contributes", "ThreadCapabilities", "State"]
7
+ }
@@ -2,8 +2,8 @@ import { createRequire } from 'node:module';const require = createRequire(import
2
2
  import {
3
3
  ThreadAction,
4
4
  ThreadSettingsSchema
5
- } from "./chunk-33NDMQQQ.mjs";
6
- import "./chunk-FXUATCLW.mjs";
5
+ } from "./chunk-FZXTP57V.mjs";
6
+ import "./chunk-42F2DTMM.mjs";
7
7
  export {
8
8
  ThreadAction,
9
9
  ThreadSettingsSchema
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadPlugin.d.ts","sourceRoot":"","sources":["../../../src/ThreadPlugin.tsx"],"names":[],"mappings":"AAoBA,eAAO,MAAM,YAAY,4CAsHrB,CAAC"}
1
+ {"version":3,"file":"ThreadPlugin.d.ts","sourceRoot":"","sources":["../../../src/ThreadPlugin.tsx"],"names":[],"mappings":"AAsBA,eAAO,MAAM,YAAY,4CAwHrB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { type MenuActionProperties } from '@dxos/react-ui-menu';
1
2
  import { type DeepReadonly } from '@dxos/util';
2
3
  import { type ViewState, type ThreadState } from '../types';
3
4
  export declare namespace ThreadCapabilities {
@@ -10,6 +11,10 @@ export declare namespace ThreadCapabilities {
10
11
  state: ThreadState;
11
12
  getViewState: GetViewState;
12
13
  }>;
14
+ export type Activity = Omit<MenuActionProperties, 'variant' | 'checked'> & {
15
+ id: string;
16
+ };
17
+ export const Activity: import("@dxos/app-framework").InterfaceDef<Activity>;
13
18
  export {};
14
19
  }
15
20
  //# sourceMappingURL=capabilities.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/capabilities.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5D,yBAAiB,kBAAkB,CAAC;IAClC,KAAK,YAAY,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,SAAS,CAAC;IACrD,MAAM,CAAC,MAAM,KAAK;eAA6B,YAAY,CAAC,WAAW,CAAC;sBAAgB,YAAY;MAEnG,CAAC;IACF,MAAM,CAAC,MAAM,YAAY;eAA6B,WAAW;sBAAgB,YAAY;MAE5F,CAAC;;CACH"}
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/capabilities.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5D,yBAAiB,kBAAkB,CAAC;IAClC,KAAK,YAAY,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,SAAS,CAAC;IACrD,MAAM,CAAC,MAAM,KAAK;eAA6B,YAAY,CAAC,WAAW,CAAC;sBAAgB,YAAY;MAEnG,CAAC;IACF,MAAM,CAAC,MAAM,YAAY;eAA6B,WAAW;sBAAgB,YAAY;MAE5F,CAAC;IAEF,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,EAAE,SAAS,GAAG,SAAS,CAAC,GAAG;QACzE,EAAE,EAAE,MAAM,CAAC;KACZ,CAAC;IACF,MAAM,CAAC,MAAM,QAAQ,sDAAqE,CAAC;;CAC5F"}
@@ -1 +1 @@
1
- {"version":3,"file":"intent-resolver.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/intent-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,YAAY,EAKZ,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;kCAWJ,cAAc;AAAvC,wBAwNK"}
1
+ {"version":3,"file":"intent-resolver.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/intent-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,YAAY,EAKZ,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;kCAaJ,cAAc;AAAvC,wBA4NK"}
@@ -1 +1 @@
1
- {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAyC,MAAM,qBAAqB,CAAC;;AAU1F,wBA4CK"}
1
+ {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAyC,MAAM,qBAAqB,CAAC;;AAU1F,wBAgCK"}
@@ -0,0 +1,9 @@
1
+ import React, { type ComponentProps } from 'react';
2
+ import { type ChannelType } from '@dxos/plugin-space/types';
3
+ import { ChatContainer } from './ChatContainer';
4
+ declare const ChannelContainer: ({ role, channel, context, }: Pick<ComponentProps<typeof ChatContainer>, "context"> & {
5
+ channel: ChannelType;
6
+ role: string;
7
+ }) => React.JSX.Element | null;
8
+ export default ChannelContainer;
9
+ //# sourceMappingURL=ChannelContainer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChannelContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/ChannelContainer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAe,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAIhE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAa5D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAyBhD,QAAA,MAAM,gBAAgB,gCAInB,IAAI,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,6BA2BhG,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Chat.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AA8C7C,eAAO,MAAM,OAAO,IAAK,CAAC;AAE1B,QAAA,MAAM,IAAI,EAAE,IAsBX,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Chat.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAuD7C,eAAO,MAAM,OAAO,IAAK,CAAC;AAE1B,QAAA,MAAM,IAAI,EAAE,IAuBX,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1,7 +1,13 @@
1
1
  import React from 'react';
2
+ import { type DXN } from '@dxos/keys';
3
+ import { type Space } from '@dxos/react-client/echo';
2
4
  import { type ThreadContainerProps } from './types';
3
5
  export declare const ChatHeading: ({ attendableId }: {
4
6
  attendableId?: string;
5
7
  }) => React.JSX.Element;
6
- export declare const ChatContainer: ({ thread, context, current, autoFocusTextbox }: ThreadContainerProps) => React.JSX.Element;
8
+ export type ChatContainerProps = Omit<ThreadContainerProps, 'thread'> & {
9
+ space: Space;
10
+ dxn: DXN;
11
+ };
12
+ export declare const ChatContainer: ({ space, dxn, context, current, autoFocusTextbox }: ChatContainerProps) => React.JSX.Element;
7
13
  //# sourceMappingURL=ChatContainer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/ChatContainer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAqD,MAAM,OAAO,CAAC;AAe1E,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAKpD,eAAO,MAAM,WAAW,qBAAsB;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,sBAUtE,CAAC;AAEF,eAAO,MAAM,aAAa,mDAAoD,oBAAoB,sBA2FjG,CAAC"}
1
+ {"version":3,"file":"ChatContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/ChatContainer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAqD,MAAM,OAAO,CAAC;AAG1E,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,KAAK,KAAK,EAAwB,MAAM,yBAAyB,CAAC;AAW3E,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAKpD,eAAO,MAAM,WAAW,qBAAsB;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,sBAUtE,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC,GAAG;IACtE,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,GAAG,CAAC;CACV,CAAC;AAEF,eAAO,MAAM,aAAa,uDAAwD,kBAAkB,sBAmFnG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CommentContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/CommentContainer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAmBtE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAoEpD,eAAO,MAAM,gBAAgB,oGAS1B,oBAAoB,sBA+FtB,CAAC"}
1
+ {"version":3,"file":"CommentContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/CommentContainer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAmBtE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAoEpD,eAAO,MAAM,gBAAgB,oGAS1B,oBAAoB,sBAqGtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Comments.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/Comments.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAiD7C,eAAO,MAAM,OAAO,IAAK,CAAC;AAE1B,QAAA,MAAM,IAAI,EAAE,IAUX,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Comments.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/Comments.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAkD7C,eAAO,MAAM,OAAO,IAAK,CAAC;AAE1B,QAAA,MAAM,IAAI,EAAE,IAUX,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import React from 'react';
2
- import { type MessageType } from '@dxos/plugin-space/types';
3
2
  import { type SpaceMember } from '@dxos/react-client/echo';
4
- export declare const MessageContainer: ({ message, members, onDelete, }: {
3
+ import { type MessageType } from '@dxos/schema';
4
+ export declare const MessageContainer: ({ message, members, editable, onDelete, }: {
5
5
  message: MessageType;
6
6
  members: SpaceMember[];
7
+ editable?: boolean;
7
8
  onDelete?: (id: string) => void;
8
9
  }) => React.JSX.Element;
9
10
  //# sourceMappingURL=MessageContainer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageContainer.tsx"],"names":[],"mappings":"AAMA,OAAO,KAA+D,MAAM,OAAO,CAAC;AAIpF,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAAyC,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAqBlG,eAAO,MAAM,gBAAgB,oCAI1B;IACD,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,sBAkEA,CAAC"}
1
+ {"version":3,"file":"MessageContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageContainer.tsx"],"names":[],"mappings":"AAMA,OAAO,KAA+D,MAAM,OAAO,CAAC;AAKpF,OAAO,EAAyC,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAYlG,OAAO,EAAyB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAUvE,eAAO,MAAM,gBAAgB,8CAK1B;IACD,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,sBAsEA,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadComplementary.d.ts","sourceRoot":"","sources":["../../../../src/components/ThreadComplementary.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAiB/D,eAAO,MAAM,mBAAmB,gBAAiB;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,sBAwIhE,CAAC"}
1
+ {"version":3,"file":"ThreadComplementary.d.ts","sourceRoot":"","sources":["../../../../src/components/ThreadComplementary.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAkB/D,eAAO,MAAM,mBAAmB,gBAAiB;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,sBAwIhE,CAAC"}
@@ -1,6 +1,7 @@
1
- export declare const ThreadContainer: import("react").LazyExoticComponent<({ role, ...props }: Pick<import("react").ComponentProps<typeof import("./ChatContainer").ChatContainer>, "thread" | "context"> & {
1
+ export declare const ChannelContainer: import("react").LazyExoticComponent<({ role, channel, context, }: Pick<import("react").ComponentProps<typeof import("./ChatContainer").ChatContainer>, "context"> & {
2
+ channel: import("@dxos/plugin-space/types").ChannelType;
2
3
  role: string;
3
- }) => import("react").JSX.Element>;
4
+ }) => import("react").JSX.Element | null>;
4
5
  export * from './CommentContainer';
5
6
  export * from './CommentsContainer';
6
7
  export * from './ChatContainer';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,eAAe;;kCAA0C,CAAC;AAGvE,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,gBAAgB;;;yCAA2C,CAAC;AAGzE,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC"}
@@ -1,53 +1,57 @@
1
- import { Expando } from '@dxos/echo-schema';
2
1
  import { type Identity } from '@dxos/react-client/halo';
3
- export declare const createChatThread: (identity: Identity) => import("@dxos/live-object").ReactiveObject<import("@dxos/echo-schema").TypedObjectFields<{
4
- name: import("effect/Schema").optional<typeof import("effect/Schema").String>;
5
- anchor: import("effect/Schema").optional<typeof import("effect/Schema").String>;
6
- status: import("effect/Schema").optional<import("effect/Schema").Union<[import("effect/Schema").Literal<["staged"]>, import("effect/Schema").Literal<["active"]>, import("effect/Schema").Literal<["resolved"]>]>>;
7
- messages: import("effect/Schema").mutable<import("effect/Schema").Array$<import("@dxos/echo-schema").Ref$<import("@dxos/echo-schema").TypedObjectFields<{
8
- timestamp: typeof import("effect/Schema").String;
9
- state: import("effect/Schema").optional<import("effect/Schema").Enums<typeof import("@dxos/plugin-space/types").MessageState>>;
10
- sender: import("effect/Schema").mutable<import("effect/Schema").Struct<{
11
- contact: import("effect/Schema").optional<import("@dxos/echo-schema").Ref$<import("@dxos/echo-schema").TypedObjectFields<{
12
- name: import("effect/Schema").optional<typeof import("effect/Schema").String>;
13
- identifiers: import("effect/Schema").mutable<import("effect/Schema").Array$<import("effect/Schema").Struct<{
14
- type: typeof import("effect/Schema").String;
15
- value: typeof import("effect/Schema").String;
16
- }>>>;
17
- }, import("@dxos/echo-schema").TypedObjectOptions>>>;
18
- identityKey: import("effect/Schema").optional<typeof import("effect/Schema").String>;
19
- email: import("effect/Schema").optional<typeof import("effect/Schema").String>;
20
- name: import("effect/Schema").optional<typeof import("effect/Schema").String>;
21
- }>>;
22
- text: typeof import("effect/Schema").String;
23
- parts: import("effect/Schema").optional<import("effect/Schema").mutable<import("effect/Schema").Array$<import("@dxos/echo-schema").Ref$<Expando>>>>;
24
- properties: import("effect/Schema").optional<import("effect/Schema").mutable<import("effect/Schema").Record$<typeof import("effect/Schema").String, typeof import("effect/Schema").Any>>>;
25
- context: import("effect/Schema").optional<import("@dxos/echo-schema").Ref$<Expando>>;
26
- }, import("@dxos/echo-schema").TypedObjectOptions>>>>;
27
- }, import("@dxos/echo-schema").TypedObjectOptions>>;
28
2
  export declare const createCommentThread: (identity: Identity) => import("@dxos/live-object").ReactiveObject<import("@dxos/echo-schema").TypedObjectFields<{
29
3
  name: import("effect/Schema").optional<typeof import("effect/Schema").String>;
30
4
  anchor: import("effect/Schema").optional<typeof import("effect/Schema").String>;
31
5
  status: import("effect/Schema").optional<import("effect/Schema").Union<[import("effect/Schema").Literal<["staged"]>, import("effect/Schema").Literal<["active"]>, import("effect/Schema").Literal<["resolved"]>]>>;
32
6
  messages: import("effect/Schema").mutable<import("effect/Schema").Array$<import("@dxos/echo-schema").Ref$<import("@dxos/echo-schema").TypedObjectFields<{
33
- timestamp: typeof import("effect/Schema").String;
34
- state: import("effect/Schema").optional<import("effect/Schema").Enums<typeof import("@dxos/plugin-space/types").MessageState>>;
35
- sender: import("effect/Schema").mutable<import("effect/Schema").Struct<{
36
- contact: import("effect/Schema").optional<import("@dxos/echo-schema").Ref$<import("@dxos/echo-schema").TypedObjectFields<{
37
- name: import("effect/Schema").optional<typeof import("effect/Schema").String>;
38
- identifiers: import("effect/Schema").mutable<import("effect/Schema").Array$<import("effect/Schema").Struct<{
39
- type: typeof import("effect/Schema").String;
40
- value: typeof import("effect/Schema").String;
41
- }>>>;
42
- }, import("@dxos/echo-schema").TypedObjectOptions>>>;
7
+ id: import("@dxos/echo-schema").ObjectIdClass;
8
+ created: import("effect/Schema").SchemaClass<string, string, never>;
9
+ sender: import("effect/Schema").Struct<{
10
+ contact: import("effect/Schema").optional<import("@dxos/echo-schema").Ref$<{
11
+ readonly id: string;
12
+ name?: string | undefined;
13
+ identifiers: {
14
+ readonly value: string;
15
+ readonly type: string;
16
+ }[];
17
+ }>>;
43
18
  identityKey: import("effect/Schema").optional<typeof import("effect/Schema").String>;
44
19
  email: import("effect/Schema").optional<typeof import("effect/Schema").String>;
45
20
  name: import("effect/Schema").optional<typeof import("effect/Schema").String>;
46
- }>>;
47
- text: typeof import("effect/Schema").String;
48
- parts: import("effect/Schema").optional<import("effect/Schema").mutable<import("effect/Schema").Array$<import("@dxos/echo-schema").Ref$<Expando>>>>;
21
+ role: import("effect/Schema").optional<import("effect/Schema").Literal<["user", "assistant"]>>;
22
+ }>;
23
+ blocks: import("effect/Schema").Array$<import("effect/Schema").Union<[import("effect/Schema").mutable<import("effect/Schema").extend<import("effect/Schema").Struct<{
24
+ pending: import("effect/Schema").optional<typeof import("effect/Schema").Boolean>;
25
+ }>, import("effect/Schema").Struct<{
26
+ type: import("effect/Schema").Literal<["text"]>;
27
+ disposition: import("effect/Schema").optional<typeof import("effect/Schema").String>;
28
+ text: typeof import("effect/Schema").String;
29
+ }>>>, import("effect/Schema").mutable<import("effect/Schema").extend<import("effect/Schema").Struct<{
30
+ pending: import("effect/Schema").optional<typeof import("effect/Schema").Boolean>;
31
+ }>, import("effect/Schema").Struct<{
32
+ type: import("effect/Schema").Literal<["json"]>;
33
+ disposition: import("effect/Schema").optional<typeof import("effect/Schema").String>;
34
+ data: typeof import("effect/Schema").String;
35
+ }>>>, import("effect/Schema").mutable<import("effect/Schema").extend<import("effect/Schema").Struct<{
36
+ pending: import("effect/Schema").optional<typeof import("effect/Schema").Boolean>;
37
+ }>, import("effect/Schema").Struct<{
38
+ type: import("effect/Schema").Literal<["image"]>;
39
+ id: import("effect/Schema").optional<typeof import("effect/Schema").String>;
40
+ source: import("effect/Schema").optional<import("effect/Schema").Union<[import("effect/Schema").mutable<import("effect/Schema").Struct<{
41
+ type: import("effect/Schema").Literal<["base64"]>;
42
+ mediaType: typeof import("effect/Schema").String;
43
+ data: typeof import("effect/Schema").String;
44
+ }>>, import("effect/Schema").mutable<import("effect/Schema").Struct<{
45
+ type: import("effect/Schema").Literal<["http"]>;
46
+ url: typeof import("effect/Schema").String;
47
+ }>>]>>;
48
+ }>>>, import("effect/Schema").mutable<import("effect/Schema").extend<import("effect/Schema").Struct<{
49
+ pending: import("effect/Schema").optional<typeof import("effect/Schema").Boolean>;
50
+ }>, import("effect/Schema").Struct<{
51
+ type: import("effect/Schema").Literal<["reference"]>;
52
+ reference: import("@dxos/echo-schema").Ref$<import("@dxos/echo-schema").Expando>;
53
+ }>>>]>>;
49
54
  properties: import("effect/Schema").optional<import("effect/Schema").mutable<import("effect/Schema").Record$<typeof import("effect/Schema").String, typeof import("effect/Schema").Any>>>;
50
- context: import("effect/Schema").optional<import("@dxos/echo-schema").Ref$<Expando>>;
51
55
  }, import("@dxos/echo-schema").TypedObjectOptions>>>>;
52
56
  }, import("@dxos/echo-schema").TypedObjectOptions>>;
53
57
  //# sourceMappingURL=testing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../../src/components/testing.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAK5C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,eAAO,MAAM,gBAAgB,aAAc,QAAQ;;;;oFAwCu6F,mBAAmB,cAAc,mBAAmB;;;;6DAAsU,mBAAmB,cAAc,mBAAmB;;;;;;sBAAuQ,mBAAmB;;;;;;sHAAyY,mBAAmB;;yDAA+S,mBAAmB;cAAgC,mBAAmB;mDAnBl7I,CAAC;AAEF,eAAO,MAAM,mBAAmB,aAAc,QAAQ;;;;oFAiBo6F,mBAAmB,cAAc,mBAAmB;;;;6DAAsU,mBAAmB,cAAc,mBAAmB;;;;;;sBAAuQ,mBAAmB;;;;;;sHAAyY,mBAAmB;;yDAA+S,mBAAmB;cAAgC,mBAAmB;mDADl7I,CAAC"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../../src/components/testing.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,eAAO,MAAM,mBAAmB,aAAc,QAAQ;;;;oFAO9B,mBAAmB,cAAc,mBAAmB;mBAChE,mBACJ;;;6DAIF,mBAAe;;oBAIa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAAsmD,mBAAmB;;;cAAqI,mBAAmB;mDADnzD,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare namespace ThreadEvents {
2
+ const SetupActivity: import("@dxos/app-framework").ActivationEvent;
3
+ }
4
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/events.ts"],"names":[],"mappings":"AAQA,yBAAiB,YAAY,CAAC;IACrB,MAAM,aAAa,+CAA6D,CAAC;CACzF"}
@@ -1,4 +1,5 @@
1
1
  import { type ReactiveObject } from '@dxos/live-object';
2
+ import { type TextContentBlock } from '@dxos/schema';
2
3
  export declare const useAnalyticsCallback: (spaceId: string | undefined, name: string, meta?: any) => (dynamicMeta?: any) => void;
3
- export declare const useOnEditAnalytics: (message: ReactiveObject<any>, editing: boolean) => void;
4
+ export declare const useOnEditAnalytics: (message: ReactiveObject<any>, textBlock: TextContentBlock | undefined, editing: boolean) => void;
4
5
  //# sourceMappingURL=analytics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../../../src/hooks/analytics.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKxD,eAAO,MAAM,oBAAoB,YAAa,MAAM,GAAG,SAAS,QAAQ,MAAM,SAAS,GAAG,oBAIvE,GAAG,SAOrB,CAAC;AAEF,eAAO,MAAM,kBAAkB,YAAa,cAAc,CAAC,GAAG,CAAC,WAAW,OAAO,SAShF,CAAC"}
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../../../src/hooks/analytics.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,eAAO,MAAM,oBAAoB,YAAa,MAAM,GAAG,SAAS,QAAQ,MAAM,SAAS,GAAG,oBAIvE,GAAG,SAOrB,CAAC;AAEF,eAAO,MAAM,kBAAkB,YACpB,cAAc,CAAC,GAAG,CAAC,aACjB,gBAAgB,GAAG,SAAS,WAC9B,OAAO,SAUjB,CAAC"}
@@ -1,3 +1,5 @@
1
+ export { ThreadCapabilities } from './capabilities';
2
+ export * from './events';
1
3
  export * from './hooks';
2
4
  export * from './meta';
3
5
  export * from './ThreadPlugin';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AAEvB,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AAEvB,cAAc,gBAAgB,CAAC"}
@@ -1,10 +1,5 @@
1
+ import { type PluginMeta } from '@dxos/app-framework';
1
2
  export declare const THREAD_PLUGIN = "dxos.org/plugin/thread";
2
3
  export declare const THREAD_ITEM = "dxos.org/plugin/thread/item";
3
- export declare const meta: {
4
- id: string;
5
- name: string;
6
- description: string;
7
- icon: string;
8
- source: string;
9
- };
4
+ export declare const meta: PluginMeta;
10
5
  //# sourceMappingURL=meta.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa,2BAA2B,CAAC;AACtD,eAAO,MAAM,WAAW,gCAA0B,CAAC;AAEnD,eAAO,MAAM,IAAI;;;;;;CAMK,CAAC"}
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,eAAO,MAAM,aAAa,2BAA2B,CAAC;AACtD,eAAO,MAAM,WAAW,gCAA0B,CAAC;AAEnD,eAAO,MAAM,IAAI,EAAE,UAMlB,CAAC"}