@dxos/plugin-thread 0.8.4-main.21d9917 → 0.8.4-main.2244d791bb
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/{app-graph-builder-SPAZN5XL.mjs → app-graph-builder-XFGLMIGK.mjs} +6 -5
- package/dist/lib/browser/app-graph-builder-XFGLMIGK.mjs.map +7 -0
- package/dist/lib/browser/blueprint-definition-RWH6FTW7.mjs +17 -0
- package/dist/lib/browser/blueprint-definition-RWH6FTW7.mjs.map +7 -0
- package/dist/lib/browser/blueprints/index.mjs +3 -3
- package/dist/lib/browser/{call-manager-YBRTG6T3.mjs → call-manager-GDGIKJKN.mjs} +4 -4
- package/dist/lib/browser/call-manager-GDGIKJKN.mjs.map +7 -0
- package/dist/lib/browser/{chunk-TAWDJPMD.mjs → chunk-2FIHSX35.mjs} +2 -2
- package/dist/lib/browser/chunk-2FIHSX35.mjs.map +7 -0
- package/dist/lib/browser/{chunk-VZICDGBW.mjs → chunk-4EUEMHNI.mjs} +48 -44
- package/dist/lib/browser/chunk-4EUEMHNI.mjs.map +7 -0
- package/dist/lib/browser/{chunk-ZFLSTQSE.mjs → chunk-CBX65FMW.mjs} +25 -26
- package/dist/lib/browser/chunk-CBX65FMW.mjs.map +7 -0
- package/dist/lib/browser/{chunk-DLO2G3DM.mjs → chunk-JBB73URQ.mjs} +2 -2
- package/dist/lib/browser/chunk-JBB73URQ.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +54 -53
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{markdown-TSXOA3GV.mjs → markdown-YJCSOWXX.mjs} +7 -7
- package/dist/lib/browser/markdown-YJCSOWXX.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{operation-resolver-MDMEBYH2.mjs → operation-resolver-PROCP5L4.mjs} +9 -9
- package/dist/lib/browser/operation-resolver-PROCP5L4.mjs.map +7 -0
- package/dist/lib/browser/{react-root-Q7U5D3DA.mjs → react-root-FHK2SVPU.mjs} +6 -6
- package/dist/lib/browser/react-root-FHK2SVPU.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-WDZQSDWH.mjs → react-surface-7MQA6VSH.mjs} +16 -15
- package/dist/lib/browser/react-surface-7MQA6VSH.mjs.map +7 -0
- package/dist/lib/browser/{repair-TDKAFAGH.mjs → repair-6OZ75AUU.mjs} +2 -2
- package/dist/lib/browser/{settings-OOKKVXV7.mjs → settings-TWKOTGSU.mjs} +5 -4
- package/dist/lib/browser/settings-TWKOTGSU.mjs.map +7 -0
- package/dist/lib/browser/{state-3LKZHDRI.mjs → state-SJR2GL5G.mjs} +2 -2
- package/dist/lib/browser/types/index.mjs +1 -1
- package/dist/lib/node-esm/{app-graph-builder-3LJAPDUW.mjs → app-graph-builder-IN6VLJBO.mjs} +6 -5
- package/dist/lib/node-esm/app-graph-builder-IN6VLJBO.mjs.map +7 -0
- package/dist/lib/node-esm/{blueprint-definition-MZZXXL37.mjs → blueprint-definition-QZ3GXYAN.mjs} +6 -6
- package/dist/lib/node-esm/blueprint-definition-QZ3GXYAN.mjs.map +7 -0
- package/dist/lib/node-esm/blueprints/index.mjs +3 -3
- package/dist/lib/node-esm/{call-manager-MMCTNFOH.mjs → call-manager-36UAAQCJ.mjs} +4 -4
- package/dist/lib/node-esm/call-manager-36UAAQCJ.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-AQHPP6ZX.mjs → chunk-2UQ73JQJ.mjs} +25 -25
- package/dist/lib/node-esm/chunk-2UQ73JQJ.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-KRBZBJRI.mjs → chunk-G7PZNN3Z.mjs} +2 -2
- package/dist/lib/node-esm/chunk-G7PZNN3Z.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-3RD3IVVD.mjs → chunk-RBRWHRHE.mjs} +48 -44
- package/dist/lib/node-esm/chunk-RBRWHRHE.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-ARTUUKTM.mjs → chunk-WMWUXWAS.mjs} +2 -2
- package/dist/lib/node-esm/chunk-WMWUXWAS.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +54 -53
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{markdown-N2UJ3D6L.mjs → markdown-6LRP3PAP.mjs} +7 -7
- package/dist/lib/node-esm/markdown-6LRP3PAP.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{operation-resolver-7PHDJZA2.mjs → operation-resolver-LPEPV5BF.mjs} +9 -9
- package/dist/lib/node-esm/operation-resolver-LPEPV5BF.mjs.map +7 -0
- package/dist/lib/node-esm/{react-root-SZIGQRDZ.mjs → react-root-P5P4VGQJ.mjs} +6 -6
- package/dist/lib/node-esm/react-root-P5P4VGQJ.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-24PNWUDX.mjs → react-surface-M7VI5XG2.mjs} +16 -15
- package/dist/lib/node-esm/react-surface-M7VI5XG2.mjs.map +7 -0
- package/dist/lib/node-esm/{repair-LHLLGXKF.mjs → repair-6777EPOM.mjs} +2 -2
- package/dist/lib/node-esm/{settings-LXZQXSPL.mjs → settings-5O254B3Z.mjs} +5 -4
- package/dist/lib/node-esm/settings-5O254B3Z.mjs.map +7 -0
- package/dist/lib/node-esm/{state-YYAK5ENM.mjs → state-5R3TZJQE.mjs} +2 -2
- package/dist/lib/node-esm/types/index.mjs +1 -1
- package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
- package/dist/types/src/blueprints/index.d.ts +1 -1
- package/dist/types/src/blueprints/index.d.ts.map +1 -1
- package/dist/types/src/blueprints/thread-blueprint.d.ts +3 -20
- package/dist/types/src/blueprints/thread-blueprint.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +3 -6
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts +1 -1
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/call-manager/call-manager.d.ts.map +1 -1
- package/dist/types/src/capabilities/markdown/markdown.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-resolver/index.d.ts +1 -1
- package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +2 -2
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-root/react-root.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface/index.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts +2 -2
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings/index.d.ts +1 -1
- package/dist/types/src/capabilities/settings/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings/settings.d.ts +3 -2
- package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -1
- package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
- package/dist/types/src/components/ChannelContainer.d.ts +1 -1
- package/dist/types/src/components/ChannelContainer.d.ts.map +1 -1
- package/dist/types/src/components/ChannelContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/Chat.stories.d.ts.map +1 -1
- package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
- package/dist/types/src/components/ThreadCompanion.d.ts.map +1 -1
- package/dist/types/src/components/ThreadSettings.d.ts.map +1 -1
- package/dist/types/src/functions/create-proposals.d.ts +8 -1
- package/dist/types/src/functions/create-proposals.d.ts.map +1 -1
- package/dist/types/src/functions/index.d.ts +13 -1
- package/dist/types/src/functions/index.d.ts.map +1 -1
- package/dist/types/src/testing/stories.d.ts.map +1 -1
- package/dist/types/src/types/Channel.d.ts +422 -422
- package/dist/types/src/types/Channel.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +1674 -1674
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +63 -61
- package/src/ThreadPlugin.tsx +29 -28
- package/src/blueprints/index.ts +1 -1
- package/src/blueprints/thread-blueprint.ts +14 -6
- package/src/calls-service.stories.tsx +1 -1
- package/src/capabilities/app-graph-builder/app-graph-builder.ts +4 -3
- package/src/capabilities/blueprint-definition/blueprint-definition.ts +6 -12
- package/src/capabilities/call-manager/call-manager.ts +2 -2
- package/src/capabilities/markdown/markdown.ts +5 -5
- package/src/capabilities/operation-resolver/operation-resolver.ts +7 -7
- package/src/capabilities/react-root/react-root.tsx +2 -2
- package/src/capabilities/react-surface/react-surface.tsx +13 -12
- package/src/capabilities/settings/settings.ts +3 -2
- package/src/components/Call/Call.tsx +1 -1
- package/src/components/Call/Toolbar.tsx +2 -1
- package/src/components/CallSidebar.tsx +1 -1
- package/src/components/ChannelContainer.stories.tsx +4 -5
- package/src/components/ChannelContainer.tsx +9 -8
- package/src/components/Chat.stories.tsx +5 -4
- package/src/components/ChatContainer.tsx +15 -16
- package/src/components/Comments.stories.tsx +1 -1
- package/src/components/Lobby/Lobby.tsx +1 -1
- package/src/components/Media/VideoObject.stories.tsx +1 -1
- package/src/components/MessageContainer.tsx +2 -2
- package/src/components/Participant/Participant.tsx +1 -1
- package/src/components/ResponsiveGrid/ResponsiveContainer.stories.tsx +1 -1
- package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +1 -1
- package/src/components/ThreadCompanion.tsx +8 -7
- package/src/components/ThreadSettings.tsx +3 -2
- package/src/functions/create-proposals.ts +9 -9
- package/src/functions/index.ts +5 -1
- package/src/hooks/analytics.ts +1 -1
- package/src/testing/stories.ts +2 -1
- package/src/types/Channel.ts +1 -1
- package/dist/lib/browser/app-graph-builder-SPAZN5XL.mjs.map +0 -7
- package/dist/lib/browser/blueprint-definition-UQ63QKQG.mjs +0 -17
- package/dist/lib/browser/blueprint-definition-UQ63QKQG.mjs.map +0 -7
- package/dist/lib/browser/call-manager-YBRTG6T3.mjs.map +0 -7
- package/dist/lib/browser/chunk-DLO2G3DM.mjs.map +0 -7
- package/dist/lib/browser/chunk-TAWDJPMD.mjs.map +0 -7
- package/dist/lib/browser/chunk-VZICDGBW.mjs.map +0 -7
- package/dist/lib/browser/chunk-ZFLSTQSE.mjs.map +0 -7
- package/dist/lib/browser/markdown-TSXOA3GV.mjs.map +0 -7
- package/dist/lib/browser/operation-resolver-MDMEBYH2.mjs.map +0 -7
- package/dist/lib/browser/react-root-Q7U5D3DA.mjs.map +0 -7
- package/dist/lib/browser/react-surface-WDZQSDWH.mjs.map +0 -7
- package/dist/lib/browser/settings-OOKKVXV7.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-3LJAPDUW.mjs.map +0 -7
- package/dist/lib/node-esm/blueprint-definition-MZZXXL37.mjs.map +0 -7
- package/dist/lib/node-esm/call-manager-MMCTNFOH.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-3RD3IVVD.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-AQHPP6ZX.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ARTUUKTM.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-KRBZBJRI.mjs.map +0 -7
- package/dist/lib/node-esm/markdown-N2UJ3D6L.mjs.map +0 -7
- package/dist/lib/node-esm/operation-resolver-7PHDJZA2.mjs.map +0 -7
- package/dist/lib/node-esm/react-root-SZIGQRDZ.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-24PNWUDX.mjs.map +0 -7
- package/dist/lib/node-esm/settings-LXZQXSPL.mjs.map +0 -7
- /package/dist/lib/browser/{repair-TDKAFAGH.mjs.map → repair-6OZ75AUU.mjs.map} +0 -0
- /package/dist/lib/browser/{state-3LKZHDRI.mjs.map → state-SJR2GL5G.mjs.map} +0 -0
- /package/dist/lib/node-esm/{repair-LHLLGXKF.mjs.map → repair-6777EPOM.mjs.map} +0 -0
- /package/dist/lib/node-esm/{state-YYAK5ENM.mjs.map → state-5R3TZJQE.mjs.map} +0 -0
|
@@ -6,14 +6,15 @@ import {
|
|
|
6
6
|
ThreadCapabilities,
|
|
7
7
|
ThreadOperation,
|
|
8
8
|
meta
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-2FIHSX35.mjs";
|
|
10
10
|
import "./chunk-J5LGTIGS.mjs";
|
|
11
11
|
|
|
12
12
|
// src/capabilities/app-graph-builder/app-graph-builder.ts
|
|
13
13
|
import { Atom } from "@effect-atom/atom-react";
|
|
14
14
|
import * as Effect from "effect/Effect";
|
|
15
15
|
import * as Option from "effect/Option";
|
|
16
|
-
import { Capability
|
|
16
|
+
import { Capability } from "@dxos/app-framework";
|
|
17
|
+
import { AppCapabilities } from "@dxos/app-toolkit";
|
|
17
18
|
import { Obj } from "@dxos/echo";
|
|
18
19
|
import { Operation } from "@dxos/operation";
|
|
19
20
|
import { AttentionCapabilities } from "@dxos/plugin-attention";
|
|
@@ -34,7 +35,7 @@ var commentDisabledFamily = Atom.family(({ stateAtom, selectionManager, objectId
|
|
|
34
35
|
var whenCommentableObject = NodeMatcher.whenAll(NodeMatcher.whenEchoObjectMatches, NodeMatcher.whenNot(NodeMatcher.whenEchoTypeMatches(Channel_exports.Channel)));
|
|
35
36
|
var app_graph_builder_default = Capability.makeModule(Effect.fnUntraced(function* () {
|
|
36
37
|
const capabilities = yield* Capability.Service;
|
|
37
|
-
const resolve = (typename) => capabilities.getAll(
|
|
38
|
+
const resolve = (typename) => capabilities.getAll(AppCapabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
|
|
38
39
|
const extensions = yield* Effect.all([
|
|
39
40
|
GraphBuilder.createExtension({
|
|
40
41
|
id: `${meta.id}/active-call`,
|
|
@@ -180,9 +181,9 @@ var app_graph_builder_default = Capability.makeModule(Effect.fnUntraced(function
|
|
|
180
181
|
}
|
|
181
182
|
})
|
|
182
183
|
]);
|
|
183
|
-
return Capability.contributes(
|
|
184
|
+
return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);
|
|
184
185
|
}));
|
|
185
186
|
export {
|
|
186
187
|
app_graph_builder_default as default
|
|
187
188
|
};
|
|
188
|
-
//# sourceMappingURL=app-graph-builder-
|
|
189
|
+
//# sourceMappingURL=app-graph-builder-XFGLMIGK.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/app-graph-builder/app-graph-builder.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom } from '@effect-atom/atom-react';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { Obj } from '@dxos/echo';\nimport { Operation } from '@dxos/operation';\nimport { AttentionCapabilities } from '@dxos/plugin-attention';\nimport { ATTENDABLE_PATH_SEPARATOR, DECK_COMPANION_TYPE, PLANK_COMPANION_TYPE } from '@dxos/plugin-deck/types';\nimport { GraphBuilder, NodeMatcher } from '@dxos/plugin-graph';\nimport { type SelectionManager, type SelectionMode, defaultSelection } from '@dxos/react-ui-attention';\n\nimport { meta } from '../../meta';\nimport { Channel, ThreadCapabilities, ThreadOperation, type ThreadState } from '../../types';\nimport { getAnchor } from '../../util';\n\ntype CommentDisabledParams = {\n stateAtom: Atom.Atom<Atom.Writable<ThreadState>[]>;\n selectionManager: SelectionManager;\n objectId: string;\n commentsType: string;\n selectionMode: SelectionMode | undefined;\n};\n\n/**\n * Atom family to derive whether the comment button should be disabled.\n * Uses a composite key to ensure proper caching.\n */\nconst commentDisabledFamily = Atom.family(\n ({ stateAtom, selectionManager, objectId, commentsType, selectionMode }: CommentDisabledParams) =>\n Atom.make((get) => {\n const stateAtoms = get(stateAtom);\n const state = stateAtoms[0] ? get(stateAtoms[0]) : undefined;\n const toolbar = state?.toolbar ?? {};\n const selectionState = get(selectionManager.state);\n const selection =\n selectionState.selections[objectId] ?? (selectionMode ? defaultSelection(selectionMode) : undefined);\n const anchor = getAnchor(selection);\n const invalidSelection = !anchor;\n const overlappingComment = toolbar[objectId];\n return (commentsType === 'anchored' && invalidSelection) || overlappingComment;\n }),\n);\n\n/** Match ECHO objects that are NOT Channels (i.e. objects that can have comments). */\nconst whenCommentableObject = NodeMatcher.whenAll(\n NodeMatcher.whenEchoObjectMatches,\n NodeMatcher.whenNot(NodeMatcher.whenEchoTypeMatches(Channel.Channel)),\n);\n\n// TODO(wittjosiah): Highlight active calls in L1.\n// Track active meetings by subscribing to meetings query and polling the swarms of recent meetings in the space.\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const capabilities = yield* Capability.Service;\n\n const resolve = (typename: string) =>\n capabilities.getAll(AppCapabilities.Metadata).find(({ id }: { id: string }) => id === typename)?.metadata ?? {};\n\n const extensions = yield* Effect.all([\n GraphBuilder.createExtension({\n id: `${meta.id}/active-call`,\n match: NodeMatcher.whenRoot,\n connector: (node, get) => {\n const callManagerAtom = capabilities.atom(ThreadCapabilities.CallManager);\n const [call] = get(callManagerAtom);\n if (!call) {\n return Effect.succeed([]);\n }\n // Use derived joinedAtom for efficient subscription.\n const joined = get(call.joinedAtom);\n return Effect.succeed(\n joined\n ? [\n {\n id: `${node.id}${ATTENDABLE_PATH_SEPARATOR}active-call`,\n type: DECK_COMPANION_TYPE,\n data: null,\n properties: {\n label: ['call panel label', { ns: meta.id }],\n icon: 'ph--video-conference--regular',\n position: 'hoist',\n disposition: 'hidden',\n },\n },\n ]\n : [],\n );\n },\n }),\n GraphBuilder.createTypeExtension({\n id: `${meta.id}/channel-chat-companion`,\n type: Channel.Channel,\n connector: (channel, get) => {\n const callManager = capabilities.get(ThreadCapabilities.CallManager);\n // Use derived atoms for efficient subscription.\n const joined = get(callManager.joinedAtom);\n const roomId = get(callManager.roomIdAtom);\n const isActive = joined && roomId === Obj.getDXN(channel).toString();\n if (!isActive) {\n return Effect.succeed([]);\n }\n\n return Effect.succeed([\n {\n id: `${Obj.getDXN(channel).toString()}${ATTENDABLE_PATH_SEPARATOR}chat`,\n type: PLANK_COMPANION_TYPE,\n data: 'chat',\n properties: {\n label: ['channel companion label', { ns: meta.id }],\n icon: 'ph--hash--regular',\n position: 'hoist',\n disposition: 'hidden',\n },\n },\n ]);\n },\n }),\n GraphBuilder.createExtension({\n id: `${meta.id}/comments-companion`,\n match: (node) => {\n if (!Obj.isObject(node.data) || Option.isNone(whenCommentableObject(node))) {\n return Option.none();\n }\n const metadata = resolve(Obj.getTypename(node.data)!);\n return typeof metadata.comments === 'string' ? Option.some(node) : Option.none();\n },\n connector: (node) =>\n Effect.succeed([\n {\n id: [node.id, 'comments'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'comments',\n properties: {\n label: ['comments label', { ns: meta.id }],\n icon: 'ph--chat-text--regular',\n disposition: 'hidden',\n position: 'hoist',\n },\n },\n ]),\n }),\n GraphBuilder.createExtension({\n id: `${meta.id}/comment-toolbar`,\n match: (node) => {\n if (!Obj.isObject(node.data) || Option.isNone(whenCommentableObject(node))) {\n return Option.none();\n }\n const metadata = resolve(Obj.getTypename(node.data)!);\n return typeof metadata.comments === 'string' ? Option.some(node.data) : Option.none();\n },\n actions: (object, get) => {\n const stateAtom = capabilities.atom(ThreadCapabilities.State);\n const selectionManager = capabilities.get(AttentionCapabilities.Selection);\n const objectId = Obj.getDXN(object).toString();\n const metadata = resolve(Obj.getTypename(object)!);\n\n const disabled = get(\n commentDisabledFamily({\n stateAtom,\n selectionManager,\n objectId,\n commentsType: metadata.comments as string,\n selectionMode: metadata.selectionMode,\n }),\n );\n\n return Effect.succeed([\n {\n id: `${Obj.getDXN(object).toString()}/comment`,\n data: Effect.fnUntraced(function* () {\n const metadata = resolve(Obj.getTypename(object)!);\n const selection = selectionManager.getSelection(Obj.getDXN(object).toString());\n const anchor = metadata.comments === 'anchored' ? getAnchor(selection) : Date.now().toString();\n const name = metadata.getAnchorLabel?.(object, anchor);\n yield* Operation.invoke(ThreadOperation.Create, {\n anchor,\n name,\n subject: object,\n });\n }),\n properties: {\n label: ['add comment label', { ns: meta.id }],\n icon: 'ph--chat-text--regular',\n disposition: 'toolbar',\n disabled,\n testId: 'thread.comment.add',\n },\n },\n ]);\n },\n }),\n ]);\n\n return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);\n }),\n);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Atom", "Effect", "Option", "Capability", "AppCapabilities", "Obj", "Operation", "AttentionCapabilities", "ATTENDABLE_PATH_SEPARATOR", "DECK_COMPANION_TYPE", "PLANK_COMPANION_TYPE", "GraphBuilder", "NodeMatcher", "defaultSelection", "commentDisabledFamily", "Atom", "family", "stateAtom", "selectionManager", "objectId", "commentsType", "selectionMode", "make", "get", "stateAtoms", "state", "undefined", "toolbar", "selectionState", "selection", "selections", "defaultSelection", "anchor", "getAnchor", "invalidSelection", "overlappingComment", "whenCommentableObject", "NodeMatcher", "whenAll", "whenEchoObjectMatches", "whenNot", "whenEchoTypeMatches", "Channel", "Capability", "makeModule", "fnUntraced", "capabilities", "Service", "resolve", "typename", "getAll", "AppCapabilities", "Metadata", "find", "id", "metadata", "extensions", "all", "GraphBuilder", "createExtension", "meta", "match", "whenRoot", "connector", "node", "callManagerAtom", "atom", "ThreadCapabilities", "CallManager", "call", "succeed", "joined", "joinedAtom", "ATTENDABLE_PATH_SEPARATOR", "type", "DECK_COMPANION_TYPE", "data", "properties", "label", "ns", "icon", "position", "disposition", "createTypeExtension", "channel", "callManager", "roomId", "roomIdAtom", "isActive", "Obj", "getDXN", "toString", "PLANK_COMPANION_TYPE", "isObject", "isNone", "none", "getTypename", "comments", "some", "join", "actions", "object", "State", "AttentionCapabilities", "Selection", "disabled", "getSelection", "Date", "now", "name", "getAnchorLabel", "Operation", "invoke", "ThreadOperation", "Create", "subject", "testId", "contributes", "AppGraphBuilder"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import {
|
|
2
|
+
thread_blueprint_default
|
|
3
|
+
} from "./chunk-CBX65FMW.mjs";
|
|
4
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
5
|
+
|
|
6
|
+
// src/capabilities/blueprint-definition/blueprint-definition.ts
|
|
7
|
+
import * as Effect from "effect/Effect";
|
|
8
|
+
import { Capability } from "@dxos/app-framework";
|
|
9
|
+
import { AppCapabilities } from "@dxos/app-toolkit";
|
|
10
|
+
var blueprintDefinition = Capability.makeModule(() => Effect.succeed([
|
|
11
|
+
Capability.contributes(AppCapabilities.BlueprintDefinition, thread_blueprint_default)
|
|
12
|
+
]));
|
|
13
|
+
var blueprint_definition_default = blueprintDefinition;
|
|
14
|
+
export {
|
|
15
|
+
blueprint_definition_default as default
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=blueprint-definition-RWH6FTW7.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/blueprint-definition/blueprint-definition.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\n\nimport { ThreadBlueprint } from '../../blueprints';\n\nconst blueprintDefinition = Capability.makeModule<\n [],\n Capability.Capability<typeof AppCapabilities.BlueprintDefinition>[]\n>(() => Effect.succeed([Capability.contributes(AppCapabilities.BlueprintDefinition, ThreadBlueprint)]));\n\nexport default blueprintDefinition;\n"],
|
|
5
|
+
"mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAIhC,IAAMC,sBAAsBC,WAAWC,WAGrC,MAAaC,eAAQ;EAACF,WAAWG,YAAYC,gBAAgBC,qBAAqBC,wBAAAA;CAAiB,CAAA;AAErG,IAAA,+BAAeP;",
|
|
6
|
+
"names": ["Effect", "Capability", "AppCapabilities", "blueprintDefinition", "Capability", "makeModule", "succeed", "contributes", "AppCapabilities", "BlueprintDefinition", "ThreadBlueprint"]
|
|
7
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "../chunk-
|
|
2
|
+
thread_blueprint_default
|
|
3
|
+
} from "../chunk-CBX65FMW.mjs";
|
|
4
4
|
import "../chunk-J5LGTIGS.mjs";
|
|
5
5
|
export {
|
|
6
|
-
|
|
6
|
+
thread_blueprint_default as ThreadBlueprint
|
|
7
7
|
};
|
|
8
8
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -4,16 +4,16 @@ import {
|
|
|
4
4
|
import "./chunk-ISCHODBV.mjs";
|
|
5
5
|
import {
|
|
6
6
|
ThreadCapabilities
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-2FIHSX35.mjs";
|
|
8
8
|
import "./chunk-J5LGTIGS.mjs";
|
|
9
9
|
|
|
10
10
|
// src/capabilities/call-manager/call-manager.ts
|
|
11
11
|
import * as Effect from "effect/Effect";
|
|
12
|
-
import {
|
|
12
|
+
import { Capabilities, Capability } from "@dxos/app-framework";
|
|
13
13
|
import { ClientCapabilities } from "@dxos/plugin-client";
|
|
14
14
|
var call_manager_default = Capability.makeModule(Effect.fnUntraced(function* () {
|
|
15
15
|
const client = yield* Capability.get(ClientCapabilities.Client);
|
|
16
|
-
const registry = yield* Capability.get(
|
|
16
|
+
const registry = yield* Capability.get(Capabilities.AtomRegistry);
|
|
17
17
|
const callManager = new CallManager(client, registry);
|
|
18
18
|
yield* Effect.tryPromise(() => callManager.open());
|
|
19
19
|
return Capability.contributes(ThreadCapabilities.CallManager, callManager, () => Effect.sync(() => {
|
|
@@ -23,4 +23,4 @@ var call_manager_default = Capability.makeModule(Effect.fnUntraced(function* ()
|
|
|
23
23
|
export {
|
|
24
24
|
call_manager_default as default
|
|
25
25
|
};
|
|
26
|
-
//# sourceMappingURL=call-manager-
|
|
26
|
+
//# sourceMappingURL=call-manager-GDGIKJKN.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/call-manager/call-manager.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { ClientCapabilities } from '@dxos/plugin-client';\n\nimport { CallManager } from '../../calls';\nimport { ThreadCapabilities } from '../../types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const client = yield* Capability.get(ClientCapabilities.Client);\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n const callManager = new CallManager(client, registry);\n yield* Effect.tryPromise(() => callManager.open());\n\n return Capability.contributes(ThreadCapabilities.CallManager, callManager, () =>\n Effect.sync(() => {\n void callManager.close();\n }),\n );\n }),\n);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,0BAA0B;AAKnC,IAAA,uBAAeC,WAAWC,WACjBC,kBAAW,aAAA;AAChB,QAAMC,SAAS,OAAOH,WAAWI,IAAIC,mBAAmBC,MAAM;AAC9D,QAAMC,WAAW,OAAOP,WAAWI,IAAII,aAAaC,YAAY;AAChE,QAAMC,cAAc,IAAIC,YAAYR,QAAQI,QAAAA;AAC5C,SAAcK,kBAAW,MAAMF,YAAYG,KAAI,CAAA;AAE/C,SAAOb,WAAWc,YAAYC,mBAAmBJ,aAAaD,aAAa,MAClEM,YAAK,MAAA;AACV,SAAKN,YAAYO,MAAK;EACxB,CAAA,CAAA;AAEJ,CAAA,CAAA;",
|
|
6
|
+
"names": ["Effect", "Capabilities", "Capability", "ClientCapabilities", "Capability", "makeModule", "fnUntraced", "client", "get", "ClientCapabilities", "Client", "registry", "Capabilities", "AtomRegistry", "callManager", "CallManager", "tryPromise", "open", "contributes", "ThreadCapabilities", "sync", "close"]
|
|
7
|
+
}
|
|
@@ -44,7 +44,7 @@ var Channel = Schema.Struct({
|
|
|
44
44
|
name: Schema.optional(Schema.String),
|
|
45
45
|
defaultThread: Type.Ref(Thread.Thread).pipe(FormInputAnnotation.set(false)),
|
|
46
46
|
// TODO(wittjosiah): Should be an "ordered collection".
|
|
47
|
-
threads: Type.Ref(Thread.Thread).pipe(Schema.Array,
|
|
47
|
+
threads: Type.Ref(Thread.Thread).pipe(Schema.Array, FormInputAnnotation.set(false))
|
|
48
48
|
}).pipe(Type.object({
|
|
49
49
|
typename: "dxos.org/type/Channel",
|
|
50
50
|
version: "0.1.0"
|
|
@@ -290,4 +290,4 @@ export {
|
|
|
290
290
|
ThreadSettingsSchema,
|
|
291
291
|
ThreadOperation
|
|
292
292
|
};
|
|
293
|
-
//# sourceMappingURL=chunk-
|
|
293
|
+
//# sourceMappingURL=chunk-2FIHSX35.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types/capabilities.ts", "../../../src/meta.ts", "../../../src/types/Channel.ts", "../../../src/types/types.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Atom } from '@effect-atom/atom-react';\n\nimport { Capability } from '@dxos/app-framework';\n\nimport { type CallManager, type CallState, type MediaState } from '../calls';\nimport { meta } from '../meta';\nimport { type Channel, type ThreadSettingsProps, type ThreadState, type ViewStore } from '../types';\n\nexport namespace ThreadCapabilities {\n export const Settings = Capability.make<Atom.Writable<ThreadSettingsProps>>(`${meta.id}/capability/settings`);\n export const CallManager = Capability.make<CallManager>(`${meta.id}/capability/call-manager`);\n\n // TODO(burdon): Better way to define specific extensions for meeting companions.\n // TODO(burdon): This brings in deps from ../calls; how should we manage/minimize explicit type exposure to other plugins?\n // TODO(wittjosiah): These callbacks could be intents once we support broadcast.\n export type CallProperties = {\n onJoin: (state: { channel?: Channel.Channel; roomId?: string }) => Promise<void>;\n onLeave: (roomId?: string) => Promise<void>;\n onCallStateUpdated: (callState: CallState) => Promise<void>;\n onMediaStateUpdated: ([mediaState, isSpeaking]: [MediaState, boolean]) => Promise<void>;\n };\n\n export const CallExtension = Capability.make<CallProperties>(`${meta.id}/capability/call-extension`);\n\n /** Thread state (drafts, toolbar state, current selection). */\n export const State = Capability.make<Atom.Writable<ThreadState>>(`${meta.id}/capability/state`);\n\n /** Per-subject view state (e.g., showResolvedThreads). */\n export const ViewState = Capability.make<Atom.Writable<ViewStore>>(`${meta.id}/capability/view-state`);\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\n// TODO(wittjosiah): Needs screenshots.\nexport const meta: Plugin.Meta = {\n id: 'dxos.org/plugin/thread',\n name: 'Chat',\n description: trim`\n Multi-modal communication platform supporting text chat, voice, and video conferencing.\n Create threaded conversations and add contextual comments directly on any workspace object.\n `,\n icon: 'ph--video-conference--regular',\n iconHue: 'rose',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-thread',\n};\n\nexport const THREAD_ITEM = `${meta.id}/item`;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Obj, Ref, Type } from '@dxos/echo';\nimport { FormInputAnnotation } from '@dxos/echo/internal';\nimport { Thread } from '@dxos/types';\n\nexport const Channel = Schema.Struct({\n name: Schema.optional(Schema.String),\n defaultThread: Type.Ref(Thread.Thread).pipe(FormInputAnnotation.set(false)),\n // TODO(wittjosiah): Should be an \"ordered collection\".\n threads: Type.Ref(Thread.Thread).pipe(Schema.Array, FormInputAnnotation.set(false)),\n}).pipe(\n Type.object({\n typename: 'dxos.org/type/Channel',\n version: '0.1.0',\n }),\n);\n\nexport interface Channel extends Schema.Schema.Type<typeof Channel> {}\n\nexport const make = (props: Pick<Obj.MakeProps<typeof Channel>, 'name'> = {}) =>\n Obj.make(Channel, {\n ...props,\n defaultThread: Ref.make(Obj.make(Thread.Thread, { messages: [], status: 'active' })),\n threads: [],\n });\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Key, Type } from '@dxos/echo';\nimport { Operation } from '@dxos/operation';\nimport { SpaceSchema } from '@dxos/react-client/echo';\nimport { Collection } from '@dxos/schema';\nimport { Actor, AnchoredTo, Message, Thread } from '@dxos/types';\n\nimport { meta } from '../meta';\n\nimport * as Channel from './Channel';\n\nconst THREAD_OPERATION = `${meta.id}/operation`;\n\n/**\n * Operations for the Thread plugin.\n * Note: Complex ECHO types are typed as Schema.Any to avoid serialization issues.\n */\nexport namespace ThreadOperation {\n export const OnCreateSpace = Operation.make({\n meta: { key: `${THREAD_OPERATION}/on-create-space`, name: 'On Create Space' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n space: SpaceSchema,\n rootCollection: Collection.Collection,\n isDefault: Schema.Boolean.pipe(Schema.optional),\n }),\n output: Schema.Void,\n },\n });\n\n export const CreateChannel = Operation.make({\n meta: { key: `${THREAD_OPERATION}/create-channel`, name: 'Create Channel' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n spaceId: Key.SpaceId,\n name: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: Channel.Channel,\n }),\n },\n });\n\n export const CreateChannelThread = Operation.make({\n meta: { key: `${THREAD_OPERATION}/create-channel-thread`, name: 'Create Channel Thread' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n channel: Channel.Channel,\n }),\n output: Schema.Struct({\n object: Thread.Thread,\n }),\n },\n });\n\n export const Create = Operation.make({\n meta: { key: `${THREAD_OPERATION}/create`, name: 'Create Thread' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n anchor: Schema.optional(Schema.String),\n subject: Type.Obj,\n }),\n output: Schema.Void,\n },\n });\n\n export const DeleteOutput = Schema.Struct({\n thread: Thread.Thread.annotations({ description: 'The deleted thread.' }),\n anchor: AnchoredTo.AnchoredTo.annotations({ description: 'The deleted anchor.' }),\n }).pipe(Schema.partial);\n\n export type DeleteOutput = Schema.Schema.Type<typeof DeleteOutput>;\n\n export const Delete = Operation.make({\n meta: { key: `${THREAD_OPERATION}/delete`, name: 'Delete Thread' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n anchor: AnchoredTo.AnchoredTo,\n subject: Type.Obj,\n thread: Schema.optional(Thread.Thread),\n }),\n output: DeleteOutput,\n },\n });\n\n export const Select = Operation.make({\n meta: { key: `${THREAD_OPERATION}/select`, name: 'Select Thread' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n current: Schema.String,\n }),\n output: Schema.Void,\n },\n });\n\n export const ToggleResolved = Operation.make({\n meta: { key: `${THREAD_OPERATION}/toggle-resolved`, name: 'Toggle Resolved' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n thread: Thread.Thread,\n }),\n output: Schema.Void,\n },\n });\n\n export const AddMessage = Operation.make({\n meta: { key: `${THREAD_OPERATION}/add-message`, name: 'Add Message' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n subject: Type.Obj,\n anchor: AnchoredTo.AnchoredTo,\n sender: Actor.Actor,\n text: Schema.String,\n }),\n output: Schema.Void,\n },\n });\n\n export const DeleteMessageOutput = Schema.partial(\n Schema.Struct({\n message: Message.Message.annotations({ description: 'The deleted message.' }),\n messageIndex: Schema.Number.annotations({ description: 'The index the message was at.' }),\n }),\n );\n\n export type DeleteMessageOutput = Schema.Schema.Type<typeof DeleteMessageOutput>;\n\n export const DeleteMessage = Operation.make({\n meta: { key: `${THREAD_OPERATION}/delete-message`, name: 'Delete Message' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n anchor: AnchoredTo.AnchoredTo,\n subject: Type.Obj,\n messageId: Schema.String,\n }),\n output: DeleteMessageOutput,\n },\n });\n\n /**\n * Restore a deleted thread (inverse of Delete).\n */\n export const Restore = Operation.make({\n meta: { key: `${THREAD_OPERATION}/restore`, name: 'Restore Thread' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n thread: Thread.Thread.annotations({ description: 'The thread to restore.' }),\n anchor: AnchoredTo.AnchoredTo.annotations({ description: 'The anchor relation to restore.' }),\n }),\n output: Schema.Void,\n },\n });\n\n /**\n * Restore a deleted message (inverse of DeleteMessage).\n */\n export const RestoreMessage = Operation.make({\n meta: { key: `${THREAD_OPERATION}/restore-message`, name: 'Restore Message' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n anchor: AnchoredTo.AnchoredTo.annotations({ description: 'The anchor of the thread.' }),\n message: Message.Message.annotations({ description: 'The message to restore.' }),\n messageIndex: Schema.Number.annotations({ description: 'The index to restore the message at.' }),\n }),\n output: Schema.Void,\n },\n });\n}\n\nexport const ThreadSettingsSchema = Schema.mutable(Schema.Struct({}));\nexport type ThreadSettingsProps = Schema.Schema.Type<typeof ThreadSettingsSchema>;\n\nexport interface ThreadModel {\n root: Thread.Thread;\n}\n\ntype SubjectId = string;\nexport type ViewState = { showResolvedThreads: boolean };\nexport type ViewStore = Record<SubjectId, ViewState>;\n\nexport type ThreadState = {\n /** Object toolbar state. */\n toolbar: Record<string, boolean>;\n /** In-memory draft threads. */\n // TODO(burdon): Drafts are getting lost.\n drafts: Record<string, AnchoredTo.AnchoredTo[]>;\n current?: string | undefined;\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Capability", "trim", "meta", "id", "name", "description", "trim", "icon", "iconHue", "source", "THREAD_ITEM", "ThreadCapabilities", "Settings", "Capability", "make", "meta", "id", "CallManager", "CallExtension", "State", "ViewState", "Schema", "Obj", "Ref", "Type", "FormInputAnnotation", "Thread", "Channel", "Struct", "name", "optional", "String", "defaultThread", "Type", "Ref", "Thread", "pipe", "FormInputAnnotation", "set", "threads", "Array", "object", "typename", "version", "make", "props", "Obj", "messages", "status", "Schema", "Capability", "Key", "Type", "Operation", "SpaceSchema", "Collection", "Actor", "AnchoredTo", "Message", "Thread", "THREAD_OPERATION", "meta", "id", "ThreadOperation", "OnCreateSpace", "Operation", "make", "key", "name", "services", "Capability", "Service", "schema", "input", "Struct", "space", "SpaceSchema", "rootCollection", "Collection", "isDefault", "Boolean", "pipe", "optional", "output", "Void", "CreateChannel", "spaceId", "Key", "SpaceId", "String", "object", "Channel", "CreateChannelThread", "channel", "Thread", "Create", "anchor", "subject", "Type", "Obj", "DeleteOutput", "thread", "annotations", "description", "AnchoredTo", "partial", "Delete", "Select", "current", "ToggleResolved", "AddMessage", "sender", "Actor", "text", "DeleteMessageOutput", "message", "Message", "messageIndex", "Number", "DeleteMessage", "messageId", "Restore", "RestoreMessage", "ThreadSettingsSchema", "mutable"]
|
|
7
|
+
}
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
useDebugMode,
|
|
3
3
|
useOnEditAnalytics,
|
|
4
4
|
useStatus
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-JBB73URQ.mjs";
|
|
6
6
|
import {
|
|
7
7
|
getMessageMetadata
|
|
8
8
|
} from "./chunk-CP7E2HRE.mjs";
|
|
@@ -10,12 +10,12 @@ import {
|
|
|
10
10
|
ThreadCapabilities,
|
|
11
11
|
ThreadOperation,
|
|
12
12
|
meta
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-2FIHSX35.mjs";
|
|
14
14
|
|
|
15
15
|
// src/components/Call/Call.tsx
|
|
16
16
|
import { useAtomValue as useAtomValue3 } from "@effect-atom/atom-react";
|
|
17
17
|
import React9 from "react";
|
|
18
|
-
import { useCapability as useCapability3 } from "@dxos/app-framework/
|
|
18
|
+
import { useCapability as useCapability3 } from "@dxos/app-framework/ui";
|
|
19
19
|
|
|
20
20
|
// src/components/Media/AudioStream.tsx
|
|
21
21
|
import React, { useEffect, useRef } from "react";
|
|
@@ -104,7 +104,7 @@ VideoObject.displayName = "VideoObject";
|
|
|
104
104
|
// src/components/Participant/Participant.tsx
|
|
105
105
|
import { useAtomValue } from "@effect-atom/atom-react";
|
|
106
106
|
import React6, { memo as memo2, useMemo as useMemo2 } from "react";
|
|
107
|
-
import { useCapability } from "@dxos/app-framework/
|
|
107
|
+
import { useCapability } from "@dxos/app-framework/ui";
|
|
108
108
|
|
|
109
109
|
// src/components/ResponsiveGrid/ResponsiveContainer.tsx
|
|
110
110
|
import React3 from "react";
|
|
@@ -534,7 +534,8 @@ var ParticipantGrid = ({ classNames, self, users, fullscreen, debug }) => {
|
|
|
534
534
|
// src/components/Call/Toolbar.tsx
|
|
535
535
|
import { useAtomValue as useAtomValue2 } from "@effect-atom/atom-react";
|
|
536
536
|
import React8 from "react";
|
|
537
|
-
import {
|
|
537
|
+
import { useCapability as useCapability2 } from "@dxos/app-framework/ui";
|
|
538
|
+
import { useAppGraph } from "@dxos/app-toolkit/ui";
|
|
538
539
|
import { Obj } from "@dxos/echo";
|
|
539
540
|
import { Node, useActionRunner } from "@dxos/plugin-graph";
|
|
540
541
|
import { useActions, useNode } from "@dxos/plugin-graph";
|
|
@@ -930,7 +931,7 @@ var command = [
|
|
|
930
931
|
// src/components/MessageContainer.tsx
|
|
931
932
|
import { EditorView } from "@codemirror/view";
|
|
932
933
|
import React11, { forwardRef as forwardRef2, useCallback as useCallback2, useEffect as useEffect7, useRef as useRef3, useState as useState5 } from "react";
|
|
933
|
-
import { Surface } from "@dxos/app-framework/
|
|
934
|
+
import { Surface } from "@dxos/app-framework/ui";
|
|
934
935
|
import { Ref } from "@dxos/echo";
|
|
935
936
|
import { useObject } from "@dxos/echo-react";
|
|
936
937
|
import { PublicKey } from "@dxos/react-client";
|
|
@@ -1103,7 +1104,7 @@ var MessageBlockObjectTile = /* @__PURE__ */ forwardRef2(({ subject }, forwarded
|
|
|
1103
1104
|
return /* @__PURE__ */ React11.createElement(Card.Root, {
|
|
1104
1105
|
className: mx7("grid col-span-3 plb-1 pr-4", hoverableControls, hoverableFocusedWithinControls),
|
|
1105
1106
|
ref: forwardedRef
|
|
1106
|
-
}, /* @__PURE__ */ React11.createElement(Surface, {
|
|
1107
|
+
}, /* @__PURE__ */ React11.createElement(Surface.Surface, {
|
|
1107
1108
|
role: "card-content",
|
|
1108
1109
|
limit: 1,
|
|
1109
1110
|
data: {
|
|
@@ -1153,21 +1154,23 @@ var ChatContainer = ({ classNames, space, thread, context, current, autoFocusTex
|
|
|
1153
1154
|
if (!messageRef.current?.length) {
|
|
1154
1155
|
return false;
|
|
1155
1156
|
}
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1157
|
+
Obj2.change(thread, (t2) => {
|
|
1158
|
+
t2.messages.push(Ref2.make(Obj2.make(Message.Message, {
|
|
1159
|
+
created: (/* @__PURE__ */ new Date()).toISOString(),
|
|
1160
|
+
sender: {
|
|
1161
|
+
identityDid: identity.did
|
|
1162
|
+
},
|
|
1163
|
+
blocks: [
|
|
1164
|
+
{
|
|
1165
|
+
_tag: "text",
|
|
1166
|
+
text: messageRef.current
|
|
1167
|
+
}
|
|
1168
|
+
],
|
|
1169
|
+
properties: context ? {
|
|
1170
|
+
context: Ref2.make(context)
|
|
1171
|
+
} : void 0
|
|
1172
|
+
})));
|
|
1173
|
+
});
|
|
1171
1174
|
messageRef.current = "";
|
|
1172
1175
|
setAutoFocus(true);
|
|
1173
1176
|
scrollToEnd("smooth");
|
|
@@ -1183,9 +1186,9 @@ var ChatContainer = ({ classNames, space, thread, context, current, autoFocusTex
|
|
|
1183
1186
|
classNames
|
|
1184
1187
|
]
|
|
1185
1188
|
}, /* @__PURE__ */ React12.createElement(ScrollArea.Root, {
|
|
1186
|
-
|
|
1189
|
+
orientation: "vertical"
|
|
1187
1190
|
}, /* @__PURE__ */ React12.createElement(ScrollArea.Viewport, {
|
|
1188
|
-
classNames: "
|
|
1191
|
+
classNames: "col-span-2"
|
|
1189
1192
|
}, /* @__PURE__ */ React12.createElement("div", {
|
|
1190
1193
|
role: "none",
|
|
1191
1194
|
className: mx8(threadLayout, "place-self-end")
|
|
@@ -1197,7 +1200,7 @@ var ChatContainer = ({ classNames, space, thread, context, current, autoFocusTex
|
|
|
1197
1200
|
role: "none",
|
|
1198
1201
|
className: "bs-px -mbs-px",
|
|
1199
1202
|
ref: threadScrollRef
|
|
1200
|
-
}))
|
|
1203
|
+
}))), /* @__PURE__ */ React12.createElement(MessageTextbox, {
|
|
1201
1204
|
extensions,
|
|
1202
1205
|
autoFocus,
|
|
1203
1206
|
onSend: handleCreate,
|
|
@@ -1211,7 +1214,7 @@ var ChatContainer_default = ChatContainer;
|
|
|
1211
1214
|
// src/components/ChannelContainer.tsx
|
|
1212
1215
|
import { Atom, useAtomValue as useAtomValue4 } from "@effect-atom/atom-react";
|
|
1213
1216
|
import React13, { useCallback as useCallback3, useEffect as useEffect8, useMemo as useMemo6, useState as useState7 } from "react";
|
|
1214
|
-
import { useCapabilities, useCapability as useCapability4 } from "@dxos/app-framework/
|
|
1217
|
+
import { useCapabilities, useCapability as useCapability4 } from "@dxos/app-framework/ui";
|
|
1215
1218
|
import { Context } from "@dxos/context";
|
|
1216
1219
|
import { failUndefined } from "@dxos/debug";
|
|
1217
1220
|
import { Obj as Obj3 } from "@dxos/echo";
|
|
@@ -1220,7 +1223,7 @@ import { useClient } from "@dxos/react-client";
|
|
|
1220
1223
|
import { getSpace } from "@dxos/react-client/echo";
|
|
1221
1224
|
import { useIdentity as useIdentity3 } from "@dxos/react-client/halo";
|
|
1222
1225
|
import { ElevationProvider, Input as Input2, useTranslation as useTranslation6 } from "@dxos/react-ui";
|
|
1223
|
-
import {
|
|
1226
|
+
import { Settings } from "@dxos/react-ui-form";
|
|
1224
1227
|
import { MenuProvider, ToolbarMenu, createMenuAction, createMenuItemGroup, useMenuActions } from "@dxos/react-ui-menu";
|
|
1225
1228
|
import { useSoundEffect } from "@dxos/react-ui-sfx";
|
|
1226
1229
|
import { StackItem as StackItem2 } from "@dxos/react-ui-stack";
|
|
@@ -1240,7 +1243,7 @@ var ChannelContainer = ({ role, subject: channel, roomId: roomIdProp, fullscreen
|
|
|
1240
1243
|
useEffect8(() => {
|
|
1241
1244
|
const ctx = new Context(void 0, {
|
|
1242
1245
|
F: __dxlog_file3,
|
|
1243
|
-
L:
|
|
1246
|
+
L: 56
|
|
1244
1247
|
});
|
|
1245
1248
|
callManager.left.on(ctx, (roomId2) => {
|
|
1246
1249
|
extensions.forEach((extension) => {
|
|
@@ -1282,7 +1285,7 @@ var ChannelContainer = ({ role, subject: channel, roomId: roomIdProp, fullscreen
|
|
|
1282
1285
|
} catch (err) {
|
|
1283
1286
|
log2.catch(err, void 0, {
|
|
1284
1287
|
F: __dxlog_file3,
|
|
1285
|
-
L:
|
|
1288
|
+
L: 100,
|
|
1286
1289
|
S: void 0,
|
|
1287
1290
|
C: (f, a) => f(...a)
|
|
1288
1291
|
});
|
|
@@ -1299,7 +1302,7 @@ var ChannelContainer = ({ role, subject: channel, roomId: roomIdProp, fullscreen
|
|
|
1299
1302
|
} catch (err) {
|
|
1300
1303
|
log2.catch(err, void 0, {
|
|
1301
1304
|
F: __dxlog_file3,
|
|
1302
|
-
L:
|
|
1305
|
+
L: 112,
|
|
1303
1306
|
S: void 0,
|
|
1304
1307
|
C: (f, a) => f(...a)
|
|
1305
1308
|
});
|
|
@@ -1343,9 +1346,9 @@ var DisplayNameMissing = () => {
|
|
|
1343
1346
|
client,
|
|
1344
1347
|
displayName
|
|
1345
1348
|
]);
|
|
1346
|
-
return /* @__PURE__ */ React13.createElement(
|
|
1349
|
+
return /* @__PURE__ */ React13.createElement(Settings.Group, {
|
|
1347
1350
|
classNames: "p-4 place-content-center"
|
|
1348
|
-
}, /* @__PURE__ */ React13.createElement(
|
|
1351
|
+
}, /* @__PURE__ */ React13.createElement(Settings.ItemInput, {
|
|
1349
1352
|
title: t("display name label"),
|
|
1350
1353
|
description: t("display name description")
|
|
1351
1354
|
}, /* @__PURE__ */ React13.createElement(Input2.TextInput, {
|
|
@@ -1353,7 +1356,7 @@ var DisplayNameMissing = () => {
|
|
|
1353
1356
|
onChange: handleChange,
|
|
1354
1357
|
placeholder: t("display name input placeholder"),
|
|
1355
1358
|
classNames: "md:min-is-64"
|
|
1356
|
-
})), /* @__PURE__ */ React13.createElement(
|
|
1359
|
+
})), /* @__PURE__ */ React13.createElement(Settings.GroupButton, {
|
|
1357
1360
|
disabled: !displayName,
|
|
1358
1361
|
onClick: handleSave
|
|
1359
1362
|
}, t("set display name label")));
|
|
@@ -1406,7 +1409,7 @@ var ChannelToolbar = ({ attendableId, role, onJoinCall }) => {
|
|
|
1406
1409
|
// src/components/CallSidebar.tsx
|
|
1407
1410
|
import { useAtomValue as useAtomValue5 } from "@effect-atom/atom-react";
|
|
1408
1411
|
import React14 from "react";
|
|
1409
|
-
import { useCapability as useCapability5 } from "@dxos/app-framework/
|
|
1412
|
+
import { useCapability as useCapability5 } from "@dxos/app-framework/ui";
|
|
1410
1413
|
var CallSidebar = () => {
|
|
1411
1414
|
const call = useCapability5(ThreadCapabilities.CallManager);
|
|
1412
1415
|
const roomId = useAtomValue5(call.roomIdAtom);
|
|
@@ -1419,14 +1422,15 @@ var CallSidebar = () => {
|
|
|
1419
1422
|
// src/components/ThreadCompanion.tsx
|
|
1420
1423
|
import { useAtomValue as useAtomValue6 } from "@effect-atom/atom-react";
|
|
1421
1424
|
import React18, { useCallback as useCallback5, useMemo as useMemo8 } from "react";
|
|
1422
|
-
import {
|
|
1423
|
-
import { useCapabilities as useCapabilities2, useCapability as useCapability6, useOperationInvoker } from "@dxos/app-framework/
|
|
1425
|
+
import { Capabilities } from "@dxos/app-framework";
|
|
1426
|
+
import { useCapabilities as useCapabilities2, useCapability as useCapability6, useOperationInvoker } from "@dxos/app-framework/ui";
|
|
1427
|
+
import { AppCapabilities, CollaborationOperation, LayoutOperation } from "@dxos/app-toolkit";
|
|
1424
1428
|
import { Filter, Obj as Obj6, Query, Relation as Relation3 } from "@dxos/echo";
|
|
1425
1429
|
import { Ref as Ref3, useQuery } from "@dxos/react-client/echo";
|
|
1426
1430
|
import { useIdentity as useIdentity5 } from "@dxos/react-client/halo";
|
|
1427
1431
|
import { useTranslation as useTranslation10 } from "@dxos/react-ui";
|
|
1432
|
+
import { Layout } from "@dxos/react-ui";
|
|
1428
1433
|
import { useAttended } from "@dxos/react-ui-attention";
|
|
1429
|
-
import { Layout } from "@dxos/react-ui-mosaic";
|
|
1430
1434
|
import { Tabs } from "@dxos/react-ui-tabs";
|
|
1431
1435
|
import { AnchoredTo, Thread } from "@dxos/types";
|
|
1432
1436
|
import { mx as mx10 } from "@dxos/ui-theme";
|
|
@@ -1621,10 +1625,10 @@ var CommentsContainer = ({ anchors, currentId, showResolvedThreads, ...props })
|
|
|
1621
1625
|
// src/components/ThreadSettings.tsx
|
|
1622
1626
|
import React17 from "react";
|
|
1623
1627
|
import { useTranslation as useTranslation9 } from "@dxos/react-ui";
|
|
1624
|
-
import {
|
|
1628
|
+
import { Settings as Settings2 } from "@dxos/react-ui-form";
|
|
1625
1629
|
var ThreadSettings = ({ settings: _settings }) => {
|
|
1626
1630
|
const { t: _t } = useTranslation9(meta.id);
|
|
1627
|
-
return /* @__PURE__ */ React17.createElement(
|
|
1631
|
+
return /* @__PURE__ */ React17.createElement(Settings2.Root, null);
|
|
1628
1632
|
};
|
|
1629
1633
|
|
|
1630
1634
|
// src/components/ThreadCompanion.tsx
|
|
@@ -1636,7 +1640,7 @@ var ThreadCompanion = ({ subject }) => {
|
|
|
1636
1640
|
const { invokePromise } = useOperationInvoker();
|
|
1637
1641
|
const identity = useIdentity5();
|
|
1638
1642
|
const subjectId = Obj6.getDXN(subject).toString();
|
|
1639
|
-
const registry = useCapability6(
|
|
1643
|
+
const registry = useCapability6(Capabilities.AtomRegistry);
|
|
1640
1644
|
const stateAtom = useCapability6(ThreadCapabilities.State);
|
|
1641
1645
|
const viewStoreAtom = useCapability6(ThreadCapabilities.ViewState);
|
|
1642
1646
|
const state = useAtomValue6(stateAtom);
|
|
@@ -1673,7 +1677,7 @@ var ThreadCompanion = ({ subject }) => {
|
|
|
1673
1677
|
viewStoreAtom,
|
|
1674
1678
|
subjectId
|
|
1675
1679
|
]);
|
|
1676
|
-
const anchorSorts = useCapabilities2(
|
|
1680
|
+
const anchorSorts = useCapabilities2(AppCapabilities.AnchorSort);
|
|
1677
1681
|
const sort = useMemo8(() => anchorSorts.find(({ key }) => key === Obj6.getTypename(subject))?.sort, [
|
|
1678
1682
|
anchorSorts,
|
|
1679
1683
|
subject
|
|
@@ -1690,7 +1694,7 @@ var ThreadCompanion = ({ subject }) => {
|
|
|
1690
1694
|
...registry.get(stateAtom),
|
|
1691
1695
|
current: threadId
|
|
1692
1696
|
});
|
|
1693
|
-
void invokePromise(
|
|
1697
|
+
void invokePromise(LayoutOperation.ScrollIntoView, {
|
|
1694
1698
|
subject: Obj6.getDXN(subject).toString(),
|
|
1695
1699
|
cursor: anchor.anchor,
|
|
1696
1700
|
ref: threadId
|
|
@@ -1752,7 +1756,7 @@ var ThreadCompanion = ({ subject }) => {
|
|
|
1752
1756
|
if (!proposal || !anchor.anchor) {
|
|
1753
1757
|
return;
|
|
1754
1758
|
}
|
|
1755
|
-
await invokePromise(
|
|
1759
|
+
await invokePromise(CollaborationOperation.AcceptProposal, {
|
|
1756
1760
|
subject,
|
|
1757
1761
|
anchor: anchor.anchor,
|
|
1758
1762
|
proposal
|
|
@@ -1810,4 +1814,4 @@ export {
|
|
|
1810
1814
|
ThreadCompanion,
|
|
1811
1815
|
ThreadSettings
|
|
1812
1816
|
};
|
|
1813
|
-
//# sourceMappingURL=chunk-
|
|
1817
|
+
//# sourceMappingURL=chunk-4EUEMHNI.mjs.map
|