@dxos/plugin-thread 0.8.2-main.fbd8ed0 → 0.8.2-staging.7ac8446
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/{ChatContainer-H4XTHM3A.mjs → ChatContainer-IOOAQW6S.mjs} +6 -6
- package/dist/lib/browser/ChatContainer-IOOAQW6S.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-builder-V7UUHGUI.mjs → app-graph-builder-6W4UKJDI.mjs} +7 -10
- package/dist/lib/browser/app-graph-builder-6W4UKJDI.mjs.map +7 -0
- package/dist/lib/browser/{chunk-32EIWOAL.mjs → chunk-QDJ3Y6WF.mjs} +1 -1
- package/dist/lib/browser/{chunk-32EIWOAL.mjs.map → chunk-QDJ3Y6WF.mjs.map} +1 -1
- package/dist/lib/browser/chunk-S5ZR4FYW.mjs +17 -0
- package/dist/lib/browser/{chunk-I3JK6CBS.mjs → chunk-TFVPUPOO.mjs} +7 -9
- package/dist/lib/browser/chunk-TFVPUPOO.mjs.map +7 -0
- package/dist/lib/browser/chunk-WOG72DWE.mjs +93 -0
- package/dist/lib/browser/chunk-WOG72DWE.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +10 -10
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-PDOLX5B7.mjs → intent-resolver-QAY4FLLM.mjs} +22 -17
- package/dist/lib/browser/intent-resolver-QAY4FLLM.mjs.map +7 -0
- package/dist/lib/browser/{markdown-XJJVUBDO.mjs → markdown-7KXBXCUS.mjs} +4 -4
- package/dist/lib/browser/markdown-7KXBXCUS.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-7DJZKIOK.mjs → react-surface-MT3OWULR.mjs} +22 -21
- package/dist/lib/browser/react-surface-MT3OWULR.mjs.map +7 -0
- package/dist/lib/browser/{settings-K56QXNJ4.mjs → settings-4FEC7EAX.mjs} +4 -4
- package/dist/lib/browser/settings-4FEC7EAX.mjs.map +7 -0
- package/dist/lib/browser/{state-KBGI3QTR.mjs → state-PNMSLKAH.mjs} +4 -4
- package/dist/lib/browser/state-PNMSLKAH.mjs.map +7 -0
- package/dist/lib/browser/types.mjs +1 -1
- package/dist/lib/node/{ChatContainer-TUISUIY7.cjs → ChatContainer-4FNDRF3G.cjs} +11 -11
- package/dist/lib/node/ChatContainer-4FNDRF3G.cjs.map +7 -0
- package/dist/lib/node/{app-graph-builder-MMM26FEH.cjs → app-graph-builder-HZNWT4QU.cjs} +10 -13
- package/dist/lib/node/app-graph-builder-HZNWT4QU.cjs.map +7 -0
- package/dist/lib/node/{chunk-GRMB5VRN.cjs → chunk-46BSFPBV.cjs} +49 -49
- package/dist/lib/node/chunk-46BSFPBV.cjs.map +7 -0
- package/dist/lib/node/{chunk-NO6WQR36.cjs → chunk-AKINTFBH.cjs} +4 -4
- package/dist/lib/node/{chunk-NO6WQR36.cjs.map → chunk-AKINTFBH.cjs.map} +1 -1
- package/dist/lib/node/{chunk-ETDNE4Z6.cjs → chunk-E7Z3BKRQ.cjs} +11 -13
- package/dist/lib/node/chunk-E7Z3BKRQ.cjs.map +7 -0
- package/dist/lib/node/{chunk-AZ275P4V.cjs → chunk-S2A6BXEA.cjs} +10 -10
- package/dist/lib/node/index.cjs +17 -17
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/{intent-resolver-MNTL32W2.cjs → intent-resolver-S6FE5OR7.cjs} +31 -26
- package/dist/lib/node/intent-resolver-S6FE5OR7.cjs.map +7 -0
- package/dist/lib/node/{markdown-25NI6Q4Y.cjs → markdown-L2WMCQKM.cjs} +9 -9
- package/dist/lib/node/markdown-L2WMCQKM.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-surface-KGUZJVRL.cjs → react-surface-Z45BYECE.cjs} +32 -31
- package/dist/lib/node/react-surface-Z45BYECE.cjs.map +7 -0
- package/dist/lib/node/{settings-4WLSO726.cjs → settings-IXCPE55J.cjs} +7 -7
- package/dist/lib/node/settings-IXCPE55J.cjs.map +7 -0
- package/dist/lib/node/{state-FOHMAVSU.cjs → state-AT73KPGZ.cjs} +6 -6
- package/dist/lib/node/state-AT73KPGZ.cjs.map +7 -0
- package/dist/lib/node/types.cjs +3 -3
- package/dist/lib/node/types.cjs.map +1 -1
- package/dist/lib/node-esm/{ChatContainer-G7VTTRDN.mjs → ChatContainer-NYLCL6QA.mjs} +6 -6
- package/dist/lib/node-esm/ChatContainer-NYLCL6QA.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-builder-QEFJ2KA4.mjs → app-graph-builder-M3KK5QJH.mjs} +7 -10
- package/dist/lib/node-esm/app-graph-builder-M3KK5QJH.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-V7HLWNAO.mjs → chunk-ADTVMESP.mjs} +7 -9
- package/dist/lib/node-esm/chunk-ADTVMESP.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-E446MGLP.mjs +94 -0
- package/dist/lib/node-esm/chunk-E446MGLP.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-IZWN4KAY.mjs → chunk-J56FORYF.mjs} +1 -1
- package/dist/lib/node-esm/{chunk-IZWN4KAY.mjs.map → chunk-J56FORYF.mjs.map} +1 -1
- package/dist/lib/node-esm/chunk-WSE23GSG.mjs +19 -0
- package/dist/lib/node-esm/index.mjs +10 -10
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-X2FNKFSK.mjs → intent-resolver-OURFRSSF.mjs} +22 -17
- package/dist/lib/node-esm/intent-resolver-OURFRSSF.mjs.map +7 -0
- package/dist/lib/node-esm/{markdown-2ERASVEO.mjs → markdown-ZKU23UVD.mjs} +4 -4
- package/dist/lib/node-esm/markdown-ZKU23UVD.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-DLD2UJRM.mjs → react-surface-KIJ767JK.mjs} +22 -21
- package/dist/lib/node-esm/react-surface-KIJ767JK.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-5UA6FBMW.mjs → settings-ZUJQ4LWI.mjs} +4 -4
- package/dist/lib/node-esm/settings-ZUJQ4LWI.mjs.map +7 -0
- package/dist/lib/node-esm/{state-IRLEO2SB.mjs → state-SSDX5O67.mjs} +4 -4
- package/dist/lib/node-esm/state-SSDX5O67.mjs.map +7 -0
- package/dist/lib/node-esm/types.mjs +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +179 -2
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +179 -3
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +2 -2
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/markdown.d.ts +2 -2
- package/dist/types/src/capabilities/markdown.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/CommentContainer.d.ts.map +1 -1
- package/dist/types/src/components/Comments.stories.d.ts +1 -1
- package/dist/types/src/components/Comments.stories.d.ts.map +1 -1
- package/dist/types/src/components/CommentsContainer.d.ts.map +1 -1
- package/dist/types/src/components/MessageContainer.d.ts +4 -5
- 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/ThreadSettings.d.ts.map +1 -1
- package/dist/types/src/components/testing.d.ts +50 -97
- package/dist/types/src/components/testing.d.ts.map +1 -1
- package/dist/types/src/components/types.d.ts +2 -2
- package/dist/types/src/components/types.d.ts.map +1 -1
- package/dist/types/src/extensions/threads.d.ts.map +1 -1
- package/dist/types/src/hooks/analytics.d.ts +3 -3
- package/dist/types/src/hooks/analytics.d.ts.map +1 -1
- package/dist/types/src/hooks/useStatus.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +56 -2
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +61 -212
- package/dist/types/src/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +33 -40
- package/src/ThreadPlugin.tsx +7 -7
- package/src/capabilities/app-graph-builder.ts +21 -31
- package/src/capabilities/intent-resolver.ts +14 -13
- package/src/capabilities/markdown.ts +4 -4
- package/src/capabilities/settings.ts +2 -2
- package/src/capabilities/state.ts +3 -3
- package/src/components/Chat.stories.tsx +8 -7
- package/src/components/ChatContainer.tsx +4 -4
- package/src/components/CommentContainer.tsx +49 -25
- package/src/components/Comments.stories.tsx +7 -9
- package/src/components/CommentsContainer.tsx +8 -2
- package/src/components/MessageContainer.tsx +50 -31
- package/src/components/testing.ts +4 -4
- package/src/components/types.ts +2 -2
- package/src/hooks/analytics.ts +4 -4
- package/src/translations.ts +2 -2
- package/src/types.ts +40 -40
- package/dist/lib/browser/ChatContainer-H4XTHM3A.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-V7UUHGUI.mjs.map +0 -7
- package/dist/lib/browser/chunk-I3JK6CBS.mjs.map +0 -7
- package/dist/lib/browser/chunk-OO7PQPV5.mjs +0 -93
- package/dist/lib/browser/chunk-OO7PQPV5.mjs.map +0 -7
- package/dist/lib/browser/chunk-YRGWE35W.mjs +0 -17
- package/dist/lib/browser/intent-resolver-PDOLX5B7.mjs.map +0 -7
- package/dist/lib/browser/markdown-XJJVUBDO.mjs.map +0 -7
- package/dist/lib/browser/react-surface-7DJZKIOK.mjs.map +0 -7
- package/dist/lib/browser/settings-K56QXNJ4.mjs.map +0 -7
- package/dist/lib/browser/state-KBGI3QTR.mjs.map +0 -7
- package/dist/lib/node/ChatContainer-TUISUIY7.cjs.map +0 -7
- package/dist/lib/node/app-graph-builder-MMM26FEH.cjs.map +0 -7
- package/dist/lib/node/chunk-ETDNE4Z6.cjs.map +0 -7
- package/dist/lib/node/chunk-GRMB5VRN.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-MNTL32W2.cjs.map +0 -7
- package/dist/lib/node/markdown-25NI6Q4Y.cjs.map +0 -7
- package/dist/lib/node/react-surface-KGUZJVRL.cjs.map +0 -7
- package/dist/lib/node/settings-4WLSO726.cjs.map +0 -7
- package/dist/lib/node/state-FOHMAVSU.cjs.map +0 -7
- package/dist/lib/node-esm/ChatContainer-G7VTTRDN.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-QEFJ2KA4.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-5XUQJWUG.mjs +0 -19
- package/dist/lib/node-esm/chunk-A7RLBTTZ.mjs +0 -94
- package/dist/lib/node-esm/chunk-A7RLBTTZ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-V7HLWNAO.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-X2FNKFSK.mjs.map +0 -7
- package/dist/lib/node-esm/markdown-2ERASVEO.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-DLD2UJRM.mjs.map +0 -7
- package/dist/lib/node-esm/settings-5UA6FBMW.mjs.map +0 -7
- package/dist/lib/node-esm/state-IRLEO2SB.mjs.map +0 -7
- /package/dist/lib/browser/{chunk-YRGWE35W.mjs.map → chunk-S5ZR4FYW.mjs.map} +0 -0
- /package/dist/lib/node/{chunk-AZ275P4V.cjs.map → chunk-S2A6BXEA.cjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-5XUQJWUG.mjs.map → chunk-WSE23GSG.mjs.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAAe,WAAW,EAAE,MAAM,cAAc,CAAC;AAIxD,yBAAiB,YAAY,CAAC;;;;;;;;;;;;IAG5B,MAAM,OAAO,aAAc,SAAQ,kBASjC;KAAG;;;;;;;;;;;;;IAEL,MAAM,OAAO,MAAO,SAAQ,WAS1B;KAAG;;;;;;;;;IAEL,MAAM,OAAO,MAAO,SAAQ,WAK1B;KAAG;;;;;;;;;IAEL,MAAM,OAAO,cAAe,SAAQ,mBAKlC;KAAG;;;;;;;;;;;IAEL,MAAM,OAAO,MAAO,SAAQ,WAO1B;KAAG;;;;;;;;yBAvCU,EAAG,QAAQ,QACxB,mBACS;;wBAGR,CAAC;;;;;;6BAKM,EAAG,QAAQ,QACjB,EAAG,MAAM;6BAEC,EAAG,QACf,QAAO,EAAG,MAAM;uBAElB,EAAA,QAED,QAAQ,EAAE,MAAM;sBAAa,EAAE,QAAQ,QAAO,EAAG,MAAM;sBAAY,EAAG,QAAQ,CAAE,EAC7E,OAAE;;;;;;IAsBJ,MAAM,OAAO,UAAW,SAAQ,eAQ9B;KAAG;;;;;;;;;;;;;IAEL,MAAM,OAAO,aAAc,SAAQ,kBASjC;KAAG;;CACN;AAED,eAAO,MAAM,oBAAoB,yBAA0B,CAAC;AAE5D,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE7E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,KAAK,SAAS,GAAG,MAAM,CAAC;AACxB,MAAM,MAAM,SAAS,GAAG;IAAE,mBAAmB,EAAE,OAAO,CAAA;CAAE,CAAC;AACzD,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAErD,MAAM,MAAM,WAAW,GAAG;IACxB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/C,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/util.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,MAAM,MAAM,yBAAyB,GAAG,CAAC,WAAW,EAAE,SAAS,GAAG,SAAS,KAAK,eAAe,CAAC;AAEhG,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/util.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,MAAM,MAAM,yBAAyB,GAAG,CAAC,WAAW,EAAE,SAAS,GAAG,SAAS,KAAK,eAAe,CAAC;AAEhG,eAAO,MAAM,kBAAkB,OAAQ,MAAM,aAAa,QAAQ,KAAG,eAapE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"5.
|
|
1
|
+
{"version":"5.7.3"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/plugin-thread",
|
|
3
|
-
"version": "0.8.2-
|
|
3
|
+
"version": "0.8.2-staging.7ac8446",
|
|
4
4
|
"description": "DXOS Threads Surface plugin",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -39,59 +39,52 @@
|
|
|
39
39
|
"@preact/signals-core": "^1.6.0",
|
|
40
40
|
"date-fns": "^3.3.1",
|
|
41
41
|
"lodash.get": "^4.4.2",
|
|
42
|
-
"@dxos/app-framework": "0.8.2-
|
|
43
|
-
"@dxos/
|
|
44
|
-
"@dxos/
|
|
45
|
-
"@dxos/
|
|
46
|
-
"@dxos/
|
|
47
|
-
"@dxos/
|
|
48
|
-
"@dxos/
|
|
49
|
-
"@dxos/
|
|
50
|
-
"@dxos/
|
|
51
|
-
"@dxos/
|
|
52
|
-
"@dxos/plugin-
|
|
53
|
-
"@dxos/plugin-
|
|
54
|
-
"@dxos/plugin-
|
|
55
|
-
"@dxos/plugin-
|
|
56
|
-
"@dxos/plugin-graph": "0.8.2-
|
|
57
|
-
"@dxos/plugin-
|
|
58
|
-
"@dxos/
|
|
59
|
-
"@dxos/react-ui-attention": "0.8.2-
|
|
60
|
-
"@dxos/react-
|
|
61
|
-
"@dxos/react-ui-
|
|
62
|
-
"@dxos/react-ui-
|
|
63
|
-
"@dxos/react-ui-
|
|
64
|
-
"@dxos/react-ui-
|
|
65
|
-
"@dxos/react-ui-tabs": "0.8.2-
|
|
66
|
-
"@dxos/
|
|
67
|
-
"@dxos/
|
|
68
|
-
"@dxos/util": "0.8.2-main.fbd8ed0"
|
|
42
|
+
"@dxos/app-framework": "0.8.2-staging.7ac8446",
|
|
43
|
+
"@dxos/display-name": "0.8.2-staging.7ac8446",
|
|
44
|
+
"@dxos/echo-schema": "0.8.2-staging.7ac8446",
|
|
45
|
+
"@dxos/async": "0.8.2-staging.7ac8446",
|
|
46
|
+
"@dxos/invariant": "0.8.2-staging.7ac8446",
|
|
47
|
+
"@dxos/keys": "0.8.2-staging.7ac8446",
|
|
48
|
+
"@dxos/live-object": "0.8.2-staging.7ac8446",
|
|
49
|
+
"@dxos/local-storage": "0.8.2-staging.7ac8446",
|
|
50
|
+
"@dxos/log": "0.8.2-staging.7ac8446",
|
|
51
|
+
"@dxos/plugin-attention": "0.8.2-staging.7ac8446",
|
|
52
|
+
"@dxos/plugin-deck": "0.8.2-staging.7ac8446",
|
|
53
|
+
"@dxos/plugin-markdown": "0.8.2-staging.7ac8446",
|
|
54
|
+
"@dxos/plugin-client": "0.8.2-staging.7ac8446",
|
|
55
|
+
"@dxos/plugin-observability": "0.8.2-staging.7ac8446",
|
|
56
|
+
"@dxos/plugin-graph": "0.8.2-staging.7ac8446",
|
|
57
|
+
"@dxos/plugin-space": "0.8.2-staging.7ac8446",
|
|
58
|
+
"@dxos/react-client": "0.8.2-staging.7ac8446",
|
|
59
|
+
"@dxos/react-ui-attention": "0.8.2-staging.7ac8446",
|
|
60
|
+
"@dxos/react-ui-editor": "0.8.2-staging.7ac8446",
|
|
61
|
+
"@dxos/react-ui-form": "0.8.2-staging.7ac8446",
|
|
62
|
+
"@dxos/react-ui-menu": "0.8.2-staging.7ac8446",
|
|
63
|
+
"@dxos/react-ui-stack": "0.8.2-staging.7ac8446",
|
|
64
|
+
"@dxos/react-ui-thread": "0.8.2-staging.7ac8446",
|
|
65
|
+
"@dxos/react-ui-tabs": "0.8.2-staging.7ac8446",
|
|
66
|
+
"@dxos/schema": "0.8.2-staging.7ac8446",
|
|
67
|
+
"@dxos/util": "0.8.2-staging.7ac8446"
|
|
69
68
|
},
|
|
70
69
|
"devDependencies": {
|
|
71
|
-
"@effect-rx/rx-react": "^0.34.1",
|
|
72
|
-
"@effect/platform": "0.80.12",
|
|
73
70
|
"@phosphor-icons/react": "^2.1.5",
|
|
74
71
|
"@types/lodash.get": "^4.4.7",
|
|
75
72
|
"@types/react": "~18.2.0",
|
|
76
73
|
"@types/react-dom": "~18.2.0",
|
|
77
|
-
"effect": "3.14.21",
|
|
78
74
|
"react": "~18.2.0",
|
|
79
75
|
"react-dom": "~18.2.0",
|
|
80
76
|
"vite": "5.4.7",
|
|
81
|
-
"@dxos/
|
|
82
|
-
"@dxos/
|
|
83
|
-
"@dxos/
|
|
84
|
-
"@dxos/
|
|
77
|
+
"@dxos/react-ui": "0.8.2-staging.7ac8446",
|
|
78
|
+
"@dxos/random": "0.8.2-staging.7ac8446",
|
|
79
|
+
"@dxos/react-ui-theme": "0.8.2-staging.7ac8446",
|
|
80
|
+
"@dxos/storybook-utils": "0.8.2-staging.7ac8446"
|
|
85
81
|
},
|
|
86
82
|
"peerDependencies": {
|
|
87
|
-
"@effect-rx/rx-react": "^0.34.1",
|
|
88
|
-
"@effect/platform": "0.80.12",
|
|
89
83
|
"@phosphor-icons/react": "^2.1.5",
|
|
90
|
-
"effect": "^3.13.3",
|
|
91
84
|
"react": "~18.2.0",
|
|
92
85
|
"react-dom": "~18.2.0",
|
|
93
|
-
"@dxos/react-ui": "0.8.2-
|
|
94
|
-
"@dxos/react-ui-theme": "0.8.2-
|
|
86
|
+
"@dxos/react-ui": "0.8.2-staging.7ac8446",
|
|
87
|
+
"@dxos/react-ui-theme": "0.8.2-staging.7ac8446"
|
|
95
88
|
},
|
|
96
89
|
"publishConfig": {
|
|
97
90
|
"access": "public"
|
package/src/ThreadPlugin.tsx
CHANGED
|
@@ -7,9 +7,9 @@ import { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';
|
|
|
7
7
|
import { MarkdownEvents } from '@dxos/plugin-markdown';
|
|
8
8
|
import { SpaceCapabilities, ThreadEvents } from '@dxos/plugin-space';
|
|
9
9
|
import { ChannelType, defineObjectForm, ThreadType } from '@dxos/plugin-space/types';
|
|
10
|
-
import { type
|
|
10
|
+
import { type ReactiveEchoObject, RefArray } from '@dxos/react-client/echo';
|
|
11
11
|
import { translations as threadTranslations } from '@dxos/react-ui-thread';
|
|
12
|
-
import {
|
|
12
|
+
import { MessageType, MessageTypeV1, MessageTypeV1ToV2 } from '@dxos/schema';
|
|
13
13
|
|
|
14
14
|
import { AppGraphBuilder, IntentResolver, Markdown, ReactSurface, ThreadState } from './capabilities';
|
|
15
15
|
import { ThreadEvents as LocalThreadEvents } from './events';
|
|
@@ -58,16 +58,16 @@ export const ThreadPlugin = () =>
|
|
|
58
58
|
},
|
|
59
59
|
}),
|
|
60
60
|
contributes(Capabilities.Metadata, {
|
|
61
|
-
id:
|
|
61
|
+
id: MessageType.typename,
|
|
62
62
|
metadata: {
|
|
63
63
|
// TODO(wittjosiah): Move out of metadata.
|
|
64
|
-
loadReferences: (message:
|
|
64
|
+
loadReferences: (message: MessageType) => [], // loadObjectReferences(message, (message) => [...message.parts, message.context]),
|
|
65
65
|
},
|
|
66
66
|
}),
|
|
67
67
|
contributes(Capabilities.Metadata, {
|
|
68
68
|
id: THREAD_ITEM,
|
|
69
69
|
metadata: {
|
|
70
|
-
parse: (item:
|
|
70
|
+
parse: (item: ReactiveEchoObject<any>, type: string) => {
|
|
71
71
|
switch (type) {
|
|
72
72
|
case 'node':
|
|
73
73
|
return { id: item.id, label: item.title, data: item };
|
|
@@ -96,12 +96,12 @@ export const ThreadPlugin = () =>
|
|
|
96
96
|
defineModule({
|
|
97
97
|
id: `${meta.id}/module/schema`,
|
|
98
98
|
activatesOn: ClientEvents.SetupSchema,
|
|
99
|
-
activate: () => contributes(ClientCapabilities.Schema, [ThreadType,
|
|
99
|
+
activate: () => contributes(ClientCapabilities.Schema, [ThreadType, MessageType, MessageTypeV1]),
|
|
100
100
|
}),
|
|
101
101
|
defineModule({
|
|
102
102
|
id: `${meta.id}/module/migration`,
|
|
103
103
|
activatesOn: ClientEvents.SetupMigration,
|
|
104
|
-
activate: () => contributes(ClientCapabilities.Migration, [
|
|
104
|
+
activate: () => contributes(ClientCapabilities.Migration, [MessageTypeV1ToV2]),
|
|
105
105
|
}),
|
|
106
106
|
defineModule({
|
|
107
107
|
id: `${meta.id}/module/markdown`,
|
|
@@ -2,43 +2,33 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
import { Capabilities, contributes, type PluginContext } from '@dxos/app-framework';
|
|
5
|
+
import { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';
|
|
6
|
+
import { type ReactiveEchoObject } from '@dxos/client/echo';
|
|
9
7
|
import { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR } from '@dxos/plugin-deck/types';
|
|
10
|
-
import { createExtension } from '@dxos/plugin-graph';
|
|
11
|
-
import { isLiveObject } from '@dxos/react-client/echo';
|
|
8
|
+
import { createExtension, type Node } from '@dxos/plugin-graph';
|
|
12
9
|
|
|
13
10
|
import { meta } from '../meta';
|
|
14
11
|
|
|
15
|
-
export default (context:
|
|
12
|
+
export default (context: PluginsContext) =>
|
|
16
13
|
contributes(Capabilities.AppGraphBuilder, [
|
|
17
14
|
createExtension({
|
|
18
15
|
id: `${meta.id}/comments`,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
position: 'hoist',
|
|
37
|
-
},
|
|
38
|
-
},
|
|
39
|
-
]),
|
|
40
|
-
Option.getOrElse(() => []),
|
|
41
|
-
),
|
|
42
|
-
),
|
|
16
|
+
// TODO(wittjosiah): Support comments on any object.
|
|
17
|
+
// filter: (node): node is Node<ReactiveEchoObject<any>> => isEchoObject(node.data),
|
|
18
|
+
filter: (node): node is Node<ReactiveEchoObject<any>> =>
|
|
19
|
+
!!node.data && typeof node.data === 'object' && 'threads' in node.data && Array.isArray(node.data.threads),
|
|
20
|
+
connector: ({ node }) => [
|
|
21
|
+
{
|
|
22
|
+
id: [node.id, 'comments'].join(ATTENDABLE_PATH_SEPARATOR),
|
|
23
|
+
type: PLANK_COMPANION_TYPE,
|
|
24
|
+
data: 'comments',
|
|
25
|
+
properties: {
|
|
26
|
+
label: ['comments label', { ns: meta.id }],
|
|
27
|
+
icon: 'ph--chat-text--regular',
|
|
28
|
+
disposition: 'hidden',
|
|
29
|
+
position: 'hoist',
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
],
|
|
43
33
|
}),
|
|
44
34
|
]);
|
|
@@ -2,30 +2,31 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { Capabilities, contributes, createIntent, createResolver, type
|
|
6
|
-
import {
|
|
5
|
+
import { Capabilities, contributes, createIntent, createResolver, type PluginsContext } from '@dxos/app-framework';
|
|
6
|
+
import { ObjectId, Ref } from '@dxos/echo-schema';
|
|
7
7
|
import { invariant } from '@dxos/invariant';
|
|
8
|
+
import { DXN, QueueSubspaceTags } from '@dxos/keys';
|
|
8
9
|
import { refFromDXN } from '@dxos/live-object';
|
|
9
10
|
import { log } from '@dxos/log';
|
|
10
11
|
import { ATTENDABLE_PATH_SEPARATOR, DeckAction } from '@dxos/plugin-deck/types';
|
|
11
12
|
import { ObservabilityAction } from '@dxos/plugin-observability/types';
|
|
12
13
|
import { ChannelType, ThreadType } from '@dxos/plugin-space/types';
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
14
|
+
import { create, fullyQualifiedId, getSpace, makeRef } from '@dxos/react-client/echo';
|
|
15
|
+
import { MessageType } from '@dxos/schema';
|
|
15
16
|
|
|
16
17
|
import { ThreadCapabilities } from './capabilities';
|
|
17
18
|
import { THREAD_PLUGIN } from '../meta';
|
|
18
19
|
import { ThreadAction } from '../types';
|
|
19
20
|
|
|
20
|
-
export default (context:
|
|
21
|
+
export default (context: PluginsContext) =>
|
|
21
22
|
contributes(Capabilities.IntentResolver, [
|
|
22
23
|
createResolver({
|
|
23
24
|
intent: ThreadAction.CreateChannel,
|
|
24
25
|
resolve: ({ spaceId, name }) => ({
|
|
25
26
|
data: {
|
|
26
|
-
object:
|
|
27
|
+
object: create(ChannelType, {
|
|
27
28
|
name,
|
|
28
|
-
queue: refFromDXN(
|
|
29
|
+
queue: refFromDXN(new DXN(DXN.kind.QUEUE, [QueueSubspaceTags.DATA, spaceId, ObjectId.random()])),
|
|
29
30
|
}),
|
|
30
31
|
},
|
|
31
32
|
}),
|
|
@@ -44,9 +45,9 @@ export default (context: PluginContext) =>
|
|
|
44
45
|
}
|
|
45
46
|
}
|
|
46
47
|
|
|
47
|
-
const { state } = context.
|
|
48
|
+
const { state } = context.requestCapability(ThreadCapabilities.MutableState);
|
|
48
49
|
const subjectId = fullyQualifiedId(subject);
|
|
49
|
-
const thread =
|
|
50
|
+
const thread = create(ThreadType, { name, anchor: cursor, messages: [], status: 'staged' });
|
|
50
51
|
const draft = state.drafts[subjectId];
|
|
51
52
|
if (draft) {
|
|
52
53
|
draft.push(thread);
|
|
@@ -69,7 +70,7 @@ export default (context: PluginContext) =>
|
|
|
69
70
|
createResolver({
|
|
70
71
|
intent: ThreadAction.Select,
|
|
71
72
|
resolve: ({ current }) => {
|
|
72
|
-
const { state } = context.
|
|
73
|
+
const { state } = context.requestCapability(ThreadCapabilities.MutableState);
|
|
73
74
|
state.current = current;
|
|
74
75
|
},
|
|
75
76
|
}),
|
|
@@ -102,7 +103,7 @@ export default (context: PluginContext) =>
|
|
|
102
103
|
createResolver({
|
|
103
104
|
intent: ThreadAction.Delete,
|
|
104
105
|
resolve: ({ subject, thread }, undo) => {
|
|
105
|
-
const { state } = context.
|
|
106
|
+
const { state } = context.requestCapability(ThreadCapabilities.MutableState);
|
|
106
107
|
const subjectId = fullyQualifiedId(subject);
|
|
107
108
|
const draft = state.drafts[subjectId];
|
|
108
109
|
if (draft) {
|
|
@@ -165,13 +166,13 @@ export default (context: PluginContext) =>
|
|
|
165
166
|
createResolver({
|
|
166
167
|
intent: ThreadAction.AddMessage,
|
|
167
168
|
resolve: ({ thread, subject, sender, text }) => {
|
|
168
|
-
const { state } = context.
|
|
169
|
+
const { state } = context.requestCapability(ThreadCapabilities.MutableState);
|
|
169
170
|
const subjectId = fullyQualifiedId(subject);
|
|
170
171
|
const space = getSpace(subject);
|
|
171
172
|
invariant(space, 'Space not found');
|
|
172
173
|
const intents = [];
|
|
173
174
|
|
|
174
|
-
const message =
|
|
175
|
+
const message = create(MessageType, {
|
|
175
176
|
sender,
|
|
176
177
|
created: new Date().toISOString(),
|
|
177
178
|
blocks: [{ type: 'text', text }],
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { Capabilities, contributes, type
|
|
5
|
+
import { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';
|
|
6
6
|
import { MarkdownCapabilities } from '@dxos/plugin-markdown';
|
|
7
7
|
|
|
8
8
|
import { ThreadCapabilities } from './capabilities';
|
|
9
9
|
import { threads } from '../extensions';
|
|
10
10
|
|
|
11
|
-
export default (context:
|
|
11
|
+
export default (context: PluginsContext) =>
|
|
12
12
|
contributes(MarkdownCapabilities.Extensions, [
|
|
13
13
|
({ document: doc }) => {
|
|
14
|
-
const { dispatchPromise: dispatch } = context.
|
|
15
|
-
const { state } = context.
|
|
14
|
+
const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);
|
|
15
|
+
const { state } = context.requestCapability(ThreadCapabilities.MutableState);
|
|
16
16
|
return threads(state, doc, dispatch);
|
|
17
17
|
},
|
|
18
18
|
]);
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { Capabilities, contributes } from '@dxos/app-framework';
|
|
6
|
-
import {
|
|
6
|
+
import { create } from '@dxos/live-object';
|
|
7
7
|
|
|
8
8
|
import { THREAD_PLUGIN } from '../meta';
|
|
9
9
|
import { type ThreadSettingsProps, ThreadSettingsSchema } from '../types';
|
|
10
10
|
|
|
11
11
|
export default () => {
|
|
12
|
-
const settings =
|
|
12
|
+
const settings = create<ThreadSettingsProps>({});
|
|
13
13
|
return contributes(Capabilities.Settings, { schema: ThreadSettingsSchema, prefix: THREAD_PLUGIN, value: settings });
|
|
14
14
|
};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { contributes } from '@dxos/app-framework';
|
|
6
|
-
import {
|
|
6
|
+
import { create } from '@dxos/live-object';
|
|
7
7
|
|
|
8
8
|
import { ThreadCapabilities } from './capabilities';
|
|
9
9
|
import { type ThreadState, type ViewStore } from '../types';
|
|
@@ -11,8 +11,8 @@ import { type ThreadState, type ViewStore } from '../types';
|
|
|
11
11
|
const initialViewState = { showResolvedThreads: false };
|
|
12
12
|
|
|
13
13
|
export default () => {
|
|
14
|
-
const state =
|
|
15
|
-
const viewStore =
|
|
14
|
+
const state = create<ThreadState>({ activities: {}, drafts: {} });
|
|
15
|
+
const viewStore = create<ViewStore>({});
|
|
16
16
|
|
|
17
17
|
const getViewState = (subjectId: string) => {
|
|
18
18
|
if (!viewStore[subjectId]) {
|
|
@@ -9,16 +9,17 @@ import React, { useEffect, useState } from 'react';
|
|
|
9
9
|
|
|
10
10
|
import { Capabilities, contributes, createSurface, IntentPlugin } from '@dxos/app-framework';
|
|
11
11
|
import { withPluginManager } from '@dxos/app-framework/testing';
|
|
12
|
-
import {
|
|
12
|
+
import { ObjectId } from '@dxos/echo-schema';
|
|
13
|
+
import { DXN, QueueSubspaceTags } from '@dxos/keys';
|
|
13
14
|
import { refFromDXN } from '@dxos/live-object';
|
|
14
15
|
import { ChannelType, ThreadType } from '@dxos/plugin-space/types';
|
|
15
16
|
import { faker } from '@dxos/random';
|
|
16
17
|
import { useClient } from '@dxos/react-client';
|
|
17
|
-
import {
|
|
18
|
+
import { create, type Space } from '@dxos/react-client/echo';
|
|
18
19
|
import { useIdentity } from '@dxos/react-client/halo';
|
|
19
20
|
import { withClientProvider } from '@dxos/react-client/testing';
|
|
20
21
|
import { Thread } from '@dxos/react-ui-thread';
|
|
21
|
-
import {
|
|
22
|
+
import { MessageType } from '@dxos/schema';
|
|
22
23
|
import { withLayout, withTheme } from '@dxos/storybook-utils';
|
|
23
24
|
|
|
24
25
|
import { ChatContainer } from './ChatContainer';
|
|
@@ -37,8 +38,8 @@ const Story = () => {
|
|
|
37
38
|
setTimeout(async () => {
|
|
38
39
|
const space = await client.spaces.create();
|
|
39
40
|
const channel = space.db.add(
|
|
40
|
-
|
|
41
|
-
queue: refFromDXN(
|
|
41
|
+
create(ChannelType, {
|
|
42
|
+
queue: refFromDXN(new DXN(DXN.kind.QUEUE, [QueueSubspaceTags.DATA, space.id, ObjectId.random()])),
|
|
42
43
|
}),
|
|
43
44
|
);
|
|
44
45
|
setSpace(space);
|
|
@@ -79,8 +80,8 @@ const meta: Meta = {
|
|
|
79
80
|
],
|
|
80
81
|
}),
|
|
81
82
|
withTheme,
|
|
82
|
-
withLayout({ fullscreen: true }),
|
|
83
|
-
withClientProvider({ createSpace: true, types: [ThreadType,
|
|
83
|
+
withLayout({ fullscreen: true, tooltips: true }),
|
|
84
|
+
withClientProvider({ createSpace: true, types: [ThreadType, MessageType] }),
|
|
84
85
|
],
|
|
85
86
|
parameters: { translations },
|
|
86
87
|
};
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import React, { useLayoutEffect, useMemo, useRef, useState } from 'react';
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { createStatic } from '@dxos/echo-schema';
|
|
8
8
|
import { type DXN } from '@dxos/keys';
|
|
9
9
|
import { makeRef } from '@dxos/live-object';
|
|
10
10
|
import { type Space, useMembers, useQueue } from '@dxos/react-client/echo';
|
|
@@ -14,7 +14,7 @@ import { createBasicExtensions, createThemeExtensions, listener } from '@dxos/re
|
|
|
14
14
|
import { StackItem } from '@dxos/react-ui-stack';
|
|
15
15
|
import { mx } from '@dxos/react-ui-theme';
|
|
16
16
|
import { MessageTextbox, type MessageTextboxProps, Thread, ThreadFooter, threadLayout } from '@dxos/react-ui-thread';
|
|
17
|
-
import {
|
|
17
|
+
import { MessageType } from '@dxos/schema';
|
|
18
18
|
|
|
19
19
|
import { MessageContainer } from './MessageContainer';
|
|
20
20
|
import { command } from './command-extension';
|
|
@@ -44,7 +44,7 @@ export const ChatContainer = ({ space, dxn, context, current, autoFocusTextbox }
|
|
|
44
44
|
const id = dxn.toString();
|
|
45
45
|
const identity = useIdentity()!;
|
|
46
46
|
const members = useMembers(space?.key);
|
|
47
|
-
const queue = useQueue<
|
|
47
|
+
const queue = useQueue<MessageType>(dxn, { pollInterval: 1_000 });
|
|
48
48
|
const activity = useStatus(space, id);
|
|
49
49
|
const { t } = useTranslation(THREAD_PLUGIN);
|
|
50
50
|
// TODO(wittjosiah): This is a hack to reset the editor after a message is sent.
|
|
@@ -84,7 +84,7 @@ export const ChatContainer = ({ space, dxn, context, current, autoFocusTextbox }
|
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
queue.append([
|
|
87
|
-
|
|
87
|
+
createStatic(MessageType, {
|
|
88
88
|
sender: { identityDid: identity.did },
|
|
89
89
|
created: new Date().toISOString(),
|
|
90
90
|
blocks: [{ type: 'text', text: messageRef.current }],
|
|
@@ -42,17 +42,25 @@ const ToggleResolvedButton = ({
|
|
|
42
42
|
const { t } = useTranslation(THREAD_PLUGIN);
|
|
43
43
|
const label = t(isResolved ? 'mark as unresolved label' : 'mark as resolved label');
|
|
44
44
|
return (
|
|
45
|
-
<Tooltip.
|
|
46
|
-
<
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
45
|
+
<Tooltip.Root>
|
|
46
|
+
<Tooltip.Trigger asChild>
|
|
47
|
+
<Button
|
|
48
|
+
variant='ghost'
|
|
49
|
+
data-testid='thread.toggle-resolved'
|
|
50
|
+
onClick={onResolve}
|
|
51
|
+
classNames={[commentControlClassNames, !isResolved && hoverableControlItem]}
|
|
52
|
+
>
|
|
53
|
+
<span className='sr-only'>{label}</span>
|
|
54
|
+
{isResolved ? <CheckCircle className={sizeClass} weight='fill' /> : <CheckCircle className={sizeClass} />}
|
|
55
|
+
</Button>
|
|
56
|
+
</Tooltip.Trigger>
|
|
57
|
+
<Tooltip.Portal>
|
|
58
|
+
<Tooltip.Content>
|
|
59
|
+
{label}
|
|
60
|
+
<Tooltip.Arrow />
|
|
61
|
+
</Tooltip.Content>
|
|
62
|
+
</Tooltip.Portal>
|
|
63
|
+
</Tooltip.Root>
|
|
56
64
|
);
|
|
57
65
|
};
|
|
58
66
|
|
|
@@ -60,17 +68,25 @@ const DeleteThreadButton = ({ onDelete }: { onDelete: () => void }) => {
|
|
|
60
68
|
const { t } = useTranslation(THREAD_PLUGIN);
|
|
61
69
|
const label = t('delete thread label');
|
|
62
70
|
return (
|
|
63
|
-
<Tooltip.
|
|
64
|
-
<
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
71
|
+
<Tooltip.Root>
|
|
72
|
+
<Tooltip.Trigger asChild>
|
|
73
|
+
<Button
|
|
74
|
+
variant='ghost'
|
|
75
|
+
data-testid='thread.delete'
|
|
76
|
+
onClick={onDelete}
|
|
77
|
+
classNames={[commentControlClassNames, hoverableControlItem]}
|
|
78
|
+
>
|
|
79
|
+
<span className='sr-only'>{label}</span>
|
|
80
|
+
<X className={sizeClass} />
|
|
81
|
+
</Button>
|
|
82
|
+
</Tooltip.Trigger>
|
|
83
|
+
<Tooltip.Portal>
|
|
84
|
+
<Tooltip.Content classNames='z-30'>
|
|
85
|
+
{label}
|
|
86
|
+
<Tooltip.Arrow />
|
|
87
|
+
</Tooltip.Content>
|
|
88
|
+
</Tooltip.Portal>
|
|
89
|
+
</Tooltip.Root>
|
|
74
90
|
);
|
|
75
91
|
};
|
|
76
92
|
|
|
@@ -140,9 +156,17 @@ export const CommentContainer = ({
|
|
|
140
156
|
)}
|
|
141
157
|
>
|
|
142
158
|
{detached ? (
|
|
143
|
-
<Tooltip.
|
|
144
|
-
<
|
|
145
|
-
|
|
159
|
+
<Tooltip.Root>
|
|
160
|
+
<Tooltip.Trigger asChild>
|
|
161
|
+
<ThreadHeading detached>{thread.name}</ThreadHeading>
|
|
162
|
+
</Tooltip.Trigger>
|
|
163
|
+
<Tooltip.Portal>
|
|
164
|
+
<Tooltip.Content classNames='z-30' side='top'>
|
|
165
|
+
{t('detached thread label')}
|
|
166
|
+
<Tooltip.Arrow />
|
|
167
|
+
</Tooltip.Content>
|
|
168
|
+
</Tooltip.Portal>
|
|
169
|
+
</Tooltip.Root>
|
|
146
170
|
) : (
|
|
147
171
|
<ThreadHeading>{thread.name}</ThreadHeading>
|
|
148
172
|
)}
|
|
@@ -14,7 +14,7 @@ import { faker } from '@dxos/random';
|
|
|
14
14
|
import { Filter, fullyQualifiedId, useQuery, useSpace } from '@dxos/react-client/echo';
|
|
15
15
|
import { useIdentity } from '@dxos/react-client/halo';
|
|
16
16
|
import { type ClientRepeatedComponentProps, ClientRepeater } from '@dxos/react-client/testing';
|
|
17
|
-
import {
|
|
17
|
+
import { MessageType } from '@dxos/schema';
|
|
18
18
|
import { withLayout, withTheme } from '@dxos/storybook-utils';
|
|
19
19
|
|
|
20
20
|
import { CommentsContainer } from './CommentsContainer';
|
|
@@ -26,7 +26,7 @@ faker.seed(1);
|
|
|
26
26
|
const Story = ({ spaceKey }: ClientRepeatedComponentProps) => {
|
|
27
27
|
const identity = useIdentity();
|
|
28
28
|
const space = useSpace(spaceKey);
|
|
29
|
-
const threads = useQuery(space, Filter.
|
|
29
|
+
const threads = useQuery(space, Filter.schema(ThreadType));
|
|
30
30
|
const [detached, setDetached] = useState<string[]>([]);
|
|
31
31
|
|
|
32
32
|
useEffect(() => {
|
|
@@ -54,20 +54,18 @@ const Story = ({ spaceKey }: ClientRepeatedComponentProps) => {
|
|
|
54
54
|
);
|
|
55
55
|
};
|
|
56
56
|
|
|
57
|
+
export const Default = {};
|
|
58
|
+
|
|
57
59
|
const meta: Meta = {
|
|
58
60
|
title: 'plugins/plugin-thread/Comments',
|
|
59
61
|
// TODO(wittjosiah): Use decorator.
|
|
60
|
-
render: () => <ClientRepeater component={Story} createIdentity createSpace types={[ThreadType,
|
|
62
|
+
render: () => <ClientRepeater component={Story} createIdentity createSpace types={[ThreadType, MessageType]} />,
|
|
61
63
|
decorators: [
|
|
62
64
|
withTheme,
|
|
63
|
-
withLayout({ fullscreen: true }),
|
|
64
|
-
withPluginManager({
|
|
65
|
-
plugins: [IntentPlugin()],
|
|
66
|
-
}),
|
|
65
|
+
withLayout({ fullscreen: true, tooltips: true }),
|
|
66
|
+
withPluginManager({ plugins: [IntentPlugin()] }),
|
|
67
67
|
],
|
|
68
68
|
parameters: { translations },
|
|
69
69
|
};
|
|
70
70
|
|
|
71
71
|
export default meta;
|
|
72
|
-
|
|
73
|
-
export const Default = {};
|
|
@@ -8,7 +8,7 @@ import React, { useEffect } from 'react';
|
|
|
8
8
|
import { type ThreadType } from '@dxos/plugin-space/types';
|
|
9
9
|
import { fullyQualifiedId } from '@dxos/react-client/echo';
|
|
10
10
|
import { useTranslation, Trans } from '@dxos/react-ui';
|
|
11
|
-
import {
|
|
11
|
+
import { descriptionText, mx } from '@dxos/react-ui-theme';
|
|
12
12
|
|
|
13
13
|
import { CommentContainer } from './CommentContainer';
|
|
14
14
|
import { type ThreadContainerProps } from './types';
|
|
@@ -59,7 +59,13 @@ export const CommentsContainer = ({
|
|
|
59
59
|
);
|
|
60
60
|
})
|
|
61
61
|
) : (
|
|
62
|
-
<div
|
|
62
|
+
<div
|
|
63
|
+
role='alert'
|
|
64
|
+
className={mx(
|
|
65
|
+
descriptionText,
|
|
66
|
+
'place-self-center border border-dashed border-unAccent rounded-lg text-center p-4 m-4',
|
|
67
|
+
)}
|
|
68
|
+
>
|
|
63
69
|
<h2 className='mbe-2 font-medium text-baseText'>{t('no comments title')}</h2>
|
|
64
70
|
<p>
|
|
65
71
|
<Trans
|