@dxos/plugin-thread 0.7.5-staging.e6154f3 → 0.8.1-main.013e445
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.
- package/dist/lib/browser/ChannelContainer-YWGW5LTF.mjs +74 -0
- package/dist/lib/browser/ChannelContainer-YWGW5LTF.mjs.map +7 -0
- package/dist/lib/browser/{chunk-YK3ICB7G.mjs → chunk-FZ34L7RM.mjs} +4 -3
- package/dist/lib/browser/chunk-FZ34L7RM.mjs.map +7 -0
- package/dist/lib/browser/{chunk-BNEWNQBO.mjs → chunk-MC42ZV23.mjs} +16 -4
- package/dist/lib/browser/{chunk-BNEWNQBO.mjs.map → chunk-MC42ZV23.mjs.map} +4 -4
- package/dist/lib/browser/{chunk-NAO3LZMZ.mjs → chunk-NOOMCX5E.mjs} +3 -2
- package/dist/lib/browser/chunk-NOOMCX5E.mjs.map +7 -0
- package/dist/lib/browser/{chunk-UPKU23DA.mjs → chunk-VDQ3TPIW.mjs} +28 -19
- package/dist/lib/browser/chunk-VDQ3TPIW.mjs.map +7 -0
- package/dist/lib/browser/{chunk-636QDHE3.mjs → chunk-WBJLUUOK.mjs} +1 -1
- package/dist/lib/browser/{chunk-636QDHE3.mjs.map → chunk-WBJLUUOK.mjs.map} +2 -2
- package/dist/lib/browser/index.mjs +38 -27
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/{intent-resolver-FAFQ54NP.mjs → intent-resolver-FCC6BZSE.mjs} +5 -5
- package/dist/lib/browser/{intent-resolver-FAFQ54NP.mjs.map → intent-resolver-FCC6BZSE.mjs.map} +2 -2
- package/dist/lib/browser/{markdown-RPYOUBVR.mjs → markdown-I7DN4THW.mjs} +6 -6
- package/dist/lib/browser/markdown-I7DN4THW.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-Y4MUSICN.mjs → react-surface-34FQO5BB.mjs} +23 -31
- package/dist/lib/browser/react-surface-34FQO5BB.mjs.map +7 -0
- package/dist/lib/browser/{settings-WQTE5AEZ.mjs → settings-G5ZTDTIU.mjs} +3 -3
- package/dist/lib/browser/{state-GNFUURIC.mjs → state-HPUFZBB7.mjs} +4 -3
- package/dist/lib/browser/state-HPUFZBB7.mjs.map +7 -0
- package/dist/lib/browser/types.mjs +2 -2
- package/dist/lib/node/ChannelContainer-XQIU3OFX.cjs +98 -0
- package/dist/lib/node/ChannelContainer-XQIU3OFX.cjs.map +7 -0
- package/dist/lib/node/{chunk-AWSTZ2KN.cjs → chunk-FMKMIGXZ.cjs} +30 -6
- package/dist/lib/node/chunk-FMKMIGXZ.cjs.map +7 -0
- package/dist/lib/node/{chunk-RQR5Z23G.cjs → chunk-G63K6IDM.cjs} +35 -26
- package/dist/lib/node/chunk-G63K6IDM.cjs.map +7 -0
- package/dist/lib/node/{chunk-F735VMTN.cjs → chunk-ONLWOUYZ.cjs} +4 -4
- package/dist/lib/node/{chunk-F735VMTN.cjs.map → chunk-ONLWOUYZ.cjs.map} +2 -2
- package/dist/lib/node/{chunk-FPWNZ6TB.cjs → chunk-VEVJBOWK.cjs} +8 -7
- package/dist/lib/node/chunk-VEVJBOWK.cjs.map +7 -0
- package/dist/lib/node/{chunk-CMEMMYDL.cjs → chunk-X5TUGJ5K.cjs} +8 -7
- package/dist/lib/node/chunk-X5TUGJ5K.cjs.map +7 -0
- package/dist/lib/node/index.cjs +74 -64
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/{intent-resolver-DVBEXJ33.cjs → intent-resolver-KTZSUHCU.cjs} +22 -22
- package/dist/lib/node/{intent-resolver-DVBEXJ33.cjs.map → intent-resolver-KTZSUHCU.cjs.map} +2 -2
- package/dist/lib/node/{markdown-ELRGISXE.cjs → markdown-EUC6FFCM.cjs} +12 -12
- package/dist/lib/node/markdown-EUC6FFCM.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-surface-7HLTN5XS.cjs → react-surface-SF7YHWER.cjs} +44 -52
- package/dist/lib/node/react-surface-SF7YHWER.cjs.map +7 -0
- package/dist/lib/node/{settings-7VQYARM5.cjs → settings-WQXGBGOV.cjs} +8 -8
- package/dist/lib/node/{state-TQWEZ6B3.cjs → state-JMI5ZXZI.cjs} +8 -7
- package/dist/lib/node/state-JMI5ZXZI.cjs.map +7 -0
- package/dist/lib/node/types.cjs +4 -4
- package/dist/lib/node/types.cjs.map +1 -1
- package/dist/lib/node-esm/ChannelContainer-G63QTQHU.mjs +75 -0
- package/dist/lib/node-esm/ChannelContainer-G63QTQHU.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-FXUATCLW.mjs → chunk-42F2DTMM.mjs} +1 -1
- package/dist/lib/node-esm/{chunk-FXUATCLW.mjs.map → chunk-42F2DTMM.mjs.map} +2 -2
- package/dist/lib/node-esm/{chunk-HLWJTUWZ.mjs → chunk-C46EUYQO.mjs} +16 -4
- package/dist/lib/node-esm/{chunk-HLWJTUWZ.mjs.map → chunk-C46EUYQO.mjs.map} +4 -4
- package/dist/lib/node-esm/{chunk-CISLDOH7.mjs → chunk-FIPZFSRG.mjs} +28 -19
- package/dist/lib/node-esm/chunk-FIPZFSRG.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-ZJITX3TO.mjs → chunk-TXW5SIBN.mjs} +3 -2
- package/dist/lib/node-esm/chunk-TXW5SIBN.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-33NDMQQQ.mjs → chunk-XUAPEJSP.mjs} +4 -3
- package/dist/lib/node-esm/chunk-XUAPEJSP.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +38 -27
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/{intent-resolver-DHVLBNCC.mjs → intent-resolver-F4GQ2DBX.mjs} +5 -5
- package/dist/lib/node-esm/{intent-resolver-DHVLBNCC.mjs.map → intent-resolver-F4GQ2DBX.mjs.map} +2 -2
- package/dist/lib/node-esm/{markdown-23OB7EZG.mjs → markdown-LNEGE76H.mjs} +6 -6
- package/dist/lib/node-esm/markdown-LNEGE76H.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-AZHTTR6J.mjs → react-surface-W6TBSW7R.mjs} +23 -31
- package/dist/lib/node-esm/react-surface-W6TBSW7R.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-SGMM7UDT.mjs → settings-3NFSK2ZO.mjs} +3 -3
- package/dist/lib/node-esm/{state-7MLR27YG.mjs → state-PSZO57LP.mjs} +4 -3
- package/dist/lib/node-esm/state-PSZO57LP.mjs.map +7 -0
- package/dist/lib/node-esm/types.mjs +2 -2
- package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +5 -0
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/ChannelContainer.d.ts +9 -0
- package/dist/types/src/components/ChannelContainer.d.ts.map +1 -0
- package/dist/types/src/components/Chat.stories.d.ts.map +1 -1
- package/dist/types/src/components/ChatContainer.d.ts +3 -2
- package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
- package/dist/types/src/components/CommentContainer.d.ts +2 -1
- package/dist/types/src/components/CommentContainer.d.ts.map +1 -1
- package/dist/types/src/components/Comments.stories.d.ts.map +1 -1
- package/dist/types/src/components/CommentsContainer.d.ts +2 -1
- package/dist/types/src/components/CommentsContainer.d.ts.map +1 -1
- package/dist/types/src/components/MessageContainer.d.ts +3 -2
- package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
- package/dist/types/src/components/ThreadComplementary.d.ts +2 -1
- package/dist/types/src/components/ThreadComplementary.d.ts.map +1 -1
- package/dist/types/src/components/ThreadSettings.d.ts +2 -1
- package/dist/types/src/components/ThreadSettings.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +3 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/components/testing.d.ts +104 -44
- package/dist/types/src/components/testing.d.ts.map +1 -1
- package/dist/types/src/events.d.ts +4 -0
- package/dist/types/src/events.d.ts.map +1 -0
- package/dist/types/src/hooks/analytics.d.ts +2 -1
- package/dist/types/src/hooks/analytics.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -7
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +2 -9
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +4 -1
- package/dist/types/src/types.d.ts.map +1 -1
- package/package.json +32 -30
- package/src/ThreadPlugin.tsx +10 -4
- package/src/capabilities/capabilities.ts +6 -0
- package/src/capabilities/intent-resolver.ts +1 -1
- package/src/capabilities/react-surface.tsx +5 -16
- package/src/capabilities/state.ts +1 -1
- package/src/components/ChannelContainer.tsx +80 -0
- package/src/components/Chat.stories.tsx +4 -2
- package/src/components/ChatContainer.tsx +5 -5
- package/src/components/CommentContainer.tsx +1 -1
- package/src/components/Comments.stories.tsx +2 -1
- package/src/components/MessageContainer.tsx +15 -13
- package/src/components/ThreadComplementary.tsx +5 -4
- package/src/components/index.ts +1 -1
- package/src/components/testing.ts +15 -12
- package/src/events.ts +11 -0
- package/src/extensions/threads.ts +2 -2
- package/src/hooks/analytics.ts +7 -2
- package/src/index.ts +2 -0
- package/src/meta.ts +2 -2
- package/src/translations.ts +1 -3
- package/src/types.ts +4 -1
- package/dist/lib/browser/ThreadContainer-6OP5AG2W.mjs +0 -19
- package/dist/lib/browser/ThreadContainer-6OP5AG2W.mjs.map +0 -7
- package/dist/lib/browser/chunk-NAO3LZMZ.mjs.map +0 -7
- package/dist/lib/browser/chunk-UPKU23DA.mjs.map +0 -7
- package/dist/lib/browser/chunk-VOMIDDNO.mjs +0 -15
- package/dist/lib/browser/chunk-VOMIDDNO.mjs.map +0 -7
- package/dist/lib/browser/chunk-YK3ICB7G.mjs.map +0 -7
- package/dist/lib/browser/markdown-RPYOUBVR.mjs.map +0 -7
- package/dist/lib/browser/react-surface-Y4MUSICN.mjs.map +0 -7
- package/dist/lib/browser/state-GNFUURIC.mjs.map +0 -7
- package/dist/lib/node/ThreadContainer-LTKKLPXX.cjs +0 -45
- package/dist/lib/node/ThreadContainer-LTKKLPXX.cjs.map +0 -7
- package/dist/lib/node/chunk-AWSTZ2KN.cjs.map +0 -7
- package/dist/lib/node/chunk-BHFHFTHO.cjs +0 -50
- package/dist/lib/node/chunk-BHFHFTHO.cjs.map +0 -7
- package/dist/lib/node/chunk-CMEMMYDL.cjs.map +0 -7
- package/dist/lib/node/chunk-FPWNZ6TB.cjs.map +0 -7
- package/dist/lib/node/chunk-RQR5Z23G.cjs.map +0 -7
- package/dist/lib/node/markdown-ELRGISXE.cjs.map +0 -7
- package/dist/lib/node/react-surface-7HLTN5XS.cjs.map +0 -7
- package/dist/lib/node/state-TQWEZ6B3.cjs.map +0 -7
- package/dist/lib/node-esm/ThreadContainer-SV74JFRH.mjs +0 -20
- package/dist/lib/node-esm/ThreadContainer-SV74JFRH.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-33NDMQQQ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-CISLDOH7.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-PJPVEO7E.mjs +0 -17
- package/dist/lib/node-esm/chunk-PJPVEO7E.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ZJITX3TO.mjs.map +0 -7
- package/dist/lib/node-esm/markdown-23OB7EZG.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-AZHTTR6J.mjs.map +0 -7
- package/dist/lib/node-esm/state-7MLR27YG.mjs.map +0 -7
- package/dist/types/src/components/ThreadContainer.d.ts +0 -7
- package/dist/types/src/components/ThreadContainer.d.ts.map +0 -1
- package/src/components/ThreadContainer.tsx +0 -22
- /package/dist/lib/browser/{settings-WQTE5AEZ.mjs.map → settings-G5ZTDTIU.mjs.map} +0 -0
- /package/dist/lib/node/{settings-7VQYARM5.cjs.map → settings-WQXGBGOV.cjs.map} +0 -0
- /package/dist/lib/node-esm/{settings-SGMM7UDT.mjs.map → settings-3NFSK2ZO.mjs.map} +0 -0
|
@@ -1,21 +1,20 @@
|
|
|
1
|
-
import "./chunk-VOMIDDNO.mjs";
|
|
2
1
|
import {
|
|
3
2
|
MessageContainer,
|
|
4
3
|
command,
|
|
5
4
|
getMessageMetadata
|
|
6
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-VDQ3TPIW.mjs";
|
|
7
6
|
import {
|
|
8
7
|
useStatus
|
|
9
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-MC42ZV23.mjs";
|
|
10
9
|
import {
|
|
11
10
|
ThreadAction
|
|
12
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-FZ34L7RM.mjs";
|
|
13
12
|
import {
|
|
14
13
|
ThreadCapabilities
|
|
15
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-NOOMCX5E.mjs";
|
|
16
15
|
import {
|
|
17
16
|
THREAD_PLUGIN
|
|
18
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-WBJLUUOK.mjs";
|
|
19
18
|
|
|
20
19
|
// packages/plugins/plugin-thread/src/capabilities/react-surface.tsx
|
|
21
20
|
import React5 from "react";
|
|
@@ -166,7 +165,7 @@ var CommentContainer = ({ thread, detached, current, onAttend, onComment, onReso
|
|
|
166
165
|
onResolve: handleResolve
|
|
167
166
|
}), onThreadDelete && /* @__PURE__ */ React.createElement(DeleteThreadButton, {
|
|
168
167
|
onDelete: handleThreadDelete
|
|
169
|
-
}))), RefArray.
|
|
168
|
+
}))), RefArray.targets(thread.messages?.filter(isNonNullable) ?? []).map((message) => /* @__PURE__ */ React.createElement(MessageContainer, {
|
|
170
169
|
key: message.id,
|
|
171
170
|
message,
|
|
172
171
|
members,
|
|
@@ -232,12 +231,12 @@ var CommentsContainer = ({ threads, detached = [], currentId, showResolvedThread
|
|
|
232
231
|
import React3, { useCallback as useCallback2, useEffect as useEffect2, useMemo as useMemo2 } from "react";
|
|
233
232
|
import { createIntent, LayoutAction, useCapability, useCapabilities, useIntentDispatcher } from "@dxos/app-framework";
|
|
234
233
|
import { ThreadCapabilities as ThreadCapabilities2 } from "@dxos/plugin-space";
|
|
235
|
-
import { MessageType } from "@dxos/plugin-space/types";
|
|
236
234
|
import { create, fullyQualifiedId as fullyQualifiedId3, makeRef, RefArray as RefArray2 } from "@dxos/react-client/echo";
|
|
237
235
|
import { useIdentity as useIdentity2 } from "@dxos/react-client/halo";
|
|
238
236
|
import { useTranslation as useTranslation3 } from "@dxos/react-ui";
|
|
239
237
|
import { useAttended } from "@dxos/react-ui-attention";
|
|
240
238
|
import { Tabs } from "@dxos/react-ui-tabs";
|
|
239
|
+
import { MessageType } from "@dxos/schema";
|
|
241
240
|
import { isNonNullable as isNonNullable2 } from "@dxos/util";
|
|
242
241
|
var ThreadComplementary = ({ subject }) => {
|
|
243
242
|
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
@@ -261,7 +260,7 @@ var ThreadComplementary = ({ subject }) => {
|
|
|
261
260
|
createSort,
|
|
262
261
|
subject
|
|
263
262
|
]);
|
|
264
|
-
const threadObjects = RefArray2.
|
|
263
|
+
const threadObjects = RefArray2.targets(subject.threads ?? []);
|
|
265
264
|
const threads = useMemo2(() => {
|
|
266
265
|
return threadObjects.concat(drafts ?? []).filter(isNonNullable2);
|
|
267
266
|
}, [
|
|
@@ -307,8 +306,13 @@ var ThreadComplementary = ({ subject }) => {
|
|
|
307
306
|
sender: {
|
|
308
307
|
identityKey: identity?.identityKey.toHex()
|
|
309
308
|
},
|
|
310
|
-
|
|
311
|
-
|
|
309
|
+
created: (/* @__PURE__ */ new Date()).toISOString(),
|
|
310
|
+
blocks: [
|
|
311
|
+
{
|
|
312
|
+
type: "text",
|
|
313
|
+
text: message
|
|
314
|
+
}
|
|
315
|
+
]
|
|
312
316
|
})));
|
|
313
317
|
await dispatch(createIntent(ThreadAction.OnMessageAdd, {
|
|
314
318
|
thread,
|
|
@@ -378,7 +382,7 @@ var ThreadSettings = ({ settings }) => {
|
|
|
378
382
|
};
|
|
379
383
|
|
|
380
384
|
// packages/plugins/plugin-thread/src/components/index.ts
|
|
381
|
-
var
|
|
385
|
+
var ChannelContainer = lazy(() => import("./ChannelContainer-YWGW5LTF.mjs"));
|
|
382
386
|
|
|
383
387
|
// packages/plugins/plugin-thread/src/capabilities/react-surface.tsx
|
|
384
388
|
var react_surface_default = () => contributes(Capabilities.ReactSurface, [
|
|
@@ -386,27 +390,15 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
|
|
|
386
390
|
id: `${THREAD_PLUGIN}/channel`,
|
|
387
391
|
role: "article",
|
|
388
392
|
filter: (data) => data.subject instanceof ChannelType && !!data.subject.threads[0],
|
|
389
|
-
component: ({ data, role }) => {
|
|
393
|
+
component: ({ data: { subject: channel }, role }) => {
|
|
390
394
|
const layout = useLayout();
|
|
391
|
-
const channel = data.subject;
|
|
392
|
-
void channel.threads[0].load();
|
|
393
|
-
const thread = channel.threads[0].target;
|
|
394
|
-
if (!thread) {
|
|
395
|
-
return null;
|
|
396
|
-
}
|
|
397
395
|
const currentPosition = layout.active.findIndex((id) => id === channel.id);
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
return /* @__PURE__ */ React5.createElement(ThreadContainer, {
|
|
402
|
-
role,
|
|
403
|
-
thread,
|
|
404
|
-
context
|
|
405
|
-
});
|
|
406
|
-
}
|
|
407
|
-
return /* @__PURE__ */ React5.createElement(ThreadContainer, {
|
|
396
|
+
const objectToTheLeft = layout.active[currentPosition - 1];
|
|
397
|
+
const context = currentPosition > 0 ? getSpace2(channel)?.db.getObjectById(objectToTheLeft) : void 0;
|
|
398
|
+
return /* @__PURE__ */ React5.createElement(ChannelContainer, {
|
|
408
399
|
role,
|
|
409
|
-
|
|
400
|
+
channel,
|
|
401
|
+
context
|
|
410
402
|
});
|
|
411
403
|
}
|
|
412
404
|
}),
|
|
@@ -430,4 +422,4 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
|
|
|
430
422
|
export {
|
|
431
423
|
react_surface_default as default
|
|
432
424
|
};
|
|
433
|
-
//# sourceMappingURL=react-surface-
|
|
425
|
+
//# sourceMappingURL=react-surface-34FQO5BB.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 } =>\n data.subject instanceof ChannelType && !!data.subject.threads[0],\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 key={message.id} message={message} members={members} onDelete={handleMessageDelete} />\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", "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", "threads", "component", "channel", "layout", "useLayout", "currentPosition", "active", "findIndex", "objectToTheLeft", "context", "getSpace", "db", "getObjectById", "undefined", "React", "ChannelContainer", "Array", "isArray", "ThreadComplementary", "SettingsStore", "prefix", "ThreadSettings", "settings", "value"]
|
|
7
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ThreadSettingsSchema
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-FZ34L7RM.mjs";
|
|
4
4
|
import {
|
|
5
5
|
THREAD_PLUGIN
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-WBJLUUOK.mjs";
|
|
7
7
|
|
|
8
8
|
// packages/plugins/plugin-thread/src/capabilities/settings.ts
|
|
9
9
|
import { Capabilities, contributes } from "@dxos/app-framework";
|
|
@@ -19,4 +19,4 @@ var settings_default = () => {
|
|
|
19
19
|
export {
|
|
20
20
|
settings_default as default
|
|
21
21
|
};
|
|
22
|
-
//# sourceMappingURL=settings-
|
|
22
|
+
//# sourceMappingURL=settings-G5ZTDTIU.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ThreadCapabilities
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-NOOMCX5E.mjs";
|
|
4
|
+
import "./chunk-WBJLUUOK.mjs";
|
|
5
5
|
|
|
6
6
|
// packages/plugins/plugin-thread/src/capabilities/state.ts
|
|
7
7
|
import { contributes } from "@dxos/app-framework";
|
|
@@ -11,6 +11,7 @@ var initialViewState = {
|
|
|
11
11
|
};
|
|
12
12
|
var state_default = () => {
|
|
13
13
|
const state = create({
|
|
14
|
+
activities: {},
|
|
14
15
|
drafts: {}
|
|
15
16
|
});
|
|
16
17
|
const viewStore = create({});
|
|
@@ -30,4 +31,4 @@ var state_default = () => {
|
|
|
30
31
|
export {
|
|
31
32
|
state_default as default
|
|
32
33
|
};
|
|
33
|
-
//# sourceMappingURL=state-
|
|
34
|
+
//# sourceMappingURL=state-HPUFZBB7.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
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var ChannelContainer_XQIU3OFX_exports = {};
|
|
30
|
+
__export(ChannelContainer_XQIU3OFX_exports, {
|
|
31
|
+
default: () => ChannelContainer_default
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(ChannelContainer_XQIU3OFX_exports);
|
|
34
|
+
var import_chunk_G63K6IDM = require("./chunk-G63K6IDM.cjs");
|
|
35
|
+
var import_chunk_FMKMIGXZ = require("./chunk-FMKMIGXZ.cjs");
|
|
36
|
+
var import_chunk_VEVJBOWK = require("./chunk-VEVJBOWK.cjs");
|
|
37
|
+
var import_chunk_ONLWOUYZ = require("./chunk-ONLWOUYZ.cjs");
|
|
38
|
+
var import_react = __toESM(require("react"));
|
|
39
|
+
var import_app_framework = require("@dxos/app-framework");
|
|
40
|
+
var import_echo = require("@dxos/react-client/echo");
|
|
41
|
+
var import_react_ui_editor = require("@dxos/react-ui-editor");
|
|
42
|
+
var import_react_ui_menu = require("@dxos/react-ui-menu");
|
|
43
|
+
var import_react_ui_stack = require("@dxos/react-ui-stack");
|
|
44
|
+
var useActivitiesMenu = (activities, activity) => {
|
|
45
|
+
return (0, import_react_ui_menu.useMenuActions)(() => ({
|
|
46
|
+
nodes: [
|
|
47
|
+
(0, import_react_ui_editor.createEditorActionGroup)("activities", {
|
|
48
|
+
variant: "toggleGroup",
|
|
49
|
+
selectCardinality: "single",
|
|
50
|
+
value: activity
|
|
51
|
+
}),
|
|
52
|
+
...activities.map(({ id, ...properties }) => (0, import_react_ui_menu.createMenuAction)(id, {
|
|
53
|
+
...properties,
|
|
54
|
+
checked: true
|
|
55
|
+
}))
|
|
56
|
+
],
|
|
57
|
+
edges: [
|
|
58
|
+
{
|
|
59
|
+
source: "root",
|
|
60
|
+
target: "activities"
|
|
61
|
+
},
|
|
62
|
+
...activities.map((activity2) => ({
|
|
63
|
+
source: "activities",
|
|
64
|
+
target: activity2.id
|
|
65
|
+
}))
|
|
66
|
+
]
|
|
67
|
+
}));
|
|
68
|
+
};
|
|
69
|
+
var ChannelContainer = ({ role, channel, context }) => {
|
|
70
|
+
const { state } = (0, import_app_framework.useCapability)(import_chunk_VEVJBOWK.ThreadCapabilities.MutableState);
|
|
71
|
+
const currentActivity = state.activities[channel.id];
|
|
72
|
+
const activities = (0, import_app_framework.useCapabilities)(import_chunk_VEVJBOWK.ThreadCapabilities.Activity);
|
|
73
|
+
const menu = useActivitiesMenu(activities, currentActivity);
|
|
74
|
+
const handleAction = (0, import_react.useCallback)((action) => state.activities[channel.id] = currentActivity === action.id ? void 0 : action.id, [
|
|
75
|
+
currentActivity
|
|
76
|
+
]);
|
|
77
|
+
const thread = channel.threads[0].target;
|
|
78
|
+
if (!thread) {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
return /* @__PURE__ */ import_react.default.createElement(import_react_ui_stack.StackItem.Content, {
|
|
82
|
+
toolbar: true
|
|
83
|
+
}, /* @__PURE__ */ import_react.default.createElement(import_react_ui_menu.MenuProvider, {
|
|
84
|
+
...menu,
|
|
85
|
+
onAction: handleAction,
|
|
86
|
+
attendableId: (0, import_echo.fullyQualifiedId)(channel)
|
|
87
|
+
}, /* @__PURE__ */ import_react.default.createElement(import_react_ui_menu.ToolbarMenu, null)), currentActivity ? /* @__PURE__ */ import_react.default.createElement(import_app_framework.Surface, {
|
|
88
|
+
role: `channel-activity--${currentActivity}`,
|
|
89
|
+
data: {
|
|
90
|
+
subject: channel
|
|
91
|
+
}
|
|
92
|
+
}) : /* @__PURE__ */ import_react.default.createElement(import_chunk_G63K6IDM.ChatContainer, {
|
|
93
|
+
thread,
|
|
94
|
+
context
|
|
95
|
+
}));
|
|
96
|
+
};
|
|
97
|
+
var ChannelContainer_default = ChannelContainer;
|
|
98
|
+
//# sourceMappingURL=ChannelContainer-XQIU3OFX.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/ChannelContainer.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, type ComponentProps } from 'react';\n\nimport { Surface, useCapabilities, useCapability } from '@dxos/app-framework';\nimport { type NodeArg } from '@dxos/plugin-graph';\nimport { type ChannelType } from '@dxos/plugin-space/types';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { createEditorActionGroup } from '@dxos/react-ui-editor';\nimport {\n createMenuAction,\n MenuProvider,\n ToolbarMenu,\n type ToolbarMenuActionGroupProperties,\n useMenuActions,\n type MenuAction,\n} from '@dxos/react-ui-menu';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { ChatContainer } from './ChatContainer';\nimport { ThreadCapabilities } from '../capabilities';\n\nconst useActivitiesMenu = (activities: ThreadCapabilities.Activity[], activity: string | undefined) => {\n return useMenuActions(() => ({\n nodes: [\n createEditorActionGroup('activities', {\n variant: 'toggleGroup',\n selectCardinality: 'single',\n value: activity,\n } as ToolbarMenuActionGroupProperties) as NodeArg<any>,\n ...activities.map(({ id, ...properties }) =>\n createMenuAction(id, {\n ...properties,\n checked: true,\n }),\n ),\n ],\n edges: [\n { source: 'root', target: 'activities' },\n ...activities.map((activity) => ({ source: 'activities', target: activity.id })),\n ],\n }));\n};\n\nconst ChannelContainer = ({\n role,\n channel,\n context,\n}: Pick<ComponentProps<typeof ChatContainer>, 'context'> & { channel: ChannelType; role: string }) => {\n const { state } = useCapability(ThreadCapabilities.MutableState);\n const currentActivity = state.activities[channel.id];\n const activities = useCapabilities(ThreadCapabilities.Activity);\n const menu = useActivitiesMenu(activities, currentActivity);\n const handleAction = useCallback(\n (action: MenuAction) => (state.activities[channel.id] = currentActivity === action.id ? undefined : action.id),\n [currentActivity],\n );\n\n const thread = channel.threads[0].target;\n if (!thread) {\n return null;\n }\n\n return (\n <StackItem.Content toolbar>\n <MenuProvider {...menu} onAction={handleAction} attendableId={fullyQualifiedId(channel)}>\n <ToolbarMenu />\n </MenuProvider>\n {currentActivity ? (\n <Surface role={`channel-activity--${currentActivity}`} data={{ subject: channel }} />\n ) : (\n <ChatContainer thread={thread} context={context} />\n )}\n </StackItem.Content>\n );\n};\n\nexport default ChannelContainer;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,mBAAwD;AAExD,2BAAwD;AAGxD,kBAAiC;AACjC,6BAAwC;AACxC,2BAOO;AACP,4BAA0B;AAK1B,IAAMA,oBAAoB,CAACC,YAA2CC,aAAAA;AACpE,aAAOC,qCAAe,OAAO;IAC3BC,OAAO;UACLC,gDAAwB,cAAc;QACpCC,SAAS;QACTC,mBAAmB;QACnBC,OAAON;MACT,CAAA;SACGD,WAAWQ,IAAI,CAAC,EAAEC,IAAI,GAAGC,WAAAA,UAC1BC,uCAAiBF,IAAI;QACnB,GAAGC;QACHE,SAAS;MACX,CAAA,CAAA;;IAGJC,OAAO;MACL;QAAEC,QAAQ;QAAQC,QAAQ;MAAa;SACpCf,WAAWQ,IAAI,CAACP,eAAc;QAAEa,QAAQ;QAAcC,QAAQd,UAASQ;MAAG,EAAA;;EAEjF,EAAA;AACF;AAEA,IAAMO,mBAAmB,CAAC,EACxBC,MACAC,SACAC,QAAO,MACwF;AAC/F,QAAM,EAAEC,MAAK,QAAKC,oCAAcC,yCAAmBC,YAAY;AAC/D,QAAMC,kBAAkBJ,MAAMpB,WAAWkB,QAAQT,EAAE;AACnD,QAAMT,iBAAayB,sCAAgBH,yCAAmBI,QAAQ;AAC9D,QAAMC,OAAO5B,kBAAkBC,YAAYwB,eAAAA;AAC3C,QAAMI,mBAAeC,0BACnB,CAACC,WAAwBV,MAAMpB,WAAWkB,QAAQT,EAAE,IAAIe,oBAAoBM,OAAOrB,KAAKsB,SAAYD,OAAOrB,IAC3G;IAACe;GAAgB;AAGnB,QAAMQ,SAASd,QAAQe,QAAQ,CAAA,EAAGlB;AAClC,MAAI,CAACiB,QAAQ;AACX,WAAO;EACT;AAEA,SACE,6BAAAE,QAAA,cAACC,gCAAUC,SAAO;IAACC,SAAAA;KACjB,6BAAAH,QAAA,cAACI,mCAAAA;IAAc,GAAGX;IAAMY,UAAUX;IAAcY,kBAAcC,8BAAiBvB,OAAAA;KAC7E,6BAAAgB,QAAA,cAACQ,kCAAAA,IAAAA,CAAAA,GAEFlB,kBACC,6BAAAU,QAAA,cAACS,8BAAAA;IAAQ1B,MAAM,qBAAqBO,eAAAA;IAAmBoB,MAAM;MAAEC,SAAS3B;IAAQ;OAEhF,6BAAAgB,QAAA,cAACY,qCAAAA;IAAcd;IAAgBb;;AAIvC;AAEA,IAAA,2BAAeH;",
|
|
6
|
+
"names": ["useActivitiesMenu", "activities", "activity", "useMenuActions", "nodes", "createEditorActionGroup", "variant", "selectCardinality", "value", "map", "id", "properties", "createMenuAction", "checked", "edges", "source", "target", "ChannelContainer", "role", "channel", "context", "state", "useCapability", "ThreadCapabilities", "MutableState", "currentActivity", "useCapabilities", "Activity", "menu", "handleAction", "useCallback", "action", "undefined", "thread", "threads", "React", "StackItem", "Content", "toolbar", "MenuProvider", "onAction", "attendableId", "fullyQualifiedId", "ToolbarMenu", "Surface", "data", "subject", "ChatContainer"]
|
|
7
|
+
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
5
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
8
|
var __export = (target, all) => {
|
|
7
9
|
for (var name in all)
|
|
@@ -15,20 +17,33 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
17
|
}
|
|
16
18
|
return to;
|
|
17
19
|
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
18
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
29
|
+
var chunk_FMKMIGXZ_exports = {};
|
|
30
|
+
__export(chunk_FMKMIGXZ_exports, {
|
|
31
|
+
IntentResolver: () => IntentResolver,
|
|
32
|
+
Markdown: () => Markdown,
|
|
33
|
+
ReactSurface: () => ReactSurface,
|
|
34
|
+
ThreadState: () => ThreadState,
|
|
21
35
|
useAnalyticsCallback: () => useAnalyticsCallback,
|
|
22
36
|
useOnEditAnalytics: () => useOnEditAnalytics,
|
|
23
37
|
useStatus: () => useStatus
|
|
24
38
|
});
|
|
25
|
-
module.exports = __toCommonJS(
|
|
39
|
+
module.exports = __toCommonJS(chunk_FMKMIGXZ_exports);
|
|
26
40
|
var import_react = require("react");
|
|
27
41
|
var import_react2 = require("react");
|
|
28
42
|
var import_app_framework = require("@dxos/app-framework");
|
|
29
43
|
var import_types = require("@dxos/plugin-observability/types");
|
|
30
44
|
var import_echo = require("@dxos/react-client/echo");
|
|
31
45
|
var import_react_ui = require("@dxos/react-ui");
|
|
46
|
+
var import_app_framework2 = require("@dxos/app-framework");
|
|
32
47
|
var useStatus = (space, channel) => {
|
|
33
48
|
const [processing, setProcessing] = (0, import_react.useState)(false);
|
|
34
49
|
(0, import_react.useEffect)(() => {
|
|
@@ -76,18 +91,27 @@ var useAnalyticsCallback = (spaceId, name, meta) => {
|
|
|
76
91
|
spaceId
|
|
77
92
|
]);
|
|
78
93
|
};
|
|
79
|
-
var useOnEditAnalytics = (message, editing) => {
|
|
94
|
+
var useOnEditAnalytics = (message, textBlock, editing) => {
|
|
80
95
|
const space = (0, import_echo.getSpace)(message);
|
|
81
96
|
const onEditAnalytics = useAnalyticsCallback(space?.id, "threads.comment-edited", {
|
|
82
97
|
messageId: message.id,
|
|
83
|
-
messageLength:
|
|
98
|
+
messageLength: textBlock?.text.length
|
|
84
99
|
});
|
|
85
100
|
(0, import_react_ui.useOnTransition)(editing, true, false, onEditAnalytics);
|
|
86
101
|
};
|
|
102
|
+
var IntentResolver = (0, import_app_framework2.lazy)(() => import("./intent-resolver-KTZSUHCU.cjs"));
|
|
103
|
+
var Markdown = (0, import_app_framework2.lazy)(() => import("./markdown-EUC6FFCM.cjs"));
|
|
104
|
+
var ReactSurface = (0, import_app_framework2.lazy)(() => import("./react-surface-SF7YHWER.cjs"));
|
|
105
|
+
var ThreadSettings = (0, import_app_framework2.lazy)(() => import("./settings-WQXGBGOV.cjs"));
|
|
106
|
+
var ThreadState = (0, import_app_framework2.lazy)(() => import("./state-JMI5ZXZI.cjs"));
|
|
87
107
|
// Annotate the CommonJS export names for ESM import in node:
|
|
88
108
|
0 && (module.exports = {
|
|
109
|
+
IntentResolver,
|
|
110
|
+
Markdown,
|
|
111
|
+
ReactSurface,
|
|
112
|
+
ThreadState,
|
|
89
113
|
useAnalyticsCallback,
|
|
90
114
|
useOnEditAnalytics,
|
|
91
115
|
useStatus
|
|
92
116
|
});
|
|
93
|
-
//# sourceMappingURL=chunk-
|
|
117
|
+
//# sourceMappingURL=chunk-FMKMIGXZ.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/hooks/useStatus.ts", "../../../src/hooks/analytics.ts", "../../../src/capabilities/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { type Space } from '@dxos/react-client/echo';\n\n// TODO(burdon): Generalize and factor out.\nexport const useStatus = (space?: Space, channel?: string) => {\n const [processing, setProcessing] = useState(false);\n useEffect(() => {\n if (!space || !channel) {\n return;\n }\n\n const unsubscribe = space.listen(`status/${channel}`, (status) => {\n const { event } = status.payload ?? {};\n setProcessing(event === 'processing');\n });\n\n const t = setInterval(() => {\n setProcessing((prev: any) => {\n if (typeof prev?.ts === 'number' && Date.now() - prev.ts > 30_000) {\n return undefined;\n } else {\n return prev;\n }\n });\n }, 1_000);\n\n return () => {\n unsubscribe();\n clearInterval(t);\n };\n }, [space, channel]);\n\n return processing;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useCallback } from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { type ReactiveObject } from '@dxos/live-object';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { useOnTransition } from '@dxos/react-ui';\nimport { type TextContentBlock } from '@dxos/schema';\n\nexport const useAnalyticsCallback = (spaceId: string | undefined, name: string, meta?: any) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n return useCallback(\n (dynamicMeta?: any) => {\n void dispatch(\n createIntent(ObservabilityAction.SendEvent, { name, properties: { ...meta, ...dynamicMeta, spaceId } }),\n );\n },\n [dispatch, name, meta, spaceId],\n );\n};\n\nexport const useOnEditAnalytics = (\n message: ReactiveObject<any>,\n textBlock: TextContentBlock | undefined,\n editing: boolean,\n) => {\n const space = getSpace(message);\n\n const onEditAnalytics = useAnalyticsCallback(space?.id, 'threads.comment-edited', {\n messageId: message.id,\n messageLength: textBlock?.text.length,\n });\n\n useOnTransition(editing, true, false, onEditAnalytics);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const Markdown = lazy(() => import('./markdown'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\nexport const ThreadSettings = lazy(() => import('./settings'));\nexport const ThreadState = lazy(() => import('./state'));\n\nexport * from './capabilities';\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,mBAAoC;ACApC,IAAAA,gBAA4B;AAE5B,2BAAkD;AAElD,mBAAoC;AACpC,kBAAyB;AACzB,sBAAgC;ACNhC,IAAAC,wBAAqB;AFKd,IAAMC,YAAY,CAACC,OAAeC,YAAAA;AACvC,QAAM,CAACC,YAAYC,aAAAA,QAAiBC,uBAAS,KAAA;AAC7CC,8BAAU,MAAA;AACR,QAAI,CAACL,SAAS,CAACC,SAAS;AACtB;IACF;AAEA,UAAMK,cAAcN,MAAMO,OAAO,UAAUN,OAAAA,IAAW,CAACO,WAAAA;AACrD,YAAM,EAAEC,MAAK,IAAKD,OAAOE,WAAW,CAAC;AACrCP,oBAAcM,UAAU,YAAA;IAC1B,CAAA;AAEA,UAAME,IAAIC,YAAY,MAAA;AACpBT,oBAAc,CAACU,SAAAA;AACb,YAAI,OAAOA,MAAMC,OAAO,YAAYC,KAAKC,IAAG,IAAKH,KAAKC,KAAK,KAAQ;AACjE,iBAAOG;QACT,OAAO;AACL,iBAAOJ;QACT;MACF,CAAA;IACF,GAAG,GAAA;AAEH,WAAO,MAAA;AACLP,kBAAAA;AACAY,oBAAcP,CAAAA;IAChB;EACF,GAAG;IAACX;IAAOC;GAAQ;AAEnB,SAAOC;AACT;ACzBO,IAAMiB,uBAAuB,CAACC,SAA6BC,MAAcC,SAAAA;AAC9E,QAAM,EAAEC,iBAAiBC,SAAQ,QAAKC,0CAAAA;AAEtC,aAAOC,2BACL,CAACC,gBAAAA;AACC,SAAKH,aACHI,mCAAaC,iCAAoBC,WAAW;MAAET;MAAMU,YAAY;QAAE,GAAGT;QAAM,GAAGK;QAAaP;MAAQ;IAAE,CAAA,CAAA;EAEzG,GACA;IAACI;IAAUH;IAAMC;IAAMF;GAAQ;AAEnC;AAEO,IAAMY,qBAAqB,CAChCC,SACAC,WACAC,YAAAA;AAEA,QAAMnC,YAAQoC,sBAASH,OAAAA;AAEvB,QAAMI,kBAAkBlB,qBAAqBnB,OAAOsC,IAAI,0BAA0B;IAChFC,WAAWN,QAAQK;IACnBE,eAAeN,WAAWO,KAAKC;EACjC,CAAA;AAEAC,uCAAgBR,SAAS,MAAM,OAAOE,eAAAA;AACxC;ACjCO,IAAMO,qBAAiBC,4BAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAMC,eAAWD,4BAAK,MAAM,OAAO,yBAAA,CAAA;AACnC,IAAME,mBAAeF,4BAAK,MAAM,OAAO,8BAAA,CAAA;AACvC,IAAMG,qBAAiBH,4BAAK,MAAM,OAAO,yBAAA,CAAA;AACzC,IAAMI,kBAAcJ,4BAAK,MAAM,OAAO,sBAAA,CAAA;",
|
|
6
|
+
"names": ["import_react", "import_app_framework", "useStatus", "space", "channel", "processing", "setProcessing", "useState", "useEffect", "unsubscribe", "listen", "status", "event", "payload", "t", "setInterval", "prev", "ts", "Date", "now", "undefined", "clearInterval", "useAnalyticsCallback", "spaceId", "name", "meta", "dispatchPromise", "dispatch", "useIntentDispatcher", "useCallback", "dynamicMeta", "createIntent", "ObservabilityAction", "SendEvent", "properties", "useOnEditAnalytics", "message", "textBlock", "editing", "getSpace", "onEditAnalytics", "id", "messageId", "messageLength", "text", "length", "useOnTransition", "IntentResolver", "lazy", "Markdown", "ReactSurface", "ThreadSettings", "ThreadState"]
|
|
7
|
+
}
|