@dxos/plugin-thread 0.8.2 → 0.8.3-main.7f5a14c
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-LGYSQMC7.mjs → ChannelContainer-KWXUKR5Q.mjs} +4 -4
- package/dist/lib/browser/{ChatContainer-JWRI73OG.mjs → ChatContainer-RSOKYAMK.mjs} +2 -2
- package/dist/lib/browser/{app-graph-builder-K3CFBN7V.mjs → app-graph-builder-CBWNZCXB.mjs} +10 -10
- package/dist/lib/browser/app-graph-builder-CBWNZCXB.mjs.map +7 -0
- package/dist/lib/browser/{chunk-KMVGJG23.mjs → chunk-3EYX6CV7.mjs} +10 -9
- package/dist/lib/browser/chunk-3EYX6CV7.mjs.map +7 -0
- package/dist/lib/browser/{chunk-5PGLGDIP.mjs → chunk-5IRYNA5K.mjs} +6 -6
- package/dist/lib/browser/chunk-5IRYNA5K.mjs.map +7 -0
- package/dist/lib/browser/chunk-FWBJHKRW.mjs +21 -0
- package/dist/lib/browser/{chunk-G3TS64FP.mjs → chunk-TAFSCSUR.mjs} +4 -4
- package/dist/lib/browser/chunk-TAFSCSUR.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +4 -4
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-YUYZCTLF.mjs → intent-resolver-I37YU7K3.mjs} +13 -12
- package/dist/lib/browser/intent-resolver-I37YU7K3.mjs.map +7 -0
- package/dist/lib/browser/{markdown-4EC3OCF2.mjs → markdown-LS3XO2KB.mjs} +5 -4
- package/dist/lib/browser/markdown-LS3XO2KB.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-root-EECCWHCW.mjs → react-root-KNCKPHGS.mjs} +5 -5
- package/dist/lib/browser/{react-surface-5QLZAFDL.mjs → react-surface-ASWIBD7H.mjs} +11 -11
- package/dist/lib/browser/react-surface-ASWIBD7H.mjs.map +7 -0
- package/dist/lib/browser/{settings-KVBQQSO5.mjs → settings-ZUY7OX24.mjs} +3 -3
- package/dist/lib/browser/settings-ZUY7OX24.mjs.map +7 -0
- package/dist/lib/node/{ChannelContainer-5EKNEH56.cjs → ChannelContainer-MA5CFESJ.cjs} +9 -9
- package/dist/lib/node/{ChannelContainer-5EKNEH56.cjs.map → ChannelContainer-MA5CFESJ.cjs.map} +2 -2
- package/dist/lib/node/{ChatContainer-EE3FPSYO.cjs → ChatContainer-GCOM3M56.cjs} +8 -8
- package/dist/lib/node/{ChatContainer-EE3FPSYO.cjs.map → ChatContainer-GCOM3M56.cjs.map} +2 -2
- package/dist/lib/node/{app-graph-builder-IRE3GYKE.cjs → app-graph-builder-K5OAVYI6.cjs} +19 -19
- package/dist/lib/node/app-graph-builder-K5OAVYI6.cjs.map +7 -0
- package/dist/lib/node/{chunk-U7NOIXN6.cjs → chunk-3YYSLZE4.cjs} +10 -10
- package/dist/lib/node/{chunk-4B3PPXA6.cjs → chunk-E3WBZTTI.cjs} +12 -12
- package/dist/lib/node/chunk-E3WBZTTI.cjs.map +7 -0
- package/dist/lib/node/{chunk-6B3M6XRE.cjs → chunk-U4SZUERU.cjs} +8 -8
- package/dist/lib/node/chunk-U4SZUERU.cjs.map +7 -0
- package/dist/lib/node/{chunk-JLHENFGK.cjs → chunk-WCQKISL5.cjs} +32 -31
- package/dist/lib/node/chunk-WCQKISL5.cjs.map +7 -0
- package/dist/lib/node/index.cjs +11 -11
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/{intent-resolver-MZ3HADNY.cjs → intent-resolver-2TX6HSOL.cjs} +29 -28
- package/dist/lib/node/intent-resolver-2TX6HSOL.cjs.map +7 -0
- package/dist/lib/node/{markdown-NJDPXIKD.cjs → markdown-GNFW2XDO.cjs} +21 -20
- package/dist/lib/node/markdown-GNFW2XDO.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-root-IAYQ2DBO.cjs → react-root-BKOXG5AC.cjs} +9 -9
- package/dist/lib/node/{react-surface-AVC5VVIS.cjs → react-surface-Q5DWX3UO.cjs} +23 -23
- package/dist/lib/node/react-surface-Q5DWX3UO.cjs.map +7 -0
- package/dist/lib/node/{settings-H45P5YO2.cjs → settings-5O5V2NOE.cjs} +5 -5
- package/dist/lib/node/settings-5O5V2NOE.cjs.map +7 -0
- package/dist/lib/node-esm/{ChannelContainer-KFS2RWWW.mjs → ChannelContainer-VGVEAUAQ.mjs} +4 -4
- package/dist/lib/node-esm/{ChatContainer-UJYPQMLV.mjs → ChatContainer-F6CSADV7.mjs} +2 -2
- package/dist/lib/node-esm/{app-graph-builder-I5VMPLE4.mjs → app-graph-builder-UWJQE534.mjs} +10 -10
- package/dist/lib/node-esm/app-graph-builder-UWJQE534.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-MNJ3V4XM.mjs → chunk-6EGLDARC.mjs} +10 -9
- package/dist/lib/node-esm/chunk-6EGLDARC.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-ODUB4GAB.mjs → chunk-EHDXOE5R.mjs} +7 -7
- package/dist/lib/node-esm/{chunk-X6AUQDTE.mjs → chunk-KP2JBSWF.mjs} +6 -6
- package/dist/lib/node-esm/chunk-KP2JBSWF.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-POKXRTII.mjs → chunk-P6RLFCNT.mjs} +4 -4
- package/dist/lib/node-esm/chunk-P6RLFCNT.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +4 -4
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-CU22OPAH.mjs → intent-resolver-FHRK77IS.mjs} +13 -12
- package/dist/lib/node-esm/intent-resolver-FHRK77IS.mjs.map +7 -0
- package/dist/lib/node-esm/{markdown-HRGGO7IA.mjs → markdown-HBGB3UPJ.mjs} +5 -4
- package/dist/lib/node-esm/markdown-HBGB3UPJ.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-NQMUEI6Z.mjs → react-root-UPDDCRBV.mjs} +5 -5
- package/dist/lib/node-esm/{react-surface-Z4X5VLMY.mjs → react-surface-LU3CZDC4.mjs} +11 -11
- package/dist/lib/node-esm/react-surface-LU3CZDC4.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-IJGUOU3F.mjs → settings-KFEFSAYG.mjs} +3 -3
- package/dist/lib/node-esm/settings-KFEFSAYG.mjs.map +7 -0
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.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/Comments.stories.d.ts.map +1 -1
- package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
- package/dist/types/src/components/ThreadComplementary.d.ts.map +1 -1
- package/dist/types/src/components/testing.d.ts +2 -103
- package/dist/types/src/components/testing.d.ts.map +1 -1
- package/dist/types/src/extensions/threads.d.ts.map +1 -1
- package/package.json +42 -42
- package/src/ThreadPlugin.tsx +4 -4
- package/src/capabilities/app-graph-builder.ts +9 -9
- package/src/capabilities/intent-resolver.ts +9 -8
- package/src/capabilities/react-surface.tsx +7 -7
- package/src/capabilities/settings.ts +7 -2
- package/src/components/Call/Toolbar.tsx +2 -2
- package/src/components/Chat.stories.tsx +4 -4
- package/src/components/ChatContainer.tsx +6 -6
- package/src/components/Comments.stories.tsx +6 -5
- package/src/components/MessageContainer.tsx +20 -20
- package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +2 -2
- package/src/components/ThreadComplementary.tsx +9 -4
- package/src/components/testing.ts +5 -5
- package/src/extensions/threads.ts +4 -3
- package/src/testing/stories.ts +3 -3
- package/dist/lib/browser/app-graph-builder-K3CFBN7V.mjs.map +0 -7
- package/dist/lib/browser/chunk-5PGLGDIP.mjs.map +0 -7
- package/dist/lib/browser/chunk-CF2MXRCH.mjs +0 -21
- package/dist/lib/browser/chunk-G3TS64FP.mjs.map +0 -7
- package/dist/lib/browser/chunk-KMVGJG23.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-YUYZCTLF.mjs.map +0 -7
- package/dist/lib/browser/markdown-4EC3OCF2.mjs.map +0 -7
- package/dist/lib/browser/react-surface-5QLZAFDL.mjs.map +0 -7
- package/dist/lib/browser/settings-KVBQQSO5.mjs.map +0 -7
- package/dist/lib/node/app-graph-builder-IRE3GYKE.cjs.map +0 -7
- package/dist/lib/node/chunk-4B3PPXA6.cjs.map +0 -7
- package/dist/lib/node/chunk-6B3M6XRE.cjs.map +0 -7
- package/dist/lib/node/chunk-JLHENFGK.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-MZ3HADNY.cjs.map +0 -7
- package/dist/lib/node/markdown-NJDPXIKD.cjs.map +0 -7
- package/dist/lib/node/react-surface-AVC5VVIS.cjs.map +0 -7
- package/dist/lib/node/settings-H45P5YO2.cjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-I5VMPLE4.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-MNJ3V4XM.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-POKXRTII.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-X6AUQDTE.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-CU22OPAH.mjs.map +0 -7
- package/dist/lib/node-esm/markdown-HRGGO7IA.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-Z4X5VLMY.mjs.map +0 -7
- package/dist/lib/node-esm/settings-IJGUOU3F.mjs.map +0 -7
- /package/dist/lib/browser/{ChannelContainer-LGYSQMC7.mjs.map → ChannelContainer-KWXUKR5Q.mjs.map} +0 -0
- /package/dist/lib/browser/{ChatContainer-JWRI73OG.mjs.map → ChatContainer-RSOKYAMK.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-CF2MXRCH.mjs.map → chunk-FWBJHKRW.mjs.map} +0 -0
- /package/dist/lib/browser/{react-root-EECCWHCW.mjs.map → react-root-KNCKPHGS.mjs.map} +0 -0
- /package/dist/lib/node/{chunk-U7NOIXN6.cjs.map → chunk-3YYSLZE4.cjs.map} +0 -0
- /package/dist/lib/node/{react-root-IAYQ2DBO.cjs.map → react-root-BKOXG5AC.cjs.map} +0 -0
- /package/dist/lib/node-esm/{ChannelContainer-KFS2RWWW.mjs.map → ChannelContainer-VGVEAUAQ.mjs.map} +0 -0
- /package/dist/lib/node-esm/{ChatContainer-UJYPQMLV.mjs.map → ChatContainer-F6CSADV7.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-ODUB4GAB.mjs.map → chunk-EHDXOE5R.mjs.map} +0 -0
- /package/dist/lib/node-esm/{react-root-NQMUEI6Z.mjs.map → react-root-UPDDCRBV.mjs.map} +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import "./chunk-
|
|
1
|
+
import "./chunk-3EYX6CV7.mjs";
|
|
2
2
|
import "./chunk-WDOQXTI2.mjs";
|
|
3
3
|
import {
|
|
4
4
|
Call
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-5IRYNA5K.mjs";
|
|
6
|
+
import "./chunk-FWBJHKRW.mjs";
|
|
7
7
|
import "./chunk-R5MDLUPC.mjs";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-TAFSCSUR.mjs";
|
|
9
9
|
import "./chunk-5P5BH5GE.mjs";
|
|
10
10
|
import "./chunk-JKQUJOTX.mjs";
|
|
11
11
|
import {
|
|
@@ -24,4 +24,4 @@ var react_root_default = () => {
|
|
|
24
24
|
export {
|
|
25
25
|
react_root_default as default
|
|
26
26
|
};
|
|
27
|
-
//# sourceMappingURL=react-root-
|
|
27
|
+
//# sourceMappingURL=react-root-KNCKPHGS.mjs.map
|
|
@@ -5,17 +5,17 @@ import {
|
|
|
5
5
|
ChatContainer,
|
|
6
6
|
ThreadComplementary,
|
|
7
7
|
ThreadSettings
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-3EYX6CV7.mjs";
|
|
9
9
|
import {
|
|
10
10
|
ChannelType,
|
|
11
11
|
ThreadType
|
|
12
12
|
} from "./chunk-WDOQXTI2.mjs";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-5IRYNA5K.mjs";
|
|
14
|
+
import "./chunk-FWBJHKRW.mjs";
|
|
15
15
|
import {
|
|
16
16
|
ThreadCapabilities
|
|
17
17
|
} from "./chunk-R5MDLUPC.mjs";
|
|
18
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-TAFSCSUR.mjs";
|
|
19
19
|
import "./chunk-5P5BH5GE.mjs";
|
|
20
20
|
import "./chunk-JKQUJOTX.mjs";
|
|
21
21
|
import {
|
|
@@ -25,14 +25,14 @@ import {
|
|
|
25
25
|
// packages/plugins/plugin-thread/src/capabilities/react-surface.tsx
|
|
26
26
|
import React from "react";
|
|
27
27
|
import { Capabilities, contributes, createSurface, useCapability } from "@dxos/app-framework";
|
|
28
|
-
import {
|
|
28
|
+
import { Obj } from "@dxos/echo";
|
|
29
29
|
import { SettingsStore } from "@dxos/local-storage";
|
|
30
|
-
import { getSpace
|
|
30
|
+
import { getSpace } from "@dxos/react-client/echo";
|
|
31
31
|
var react_surface_default = () => contributes(Capabilities.ReactSurface, [
|
|
32
32
|
createSurface({
|
|
33
33
|
id: `${THREAD_PLUGIN}/channel`,
|
|
34
34
|
role: "article",
|
|
35
|
-
filter: (data) =>
|
|
35
|
+
filter: (data) => Obj.instanceOf(ChannelType, data.subject),
|
|
36
36
|
component: ({ data: { subject: channel }, role }) => /* @__PURE__ */ React.createElement(ChannelContainer, {
|
|
37
37
|
channel,
|
|
38
38
|
role
|
|
@@ -41,7 +41,7 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
|
|
|
41
41
|
createSurface({
|
|
42
42
|
id: `${THREAD_PLUGIN}/chat-companion`,
|
|
43
43
|
role: "article",
|
|
44
|
-
filter: (data) =>
|
|
44
|
+
filter: (data) => Obj.instanceOf(ChannelType, data.companionTo) && data.subject === "chat",
|
|
45
45
|
component: ({ data: { companionTo: channel } }) => {
|
|
46
46
|
const space = getSpace(channel);
|
|
47
47
|
const thread = channel.defaultThread.target;
|
|
@@ -57,7 +57,7 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
|
|
|
57
57
|
createSurface({
|
|
58
58
|
id: `${THREAD_PLUGIN}/thread`,
|
|
59
59
|
role: "article",
|
|
60
|
-
filter: (data) =>
|
|
60
|
+
filter: (data) => Obj.instanceOf(ThreadType, data.subject),
|
|
61
61
|
component: ({ data: { subject: thread } }) => {
|
|
62
62
|
const space = getSpace(thread);
|
|
63
63
|
if (!space || !thread) {
|
|
@@ -72,7 +72,7 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
|
|
|
72
72
|
createSurface({
|
|
73
73
|
id: `${THREAD_PLUGIN}/comments`,
|
|
74
74
|
role: "article",
|
|
75
|
-
filter: (data) => data.subject === "comments" &&
|
|
75
|
+
filter: (data) => data.subject === "comments" && Obj.isObject(data.companionTo),
|
|
76
76
|
// TODO(wittjosiah): This isn't scrolling properly in a plank.
|
|
77
77
|
component: ({ data }) => /* @__PURE__ */ React.createElement(ThreadComplementary, {
|
|
78
78
|
subject: data.companionTo
|
|
@@ -105,4 +105,4 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
|
|
|
105
105
|
export {
|
|
106
106
|
react_surface_default as default
|
|
107
107
|
};
|
|
108
|
-
//# sourceMappingURL=react-surface-
|
|
108
|
+
//# sourceMappingURL=react-surface-ASWIBD7H.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/react-surface.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, createSurface, useCapability } from '@dxos/app-framework';\nimport { Obj, type Ref } from '@dxos/echo';\nimport { SettingsStore } from '@dxos/local-storage';\nimport { getSpace } from '@dxos/react-client/echo';\n\nimport { ThreadCapabilities } from './capabilities';\nimport {\n CallSidebar,\n CallDebugPanel,\n ChannelContainer,\n ThreadComplementary,\n ThreadSettings,\n ChatContainer,\n} from '../components';\nimport { THREAD_PLUGIN } from '../meta';\nimport { ChannelType, ThreadType, 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 } => Obj.instanceOf(ChannelType, data.subject),\n component: ({ data: { subject: channel }, role }) => <ChannelContainer channel={channel} role={role} />,\n }),\n createSurface({\n id: `${THREAD_PLUGIN}/chat-companion`,\n role: 'article',\n filter: (data): data is { companionTo: ChannelType; subject: 'chat' } =>\n Obj.instanceOf(ChannelType, data.companionTo) && data.subject === 'chat',\n component: ({ data: { companionTo: channel } }) => {\n const space = getSpace(channel);\n const thread = channel.defaultThread.target;\n if (!space || !thread) {\n return null;\n }\n\n return <ChatContainer thread={thread} space={space} />;\n },\n }),\n createSurface({\n id: `${THREAD_PLUGIN}/thread`,\n role: 'article',\n filter: (data): data is { subject: ThreadType } => Obj.instanceOf(ThreadType, data.subject),\n component: ({ data: { subject: thread } }) => {\n const space = getSpace(thread);\n if (!space || !thread) {\n return null;\n }\n\n return <ChatContainer thread={thread} space={space} />;\n },\n }),\n createSurface({\n id: `${THREAD_PLUGIN}/comments`,\n role: 'article',\n filter: (data): data is { companionTo: { threads: Ref.Ref<ThreadType>[] } } =>\n data.subject === 'comments' && Obj.isObject(data.companionTo),\n // TODO(wittjosiah): This isn't scrolling properly in a plank.\n component: ({ data }) => <ThreadComplementary subject={data.companionTo} />,\n }),\n createSurface({\n id: `${THREAD_PLUGIN}/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 createSurface({\n id: `${THREAD_PLUGIN}/assistant`,\n role: 'deck-companion--active-call',\n component: () => <CallSidebar />,\n }),\n createSurface({\n id: `${THREAD_PLUGIN}/devtools-overview`,\n role: 'devtools-overview',\n component: () => {\n const call = useCapability(ThreadCapabilities.CallManager);\n return <CallDebugPanel state={call.state} />;\n },\n }),\n ]);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,cAAcC,aAAaC,eAAeC,qBAAqB;AACxE,SAASC,WAAqB;AAC9B,SAASC,qBAAqB;AAC9B,SAASC,gBAAgB;AAczB,IAAA,wBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,cAAc;IACZC,IAAI,GAAGC,aAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAA2CC,IAAIC,WAAWC,aAAaH,KAAKI,OAAO;IAC5FC,WAAW,CAAC,EAAEL,MAAM,EAAEI,SAASE,QAAO,GAAIR,KAAI,MAAO,sBAAA,cAACS,kBAAAA;MAAiBD;MAAkBR;;EAC3F,CAAA;EACAH,cAAc;IACZC,IAAI,GAAGC,aAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SACPC,IAAIC,WAAWC,aAAaH,KAAKQ,WAAW,KAAKR,KAAKI,YAAY;IACpEC,WAAW,CAAC,EAAEL,MAAM,EAAEQ,aAAaF,QAAO,EAAE,MAAE;AAC5C,YAAMG,QAAQC,SAASJ,OAAAA;AACvB,YAAMK,SAASL,QAAQM,cAAcC;AACrC,UAAI,CAACJ,SAAS,CAACE,QAAQ;AACrB,eAAO;MACT;AAEA,aAAO,sBAAA,cAACG,eAAAA;QAAcH;QAAgBF;;IACxC;EACF,CAAA;EACAd,cAAc;IACZC,IAAI,GAAGC,aAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAA0CC,IAAIC,WAAWa,YAAYf,KAAKI,OAAO;IAC1FC,WAAW,CAAC,EAAEL,MAAM,EAAEI,SAASO,OAAM,EAAE,MAAE;AACvC,YAAMF,QAAQC,SAASC,MAAAA;AACvB,UAAI,CAACF,SAAS,CAACE,QAAQ;AACrB,eAAO;MACT;AAEA,aAAO,sBAAA,cAACG,eAAAA;QAAcH;QAAgBF;;IACxC;EACF,CAAA;EACAd,cAAc;IACZC,IAAI,GAAGC,aAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SACPA,KAAKI,YAAY,cAAcH,IAAIe,SAAShB,KAAKQ,WAAW;;IAE9DH,WAAW,CAAC,EAAEL,KAAI,MAAO,sBAAA,cAACiB,qBAAAA;MAAoBb,SAASJ,KAAKQ;;EAC9D,CAAA;EACAb,cAAc;IACZC,IAAI,GAAGC,aAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SACPA,KAAKI,mBAAmBc,iBAAiBlB,KAAKI,QAAQe,WAAWtB;IACnEQ,WAAW,CAAC,EAAEL,MAAM,EAAEI,QAAO,EAAE,MAAO,sBAAA,cAACgB,gBAAAA;MAAeC,UAAUjB,QAAQkB;;EAC1E,CAAA;EACA3B,cAAc;IACZC,IAAI,GAAGC,aAAAA;IACPC,MAAM;IACNO,WAAW,MAAM,sBAAA,cAACkB,aAAAA,IAAAA;EACpB,CAAA;EACA5B,cAAc;IACZC,IAAI,GAAGC,aAAAA;IACPC,MAAM;IACNO,WAAW,MAAA;AACT,YAAMmB,OAAOC,cAAcC,mBAAmBC,WAAW;AACzD,aAAO,sBAAA,cAACC,gBAAAA;QAAeC,OAAOL,KAAKK;;IACrC;EACF,CAAA;CACD;",
|
|
6
|
+
"names": ["React", "Capabilities", "contributes", "createSurface", "useCapability", "Obj", "SettingsStore", "getSpace", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "THREAD_PLUGIN", "role", "filter", "data", "Obj", "instanceOf", "ChannelType", "subject", "component", "channel", "ChannelContainer", "companionTo", "space", "getSpace", "thread", "defaultThread", "target", "ChatContainer", "ThreadType", "isObject", "ThreadComplementary", "SettingsStore", "prefix", "ThreadSettings", "settings", "value", "CallSidebar", "call", "useCapability", "ThreadCapabilities", "CallManager", "CallDebugPanel", "state"]
|
|
7
|
+
}
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
ThreadSettingsSchema
|
|
3
3
|
} from "./chunk-WDOQXTI2.mjs";
|
|
4
4
|
import {
|
|
5
|
-
|
|
5
|
+
meta
|
|
6
6
|
} from "./chunk-IIUTBDVB.mjs";
|
|
7
7
|
|
|
8
8
|
// packages/plugins/plugin-thread/src/capabilities/settings.ts
|
|
@@ -11,12 +11,12 @@ import { live } from "@dxos/live-object";
|
|
|
11
11
|
var settings_default = () => {
|
|
12
12
|
const settings = live({});
|
|
13
13
|
return contributes(Capabilities.Settings, {
|
|
14
|
+
prefix: meta.id,
|
|
14
15
|
schema: ThreadSettingsSchema,
|
|
15
|
-
prefix: THREAD_PLUGIN,
|
|
16
16
|
value: settings
|
|
17
17
|
});
|
|
18
18
|
};
|
|
19
19
|
export {
|
|
20
20
|
settings_default as default
|
|
21
21
|
};
|
|
22
|
-
//# sourceMappingURL=settings-
|
|
22
|
+
//# sourceMappingURL=settings-ZUY7OX24.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/settings.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { live } from '@dxos/live-object';\n\nimport { meta } from '../meta';\nimport { type ThreadSettingsProps, ThreadSettingsSchema } from '../types';\n\nexport default () => {\n const settings = live<ThreadSettingsProps>({});\n\n return contributes(Capabilities.Settings, {\n prefix: meta.id,\n schema: ThreadSettingsSchema,\n value: settings,\n });\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;AAIA,SAASA,cAAcC,mBAAmB;AAC1C,SAASC,YAAY;AAKrB,IAAA,mBAAe,MAAA;AACb,QAAMC,WAAWC,KAA0B,CAAC,CAAA;AAE5C,SAAOC,YAAYC,aAAaC,UAAU;IACxCC,QAAQC,KAAKC;IACbC,QAAQC;IACRC,OAAOV;EACT,CAAA;AACF;",
|
|
6
|
+
"names": ["Capabilities", "contributes", "live", "settings", "live", "contributes", "Capabilities", "Settings", "prefix", "meta", "id", "schema", "ThreadSettingsSchema", "value"]
|
|
7
|
+
}
|
|
@@ -16,16 +16,16 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
21
|
-
ChannelContainer: () =>
|
|
22
|
-
default: () =>
|
|
19
|
+
var ChannelContainer_MA5CFESJ_exports = {};
|
|
20
|
+
__export(ChannelContainer_MA5CFESJ_exports, {
|
|
21
|
+
ChannelContainer: () => import_chunk_U4SZUERU.ChannelContainer,
|
|
22
|
+
default: () => import_chunk_U4SZUERU.ChannelContainer_default
|
|
23
23
|
});
|
|
24
|
-
module.exports = __toCommonJS(
|
|
25
|
-
var
|
|
26
|
-
var
|
|
24
|
+
module.exports = __toCommonJS(ChannelContainer_MA5CFESJ_exports);
|
|
25
|
+
var import_chunk_U4SZUERU = require("./chunk-U4SZUERU.cjs");
|
|
26
|
+
var import_chunk_3YYSLZE4 = require("./chunk-3YYSLZE4.cjs");
|
|
27
27
|
var import_chunk_4YSNVPWU = require("./chunk-4YSNVPWU.cjs");
|
|
28
|
-
var
|
|
28
|
+
var import_chunk_E3WBZTTI = require("./chunk-E3WBZTTI.cjs");
|
|
29
29
|
var import_chunk_FUXJAVFZ = require("./chunk-FUXJAVFZ.cjs");
|
|
30
30
|
var import_chunk_LR5NENBE = require("./chunk-LR5NENBE.cjs");
|
|
31
31
|
var import_chunk_HLMCEE5K = require("./chunk-HLMCEE5K.cjs");
|
|
@@ -33,4 +33,4 @@ var import_chunk_HLMCEE5K = require("./chunk-HLMCEE5K.cjs");
|
|
|
33
33
|
0 && (module.exports = {
|
|
34
34
|
ChannelContainer
|
|
35
35
|
});
|
|
36
|
-
//# sourceMappingURL=ChannelContainer-
|
|
36
|
+
//# sourceMappingURL=ChannelContainer-MA5CFESJ.cjs.map
|
package/dist/lib/node/{ChannelContainer-5EKNEH56.cjs.map → ChannelContainer-MA5CFESJ.cjs.map}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["ChannelContainer-
|
|
4
|
-
"sourcesContent": ["import {\n ChannelContainer,\n ChannelContainer_default\n} from \"./chunk-
|
|
3
|
+
"sources": ["ChannelContainer-MA5CFESJ.cjs"],
|
|
4
|
+
"sourcesContent": ["import {\n ChannelContainer,\n ChannelContainer_default\n} from \"./chunk-U4SZUERU.cjs\";\nimport \"./chunk-3YYSLZE4.cjs\";\nimport \"./chunk-4YSNVPWU.cjs\";\nimport \"./chunk-E3WBZTTI.cjs\";\nimport \"./chunk-FUXJAVFZ.cjs\";\nimport \"./chunk-LR5NENBE.cjs\";\nimport \"./chunk-HLMCEE5K.cjs\";\nexport {\n ChannelContainer,\n ChannelContainer_default as default\n};\n//# sourceMappingURL=ChannelContainer-MA5CFESJ.cjs.map\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAGO;AACP,4BAAO;AACP,4BAAO;AACP,4BAAO;AACP,4BAAO;AACP,4BAAO;AACP,4BAAO;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -16,14 +16,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
21
|
-
ChatContainer: () =>
|
|
22
|
-
ChatHeading: () =>
|
|
23
|
-
default: () =>
|
|
19
|
+
var ChatContainer_GCOM3M56_exports = {};
|
|
20
|
+
__export(ChatContainer_GCOM3M56_exports, {
|
|
21
|
+
ChatContainer: () => import_chunk_E3WBZTTI.ChatContainer,
|
|
22
|
+
ChatHeading: () => import_chunk_E3WBZTTI.ChatHeading,
|
|
23
|
+
default: () => import_chunk_E3WBZTTI.ChatContainer_default
|
|
24
24
|
});
|
|
25
|
-
module.exports = __toCommonJS(
|
|
26
|
-
var
|
|
25
|
+
module.exports = __toCommonJS(ChatContainer_GCOM3M56_exports);
|
|
26
|
+
var import_chunk_E3WBZTTI = require("./chunk-E3WBZTTI.cjs");
|
|
27
27
|
var import_chunk_FUXJAVFZ = require("./chunk-FUXJAVFZ.cjs");
|
|
28
28
|
var import_chunk_LR5NENBE = require("./chunk-LR5NENBE.cjs");
|
|
29
29
|
var import_chunk_HLMCEE5K = require("./chunk-HLMCEE5K.cjs");
|
|
@@ -32,4 +32,4 @@ var import_chunk_HLMCEE5K = require("./chunk-HLMCEE5K.cjs");
|
|
|
32
32
|
ChatContainer,
|
|
33
33
|
ChatHeading
|
|
34
34
|
});
|
|
35
|
-
//# sourceMappingURL=ChatContainer-
|
|
35
|
+
//# sourceMappingURL=ChatContainer-GCOM3M56.cjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["ChatContainer-
|
|
4
|
-
"sourcesContent": ["import {\n ChatContainer,\n ChatContainer_default,\n ChatHeading\n} from \"./chunk-
|
|
3
|
+
"sources": ["ChatContainer-GCOM3M56.cjs"],
|
|
4
|
+
"sourcesContent": ["import {\n ChatContainer,\n ChatContainer_default,\n ChatHeading\n} from \"./chunk-E3WBZTTI.cjs\";\nimport \"./chunk-FUXJAVFZ.cjs\";\nimport \"./chunk-LR5NENBE.cjs\";\nimport \"./chunk-HLMCEE5K.cjs\";\nexport {\n ChatContainer,\n ChatHeading,\n ChatContainer_default as default\n};\n//# sourceMappingURL=ChatContainer-GCOM3M56.cjs.map\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAIO;AACP,4BAAO;AACP,4BAAO;AACP,4BAAO;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -16,11 +16,11 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
19
|
+
var app_graph_builder_K5OAVYI6_exports = {};
|
|
20
|
+
__export(app_graph_builder_K5OAVYI6_exports, {
|
|
21
21
|
default: () => app_graph_builder_default
|
|
22
22
|
});
|
|
23
|
-
module.exports = __toCommonJS(
|
|
23
|
+
module.exports = __toCommonJS(app_graph_builder_K5OAVYI6_exports);
|
|
24
24
|
var import_chunk_TKHJVC2C = require("./chunk-TKHJVC2C.cjs");
|
|
25
25
|
var import_chunk_4YSNVPWU = require("./chunk-4YSNVPWU.cjs");
|
|
26
26
|
var import_chunk_LR5NENBE = require("./chunk-LR5NENBE.cjs");
|
|
@@ -28,11 +28,11 @@ var import_chunk_HLMCEE5K = require("./chunk-HLMCEE5K.cjs");
|
|
|
28
28
|
var import_rx_react = require("@effect-rx/rx-react");
|
|
29
29
|
var import_effect = require("effect");
|
|
30
30
|
var import_app_framework = require("@dxos/app-framework");
|
|
31
|
-
var
|
|
31
|
+
var import_echo = require("@dxos/echo");
|
|
32
32
|
var import_plugin_attention = require("@dxos/plugin-attention");
|
|
33
33
|
var import_types = require("@dxos/plugin-deck/types");
|
|
34
34
|
var import_plugin_graph = require("@dxos/plugin-graph");
|
|
35
|
-
var
|
|
35
|
+
var import_echo2 = require("@dxos/react-client/echo");
|
|
36
36
|
var app_graph_builder_default = (context) => {
|
|
37
37
|
const resolve = (typename) => context.getCapabilities(import_app_framework.Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
|
|
38
38
|
return (0, import_app_framework.contributes)(import_app_framework.Capabilities.AppGraphBuilder, [
|
|
@@ -66,15 +66,15 @@ var app_graph_builder_default = (context) => {
|
|
|
66
66
|
id: `${import_chunk_HLMCEE5K.THREAD_PLUGIN}/channel-chat-companion`,
|
|
67
67
|
connector: (node) => {
|
|
68
68
|
return import_rx_react.Rx.make((get) => {
|
|
69
|
-
return (0, import_effect.pipe)(get(node), import_effect.Option.flatMap((node2) =>
|
|
69
|
+
return (0, import_effect.pipe)(get(node), import_effect.Option.flatMap((node2) => import_echo.Obj.instanceOf(import_chunk_TKHJVC2C.ChannelType, node2.data) ? import_effect.Option.some(node2.data) : import_effect.Option.none()), import_effect.Option.map((channel) => {
|
|
70
70
|
const callManager = context.getCapability(import_chunk_4YSNVPWU.ThreadCapabilities.CallManager);
|
|
71
|
-
const joined = get((0, import_plugin_graph.rxFromSignal)(() => callManager.joined && callManager.roomId === (0,
|
|
71
|
+
const joined = get((0, import_plugin_graph.rxFromSignal)(() => callManager.joined && callManager.roomId === (0, import_echo2.fullyQualifiedId)(channel)));
|
|
72
72
|
if (!joined) {
|
|
73
73
|
return [];
|
|
74
74
|
}
|
|
75
75
|
return [
|
|
76
76
|
{
|
|
77
|
-
id: `${(0,
|
|
77
|
+
id: `${(0, import_echo2.fullyQualifiedId)(channel)}${import_types.ATTENDABLE_PATH_SEPARATOR}chat`,
|
|
78
78
|
type: import_types.PLANK_COMPANION_TYPE,
|
|
79
79
|
data: "chat",
|
|
80
80
|
properties: {
|
|
@@ -97,10 +97,10 @@ var app_graph_builder_default = (context) => {
|
|
|
97
97
|
(0, import_plugin_graph.createExtension)({
|
|
98
98
|
id: `${import_chunk_HLMCEE5K.meta.id}/comments-companion`,
|
|
99
99
|
connector: (node) => import_rx_react.Rx.make((get) => (0, import_effect.pipe)(get(node), import_effect.Option.flatMap((node2) => {
|
|
100
|
-
if (!
|
|
100
|
+
if (!import_echo.Obj.isObject(node2.data) || import_echo.Obj.instanceOf(import_chunk_TKHJVC2C.ChannelType, node2.data)) {
|
|
101
101
|
return import_effect.Option.none();
|
|
102
102
|
}
|
|
103
|
-
const metadata = resolve(
|
|
103
|
+
const metadata = resolve(import_echo.Obj.getTypename(node2.data));
|
|
104
104
|
return typeof metadata.comments === "string" ? import_effect.Option.some(node2) : import_effect.Option.none();
|
|
105
105
|
}), import_effect.Option.map((node2) => [
|
|
106
106
|
{
|
|
@@ -127,29 +127,29 @@ var app_graph_builder_default = (context) => {
|
|
|
127
127
|
(0, import_plugin_graph.createExtension)({
|
|
128
128
|
id: `${import_chunk_HLMCEE5K.meta.id}/comment-toolbar`,
|
|
129
129
|
actions: (node) => import_rx_react.Rx.make((get) => (0, import_effect.pipe)(get(node), import_effect.Option.flatMap((node2) => {
|
|
130
|
-
if (!
|
|
130
|
+
if (!import_echo.Obj.isObject(node2.data) || import_echo.Obj.instanceOf(import_chunk_TKHJVC2C.ChannelType, node2.data)) {
|
|
131
131
|
return import_effect.Option.none();
|
|
132
132
|
}
|
|
133
|
-
const metadata = resolve(
|
|
133
|
+
const metadata = resolve(import_echo.Obj.getTypename(node2.data));
|
|
134
134
|
return typeof metadata.comments === "string" ? import_effect.Option.some(node2.data) : import_effect.Option.none();
|
|
135
135
|
}), import_effect.Option.map((object) => {
|
|
136
136
|
const selectionManager = context.getCapability(import_plugin_attention.AttentionCapabilities.Selection);
|
|
137
137
|
const toolbar = get(context.capabilities(import_chunk_4YSNVPWU.ThreadCapabilities.State))[0]?.state.toolbar ?? {};
|
|
138
138
|
const disabled = get((0, import_plugin_graph.rxFromSignal)(() => {
|
|
139
|
-
const metadata = resolve(
|
|
140
|
-
const selection = selectionManager.getSelection((0,
|
|
139
|
+
const metadata = resolve(import_echo.Obj.getTypename(object));
|
|
140
|
+
const selection = selectionManager.getSelection((0, import_echo2.fullyQualifiedId)(object), metadata.selectionMode);
|
|
141
141
|
const anchor = (0, import_chunk_LR5NENBE.getAnchor)(selection);
|
|
142
142
|
const invalidSelection = !anchor;
|
|
143
|
-
const overlappingComment = toolbar[(0,
|
|
143
|
+
const overlappingComment = toolbar[(0, import_echo2.fullyQualifiedId)(object)];
|
|
144
144
|
return metadata.comments === "anchored" && invalidSelection || overlappingComment;
|
|
145
145
|
}));
|
|
146
146
|
return [
|
|
147
147
|
{
|
|
148
|
-
id: `${(0,
|
|
148
|
+
id: `${(0, import_echo2.fullyQualifiedId)(object)}/comment`,
|
|
149
149
|
data: () => {
|
|
150
150
|
const { dispatchPromise: dispatch } = context.getCapability(import_app_framework.Capabilities.IntentDispatcher);
|
|
151
|
-
const metadata = resolve(
|
|
152
|
-
const selection = selectionManager.getSelection((0,
|
|
151
|
+
const metadata = resolve(import_echo.Obj.getTypename(object));
|
|
152
|
+
const selection = selectionManager.getSelection((0, import_echo2.fullyQualifiedId)(object));
|
|
153
153
|
const anchor = metadata.comments === "anchored" ? (0, import_chunk_LR5NENBE.getAnchor)(selection) : Date.now().toString();
|
|
154
154
|
const name = metadata.getAnchorLabel?.(object, anchor);
|
|
155
155
|
void dispatch((0, import_app_framework.createIntent)(import_chunk_TKHJVC2C.ThreadAction.Create, {
|
|
@@ -176,4 +176,4 @@ var app_graph_builder_default = (context) => {
|
|
|
176
176
|
})
|
|
177
177
|
]);
|
|
178
178
|
};
|
|
179
|
-
//# sourceMappingURL=app-graph-builder-
|
|
179
|
+
//# sourceMappingURL=app-graph-builder-K5OAVYI6.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/app-graph-builder.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport { Option, pipe } from 'effect';\n\nimport { Capabilities, contributes, createIntent, type PluginContext } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { AttentionCapabilities } from '@dxos/plugin-attention';\nimport { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR, DECK_COMPANION_TYPE } from '@dxos/plugin-deck/types';\nimport { createExtension, ROOT_ID, rxFromSignal } from '@dxos/plugin-graph';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\n\nimport { ThreadCapabilities } from './capabilities';\nimport { meta, THREAD_PLUGIN } from '../meta';\nimport { ChannelType, ThreadAction } from '../types';\nimport { getAnchor } from '../util';\n\nexport default (context: PluginContext) => {\n const resolve = (typename: string) =>\n context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};\n\n return contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: `${THREAD_PLUGIN}/active-call`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map((node) => {\n const [call] = get(context.capabilities(ThreadCapabilities.CallManager));\n return get(\n rxFromSignal(() =>\n call?.joined\n ? [\n {\n id: `${node.id}${ATTENDABLE_PATH_SEPARATOR}active-call`,\n type: DECK_COMPANION_TYPE,\n data: null,\n properties: {\n label: ['call panel label', { ns: THREAD_PLUGIN }],\n icon: 'ph--video-conference--regular',\n position: 'hoist',\n disposition: 'hidden',\n },\n },\n ]\n : [],\n ),\n );\n }),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n // TODO(wittjosiah): The channel shouldn't become the companion during a call.\n // Alternative: the call/meeting/thread should be a child node of the channel and that should be opened.\n createExtension({\n id: `${THREAD_PLUGIN}/channel-chat-companion`,\n connector: (node) => {\n return Rx.make((get) => {\n return pipe(\n get(node),\n Option.flatMap((node) => (Obj.instanceOf(ChannelType, node.data) ? Option.some(node.data) : Option.none())),\n Option.map((channel) => {\n const callManager = context.getCapability(ThreadCapabilities.CallManager);\n const joined = get(\n rxFromSignal(() => callManager.joined && callManager.roomId === fullyQualifiedId(channel)),\n );\n if (!joined) {\n return [];\n }\n\n return [\n {\n id: `${fullyQualifiedId(channel)}${ATTENDABLE_PATH_SEPARATOR}chat`,\n type: PLANK_COMPANION_TYPE,\n data: 'chat',\n properties: {\n label: ['channel companion label', { ns: THREAD_PLUGIN }],\n icon: 'ph--hash--regular',\n position: 'hoist',\n disposition: 'hidden',\n },\n },\n ];\n }),\n Option.getOrElse(() => []),\n );\n });\n },\n }),\n createExtension({\n id: `${meta.id}/comments-companion`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => {\n if (!Obj.isObject(node.data) || Obj.instanceOf(ChannelType, node.data)) {\n return Option.none();\n }\n const metadata = resolve(Obj.getTypename(node.data)!);\n return typeof metadata.comments === 'string' ? Option.some(node) : Option.none();\n }),\n Option.map((node) => [\n {\n id: [node.id, 'comments'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'comments',\n properties: {\n label: ['comments label', { ns: meta.id }],\n icon: 'ph--chat-text--regular',\n disposition: 'hidden',\n position: 'hoist',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n createExtension({\n id: `${meta.id}/comment-toolbar`,\n actions: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => {\n if (!Obj.isObject(node.data) || Obj.instanceOf(ChannelType, node.data)) {\n return Option.none();\n }\n const metadata = resolve(Obj.getTypename(node.data)!);\n return typeof metadata.comments === 'string' ? Option.some(node.data) : Option.none();\n }),\n Option.map((object) => {\n const selectionManager = context.getCapability(AttentionCapabilities.Selection);\n const toolbar = get(context.capabilities(ThreadCapabilities.State))[0]?.state.toolbar ?? {};\n const disabled = get(\n rxFromSignal(() => {\n const metadata = resolve(Obj.getTypename(object)!);\n const selection = selectionManager.getSelection(fullyQualifiedId(object), metadata.selectionMode);\n const anchor = getAnchor(selection);\n const invalidSelection = !anchor;\n const overlappingComment = toolbar[fullyQualifiedId(object)];\n return (metadata.comments === 'anchored' && invalidSelection) || overlappingComment;\n }),\n );\n\n return [\n {\n id: `${fullyQualifiedId(object)}/comment`,\n data: () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const metadata = resolve(Obj.getTypename(object)!);\n const selection = selectionManager.getSelection(fullyQualifiedId(object));\n // TODO(wittjosiah): Use presence of selection to determine if the comment should be anchored.\n // Requires all components which support selection (e.g. table/kanban) to support anchored comments.\n const anchor = metadata.comments === 'anchored' ? getAnchor(selection) : Date.now().toString();\n const name = metadata.getAnchorLabel?.(object, anchor);\n void dispatch(createIntent(ThreadAction.Create, { anchor, name, subject: object }));\n },\n properties: {\n label: ['add comment label', { ns: meta.id }],\n icon: 'ph--chat-text--regular',\n disposition: 'toolbar',\n disabled,\n testId: 'thread.comment.add',\n },\n },\n ];\n }),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n ]);\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_echo", "context", "resolve", "typename", "getCapabilities", "Capabilities", "Metadata", "find", "id", "metadata", "contributes", "AppGraphBuilder", "createExtension", "THREAD_PLUGIN", "connector", "node", "Rx", "make", "get", "pipe", "Option", "flatMap", "ROOT_ID", "some", "none", "map", "call", "capabilities", "ThreadCapabilities", "CallManager", "rxFromSignal", "joined", "ATTENDABLE_PATH_SEPARATOR", "type", "DECK_COMPANION_TYPE", "data", "properties", "label", "ns", "icon", "position", "disposition", "getOrElse", "Obj", "instanceOf", "ChannelType", "channel", "callManager", "getCapability", "roomId", "fullyQualifiedId", "PLANK_COMPANION_TYPE", "meta", "isObject", "getTypename", "comments", "join", "actions", "object", "selectionManager", "AttentionCapabilities", "Selection", "toolbar", "State", "state", "disabled", "selection", "getSelection", "selectionMode", "anchor", "getAnchor", "invalidSelection", "overlappingComment", "dispatchPromise", "dispatch", "IntentDispatcher", "Date", "now", "toString", "name", "getAnchorLabel", "createIntent", "ThreadAction", "Create", "subject", "testId"]
|
|
7
|
+
}
|
|
@@ -26,8 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
29
|
+
var chunk_3YYSLZE4_exports = {};
|
|
30
|
+
__export(chunk_3YYSLZE4_exports, {
|
|
31
31
|
AppGraphBuilder: () => AppGraphBuilder,
|
|
32
32
|
CallManager: () => CallManager,
|
|
33
33
|
IntentResolver: () => IntentResolver,
|
|
@@ -36,15 +36,15 @@ __export(chunk_U7NOIXN6_exports, {
|
|
|
36
36
|
ReactSurface: () => ReactSurface,
|
|
37
37
|
ThreadState: () => ThreadState
|
|
38
38
|
});
|
|
39
|
-
module.exports = __toCommonJS(
|
|
39
|
+
module.exports = __toCommonJS(chunk_3YYSLZE4_exports);
|
|
40
40
|
var import_app_framework = require("@dxos/app-framework");
|
|
41
|
-
var AppGraphBuilder = (0, import_app_framework.lazy)(() => import("./app-graph-builder-
|
|
41
|
+
var AppGraphBuilder = (0, import_app_framework.lazy)(() => import("./app-graph-builder-K5OAVYI6.cjs"));
|
|
42
42
|
var CallManager = (0, import_app_framework.lazy)(() => import("./call-manager-HV2XJW5O.cjs"));
|
|
43
|
-
var IntentResolver = (0, import_app_framework.lazy)(() => import("./intent-resolver-
|
|
44
|
-
var Markdown = (0, import_app_framework.lazy)(() => import("./markdown-
|
|
45
|
-
var ReactRoot = (0, import_app_framework.lazy)(() => import("./react-root-
|
|
46
|
-
var ReactSurface = (0, import_app_framework.lazy)(() => import("./react-surface-
|
|
47
|
-
var ThreadSettings = (0, import_app_framework.lazy)(() => import("./settings-
|
|
43
|
+
var IntentResolver = (0, import_app_framework.lazy)(() => import("./intent-resolver-2TX6HSOL.cjs"));
|
|
44
|
+
var Markdown = (0, import_app_framework.lazy)(() => import("./markdown-GNFW2XDO.cjs"));
|
|
45
|
+
var ReactRoot = (0, import_app_framework.lazy)(() => import("./react-root-BKOXG5AC.cjs"));
|
|
46
|
+
var ReactSurface = (0, import_app_framework.lazy)(() => import("./react-surface-Q5DWX3UO.cjs"));
|
|
47
|
+
var ThreadSettings = (0, import_app_framework.lazy)(() => import("./settings-5O5V2NOE.cjs"));
|
|
48
48
|
var ThreadState = (0, import_app_framework.lazy)(() => import("./state-IY5XX3H2.cjs"));
|
|
49
49
|
// Annotate the CommonJS export names for ESM import in node:
|
|
50
50
|
0 && (module.exports = {
|
|
@@ -56,4 +56,4 @@ var ThreadState = (0, import_app_framework.lazy)(() => import("./state-IY5XX3H2.
|
|
|
56
56
|
ReactSurface,
|
|
57
57
|
ThreadState
|
|
58
58
|
});
|
|
59
|
-
//# sourceMappingURL=chunk-
|
|
59
|
+
//# sourceMappingURL=chunk-3YYSLZE4.cjs.map
|
|
@@ -26,22 +26,22 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
29
|
+
var chunk_E3WBZTTI_exports = {};
|
|
30
|
+
__export(chunk_E3WBZTTI_exports, {
|
|
31
31
|
ChatContainer: () => ChatContainer,
|
|
32
32
|
ChatContainer_default: () => ChatContainer_default,
|
|
33
33
|
ChatHeading: () => ChatHeading,
|
|
34
34
|
MessageContainer: () => MessageContainer,
|
|
35
35
|
command: () => command
|
|
36
36
|
});
|
|
37
|
-
module.exports = __toCommonJS(
|
|
37
|
+
module.exports = __toCommonJS(chunk_E3WBZTTI_exports);
|
|
38
38
|
var import_chunk_FUXJAVFZ = require("./chunk-FUXJAVFZ.cjs");
|
|
39
39
|
var import_chunk_LR5NENBE = require("./chunk-LR5NENBE.cjs");
|
|
40
40
|
var import_chunk_HLMCEE5K = require("./chunk-HLMCEE5K.cjs");
|
|
41
41
|
var import_tracking = require("@preact-signals/safe-react/tracking");
|
|
42
42
|
var import_react = __toESM(require("react"));
|
|
43
|
-
var
|
|
44
|
-
var
|
|
43
|
+
var import_echo = require("@dxos/echo");
|
|
44
|
+
var import_echo2 = require("@dxos/react-client/echo");
|
|
45
45
|
var import_halo = require("@dxos/react-client/halo");
|
|
46
46
|
var import_react_ui = require("@dxos/react-ui");
|
|
47
47
|
var import_react_ui_editor = require("@dxos/react-ui-editor");
|
|
@@ -55,7 +55,7 @@ var import_view = require("@codemirror/view");
|
|
|
55
55
|
var import_react2 = require("@phosphor-icons/react");
|
|
56
56
|
var import_react3 = __toESM(require("react"));
|
|
57
57
|
var import_app_framework = require("@dxos/app-framework");
|
|
58
|
-
var
|
|
58
|
+
var import_live_object = require("@dxos/live-object");
|
|
59
59
|
var import_react_client = require("@dxos/react-client");
|
|
60
60
|
var import_halo2 = require("@dxos/react-client/halo");
|
|
61
61
|
var import_react_ui2 = require("@dxos/react-ui");
|
|
@@ -153,7 +153,7 @@ var MessageContainer = ({ message, members, editable = false, onDelete }) => {
|
|
|
153
153
|
block: textBlock,
|
|
154
154
|
isAuthor: userIsAuthor,
|
|
155
155
|
editing
|
|
156
|
-
}),
|
|
156
|
+
}), import_live_object.RefArray.targets(references).map((reference, index) => /* @__PURE__ */ import_react3.default.createElement(MessagePart, {
|
|
157
157
|
key: index,
|
|
158
158
|
part: reference
|
|
159
159
|
})));
|
|
@@ -269,9 +269,9 @@ var ChatHeading = ({ attendableId }) => {
|
|
|
269
269
|
var ChatContainer = ({ space, thread, context, current, autoFocusTextbox }) => {
|
|
270
270
|
var _effect = (0, import_tracking.useSignals)();
|
|
271
271
|
try {
|
|
272
|
-
const id = (0,
|
|
272
|
+
const id = (0, import_echo2.fullyQualifiedId)(thread);
|
|
273
273
|
const identity = (0, import_halo.useIdentity)();
|
|
274
|
-
const members = (0,
|
|
274
|
+
const members = (0, import_echo2.useMembers)(space?.key);
|
|
275
275
|
const activity = (0, import_chunk_FUXJAVFZ.useStatus)(space, id);
|
|
276
276
|
const { t } = (0, import_react_ui.useTranslation)(import_chunk_HLMCEE5K.THREAD_PLUGIN);
|
|
277
277
|
const [_count, _setCount] = (0, import_react.useState)(0);
|
|
@@ -307,7 +307,7 @@ var ChatContainer = ({ space, thread, context, current, autoFocusTextbox }) => {
|
|
|
307
307
|
if (!messageRef.current?.length) {
|
|
308
308
|
return false;
|
|
309
309
|
}
|
|
310
|
-
thread.messages.push(
|
|
310
|
+
thread.messages.push(import_echo.Ref.make(import_echo.Obj.make(import_schema.DataType.Message, {
|
|
311
311
|
sender: {
|
|
312
312
|
identityDid: identity.did
|
|
313
313
|
},
|
|
@@ -319,7 +319,7 @@ var ChatContainer = ({ space, thread, context, current, autoFocusTextbox }) => {
|
|
|
319
319
|
}
|
|
320
320
|
],
|
|
321
321
|
properties: context ? {
|
|
322
|
-
context:
|
|
322
|
+
context: import_echo.Ref.make(context)
|
|
323
323
|
} : void 0
|
|
324
324
|
})));
|
|
325
325
|
messageRef.current = "";
|
|
@@ -368,4 +368,4 @@ var ChatContainer_default = ChatContainer;
|
|
|
368
368
|
MessageContainer,
|
|
369
369
|
command
|
|
370
370
|
});
|
|
371
|
-
//# sourceMappingURL=chunk-
|
|
371
|
+
//# sourceMappingURL=chunk-E3WBZTTI.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/ChatContainer.tsx", "../../../src/components/MessageContainer.tsx", "../../../src/components/command-extension.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useLayoutEffect, useMemo, useRef, useState } from 'react';\n\nimport { Obj, Ref } from '@dxos/echo';\nimport { fullyQualifiedId, type Space, useMembers } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { Icon, ScrollArea, useThemeContext, useTranslation } from '@dxos/react-ui';\nimport { createBasicExtensions, createThemeExtensions, listener } from '@dxos/react-ui-editor';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { mx } from '@dxos/react-ui-theme';\nimport {\n MessageTextbox,\n type MessageTextboxProps,\n Thread,\n ThreadFooter,\n threadLayout,\n type ThreadProps,\n} from '@dxos/react-ui-thread';\nimport { DataType } from '@dxos/schema';\nimport { isNonNullable } from '@dxos/util';\n\nimport { MessageContainer } from './MessageContainer';\nimport { command } from './command-extension';\nimport { useStatus } from '../hooks';\nimport { THREAD_PLUGIN } from '../meta';\nimport { type ThreadType } from '../types';\nimport { getMessageMetadata } from '../util';\n\nexport const ChatHeading = ({ attendableId }: { attendableId?: string }) => {\n const { t } = useTranslation(THREAD_PLUGIN);\n return (\n <div role='none' className='flex items-center'>\n <StackItem.SigilButton attendableId={attendableId}>\n <Icon icon='ph--chat--regular' size={5} />\n </StackItem.SigilButton>\n <StackItem.HeadingLabel attendableId={attendableId}>{t('chat heading')}</StackItem.HeadingLabel>\n </div>\n );\n};\n\nexport type ChatContainerProps = {\n space: Space;\n thread: ThreadType;\n context?: Obj.Any;\n autoFocusTextbox?: boolean;\n} & Pick<ThreadProps, 'current'>;\n\nexport const ChatContainer = ({ space, thread, context, current, autoFocusTextbox }: ChatContainerProps) => {\n const id = fullyQualifiedId(thread);\n const identity = useIdentity()!;\n const members = useMembers(space?.key);\n const activity = useStatus(space, id);\n const { t } = useTranslation(THREAD_PLUGIN);\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 [autoFocus, setAutoFocus] = useState(autoFocusTextbox);\n const threadScrollRef = useRef<HTMLDivElement | null>(null);\n const { themeMode } = useThemeContext();\n\n const textboxMetadata = getMessageMetadata(id, identity);\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 [themeMode, _count],\n );\n\n // TODO(thure): Factor out.\n // TODO(thure): `flex-col-reverse` does not work to start the container scrolled to the end while also using\n // `ScrollArea`. This is the least-bad way I found to scroll to the end on mount. Note that 0ms was insufficient\n // for the desired effect; this is likely hardware-dependent and should be reevaluated.\n const scrollToEnd = (behavior: ScrollBehavior) =>\n setTimeout(() => threadScrollRef.current?.scrollIntoView({ behavior, block: 'end' }), 10);\n\n useLayoutEffect(() => {\n scrollToEnd('instant');\n }, []);\n\n // TODO(burdon): Change to model.\n const handleCreate: MessageTextboxProps['onSend'] = () => {\n if (!messageRef.current?.length) {\n return false;\n }\n\n thread.messages.push(\n Ref.make(\n Obj.make(DataType.Message, {\n sender: { identityDid: identity.did },\n created: new Date().toISOString(),\n blocks: [{ type: 'text', text: messageRef.current }],\n properties: context ? { context: Ref.make(context) } : undefined,\n }),\n ),\n );\n\n messageRef.current = '';\n setAutoFocus(true);\n scrollToEnd('smooth');\n rerenderEditor();\n return true;\n };\n\n return (\n <Thread\n current={current}\n id={id}\n classNames='bs-full grid-rows-[1fr_min-content_min-content] overflow-hidden transition-[padding-block-end] [[data-sidebar-inline-start-state=open]_&]:lg:pbe-0'\n >\n <ScrollArea.Root classNames='col-span-2'>\n <ScrollArea.Viewport classNames='overflow-anchored after:overflow-anchor after:block after:bs-px after:-mbs-px [&>div]:min-bs-full [&>div]:!grid [&>div]:grid-rows-[1fr_0]'>\n <div role='none' className={mx(threadLayout, 'place-self-end')}>\n {thread.messages\n .map((message) => message.target)\n .filter(isNonNullable)\n .map((message) => (\n <MessageContainer key={message.id} message={message} members={members} />\n ))}\n </div>\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 <ScrollArea.Scrollbar>\n <ScrollArea.Thumb />\n </ScrollArea.Scrollbar>\n </ScrollArea.Viewport>\n </ScrollArea.Root>\n <MessageTextbox extensions={extensions} autoFocus={autoFocus} onSend={handleCreate} {...textboxMetadata} />\n <ThreadFooter activity={activity}>{t('activity message')}</ThreadFooter>\n </Thread>\n );\n};\n\nexport default ChatContainer;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { EditorView } from '@codemirror/view';\nimport { Check, PencilSimple, X } from '@phosphor-icons/react';\nimport React, { forwardRef, useCallback, useEffect, useRef, useState } from 'react';\n\nimport { Surface } from '@dxos/app-framework';\nimport { type Obj, type Type } from '@dxos/echo';\nimport { RefArray } from '@dxos/live-object';\nimport { PublicKey } from '@dxos/react-client';\nimport { type SpaceMember } from '@dxos/react-client/echo';\nimport { useIdentity, type Identity } from '@dxos/react-client/halo';\nimport { Button, ButtonGroup, Tooltip, useOnTransition, useThemeContext, useTranslation } from '@dxos/react-ui';\nimport { createBasicExtensions, createThemeExtensions, useTextEditor } from '@dxos/react-ui-editor';\nimport {\n getSize,\n hoverableControlItem,\n hoverableControls,\n hoverableFocusedWithinControls,\n mx,\n} from '@dxos/react-ui-theme';\nimport { MessageHeading, MessageRoot } from '@dxos/react-ui-thread';\nimport { type DataType } from '@dxos/schema';\n\nimport { command } from './command-extension';\nimport { useOnEditAnalytics } from '../hooks';\nimport { THREAD_PLUGIN } from '../meta';\nimport { getMessageMetadata } from '../util';\n\n// TODO(thure): #8149\nconst messageControlClassNames = ['!p-1 !min-bs-0 transition-opacity', hoverableControlItem];\n\nexport type MessageContainerProps = {\n message: DataType.Message;\n members: SpaceMember[];\n editable?: boolean;\n onDelete?: (id: string) => void;\n};\n\nexport const MessageContainer = ({ message, members, editable = false, onDelete }: MessageContainerProps) => {\n const senderIdentity = members.find(\n (member) =>\n (message.sender.identityDid && member.identity.did === message.sender.identityDid) ||\n (message.sender.identityKey && PublicKey.equals(member.identity.identityKey, message.sender.identityKey)),\n )?.identity;\n const messageMetadata = getMessageMetadata(message.id, senderIdentity);\n const userIsAuthor = useIdentity()?.did === messageMetadata.authorId;\n const [editing, setEditing] = useState(false);\n const handleDelete = useCallback(() => onDelete?.(message.id), [message, onDelete]);\n const { t } = useTranslation(THREAD_PLUGIN);\n const editLabel = t(editing ? 'save message label' : 'edit message label');\n const deleteLabel = t('delete message label');\n const textBlock = message.blocks.find((block) => block.type === 'text');\n const references = message.blocks.filter((block) => block.type === 'reference').map((block) => block.reference);\n\n useOnEditAnalytics(message, textBlock, !!editing);\n\n return (\n <MessageRoot {...messageMetadata} classNames={[hoverableControls, hoverableFocusedWithinControls]}>\n <MessageHeading authorName={messageMetadata.authorName} timestamp={messageMetadata.timestamp}>\n <ButtonGroup classNames='mie-1'>\n {userIsAuthor && editable && (\n <Tooltip.Trigger asChild content={editLabel}>\n <Button\n variant='ghost'\n data-testid={editing ? 'thread.message.save' : 'thread.message.edit'}\n classNames={messageControlClassNames}\n onClick={() => setEditing((editing) => !editing)}\n >\n <span className='sr-only'>{editLabel}</span>\n {editing ? <Check className={getSize(4)} /> : <PencilSimple className={getSize(4)} />}\n </Button>\n </Tooltip.Trigger>\n )}\n {onDelete && (\n <Tooltip.Trigger asChild content={deleteLabel}>\n <Button\n variant='ghost'\n data-testid='thread.message.delete'\n classNames={messageControlClassNames}\n onClick={() => handleDelete()}\n >\n <span className='sr-only'>{deleteLabel}</span>\n <X className={getSize(4)} />\n </Button>\n </Tooltip.Trigger>\n )}\n </ButtonGroup>\n </MessageHeading>\n {textBlock && <TextboxBlock block={textBlock} isAuthor={userIsAuthor} editing={editing} />}\n {RefArray.targets(references).map((reference, index) => (\n <MessagePart key={index} part={reference} />\n ))}\n </MessageRoot>\n );\n};\n\nconst MessagePart = ({ part }: { part: Type.Expando }) => {\n return <MessageBlockObjectTile subject={part} />;\n};\n\nconst TextboxBlock = ({\n block,\n isAuthor,\n editing,\n}: {\n block: DataType.MessageBlock.Text;\n editing?: boolean;\n isAuthor?: boolean;\n identity?: Identity;\n}) => {\n const { themeMode } = useThemeContext();\n const inMemoryContentRef = useRef(block.text);\n\n const handleDocumentChange = useCallback((newState: string) => {\n inMemoryContentRef.current = newState;\n }, []);\n\n const saveDocumentChange = useCallback(() => {\n block.text = inMemoryContentRef.current;\n }, [block]);\n\n useOnTransition(editing, true, false, saveDocumentChange);\n\n const { parentRef, focusAttributes, view } = useTextEditor(\n () => ({\n initialValue: block.text,\n extensions: [\n createBasicExtensions({ readOnly: !isAuthor || !editing }),\n createThemeExtensions({ themeMode }),\n command,\n EditorView.updateListener.of((update) => {\n if (update.docChanged) {\n handleDocumentChange(update.state.doc.toString());\n }\n }),\n ],\n }),\n [block.text, editing, isAuthor, themeMode, handleDocumentChange],\n );\n\n useEffect(() => {\n editing && view?.focus();\n }, [editing, view]);\n\n return <div role='none' ref={parentRef} className='mie-4' {...focusAttributes} />;\n};\n\nconst MessageBlockObjectTile = forwardRef<HTMLDivElement, { subject: Obj.Any }>(({ subject }, forwardedRef) => {\n // TODO(burdon): Use annotation to get title.\n let title = (subject as any).name ?? (subject as any).title ?? (subject as any).type ?? 'Object';\n if (typeof title !== 'string') {\n title = title?.content ?? '';\n }\n\n return (\n <div\n role='group'\n className={mx('grid col-span-3 py-1 pr-4', hoverableControls, hoverableFocusedWithinControls)}\n ref={forwardedRef}\n >\n <Surface role='card' limit={1} data={{ subject }} fallback={title} />\n </div>\n );\n});\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { StreamLanguage, HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport { type Extension } from '@codemirror/state';\n\nimport { tags } from '@dxos/react-ui-editor';\nimport { mx } from '@dxos/react-ui-theme';\n\n/**\n * https://github.com/codemirror/stream-parser/blob/main/test/test-stream-parser.ts\n */\nconst parser = StreamLanguage.define<{ count: number }>({\n startState: () => ({ count: 0 }),\n token: (stream, state) => {\n state.count++;\n if (stream.eatSpace()) {\n return null;\n }\n if (state.count === 1 && stream.match(/^(\\/\\w+)/)) {\n return 'tagName';\n }\n stream.next();\n return null;\n },\n});\n\nconst styles = HighlightStyle.define([\n { tag: tags.tagName, class: mx('dx-tag dx-tag--indigo text-baseText font-medium') },\n]);\n\nexport const command: Extension = [parser, syntaxHighlighting(styles)];\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_echo", "import_react", "import_halo", "import_react_ui", "import_react_ui_editor", "import_react_ui_theme", "import_react_ui_thread", "parser", "StreamLanguage", "define", "startState", "count", "token", "stream", "state", "eatSpace", "match", "next", "styles", "HighlightStyle", "tag", "tags", "tagName", "class", "mx", "command", "syntaxHighlighting", "messageControlClassNames", "hoverableControlItem", "MessageContainer", "message", "members", "editable", "onDelete", "senderIdentity", "find", "member", "sender", "identityDid", "identity", "did", "identityKey", "PublicKey", "equals", "messageMetadata", "getMessageMetadata", "id", "userIsAuthor", "useIdentity", "authorId", "editing", "setEditing", "useState", "handleDelete", "useCallback", "t", "useTranslation", "THREAD_PLUGIN", "editLabel", "deleteLabel", "textBlock", "blocks", "block", "type", "references", "filter", "map", "reference", "useOnEditAnalytics", "React", "MessageRoot", "classNames", "hoverableControls", "hoverableFocusedWithinControls", "MessageHeading", "authorName", "timestamp", "ButtonGroup", "Tooltip", "Trigger", "asChild", "content", "Button", "variant", "data-testid", "onClick", "span", "className", "Check", "getSize", "PencilSimple", "X", "TextboxBlock", "isAuthor", "RefArray", "targets", "index", "MessagePart", "key", "part", "MessageBlockObjectTile", "subject", "themeMode", "useThemeContext", "inMemoryContentRef", "useRef", "text", "handleDocumentChange", "newState", "current", "saveDocumentChange", "useOnTransition", "parentRef", "focusAttributes", "view", "useTextEditor", "initialValue", "extensions", "createBasicExtensions", "readOnly", "createThemeExtensions", "EditorView", "updateListener", "of", "update", "docChanged", "doc", "toString", "useEffect", "focus", "div", "role", "ref", "forwardRef", "forwardedRef", "title", "name", "Surface", "limit", "data", "fallback", "ChatHeading", "attendableId", "StackItem", "SigilButton", "Icon", "icon", "size", "HeadingLabel", "ChatContainer", "space", "thread", "context", "autoFocusTextbox", "fullyQualifiedId", "useMembers", "activity", "useStatus", "_count", "_setCount", "rerenderEditor", "autoFocus", "setAutoFocus", "threadScrollRef", "textboxMetadata", "messageRef", "useMemo", "placeholder", "listener", "onChange", "scrollToEnd", "behavior", "setTimeout", "scrollIntoView", "useLayoutEffect", "handleCreate", "length", "messages", "push", "Ref", "make", "Obj", "DataType", "Message", "created", "Date", "toISOString", "properties", "undefined", "Thread", "ScrollArea", "Root", "Viewport", "threadLayout", "target", "isNonNullable", "Scrollbar", "Thumb", "MessageTextbox", "onSend", "ThreadFooter"]
|
|
7
|
+
}
|
|
@@ -26,15 +26,15 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
29
|
+
var chunk_U4SZUERU_exports = {};
|
|
30
|
+
__export(chunk_U4SZUERU_exports, {
|
|
31
31
|
Call: () => Call,
|
|
32
32
|
ChannelContainer: () => ChannelContainer,
|
|
33
33
|
ChannelContainer_default: () => ChannelContainer_default
|
|
34
34
|
});
|
|
35
|
-
module.exports = __toCommonJS(
|
|
35
|
+
module.exports = __toCommonJS(chunk_U4SZUERU_exports);
|
|
36
36
|
var import_chunk_4YSNVPWU = require("./chunk-4YSNVPWU.cjs");
|
|
37
|
-
var
|
|
37
|
+
var import_chunk_E3WBZTTI = require("./chunk-E3WBZTTI.cjs");
|
|
38
38
|
var import_chunk_FUXJAVFZ = require("./chunk-FUXJAVFZ.cjs");
|
|
39
39
|
var import_chunk_HLMCEE5K = require("./chunk-HLMCEE5K.cjs");
|
|
40
40
|
var import_tracking = require("@preact-signals/safe-react/tracking");
|
|
@@ -95,7 +95,7 @@ var Toolbar = ({ classNames, channel, participants, autoHideControls = true, onJ
|
|
|
95
95
|
const isScreensharing = call.media.screenshareTrack !== void 0;
|
|
96
96
|
const canSharescreen = typeof navigator.mediaDevices !== "undefined" && navigator.mediaDevices.getDisplayMedia !== void 0;
|
|
97
97
|
return /* @__PURE__ */ import_react3.default.createElement("div", {
|
|
98
|
-
className: (0, import_react_ui_theme.mx)("z-20 flex justify-center m-8", autoHideControls && import_react_ui_theme.
|
|
98
|
+
className: (0, import_react_ui_theme.mx)("z-20 flex justify-center m-8", autoHideControls && import_react_ui_theme.groupHoverControlItemWithTransition)
|
|
99
99
|
}, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Toolbar.Root, {
|
|
100
100
|
classNames: [
|
|
101
101
|
"p-2 bg-modalSurface rounded-lg shadow-lg",
|
|
@@ -581,7 +581,7 @@ var ResponsiveGridItem = ({ children, classNames, item, style, name, self, pinne
|
|
|
581
581
|
}, children, onClick && /* @__PURE__ */ import_react9.default.createElement("div", {
|
|
582
582
|
className: "z-10 absolute top-1 right-1 flex"
|
|
583
583
|
}, /* @__PURE__ */ import_react9.default.createElement(import_react_ui3.IconButton, {
|
|
584
|
-
classNames: (0, import_react_ui_theme5.mx)("p-1 min-bs-1 rounded", import_react_ui_theme5.
|
|
584
|
+
classNames: (0, import_react_ui_theme5.mx)("p-1 min-bs-1 rounded", import_react_ui_theme5.groupHoverControlItemWithTransition),
|
|
585
585
|
iconOnly: true,
|
|
586
586
|
icon: pinned ? "ph--x--regular" : "ph--arrows-out--regular",
|
|
587
587
|
size: pinned ? 5 : 4,
|
|
@@ -886,7 +886,7 @@ var ChannelContainer = ({ channel, roomId: _roomId, role, fullscreen }) => {
|
|
|
886
886
|
attendableId: (0, import_echo.fullyQualifiedId)(channel),
|
|
887
887
|
role,
|
|
888
888
|
onJoinCall: handleJoin
|
|
889
|
-
}), /* @__PURE__ */ import_react.default.createElement(
|
|
889
|
+
}), /* @__PURE__ */ import_react.default.createElement(import_chunk_E3WBZTTI.ChatContainer_default, {
|
|
890
890
|
space,
|
|
891
891
|
thread: channel.defaultThread.target
|
|
892
892
|
})));
|
|
@@ -981,4 +981,4 @@ var ChannelToolbar = ({ attendableId, role, onJoinCall }) => {
|
|
|
981
981
|
ChannelContainer,
|
|
982
982
|
ChannelContainer_default
|
|
983
983
|
});
|
|
984
|
-
//# sourceMappingURL=chunk-
|
|
984
|
+
//# sourceMappingURL=chunk-U4SZUERU.cjs.map
|