@dxos/plugin-thread 0.7.5-main.9cb18ac → 0.7.5-main.9d2a38b
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/ThreadContainer-4VLBSBI7.mjs +19 -0
- package/dist/lib/browser/ThreadContainer-4VLBSBI7.mjs.map +7 -0
- package/dist/lib/browser/app-graph-builder-Q7A2ZRUA.mjs +121 -0
- package/dist/lib/browser/app-graph-builder-Q7A2ZRUA.mjs.map +7 -0
- package/dist/lib/browser/chunk-2B3EXYZ7.mjs +18 -0
- package/dist/lib/browser/chunk-2B3EXYZ7.mjs.map +7 -0
- package/dist/lib/browser/{chunk-ENERBDYI.mjs → chunk-636QDHE3.mjs} +3 -3
- package/dist/lib/browser/chunk-636QDHE3.mjs.map +7 -0
- package/dist/lib/browser/chunk-BNEWNQBO.mjs +71 -0
- package/dist/lib/browser/chunk-BNEWNQBO.mjs.map +7 -0
- package/dist/lib/browser/{chunk-OD2IZKRP.mjs → chunk-GQONSZ3J.mjs} +19 -83
- package/dist/lib/browser/chunk-GQONSZ3J.mjs.map +7 -0
- package/dist/lib/browser/chunk-NAO3LZMZ.mjs +16 -0
- package/dist/lib/browser/chunk-NAO3LZMZ.mjs.map +7 -0
- package/dist/lib/browser/{chunk-6KTMQPL4.mjs → chunk-NO5AZLUZ.mjs} +7 -3
- package/dist/lib/browser/chunk-NO5AZLUZ.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +149 -939
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/intent-resolver-PIEZ3LKQ.mjs +275 -0
- package/dist/lib/browser/intent-resolver-PIEZ3LKQ.mjs.map +7 -0
- package/dist/lib/browser/markdown-2NBXKXCY.mjs +112 -0
- package/dist/lib/browser/markdown-2NBXKXCY.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-surface-CHCZO4TI.mjs +412 -0
- package/dist/lib/browser/react-surface-CHCZO4TI.mjs.map +7 -0
- package/dist/lib/browser/settings-TKOPRXSU.mjs +22 -0
- package/dist/lib/browser/settings-TKOPRXSU.mjs.map +7 -0
- package/dist/lib/browser/state-GNFUURIC.mjs +33 -0
- package/dist/lib/browser/state-GNFUURIC.mjs.map +7 -0
- package/dist/lib/browser/types.mjs +6 -4
- package/dist/lib/node/{ThreadArticle-ZCNMFBAO.cjs → ThreadContainer-VOYLV4UL.cjs} +14 -13
- package/dist/lib/node/ThreadContainer-VOYLV4UL.cjs.map +7 -0
- package/dist/lib/node/app-graph-builder-ZXW5KUDK.cjs +135 -0
- package/dist/lib/node/app-graph-builder-ZXW5KUDK.cjs.map +7 -0
- package/dist/lib/node/{chunk-2CB5AVBL.cjs → chunk-6PUGKCPR.cjs} +69 -135
- package/dist/lib/node/chunk-6PUGKCPR.cjs.map +7 -0
- package/dist/lib/node/{chunk-VW2P26MZ.cjs → chunk-AUVKOX5Q.cjs} +13 -8
- package/dist/lib/node/chunk-AUVKOX5Q.cjs.map +7 -0
- package/dist/lib/node/chunk-AWSTZ2KN.cjs +93 -0
- package/dist/lib/node/chunk-AWSTZ2KN.cjs.map +7 -0
- package/dist/lib/node/{chunk-IC2NICNC.cjs → chunk-F735VMTN.cjs} +7 -7
- package/dist/lib/node/chunk-F735VMTN.cjs.map +7 -0
- package/dist/lib/node/{meta.cjs → chunk-FPWNZ6TB.cjs} +13 -10
- package/dist/lib/node/chunk-FPWNZ6TB.cjs.map +7 -0
- package/dist/lib/node/{ThreadMain-5AYGCXXP.cjs → chunk-ZRN7B26W.cjs} +26 -23
- package/dist/lib/node/chunk-ZRN7B26W.cjs.map +7 -0
- package/dist/lib/node/index.cjs +147 -933
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/intent-resolver-X5O3SVLF.cjs +287 -0
- package/dist/lib/node/intent-resolver-X5O3SVLF.cjs.map +7 -0
- package/dist/lib/node/markdown-FWRKMSKV.cjs +122 -0
- package/dist/lib/node/markdown-FWRKMSKV.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/react-surface-LO7S2HPR.cjs +414 -0
- package/dist/lib/node/react-surface-LO7S2HPR.cjs.map +7 -0
- package/dist/lib/node/settings-TH4YSUVU.cjs +36 -0
- package/dist/lib/node/settings-TH4YSUVU.cjs.map +7 -0
- package/dist/lib/node/state-TQWEZ6B3.cjs +49 -0
- package/dist/lib/node/state-TQWEZ6B3.cjs.map +7 -0
- package/dist/lib/node/types.cjs +6 -4
- package/dist/lib/node/types.cjs.map +2 -2
- package/dist/lib/node-esm/ThreadContainer-7DZY2MWA.mjs +20 -0
- package/dist/lib/node-esm/ThreadContainer-7DZY2MWA.mjs.map +7 -0
- package/dist/lib/node-esm/app-graph-builder-ATS6HGE6.mjs +122 -0
- package/dist/lib/node-esm/app-graph-builder-ATS6HGE6.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-RMYATBXM.mjs → chunk-B3CF35MY.mjs} +7 -3
- package/dist/lib/node-esm/chunk-B3CF35MY.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-AQ74G3GY.mjs → chunk-DYFIKKDT.mjs} +19 -83
- package/dist/lib/node-esm/chunk-DYFIKKDT.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-7QRGG25F.mjs → chunk-FXUATCLW.mjs} +3 -3
- package/dist/lib/node-esm/chunk-FXUATCLW.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-GS2OILYF.mjs +20 -0
- package/dist/lib/node-esm/chunk-GS2OILYF.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-HLWJTUWZ.mjs +73 -0
- package/dist/lib/node-esm/chunk-HLWJTUWZ.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-ZJITX3TO.mjs +17 -0
- package/dist/lib/node-esm/chunk-ZJITX3TO.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +149 -939
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/intent-resolver-XJWT5X6T.mjs +276 -0
- package/dist/lib/node-esm/intent-resolver-XJWT5X6T.mjs.map +7 -0
- package/dist/lib/node-esm/markdown-6AQFDAW3.mjs +113 -0
- package/dist/lib/node-esm/markdown-6AQFDAW3.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/react-surface-LAF3QIPB.mjs +413 -0
- package/dist/lib/node-esm/react-surface-LAF3QIPB.mjs.map +7 -0
- package/dist/lib/node-esm/settings-KEDRR7RM.mjs +23 -0
- package/dist/lib/node-esm/settings-KEDRR7RM.mjs.map +7 -0
- package/dist/lib/node-esm/state-7MLR27YG.mjs +34 -0
- package/dist/lib/node-esm/state-7MLR27YG.mjs.map +7 -0
- package/dist/lib/node-esm/types.mjs +6 -4
- package/dist/types/src/ThreadPlugin.d.ts +1 -3
- package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +180 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
- package/dist/types/src/capabilities/capabilities.d.ts +15 -0
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +187 -0
- package/dist/types/src/capabilities/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/intent-resolver.d.ts +4 -0
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/markdown.d.ts +4 -0
- package/dist/types/src/capabilities/markdown.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts +4 -0
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
- package/dist/types/src/capabilities/settings.d.ts +4 -0
- package/dist/types/src/capabilities/settings.d.ts.map +1 -0
- package/dist/types/src/capabilities/state.d.ts +7 -0
- package/dist/types/src/capabilities/state.d.ts.map +1 -0
- package/dist/types/src/components/Chat.stories.d.ts.map +1 -1
- package/dist/types/src/components/CommentContainer.d.ts +1 -1
- package/dist/types/src/components/CommentContainer.d.ts.map +1 -1
- package/dist/types/src/components/CommentsContainer.d.ts +2 -7
- package/dist/types/src/components/CommentsContainer.d.ts.map +1 -1
- package/dist/types/src/components/ThreadComplementary.d.ts +1 -5
- package/dist/types/src/components/ThreadComplementary.d.ts.map +1 -1
- package/dist/types/src/components/ThreadContainer.d.ts +7 -0
- package/dist/types/src/components/ThreadContainer.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +3 -15
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/components/types.d.ts +5 -5
- package/dist/types/src/components/types.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +1 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +3 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +10 -14
- package/dist/types/src/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +30 -38
- package/src/ThreadPlugin.tsx +105 -470
- package/src/capabilities/app-graph-builder.ts +120 -0
- package/src/capabilities/capabilities.ts +19 -0
- package/src/capabilities/index.ts +14 -0
- package/src/capabilities/intent-resolver.ts +223 -0
- package/src/capabilities/markdown.ts +18 -0
- package/src/capabilities/react-surface.tsx +61 -0
- package/src/capabilities/settings.ts +14 -0
- package/src/capabilities/state.ts +25 -0
- package/src/components/Chat.stories.tsx +25 -23
- package/src/components/CommentContainer.tsx +16 -30
- package/src/components/CommentsContainer.tsx +1 -17
- package/src/components/ThreadComplementary.tsx +82 -48
- package/src/components/ThreadContainer.tsx +22 -0
- package/src/components/index.ts +1 -2
- package/src/components/types.ts +5 -5
- package/src/index.ts +1 -5
- package/src/meta.ts +1 -1
- package/src/translations.ts +1 -0
- package/src/types.ts +10 -29
- package/dist/lib/browser/ThreadArticle-EWLTNU6Z.mjs +0 -18
- package/dist/lib/browser/ThreadArticle-EWLTNU6Z.mjs.map +0 -7
- package/dist/lib/browser/ThreadMain-ABEDFWHC.mjs +0 -26
- package/dist/lib/browser/ThreadMain-ABEDFWHC.mjs.map +0 -7
- package/dist/lib/browser/chunk-6KTMQPL4.mjs.map +0 -7
- package/dist/lib/browser/chunk-ENERBDYI.mjs.map +0 -7
- package/dist/lib/browser/chunk-OD2IZKRP.mjs.map +0 -7
- package/dist/lib/browser/meta.mjs +0 -11
- package/dist/lib/browser/meta.mjs.map +0 -7
- package/dist/lib/node/ThreadArticle-ZCNMFBAO.cjs.map +0 -7
- package/dist/lib/node/ThreadMain-5AYGCXXP.cjs.map +0 -7
- package/dist/lib/node/chunk-2CB5AVBL.cjs.map +0 -7
- package/dist/lib/node/chunk-IC2NICNC.cjs.map +0 -7
- package/dist/lib/node/chunk-VW2P26MZ.cjs.map +0 -7
- package/dist/lib/node/meta.cjs.map +0 -7
- package/dist/lib/node-esm/ThreadArticle-F37HYTOU.mjs +0 -19
- package/dist/lib/node-esm/ThreadArticle-F37HYTOU.mjs.map +0 -7
- package/dist/lib/node-esm/ThreadMain-OL6ZHNZY.mjs +0 -27
- package/dist/lib/node-esm/ThreadMain-OL6ZHNZY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-7QRGG25F.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-AQ74G3GY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-RMYATBXM.mjs.map +0 -7
- package/dist/lib/node-esm/meta.mjs +0 -12
- package/dist/lib/node-esm/meta.mjs.map +0 -7
- package/dist/types/src/components/ThreadArticle.d.ts +0 -5
- package/dist/types/src/components/ThreadArticle.d.ts.map +0 -1
- package/dist/types/src/components/ThreadMain.d.ts +0 -7
- package/dist/types/src/components/ThreadMain.d.ts.map +0 -1
- package/src/components/ThreadArticle.tsx +0 -18
- package/src/components/ThreadMain.tsx +0 -27
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var react_surface_LO7S2HPR_exports = {};
|
|
30
|
+
__export(react_surface_LO7S2HPR_exports, {
|
|
31
|
+
default: () => react_surface_default
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(react_surface_LO7S2HPR_exports);
|
|
34
|
+
var import_chunk_ZRN7B26W = require("./chunk-ZRN7B26W.cjs");
|
|
35
|
+
var import_chunk_FPWNZ6TB = require("./chunk-FPWNZ6TB.cjs");
|
|
36
|
+
var import_chunk_6PUGKCPR = require("./chunk-6PUGKCPR.cjs");
|
|
37
|
+
var import_chunk_AWSTZ2KN = require("./chunk-AWSTZ2KN.cjs");
|
|
38
|
+
var import_chunk_AUVKOX5Q = require("./chunk-AUVKOX5Q.cjs");
|
|
39
|
+
var import_chunk_F735VMTN = require("./chunk-F735VMTN.cjs");
|
|
40
|
+
var import_react = __toESM(require("react"));
|
|
41
|
+
var import_app_framework = require("@dxos/app-framework");
|
|
42
|
+
var import_types = require("@dxos/plugin-space/types");
|
|
43
|
+
var import_echo = require("@dxos/react-client/echo");
|
|
44
|
+
var import_react2 = require("react");
|
|
45
|
+
var import_react3 = require("@phosphor-icons/react");
|
|
46
|
+
var import_react4 = __toESM(require("react"));
|
|
47
|
+
var import_live_object = require("@dxos/live-object");
|
|
48
|
+
var import_echo2 = require("@dxos/react-client/echo");
|
|
49
|
+
var import_halo = require("@dxos/react-client/halo");
|
|
50
|
+
var import_react_ui = require("@dxos/react-ui");
|
|
51
|
+
var import_react_ui_editor = require("@dxos/react-ui-editor");
|
|
52
|
+
var import_react_ui_theme = require("@dxos/react-ui-theme");
|
|
53
|
+
var import_react_ui_thread = require("@dxos/react-ui-thread");
|
|
54
|
+
var import_util = require("@dxos/util");
|
|
55
|
+
var import_react5 = require("@phosphor-icons/react");
|
|
56
|
+
var import_react6 = __toESM(require("react"));
|
|
57
|
+
var import_echo3 = require("@dxos/react-client/echo");
|
|
58
|
+
var import_react_ui2 = require("@dxos/react-ui");
|
|
59
|
+
var import_react_ui_theme2 = require("@dxos/react-ui-theme");
|
|
60
|
+
var import_react7 = __toESM(require("react"));
|
|
61
|
+
var import_app_framework2 = require("@dxos/app-framework");
|
|
62
|
+
var import_plugin_space = require("@dxos/plugin-space");
|
|
63
|
+
var import_types2 = require("@dxos/plugin-space/types");
|
|
64
|
+
var import_echo4 = require("@dxos/react-client/echo");
|
|
65
|
+
var import_halo2 = require("@dxos/react-client/halo");
|
|
66
|
+
var import_react_ui_attention = require("@dxos/react-ui-attention");
|
|
67
|
+
var import_util2 = require("@dxos/util");
|
|
68
|
+
var import_react8 = __toESM(require("react"));
|
|
69
|
+
var import_react_ui3 = require("@dxos/react-ui");
|
|
70
|
+
var import_react_ui_form = require("@dxos/react-ui-form");
|
|
71
|
+
var sizeClass = (0, import_react_ui_theme.getSize)(4);
|
|
72
|
+
var commentControlClassNames = "!p-1 !min-bs-0 transition-opacity";
|
|
73
|
+
var ToggleResolvedButton = ({ isResolved, onResolve }) => {
|
|
74
|
+
const { t } = (0, import_react_ui.useTranslation)(import_chunk_F735VMTN.THREAD_PLUGIN);
|
|
75
|
+
const label = t(isResolved ? "mark as unresolved label" : "mark as resolved label");
|
|
76
|
+
return /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Tooltip.Root, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Tooltip.Trigger, {
|
|
77
|
+
asChild: true
|
|
78
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Button, {
|
|
79
|
+
variant: "ghost",
|
|
80
|
+
"data-testid": "thread.toggle-resolved",
|
|
81
|
+
onClick: onResolve,
|
|
82
|
+
classNames: [
|
|
83
|
+
commentControlClassNames,
|
|
84
|
+
!isResolved && import_react_ui_theme.hoverableControlItem
|
|
85
|
+
]
|
|
86
|
+
}, /* @__PURE__ */ import_react4.default.createElement("span", {
|
|
87
|
+
className: "sr-only"
|
|
88
|
+
}, label), isResolved ? /* @__PURE__ */ import_react4.default.createElement(import_react3.CheckCircle, {
|
|
89
|
+
className: sizeClass,
|
|
90
|
+
weight: "fill"
|
|
91
|
+
}) : /* @__PURE__ */ import_react4.default.createElement(import_react3.CheckCircle, {
|
|
92
|
+
className: sizeClass
|
|
93
|
+
}))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Tooltip.Portal, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Tooltip.Content, null, label, /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Tooltip.Arrow, null))));
|
|
94
|
+
};
|
|
95
|
+
var DeleteThreadButton = ({ onDelete }) => {
|
|
96
|
+
const { t } = (0, import_react_ui.useTranslation)(import_chunk_F735VMTN.THREAD_PLUGIN);
|
|
97
|
+
const label = t("delete thread label");
|
|
98
|
+
return /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Tooltip.Root, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Tooltip.Trigger, {
|
|
99
|
+
asChild: true
|
|
100
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Button, {
|
|
101
|
+
variant: "ghost",
|
|
102
|
+
"data-testid": "thread.delete",
|
|
103
|
+
onClick: onDelete,
|
|
104
|
+
classNames: [
|
|
105
|
+
commentControlClassNames,
|
|
106
|
+
import_react_ui_theme.hoverableControlItem
|
|
107
|
+
]
|
|
108
|
+
}, /* @__PURE__ */ import_react4.default.createElement("span", {
|
|
109
|
+
className: "sr-only"
|
|
110
|
+
}, label), /* @__PURE__ */ import_react4.default.createElement(import_react3.X, {
|
|
111
|
+
className: sizeClass
|
|
112
|
+
}))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Tooltip.Portal, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Tooltip.Content, {
|
|
113
|
+
classNames: "z-30"
|
|
114
|
+
}, label, /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Tooltip.Arrow, null))));
|
|
115
|
+
};
|
|
116
|
+
var CommentContainer = ({ thread, detached, current, onAttend, onComment, onResolve, onMessageDelete, onThreadDelete }) => {
|
|
117
|
+
const identity = (0, import_halo.useIdentity)();
|
|
118
|
+
const space = (0, import_echo2.getSpace)(thread);
|
|
119
|
+
const members = (0, import_echo2.useMembers)(space?.key);
|
|
120
|
+
const activity = (0, import_chunk_AWSTZ2KN.useStatus)(space, (0, import_echo2.fullyQualifiedId)(thread));
|
|
121
|
+
const { t } = (0, import_react_ui.useTranslation)(import_chunk_F735VMTN.THREAD_PLUGIN);
|
|
122
|
+
const threadScrollRef = (0, import_react4.useRef)(null);
|
|
123
|
+
const { themeMode } = (0, import_react_ui.useThemeContext)();
|
|
124
|
+
const textboxMetadata = (0, import_chunk_6PUGKCPR.getMessageMetadata)((0, import_echo2.fullyQualifiedId)(thread), identity);
|
|
125
|
+
const [_count, _setCount] = (0, import_react4.useState)(0);
|
|
126
|
+
const rerenderEditor = () => _setCount((count) => count + 1);
|
|
127
|
+
const messageRef = (0, import_react4.useRef)("");
|
|
128
|
+
const extensions = (0, import_react4.useMemo)(() => [
|
|
129
|
+
(0, import_react_ui_editor.createBasicExtensions)({
|
|
130
|
+
placeholder: t("message placeholder")
|
|
131
|
+
}),
|
|
132
|
+
(0, import_react_ui_editor.createThemeExtensions)({
|
|
133
|
+
themeMode
|
|
134
|
+
}),
|
|
135
|
+
(0, import_react_ui_editor.listener)({
|
|
136
|
+
onChange: (text) => messageRef.current = text
|
|
137
|
+
}),
|
|
138
|
+
import_chunk_6PUGKCPR.command
|
|
139
|
+
], [
|
|
140
|
+
_count
|
|
141
|
+
]);
|
|
142
|
+
const scrollToEnd = (behavior) => setTimeout(() => threadScrollRef.current?.scrollIntoView({
|
|
143
|
+
behavior,
|
|
144
|
+
block: "end"
|
|
145
|
+
}), 10);
|
|
146
|
+
const handleAttend = (0, import_react4.useCallback)(() => onAttend?.(thread), [
|
|
147
|
+
onAttend,
|
|
148
|
+
thread
|
|
149
|
+
]);
|
|
150
|
+
const handleResolve = (0, import_react4.useCallback)(() => onResolve?.(thread), [
|
|
151
|
+
onResolve,
|
|
152
|
+
thread
|
|
153
|
+
]);
|
|
154
|
+
const handleMessageDelete = (0, import_react4.useCallback)((id) => onMessageDelete?.(thread, id), [
|
|
155
|
+
onMessageDelete,
|
|
156
|
+
thread
|
|
157
|
+
]);
|
|
158
|
+
const handleThreadDelete = (0, import_react4.useCallback)(() => onThreadDelete?.(thread), [
|
|
159
|
+
onThreadDelete,
|
|
160
|
+
thread
|
|
161
|
+
]);
|
|
162
|
+
const handleComment = (0, import_react4.useCallback)(() => {
|
|
163
|
+
if (!messageRef.current) {
|
|
164
|
+
return false;
|
|
165
|
+
}
|
|
166
|
+
onComment?.(thread, messageRef.current);
|
|
167
|
+
messageRef.current = "";
|
|
168
|
+
scrollToEnd("instant");
|
|
169
|
+
rerenderEditor();
|
|
170
|
+
return true;
|
|
171
|
+
}, [
|
|
172
|
+
thread,
|
|
173
|
+
identity
|
|
174
|
+
]);
|
|
175
|
+
return /* @__PURE__ */ import_react4.default.createElement(import_react_ui_thread.Thread, {
|
|
176
|
+
onClickCapture: handleAttend,
|
|
177
|
+
onFocusCapture: handleAttend,
|
|
178
|
+
current,
|
|
179
|
+
id: (0, import_echo2.fullyQualifiedId)(thread)
|
|
180
|
+
}, /* @__PURE__ */ import_react4.default.createElement("div", {
|
|
181
|
+
role: "none",
|
|
182
|
+
className: (0, import_react_ui_theme.mx)("col-span-2 grid grid-cols-[var(--rail-size)_1fr_min-content]", import_react_ui_theme.hoverableControls, import_react_ui_theme.hoverableFocusedWithinControls)
|
|
183
|
+
}, detached ? /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Tooltip.Root, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Tooltip.Trigger, {
|
|
184
|
+
asChild: true
|
|
185
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui_thread.ThreadHeading, {
|
|
186
|
+
detached: true
|
|
187
|
+
}, thread.name)), /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Tooltip.Portal, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Tooltip.Content, {
|
|
188
|
+
classNames: "z-30",
|
|
189
|
+
side: "top"
|
|
190
|
+
}, t("detached thread label"), /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Tooltip.Arrow, null)))) : /* @__PURE__ */ import_react4.default.createElement(import_react_ui_thread.ThreadHeading, null, thread.name), /* @__PURE__ */ import_react4.default.createElement("div", {
|
|
191
|
+
className: "flex flex-row items-center pli-1"
|
|
192
|
+
}, thread.status === "staged" && /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Tag, {
|
|
193
|
+
palette: "neutral"
|
|
194
|
+
}, t("draft button")), onResolve && !(thread?.status === "staged") && /* @__PURE__ */ import_react4.default.createElement(ToggleResolvedButton, {
|
|
195
|
+
isResolved: thread?.status === "resolved",
|
|
196
|
+
onResolve: handleResolve
|
|
197
|
+
}), onThreadDelete && /* @__PURE__ */ import_react4.default.createElement(DeleteThreadButton, {
|
|
198
|
+
onDelete: handleThreadDelete
|
|
199
|
+
}))), import_live_object.RefArray.allResolvedTargets(thread.messages?.filter(import_util.nonNullable) ?? []).map((message) => /* @__PURE__ */ import_react4.default.createElement(import_chunk_6PUGKCPR.MessageContainer, {
|
|
200
|
+
key: message.id,
|
|
201
|
+
message,
|
|
202
|
+
members,
|
|
203
|
+
onDelete: handleMessageDelete
|
|
204
|
+
})), /* @__PURE__ */ import_react4.default.createElement(import_react_ui_thread.MessageTextbox, {
|
|
205
|
+
extensions,
|
|
206
|
+
onSend: handleComment,
|
|
207
|
+
...textboxMetadata
|
|
208
|
+
}), /* @__PURE__ */ import_react4.default.createElement(import_react_ui_thread.ThreadFooter, {
|
|
209
|
+
activity
|
|
210
|
+
}, t("activity message")), /* @__PURE__ */ import_react4.default.createElement("div", {
|
|
211
|
+
role: "none",
|
|
212
|
+
className: "bs-px -mbs-px",
|
|
213
|
+
ref: threadScrollRef
|
|
214
|
+
}));
|
|
215
|
+
};
|
|
216
|
+
var CommentsContainer = ({ threads, detached = [], currentId, showResolvedThreads, ...props }) => {
|
|
217
|
+
const { t } = (0, import_react_ui2.useTranslation)(import_chunk_F735VMTN.THREAD_PLUGIN);
|
|
218
|
+
const filteredThreads = showResolvedThreads ? threads : threads.filter((thread) => !(thread?.status === "resolved"));
|
|
219
|
+
(0, import_react6.useEffect)(() => {
|
|
220
|
+
if (currentId) {
|
|
221
|
+
document.getElementById(currentId)?.scrollIntoView({
|
|
222
|
+
behavior: "smooth",
|
|
223
|
+
block: "end"
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
}, [
|
|
227
|
+
currentId
|
|
228
|
+
]);
|
|
229
|
+
return /* @__PURE__ */ import_react6.default.createElement(import_react6.default.Fragment, null, filteredThreads.length > 0 ? filteredThreads.map((thread) => {
|
|
230
|
+
const threadId = (0, import_echo3.fullyQualifiedId)(thread);
|
|
231
|
+
return /* @__PURE__ */ import_react6.default.createElement(CommentContainer, {
|
|
232
|
+
key: threadId,
|
|
233
|
+
thread,
|
|
234
|
+
current: currentId === threadId,
|
|
235
|
+
detached: detached.includes(threadId),
|
|
236
|
+
...props
|
|
237
|
+
});
|
|
238
|
+
}) : /* @__PURE__ */ import_react6.default.createElement("div", {
|
|
239
|
+
role: "alert",
|
|
240
|
+
className: (0, import_react_ui_theme2.mx)(import_react_ui_theme2.descriptionText, "place-self-center border border-dashed border-unAccent rounded-lg text-center p-4 m-4")
|
|
241
|
+
}, /* @__PURE__ */ import_react6.default.createElement("h2", {
|
|
242
|
+
className: "mbe-2 font-medium text-baseText"
|
|
243
|
+
}, t("no comments title")), /* @__PURE__ */ import_react6.default.createElement("p", null, /* @__PURE__ */ import_react6.default.createElement(import_react_ui2.Trans, {
|
|
244
|
+
t,
|
|
245
|
+
i18nKey: "no comments message",
|
|
246
|
+
components: {
|
|
247
|
+
commentIcon: /* @__PURE__ */ import_react6.default.createElement(import_react5.ChatText, {
|
|
248
|
+
className: "inline-block"
|
|
249
|
+
})
|
|
250
|
+
}
|
|
251
|
+
}))));
|
|
252
|
+
};
|
|
253
|
+
var ThreadComplementary = ({ subject }) => {
|
|
254
|
+
const { dispatchPromise: dispatch } = (0, import_app_framework2.useIntentDispatcher)();
|
|
255
|
+
const identity = (0, import_halo2.useIdentity)();
|
|
256
|
+
const { state, getViewState } = (0, import_app_framework2.useCapability)(import_chunk_FPWNZ6TB.ThreadCapabilities.MutableState);
|
|
257
|
+
const { showResolvedThreads } = getViewState((0, import_echo4.fullyQualifiedId)(subject));
|
|
258
|
+
const drafts = state.drafts[(0, import_echo4.fullyQualifiedId)(subject)];
|
|
259
|
+
const threadsIntegrators = (0, import_app_framework2.useCapabilities)(import_plugin_space.ThreadCapabilities.Thread);
|
|
260
|
+
const createSort = (0, import_react7.useMemo)(() => threadsIntegrators.find((p) => p.predicate(subject))?.createSort, [
|
|
261
|
+
threadsIntegrators,
|
|
262
|
+
subject
|
|
263
|
+
]);
|
|
264
|
+
const sort = (0, import_react7.useMemo)(() => createSort?.(subject), [
|
|
265
|
+
createSort,
|
|
266
|
+
subject
|
|
267
|
+
]);
|
|
268
|
+
const threadObjects = import_echo4.RefArray.allResolvedTargets(subject.threads ?? []);
|
|
269
|
+
const threads = (0, import_react7.useMemo)(() => {
|
|
270
|
+
return threadObjects.concat(drafts ?? []).filter(import_util2.nonNullable);
|
|
271
|
+
}, [
|
|
272
|
+
JSON.stringify(threadObjects),
|
|
273
|
+
JSON.stringify(drafts)
|
|
274
|
+
]);
|
|
275
|
+
const detachedIds = (0, import_react7.useMemo)(() => {
|
|
276
|
+
return threads.filter(({ anchor }) => !anchor).map((thread) => (0, import_echo4.fullyQualifiedId)(thread));
|
|
277
|
+
}, [
|
|
278
|
+
threads
|
|
279
|
+
]);
|
|
280
|
+
(0, import_react7.useEffect)(() => {
|
|
281
|
+
if (!sort) {
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
threads.sort((a, b) => sort(a?.anchor, b?.anchor));
|
|
285
|
+
}, [
|
|
286
|
+
sort,
|
|
287
|
+
threads
|
|
288
|
+
]);
|
|
289
|
+
const attended = (0, import_react_ui_attention.useAttended)();
|
|
290
|
+
const qualifiedSubjectId = (0, import_echo4.fullyQualifiedId)(subject);
|
|
291
|
+
const handleAttend = (0, import_react7.useCallback)((thread) => {
|
|
292
|
+
const threadId = (0, import_echo4.fullyQualifiedId)(thread);
|
|
293
|
+
if (state.current !== threadId) {
|
|
294
|
+
state.current = threadId;
|
|
295
|
+
void dispatch((0, import_app_framework2.createIntent)(import_app_framework2.LayoutAction.ScrollIntoView, {
|
|
296
|
+
id: (0, import_echo4.fullyQualifiedId)(subject),
|
|
297
|
+
cursor: thread.anchor,
|
|
298
|
+
ref: threadId
|
|
299
|
+
}));
|
|
300
|
+
}
|
|
301
|
+
}, [
|
|
302
|
+
state.current,
|
|
303
|
+
dispatch,
|
|
304
|
+
subject
|
|
305
|
+
]);
|
|
306
|
+
const handleComment = (0, import_react7.useCallback)(async (thread, message) => {
|
|
307
|
+
thread.messages.push((0, import_echo4.makeRef)((0, import_echo4.create)(import_types2.MessageType, {
|
|
308
|
+
sender: {
|
|
309
|
+
identityKey: identity?.identityKey.toHex()
|
|
310
|
+
},
|
|
311
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
312
|
+
text: message
|
|
313
|
+
})));
|
|
314
|
+
await dispatch((0, import_app_framework2.createIntent)(import_chunk_AUVKOX5Q.ThreadAction.OnMessageAdd, {
|
|
315
|
+
thread,
|
|
316
|
+
subject
|
|
317
|
+
}));
|
|
318
|
+
state.current = (0, import_echo4.fullyQualifiedId)(thread);
|
|
319
|
+
}, [
|
|
320
|
+
dispatch,
|
|
321
|
+
identity,
|
|
322
|
+
subject
|
|
323
|
+
]);
|
|
324
|
+
const handleResolve = (0, import_react7.useCallback)((thread) => dispatch((0, import_app_framework2.createIntent)(import_chunk_AUVKOX5Q.ThreadAction.ToggleResolved, {
|
|
325
|
+
thread
|
|
326
|
+
})), [
|
|
327
|
+
dispatch
|
|
328
|
+
]);
|
|
329
|
+
const handleThreadDelete = (0, import_react7.useCallback)((thread) => dispatch((0, import_app_framework2.createIntent)(import_chunk_AUVKOX5Q.ThreadAction.Delete, {
|
|
330
|
+
thread,
|
|
331
|
+
subject
|
|
332
|
+
})), [
|
|
333
|
+
dispatch,
|
|
334
|
+
subject
|
|
335
|
+
]);
|
|
336
|
+
const handleMessageDelete = (0, import_react7.useCallback)((thread, messageId) => dispatch((0, import_app_framework2.createIntent)(import_chunk_AUVKOX5Q.ThreadAction.DeleteMessage, {
|
|
337
|
+
thread,
|
|
338
|
+
subject,
|
|
339
|
+
messageId
|
|
340
|
+
})), [
|
|
341
|
+
dispatch,
|
|
342
|
+
subject
|
|
343
|
+
]);
|
|
344
|
+
return /* @__PURE__ */ import_react7.default.createElement(CommentsContainer, {
|
|
345
|
+
threads,
|
|
346
|
+
detached: detachedIds,
|
|
347
|
+
currentId: attended.includes(qualifiedSubjectId) ? state.current : void 0,
|
|
348
|
+
showResolvedThreads,
|
|
349
|
+
onAttend: handleAttend,
|
|
350
|
+
onComment: handleComment,
|
|
351
|
+
onResolve: handleResolve,
|
|
352
|
+
onMessageDelete: handleMessageDelete,
|
|
353
|
+
onThreadDelete: handleThreadDelete
|
|
354
|
+
});
|
|
355
|
+
};
|
|
356
|
+
var ThreadSettings = ({ settings }) => {
|
|
357
|
+
const { t } = (0, import_react_ui3.useTranslation)(import_chunk_F735VMTN.THREAD_PLUGIN);
|
|
358
|
+
return /* @__PURE__ */ import_react8.default.createElement(import_react8.default.Fragment, null, /* @__PURE__ */ import_react8.default.createElement(import_react_ui_form.DeprecatedFormInput, {
|
|
359
|
+
label: t("settings standalone label")
|
|
360
|
+
}, /* @__PURE__ */ import_react8.default.createElement(import_react_ui3.Input.Switch, {
|
|
361
|
+
checked: settings.standalone,
|
|
362
|
+
onCheckedChange: (checked) => settings.standalone = !!checked
|
|
363
|
+
})));
|
|
364
|
+
};
|
|
365
|
+
var ThreadContainer = (0, import_react2.lazy)(() => import("./ThreadContainer-VOYLV4UL.cjs"));
|
|
366
|
+
var react_surface_default = () => (0, import_app_framework.contributes)(import_app_framework.Capabilities.ReactSurface, [
|
|
367
|
+
(0, import_app_framework.createSurface)({
|
|
368
|
+
id: `${import_chunk_F735VMTN.THREAD_PLUGIN}/channel`,
|
|
369
|
+
role: "article",
|
|
370
|
+
filter: (data) => data.subject instanceof import_types.ChannelType && !!data.subject.threads[0],
|
|
371
|
+
component: ({ data, role }) => {
|
|
372
|
+
const location = (0, import_app_framework.useCapability)(import_app_framework.Capabilities.Location);
|
|
373
|
+
const channel = data.subject;
|
|
374
|
+
const thread = channel.threads[0].target;
|
|
375
|
+
if ((0, import_app_framework.isLayoutParts)(location?.active) && location.active.main) {
|
|
376
|
+
const layoutEntries = location.active.main;
|
|
377
|
+
const currentPosition = layoutEntries.findIndex((entry) => channel.id === entry.id);
|
|
378
|
+
if (currentPosition > 0) {
|
|
379
|
+
const objectToTheLeft = layoutEntries[currentPosition - 1];
|
|
380
|
+
const context = (0, import_echo.getSpace)(channel)?.db.getObjectById(objectToTheLeft.id);
|
|
381
|
+
return /* @__PURE__ */ import_react.default.createElement(ThreadContainer, {
|
|
382
|
+
role,
|
|
383
|
+
thread,
|
|
384
|
+
context
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
return /* @__PURE__ */ import_react.default.createElement(ThreadContainer, {
|
|
389
|
+
role,
|
|
390
|
+
thread
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
}),
|
|
394
|
+
(0, import_app_framework.createSurface)({
|
|
395
|
+
id: `${import_chunk_F735VMTN.THREAD_PLUGIN}/thread`,
|
|
396
|
+
role: "complementary--comments",
|
|
397
|
+
filter: (data) => !!data.subject && typeof data.subject === "object" && "threads" in data.subject && Array.isArray(data.subject.threads) && !(data.subject instanceof import_types.ChannelType),
|
|
398
|
+
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(ThreadComplementary, {
|
|
399
|
+
subject: data.subject
|
|
400
|
+
})
|
|
401
|
+
}),
|
|
402
|
+
(0, import_app_framework.createSurface)({
|
|
403
|
+
id: `${import_chunk_F735VMTN.THREAD_PLUGIN}/settings`,
|
|
404
|
+
role: "settings",
|
|
405
|
+
filter: (data) => data.subject === import_chunk_F735VMTN.THREAD_PLUGIN,
|
|
406
|
+
component: () => {
|
|
407
|
+
const settings = (0, import_app_framework.useCapability)(import_app_framework.Capabilities.SettingsStore).getStore(import_chunk_F735VMTN.THREAD_PLUGIN).value;
|
|
408
|
+
return /* @__PURE__ */ import_react.default.createElement(ThreadSettings, {
|
|
409
|
+
settings
|
|
410
|
+
});
|
|
411
|
+
}
|
|
412
|
+
})
|
|
413
|
+
]);
|
|
414
|
+
//# sourceMappingURL=react-surface-LO7S2HPR.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/index.ts", "../../../src/components/CommentContainer.tsx", "../../../src/components/CommentsContainer.tsx", "../../../src/components/ThreadComplementary.tsx", "../../../src/components/ThreadSettings.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, createSurface, isLayoutParts, useCapability } from '@dxos/app-framework';\nimport { type Ref } from '@dxos/echo-schema';\nimport { ChannelType, type ThreadType } from '@dxos/plugin-space/types';\nimport { getSpace } from '@dxos/react-client/echo';\n\nimport { ThreadContainer, ThreadComplementary, ThreadSettings } from '../components';\nimport { THREAD_PLUGIN } from '../meta';\nimport { type ThreadSettingsProps } from '../types';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${THREAD_PLUGIN}/channel`,\n role: 'article',\n filter: (data): data is { subject: ChannelType } =>\n data.subject instanceof ChannelType && !!data.subject.threads[0],\n component: ({ data, role }) => {\n const location = useCapability(Capabilities.Location);\n const channel = data.subject;\n const thread = channel.threads[0].target!;\n // TODO(zan): Maybe we should have utility for positional main object ids.\n if (isLayoutParts(location?.active) && location.active.main) {\n const layoutEntries = location.active.main;\n const currentPosition = layoutEntries.findIndex((entry) => channel.id === entry.id);\n if (currentPosition > 0) {\n const objectToTheLeft = layoutEntries[currentPosition - 1];\n const context = getSpace(channel)?.db.getObjectById(objectToTheLeft.id);\n return <ThreadContainer role={role} thread={thread} context={context} />;\n }\n }\n\n return <ThreadContainer role={role} thread={thread} />;\n },\n }),\n createSurface({\n id: `${THREAD_PLUGIN}/thread`,\n role: 'complementary--comments',\n filter: (data): data is { subject: { threads: Ref<ThreadType>[] } } =>\n !!data.subject &&\n typeof data.subject === 'object' &&\n 'threads' in data.subject &&\n Array.isArray(data.subject.threads) &&\n !(data.subject instanceof ChannelType),\n component: ({ data }) => <ThreadComplementary subject={data.subject} />,\n }),\n createSurface({\n id: `${THREAD_PLUGIN}/settings`,\n role: 'settings',\n filter: (data): data is any => data.subject === THREAD_PLUGIN,\n component: () => {\n const settings = useCapability(Capabilities.SettingsStore).getStore<ThreadSettingsProps>(THREAD_PLUGIN)!.value;\n return <ThreadSettings settings={settings} />;\n },\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport const ThreadContainer = lazy(() => import('./ThreadContainer'));\n\n// TODO(wittjosiah): Suspense boundary for sidebar?\nexport * from './CommentContainer';\nexport * from './CommentsContainer';\nexport * from './ChatContainer';\nexport * from './MessageContainer';\nexport * from './ThreadComplementary';\nexport * from './ThreadSettings';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { CheckCircle, X } from '@phosphor-icons/react';\nimport React, { useCallback, useMemo, useRef, useState } from 'react';\n\nimport { RefArray } from '@dxos/live-object';\nimport { fullyQualifiedId, getSpace, useMembers } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { Button, Tag, Tooltip, useThemeContext, useTranslation } from '@dxos/react-ui';\nimport { createBasicExtensions, createThemeExtensions, listener } from '@dxos/react-ui-editor';\nimport {\n getSize,\n hoverableControlItem,\n hoverableControls,\n hoverableFocusedWithinControls,\n mx,\n} from '@dxos/react-ui-theme';\nimport { MessageTextbox, type MessageTextboxProps, Thread, ThreadFooter, ThreadHeading } from '@dxos/react-ui-thread';\nimport { nonNullable } from '@dxos/util';\n\nimport { MessageContainer } from './MessageContainer';\nimport { command } from './command-extension';\nimport { type ThreadContainerProps } from './types';\nimport { useStatus } from '../hooks';\nimport { THREAD_PLUGIN } from '../meta';\nimport { getMessageMetadata } from '../util';\n\nconst sizeClass = getSize(4);\n\n// TODO(thure): #8149\nconst commentControlClassNames = '!p-1 !min-bs-0 transition-opacity';\n\nconst ToggleResolvedButton = ({\n isResolved,\n onResolve,\n}: {\n isResolved: boolean | undefined;\n onResolve: () => void;\n}) => {\n const { t } = useTranslation(THREAD_PLUGIN);\n const label = t(isResolved ? 'mark as unresolved label' : 'mark as resolved label');\n return (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <Button\n variant='ghost'\n data-testid='thread.toggle-resolved'\n onClick={onResolve}\n classNames={[commentControlClassNames, !isResolved && hoverableControlItem]}\n >\n <span className='sr-only'>{label}</span>\n {isResolved ? <CheckCircle className={sizeClass} weight='fill' /> : <CheckCircle className={sizeClass} />}\n </Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content>\n {label}\n <Tooltip.Arrow />\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n );\n};\n\nconst DeleteThreadButton = ({ onDelete }: { onDelete: () => void }) => {\n const { t } = useTranslation(THREAD_PLUGIN);\n const label = t('delete thread label');\n return (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <Button\n variant='ghost'\n data-testid='thread.delete'\n onClick={onDelete}\n classNames={[commentControlClassNames, hoverableControlItem]}\n >\n <span className='sr-only'>{label}</span>\n <X className={sizeClass} />\n </Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content classNames='z-30'>\n {label}\n <Tooltip.Arrow />\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n );\n};\n\nexport const CommentContainer = ({\n thread,\n detached,\n current,\n onAttend,\n onComment,\n onResolve,\n onMessageDelete,\n onThreadDelete,\n}: ThreadContainerProps) => {\n const identity = useIdentity()!;\n const space = getSpace(thread);\n const members = useMembers(space?.key);\n const activity = useStatus(space, fullyQualifiedId(thread));\n const { t } = useTranslation(THREAD_PLUGIN);\n const threadScrollRef = useRef<HTMLDivElement | null>(null);\n const { themeMode } = useThemeContext();\n\n const textboxMetadata = getMessageMetadata(fullyQualifiedId(thread), identity);\n // TODO(wittjosiah): This is a hack to reset the editor after a message is sent.\n const [_count, _setCount] = useState(0);\n const rerenderEditor = () => _setCount((count) => count + 1);\n const messageRef = useRef('');\n const extensions = useMemo(\n () => [\n createBasicExtensions({ placeholder: t('message placeholder') }),\n createThemeExtensions({ themeMode }),\n listener({ onChange: (text) => (messageRef.current = text) }),\n command,\n ],\n [_count],\n );\n\n // TODO(thure): Factor out.\n const scrollToEnd = (behavior: ScrollBehavior) =>\n setTimeout(() => threadScrollRef.current?.scrollIntoView({ behavior, block: 'end' }), 10);\n\n const handleAttend = useCallback(() => onAttend?.(thread), [onAttend, thread]);\n const handleResolve = useCallback(() => onResolve?.(thread), [onResolve, thread]);\n const handleMessageDelete = useCallback((id: string) => onMessageDelete?.(thread, id), [onMessageDelete, thread]);\n const handleThreadDelete = useCallback(() => onThreadDelete?.(thread), [onThreadDelete, thread]);\n\n const handleComment: MessageTextboxProps['onSend'] = useCallback(() => {\n if (!messageRef.current) {\n return false;\n }\n\n onComment?.(thread, messageRef.current);\n messageRef.current = '';\n scrollToEnd('instant');\n rerenderEditor();\n\n return true;\n }, [thread, identity]);\n\n return (\n <Thread onClickCapture={handleAttend} onFocusCapture={handleAttend} current={current} id={fullyQualifiedId(thread)}>\n <div\n role='none'\n className={mx(\n 'col-span-2 grid grid-cols-[var(--rail-size)_1fr_min-content]',\n hoverableControls,\n hoverableFocusedWithinControls,\n )}\n >\n {detached ? (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <ThreadHeading detached>{thread.name}</ThreadHeading>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content classNames='z-30' side='top'>\n {t('detached thread label')}\n <Tooltip.Arrow />\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n ) : (\n <ThreadHeading>{thread.name}</ThreadHeading>\n )}\n <div className='flex flex-row items-center pli-1'>\n {thread.status === 'staged' && <Tag palette='neutral'>{t('draft button')}</Tag>}\n {onResolve && !(thread?.status === 'staged') && (\n <ToggleResolvedButton isResolved={thread?.status === 'resolved'} onResolve={handleResolve} />\n )}\n {onThreadDelete && <DeleteThreadButton onDelete={handleThreadDelete} />}\n </div>\n </div>\n {/** TODO(dmaretskyi): How's `thread.messages` undefined? */}\n {RefArray.allResolvedTargets(thread.messages?.filter(nonNullable) ?? []).map((message) => (\n <MessageContainer key={message.id} message={message} members={members} onDelete={handleMessageDelete} />\n ))}\n {/*\n TODO(wittjosiah): Can't autofocus this generally.\n There can be multiple threads with inputs and they can't all be focused.\n Also, it steals focus from documents when first rendered.\n Need to find a way to autofocus in one scenario only: when a new thread is created.\n */}\n <MessageTextbox extensions={extensions} onSend={handleComment} {...textboxMetadata} />\n <ThreadFooter activity={activity}>{t('activity message')}</ThreadFooter>\n {/* NOTE(thure): This can’t also be the `overflow-anchor` because `ScrollArea` injects an interceding node that contains this necessary ref’d element. */}\n <div role='none' className='bs-px -mbs-px' ref={threadScrollRef} />\n </Thread>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { ChatText } from '@phosphor-icons/react';\nimport React, { useEffect } from 'react';\n\nimport { type ThreadType } from '@dxos/plugin-space/types';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { useTranslation, Trans } from '@dxos/react-ui';\nimport { descriptionText, mx } from '@dxos/react-ui-theme';\n\nimport { CommentContainer } from './CommentContainer';\nimport { type ThreadContainerProps } from './types';\nimport { THREAD_PLUGIN } from '../meta';\n\nexport type ThreadsContainerProps = Omit<ThreadContainerProps, 'thread' | 'detached' | 'current' | 'autoFocus'> & {\n threads: ThreadType[];\n /**\n * Threads that are no longer anchored to a position in the object.\n */\n detached?: string[];\n currentId?: string;\n showResolvedThreads?: boolean;\n};\n\n/**\n * Comment threads.\n */\nexport const CommentsContainer = ({\n threads,\n detached = [],\n currentId,\n showResolvedThreads,\n ...props\n}: ThreadsContainerProps) => {\n const { t } = useTranslation(THREAD_PLUGIN);\n const filteredThreads = showResolvedThreads ? threads : threads.filter((thread) => !(thread?.status === 'resolved'));\n\n useEffect(() => {\n if (currentId) {\n document.getElementById(currentId)?.scrollIntoView({ behavior: 'smooth', block: 'end' });\n }\n }, [currentId]);\n\n return (\n <>\n {filteredThreads.length > 0 ? (\n filteredThreads.map((thread) => {\n const threadId = fullyQualifiedId(thread);\n return (\n <CommentContainer\n key={threadId}\n thread={thread}\n current={currentId === threadId}\n detached={detached.includes(threadId)}\n {...props}\n />\n );\n })\n ) : (\n <div\n role='alert'\n className={mx(\n descriptionText,\n 'place-self-center border border-dashed border-unAccent rounded-lg text-center p-4 m-4',\n )}\n >\n <h2 className='mbe-2 font-medium text-baseText'>{t('no comments title')}</h2>\n <p>\n <Trans\n {...{\n t,\n i18nKey: 'no comments message',\n components: {\n commentIcon: <ChatText className='inline-block' />,\n },\n }}\n />\n </p>\n </div>\n )}\n </>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useMemo } from 'react';\n\nimport { createIntent, LayoutAction, useCapabilities, useCapability, useIntentDispatcher } from '@dxos/app-framework';\nimport { ThreadCapabilities } from '@dxos/plugin-space';\nimport { MessageType, type ThreadType } from '@dxos/plugin-space/types';\nimport { create, fullyQualifiedId, makeRef, RefArray } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { useAttended } from '@dxos/react-ui-attention';\nimport { nonNullable } from '@dxos/util';\n\nimport { ThreadCapabilities as LocalThreadCapabilities } from '../capabilities';\nimport { CommentsContainer } from '../components';\nimport { ThreadAction } from '../types';\n\nexport const ThreadComplementary = ({ subject }: { subject: any }) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const identity = useIdentity();\n\n const { state, getViewState } = useCapability(LocalThreadCapabilities.MutableState);\n const { showResolvedThreads } = getViewState(fullyQualifiedId(subject));\n const drafts = state.drafts[fullyQualifiedId(subject)];\n\n const threadsIntegrators = useCapabilities(ThreadCapabilities.Thread);\n const createSort = useMemo(\n () => threadsIntegrators.find((p) => p.predicate(subject))?.createSort,\n [threadsIntegrators, subject],\n );\n const sort = useMemo(() => createSort?.(subject), [createSort, subject]);\n\n const threadObjects = RefArray.allResolvedTargets(subject.threads ?? []);\n\n const threads = useMemo(() => {\n return threadObjects.concat(drafts ?? []).filter(nonNullable) as ThreadType[];\n }, [JSON.stringify(threadObjects), JSON.stringify(drafts)]);\n\n const detachedIds = useMemo(() => {\n return threads.filter(({ anchor }) => !anchor).map((thread) => fullyQualifiedId(thread));\n }, [threads]);\n\n useEffect(() => {\n if (!sort) {\n return;\n }\n threads.sort((a, b) => sort(a?.anchor, b?.anchor));\n }, [sort, threads]);\n\n const attended = useAttended();\n const qualifiedSubjectId = fullyQualifiedId(subject);\n\n const handleAttend = useCallback(\n (thread: ThreadType) => {\n const threadId = fullyQualifiedId(thread);\n if (state.current !== threadId) {\n state.current = threadId;\n\n // TODO(wittjosiah): Should this be a thread-specific intent?\n // The layout doesn't know about threads and this working depends on other plugins conditionally handling it.\n // This may be overloading this intent or highjacking its intended purpose.\n void dispatch(\n createIntent(LayoutAction.ScrollIntoView, {\n id: fullyQualifiedId(subject),\n cursor: thread.anchor,\n ref: threadId,\n }),\n );\n }\n },\n [state.current, dispatch, subject],\n );\n\n const handleComment = useCallback(\n async (thread: ThreadType, message: string) => {\n thread.messages.push(\n makeRef(\n create(MessageType, {\n sender: { identityKey: identity?.identityKey.toHex() },\n timestamp: new Date().toISOString(),\n text: message,\n // TODO(wittjosiah): Context based on attention.\n // context: context ? makeRef(context) : undefined,\n }),\n ),\n );\n\n await dispatch(createIntent(ThreadAction.OnMessageAdd, { thread, subject }));\n\n state.current = fullyQualifiedId(thread);\n },\n [dispatch, identity, subject],\n );\n\n const handleResolve = useCallback(\n (thread: ThreadType) => dispatch(createIntent(ThreadAction.ToggleResolved, { thread })),\n [dispatch],\n );\n\n const handleThreadDelete = useCallback(\n (thread: ThreadType) => dispatch(createIntent(ThreadAction.Delete, { thread, subject })),\n [dispatch, subject],\n );\n\n const handleMessageDelete = useCallback(\n (thread: ThreadType, messageId: string) =>\n dispatch(createIntent(ThreadAction.DeleteMessage, { thread, subject, messageId })),\n [dispatch, subject],\n );\n\n return (\n <CommentsContainer\n threads={threads}\n detached={detachedIds}\n currentId={attended.includes(qualifiedSubjectId) ? state.current : undefined}\n showResolvedThreads={showResolvedThreads}\n onAttend={handleAttend}\n onComment={handleComment}\n onResolve={handleResolve}\n onMessageDelete={handleMessageDelete}\n onThreadDelete={handleThreadDelete}\n />\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Input, useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormInput } from '@dxos/react-ui-form';\n\nimport { THREAD_PLUGIN } from '../meta';\nimport type { ThreadSettingsProps } from '../types';\n\nexport const ThreadSettings = ({ settings }: { settings: ThreadSettingsProps }) => {\n const { t } = useTranslation(THREAD_PLUGIN);\n\n return (\n <>\n <DeprecatedFormInput label={t('settings standalone label')}>\n <Input.Switch checked={settings.standalone} onCheckedChange={(checked) => (settings.standalone = !!checked)} />\n </DeprecatedFormInput>\n </>\n );\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_react", "import_echo", "import_react_ui", "import_react_ui_theme", "import_app_framework", "import_types", "import_halo", "import_util", "sizeClass", "getSize", "commentControlClassNames", "ToggleResolvedButton", "isResolved", "onResolve", "t", "useTranslation", "THREAD_PLUGIN", "label", "React", "Tooltip", "Root", "Trigger", "asChild", "Button", "variant", "data-testid", "onClick", "classNames", "hoverableControlItem", "span", "className", "CheckCircle", "weight", "Portal", "Content", "Arrow", "DeleteThreadButton", "onDelete", "X", "CommentContainer", "thread", "detached", "current", "onAttend", "onComment", "onMessageDelete", "onThreadDelete", "identity", "useIdentity", "space", "getSpace", "members", "useMembers", "key", "activity", "useStatus", "fullyQualifiedId", "threadScrollRef", "useRef", "themeMode", "useThemeContext", "textboxMetadata", "getMessageMetadata", "_count", "_setCount", "useState", "rerenderEditor", "count", "messageRef", "extensions", "useMemo", "createBasicExtensions", "placeholder", "createThemeExtensions", "listener", "onChange", "text", "command", "scrollToEnd", "behavior", "setTimeout", "scrollIntoView", "block", "handleAttend", "useCallback", "handleResolve", "handleMessageDelete", "id", "handleThreadDelete", "handleComment", "Thread", "onClickCapture", "onFocusCapture", "div", "role", "mx", "hoverableControls", "hoverableFocusedWithinControls", "ThreadHeading", "name", "side", "status", "Tag", "palette", "RefArray", "allResolvedTargets", "messages", "filter", "nonNullable", "map", "message", "MessageContainer", "MessageTextbox", "onSend", "ThreadFooter", "ref", "CommentsContainer", "threads", "currentId", "showResolvedThreads", "props", "filteredThreads", "useEffect", "document", "getElementById", "length", "threadId", "includes", "descriptionText", "h2", "p", "Trans", "i18nKey", "components", "commentIcon", "ChatText", "ThreadComplementary", "subject", "dispatchPromise", "dispatch", "useIntentDispatcher", "state", "getViewState", "useCapability", "LocalThreadCapabilities", "MutableState", "drafts", "threadsIntegrators", "useCapabilities", "ThreadCapabilities", "createSort", "find", "predicate", "sort", "threadObjects", "concat", "JSON", "stringify", "detachedIds", "anchor", "a", "b", "attended", "useAttended", "qualifiedSubjectId", "createIntent", "LayoutAction", "ScrollIntoView", "cursor", "push", "makeRef", "create", "MessageType", "sender", "identityKey", "toHex", "timestamp", "Date", "toISOString", "ThreadAction", "OnMessageAdd", "ToggleResolved", "Delete", "messageId", "DeleteMessage", "undefined", "ThreadSettings", "settings", "DeprecatedFormInput", "Input", "Switch", "checked", "standalone", "onCheckedChange", "ThreadContainer", "lazy", "contributes", "Capabilities", "ReactSurface", "createSurface", "data", "ChannelType", "component", "location", "Location", "channel", "target", "isLayoutParts", "active", "main", "layoutEntries", "currentPosition", "findIndex", "entry", "objectToTheLeft", "context", "db", "getObjectById", "Array", "isArray", "SettingsStore", "getStore", "value"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var settings_TH4YSUVU_exports = {};
|
|
20
|
+
__export(settings_TH4YSUVU_exports, {
|
|
21
|
+
default: () => settings_default
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(settings_TH4YSUVU_exports);
|
|
24
|
+
var import_chunk_AUVKOX5Q = require("./chunk-AUVKOX5Q.cjs");
|
|
25
|
+
var import_chunk_F735VMTN = require("./chunk-F735VMTN.cjs");
|
|
26
|
+
var import_app_framework = require("@dxos/app-framework");
|
|
27
|
+
var import_live_object = require("@dxos/live-object");
|
|
28
|
+
var settings_default = () => {
|
|
29
|
+
const settings = (0, import_live_object.create)({});
|
|
30
|
+
return (0, import_app_framework.contributes)(import_app_framework.Capabilities.Settings, {
|
|
31
|
+
schema: import_chunk_AUVKOX5Q.ThreadSettingsSchema,
|
|
32
|
+
prefix: import_chunk_F735VMTN.THREAD_PLUGIN,
|
|
33
|
+
value: settings
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=settings-TH4YSUVU.cjs.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 { create } from '@dxos/live-object';\n\nimport { THREAD_PLUGIN } from '../meta';\nimport { type ThreadSettingsProps, ThreadSettingsSchema } from '../types';\n\nexport default () => {\n const settings = create<ThreadSettingsProps>({});\n return contributes(Capabilities.Settings, { schema: ThreadSettingsSchema, prefix: THREAD_PLUGIN, value: settings });\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAA0C;AAC1C,yBAAuB;AAKvB,IAAA,mBAAe,MAAA;AACb,QAAMA,eAAWC,2BAA4B,CAAC,CAAA;AAC9C,aAAOC,kCAAYC,kCAAaC,UAAU;IAAEC,QAAQC;IAAsBC,QAAQC;IAAeC,OAAOT;EAAS,CAAA;AACnH;",
|
|
6
|
+
"names": ["settings", "create", "contributes", "Capabilities", "Settings", "schema", "ThreadSettingsSchema", "prefix", "THREAD_PLUGIN", "value"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var state_TQWEZ6B3_exports = {};
|
|
20
|
+
__export(state_TQWEZ6B3_exports, {
|
|
21
|
+
default: () => state_default
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(state_TQWEZ6B3_exports);
|
|
24
|
+
var import_chunk_FPWNZ6TB = require("./chunk-FPWNZ6TB.cjs");
|
|
25
|
+
var import_chunk_F735VMTN = require("./chunk-F735VMTN.cjs");
|
|
26
|
+
var import_app_framework = require("@dxos/app-framework");
|
|
27
|
+
var import_live_object = require("@dxos/live-object");
|
|
28
|
+
var initialViewState = {
|
|
29
|
+
showResolvedThreads: false
|
|
30
|
+
};
|
|
31
|
+
var state_default = () => {
|
|
32
|
+
const state = (0, import_live_object.create)({
|
|
33
|
+
drafts: {}
|
|
34
|
+
});
|
|
35
|
+
const viewStore = (0, import_live_object.create)({});
|
|
36
|
+
const getViewState = (subjectId) => {
|
|
37
|
+
if (!viewStore[subjectId]) {
|
|
38
|
+
viewStore[subjectId] = {
|
|
39
|
+
...initialViewState
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
return viewStore[subjectId];
|
|
43
|
+
};
|
|
44
|
+
return (0, import_app_framework.contributes)(import_chunk_FPWNZ6TB.ThreadCapabilities.State, {
|
|
45
|
+
state,
|
|
46
|
+
getViewState
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=state-TQWEZ6B3.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/state.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes } from '@dxos/app-framework';\nimport { create } from '@dxos/live-object';\n\nimport { ThreadCapabilities } from './capabilities';\nimport { type ThreadState, type ViewStore } from '../types';\n\nconst initialViewState = { showResolvedThreads: false };\n\nexport default () => {\n const state = create<ThreadState>({ drafts: {} });\n const viewStore = create<ViewStore>({});\n\n const getViewState = (subjectId: string) => {\n if (!viewStore[subjectId]) {\n viewStore[subjectId] = { ...initialViewState };\n }\n return viewStore[subjectId];\n };\n\n return contributes(ThreadCapabilities.State, { state, getViewState });\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAA4B;AAC5B,yBAAuB;AAKvB,IAAMA,mBAAmB;EAAEC,qBAAqB;AAAM;AAEtD,IAAA,gBAAe,MAAA;AACb,QAAMC,YAAQC,2BAAoB;IAAEC,QAAQ,CAAC;EAAE,CAAA;AAC/C,QAAMC,gBAAYF,2BAAkB,CAAC,CAAA;AAErC,QAAMG,eAAe,CAACC,cAAAA;AACpB,QAAI,CAACF,UAAUE,SAAAA,GAAY;AACzBF,gBAAUE,SAAAA,IAAa;QAAE,GAAGP;MAAiB;IAC/C;AACA,WAAOK,UAAUE,SAAAA;EACnB;AAEA,aAAOC,kCAAYC,yCAAmBC,OAAO;IAAER;IAAOI;EAAa,CAAA;AACrE;",
|
|
6
|
+
"names": ["initialViewState", "showResolvedThreads", "state", "create", "drafts", "viewStore", "getViewState", "subjectId", "contributes", "ThreadCapabilities", "State"]
|
|
7
|
+
}
|
package/dist/lib/node/types.cjs
CHANGED
|
@@ -18,13 +18,15 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var types_exports = {};
|
|
20
20
|
__export(types_exports, {
|
|
21
|
-
ThreadAction: () =>
|
|
21
|
+
ThreadAction: () => import_chunk_AUVKOX5Q.ThreadAction,
|
|
22
|
+
ThreadSettingsSchema: () => import_chunk_AUVKOX5Q.ThreadSettingsSchema
|
|
22
23
|
});
|
|
23
24
|
module.exports = __toCommonJS(types_exports);
|
|
24
|
-
var
|
|
25
|
-
var
|
|
25
|
+
var import_chunk_AUVKOX5Q = require("./chunk-AUVKOX5Q.cjs");
|
|
26
|
+
var import_chunk_F735VMTN = require("./chunk-F735VMTN.cjs");
|
|
26
27
|
// Annotate the CommonJS export names for ESM import in node:
|
|
27
28
|
0 && (module.exports = {
|
|
28
|
-
ThreadAction
|
|
29
|
+
ThreadAction,
|
|
30
|
+
ThreadSettingsSchema
|
|
29
31
|
});
|
|
30
32
|
//# sourceMappingURL=types.cjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["types.cjs"],
|
|
4
|
-
"sourcesContent": ["import {\n ThreadAction\n} from \"./chunk-
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,
|
|
4
|
+
"sourcesContent": ["import {\n ThreadAction,\n ThreadSettingsSchema\n} from \"./chunk-AUVKOX5Q.cjs\";\nimport \"./chunk-F735VMTN.cjs\";\nexport {\n ThreadAction,\n ThreadSettingsSchema\n};\n//# sourceMappingURL=types.cjs.map\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAGO;AACP,4BAAO;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|